Category Archives: DIY

WebOS RIP

I’ve been watching HP’s latest midlife crisis implosion, wherein they are effectively killing the WebOS platform that they bought for $1.2Bn about a year ago, and trying to sell their PC business which is currently the largest in the world, to become an enterprise company, where they are merely one of several big fish. The latter madness is very much akin to the Carly-era “let’s become a Whitebox PC Vendor and sell off our differentiating technology” fail, but the former is something I’m currently interested in. I’ve been chatting about it in news discussions, some of which are publically visible, but wanted to collect thoughts here.

1. HP has done this shit over and over. Apollo in 1989. Convex in 1995. DEC via Compaq in 2002. This may be the most egregious “Buy a distressed asset with good technology, then abandon it” of all time, but the precedent was certainly there.
2. It took Apple (roughly, based on patents and employees) 22 years and two failures (the Newton and one killed internally around ’04) to build a mobile platform that didn’t suck too much for even the reality distortion field to market, and they made a good try at fumbling again at release (remember “No one needs native applications, webapps only“?). Palm was the only other contender with that kind of background, and they designed around Apple’s mistakes (Hello competent multitasking, clipboard, and notifications system!). From a design standpoint, WebOS was the obvious winner.
3. Android, WebOS and Meego are all fundamentally ARM EABI Linux, with a shiny UI coating. iOS’s XNU for ARM and POSIX-y underlayer isn’t that different. WebOS managed the balance perfectly, with official support for optware for the “This is a Linux box” software, and a commercial store for the UI-focused software. Apple kicks and screams and tries to subvert users who want to do anything other than in-band UI-wrappered software through their official store, but there is still a substantial jailbreak/cydia/etc. aftermarket. MeeGo didn’t really have a usable mobile UI layer, restarted too late, and isn’t really worth discussing. Android has technological impediments built in to it to make it as unpleasant as possible to run native binaries, even though the capability is there, which has resulted in a store full of $1.50 pieces of cross-compiled FOSS software with clunky dalvik wrappers over them, and my contempt.
5. I’d like to reiterate that the WebOS development environment was brilliant. The tool-chain was built completely out of open, standard components and languages. No custom JVM substitute to provide lock-in, patent wars, and wasted cycles. No effectively domain specific language (ObjectiveC with weird libraries? Really?). Just a clean interaction model built on top of HTML, CSS, and Javascript, native binaries in C/C++ using STL and OpenGL, and an interface to connect the two.
4. I pretty much agree with this Ars article on how it should have gone down, with an additional “they should have hurried the fuck up” to cap it off.

What I really want in a device is a pocket POSIX workstation with a clean Mobile UI. I’ve ranted about this before. A WebOS device with decent hardware (High-resolution screen, usable keyboard, removable storage) would have been nearly perfect, and the Pre3 was almost it. But it was six months late, lacked removable storage, and has now been cancelled between its European and US release. I’ll probably end up with a HTC Doubleshot (aka. MyTouch 4G Slide) shortly here, as Android is the last platform standing that meets my most basic requirements, and T-mobile and HTC (now with Unlocked Bootloaders!) are the least evil respective sources of service and devices. At least there is a Linux system buried under there somewhere, and now that Matias Duarte has moved to google the Android UI might improve. And hell, maybe I’ll bargin-bin a WebOS device in a couple months as they’re being dumped, just for sport.

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

Humble Indie Bundle, Again

The Humble Inidie Bundle folks have a new set available, labelled #3. (I guess the last one was “Humble Frozenbyte Bundle” and thus not numbered). I liked Crayon Physics when it was an experiment on Maemo, and the collection of puzzle platformers that make up most of the balance look worthwhile. Once again, I’m in for $15.
EDIT: My mistake, the Maemo physics game I was thinking of was a contemporary play-alike called Numpty Physics

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

Minecraft Survivalism

While looking for something idle to do after I was out of patience for code the other day, I came across the Survivalism mod of Minecraft. Minecraft is a good sandbox, and a fair social activity, but isn’t terribly interesting as a game due to lack of objectives. Survivalism adds requirements for drinking, eating, and rest that make the game considerably more urgent and challenging, and gives the player a limited number of lives which changes the dynamic by keeping games finite. It lends a kind of rogue-like feel, which makes it way more interesting as a game. As we all know, Dying is Fun.

