Obamacare Website Inspired Rant

I’ve been in tech a while now, and been through a couple of Web site launches, though not for a long time. Technology has glitches, and they get fixed, and then you find the next round. You find out problems when you have users. So, go to the ACA web site, beat the snot out of that thing and report it.

But I will say this: it should be an open source code base. There are a lot of people that want to see this thing succeed, and being able to look at the code is the best way to make that happen. Linus Torvalds, of Linux fame, once said “With enough eyes, all bugs are shallow.” We’ve lived for a long time with the effects of having technology handed to us and being commanded to consume it. “Would you buy a car with the hood welded shut?” And yet, time and time again, that is what we are asked to do.

Why do I make my life harder by using only Linux? Because there is nothing more important to Freedom than information, and nothing more important to free information than having control over the machine that controls your information. Yes, I have to deal with Android, which is sort of Linux, and sort of a black box. I used WebOS (Palm) as long as I could. I do not use Apple products and I do not Use Microsoft products because, when it comes down to it, I want access to my tools.

I wood carve because I like the ability to take a raw material and make something out of it. For thousands of years, we only had simple things that came from the earth. The magic of the smith was available to any that would learn it. Or of the wainwright, or the carpenter. We could fashion our environment with only the tools from our environment. Now we live in a world where these tools are three and for layers abstracted from us. The primary tool that does all this abstraction is the computer. A simple tool that does little more than fetches two numbers from memory, performs basic arithmetic on those numbers, and stores them back in memory. And from this simplest of rules we have machines that can keep us safe , or that can manipulate a tool to fashion a block of wood into whatever shape we can dream of…or anyone can.

Apples was a has-been company until it gave up on trying to write its own preemptive multitasking operating system and decided to build on top of an Open Source one. Its biggest competitor, Microsoft, once capable of putting the final nail in the coffin, bailed it out. Now that same competitor finds itself being edged out of the very market it dominated. At the low end and at the high end, machines built on a foundation of Open Source have ushered in an era of greater stability in computing. Do we forget how we railed against the blue-screen-of-death?

And the Web, that greatest of communication mediums that we have found to date, what made it successful? Open Standards and Open Source. On the server side, sites were powered by Apache, and a slew of nascent new programming languages. Not all was open source. The browser was not, and we saw huge browser incompatibilities. The Netscape/Microsoft battle left Netscape in ruins, but the code that they posted, the Mozilla browser, finally gave us a completely Open Source stack, from Operating System, to user interface, to server, for so many services.

So, yeah, the website that is a key piece of the ACA has problems. Most major web sites do when they are launched. Most minor ones do to. And by most, I mean all. The opponents of the ACA point to it as an example of Government incompetence. Nah. I see it as the latest example of a poor approach to information management. You want security? Use publicly analyzed algorithms and keep your keys secret. You want a solid web site…open the code, and build the security measures on top of best practices. doesn’t matter if you are huge or tiny, if you are doing something brand new, or just exposing your pictures to your friends over the internet.

Of course, as I type this, I realize it is much too long as a rant for Facebook status, and it is something I want to keep. It is mine; I will post it on my blog, running Word Press, on a Linux system running Debian (a competitor to where I work in all the right ways) and finish editing it in emacs. Only then will post it on Facebook.

Hacking the Palm Pre from Fedora

My work machine is a Fedora 11 (F11) X86_64 system. The palm development SDK is distributed as a series of .deb packages, specifically targeted at an 32 bit Ubuntu 8 system. While I have the advantage of having a 32bit Debian system at home, so I was able to run through the setup process for development, ideally I would be able to attach to and control the Pre from my work machine.

The first step is to download the .deb files onto the F11 machine. I actually only needed the novacom deb, which in my case is novacom_1.0.38_i386.deb. Deb files are accessable using ar (happy talk like a pirate day!).

In a new and empty directory, run
ar -vxf ~/novacom_1.0.38_i386.deb

And you will see the three contained files:

control.tar.gz data.tar.gz debian-binary

Extract the data file using tar

tar -zxf data.tar.g

This will add a usr directory with the binaries in

usr/local/bin/novacom{d}

Novacom is a two piece effort: a daemon an a client. First make sure you can run the daemon.

First, lets see the file type:

file novacomd

novacomd: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped

Let’s see what libraries it requires:

ldd novacomd
linux-gate.so.1 => (0x008f1000)
libpthread.so.0 => /lib/libpthread.so.0 (0x0078a000)
libusb-0.1.so.4 => not found
libc.so.6 => /lib/libc.so.6 (0x00110000)
/lib/ld-linux.so.2 (0x006ae000)

Note that the USB library is missing. I have it installed on my system, but only the 64 bit version. To get the 32 bit version, first, figure out what the 32 bit vversion is named.

yum search libusb

libusb.i586

And install

sudo yum install libusb.i586

F11 and the RHEL based approach for running 32bit apps on 64 makes this fairly easy to do. Unlike Debian based system which pretty much require you building a chroot if you are going to run a significant amount of 32 bit binaries, Red Hat based systems put 64 bit libraries into /usr/lib64 and 32 bit libraries int /usr/lib, so they don’t conflict. Now lddd shows we have everything:

ldd novacomd
linux-gate.so.1 => (0x00262000)
libpthread.so.0 => /lib/libpthread.so.0 (0x008a5000)
libusb-0.1.so.4 => /usr/lib/libusb-0.1.so.4 (0x00770000)
libc.so.6 => /lib/libc.so.6 (0x00263000)
/lib/ld-linux.so.2 (0x006ae00)

And we can now run this. Since it is talking straight to hardware, it insists on running as root:

./novacomd
[2009/9/22 11:40:48] novacomd version novacomd-62 starting…
[2009/9/22 11:40:48] novacomctl socket ready to accept
[2009/9/22 11:40:48] need to run as super user to access usb

so:

sudo ./novacomd
[2009/9/22 11:41:11] novacomd version novacomd-62 starting…
[2009/9/22 11:41:11] novacomctl socket ready to accept
[2009/9/22 11:41:11] sending rst
[2009/9/22 11:41:11] sending rst
[2009/9/22 11:41:11] sending rst
[2009/9/22 11:41:11] going online
[2009/9/22 11:41:11] novacom_register_device:188: dev ‘e851588c804e8caa722490a0314ce9782dd4d9a4’ via usb type castle-linux

No we turn our attention to the client piece.

file novacom
novacom: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped
[ayoung@ayoung novacom]$ ldd novacom
linux-gate.so.1 =>  (0x00173000)
libc.so.6 => /lib/libc.so.6 (0x006d2000)
/lib/ld-linux.so.2 (0x006ae000)

So we are ready to run.  There is no novaterm in this deb.  Instead, you run novacom in terminal mode.  A little noted line in that I will make big here is:

./novacom $* -t open tty://0

Reading HTML docs on an ebook reader

The Calibre project is essential to me making full use of my SOny ebook reader. I recently wanted to pull down the HTML documentation for Red Hat Satellite server and load it to the reader. It was this simple:

wget -rL http://www.redhat.com/docs/manuals/satellite/Red_Hat_Network_Satellite-5.1.0/html/Installation_Guide/index.html

html2epub www.redhat.com/docs/manuals/satellite/Red_Hat_Network_Satellite-5.1.0/html/Installation_Guide/index.html

I probably should have used the -t option to set the title, as I had to rename the file from index.epub.