Older blog entries for lloydwood (starting at number 77)

Cygwin and X regressions

Previously, I said that Cygwin was so much easier than the Mac (at least, as far as Macintosh Tcl/Tk went).

I updated my Cygwin install, and inadvertently picked up their new X server code announced in November. I tried the new X installation out with SaVi and Geomview. There's no hardware acceleration yet, but Geomview finally builds with just configure and make; no command-line nudges needed.

Geomview runs for about thirty seconds before the X server dies and takes everything with it. I've watched the X server exhaust resources so that I can't even pull down a menu in a Windows program. Having a slightly easier build environment does not compensate for the loss of a robust and reliable working environment (and an X server that had hardware acceleration, to boot).

Previously, Cygwin was so much easier than a Mac.

16 Feb 2009 (updated 1 Aug 2010 at 14:21 UTC) »

Tcl/Tk on Mac OS X

...is complex, bizarre, and quite oddly broken.

I maintain SaVi, which uses Tcl/Tk, and is reasonably crossplatform and portable thanks to relying on the unix C libraries, turning on every useful warning flag, and keeping its decades-old code uptodate with compiler changes etc.

Porting SaVi to Mac OS X 10.4 Tiger meant updating SaVi's ten-year-old menubar code to use newer menu commands which know about the Mac menubar. (This also produced more Windows-like menus under Cygwin's Insight Tcl/Tk.) Workarounds for Mac-only Tk crashes - don't make your listbox too wide or Aqua Tk will hang in an infinite drawing loop! - were found.

Then 10.5 Leopard came out and I bought an Intel Macbook, expecting to run SaVi in style. The Tcl/Tk menuing code that worked in Tiger didn't work in Leopard's Xcode with its Tcl/TK 8.4.7 install. At all. (Other Leopard bugs with OpenGL linking and so on took a while to find workarounds for, but not having working menus is a bit of a showstopper.)

So, I immediately retrofitted my old code, with a command-line flag to select menu drawing methods. Popop menus from the window on a Mac aren't elegant, but they're functional. And I started to look into the menubar problem and Tcl/Tk on the Mac more closely.

Over a year later, I'm giving up. I haven't found a fix for the menubar problem with the default Tcl/Tk 8.4.7 install. I've attempted to update the installed version of Tcl/Tk, using ActiveState, Fink, and reputable Aqua installers. These all install something, but don't dare touch the libraries in /usr/lib, to avoid breaking things. So, SaVi always gets compiled with Tcl/Tk 8.4.7, because /usr/lib is where the compiler looks.

Now, is the menubar problem fixed in later versions of Mac Tcl/Tk? The answer to that question doesn't matter, because the chances of SaVi's Mac Leopard userbase building SaVi with anything but Tcl/Tk 8.4.7 is vanishingly small. Saying 'just double-click this Tcl/Tk installer after you install Xcode' is a non-starter, because those installers don't update any libraries in the default locations that I can link to. Those packages seem to be emphasising the Mac-specific Framework stuff, rather than the crossplatform unix libraries.

