I dual booted my Touchpad with CyanogenMod last week, and it has made me notice a lot of things about the Touchpad, WebOS, and Android that I hadn’t fully appreciated before. I wish I had thought to post these as snippets instead of a wall of text, but I foolishly gathered them up and am posting as a set.
Details about putting CM7 on the Toucpad are here in this RootzWiki forum thread. Yes, their page and documentation are a forum thread with 100+ pages of screeching morons obscuring the content – that’s how the Android community tends to be.
The whole CM7 install process is pretty graceful – I had a minor hiccup in that it claimed the gapps would be installed on the first ACME run if I put them in the cyanogeninstall directory, but I had to go in with ClockWork and flash them later – then it hung on the setup autorun on the next boot. Fine after that. During the initial install, I found myself using the phrase “Oh jeez, there is some Linux shit going on” — it looks like the ACMEInstaller is just a fancy initrd image with some utilities and scripts baked in that does some FS manipulation and archive decompression. I appreciate it when Linux is Linux.
Onward to notes: Continue reading →
I’m not sure why there has been a spate of technews 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.
This may be the best talk out of 28C3 this year. I was actually more pumped about Cory Doctrow’s “The Coming War on General Computation” 28C3 talk from the previous day, which I shared enthusiastically on G+, but there is more to talk about in this one. It is mostly coached as language/computational theory, but the thesis is that one shouldn’t design protocols in which one is able to construct a message that causes the recipient to perform arbitrary computation in the process decoding of the message. Which is awesome, and their argument for it is convincing. Furthermore, things with the message “Everyone needs to start thinking like language geeks and compiler writers” are bound to appeal to me. That said, I have a couple problems with the talk.
The first problem is purely aesthetic, and mostly unimportant. In terms of presentation, it wasn’t that great a talk. The slides were bland and repetitive, and the speaker kept using problematic mannerisms. The sewearing and such are right in place, but the coughed interjections and such were not good, and the flavoring particles were excessive. I’ve been guilty of most of the above, most of the times I’ve given talks, but the more I teach and speak, the more I become sensitized to presentation, and the internet has made me spoiled on talk quality, with things like fail0verflow’s Console Hacking 2010 at 27C3 last year, or any talk Lawrence Lessig has ever given. On a better note, the Occupy + rage comics visual conceit used throughout is pretty fun.
With that out of the way, on to the techically interesting stuff:
I think they introduce some fundamental problems in demanding context-insensitive protocols. I’m likely misunderstanding, but from working with simple serial protocols, I’m wary of anything that smells like control characters. Two conceptual problems: indefinite message length, and unwanted control characters. Both arise from the same discussion of automata their thesis is rooted in. The first problem is simple to explain: it is easy to have unbounded input – a message with no stop character will eventually break shit. In practical implementations, message lengths would necessarily be bounded, and part of the problem would go away, but it would still be extremely vulnerable to flooding. They used S-expressions as an example of a reasonable solution – which makes me think “while true; do echo ‘(‘; done”, now you’re DOSed. This could probably be worked around, but it harms the elegance.
As for the second, I don’t see a similar way out. They correctly note that escaping is not a solution, and refer to the delightful field of SQL injection as proof by example. Then they neglect to suggest a different solution, because as far as I am aware, there isn’t one. Given arbitrary data to be transfered, there ARE no delimiters which cannot appear in the data. It’s one of those time-honored intractable problems in CS. The question asked late in the video about badly formed CSV files was poking at the same idea, and they did a great job explaining why field lengths are unsafe, but I’m still unconvinced that there isn’t a fundamental flaw in in-band start/stop characters that is similarly bad. This will require further reading.
My other technical problem: The speakers kept using YACC/BISON as examples of good programming tools in a talk mostly about problems with “leaky” specifications and implementations of things which are fundimentally recognizers. YACC and its ilk are among the worst offenders in this regard. The biggest problem with YACC and imitators is that they require a separate lexer specification, and all kinds of bad things happen when the specifications inevitably don’t quite match. Also, the generated LALR parser breaks when you embed actions, so all your new safety from generating a monolithic parser from a proper language specification goes away. There are better recognizer tools, in terms of ease (and precision) of specification and quality of the generated parser. Personally, I drank the ANTLR cool-aid for that – single specification for the recognizer, no problem with embedding actions (LL(*) instead of LALR), AND spits out parsers in far more languages than any YACC or Bison version I’ve seen.
As an aside, I had independently found and read through the speaker’s old livejournal/blog and some of their research work, without assembling that they were the same interesting person (last paragraph) until now. I also hadn’t associated the identity with her late husband, who was also an interesting person. The computing community is small and close, and it is equal parts amazing and discomfiting.
Now it’s almost 6:30AM localtime, and I haven’t slept because I got interested in something in the middle of the night. What is wrong with me?
EDIT: I noticed that I originally titled this “28C3 Keynote.” It wasn’t. It was the middle of the night. Fixed now.
I don’t have the time or energy to make it happen, but I really would like to see a wiki type project which assembled relevant reading lists to go with political speeches/debates/press releases/etc. It wouldn’t be that hard (technically) to gather transcripts and links, especially if crowd sourced, to assemble a claim-by-claim list of relevant studies whenever our political figures open their mouths. Basically, I want to see a giant, crowd sourced version of XKCD’s wikipedian protester. I know it wouldn’t help with the many non-reality-based voters, but it would be nice to have a community resource for those of us who care, especially during election years. Even better, I suspect the folks in the media would use it out of sheer laziness and end up injecting facts into the political process for a change.
In that interest, two of my favorites for common policy debates: Continue reading →
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 →
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 →
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.
I played with the Windows 8 Developer Preview in VirtualBox for a while this evening. Those who spend time around computers will recall that every other Microsoft OS is a loser. The betas for XP and 7 were clear upgrades when they started circulating. They were fast and stable and added desirable features. Me and Vista hit the market like an animal carcass and stunk up the place for a while. They were slow, and fragile, and changed things for the worse. Windows 8 goes beyond that. This shit is the next Microsoft Bob.
The quirks and performance instability can be excused as a developer preview running in a virtual machine. The fact that every UI change from 7 is for the worse cannot.
The big feature is the Metro interface. Metro is trying to graft a mediocre appliance UI (I thought “Cell Phone” a lab mate compared it to their DVD player) on to the desktop, in place of a sane launcher or window manager. The login screen is a “Swipe up to unlock” affair, with no indication that that’s how it works. Finding programs is like sorting through a desk full of business cards. The task model is more akin to Android, where programs suspend to quietly consume resources in the background until swapped out instead of quitting cleanly. All metro apps run fullscreen, one instance per application, and none of the reference apps have any mechanism for tabs or fields. Task switching is performed by hovering near the left edge of the screen and clicking to cycle through active programs (Alt+Tab switches through all active Metro apps, all Desktop apps, and the desktop itself). There is no indication of what is running, so “active” is more than a little unclear. I still haven’t found a mechanism to shut down without first logging out.
You can partially drop to a conventional desktop mode, which is much like Windows 7, but a little bit worse in every way. The start menu is GONE – clicking where it used to be just drops you back to the Metro mess. Task management is confusing because some programs are programs, and some programs are entities in Metro. The “hover near the left edge of the screen” switching behavior persists on the desktop. Menus have been replaced by ribbons – which are, I shit you not, 115px high in the file manager. To put that another way, 209px of the default file manager’s 597px height are taken up by static decorations – I’m reminded of those pictures of browsers where the user never turned down a toolbar, but it’s the default style.
Looking for new UI metaphors is commendable, and it’s especially nice to see something other than the “Hide ALL the UI elements!” hyper-minimalism (see the new Google bar) that is the current trend being tried, but this may actually be worse. Users deserve better than the fleet of terrible regressive change-for-change’s sake UIs that have been foisted on the personal electronics world of late.
At least we’ll be making mean jokes about this one for years to come.