My Gibbons Runneth Over

Now there’s a topic that won’t make much sense unless you’re in the Linux community.
This week saw the release of Ubuntu 7.10, aka ‘Gutsy Gibbon’. I’ve been firmly in the “Stick with the stable releases” Linux camp for quite a while, even when Debian was pushing 2 years behind on their ‘stable’ release.
I’ve been running Ubuntu 7.04 (aka ‘Feisty Fawn’) on yawl for the last year or so, and have had nothing but good things to say about it. It’s been stable, useable, and lets me do my work. Excellent.
Yesterday I ran the update process and told the system to update itself to 7.10. The total processing time would be about 2.5 hours, due to a gig and change of data that needed to be downloaded (okay, I have a lot of packages), so I decided to go to lunch.
Upon returning, I answered 2 questions about local files I had modified, let the installation finish, and, with a small dose of trepidation, rebooted.
It came back fine.
In fact, everything came back fine. I have seen not the tiniest indication of a problem. Ubuntu just upgraded something like 1100 packages on this machine to newer versions, and everything Just Plain Works. All my basic tools are fine, if upgraded and showing some new bells and whistles. The traditional boondoggles of Linux system maintenance never even flinched. Sound, network, accelerated graphics (I have an nVidia card) – all came back up flawlessly, even with my desktop back as it looked before.
There are some noteable changes in the new release. The file manager has been replaced with ‘Dolphin’, which I have to say the jury is still out on. Initially I was very nervous about replacing my beloved Konqueror file system browser with something new, but my initial impressions of Dolphin are good. Everything seems there, if a little heavy on the big icons. I’ll play with it a while and see if it will cut the mustard.
This is how computers are supposed to work. No license hassles, no nightmare changes from one revision to another, no “Burn it to bedrock and reinstall from scratch” problems with upgrades, or problems with “This app worked with my old OS, but doesn’t work with the new one!” – one big distribution contributed to by everyone, with everything updated at once and confirmed to work together.
Yay Ubuntu!

Mame project – Some more work done.

Tonight while Catya and Zach were off doing stuff, and after a frustrating afternoon of successfully NOT getting an LDAP server working, I decided to put in some time on the cabinet.
IMG_0855.JPGI needed some minor parts, so I went by Home Depot and picked up some basic assembly hardware (screws and some electricians bolts and nuts, etc).
Most of tonight was measuring, measuring, and re-measuring, THEN cutting… the pieces for the console ‘box’. This was a little tricky because it’s angled, but after screwing everything together, I’m pretty happy with how it turned out.
I also installed the second joystick and re-mounted the first one with the correct bolts.
I’m short a couple buttons, and I’m considering getting the trackball sooner than later. Probably off to an arcade supply store later tonight / tomorrow to quick-order some buttons.
In all the blogs, websites, and books regarding building Mame cabinets, one thing is said over and over again. Plan, plan plan. I’m really glad I took quite a long time planning, drawing, re-drawing, and sketching components of this thing before I started cutting wood. So far I haven’t had to ‘go back on’ anything, or re-think anything on the fly. Since everything is already measured out, the assembly is not running into any problems along the way.
Some minor geekynotes…
I have mad, deep love for Irwin quick-grip tools. These are one-handed rubberized wood clamps (or anything, really) that you can put in place very quickly. They hold things incredibly well, and since I work primarily on sawhorses for cutting, these things are awesome.
It’s funny also that my workspace is getting CLEANER the more I work on it. With my new tool cabinet, I’m getting things organized as I’m working. This is the most use I’ve gotten out of my shop space in a while, and it’s nice knowing where tools are and what I have and don’t have.
I may be able to start work on the base cabinet by this weekend. We’ll see!

A new project – Mame Cabinet

For several years now, I’ve been considering building a MAME Arcade cabinet. I’d been using the MythTV box for retrogaming, but I’m becoming increasingly frustrated with the limitations:

  • The MythGame interface is painful to use.
  • MythTV is such a moving target, keeping it updated and stable is very tricky.
  • Using USB based handheld controllers has it’s own issues, particularly when dealing with multi-player games (like Gauntlet).
  • Not having ‘real’ arcade controls, and a standup console to play against seriously takes away from the entire experience. I’ve found the large joystick and poundable buttons are necessary elements of gameplay