Posted in Computers, DIY, Entertainment | 2 Comments

Haiku Alpha3

The Haiku Project pushed out an Alpha3 release over the weekend, and, having an abiding love for interesting little OSes, I pulled it down to fiddle with, just like the previous releases.

Just for fun, I wrote this post and did the requisite research and link gathering in a Haiku Alpha3 VM – although admittedly I brought it up in Chrome on the host system for a spell check before posting, as that feature, while nominally present, didn’t appear to work in WebPositive.

Since Alpha2 Haiku has gained some more polish, both in the OS and the growing collection of software, without gaining bulk. The clean, well designed interfaces, integral threading support, and search and media features that made BeOS so impressive (and portable) in the 90s have been showing up elsewhere (sometimes rather directly; Apple hired Dominic Giampaolo, who worked on the search and indexing features in BeOS and BeFS for Spotlight, which is an inferior clone of BeOS’s integral search mechanism), but using them on “BeOS” again is a reminder that Be was generally better, having been designed from the ground up with those features in mind.

The lack of bulk is the really refreshing thing – Haiku presents a POSIX system with a custom graphical interface in an incredibly light package. To make some examples, bringing up a Linux box with X and a modern desktop generally soaks up on the order of 200MB of RAM. Haiku A3 boots into 75, and isn’t missing anything obvious. Chromium routinely gorges itself on several gigabytes of RAM – presently, WebPositive (a webkit-based successor to the old BeOS native web browserNetPositive, which was charmingly full of puns and haiku, which are in turn the source of the Haiku project’s name) with eight tabs is using less than 85MB. We wont’ even talk about the other Desktop OS’s memory consumption behaviors.

There are a few things that are quirky to those acclimated to other modern OSes. Be’s window management behavior is a little different than other modern GUIs, but only takes a few minutes to get used to, and is certainly less aberrant than some of the more exotic X window managers. Similarly, the Alt- instead of Ctrl- based shortcuts take some instinct-breaking to use, but are sensible (they don’t interfere with terminals), and can be re-mapped if they become too frustrating.

The development process is pretty cool to watch too: I haven’t been involved or watching particularly closely, but every now and then high points like the row about package management(vitriolic external version linked) or the brilliant GCC Hybrid system that allows both legacy BeOS and modern software to work on Haiku pop into my sphere of attention and get me interested.

Admittedly, there are some unequivocal downsides. Hardware support is lacking, especially in terms of graphics drivers. Major strides have been made since A2 on the hardware front, with reasonably robust system for things like 802.11 wireless and printing in place now, but it is still deep in the second class citizen category drivers wise. Likewise, software for which there is no open specification (ie. Flash better than that provided by gnash) is completely absent. There is also the note that while it generally behaves better than the final releases of many pieces of software I’ve used, it is an alpha release. I managed to crash WebPositive with only a little bit of provocation, and I’m sure similar bugs exist elsewhere in the system.

The only new breakage I found with A3 is that it doesn’t seem to like to Boot in VirtualBox (at least v4.0.8) unless there is a serial device attached – I see no errors in the log it prints, but it likes to have it there. I just have it writing out to a log file in its VM directory to keep it happy.

If I had a resource-constrained system (particularly with limited screen real-estate and not much in the way of GPU, like a low end netbook), I’m pretty sure I’d try installing Haiku on it despite the Alpha-release roughness – it’s that impressive.

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

Internet Communication Failiure

I’ve had a dynamic DNS beacon set up to get back into my home machines for a couple years, and until yesterday it worked perfectly. When I went looking for why I couldn’t get to my SSH server, I found that I couldn’t log in to my DynDNS account, and a stream of errors from the router. Upon further investigation, DynDNS apparently sent a 5-day warning before expiration — which gmail helpfully marked as spam/possible phishing and kept out of my inbox until the account had expired. I guess people trying to do sketchy things with dyndns sub-domains have caused all of them to be blacklisted with the major email services.

I’d really like to have a DynamicDNS path attached to a subdomain from here, but none of the attractive hosting services had the feature included, and I haven’t figure out if/how to go about setting it up for myself. Until I have a chance to sort that out, I’m setting it back up with DynDNS (with a different domain, the old one was under “selfip.org” – not on the free menu anymore), but it’s an interesting failure for a collection of services designed for communication. It is also rather interesting how rarely Insight (the local Cable ISP) turns over IPs.

