Category Archives: Objects

Canon Cat

Clip from Canon Cat Advertising Materials

I’m not sure why there has been a spate of tech news artcles about the Canon Cat recently, but it’s really refreshing to see. I assume it started because someone spotted this nice document dump, and the tech news world is an echo chamber.

Many of the articles note that the manuals and such come with (mostly) complete circuit designs, but they miss the other interesting bit of technical openness – Cats were running a totally introspective user accessible software stack written in a dialect of Forth. In addition to having a UI that is still a popular example for application specific computing devices, it was also user programmable/modifiable almost down to the hardware. I’m not a fan of Forth, but it demonstrates that 1. It is possible to make an embedded computer programmable without interfering with its UI model, and 2. It is possible to design introspective systems which are usable, which are right in line with what I want to be doing with myself next, and totally out of line with current trends in computing. It brings to mind Alan Kay‘s work, or a more reasonable LISP machine.
The other reason I’m fascinated by the Cat is that it manages to make a completely modeless text editing system, and its development spawned several papers (in the linked documents) on the topic. I despise implicit modality in user interfaces (this is why, despite having all kinds of wonderful features, the traditional progammer’s editors just end up making me furious), and good through theoretical and case studies supporting that stance are a beautiful thing.

That dump is slightly different collection of Canon Cat materials that I put together when I was curious after reading The Humane Interface a couple years back. I’m still integrating the collections, but there seems to be some different stuff in each – piles of arbitrary format documents are hard to diff, especially when there is no name correspondence and some are binary formats. I think there may be enough material in the various available sources that, given access to an operable CAT and a reasonable digital lab, it would only be a large 10s/small 100s of man hours of work to emulate or even hardware simulate one.
I’ve never (actually, I think I ran into one as a kid but did’t know what it was at the time) had a chance to play with a real Canon Cat, and owning one would be a mixture of all the standard problems in owning vintage computing stuff – they’re expensive and collectible, and like most computers of the era, bulky and fragile, and they require problematic media… but I would still probably get one if I had the chance for a reasonable price, because they did so many interesting things right. More and more I think CS/EE programs should include (probably just as an elective) proper History of Computing courses – if my intended life pattern continues, I may even get to teach one for a while. I think it would be a blast for all involved.

Posted in Computers, Electronics, General, Objects | Tagged , , , | Leave a comment

Teaching Embedded Systems (with Arduino)

Now that the classes are winding down, I want to write up some internet-accessible notes about the embedded systems unit I designed and taught for EGR199 this semester. The unit went well, and I can see basically the same materials being reused, so having a nice content dump for me or any other instructor to use is worth the effort. Long winded version after the fold.
Continue reading

Posted in DIY, Electronics, General, Objects, School | Leave a comment

Touchpad

I picked up one of the $150 refurbished 32GB Touchpads in the last firesale on Sunday. It seems like HP has done their very best to get as many Touchpads into the hands of hackers as possible, so whether or not it is well supported by HP, the community will do something fun with it. Besides, a $150 ARM developement platform that will boot Android, various Linux chroots, AND let me play with WebOS was too appealing to pass up.
Continue reading

Posted in Announcements, Computers, DIY, Electronics, Entertainment, General, Objects | Leave a comment

SC11: A Review in Schwag


This is the less serious bit of review from SC’11, but there is fun to be had and a certain amount to be learned from the pile of schwag that comes back. The schwag pile is comparable to last year’s, but I was actively aimed toward useful or at least interesting junk this year, since I have > three cubic feet of this crap packed away now. Part of the point of this post is just to give credit (and links) to places that gave me cool stuff.

I find I actually use the various random bags I get, so I always end up with quite a few. Several were particularly nice: For the second year in a row, I would actually USE the conference bag (Back left corner) on it’s own, and I got another one of the ridiculously tough Tyan/Intel bags (far back, standing) which are handy for groceries and toting stuff around campus. Indiana University had a nifty little sling bag that I could contrive uses for (next to conference bag), and the giant blue CSC bag can consolidate a remarkably large pile of crap.

With regard to apparel, Silicon Mechanics again had the nice florescent green on black logo tee that I wear all the time, although this year’s has some text on the back that makes it a little less cool. We hung out for a while talking to the Pogo Linux folks and were handed a pile of their shirts (logo on front, gold circle around Tux on back, back visible in picture), which are pretty nice. The Adaptive Computing/MOAB “Lifes a Batch” shirt is clever in the same way the Platform Computing “Whatever” shirt from a few years ago – I don’t know that it will get worn much, but it’s a memorable marketing effort (and, by the way, Moab has become really impressive – it can do PVM type tricks that PVM can’t, and look good doing it). NIMS (I’m slightly embarrassed to say I don’t remember which relevant organization with that acronym it was) had nice Beanies which may see some use this winter. I have some fuschia compact umbrellas from the conference daily giveaway (I think IBM payed for/logo’d them) to be given as gifts – we brought back one or two each… plus a box of a dozen after they stuck the remainders out.