IMG_0817.JPGSo, the mame cabinet project is rolling. Buttons and joysticks were aquired from eBay. An i-Pac controller from Ultimarc, and things were started.
The control panel here is a test setup. Using some scrap plywood from the workshop, I’m testing out my button and joystick layout. I’ll build the entire panel from scrap wood, and put it together for playtesting. I’ve left space on the panel for a trackball (which, in the Mame world, acts just like a mouse. Very handy), as well as ‘additional’ buttons for coin drops, reset, ‘escape’, and other Mame functions.
Hopefully I’ll have this up and running before Ubercon, but chances are 50/50 of that. There’s a lot of wiring to do before I can even begin testing.
This comes after probably 4 weeks of planning and sketching, working out the dimensions of the cabinet, how it’ll be assembled, what controls I’ll use, and how the whole thing will be put together. One of the design goals is the ability to move the durned thing and take it to conventions and other gatherings, so it needs to be able to be ‘taken apart’ fairly easily. This console is set up to attach to the front of the larger cabinet, so hopefully it’ll be easy to move about when ready.
The one real question mark in the equation now is what Mame front end to use. Currently I’m sort of tinkering with KXMame, which is… “Nice”, but has some serious interface quirks. The page is showing no updates in 5 months, so I’m skeptical if I can go with it. The other big contender for linux-based Mame cabinets has traditionally been AdvanceMenu, which has quite a good arcade interface, but alas, has been end of lifed. I’ll continue searching. I do NOT want to use a windows-based front end, so that certainly limits my choices.
I’ll keep folks posted on how the build is going. So far Zach loves punching the buttons on the panel. I don’t think the 1/2″ plywood is going to hold up well for long term playing, but this is after all a test setup. It’s not expected to.

Random distractions