(Complicating things slightly is that on the Mac there's the 'Aqua Tk' and the 'X Tk'. SaVi is a unix program, but lost its X dependencies years ago to work with Cygwin's Insight Tcl. So SaVi takes full advantage of Aqua Tk and the Mac interface. Apart from the menubar, of course. I haven't needed to experiment with the X Tk.)

SaVi 1.4.2, released last week, is my admission of failure. It is the first version of SaVi to default to popup menus on the Mac; Tiger users will just have to turn this off.

Cygwin was so much easier and simpler than the Mac.

Update: The menubar problem was fixed in the Mac OS X 10.6 Snow Leopard release.

SaVi satellite constellation Visualization

I've released SaVi 1.4.2, fixing a couple of minor bugs in SaVi 1.4.1.

1.4.2 has a new feature that lets you view the source to the simulation scripts that create the satellite systems. I don't know if showing the internal workings will encourage people to go from playing with SaVi to doing more serious simulation work, but one can always hope.

And it's gratifying to know that, in these uncertain times, people are still buying ++ungood; T-shirts. It's a view that sums up the economy.

24 Jan 2009 (updated 24 Jan 2009 at 19:04 UTC) »

Our work in space in 2008

A new year has started. What happened around the Cisco router in Low Earth Orbit (CLEO) in 2008? I looked back, and found quite a lot; I thought it might be interesting to summarise it.

We look back on five years of our testing around CLEO in a short retrospective paper: Investigating operation of the Internet in orbit: Five years of collaboration around CLEO.

The CLEO router and the UK-DMC satellite that CLEO lives on were launched into orbit on 27 September 2003, and passed five years on orbit on 27 September 2008. Five years is the design lifetime of these DMC satellites, so the router and satellite are exceeding expected life. (We powered up CLEO and tested it on 24 September and 22 October 2008.) UK-DMC's similar sister satellite AlSAT-1 has already passed six years working in orbit (launched November 2002), so we can hope to be using CLEO and the UK-DMC satellite occasionally as test platforms for some time to come.

The team of NASA Glenn Research Center, Cisco Systems and Surrey Satellite Technology Ltd (SSTL) has gone on from focusing on testing the CLEO router to developing and testing Internet-Protocol (IP)-based communications from space, using the CLEO testbed at NASA Glenn to develop code later uploaded to a computer on the UK-DMC satellite. NASA Glenn has been working on modifications to SSTL's Saratoga protocol for delay-tolerant networking.

The team has provided a specification of Saratoga, used daily to transfer remote-sensing images from space over IP, to the Internet Engineering Task Force in Saratoga: A Scalable File Transfer Protocol, work in progress as an internet-draft.

We also looked at modifying Saratoga to carry the 'Bundle Protocol' developed by the Delay-Tolerant Networking Research Group, in Using Saratoga with a Bundle Agent as a Convergence Layer for Delay-Tolerant Networking, work in progress as an internet-draft.

We tested the Bundle Protocol from space over Saratoga from the UK-DMC satellite, first, revealing some problems in design and implementation, in January 2008, and then successfully in August 2008 - and then announced that success in September. These tests are summarised in a paper we've now sent to the International Journal of Satellite Communication and Networking: Experience with delay-tolerant networking from orbit.

Our thoughts on the design of the Bundle Protocol itself, based on our practical experience, are written up in a paper to be presented in March at the IEEE Aerospace conference: A Bundle of Problems.

We are the first to test this Bundle Protocol from space - significant because the Bundle Protocol is 'blessed' as the way NASA's future 'Interplanetary Internet' is intended to communicate. This led to our tests being mentioned by Time Magazine in November 2008 when they made the "Orbital Internet" one of their top ten inventions of 2009.

NASA's Jet Propulsion Lab has now also tested the Bundle Protocol in space on their Deep Impact/EPOXI probe, and announced this 'first deep space Internet' later in November. Those tests used their CCSDS protocols in communications to and from space, rather than the Internet Protocol that CLEO and the DMC satellites rely on.

Cisco is also readying its IRIS Internet Router in Space for launch to geostationary orbit on the Intelsat-14 satellite this year. The success of CLEO helped make planning IRIS possible.

It's been a busy 2008. 2009 should be interesting.

SaVi satellite constellation visualization

As usual, I've wrapped all my Christmas/New Year break work together into a release, and SaVi 1.4.1 is now out.

The major improvement here is a complete help and documentation system, which explains what all the satellite constellations are. I hope that this gives a better idea of what this simulates.

Not planning on doing anything else on it this year; too much else to do.

Another Christmas, another SaVi development update.

13 Dec 2008 (updated 13 Dec 2008 at 14:13 UTC) »

Warcraft III

Playing Warcraft III beats Battle Chess, Rebel Star or Laser Squad; I'd love to be able to play Warcraft III on a large touch-screen interface showing most of the map area. Warcraft III on the iPod Touch would be a reason to buy an iPod. I don't know of a remotely equivalent open-source or free game.

Playing Warcraft III on the MacBook is an exercise in frustration, though, as it stretches wide to fill the screen, leading to a very odd view of things. Some workarounds to set Warcraft's screen handling and aspect ratio are discussed; none quite work for me.

(Odd to be using ResFool over a decade after I started using ResEdit heavily.)

Our first tests of the bundle protocol in space gained attention from Time Magazine. And Time included us on their list of the best inventions of 2008 as a result.

Next week: IETF in Minneapolis, where we'll discuss that same bundle protocol. Minneapolis is the home of the long-lost Geometry Center, which created the Geomview and SaVi applications that I've worked on. What's worth seeing in Minneapolis - or should I just stay in and contemplate SaVi 1.4.1?

We've tested the bundle protocol from the delay-tolerant networking research group in space:
UK-DMC satellite first to transfer sensor data from space using 'bundle' protocol, Surrey Satellite Technology Ltd press release, 11 September 2008.

There's a paper with a lot more detail, and presentation slides that will be given at the end of the month:
Use of the Delay-Tolerant Networking Bundle Protocol from Space, Lloyd Wood, Will Ivancic, Wesley M. Eddy, Dave Stewart, James Northam, Chris Jackson and Alex da Silva Curiel, 59th International Astronautical Congress, Glasgow, September 2008.

...and we made Slashdot.

++ungood; on video: Danny O'Brien's talk on Living on the Edge, Open Tech 2008.

Still photos of the talk and t-shirt, too.

68 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!