Blog

CONGO Coding session. Phew.

I had my first decent coding stretch on CONGO tonight in quite a while. I put in 4-5 hours to work through some issues that have come up while running the v2 code for a ‘live’ event. This is the first time the new codebase has been exposed to ‘real’ customers, and so far things are going okay.
There haven’t been any showstopper bugs yet (knock on every available source), but there have been a few rocks along the way. The fellow running the conference has been very supportive, knowing it’s new code, and I’m looking forward to a post-event debriefing. “What should be done differently?”
Overall, I’m quite proud of the v2 code. It’s still missing a lot of functionality from the first codebase, but I do enjoy having everything in Java in a sane build system and a rock solid database layer.
And now… bed.

A tractor for Mosaic

image1478373640.jpgWe’ve been hunting around for an inexpensive rider mower for Mosaic ever since we moved in. Since the playfield is getting close to mowing length, I was beginning to worry we wouldn’t find something in time.

We found this little fellow at a roadside mechanics house up here in Maine. He always has snowblowers, mowers, and other small tractors out for sale. He finds, fixes, and rhen sells them out in front of his house.

I just used it to mow the small field up here at the Maine house, and it worked great. I’ll be hauling it home on Sunday and, weather permitting, I’ll start working on the grass that’s out of range of our electric pushmower.

Pidgin Tidbits : Trouble with Yahoo? Updates are in the pipeline.

A recent series of changes at Yahoo have made the Yahoo Messenger portion of Pidgin misbehave. There have been various workarounds (such as using some of Yahoo’s non-converted servers), but finally the ‘proper’ fix is in the pipeline.
I just did an Ubuntu update, and it included the patch that has been working through various versions. Thanks bigtime to the Pidgin team and the Ubuntu maintainers for backporting the fix into Ubuntu Jaunty.
For full details on the patch, see this page which discusses the issue and gives good suggestions.

Camping, Ice cream, and Friends

image1813261623.jpgBack from an awesome weekend in upstate New York with about 180 friends. Geek camping at it’s best.

One of the the weekend was making in the neighborhood of 140 different flavors of ice cream using liquid nitrogen as the freezing agent.

Zach participated pretty freely this year, and much fun was had by all.

Edited on 7/1/2009 to correct poor english and iPhone-induced spelling artifacts.

Heavy Metal DVD – Awesome Documentary

hm.jpg
One of the fun things about being settled into the new house is going through all my old movies and watching them again. I’d been putting off watching Heavy Metal for a while – through no other reason than “I want to wait until I’m in the right mood.” Last night was that Mood.
While exploring the DVD, I came across a sort of ‘making of’ documentary that I hadn’t seen before. It was Fantastic.
It was an ongoing interview with all the animators, as well as chats with Ivan Reitman and other folks involved in the film.
I found hearing the stories behind each segment, and the unabashed forwardness of everyone associated with the production (“It’s all about breasts!”) absolutely fascinating. One of the more intriguing bits was seeing the original model for Taarna going through the motions that were film-captured and animated over, including a sort of ‘half and half’ film clip – with Carol Desbiens acting out Taarna’s motions, and half of the animation filled in over her form. Absolutely riveting to watch.
It was intriguing to listen to the folks who worked on the film not making it as a ‘stoner’ film or anything of that ilk. It was science fiction fantasy material, very male oriented, targeted directly at the audience the Heavy Metal magazine was targeted at – adolescent and post-adolescent boys – particularly us sci fi geeks!
I highly recommend picking up the DVD release and watching the interviews. Really brings another level to the movie.

Tech Tip: Muting loud Hardware Beep under Ubuntu Linux

Posting this one for the masses of humanity out there that are just slobbering for a quick fix to this problem.
There’s a twitchy problem in GTK under Linux regarding sound that sometimes lets the ‘bell’ sound get handled by the motherboard beep – a sound that is INSANELY LOUD, and no amount of muting, volume adjustment, or sound board fiddling will silence it.
The beep can happen during ‘vi’ sessions, in Eclipse when ‘search’ fails to find something, in X-chat when backspacing to the beginning of the line, or in Pidgin during the same situation.
The fix is remarkably simple. Tell the X-server to mute the hardware beep:

xset -b b 0

To check to see if it’s set, use the ‘xset -q’ command:

dbs@clipper:~$ xset -q
Keyboard Control:
auto repeat:  on    key click percent:  0    LED mask:  00000000
auto repeat delay:  660    repeat rate:  25
auto repeating keys:  00ffffffdffffbbf
fadfffefffedffff
9fffffffffffffff
fff7ffffffffffff
bell percent:  0    bell pitch:  400    bell duration:  100

That’s it! If you put this in your ~/.bashrc or whatever you use for a startup, this will mute the hardware beeping sound, but leave normal soundsystem stuff working.

“Free Memory” iPhone app Saves The Day

free-memory-iphone-app.jpg
So I’m sure ya’ll are sitting on the edge of your seat wondering how my iPhone upgrade has gone after the the other day’s fun. Seems this wasn’t a problem limited to just me, which is cold comfort, but it is what it is.
In the end I did get the phone re-activated, and carried on with my day. After a bit I noticed that the phone was ‘hot’, and the battery was draining at an alarming rate (full to 1/4 in under a half hour). This is a sure sign of a stuck thread or process. A quick reboot is usually all that’s necessary to clear it.
Three reboots later, and a phone that wouldn’t stay charged overnight, the problem still persisted. There was obviously a problem – but I had no way of telling what was going on.
Enter “Free Memory” – an iPhone application available in the AppStore that lets you not only do a little ‘cleanup’ on cached data on the phone, it includes a process list, showing what processes are currently active. Apple is very stingy about releasing ‘utility’ type applications through the appstore, so this is a rare find.
After installing Free Memory, I watched the process list, and noticed two applications bouncing back and forth regularly in the top slot. One was ‘ReportCrash’, and the other was ‘Mail’. Things began to fall into place pretty quickly. I have a split mailbox setup, where the iPhone reads not only my IMAP folders on my personal mail server, but is also coupled to the Exchange server at work, which is set up to ‘push’ content into the phone (I get realtime meeting invites, etc directly on my phone – rather nice actually). It was obvious that there was something ‘out of sync’ here, and the push update was causing Mail to crash, which would try to update via push again. Wash, rinse, repeat.
So now I had something to focus on – Mail. Initial tests were showing that my IMAP connections were not completing successfully. I’d try to sync the 40-50 messages in my queue, Mail would crash, and it’d try again. I was having regular mail crashes under 2.2, but it was always a matter of just restarting Mail, and it would complete successfully. This time it wasn’t.
Some magic combination of changing back to my ‘view inboxes’ screen, going into Exchange, back out again, then back to IMAP seemed to clear whatever condition was causing this. My iPhone ceased eating it’s battery in half an hour, and is now nice and cool to the touch.
What do I think of the 3.0 release? It’s good. There’s nothing that completely rocks my socks off – I’ve used the cut and paste, which works fine (but as many others have said… a lot…. this is a feature that should have been in from day 0), and Spotlight is pretty nifty as well. I’ve noticed some other small things, like the SMS app no longer ‘wedges’ during a send – it backgrounds the sending so you can work on something else (like another text) while the first one is sending, etc.
My new Bluetooth headphones should be here in the next day or two, and that’s when I’ll explore the feature I most want – A2DP enabled playback. Booyah.

Apple iTunes Store failure during 3.0 update.

iphonefail.png
Well this isn’t going so well.
I’m all excited about the iPhone 3.0 update. I docked my iPhone, started iTunes and saw it download the update pretty quickly. This is good, I think – that means the servers are handing out the updates just fine.
Not so fast. The update appears to have gone just fine.
The problem is there’s another step that is apparently hammering the bejeezus out of the iTunes store, and is failing to allow the phone to be re-activated after the update. My phone currently has the USB->iTunes connection graphic on it (“Connect me with iTunes!”), with an emergency-use-only slider.
Until the iTunes store gets unpaniced, I have a useless phone.
Thanks Apple.
(**Update**: Apparently I’m hardly the only one seeing this.)
(**Update again**: It appears to be the activation server that is getting hammered. Not sure if this is an Apple problem or an AT&T problem)
(**Update the third**: I made it. You just have to keep trying on the activation screen. Eventually it’ll get through, and things look fine now.)