Posted in Computers, DIY, General | 1 Comment

WiiU Controller

I don’t really get excited about consoles, but the WiiU’s newly announced enormous, screen bearing controller looks to me like it will be joining the Wiimote and Kinect as a delightful object for hacking- lots of buttons and sensors, radio (presumably Bluetooth), large screen, and high-volume consumer electronics pricing. It should enable some neat multi-player dynamics (always Nintendo’s strong point), which I honestly expect to be a load of fun, but I’m more interested in seeing the inevitable uses as automation controllers and the like.

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

Natty Virtualbox

I’ve been playing with virtual machines a lot lately, and one of the more interesting uses was getting to check out the mess that is Ubuntu 11.04 without devoting any hardware to the experiment. In the same spree I have also installed a bunch of the mobile OSes that run on devices slated for release this summer – if I get to it I’ll put up another post about the results of trying to indulge my curiosity about those later.

The short version is “Everything bad you have heard about Unity is true.” Lots of places have taken some time out recently to hate on it, but it is so hatable I just can’t resist. It really reminds me of broken OS X, with even fewer configuration options. I also has lots of things that happen automatically… under circumstances that take some experimentation to figure out: for example, the dock-thing that lives down the left side of the screen (no, you can’t move it) will sometimes side out of view – it has to do with occlusion by other windows, but the circumstances under which it appears and disappears seem almost non-deterministic. The dock-thing also handles large numbers of displayed applications very poorly, collapses extras toward the top with a sort of accordion fold graphic, where they aren’t easily visible. I didn’t catch a picture of it, but it also uses a mac-like “all menu bars in the top bar” scheme, in which it occludes the application’s name with it’s menu in a move reminiscent of the centered apple menu on early OS X builds.

The main menu emerges from an unobtrusive little rectangle in the top left corner, which is part of the dock-thing, not the top bar it occludes. The menu itself is one of those Freeform Search + Icons things that so many platforms have adopted recently – I’m pretty ambivalent about the design in general; well made examples do have a lot of potential in that they hook both “Knowledge in the head” (name of program/task) and “Knowledge in the world” (visual memory for icon, etc.). The problem is they tend to ruin spatial/hierarchal modes by dynamically re-ordering programs under some ambiguous scheme. This one is neither the best nor the worst example I’ve tried to use.

Some familiar desktop interface elements are missing or replaced with less flexible alternatives; for example the system tray appears to be gone – you still get dbus notification popups (for which there is no dismiss button, they just time out when they are good and ready), and fixed-function messenging and media tray objects, but there isn’t a general-purpose tray for tray applets or things like VLC and Pidgin to dock themselves. In a related behavior, I spent about 20 minutes trying to figure out the integrated media player features – a tray-thing for Banshee lives inside the volume icon in the not-a-tray, whether or not Banshee is running, and because of its launch behavior it is really hard to quit Banshee, or even figure out if it is running. It also doesn’t appear to be removable, and there doesn’t appear to be any way to replace it with another media player.

Another thing that combines many of the above problems: the workspace and task switching behavior is actually worse than OS X’s – something I didn’t think was possible. There is no straightforward way to get a window list, anywhere – at best, there is a pip next to each icon in the dock-thing for each active window, which counts over all virtual desktops. If you click the dock-thing icon for an application with multiple windows, it does an exposé-like action and tiles large thumbnails of all the application’s windows in front of you – regardless of which desktop they are on.

The familiar dynamic “Tiny representation of each virtual desktop” switcher that has been around since the mid 80s is gone – instead, there is an ambiguous static button in the dock-thing, which brings up an exposé-like overview of your desktops. The same view can be summoned up with Super+S. You can at least interact with windows while it is zoomed out to the overview, like you otherwise would in the dynamic switcher.
All these “wonderful” 3d features descend from a common misfeature- the entire desktop is GL. Not composited – GL. Its interactions with other GL programs are fascinating and generally horribly broken. While playing with it I had to kill a glxgears instance because the display corrupted and stopped updating while it ran – there isn’t a GL program simpler than glxgears. I also get some weird GL redraw issues switching in and out of the virtual machine, but that is an interaction, not an intrinsic problem.
There are a handful of good things, in particular, the installer does something very right: once you have given enough input to begin installation, it starts moving things over to the hard disk, and it does everything requiring input up front in one pass, rather than the usual intermittent prompts that cause the installer to stop wait for input. More installers need to do that; keeping state isn’t hard, and stopping at random intervals to prompt for user input is broken. It’s also worth noting that making Unity work in Virtualbox is easy: enable 3D Acceleration in the VM, tap the menu item to install VirtualBox Guest Additions, give the password for the automatic installation script, and reboot. Next time it comes up, you get Unity.
I agree with the idea that computer UI could use improvement; I wouldn’t be looking at it as an area of research if I didn’t believe it was an intresting problem. If Unity were being presented as an experiment, I would be looking at it like E17– not exactly practical, but interesting, and good enough for the dedicated to run full time as part of the experiment. Instead, Canonical has foisted it upon the world as finished software, and set it as the default in the currently in vogue “easy” Linux distribution, and it is totally unacceptable from that perspective.

