Thursday, February 16, 2006

As if I needed another post on my blog proving that I'm the world's biggest dweeb.

Although I'm back in software development, after a couple years of being in Software CM, I'm getting sucked into build / source-control stuff again. Which isn't bad. Not every developer likes worrying about builds, or finds version control interesting. But, once you've seen the difference between 'good' builds and 'bad' builds... Oh, lordy, do bad builds suck.

At work, we're doing Java. Which means using Ant, simply because nearly all IDEs support it. Ant isn't necessarily horrible... But, trying to create a build for a complex system can be very, very annoying. I've been able to whip our builds into shape using my new best friend, the import task. In particular, the nugget of gold buried deep in the manual's example for the subant task.

There's very little unique information required for a Java build -- especially if you're a nazi and insist everyone in the group organize their source similarly. Being able to use to share a common template among 10 (and soon 30+) components of our production system is going to save a lot of time and maintenance headaches in the long run.

That being said, Ant is horrible to work with. It's not just that the build script is written in XML... ugh. Creating a flexible build scripts with Ant is a pain in the ass, particularly when you have a large set of interrelated components that needs to be collaborated on, and dependencies to be tracked among the components (and thirdparty applications).

There are a lot of Ant extensions, but little in the way of cohesion among them, or a good howto or round-up describing them. Ivy looks very cool, but it also seems like it could be a bootstrapping headache... particularly if the network is unreliable..

Ultimately, I want a build tool that provides:
  • Global dependency tracking for all components
  • Ability to build individual components easily. Without forcing you to repeat yourself everywhere; and not force you to put dependency information in a single file, which would quickly become a merge nightmare
  • Easy extension of basic functionality via scripting language
  • Not force you to learn a _new_ tool-specific scripting language
  • Not force you to use 3-4 scripting languages to do reasonably complex things. e.g. the horrible M4 + Perl + Unix Shell / MS Batch spaghetti mess that soon develops in order to do anything reasonably complex with Make.
Boost Build (based on Jam) is reportedly good. But, IMHO, the best thing since sliced bread is SCons. It is so nice to be able to use a single language, Python, to both define your build and extend the basic functionality of the tool. Having a fully functional scripting language as part of your build script is so nice.

When you only have to worry about a single application, it may seem like overkill. But, if you've ever had to build a large system of applications, shared libraries, manipulate text files, increment build numbers, etc for 5 different target OSes... Builds aren't simple and using the right tools makes a huge difference.

Speaking of development tools, a decent version control system is also invaluable. My new favorite is Bazaar-NG. The ability to work offline and safely rename/move files and directories is sweet. Another huge bonus is that you don't have to manually track previous merges between branches (unlike CVS/Subversion). And, it doesn't leave version-control turds spread throughout my tree.

Even if bzr isn't ready to provide version control for my whole organization, it is very easy to setup a single user repository. At the moment, I'm responsible for integrating the work done by our internal developers using PVCS, and an external consulting firm that uses Subversion. It may seem like overkill to throw a third version control system into the mix, but it works. It stays out of the way (no VC turds) and allows me to have 4-5 branches of development -- one for my work, one to merge from Subversion, one to merge from PVCS, and another two or three to experiment in. And, I can merge between the branches w/out the tool forcing me to manually remember what had been merged.

Books-I'm-Reading-News:
  • Finished the Steven Erickson books I'd ordered last month. From England. Because I have no patience.
Where-I'm-Going-News:
  • I'll be taking some training classes at our NYC office in early March. I plan to eat a lot of food from carts.

Sunday, January 22, 2006

Time to start hoarding

Reasons why the paranoid survivalist that lives in my brain thinks we should start digging a shelter in the crawlspace, and learn to drive a dune buggy:
  • melting Siberian permafrost
  • shrinking Greenland ice cap
  • shifting magnetic poles
  • faltering Gulf Stream
  • SUPERVOLCANO! SUPERVOLCANO! SUPERVOLCANO!
  • Elephant Rage
I've been watching too much Discovery channel.

In what-I'm-reading news :
  • finished: The Anubis Gates. Once again, Tim Powers rocks
  • started: Anansi Boys, by Neil Gaiman
  • ordered: House of Chains and Midnight Tides, by Steven Erikson.

Tuesday, January 03, 2006

more books

It appears this blog is becoming a log of my reading habits.

Finally finished Lords of Dus. The first half of the anthology continued to annoy me, but I can almost say that I enjoyed the last half. Ugh. Like I said, I really, really like LWE's other stuff... but this was bad, as evidenced by the month it took me to finish it. I had to force myself to keep picking it up.

On the opposite side of the spectrum: I bought Fledgling by Octavia E. Butler yesterday afternoon; and finished it yesterday evening. I'm not a huge vampire fiction fan. But, I've liked Butler's other books so I picked it up. It was quite good. From the Washington Post review on Amazon:
"I awoke to darkness," the narrator begins. She's naked, badly burned, starving and without any idea where or who she is. She comes upon a group of homes destroyed by fire, but nothing looks familiar amid the cloud of pain and confusion. She can remember basic concepts only by trying to articulate what's missing: a bed, shoes, food. As a narrator, she couldn't seem more helpless, more vulnerable, more innocent. Then she chases down a deer and eats it. We're not in Kansas anymore.
Also purchased with the Barnes & Noble gift card was The Anubis Gates, by Tim Powers. My brother-in-law gave me Powers' Last Call a couple Christmases ago, which I quite liked. Hopefully this will last me a bit longer than a single evening.