The Language Umbrella

What happens when there’s a rampant conversation going on on a geek channel? It’s time for Umbrella Metaphors.
“If a language were used to make an umbrella, what would it look like?”
Naturally, there were several suggestions for certain languages.
– PHP umbrella is made of ragged pieces of duct tape
– VB umbrella is old and kids-size
– C++ umbrella requires a 15-digit code to open
– Java umbrella is sold with the handle and material seperately, and you need to match them up, and you have to download it from github
– Ruby umbrella is shaped like a cube, but if you stand in just the right place, it keeps you try
– ASP umbrella is large, but has big holes cut into it
– Fortran umbrella is made of iron, and is rusted shut 😉
– haskell umbrella is inside-out.
– .net umbrellas are a range of colour-matching umbrellas, but they only work with certain types of rain.
– lisp umbrella is old, but still works, and all the new umbrellas coming out look like it more and more
– lisp umbrella is incomprehensible as a functional umbrella. but pushing a button appears to keep the water off you, just have no idea how.
– lisp umbrella is patterned with a bunch of images of other lisp umbrellas on it, which are in turn..
Thanks to Avatar-x, ojacobson, the_goat, Optic, elmood, and the other happy geeks at the Toronto Hacklab

Azureus / Vuze under Ubuntu FAIL!

I’m not sure who to blame here, but someone should get drawn and quartered.
I’m working on setting up Azureus Vuze to run headless on yawl while I’m not around. To test it, I decided to install and run it on clipper.
Things were going quite well – with aptitude installing Vuze fine. I had to run java-update-alternatives to make sure I had the right JVM:

dbs@clipper:/usr/bin$ sudo update-java-alternatives -l
java-6-sun 63 /usr/lib/jvm/java-6-sun
dbs@clipper:/usr/bin$ sudo update-java-alternatives --set java-6-sun

Then, Vuze wouldn’t start:

dbs@clipper:~$ vuze
exec: 11: /usr/lib/jvm/java-6-openjdk/jre/bin/java: not found

“Oh no, they didnt….”
They did. The vuze script starts up the azureus startup script, which is hardcoded to the java-6-openjdk java path:

dbs@clipper:/usr/bin$ head -5 azureus
#!/bin/sh
JAVA='/usr/lib/jvm/java-6-openjdk/jre/bin/java -Xmx1024M'

This isn’t hard to fix, it’s just a quick edit to the startup script – but cmon package maintainers. Get a grip here. The whole java-alternatives stuff is specifically made to avoid this sort of crap. Get it together!

Say hello to ‘Nimitz’

It’s been no secret that the computing power in our friendly server cluster has been falling behind demand. We have 30-40 users and dozens of websites being driven by a pair of 1U servers that, to their credit, are doing a bang-up job.
‘boomer’, our main server, is but a poor Sempron 2400+. It has performed beautifully for 2+ years, but during the day, it’s showing signs of needing some relief.
We added ‘guardian’ about 6 months ago to handle front end mail loads (greylisting), DNS traffic, web proxies, and basic firewall duties. It’s a single 2.4gig Xeon box, and has done a great job.
I’m now deploying several Java applications for customers to use, and I really need some more CPU/Ram to run with.
Nimitz
Welcome ‘nimitz’. Thanks to a long term loan from Alex, we’ll be able to put some rockin dual AMD Opteron action in place. This box will act as an application host, primarily using Tomcat to serve up CONGO installations.
As I type, it has rebooted to it’s ‘nimitz login:’ prompt, and is ready to go.
Oh, why is it called ‘nimitz’? Upon powering it up for the first time, I was nearly jolted off my seat by the sheer noise level of the machine’s 6 internal fans. When it’s running, I can hear it all the way downstairs in the kitchen (2 flights of stairs). It’s flat, noisy, and powerful. So, ‘nimitz.’