I generally don’t forward along memes, youtube videos, or whatever, but having just seen this one in Steam’s livejournal, I know enough cat owners to know it’ll be appreciated. Have the sound on, it makes it all more apropos. Totally worksafe, assuming your coworkers can handle “mrow?” and “BWAHAHAHAH”.
[youtube http://www.youtube.com/watch?v=NEmQHkdBHr0&rel=1&border=0]
Personal observation. I believe this is like one of those Mutual of Omaha “hidden camera in the wild” videos. It’s the world of cats we never see or acknowledge. Or at least the world as they see it.

At the whim of a thing greater than I…

Tonights plan had been fairly straightforward. Go out to Pittsburgh via 2 USAir flights. One to Philadelphia, then on to Pittsburgh.
Flight the first, no problem. Checked in, no lines, through security like champ, some idling before getting on the plane, and off we went. I was a little concerned about our delayed departure, because the overlap in Philadelphia wasn’t that much, only about 40 minutes. We landed about 20 minutes late, but I knew the departing gate was only about 100 yards from our arrival gate. No problem.
Well, slight problem.
My departing flight has been delayed 3 times now. The airport monitors stubbornly still say “Departure at 10:45 ON TIME”, despite the fact that it is now 11:30, and the gate display says “Departing: 2:13am”
It’s quite a full flight, and the gate folks are doing their best, but there’s just no plane to put us on, and the plane we want is on it’s way from Chicago to Pittsburgh, where it will land, refuel, and fly to Philadelphia to get us. At the moment it’s flying between Chicago and Pittsburgh.
I’m taking it in stride. Much as I’d like to be in Pittsburgh and enjoying the company that awaits me there, I have my laptop, wireless, reasonable food via the ABP on the concourse, and a convenient power outlet. I’m considering a long bout of Eve.
Perhaps there’ll be more updates as this adventure (?) continues. For now, I’d just like send out a huge thank you to the United States aviation infrastructure. You’ve taken what should be a wonderous and exciting adventure and turned it into a waiting room.
Update, next day – In the end, the plane left Philadelphia at 2:03am, and arrived in Pittsburgh at 2:55. Total time lounging in Philadelphia: 3 hours, 45 minutes.

Radio Silence

And now a word from our intrepid explorer…
I’ve been quiet the last couple of days due to some health issues involving an abcessed tooth, hence the reason there’s been a shortage of geeky blatherings of late. Through the magic of Amoxicilin and liberal use of Tylenol, I’m back to almost human again, though there’s a long road of further dental work ahead.
I’d like to take a moment to talk about pain though.
I’ve never had direct experience with chronic pain. The sort of pain that is omnipresent, and can never really be ignored. The last 3 days though have given me a glimpse of what it’s like. Even with vast doses of Tylenol, the ache is always there, and I can tell within minutes when it’s time to re-dose.
On the one hand, I can generally deal with pain on a point by point basis. “This is going to hurt” “Okay.” What I can’t deal with is the constant, wavering hurt that never goes away. The worst part of it is it completely destroyed any attempts at concentration. I couldn’t latch onto a concept for more than a few minutes before being distracted or whiny. For someone like me who is VERY active mentally, this was horrifying. My pain level was waffling between “Ow” and “I want to curl up in a ball and whimper”. I hated every minute of it.
Now I’m back on something approaching functionality, and there is a sigh of relief heard in the land. Not only from me but from other important folks in my life, who have had to deal with me being far wiftier than I am even on my worst days.
Thanks for everyone for their patience. We now return you to your previously scheduled life, already in progress.

Closeup day, tools, and workspaces.

The geekitude quotient is low this weekend, at least in the realm of oo-shiny bits that blinken and wiggle. It’s fall closeup time for our house in Maine, and my brother in law and I drove the just-over-two hours up to the house yesterday and did all the little things necessary to idle a house for 8 months through a Maine winter. Primarily this had to do with draining and prepping the plumbing so the pipes wouldn’t freeze and splode. Fortunately, the weather was magnificent, with the leaves just changing colors and a crisp high-50’s temperature and clear blue skies.
“But where’s the geekery? There’s supposed to be a an earth shattering whee!”
Okay, there’s a little bit.
I’m getting myself organized with my tools and workspaces. There’s a bunch of Chez Geek projects in the pipeline that really do require a well assembled toolbox, plus enough power tools so that I’m not doing things like trying to bore a 1 7/8″ wide hole with a 3/4″ masonry bit. This process has been ongoing for some time (I mentioned my Ryobi 18v rechargeable tools when hottubs were flying), and things have steadily been ‘filling out’ since then.
The problem I was starting to hit is where to put all the stuff. My workbench is wonderful (a tech adjustable height bench with drawers, power outlets, and overhead lighting), but there was really no place for ‘tools’ other than some shelving and my toolbox.
Solved! On the way back from Maine, my BIL and I stopped by his mothers place, and we removed a 5 drawer rolling Craftsman toolbox that was my FIL’s (now unused). It still had a handful of tools in it (some new sockets which I desperately needed, as well as a very good craftsman screwdriver set). That toolbox is now happily ensconced next to my workbench, and I’ll be migrating all my smaller tools into it in the next week. Finally, I have a place to store all my drill and power bits!
Tools are fun.

The XO Laptop – OLPC comes true.

I rarely get involved in rallying folks to humanitarian causes or try to entice people to donate time any money to charities. When I do, it’s generally about something I feel quite strongly about.
About 2 years ago the faculty members at the MIT Media lab launched a project called One Laptop Per Child, the idea being that if a laptop could be built for $100, millions could be produced and distributed all through the developing nations through donations, government support, and other forms of philanthropy. The driving force is to try and make a direct impact on the socio-technological gap that is so apparent across the worlds population.
The result of this project is the XO Laptop, a machine designed by the OLPC team to address the specific challenges that will be encountered by children using the machine where there are no power outlets, or no internet, and where conditions may not be as squeaky clean as they are in your typical home office. The laptop itself, by modern standards, is underpowered, but the design is so open, so green, and so sturdy, you can’t help but be impressed.
This is a laptop designed for children to carry around with them, anywhere, anytime. It is waterproof, dirt proof, the battery lasts many many hours, it can network itself to other laptops arond it (a ‘mesh’), and it can run off a $10 solar panel (and recharge from it too).
There is an excellent video review of the XO by David Pogue on the NY Times website. Even if you aren’t interested in the machine directly, watch the video for an idea of what it’s all about.
Now, the XO laptop didn’t come in at $100. It actually came in at $183. As things ramp up, they hope to get the price down, but it’s still a little more than they anticipated.
So as part of their launch, the OLPC project has a special offer.
On November 12th, you can go to XOgiving.org and enroll in the “Give one, get one” program. You pay $400, and get an XO laptop of your very own. “Wait, $400? That’s twice what you said!” – Yes, it is. Because if you purchase an XO laptop for $400, a second laptop will be sent to a child in a developing nation.
My wife and I are seriously considering one of these laptops for our 8 year old son, and the added benefit of benefiting a child elsewhere is just icing on the cake.
If nothing else, watch the David Pogue video for all the details on the machine. It’s a remarkably green, well designed, and rugged little machine.

AT&T Blinks…

I try not to just blatantly repost things I see on other blogs, but this one is worth boosting up a little bit.
About a week ago, it came to light that AT&T had truly heinous restrictions in their contracts that gave them the legal right to terminate your account if you said anything bad about them.
AT&T tried wiggle around it, saying they’d never actually prosecute using that clause, but the blogosphere wouldn’t let it go.
Yesterday, AT&T revised their contract:

5.1 Suspension/Termination. AT&T respects freedom of expression and believes it is a foundation of our free society to express differing points of view. AT&T will not terminate, disconnect or suspend service because of the views you or we express on public policy matters, political issues or political campaigns. However, AT&T may immediately terminate or suspend all or a portion of your Service, any Member ID, electronic mail address, IP address, Universal Resource Locator or domain name used by you, without notice, for conduct that AT&T believes (a) violates the Acceptable Use Policy; or (b) constitutes a violation of any law, regulation or tariff (including, without limitation, copyright and intellectual property laws) or a violation of these TOS, or any applicable policies or guidelines. Your Service may be suspended or terminated if your payment is past due and such condition continues un-remedied for thirty (30) days. Termination or suspension by AT&T of Service also constitutes termination or suspension (as applicable) of your license to use any Software. AT&T may also terminate or suspend your Service if you provide false or inaccurate information that is required for the provision of Service or is necessary to allow AT&T to bill you for Service.

As someone who is seriously considering an iPhone sometime in the not too distant future, seeing activism generating a positive response from the vendor is heartening.
Score one for the good guys.
(Thanks to boingboing for the article.)

Sick Day

Today I am, alas, home sick. Something horrible has taken up residence in my sinuses and is producing an amazing amount of… well, you get the picture.
Colds like this turn my brain to tapioca. I can’t focus, I can’t get into the groove I need to get things done. So I’m taking this opportunity to catch up on some movie watching that I’ve been putting off because of lack of time.
Today’s entertainment has been re-watching Lord of the Rings with the directors commentary turned on. I picked up one of the various ‘directors cuts’ at some point, and unlike many people, I’ve only watched the entire 3-movie series through once. (Okay, once in the theaters, once at home), so I am a long way from losing my sense of wonder about the whole thing.
I just finished up Fellowship, with the commentary track on, and, as I have every time I’ve seen this sequence, or read it, or even talked about it, I am completely gobsmacked by the final scene in Moria between Gandalf and the Balrog. It brings tears to my eyes, I start hyperventilating, I am simply floored by the intensity, emotion, and wonder of the story…

You cannot pass!
I am a servant of the Secret Fire, wielder of the flame of Anor. You cannot pass!
The dark fire will not avail you, flame of Udûn. Go back to the Shadow! You cannot pass!

When the balrog brings the sword down on Gandalf, and he deflects it with a shining globe of pure white power. Ahhh…
And then, the final words…

Fly, you fools!

Sometime soon I’ll sit down with Zach and we’ll watch the movies together (he hasn’t seen them). I’ve watched out of the corner of my eye when we’ve shown him other movies, watching to see if he ‘gets it’ – if he feels the same sense of wonderment I have, and he does. They are magical moments for me (when the Death Star (mark 1) is destroyed… the other one is in Titan AE when the Titan first ‘powers up’…)
The directors commentary while watching Fellowship added a lot to it for me, because Peter Jackson et al were so passionate about the story, and the characters, and Tolkien’s vision for Middle Earth, it really came through in the decisions they made.
I probably won’t make it through the other movies today, but this brief interlude has been…. precious.

A Peek Under the Covers – Windows XP Registry Keys

While working on my current Java project, I needed to better understand how the Preferences API stores data. My initial instinct was to dig around in my home directory looking for a .java/Preferences file or something similar. Perhaps under Linux, this would have been the case, but Preferences is platform agnostic, and under Windows, it uses the Windows Registry.

I’ve long since tried to drive out my knee-jerk reaction to the Registry. The initial implementations of it were awful, and prone to easy corruption. Navigating the registry has never been what one would call ‘simple’, but after a while things settled down a bit and stabilized.

In this case, I was using a simple Java command to store some values for a Webstart launched client:

prefs = Preferences.userRoot().node(nodeName);
prefs.put("ExpoLoginName",userField.getText());
prefs.put("ExpoPassword",new String(passwordField.getPassword()));

Pretty straightforward stuff. In general, the code was working as expected, but I was seeing doubling of some of my values. What I needed to be able to do was actually see the registry stored values themselves, without going through the interface, to see if I was actually storing the values properly, or things were going wrong on the way out.

This unfortunately brought me in contact with the Windows native tool ‘REGEDIT’. This tool came out quite a while ago, and is the defacto standard way of editing, browsing, and searching the Windows Registry. Unfortunately, regedit hasn’t seen any interface upgrades in approximately an eon. It is painfully difficult to work in, and while yes, it gets the job done, little interface quirks can flat out destroy productivity. For example. The FIND function (amazingly, bound to ‘^F’), does in fact let you search the registry for a key or value. But, it is a one-way search, from the current position forward. It does not wrap. It also does not RESET when you change to a new search term. So if your first search finds a match, say, at the 5th from the bottom key (by the way, the window does not scroll to show you where your match hit. You have to scroll it manually), and you decide to search for a second term, it will only search the last 5 rows in the registry.

I lost half an hour searching for keys I KNEW were in the registry, because my first search had set the pointer so low. GAARRRHHHH!

What I found most entertaining about this path was it gave me a chance to look under the thin veneer of civility that Windows brings to the operating system experience. Take for example the screen shot above. Note that the keys stored in the registry have been altered from their internal values. Some bright Windows developer back in the dark ages realized they should tell the difference between an upper case letter and a lower case letter. Rather than, say, writing that into the logic of the registry, they cleverly decided simply to preface upper case characters with a forward slash.

Ah, but that brought up a problem! You could now not store a forward slash into the registry! Not to worry, we’ll just change any forward slashes in the registry to backslashes! Sounds like a great plan!

This sort of tortured logic is what you see happening in student built technology experiments, hacked together during all night jolt-driven marathons. It’s not something you’d see in the largest software company in the world. Their programming practices, in theory vastly improved from the early days, wouldn’t allow such awful hacks.

Would they?

Update – it appears, due to notes in the comments, that the registry values hack is due to Java’s interpolation, not Windows. Java needs to specify slashed items because the backing store being used in this instance (Windows Registry) is case insensitive. If a different backing store were being used, that wouldn’t be happening. My apologies to Redmond for assigning blame. On this one thing. 🙂

Not so much with the doom.

P5190129.JPGToday, I shall not rant about Verizon.
What, I hear you cry? But Dave, you’ve certainly let your feelings about Verizon be known before, has something changed?
As far as their offerings and their choices for what to do with the subscriber base? No, for the most part, I’m still pretty annoyed at them. But, in the department of “If you do things right, you can avoid a world of hurt for yourself”, I’m in pretty good space today.

Continue reading “Not so much with the doom.”

Well smack me with a trout.

I feel somewhat foolish.
I’ve been looking around for local places to go work on my laptop that are outside chez geek. My needs are pretty basic I think… Quiet comfortable space, wireless net access, a power outlet, and coffee.
I’ve found a space that covers everything but the coffee, and I feel foolish for not having come here before. It’s the Moore Institute library, better known as the Natick Public Library. It’s a huge space, several floors, well designed and laid out, and… best of all… nice little cubby spaces that are all set up for laptop use (with power outlet, hardwire connection and everything). The wireless is active as well, so you don’t need to plug in if you don’t want to.
It’s within easy bike distance of the house, and lunchstops are all around here. I think I’ll try and come down here more often.