Wednesday, November 30, 2005

scandal! <*bum bum bummmmmmm*>

You know what's surreal?

Hearing your uncle-in-law mentioned on the Colbert Report as part of the Duke Cunningham scandal. The segment isn't available for download from Comedy Central's web site... but luckily Tivo didn't wear out as we rewind over and over to make sure we heard correctly.

So of course I've spent today googling up information instead of working. Here's a San Diego tribune story that mentions it. And here. And here. And here. And here. And here. And here. And here. And here. And here's a story in USA Today. Or... just use this google news link.

We hadn't heard anything about it till last night. Don't know much about it... other than a number of my relatives-in-law work for him, so if he is found guilty that could be very bad for them. Maybe we better clean up the spare rooms.

Monday, November 21, 2005

more books

Finished:
  • Look to Windward, by Iain M. Banks -- Very cool! I'd heard a lot about the Culture from friends, and wasn't dissapointed at all.
  • Excession, by Iain M. Banks -- Again, very good. I loves me the sarcastic Minds (immense, sentient, artificial intelligences); and the kooky ship names are great.
  • A Feast For Crows, by George R. R. Martin. -- OK, but disappointing. It seemed to lack focus. And, it also upped the cruelty to the characters... which is getting tiresome, despite the fact that the grittier, darker world is one of the things I like about the series.
  • Memories of Ice, by Steven Erikson -- I am all a twitter. It's hard to say exactly why I like this series so much. Like Martin's Song of Ice & Fire, it's dark. It's not orphan-farmboy- discovers-he-has-the-power-to-save-the-world. The good guys aren't just good for the sake of being good. The sense of a complete world with a unknowable history, and past civilizations is done very well. One complaint I've heard is that magic in the world seems to be overpowered... which I can agree with. But, it's still a lot of fun.
Just started:
  • Lords of Dus, by Lawrence Watt-Evans -- I really like LWE's Ethshar books, the Obsidian Chronicles, and Split Heirs. So I bought the omnibus collection of the Lords of Dus series... I'm having a very hard time getting into it. You can tell its his first published work... or maybe that's me reading into it. Too flowery prose. Too much explanation of the character's thought-processes. Point of view seems to bounce between characters from one paragraph to the next without much warning. Ugh. Hopefully it'll get better.

Thursday, November 17, 2005

Signs I am becoming an old man

As I near my 32nd birthday, I've realized the following:

  1. Teenagers frighten me.
  2. Naps are good.
  3. I enjoy both the flavor and the functional properties of prunes.
P.S. Get offa my lawn!

Wednesday, October 26, 2005

Conclusive proof that I've always been a dork

Not that it is much of a shocker.

It struck me recently after a high-school friend's visit back to Salt Lake. Chevan was cleaning his stuff out of his parents' house, and found a Christmas card I'd given him... it would have been 1989-1991.

We were both into Star Trek. I remember making him laugh with my HP graphing calculator (48SX). It had a mode that'd let you draw on the screen. And when you were in that mode, if you pushed an invalid button, it would beep... So I drew Fleet Captain Pike in his wheelchair thingy and beeped at him. Comedy GENIUS!

But, back to the Christmas card. The artwork on the front is sorty of purpley-blue misty pine tree forest thing. It must have reminded me of Romulan ships coming out of cloak. Inside the card, I wrote:
Computer: Alert, Alert! 9 uncloaking Romulan Christmas Trees off the forward bow!

Spock: We have a 0.0090210 chance of surviving this ornamental onslaught, Captain.

Kirk: Dammit Spock... enough of that wild Vulcan logic... bring me today's scantily clad alien woman.

Chekhov: Tinsil streamers coming at us Ciptin.

Kirk: Scotty, give me full power to the engines! Now!

Scotty: It canna be done, the floosy-husit is blocking the widget-arm-mainframe-valve-matrix-modulator.

Kirk: Bones! Get down there!

Dr. McCoy: I'm a doctor, not a contortionist.

Lt. Horta (the first silicon based starfleet officier): mumble, mumble, mumble, etc...

Sulu: My thoughts exactly, Captain.

Looking back, I'm not sure how I made it through school without being beaten mercilessly.

Tuesday, October 25, 2005

Books, books, books.

While waiting (mostly) patiently for the latest volume of A Song of Ice and Fire by George R. R. Martin, I've been staying up way too late reading.

First, the His Dark Materials trilogy by Phillip Pullman. Quite good, but didn't bowl me over.

I've also just finished the first two volumes of Steven Erikson's Malazan Book of the Fallen. Sweet zombie jeebus, is it good. Very, very good. A pet monkey of your very own good. Of course, it's yet-another-unfinished-series... so the wife will refuse to read it, like she has A Song of Ice and Fire.

