Saturday, January 15, 2005

Publishing Venues

Thanks to a comment from Eric Remy as well as much noodling on the topic, I've decided that my "publishing needs" require three mutually exclusive venues...

  • This blog, which, with its hip style and automatic archiving, seems to impose a writing style that verges on the article. It's also a nuisance to deal with images beyond inline wee ones... Flickr has lately become too slow and cumbersome to use, but hosting the piccys myself requires thumbnail creation, FTP, and fiddly tags.

  • Static and cross-linked web content like most of the Microship site, all HTML-tweaked and purty (not to mention monetized to attract a few nickels)...and rarely if ever expected to change.

  • The old Live Page that is optimized for quickie off-the-cuff updates, destined to disappear in a day or so without a trace (as some things should).

Much news is fleeting by nature, and one of the failings of many blogs is that they get clogged up with material that is only of real-time interest to a few close friends, yet ends up being Googlable for All Time. Who will really care, in the year 2012, that this week I installed new insulation in my building and ranted about a neighbor whose maltreated dog is trapped yelping in a cage outside in freezing weather? To keep the Microship blog from drifting in that direction during the inevitable gaposis 'twixt sublime insights and gizmological delights, I will reserve this venue for reasonably substantial material (like last week's post about VNOS), and revert to my legacy Live Page for ephemera (sorta daily, usually short, and not guaranteeed to be polished or profound... but almost always including fresh new photos, which are easy to post there by simply attaching them to an email). They will not be archived.

Since my last update here I have been working steadily on bringing the lab back to life... the final phases of the post-rodent insulation retrofit as well as the new office space. The office is now warm and painted; all that's left is to tack on some baseboard above the new carpet and then start installing furniture. In the rest of the building, the roof is now fully re-insulated with R-19, thanks to a delightful crew from AGI in Arlington. It now remains for me to install rigid foam board on the walls, but the difference is already substantial... it's starting to actually retain heat generated by the woodstove and the occasional extravagance of that huge propane unit heater.

In nomadic news, last year I had the bittersweet pleasure of watching a friend on the island launch his beautiful homebuilt catamaran Freebird, and sail off for parts unknown (beginning with the venerable Baja Ha-Ha). He and his winsome mate now have a regularly updated log, which is a real nudge to get moving more quickly on the project for which the above-mentioned building was initially created. They are currently in the South Pacific. <tremulous sigh>

Um, I have to go now. There are escape pods boats to finish.

Random Notes:

Another chapter has been added to the Miles with Maggie series: "Technology Update" from Richmond, Virginia. Hard to believe it's been 18 years... in this tale, I rhapsodize about packet radio, cusps joining layers of dataspace, solar power, and the rigors of the highway. The piece also includes one of my favorite bike photos.

Goodies from Steve on eBay:

473 CTS 68 ohm; 16-pin SMD Resistor Networks
Three 132-pin QFP to PGA Adapter PC Boards
Two 128-megabit Intel Flash: 28F128, BGA package

Goodies from Jeannie on eBay:

(nil)

Items sold since last update

Itzhak Perlman - Sarasate CD - $17.50 to Gastonia, NC
The Stories of John Cheever - $3.72 to Bartlett, IL
Technomadic Designs paddle bag to San Jose, CA

Wednesday, January 05, 2005

VNOS in Blue Jeans

Throughout the course of the Microship project, one of the recurring themes has been the choice of a software platform that would allow integration of widely scattered, non-homogenous resources into a comfortable user interface that can manifest itself wherever I happen to be. Over the past decade, this has included a custom multidrop network of 68HC11 boards running multitasking FORTH under a HyperCard front end, NewtonScript talking to Macs via Digital Ocean wireless tools, Perl on a Linux board atop distributed PIC chips, an all-Squeak system with a distributed object model spanning Big Iron and handhelds, and even the dangerously alluring SBNC approach (Simple Boat, No Computers!). All have presented one problem of another, ranging from imminent obsolescence to daunting learning curves.

