February 28, 2012

I spent two weeks lugging around a ThinkPad laptop. Yes, I know this is not a hard thing to do. After all, it only weighs 5 pounds (2.26Kilos). But if you carry five pounds up and down a mountain several times, it gets heavy. Really heavy!

So I started thinking about getting a very small computer, loading my applications on and leaving it where I could access it easily. That's where the Raspberry Pi comes in. It's a very small computer – about the size of a deck of cards. It has a pretty powerful ARM11 chip on it. It will run one or two Linux systems, plans are for Debian and Fedora. Best of all, the version B (which comes with an Ethernet port on it) costs only $35!

"Where can I get one," you ask? Why they go on sale at 6am GMT tomorrow morning.

Just to get my feet wet though, I thought I'd check to see how small a Virtual Machine I could create that would allow me to boot up to a BASH command-line and run a current version of NMAP. The results were heartening. Although the Raspberry Pi only has 256Mb of memory so it might be a stretch to stuff the whole thing into RAM.

February 4, 2012

As Fuzzy Fogtop once remarked after arriving at his destination of Pinsk, trains and their passengers are completely different and entirely the same, if you see what I mean. !(http://db.tt/Ghsjh0ZG) When we landed in Tel Aviv, we decided to take the train North to Haifa. It’s not far. Well, nothing is all that far in Israel. We struggled with the luggage and managed to find ourselves standing in front of a machine which dispenses tickets. That’s when it became painfully obvious that twenty minutes with a How-to-Speak-Hebrew book would have been helpful. Linda spotted the tiny button labeled “English” well before I did. We again coerced the luggage to do our bidding and get on the train. The current rules on how many bags you can carry and this crazy “Winter” weather took its toll on our packing skills. Fewer, bigger bags rather than more and smaller was the order of the day. And pack them to the gills!

We passed two stops when a mom and her precocious 12 year-old daughter dropped in and asked why we had luggage taking up space people could use. We accommodated them and moved our bags around. They had been out shopping all day and were tired. I had been on a plane all night next to a noisy teenager. I was in total agreement. After a few minutes casual conversation in English, the daughter drifted away into her own little world. She listened to music, singing the lyrics just before nodding off. Mom, unable to contain herself, stopped answering email on her iPhone and snapped a picture. The sound of the camera roused the snoozing daughter who gasped, “you’re not going to put that on Facebook are you?” Mom laughed. I want everyone to see my adorable daughter. I’m still snooping Facebook. I’m sure I can find that picture.

Just then, a woman bearing a striking resemblance to the “crazy cat lady” on the Simpsons came walking up to the aisle next to us. She held up a passport (possibly hers) and a read in Hebrew in a monotonic voice from a piece of paper. Then she moved up five paces and repeated the process. The daughter was wide eyed, “What was that?” The mom explained that she is saying she needs an operation and if she doesn’t get it she’ll die. She’s asking for money. But if you give her some money, she’ll go straight to the bar and drink it away.

It was their stop and they got off. Fortunately, the crazy-cat-lady was well away. But their seat was claimed by a wild eyed young lad with a shaggy haircut and a beard. He wouldn’t let anyone sit in the second seat, turning them away in stern Hebrew. Great, I thought, he wants to accost these crazy Yanks all on his own. I started hoping our stop was up next. But at the next stop, another young lad got on. Same beard style but carrying a rifle. He sat down. He asked if they could move the remaining bags to make us more comfortable. Well, of course, Mister I’ve-got-the-gun! They smiled at each other and started talking. Just like normal people. And in English. That’s something you don’t see on trains every day. I started suspecting something odd was going on. Turns out they are brothers from Calgary – yeah, the one in Canada. The one that stole our Atlanta Flames. They decided to come to Israel after high school and join the army. The Israeli army. Nice lads. Not crazy at all. They helped us find our stop and kept the train from moving while we got off. No really. One of them had a rifle, remember? Israeli army?

December 31, 2011

Years ago I told my brother I’d make a website for him. My sister beat me to it. While I was cleaning out my 2011 todo list I came across the lingering promise. Right below it was another longstanding item the desperately needed cleaning out, Experiment with Jekyll on GitHub. Hmmmm… why not combine the two of them?

GitHub Pages are part of their online web service used to publish web pages for users and their programming projects. The pages can be very complex, composed using Liquid Templating Engine and run through Jekyll which is a “blog aware, static site generator” which converts text files written using a formatting language like Markdown or templating engine like Liquid into a functional website.

I know I’m late to the party on Jekyll. I should have done my todo back in 2010, when I put it on my list. But that’s another story altogether.

More recently (only missed this bus by six months!), OctoPress has been all the rage. OctoPress builds on Jekyll with themes, plugins and a host of other goodies. Both are written in Ruby which is a programming language I’ve tried hard to stay away from. It’s not that I don’t like it, it’s just that I don’t need another programming language. I mean, once you know Perl…

Since my sister had already beaten me to the punch, I decided to use a combination of Jekyll, GitHub Pages and Cloud9IDE to create a Fansite for my brother and learn a bit of something in the process. So I created the Totally Paul Fansite.

Problems with Jekyll

I did encounter a few of problems with Jekyll. First of all, the documentation leaves some confusion about when a page vs. a post variable is to be used. When trying to use one or the other in an IF/Else statement, it took some experimenting to figure out which one was right. Then I found that the built-in variables were often less consistent than the ones I supplied. This trial-and-error method led to finding there is no “verbose” mode which would help troubleshoot the problems I encountered. Pages are dynamically created using a combination of layout web pages and Markdown formatted text files and front matter, the variables deposited at the beginning of the text file. The process is very black box, especially to a Perl guy.

Cool things about Jekyll

There are several really cool things that Jekyll does. One was the ability to run an entry through Jekyll, formatting in the process and depositing additional variables into the output which is itself run through another round of formatting. I would say it is recursive, but this might be a bit excessive since I don’t know Ruby and therefore haven’t reviewed the source code.

Biggest Issue

The biggest issue with Jekyll of course, is the function it performs itself. It is a static blog generator. Once it finishes its recursive formatting and replacing and substituting, it deposits the final files in a series directories based on the year, month and day (hence it’s being “blog aware”).

_site

_site/index.html

_site/2011

_site/2011/12

_site/2011/12/31

_site/2011/12/31/2011-12-31-blog_entry.html

But these pages themselves are static web pages. They reload the whole page when you navigate from one page to another.

December 25, 2011

What I’ve Learned from My Blogs

It was every Sunday afternoon for as far back as I can remember. After we got home from church, after a sumptuous Sunday dinner of roast beef, potatoes and carrots, after doing the dishes, after finding the best among the rerunning Sunday afternoon movies, my mom would sit down in the living room, pad of paper and pen in hand to write a letter to her mother, my grandmother. I can only imagine she wrote about the adventures and discoveries of her life like she still does on her current blog.

When I went away to college, I wrote letters to my mom and dad. Not every single Sunday. But often. On a visit to my parents a couple years ago, my mother handed me a bulging gallon size plastic bag stuffed full of papers. They were my letters. Over time, though, the number of letters dwindled. And dwindled again. I just couldn’t keep up with the Sunday schedule. And so, my first blog was born.

Blosxom — 8/2005

I’ll see if additional data is easy to add and then, I’ll put pictures here.Perhaps my mom will have an easier time seeing these in Blog format than in e-mail.

With these words, I opened a blog. But it wasn’t just a vehicle for sending messages to my mother and avoiding the Sunday afternoon guilty feeling that I should be writing a letter, buying a stamp and stuffing an envelope. It was a learning tool. Bloxsom was chosen to help me learn more about one thing, PERL. Bloxsom is written in PERL, a language in which I’d just finished a project, tSmoke, and contributed to Smokeping, a network latency graphing tool. I learned a lot writing software in PERL. The most meaningful thing was that PERL is one of those Write Only programming languages. Meaningful in that I found that the longer I didn’t write in PERL, the less likely I was to remember what in the heck I intended.

The content on the Bloxsom blog was text with HTML snippets to markup, or instructions for displayting the text. It is pretty simple and pretty straightforward. Each entry was a single text file. No database required.

About this time, I helped set up a collaboration tool for a group. I discovered the power of the Wiki and in particular, OddMuse Wiki software. OddMuse is pretty cool and shares some features in common with Bloxsom. First of all there is no back-end database, just text files. The markup is different, it’s Creole, a common Wiki markup language. One feature I liked about OddMuse was its descent from a previous version of Perl blogging application called Usemod. You”ve gotta love the clever pun. Right?

I always had to be cognizant of that blog running in the background on my computer. The Abyss Web Server was always running on my computer, using up resources, chewing up memory, spitting out blog posts. And there was always the off chance that my mom would be looking for my blog when I rebooted. I decided I needed to learn something else. That’s when I found Blojsom.

Blojsom — 6/2006

I upgraded my blogging platform in two ways. First of all, I thought I’d use an enterprise-grade coding platform, you know, Java. Second, I thought I’d find a way to run it on an available second machine – not the best in the world, mind you, but available. After researching blogging software, I came across Blojsom both bills. At that time, Blojsom was a reasonably new bit of code, written in Java and provided as a .WAR (Web Application Archive) file for deployment as a Java web application on a servlet container like RESIN.

I liked Blojsom a lot. First of all, the data migration took no effort at all. Blojsom, after all, was designed to use the same text format as Bloxsom. Since there was no back-end server, I did not have to worry about overloading the light weight “server.” And with Resin as an underlying web server, I could learn a lot about how Java programs, Java Server Pages (JSP) work. One still undone item on my to do list asks me to “Write a How-To on Blojsom Plugins.” Someday. Maybe.

In February, 2006, I decided to upgrade the OddMuse wiki to something a little more usable and with some additional security. After some research I chose PMWiki. PMWiki didn’t use the Creole markup, but a form of markup that favors writers over readers, but was still similar enough that it was a straightfoward migration. It did not require a back-end database either and allowed plain text files. All of these features compensated for the fact that I had to learn to use one more programming language, PHP, to effectively operate it.

WordPress, Yes, WordPress — 8/2008

It was about late summer in Atlanta when I started getting regular emails from my mother on odd Wednesday mornings telling me that my blog was down. It would not have been nearly so stressful if it weren’t for the fact that she is in the Central time zone and I am in the Eastern time zone. So by the time she checked my blog, I was already at work and my hands were tied! I spent a few weeks troubleshooting and never found anything really wrong. Then, sure enough, the very next Wednesday, I got another email and I finally understood. You see, the blog was running on Resin web server which was running as a service on a Windows XP machine (the not very powerful, remember?). So the first Tuesday of every month, Microsoft would push security updates to the computer and it would reboot… or try to. I decided it was time to move to another platform. One that didn’t depend on my Comcast account being active or the ability of a Windows XP machine to automatically shut down a running Java service.

With WordPress, I didn’t have to learn a new markup language, its built-in editor took care of adding the appropriate HTML formatting. better, WordPress was hosted out there somewhere on the Internet. My mom never had to alert me that my machine had failed a Microsoft patch Tuesday reboot again. i could concentrate on the content and not on the technology.

But then along came Twitter and Jaiku and Identica and Plurk and FriendFeed. Naturally I wanted to notify all my “friends” that I’d posted a clever tome, right? But how oh, how do I update them all? It seemed a terrible quandry.

Along Comes Posterous — 2/2010

I started using Posterous in Spring, almost giddy that I could post to all my social media simply by sending an email. The simplified hosting, the ease of markup and the simplicity of editing are good stuff. But outside the names of the plethora of social media, what was I learning?

Side trip Down Markup Lane

All these endeavors had a common, underlying theme: the markup. The purpose of markup was to tell a device how to display the content it was showing off. I’d used several kinds of markup. My first introduction to a markup language was the one built into the core of Peachtext, the editing component of a word processing package developed by Peachtree Software called Peachtext 5000 where I worked back in 1983. Then, the markup controlled not the font decoration, font size or type face but how the text was physically printed on paper. For example, bold facing was often achieved by having the print head backspace and reprint the characters. If the printer was capable of kerning and proportional fonts, it would be slightly offset from the original to really emphasize the boldface.

Apple’s MacIntosh permitted screens to display fancy fonts and this new fangled HTML thing did the same thing. Heck you could even make your text blink if you wanted to. But no does that. right? But HTML doesn’t look very nice. In fact, it’s really hard to write in – at least with old skool text editors like Peachtext and VIM. So John Gruber came up with a method to use regular characters to take the place of markup in a text file and convert it into HTML. He called it Markdown. Clever, eh? Of course this wasn’t the only attempt to make it easy to write marked up text which could easily be converted into HTML. Textile which, to be honest, looks a lot more like Peachtext than Markdown does, is supposed to be the “Humane web text generator” from Dean Allen. Of course, someone came up with one called “Markdown Extra.” The grandfather of them all is TeX(http://www.tug.org/texshowcase/) created by Donald Knuth. I’ve recently stumbled on the one called Showdown which lets you do the markup conversion right inside your web browser.

Mythical Holy Grail: A Blog with No Home

What am I really looking for now? Well, now that’s a good question. With the advent of tablets over laptops, my real desire is a blog with no home.

I want to put my data on a cloud provider, access it from anywhere using my tablet, my phone, my work computer, my home laptop or whatever, then compile the source formatting into HTML and copy it from the repository provider to a web server.

That’s kind of the goal of Jekyll and its cousin Octopress. These allow you to create a repository for your blog on your own computer, compile it to static HTML pages, push it to GitHub Pages– and publish it using their facilities. It’s clever. Very clever. Calepin takes this one step further, incorporating its anagram Markdown conversion tool, Pelican written in Python to pull files from your Dropbox account and publish them for you in HTML. Even cleverer. I’ve posted a couple of delicious items there myself. But I still have to hook up my computer, some computer, to Dropbox. The GitHub/Jekyll/OctoPress also really want you to create a “local” repository. Meaning that if you don’t have access to your computer, you can’t write.

Cloud9 – The Future

I’ve been using Cloud9 IDE to write some software recently. It’s connected to GitHub out of the box. It’s not hosted on my local system. So I effectively have a clever editor and access to my GiHub account wherever I am. I have even tested a Jekyll web page written solely on Cloud9, and pushed to GitHub. Yes folks, there was no local storage involved with this trick. My fingers never left my hands (or the keyboard). Two other things keep me from moving to this technique.

The editing features at Cloud9 do not work with an iPad. At all. It’s not like I haven’t asked. Nicely, even. It just doesn’t work. Sigh. It’s free, what are you going to do? It’s not like it’s open source so I could write my own interface. Oh, right. It is. But then I’d have to host my own instance of it, and defeat the whole purpose.

I’d really like to do a test post on Cloud9 so I could see the copy before it gets published. But this would require me to be able to run a script on Cloud9 and save the output as a file. That also doesn’t work. But we’re close.

We’re almost there, mom! A cloud-based blog that I can update any given Sunday (no matter what the football teams are doing) is right around the corner. And what have I learned? It’s a lot of work to publish a blog. The more work I can get the cloud to do, the better. And even if it takes a lot of work to ge them to do it, it will be worth it. Although some times, I feel like just getting out a pen and paper and stuffing an envelope.

Oh, and just so you know… this is/was a test of how well Posterous accepts Markdown.

November 9, 2011

In this game, the first player thinks up a phrase or sentence and whispers it to his neighbor. The neighbor then whispers to the next in line. This continues around to the end where the last person announces the result. Jocularity ensues when the final whispered message bears no resemblance whatsoever to the first. This is exactly the opposite of encryption. Encryption is all about keeping a message secret. Decryption passes on the message exactly as it began no matter how many people have handled it.

The value of having a secret is being able to tell someone. The value of encrypting a message lies in permitting someone to decrypt that message later. But what happens if you can't decrypt the message? It's just like the game of Telephone but not nearly as much fun.

I was working on a Java project to accept a SAML Assertion in an HTTP POST of a hidden form variable encrypted using triple-DES (DESede). The purpose was to permit a cross-company federated login authenticated remotely as asserted by the the identity provider. Testing this process is difficult without coordinating multiple schedules. So I figured a simple solution might be to exercise some JavaScript muscles and build a Chrome Extension.

But DES is a complex encryption algorithm. As I reported earlier, there are precious few DES implementations in JavaScript. I only really came up with two. One only handles DES and the other produces undecryptable code. Well, to be honest, it will decrypt things it has encrypted itself. But this doesn't really help. It's like having a secret you can't share. Anything encrypted by Java was not decryptable by the JavaScript module.

I couldn't tell which one is wrong or even what the difference was. Only that it didn't work. I have even tried encrypting/decrypting by hand using Tropical Software's description to see if I could, you know… decypher the problem. No go.

Below is a comparison of encrypting a plain text message in Java, PHP (using mcrypt), PERL and JavaScript.

All decrypt what they encrypt, but they all need to be able to do that with each other. Note the wide divergence between Java and JavaScript. Personally, I blame the interaction of the JavaScript implementation double-precision floating-point and the integer conversion required to execute the required bitwise shifts.

The only solution to move the testing forward was to exercise the Kobayashi Maru option and refactor the problem. I wrote a very bad bit of command-line Java to generate an HTML page with a Triple-DES encrypted SAML assertion built-in.

August 5, 2011

My sister sent me some JavaScript a few weeks ago. She was neck deep in some work and needed to know why the columns in the online shopping cart didn’t subtotal and grand total. Oh, Boy! A scavenger hunt!

JQuery is the hottest thing in the Web Application/Browser programming world these days. It is a project created by John Resig back in 2006 designed to make JavaScript interactions with the HTML in a web browser simpler and more fluid. Well, in this case, I think they’ve gone too far.

The original cart author had used the JQuery command html() to pull data from the web page. In this case, that was the price of an object. Then it converted the html into a number and added it to a variable succinctly named “number.” Clever! Then it used the same feature to put back result on the web page as html. It was literally using the HTML as the paper tape in an adding machine!

August 4, 2011

Once in a great while the Internet yields up a great truth, with a capital "T." And that spells trouble, right here in River City.

I was on a grand search, leaving no stone unturned, no patch of ground unplowed, no brook uncrossed. I was looking for a way to use DES encryption in a JavaScript program for a Chrome Extension I was writing. What did you think I was looking for? The Golden Fleece?

So I did what comes naturally these days. I started to Google (Is "Google" a verb?). What I found was a plethora of implementations of the DES encryption algorithm in Javascript! it was a veritable gold mine of knowledge! And what's more, it meant that I could pilfer^H^H^H^H^H^H (those are backspace characters, by the way) reuse the code without having to rewrite it completely. But as I was checking through the actual JavaScript programs, I noticed something odd. They all seemed to have a very similar form. A few of them credited the original author, one Paul Tero, from July 2001 and Michael Hayworth (unreachable) who optimized the performance in November of 2001. But some of them emphatically did not. They simply reused the code. I was shocked to find so many people offering a service without crediting the original author(s). What a panoply of perfidy as they pilfered the code without backspaces or compunction.

Once I figured out what was going on, I went through the code listings very carefully and selected the Cheeso implementation since Dino Chiesa both credited the author(s) and "Re-packaged as a Javascript OO library." You other guys should remember:

"Once you start down the dark path, forever will it dominate your DEStiny."

I recently took on the task of pushing out a Federated Identity application based on SAML 2.0 and using Oracle Identity Federation. No question, the project was in trouble. The identity provider was producing assertions that couldn't be verified and consumed. The service provider sessions were rejecting everything. There was no getting around it. It emphatically did NOT work.

Among other things, the application was parsing the SAML assertions using Simple API for XML. Also known as SAX, this software has been around for quite some time. In fact, that's one of the things I noticed over the last two weeks of exercising my Google-fu. It's so old and so common that several bloggers have taken example code and commentary directly from the Oracle and SUN and IBM manuals and posted it as their own work. At first I was somewhat amused. But my goal was not amusement but to get from the NOT WORKING state to the JUST WORKS state.

I now understand a lot of how SAX works. I get that the parser is separate from the document handler. That the parser calls methods in the document handler to, uh, handle events which fire in response to structures found in the XML document (like start of document, start of element, elements, end of document to name a few). I didn't understand that before. In fact, I didn't know it even existed. As long as it just worked, I had no need to figure out how and why it worked the way it did. Or, in this case why it didn't work the way it didn't work.

The final problem wasn't really a problem with the SAX parser or the document handler or the callbacks which fire during the parsing of the document. It was a pesky little return value that wouldn't return a value. I tested it all the way through the process and found that as long as the parser was parsing and the document handler was handling, the variable had a value. But when they finished, it went all blank. Fortunately I stumbled upon one more resource that helped resolve that issue. The good folks at Code Ranch apparently enjoy working over the weekend and provided me a few pointers that finally put that issue to bed.

I have to say, if I had to recalibrate the color scan lines, frequency generators and sound side-band modulation phase shift every time I wanted to watch a movie, I'd read a lot more books. And maybe that wouldn't be such a bad thing.

July 9, 2011

Can a steely gray, hard metal that takes a high polish and has a high melting point revive a wimpy, dull overheating laptop? Let’s find out!

After my Snow Leopard hackintosh crashed and burned due to Apple’s 10.6.8 update (Apparently, I wasn’t the only one taken out by this update), I decided to try a couple of other recently released operating systems. First I tried MeeGo with less than stellar results. Not wanting to run a “kiddish” operating system (so tagged by my 13 year old grandson), I tried to figure out how to run ChromeOS. The first hurdle I ran into was that ChromeOS is not available as a downloadable operating system. You can’t even buy it. It’s only available if you buy a ChromeBook. Ok, that doesn’t fit the bill at all. The idea here is to resurrect a dead laptop (or rather one running a kiddish OS), not to go buy a new one!

A little more searching and I found that there is, like the Chrome browser, an open source version of ChromeOS: ChromiumOS. This is cool, but I really don’t feel like building the whole thing from scratch just to test it. Surely there is some other thrill seeker out there who has compiled this thing. Right? That’s when I noticed Hexxeh (pronounced “heck-see”) a (then) 17-year old who seems to enjoy all things ChromiumOS. He built his own version with something called Flow. This is built on a very “old” version of Chromium – probably almost five months old. For the latest and greatest, young Mr. Hexxeh has automated the nightly build process and produces a Vanilla build suitable for use on VMWare, VirtualBox and a USBKey. Be aware that as good as these are, they are not video accellerated and as a result, your mileage may vary. I found that the VMWare version did not work without modifying the virtual ethernet adapter which is by default AMD PCNET. The Intel 1000E works fine.

Along with Hexxeh’s excellent builds, there is another. At ChromeOS Lounge, in the Chromium OS forum, Suhail Kapoor announces his Chromium OS Vanilla builds. But all of these lack the specificity to work well on a tired, sluggish Dell Inspiron 1318. Then, as I was just about to give up hope, I noticed a small post in a tiny corner of the Internet. @DougAnson pointed to a new release of a version of ChromiumOS for the Dell Mini. Even Techie Buzz posted a note. So I downloaded it. In my tests using a USB key, it came up perfectly fine on the old Inspiron. The only problems I encountered were sound (as reported on Techie Buzz) and the wireless networking.

To install this Dell version to the laptop from the USB key, you need to enter the command line shell. This is done by using the keyboard combination Ctl-Alt-T (not Ctl-Alt-L as reported by Techie Buzz). While at the command-line you enter the real LINUX shell by a series of commands:

Ctl-Alt-T to bring up the CROSH shell.

Type in the command SHELL to get to the BASH shell

Use the SUDO -s command to become root (the root password is dell1234).

You can now execute some commands in the Linux environment. One of the commands provided enables the wireless:

/etc/install_wl.sh

Another interesting command I found while in the /etc directory is this one:

/etc/mount_rw.sh

This command has some interesting uses since the root is mounted as read only at boot time. One of the interesting uses is to enable the sound. Running the command alsamixer brings up the sound ports. I noticed they were muted. Pressing the “M” key unmutes them. To save this setting you need to

alsamixer

TAB to each setting and press “M” to unmute (the “M” will disappear)

ESC to exit alsamixer

run /etc/mount_rw.sh to remount the root filesystem as read-write

run alsactl save to save your settings.

I like the ChromiumOS build quite a bit in spite of a recent Reuter’s article on potential vulnerabilities in the system. The general consensus is that since ChromiumOS and ChromeOS apps (extensions) are built using web technologies (such as HTML and JavaScript) and uses Cloud technologies that the OS will share vulnerabilities with both and be less secure. I think it’ll be more secure since it will present a smaller footprint for exploitation. Like my veteran 13-year old OS tester said on booting up the ChromiumOS laptop. “Wait, it’s just a browser?”

Well, as long as it’s broken and it’ll take a long time to fix, maybe I’m better off running some other operating system. What with open source Chromium OS just out, MeeGo just releasing version 1.2 and Ubuntu pressing the Unity interface into service. Maybe I should just give them a go for fun. At least until Lion comes out.

First up, MeeGo.

MeeGo is the result of combining an Intel effort named Moblin (“mobile-Linux”) with a Nokia Maemo Linux project. It boasts being able to run on phones, tablets, Netbooks and even those in-vehicle devices delivering content and directions on the Go. Unfortunately, after the one and only Nokia smart phone offering, they will put it on the back burner and move to Windows Phone 7. The underlying MeeGo technology is very familiar to anyone running a Linux desktop.

Except MeeGo is going for a real ease of use motif. They want to make it inviting, simple and usable. So I loaded up the netbook version on my Dell Inspiron 1318 laptop and right away noticed that I couldn’t use the wireless network. Hmmm… I did a quick Google search and found that this wasn’t unique. Here are the steps I had to go through to get the wireless network running (thanks, Mr. Slain)

OK. Not easy. In fact it reminded me of installing Ubuntu (another “easy”) distribution on my other Inspiron laptop. I get a message informing me that the firmware cannot be found. Similar to another message others have seen in their logs. This stuff just ain’t easy. And until it gets easy, I’ve got other things to do.

The killer though, was when I gave the system to my favorite Operating System tester. He’s all of thirteen now but a veteran of Windows XP, Windows 7, OS X Leopard (10.5) and OS X Snow Leopard (10.6), Ubuntu 10.4/10.10 and now MeeGo. His first comment was about the tool bar hovering just out of sight at the top of the screen and the single-app-on-screen feature. “Kind of annoying.” Then he looked at the graphical bits and bobs. “Kind of kiddish.”

And so it’s on to other things! Maybe Chromium OS next? Maybe. We’ll see.