Going through the gallery of other neat stuff in order of a appearance:

  • Huge props to Samtec. I don’t recall seeing them at SC in previous years, but as an interconnect hardware vendor, it’s an entirely reasonable place for them to be. In addition to the fairly nice hat/pen/screwdriver schwag items and interesting to chat with booth staff, they were giving out trays of sample parts. I picked up the “Sample Solution” and “Rugged Power” kits, since those are the kinds of connector I use most, but the adviser picked up a full set to keep on file for helping students doing projects pick parts. Looking through them I wish I had picked up one of the R/F component boxes, because it had a gorgeous assortment of $Random_antenna_connector to SMC pigtails in it. I think I’ll be preferentially ordering/recommending connectors from them for a while.
  • Penguin Computing was dispensing nice umbrellas in addition to their standard “Sit through our talk for a 6″ Stuffed penguin” routine. I talked management tools with a rep for a while, but didn’t attend the talk this year.
  • Several places had nice small papergoods. I consume little notebooks and packs of post-its and tape flags pretty regularly, and can’t remember the last time I paid for them.
  • Isilon had a nice little screwdriver pod thing. There can never be enough multitools.
  • HP was handing out a … dorky green thing. It’s cute, and charming, and its belly is a lint-free screen cleaner, but I can’t figure out what the hell it is (alligator?). I think the confusing object is representative of their confusing business decisions of late – they had a carnival tricks theme going in their booth which also fits circus grade management.
  • AMAX and Extreme Networks gave me flash drives, in addition to the proceedings drive (which is 2Gb and looks like a Kingston like the last two years, but the USBID says knockoff). Apparenlty I missed some even nicer flash drives from other places that group mates found. Flash drives are always useful and appreciated.
  • The NNSA ASC booth was shoveling Flexible USB Lights out of their booth the last day, and I took a couple. I’m not sure what I’d use them for, but they appear to be identical to this $10 thing at Thinkgeek, so there’s that.
  • The Arctic Region Supercomputing Center booth was not very well staffed, but they had their usual reusable chemical hand warmers, which is a great gimmick.

The “trick-or-treating for grownups” vibe of going schwagging on the floor is a bizarre joy of supercomputing, and, in addition to the standard “memorable schwag makes you memorable” marketing function, actually provides an important mechanism for striking up conversations and encouraging attendees to make good coverage of the exhibit floor. I have a not inconsiderable list of organizations who have bought good vibes with a few cent trinket, and I am the sort of person who gets solicited for tech and academia advice, so the trinkets are doing their job.

Posted in Electronics, Entertainment, General, Objects | Tagged , | 1 Comment

Bookish Dreaming

I only remember a dream every year or so, but I realized on the way back from getting breakfast with friends this morning that a book I thought I’d been reading was entirely in a dream. It was a long dream with various dream-space fucked-up-ness to the setting building (No University space is that large, that nice… or has three large highly styled cafe/lounge spaces in the same complex) and interaction with various old acquaintances, but there was one section I didn’t realize was a dream because it was so normal:
< dream content >
I picked up a book (roughly A4 sized, and inch or so thick, nicely black cloth-bound with gold embossing) about code generation for a particular class of exotic hybrid-SIMD machines (I remember details, which are realistic, but not specific enough to pick out which machine) by David Padua (respected figure in parallel computing, who I’ve met at conferences) and a coauthor I couldn’t remember when I woke up. I got the book from a well stocked engineering library, and discussed it with various engineering types I know, including my current adviser.
< /dream content >
Until we were headed back from breakfast and I realized the setting was “improbable,” I was sure it had happened. When I got home I had to see if it was something I may have seen referenced – the content and authors were probably based on “Optimizing data permutations for SIMD devices.” which I read a year or two ago, but it isn’t an exact match. The description I remember also matches a section in Encyclopedia of Parallel Computing (four volume, $1500) book that I’ve never seen before (and now want access to). I also want the dream book, because it would be all kinds of useful for my MS project.
Aren’t brains interesting…

Posted in Computers, General, Navel Gazing, Objects, School | Tagged | Leave a comment

Arduino Promotion Behavior

I was pulling up an old project (A little Simon game which has apparently fallen off the ‘net when I moved my site- will have to repost) to use as a classroom demonstration, and discovered that sometime in the last couple years, the int->unsigned long promotion in Ardino/Processing broke/changed without comment.

The code uses using primitive nested counters and delays to generate sounds and control difficulty, which means rather large numbers (100-microsecond scale delays running for seconds) are being thrown about. To isolate the change, I wrote the following test:
Continue reading

Posted in Computers, DIY, Electronics, General, Objects | Tagged , | Leave a comment