I know better than to call anything in the software realm a panacea, but I am getting more and more intrigued by VNOS from Singlestep Technologies. From what I'm seeing, it excels at doing what we need to do most often: string disparate resources together, bringing them all into some kind of cohesive front panel (presumably, one that may be echoed on a network-connected device). Of course, any programmer will tell you that you can do anything you need in his or her language of choice, and this is probably true... but I have found that some of the more provocative or popular tools would require me to drop everything and invest the time to become an expert, just to do something simple like inhale a serial port, parse it, and present the results on a meter. Complicating matters, I have good friends who are guru-level practitioners of Smalltalk, Perl, Python, Ruby, Java, C, C++, and FORTH... so most discussions about how to solve Microship design problems end up on religious turf.

What's cool about VNOS is that it seems to have been intended right from the beginning as a very playful yet powerful form of glue. It comes with "widgets" that know how to do lots of useful things, and you drag them into a window, string them together, and tweak a few options... all while watching the results live. On those occasions when prefab widgets won't quite do the trick, you can customize your own with regular expressions, math functions, and blocks of Perl or FORTH. What's really magical is that it's also very TCP-aware, so it really doesn't matter if something you're playing with is elsewhere in the LAN. The whole environment feels like making an animated block diagram of your problem.

warman-java

Dave Warman, one of the architects of all this, dropped by Sunday night for dinner, homemade wine, and a bit of frolic with an unreleased alpha of the new VNOS version. We decided to solve a typical toy problem in the Microship domain... extracting compass heading from a continuous NMEA stream and turning it into a graphic. The compass is a gimballed flux-gate donated about 10 years ago by Ritchie, and here's what we wanted to do:



Ritchie compass

-->

compass animation


I gave the dusty sensor 12 volts and cobbled together some ancient RS-232 adapters to make it fit a USB-Serial interface, whereupon it immediately appeared as a live serial port on the iBook. I had a moment of deja vu, recalling what it took to take it from there back when I was using the FORTH boards: an extra serial channel with all its configuration and handshaking, interrupt-driven capture into a circular buffer, pointer manipulation, and logic to extract the appropriate stuff between comma (n) and comma (n+1)... with another task grabbing the resulting global variable and handing it off as a string to the console port whenever polled by the hub in response to some distant HyperTalk XFCN. Dave chuckled at this, dragged a few little widgets into a window, and had it working with a live digital readout in about 10 minutes...


You can see the serial port at the left in the screen capture, with an LED to indicate whether or not it is connected in response to the buttons below. That's piped to a widget that turns the stream of characters into a series of "events."

NMEA stuff (like what comes out of a GPS) is a succession of sentences at 4800 baud, each beginning with a $ and device identifier, continuing with some variable data according to the sentence type, and ending with a return. In this simple case, all we want is to extract the compass heading, so when it sees a typical incoming sentence like $HCHDM,147.6,M*2F it needs to pull out the 147 (integral degrees are adequate for now). The trick is a regular expression in the next widget: \,([0-9]*)\., which returns the numeric value between the comma and the period.

If all we want is a digital readout, then we're already done. But Dave, with an impish grin, went off to the website of my ex-pal Julie, where he remembered seeing a cute animated GIF of a compass (the one that's spinning away merrily up there next to the photo of the heading sensor).

While I conjured a pork curry, he deconstructed the GIF with Graphic Converter, named the component images, and whipped up a quick fx that passes a number from 0 to 31 into a neighboring "LED" widget that's set to display whichever one of 32 images corresponds to the received value. Voila! Instant animated compass... I wiped the garlic off my hands, walked over, and twisted the sensor around on the table while watching the needle track in real time. Net time investment from soldering on the connector: about an hour.

After dinner, we played a bit with the next level... using a few lines of Perl and the web server built into VNOS to allow a visiting browser to see the current snapshot of the compass heading. That part was easy, although for it to become an animated display without resorting to crude page reloads, there would have to be some browser extension (a Java sandbox, flash player, or separate media stream to a helper app). Still, it only took a few minutes to stitch this into a webbish interface that could be viewed by any computer on the network.