It's probably a bad idea to stay up until 4:00AM reading... It's way too easy for me to keep telling myself, "Just one more chapter. Then sleepy time." Thankfully, as long as I get my work done and don't miss meetings my boss doesn't care if I don't get in at 8:00.

Wednesday, October 12, 2005

I am a dual-monitor whore

After months of annoyance that my laptop could use dual monitors in Windows, but not when I booted Linux, I finally got it working tonight. Ahhh... sweet, sweet screen space, how I adore you.

The laptop is a IBM Thinkpad, T42, 2378-FZU. I've been running Ubuntu on it, and I'm very happy with it so far (the laptop as well as Ubuntu). It uses an ATI Radeon Mobility 7500, so I can't use ATI's latest Linux drivers or the fglrx drivers. But, the 'ati' driver seems to be working OK.

I mostly use the system to program. So, I don't need 3D speed and haven't bothered tweaking those settings.

The magic combination of changes appeared to be adding the Screen element to the second Device section, and then updating ServerLayout to use Xinerama and setup the screens:

...
Section "Device"
Identifier "video1"
Driver "ati"
BusID "PCI:1:0:0"
Option "UseFBDev" "true"
Screen 1
EndSection

...

Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "Default Screen"
Screen 1 "External Screen" RightOf "Default Screen"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
InputDevice "Synaptics Touchpad"
Option "Xinerama" "on"
Option "Clone" "off"
EndSection
...



Of course, now that I've got it working... I found a cleaner-looking example on the web.

Monday, September 19, 2005

old candy

I have come into possession of some very old candy. Very old. Well... maybe old. There's pink plastic as part of the packaging. I'm not sure if it was added at a later point, or if it is original.

At a recent family reunion, an aunt was giving away a number of knick-knacks of my great-grandmother's. For some reason, she gifted me with the very old candy. I'm not quite sure why people kept it around.

They appear to be some sort of pastry bag, surrounding a filling of candied fruit and something... perhaps pure eeeevil.

I thought I'd get my gullible friend to eat it. But I realized he was standing on my carpet. But, none of you are on my carpet... so, would anyone like to call dibs?

Sunday, September 18, 2005

They can have my girly drink when they pry it from my cold, dead hands

As if it wasn't shameful enough that I have the drinking habits of a teenage girl, the Utah AG would like to remove my beloved girly drinks from the grocery store.

I think this means I need to start drinking out of spite.

Wednesday, August 24, 2005

New computer. So much memory, so little actual work done.

I finally got a new home computer after limping along at 500Mhz since '98. I like that startup-time of OpenOffice no longer has to be measured in minutes.

brief specs:
  • case: Antec TX640 Black
  • motherboard: ASUS A8V Deluxe
  • cpu: AMD64 3000+
  • ram: 2GB
  • video: MSI FX5500 TD256 DDR
  • DVDRW drive
  • LG FLATROM L1710S 17" LCD
I tried Ubuntu 5.04 amd64, but ran into trouble setting up the partition on the 160GB SATA drive... I could partition it with Ubuntu's tools (or SystemRescueCD), but the first boot after installation would refuse to run e2fsck on the partition, complaining about a bad superblock.

To be fair to Ubuntu, I am dual-booting it on my laptop (Thinkpad T42) and so far it runs like a champ. Other than the winmodem, all the built-in devices are working... even suspend/hibernate!

Luckily, Mandriva LE2005 x86_64 installed without much hassle. It detected the built-in sound and other devices on the motherboard correctly. Mandriva / Mandrake is what I'd been running on our previous computer, so the transition won't be too horrible for my wife.

I downloaded Nvidia's drivers, and -- after a little experimentation -- I can drive both my old CRT and new 17" LCD monitor. Amazingly, Nvidia's documentation was actually helpful.

One bizarre thing was that although the LCD monitor says it works at 1280x1024... the Xorg log file showed that it didn't think so. So, now I've got TwinView setup for the nvidia card and it is driving both monitors at 1280x960.

Here's the important bit from my xorg.conf file:


Section "Device"
Identifier "device1"
VendorName "nVidia"
BoardName "NVIDIA GeForce4 (generic)"
Driver "nvidia"
Option "DPMS"
Option "TwinView"
Option "SecondMonitorHorizSync" "30-60"
Option "SecondMonitorVertRefresh" "56-75"
#Option "MetaModes" "1280x1024,1280x1024; 1024x768,NULL; 800x600,NULL; 640x480,NULL;"
#Option "MetaModes" "1024x768,1024x768; 1024x768,NULL; 800x600,NULL; 640x480,NULL;"
Option "MetaModes" "1280x960,1280x960; 1024x768,NULL; 800x600,NULL; 640x480,NULL;"
Option "ConnectedMonitor" "crt,crt"
EndSection

Thursday, August 18, 2005

PythonCard presentation

Last month, I gave a presentation on PythonCard to the utahpython UG . The presentation seemed to go over well.

You can get the source files for the presentation here.


Monday, August 15, 2005

first post

This is the first post. It is likely to be the best one.