Older blog entries for lloydwood (starting at number 81)

SaVi

As I'm now finding myself with free time, I played a little with my SaVi satellite visualization software to bring it uptodate with compilers and platforms, and pushed out a SaVi development update.

In doing this, it was interesting to discover that:

  • the Mac OS X menu breakage in 10.5 Leopard's Tk 8.4.7 is fixed in 10.6 Snow Leopard and Tk 8.5.7. SaVi finally has the look and feel of a bona fide Mac app, albeit one that requires XCode, being compiled, and being launched from the command line. Tk's infinite looping when listboxes are too large is fixed too. Should I somehow specialcase for 10.5?
  • Installing Ubuntu 9.10 under VirtualBox is really slick and easy (though its packaging of Tcl and Tk seems a little odd.) If you're on Windows, I think it's now preferable to Cygwin, which is less good than it used to be.
  • Installing FreeBSD 7.2 under VirtualBox is not slick or easy. Attempting to set it up on a Mac, of all things, just feels wrong, and that's before you get to selecting partition sizes in the 80s DOS character window of yore. I gave up.
  • Ubuntu's gcc 4.4 really is pedantic. Every conversion from unsigned to signed or from non-const to const gets mentioned. And just when I thought I had fairly clean codeā€¦

Also interesting to note a recent unheralded SaVi rendering appearance in a post by Mark 'Robert X. Cringely' Stephens. Requests for an attribution were ignored and deleted. Charming. Interestingly, it's the same SaVi Teledesic rendering that was reused without proper attribution in a rather poor 2000 IEEE Communications Surveys paper; they took it down, and rethought their editorial policies and such. Not Cringely. Cringely's Wikipedia page told me all I needed to know.

24 Sep 2009 (updated 24 Sep 2009 at 20:47 UTC) »

Double-plus ungood

My ++ungood; T-shirt design turns up as part of the London Word Festival in Karen McCarthy's "My T-shirt says" installation.

Alas, the meandering musing on the meaning of the shirt by its wearer completely misses any Orwellian or programming subtexts. I much prefer the original official NTK T-shirt installation, even if that did have to explain everything.

In other less-than-good news, I'm being laid off, and seeking interesting employment, possibly involving satellites.

23 May 2009 (updated 25 May 2009 at 21:05 UTC) »

I nominated SaVi to the Sourceforge community choice awards in the 'Best project for academia' category, despite the chances of SaVi winning or being nominated by anyone else being roughly zero. Prove me wrong.

I'm ever the optimist.

19 Apr 2009 (updated 23 May 2009 at 07:40 UTC) »

Microsoft's great file copying

We'll continue to support XP, and XP is a great operating system, but keep in mind, it will be 12 years old next year.

-- Kevin Turner, Chief Operating Officer for Microsoft,
Vista SP2 and Windows 7 More Secure than Linux and Mac OS X Leopard, Microsoft claims, Softpedia.

Great operating system? Windows XP's file handling is a joke. For example, try copying files from one disk to another by dragging in Windows Explorer. If XP runs into a single problem, it throws up a dialog box and stops copying entirely; figuring out what got copied and what didn't is your problem. COPY under DOS (sorry, cmd) is a joke. The included XCOPY and its switches attempts to make up for COPY's shortcomings, but is still no cp -pir.

So you wind up using third-party utilities, such as the free Ycopy, to do something as basic to a "great operating system" as copying files.

Writing a robust file copy function strikes me as something that is a lot easier than implementing good security, and I've yet to see Microsoft do that in its many patches and service packs. (Was XP "great" before all the patches and service packs, or after?)

Update: Ycopy skips copying all Eudora *.mbx files, even though Eudora is not running and the files are not open. And it's entirely unsupported. So I'm still looking for a robust free Windows file copy utility; next up: evaluating TeraCopy (1.22 hung on me a lot) and RichCopy (which seems to be adequate).

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.

72 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!