Extrapolating to the full set of Microship interface projects, this is very encouraging... I'm not yet sure that HTML is the ideal UI framework, but it's certainly a well-understood and standardized set of tools. There is something alluring about the idea of using an off-the-shelf component like a PDA to perform the entire suite of monitoring, control, and communication tasks... I don't have to build any custom hardware anywhere except at the I/O level!

Stay tuned...

Saturday, January 01, 2005

A Willing Disbelief of Suspension

Ah, learning curves. The last week of 2004 saw good progress on the new office in the lab... most notably the suspended ceiling project. This should be trivial, but as with most things, it's not quite as straightforward as it seems.

The issue at the moment goes back to a comment I made here 2 months ago, when I was trying to find out if one can lay insulation directly atop those fluorescent troffers that take the place of a ceiling tile. Unable to find the answer on the box they come in, from talking to clerks at the store, or even on the Lithonia website, I wrote to the company and soon received the answer:

"All 1-foot by 4-foot fluorescent troffers with two, three, or four T8 lamps with maximum wattage of 32 and electronic ballast only manufactured by Lithonia Lighting are listed for type IC applications in the UL file E77234 Volume 1, Section 4. " (The term "IC" means "Insulation Contact.")

Based on this, I went ahead with the project... buying lights, suspended ceiling parts, and pricey batts of R-38 fiberglass. Since all the old stuff had been ripped out to deal with the mouse problem, the key assumption—that insulation can lie on the new ceiling rather than be stapled into the rafters—was critically important.

So imagine my surprise when, well into the project, I installed one of the new Lithonia GT8 electronic-ballast troffers, discovered that one of the pre-installed fluoresent tubes was faulty, removed it, and found a little sticker underneath: DO NOT INSTALL INSULATION WITHIN 76mm (3in) OF ANY PART OF THIS LUMINAIRE. Great place to put such a warning... not on the cardboard box or near the wiring junction panel on the back, but under a tube where it won't be discovered until (presumably) a few years after installation!

It's impossible at this point to tell who's right, Lithonia or Lithonia. But it's New Year's weekend, and there's nobody there to ask. After I'm done fumbling with construction projects, I think I'll stick with designing gizmologically intensive technomadic adventure platforms, punctuated by occasional breaks to string a few words together. That stuff I can do without constantly encountering the kind of non-entertaining learning curves that have characterized this time-consuming pole building retrofit project.

Work in progress on the new office:

ceiling-wip1

In utterly unrelated news (well, not exactly, since I've been sitting here for the past 5 minutes waiting for the Mozilla-crashing Flickr uploading tool to move a 100K image over the border via Firefox), has anybody found a quick way to get images into a Blogger posting? This is the one thing that has gotten worse since my migration from the old "Live Page": that was done by simply emailing an update with optional image attachment to a Perl script by Ned Konz... whereupon it was dropped into a template and pasted over the previous day's version. There was no automatic archiving and the page had a retro feel like the rest of the Microship website, but hey, it was easy.

Now, we have powerful new publishing tools, but images are a nuisance. I can take a photo, manually make a thumbnail, and host both on my own server... or I can use Flickr in a painfully slow interactive process (partly due to this evil dialup connection) and paste in the IMG tag. Either method takes 10-15 minutes, just to tuck a linkable piccy into a column of text. I'm open to suggestions.

Random Notes

I'm looking for anyone who has successfully "fought City Hall" and managed to bring about redistricting; we have a huge problem here on Camano Island wherein we are becoming the development and tax-revenue generation back yard of Whidbey Island... a land mass that happens to be home to the county seat and all three commissioners. I know even less about this stuff than I do about troffers and insulation, but I'm agitatin' for change anyway. Wasn't there an issue a while back about "taxation without representation"?

Goodies from Steve on eBay:

Swagelok & Cajon Stainless Fittings + extras (21 units)
473 CTS 68 ohm SMD Resistor Networks, 767163680G
2 Intel 28F128J3 (128 megabit Flash memory chips)

Goodies from Jeannie on eBay:

Spiegel Black Twill Trench Coat
Black faux-fur stadium jacket

Items sold since last update

(nil)