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.

Journeying Abroad – Life without Mozilla

It’s become almost a truism that if you use a Linux machine for your desktop, you must be running Firefox as your web browser, and Thunderbird as your mail client. The former is certainly more prevelant than than the latter, but even so, both of these programs are fairly common in the greater Linux community.
However, despite their popularity, they have their drawbacks. On the Firefox side, the program suffers from it’s core dependance on XUL, the XML based rendering engine that is at the core of the product. While XUL is remarkably flexible, powerful, and useful, it is also a performance hog. Firefox, even on yawl, my desktop machine, which should have enough oomph to drive it, can come to a painful crawl after only a few hours of use.
The memory leaks in Firefox are well known, and to Mozilla’s credit, they are being addressed in Firefox 3, currently under development.
On the Thunderbird side, I’ve been having some absolutely infuriating problems with sending mail. Hitting send will regularly cause a pause of 5-10 seconds in my complete desktop before the mail actually gets sent. I’ve checked DNS, my SMTP configuration, everything, I can’t find the problem.
So why not use this opportunity to play the field?
Here there be dragons…
For the last week, I’ve been on a No Mozilla campaign, with an audience of one. I have on occasion needed to start Firefox (most notably to view Google Calendar), but for the most part, I’ve been using Konqueror, the browser within KDE, as my primary web browser.
Konqueror has been remarkably stable and useful, I will happily admit. It is noticeably faster than Firefox in almost every way, and I’ve seen only 1-2 websites where rendering has failed completely (noteably Google). KDE’s inherent ability to allow keyboard redefinition has made the transition to Konqueror quite easy (for instance, Firefox uses ^L to jump to the address bar and edit/copy/whatever your current URL. Konqueror has ^L bound to ‘clear address bar’, something that was driving me bonkers for a few days, before I realized I was simply using the wrong function. A quick key redefinition, and I was happy again).
For the most part, all my plugins are working correctly as well. Konqueror adapts the Flash, Java, and Shockwave plugins as used in Firefox without any problems. In stream videos and animations work just fine.
Will I continue using Konqueror? Most likely I’ll stick with it for a while. I do miss a few basic things though. For instance, I use Google Browser Sync to make sure all my bookmark folders are synced across all my machines. My Konqueror installation does not have my, er, large selection of bookmarks I’ve accumulated. Secondly, I’ve been using Sage as my RSS reader (as it syncs in with the Firefox bookmarks quite nicely). That naturally won’t work with Konqueror, so I’m without a centralized RSS reader right now.
Even with these niggles, I’m finding myself using Konqueror more and more. Speed, stability, and functionality. How pleasant!
Great Dave, but what about mail?
Oh yeah, the mail. Well, this one doesn’t have quite as happy a story.
In my journey away from Thunderbird, the first choice was naturally KMail, the mail component of the Kontact system in KDE. I’d used KMail on and off several times over the year, and I’m sad to say, it really hasn’t improved at the pace other applications have. In many ways it’s quite pleasant to work with, snappy rendering, good layout and feel, complete and workable dialogs, but it still suffers from a Linux ‘half complete’ feel. The keyboard bindings for mail navigation are obtuse and, oddly, impossible to reassign (I even have a bug open on it – it’s still not fixed). The thread model in KMail is abysmal – making it very easy to freeze the entire interface on very large mailboxes, etc etc.
So KMail was okay for a bit, but wasn’t cutting the mustard for regular use. The next natural check was of course Evolution, the Gnome mail client.
I’ve used Evolution off and on a lot over the years, and in general, it’s okay. I don’t particularly like GTK based apps (I find them overly hungry for screen real estate, and a bad combination of eye candy and ham-handed attempts at UI design), and Evolution shows many of these traits. However, even with those faults, it’s not a bad client. I got it up and running without any problems, and it’s working fine.
So why am I gripey?
I miss Thunderbirds spam filtering. I get a LOT of spam. My monitors regularly log 500-700 spam messages a day into my inbox. boomer does an awesome job of catching the lions share of the spam (about 80%), but the rest shows up in my inbox. Thunderbird was catching perhaps 90% of -that- spam, and tagging it for me. I could review what was tagged, agree with whatever it set, hit “purge”, and it would all go away.
Evolution has very rudimentary junk filtering, and it’s not catching much of this spam. I’m finding myself spending much of my time just deleting spam messages, and growling.
Conclusions
Will I stick with Konqueror for a while? Yes, I think so. I have to rethink my RSS aggregation and viewing. I’m not keen on a locally managed RSS list (because I change machines so often), but I’m also not excited about a remote ‘web’ based system (Web 2.0 can bite me, and old sk00l type applications are not fast enough for my reading habits). So that need is still missing.
Will I stick with Evolution? Perhaps, if I can fix the spam filtering problem. Evolutions handling of multiple accounts is FAR better than Thunderbirds (have a bug open on that one too), and the UI is one I can deal with, if if if…
I’m just never satisfied I guess.