Posted in Computers, DIY, Entertainment, General | Leave a comment

XBMC Lives On

I just upgraded my (ancient, bought used, and thoroughly hacked within hours) Xbox’s XBMC install to the new XBMC4Xbox 3.0.1 stable release that came out Thursday. I continue to be amazed that there is still a team of hackers maintaining XBMC for the original Xbox hardware (the main XBMC team deprecated it as a target platform over a year ago), and that it is still the slickest media center I’ve ever used. It actually took me a minute to remember how to update the dash, since I hadn’t changed the configs on the Xbox in almost two years (fyi: in my configuration, shortcut xbe named “xbmc.xbe” as that is the default boot dash, xbmc.cfg contains the path to the default.xbe you want to launch – this is a breadcrumb for myself). Eventually I’ll have to replace the thing with a (quieter, more capable, and less hacked) PC running XBMC on top of a Linux system with a suitable remote, but for standard definition the Xbox is so good I just never feel the need to pay for the replacement parts. Maybe when I’m living somewhere more space constrained I’ll build a proper machine for that and roll my household server in as well.
It’s always sort of incredible to think back to how the Xbox scene was largely the prototype for all subsequent consumer device hacking efforts, and that XBMC is basically the model after which the current generation consoles media and development features were designed. It’s also mind blowing how capable a 733Mhz Coppermine Celeron and a chopped down Geforce3, sharing 64Mb of RAM between them is when running bloat-free dedicated software – designers of the current round of corpulent crap take note.

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

More Spiffchorder

While I was on my hardware-fiddling spree, I came across the Spiffchorder project pile tucked into the keyboard drawer of my desk. Last time I played with it I had written off the perfboard assembled one, which had been reworked so many times it looked like a solder ball, and left a working one on a breadboard. This meant it was taking up surface- and breadboard- space, and that would not do. So, I sat down, laid out a less-insane board, and soldered it up in one pass.

The design isn’t well suited to the individual-pad perfboard I had around (lots of n>2 component nodes), so I tried a fabrication strategy I hadn’t used before to help simplify: I almost completely populated the perfboard, ran a piece of tape over the components, flipped it, and soldered, rather than re-adding the components as I went. It actually worked pretty nicely. It is a little bigger than the last layout I used, but this one worked on the first try – or at least the first try where I had a programmed UC plugged in to the socket…

In a related matter, one of the two chips I thought I had burnt with the appropriate firmware doesn’t seem to be working, and because there is a bug with the -g flag in the current version of gcc-avr, I can’t burn another from the boxes I have set up for working with AVRs (the VUSB stack needs the -g flag).

The actual chorder I made still sucks almost to the point of being unusable, largely owing to a mistake on the particular tactile buttons I got when I ordered the parts. Eventually something will have to be done about that, but the chorder is on a header, and the project is now in an electronically working state, not taking up prototyping supplies, and can be shoved in a box when idle.

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

CNC Update

I’ve been in a very mechanical sort of mood for the last couple days, no doubt owing to the all-software (and intangible even for that – what does that thing you’ve been working on do? – well, if I were sure it was working it would verify that an input sequence is valid in this language I made up…) sorts of things I’ve been doing of late. So, I pulled out my pile of mechatronics parts and started fiddling with it.

I’ve previously documented some of this elsewhere, and this isn’t a finished project, but I need a brain dump to package up various information, so I’m going to do a fairly thorough write up.
Continue reading

Posted in Computers, DIY, Electronics, Entertainment, General, Objects | 2 Comments