I released SaVi 1.4.3 today; just a six-monthly minor update staying current with distributions, and checked to work on Mac OS X Snow Leopard, Fedora 12, and Ubuntu 9.10.
Sourceforge's admin interface has changed a lot since my last update, and not necessarily for the better. Figuring out the file release widget took some doing.
In doing this, it was interesting to discover that:
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.
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.
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
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
(1.22 hung on me a lot)
(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.
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
/usr/lib, to avoid breaking things. So, SaVi
Tcl/Tk 8.4.7, because
/usr/lib is where the
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.
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.
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!