Power Factor Corrector

We’ve been tracking down the failure mode of power supplies in the clusters on campus, and picked up a plug-in “Power Saver” power factor corrector box for around $5 to look at in our experiments. Prices on these things range from about $5 (less than the cost of the components in small quantities… and in a nice wallwart case – this is what we paid) to over $70 (fleecing the morons).
This particular device is a “PowerSaver PowerStar CHT” (or some similar random string, the model is “CHT-001A”), about which a variety of bemusingly improbable claims are made.


Upon opening it up, it contains a large (5uF,450V) capacitor, two LEDs, three quarter-watt resistors, and a single-sided PCB with “Comment” all over the silkscreen where fields were not filled in. As best I can make out, the resistors are a very high impedance voltage divider to step down the 120V/60Hz from the wall to a level the LEDs can handle, and the LEDs are acting as their own rectifier. The capacitor is at least connected across the outlet. Curiously, only about half the board is populated, and I can’t figure out what some of the missing components would do – they appear to be a second independent indicator LED circuit rotated 90 degrees from the populated one.
Under a very limited set of circumstances (linear inductive load, like an AC motor) these things could actually help the power factor, but since most residential power billing is net, with no power factor penalty, it wouldn’t actually reduce bills. In the case of non-linear loads, like say, computer power supplies, it will do nothing useful. Experiment complete, although it may still be plugged in while instrumented for funsises.

Posted in Computers, DIY, Electronics, Entertainment, General, Objects, School | Tagged , , | Leave a comment

Vala

Yesterday I decided to indulge my language fiddling impulse and spent some time reading about Vala and writing some simple programs in it. As far as I can tell, it is the answer to the running “My ideal language…” conversation my lab mate and I have, with only a few tiny exceptions. Even from a more formal view, evaluating based on Bruce MacLennan’s Principles of Programming Languages (not the book, just the list of aphorisms) Vala does INCREDIBLY well.

The syntax and feature set is based on C#, but instead of compiling to another unwanted virtual machine (Microsoft’s CLR or its second class citizen implementation, Mono), it compiles to (human readable) C, then native code, so it can piggyback on the platform CC. Most of the fancy language features are actually implemented with glib and GObject, so if you are running anything GTK based all the bits and pieces will be in memory anyway.

Rather than repeating the entire tutorial, the things I find exciting are: Array slicing. Proper Strings. Regular expressions. An optional garbage collector. A reasonable object system with limited inheritance and overloading. Coroutines(-ish) and iterators. Pointers of both the object-respecting and real varieties. Closures. Assertions/contract features. It also has incredibly clean interfaces for writing GUIs (in GTK) and network code, which are definitely weak points for most languages low-level enough for my tastes.

It does have a few interesting quirks (get and set methods allow you to override assignment, string concatenation is “+”, etc.), some dumb inherited things (were long and short ever a good idea?), and a handful of missing features (nothing has powerloops), but those are all minor quibbles.

The only real issues I have with Vala are that it isn’t terribly widely adopted, and that it is maintained by the GNOME foundation (which has a proud history of doing horrible things on a whim), but I think I’ll try writing all my random little bits of code in it for a while, because it is fun in a way I rarely find pure software.

Posted in Computers, General, Objects | Tagged , | Leave a comment

Note Synchronization?

I’ve started the hunt for a suitable new note taking program. My demands are simple: I want a stack of text documents with persistent offline access on my Linux and Android devices, Web access from elsewhere, and automated synchronization between them.

I’ve been using xfce4-notes-plugin, which has been adequate, is backed by plaintext, and is ridiculously light on resources — but it has no capacity synchronization. I wish Google hadn’t abandoned notebook, since that would provide a mechanism to build around without an extra entity I have to trust with my data, but its viability is long gone. In a similar vein, I’m getting a strong urge to find and punch the dropbox folks for using a goofy proprietary protocol instead of something I can trivially self host (hint).

Evernote, with the Nevernote Linux-compatible client, looked like a generally acceptable solution (persistent local copies mitigate the cloud trust issue) until I got a good look at Nevernote – a 55MB blob of crude, crudely-packaged Java code, which seems to function, but consumes 3-6% CPU and 3% memory to sit in the background empty on my i7M620/8GB system. I don’t care how snazzy it is, this is not a solution for a persistent tool.

Hacking something together with text-file-backed editors, rsync, and my web hosting is a last ditch option, since it really is all I want, but there must already be something light, functional, and not dripping with proprietary cruft floating around… right?

Posted in Computers, DIY, General, Objects | Tagged , | 1 Comment

I’m mystified by how much I miss having a little kickstand on my handheld computer. The n810’s didn’t even work very well – only the “Closed” and “45° to the table” detents actually held – but being able to have … Continue reading

Posted on by pappp | Leave a comment