Archive for February 2008

World Ends! And No One Notices!

It's the end of the world!  Oh no!

Yesterday the world ended. And nobody noticed.

The Intergalactic Regulation Institute of Stability (or IRIS) had a server crash yesterday at 6:47pm Central Intergalactic Time. Downed were the servers containing Earth, Mars, Jupiter, and Xilos-5. Everyone on these planets suddenly died as the planets themselves simply ceased to exist.

However, IRIS was able to quickly bring backup servers online with copies of these planets from their most recent backups. Though four days, seventeen hours, fifty seven minutes, and twenty two seconds were lost, no one seems to have noticed the difference as no complaints have been recorded at the time of writing.

In the future IRIS promises to increase the backup cycle to every three days, and more importantly to introduce stress testing during periods of low usage to reduce the likelihood of a repeat of this event.

In the mean time it is suggested that terrestrial lifeforms perform their own additional backups as well as try to reduce great acts of stupidity that can stress the system.

Video Phones And Flying Cars – And Why They’re Not Catching On

Since the dawn of science fiction there have been two great inventions we were promised that will never catch on: the flying car and the video phone.

Oh, sure, we have the technology. We could make them. In fact some have been made. But they’ll never catch on, at least not any time soon, if ever. And because I’m just so cool like that, I’ll point out the obvious reasons why. :)

First the video phone: It’s all a matter of an expectation of privacy. When you answer the phone you don’t worry about how you look. Heck, sometimes you even try to sneak dirty little things in, like eating, or a quick trip to the loo. It’s convenient that you can hold a conversation while you’re in your jammies. It’s convenient that your spouse could be calling to say they’re back from their conference in Denver early and you can chat happily with them while your lover secretly dresses and buggers out in the background. It’s convenient that when mom calls in the middle of nookie and your dumb-arse spouse answers and hands you the phone mom doesn’t see you in flagrante delicto. You might be holding an audible conversation with the person on the other end of the phone, but all to often you’re sure glad that they can’t see you. Video phones sound so cool … until they interfere with your comfort and personal activities. Having a video phone is like having the person just show up knocking on your door. It’s just plain an invasion of privacy. Some of us may welcome that invasion, from time to time, but we don’t want it happening every time the phone rings.

And second, the flying car: So you’re cruising along and oops, you run out of gas. For us terrestrial travelers the worst that happens is we pull off the road and call AAA or walk to the nearest gas station. If you’re flying when the car goes chug chug however … crash bang boom! Dead! Bummer. Same with engine troubles. Blow a head gasket lately? And as bad as accidents can be on the ground, imagine how lethal they’re going to be mid-air! But it’s also more than that. How many of us are certified pilots? How many of us even know what an air traffic controller is? Or how to make a flight plan? Quite simply, there’s a reason why pilots are the only ones allowed to fly. You let every Tom, Dick, and Mary go into the great blue yonder with all the skill and grace of your secret family shame Bubba and you’re going to live a nightmare where even the ground won’t be safe because of all of the falling debris. A flying car sounds great, but in practice the world just isn’t ready for it. We’re going to need some serious safety technology advances first.

So there you have it. As much fun as video phones and flying cars seem, the world just isn’t ready yet. Sorry. Maybe in another twenty years.

Introducing Arah J. Leonard!

So I’ve reviewed and ranted, entertained and bored, but in all this time how well have you really gotten to know me? For that matter how well do I really know myself? So please let myself introduce … myself.

Name: Arah J. Leonard

Sex: Often, please

Gender: Male

Age: None of your business … oh, fine. Born in ‘76. Are you happy now?

Occupation: I’m sorry. I’m a little preoccupied…

An image of ME, Arah J. Leonard!

Okay, so I was born a mutt of mixed heritage in northern Illinois to a loving mother and father. I also have a younger sister. When I was seven, my father died. On Father’s Day. While driving the pickup truck that was going to be a present to his father up to see us all. (Because he’s been delayed by work so couldn’t come up with my mom and us kids.)

I believe, that year for Christmas, with funds from my father’s life insurance, was when my mother bought us our Commodore 64. It was the best investment in my life that she ever made.

Over the years as I grew up I played in Commodore and Apple labs at school and on my Commodore 64 at home. I learned to program in BASIC. I programmed a few of my own games and things, usually simple affairs. More fun however was to hack into games like Telengard. My favorite Telengard hack was to add an escape clause. If you accidentally wandered into an area where monsters were much more powerful than you, it was instant death. Normally if you ran into a monster and tried to run away it would say, “The monster is not amused.” You’d lose your turn and the monster would attack. But with my escape clause I’d change it to say, “The monster IS amused.” And then I’d have the monster give you a random bit treasure and then leave. So if a monster was too powerful for you, instead of instant death you’d get to live and come out with some treasure to boot. :)

I also learned over the years to play with consumer electronics such as computers. I could disconnect and reconnect all of the wires like it was nothing. I’d help out in the computer labs after school, using my keen sense of hearing to locate monitors still left on and turn them off. (To this day I can still hear when CRTs are left on. And sometimes LCDs too.)

Later in grade to high school I expanded into helping friends work on their computers, upgrading RAM, hard drives, CD ROMs, graphics, etc. And I learned other variations of BASIC on PCs, on Macs, and so forth. I even learned HyperCard. And I learned on a Macintosh to program in a very stack-centric language for the game RoboWar, where you pit your robots against those of your friends in a completely unmanaged environment where your robots all fend for themselves and only robots with the best programming (and choices in robot hardware) win.

Then I graduated high school. I went straight into the US Air Force as a Communications and Computer Systems Programming Journeyman. (Or something like that.) I actually wanted to be an airplane mechanic and short of that an electronic engineer. Unfortunately over the years I have tested as every type of color blind imaginable, brown-blue, red-green, to every degree. I’m not color blind. It’s those stupid bubble tests. In them I almost always see every possible answer. Optometrists don’t believe me when I tell them that though. So it becomes a guessing game. One where I always lose. I can’t help it if I not only see all colors but also through optical illusions. Anyway, so because of that the USAF wouldn’t let me near anything where seeing the wrong color could cost people’s lives. So I became a computer programmer.

I did my Air Force Basic Military Training in Texas during the summer, playing with fireants and constantly marching through black flag days. (Though it wasn’t technically marching because we didn’t technically have to keep to the rythm. Theoretically. In practice it was a nice way for TIs to cover their behinds while still marching everyone around endlessly.)

In technical school in Mississippi I was taught BASIC (as if I needed teaching in that), Ada, COBOL, 16-bit x86 Assembly, and SQL. I also had the joy of having my appendx nearly explode as I collapsed to the floor and shook violently during the middle of class. And then a day later in the hospital along came a hurricane. Which I guess being in the hospital saved me from having to do cleanup afterwards. (As well as standing in the rain waiting for someone to actually unlock the emergency shelter, as I later heard.) But it threw me out of schedule with my class. So a week after being taped up (not stapled, sewn, or any such. Just taped. Because they were afraid of gangrene and actually cutting along the dotted line a second time was just too much effort for them) I was delivering packages all around the base, on foot, while I waited for the next class behind me to catch up to where I left off. Fun times, I tell ya.

In my first (and only) duty assignment, where I’d asked to be stationed in places like Alaska, Washington state, even Germany and Turkey, I was instead sent to Alabama. More south. Yippee? I used 16 and 32-bit Assembly, FORTRAN, C, C++, Visual FORTRAN, Visual C++/MFC, and Visual BASIC. Or in other words, I regularly used just about every language that technical school didn’t teach me. The project was AFTERPS (Air Force TERminal instrument ProcedureS). It involved calculating take off and landing procedures (as well as emergency and what to do it you missed) for every category of aircraft for a given runway. It was software used throughout the world. It took into account natural obstacles from NIMA satellite imagery through a program called DAFIF (Digital Aeronautical Flight Information File). And it took into account man-made obstacles through DVOF/DTED (Digital Vertical Obstruction Files and Digital Terrain Elevation Data). All so that airplanes wouldn’t crash. At the time however the air traffic controllers weren’t allowed to actually use these programs to determine take off and landing procedures because the military didn’t trust computers. They made errors. (Especially the first FORTRAN compiler we used, from Microsoft, that had a nasty division by zero bug in it.) So they still had to do all of the work by hand. These programs were just used to verify their results. It’s been a long time since I worked on that software, but I sincerely hope for their sakes that the military has changed it’s tune on that.

As I was there, AFTERPS evolved from a FORTRAN / 16-bit x86 Assembler DOS-only to a 32-bit console app of the same languages. (I upgraded most of the 16-bit assembly to 32-bit myself.) We did a lot of fixing the if-goto reverse logic of FORTRAN 76 (with overused continue statements) and mismatched common blocks in the FORTRAN code to proper clean if-then-else logic and such. It was a massive upgrade to the code to make it suitable for maintaining in a 32-bit environment. I also was part of the DVOF/DTED upgrade from global variable C to the object-oriented C++ for similar reasons as well as just plain sanity.
Then we did an upgrade all over again with DIGITAL Visual FORTRAN and Microsoft Visual C++/MFC. We enlisted the aid of a Microsoft pro, who promised us that it was possible. At the time, it wasn’t. At least not in a logical way. But eventually we sorted out ways to work around the incompatibilities of the two opposing ‘visual’ sides.

And besides programming for the USAF AFTERPS team I also occasionally had duties like installing memory and hard drive ugprades, installing Windows 95 and then again to Windows 95 B (OSR2), and even helping change networking protocols when the base switched.

And during this time as technology advanced my love of computers grew. At home I built my first computer, a Pentium I 133MHz machine with 128MB of EDO RAM. It’s been a very long time, but I remember also that the chipset was supposed to be very advanced (for the time) and had an external extra bit of cache memory. It ran DOS 6.22 with Windows 3.11. I even had a Soundblaster AWE32 for sound and awe-inspirint MIDI. I later upgraded the graphics to a Diamond Viper V330 and a nice big (back then) 17 inch monitor. I remember because the card itself had benchmarks that trounced the more popular Voodoo cards. But I was pissed because games like Quake weren’t supporting the Diamond Viper cards. They only supported Voodoo for OpenGL. It was a tough lesson that the best isn’t always the best.

My love of video games also helped me jump into saved file hacking with hexadecimal editors. I loved a good hexed. I even wrote my own in Visual BASIC once, called Hex Magic. Games like Ultima Underworld and Descent had wonderful save files that were so much fun to play with. And of course I taught myself HTML so that I could have my own webpage. It was on Geocities, back when Geocities was actually good. When I could FTP my changes up. When advertisement wasn’t even required and people were proud to add a Geocities logo all on their own. Then it all became crap, and though by the end I had a mirror going on two other free hosts, it just wasn’t worth maintaining anymore. So I stopped updating and let the accounts close from inactivity.

The Air Force had been fun, and given me plenty of opportunities to excel, but it just wasn’t for me. I was sick of my first shirt who seemed to have a hard on for trying to ruin my life. And because of my short five foot seven stature and heavy disposition I was always struggling with my weight. Not that I was fat. I went into the Air Force straight out of a high school season of track where I was a 100 and 200 meter sprinter extraordinaire, fit as a fiddle and in the best shape of my life, with no bodyfat whatsoever, and still had to starve myself for a week just to make the weigh-in. It’s all because if you weigh more than the Air Force thinks you should, they then go by a bodyfat index measured simply by taking your age, measuring your neck, and then measuring your stomach. (Note not by measuring your actual bodyfat anywhere.) Plenty of old people ran around fat as can be. Plenty of fat people with bulbous rippling fat necks ran around with stomachs the size of Texas. While actually fit young people that didn’t have fat in their necks were harassed constantly for being “overweight”. It got tiresome. Having a fist shirt that hated me for no good reason was bad enough, but occasionally giving him (albeit very questionable) ammo was a nightmare that I got sick of fast.

So after an honorable discharge with four years and two months (thanks to a stop-loss issued during the second Gulf War) I moved on. And perhaps out of spite (or relief) found a true love of food and allowed my belly to actually grow. Along with my hair.

I moved to Wisconsin, to be near my father’s side of the family. (My mother’s side being in Illinois.) I settled down in Baraboo, nearish to Madison where I commuted an hour each way to work and back. (Hence why I bought my Prius.) I worked for a scientific company, Bruker AXS. They build x-ray diffraction machines. I worked mostly on their single-crystal diffraction (SCD) which is small molecules (APEX) and proteins (PROTEUM). I became a self-proclaimed GUI (graphical user interface) specialist. In other words I specialized in making the layout clean so that users could quickly grasp how to use a program. I also made tons of icons and graphics, mostly in Visual Studio (for the Windows .ico icons), Adobe Photoshop, and GIMP (an awesome freeware graphics utility). At first I worked in Visual C++/MFC to develop the very first version of their Proteum software, which was a massive usability improvement over their old SMART console app. Then as the software team actually reinvented itself, we switched to a base of the Python scripting language and Trolltech’s Qt using PyQt bindings.

I’ve got to say, Python and Qt kicks the ever-loving asterisk out of C++ and MFC. The code is just so much cleaner and easier to work with, and the forced indentation of Python keeps code a lot more readable.

SCD programming was interesting. It’s kind of like an electron microscope in that your intent is ultimately to look at molecules. But the means are completely different. You start by growing a tiny little crystal. Because all of the molecules in a crystal are aligned to each other. You then shoot the crystal with a very intense beam of x-rays. The x-rays refract off of the molecules in the crystal. A big x-ray catching camera called a detector catches these points of diffraction. (These days it’s done by using a thin layer of material that fluoresces -glows- when x-rays hit it. A lens of sorts focuses these points of florescence using glass fibers into a super-expensive high-resolution extremely cooled digital camera optical chip, which basically takes the picture.) As you spin the crystal and detector around to gain more and more viewpoints of how the x-rays diffract you collect enough data about your molecule to actually produce a ball-and-stick model of your molecule. Which you then refine with atomic thermal parameters and a bit of art. And voilĂ , you know everything there is to know about the molecules in your crystal. What atoms there are, how they’re bonded, what it all looks like, et cetera.

It sounds kind of silly to a lot of people. Why would someone need to know what is in their molecule. Didn’t they create it? Shouldn’t they know? Well, unfortunately chemistry is not always obvious. The same atoms can bond in different ways depending on catalysts, the amount of energy (heat) in the environment, and so forth. And so a lot of times while you know what you mixed together, the sum of the parts is less certain. You may have made the next wonder drug. Of you may have made something completely useless. So you mix up your batch, grow a crystal of it, and use x-ray diffraction to find out what you actually made. Plus there are all sorts of natural compounds, like DNA for example, where you didn’t make it but still want to know what it is in great detail.

At Bruker I also got to work on several OpenGL projects. Making 3D visualization tools was fun. I also got to maintain their KRYO-FLEX Control software, which cools a crystal down to well below freezing. It was educational to directly control hardware over a serial port, and fun to work with liquid nitrogen. Plus I got to do all sorts of other fun computer hardware-based tasks. I got to test and spec neat hardware like LCD touchscreen monitors, ACS ACOS1 smart cards and readers, Axis network cameras, and on and on. And all sorts of normal computer hardware. It was a great experience!

Well, except for one part. At one point we needed a program updated, as in massive changes, since we were switching to Qt. We just didn’t have the manpower. So we thought, hey, why not outsource? Well, the outsourcing went to India. And it was the worst experience ever. They introduced a million of stupid bugs and screwed up the memory handling so badly that we never could sort it all back out. But I caught plenty of god awful stupid errors like instantiating a the same variable name with the new operator over and over and over in the same section of code, all because they needed a pointer. And at the end they just used one delete. Talk about a memory leak! They also did things like look at the Qt sourcecode to find under-the-hood mechanisms instead of using the API. Trolltech later changed those mechanisms (but kept the API the same) thereby forcing the code to only work with one version of Qt with no way to upgrade. They also didn’t compile under both Windows and Linux like they were required to, which left a lot of work to us to sort out. And they were notorious for finding bugs in the code, commenting what crashes here and why, but then not fixing them. (Of course demanding more money if we wanted these bugs fixed.) There were plenty of other crazy gaffs too. And the worst part? After all of that horrid programming, one of their programmers had the nerve to repeatedly bug us about hiring them and relocating them to America. After that I never wanted to outsource a single thing. Just in the time spent fixing their bugs, I could have single-handedly rewritten the entire program from scratch and avoided all of those bugs. It’s really what we should have done in the first place, but at the time we just didn’t have the time. So instead we got Frankenstein’s monster.

And at home, how was my PC doing? Well the Pentium 133 finally got too expensive to keep running. I’d order used parts (there were no new) that cost a fortune and I’d be lucky if they actually worked when I got them. It became a nightmare. But I couldn’t afford a real new computer. So I made do with an eMachines Celeron 500 box with onboard AGP but no AGP slot. It overheated (how I don’t know) so I drilled holes in the front of the case and added an intake fan. The power supply kept failing, and I kept ordering new ones.

Finally, after years of saving, I had enough to really build a new box. It was a Pentium 4 Northwood C. It started at 2.6GHz, but I overclocked it to over 3GHz by raising the FSB. It had 1GB of dual-channel DDR of the Corsair XMS variety. The graphics started as a nVidia GeForce4 TI 4600, but later went to a GeForce 6600GT. The sound was (strangely) the onboard audio. Since it could do 5.1 I didn’t see the need to get a separate card. Same with network. All on an Asus P4P800 Deluxe motherboard with the 865PE Intel chipset and a lovely fanless northbridge. And put into a lovely Antec Sonata case. With a pre-cut AcoustiPack aural damping material kit. The CPU heatsink got upgraded to a very non-stock giant fanless heatsink, lapped, and using Arctic Silver 5 TIM. The exhaust 120mm fan of the case was temperature controlled by the PSU. The intake 120mm fan was an Antec self-regulating fan with its own thermal sensor. And I had two quiet 7200RPM hard drives in a RAID1 array. (For redundancy to prevent data loss if a hard drive failed.) Running Windows XP Pro. The system was not only sick to play on, but it was almost dead silent. The only noise that could be heard from the box was the graphics card fan, and even that had been about to be replaced with a fanless heatpipe/heatsink monstrosity. Thanks to HyperThreading it ran two instances of Folding@home 24/7. It was great! Or would have been. If it hadn’t been for the house fire. Between the water from the firemen and the smoke absorption properties of aural damping material, nothing salvageable was left.

I was forced to go back to budget. So I built an AMD Athlon 64 3000+ box with 1GB of Corsair Value Select DDR. One hard drive. One optical drive. MSI (shudder) motherboard with onboard everything. And a later upgrade to nVidia GeForce 7900 GT graphics. In the cheapest PoS case known to man, with an included crap PSU that thankfully hasn’t failed yet. Unfortunately, this is the PC I still use.

But ever since my sweet silent powerhouse PC I’ve had a dream – performance and aesthetics. A powerful PC in a silent, and pretty, package. Who could ask for more? Unfortunately designing it this way costs a lot. Personally though, I think it’s worth it.

Well, long story longer, things at Bruker went great. But nothing lasts forever. I didn’t want to leave, but I had to. I fell in love with a wonderful woman in Pennsylvania. So I moved to be with her. For now, at least, I’m still on contract with Bruker AXS, where I get to work from home and connect in through a VPN so that I can access the company CVS source code server as well as email and network. I have no idea how long that will last, but it pays the bills.

Here I am today. Working from home, for now. With my own blog. I’m no dummy when it comes to computers, inside or out. I know soft, firm, and hardware like no one’s business. And what I don’t know, I can easily learn if I ever find the need or desire to.

Now, that’s how I consider myself an IT expert. But what does a geek like me do for fun? (Besides building new computers, writing software, and blogging.)

Continue reading ‘Introducing Arah J. Leonard!’ »

MacBook Air – All Hype And No Byte

Recently I wrote a blog entry on the utter uselessness of Apple’s MacBook Air as a device of technology. Now please permit me the opportunity to compare the “new” and “innovative” Apple MacBook Air to a product which has been out on the market for longer than it has, from a manufacturer that actually is innovative. Let me introduce to you the Lenovo ThinkPad X61s.

How does it compare to the MacBook Air in terms of size?

Product height width depth weight
MacBook Air 0.76 inch 12.8 inch 8.94 inch 3.0 lbs
ThinkPad X61s 1.1 inch 10.5 inch 8.3 inch 2.73 lbs

So as you can see, the Lenovo ThinkPad X61s is smaller in every way except height, where it is only marginally higher. Yet it somehow even manages to include things like a DVD drive, a type I/II PC card slot, a three USB 2.0 ports, and so forth. In other words, it’s an actual laptop that actually works, that’s smaller than an Apple MacBook Air, but came out before Apple’s MacBook Air.

And that’s not even Lenovo’s greatest. Since then they’ve launched an even better ThinkPad X300 that really puts an Apple MacBook Air to shame.

Apple, innovative? I don’t think so. Like every product before it, Apple is merely following what other people have already done, just with an (arguably) more artistic flair. There’s certainly nothing wrong with following real leaders, so long as your clones and knock-offs are nice enough.

How To Have A Happy Hamster!

I thought it might be nice to put a positive note into my blog lately, so I’m going to mention a product that so far has been absolutely loverly for me, my allergies, and my hamster. That product would be Kaytee’s Total Comfort Bedding.

Kaytee Total Comfort Bedding

What is it? As far as I can tell, it’s simply soft fluffy puffs of recycled paper products.

Why is it so good for my hamster, Goose? Because it’s softer than wood chips it makes for better nesting material. As was evinced by Goose carrying every little scrap of it into one big pile for his nest, something he has never done with wood chips. Goose loves it!

Also it’s said (though I have seen no definitive proof) that various wood beddings, especially pine, may be harmful to small animals by:

  • Splintering, causing slivers in the feet.
  • Being poisonous to consume.
  • Releasing a poisonous gas when urinated upon.

Where as recycled paper products seem safer by comparison. Puffs of paper have no splinters at the very least, and they probably have been processed and reprocessed so many times that any poisons in the wood pulp have been removed.

But then, I have also used various wood chips (pine, aspen, cedar) for hamster bedding over the years and seen no ill effects. So your mileage and/or paranoia may vary.

But most importantly (in my opinion) why is it good for me? I have allergies. Mold, mildew, dander, and dust. Now a lot of people say they’re allergic to dust, because dust pretty much causes a reaction in anyone and everyone. But take that baseline reaction, multiply it several fold, and that’s how I react to dust. Whenever I’d clean a cage, I thought my constant sneezing, watering eyes, irritated skin, et cetera were all from the concentration of small animal dander contained by the aquarium. (Because most of my hamsters have lived in aquariums.) However, after having used Kaytee Total Comfort Bedding, I’ve found my allergic reaction during cage cleanings to be much less severe. Why? I’d have to say because this new bedding has no dust. Where as wood chips are chock full of sawdust. And dust is chock full of dust mites and other equally allergy-inducing irritants. So get rid of the dust, get rid of an awful lot of irritation. It’s great!

And why is it good for the environment? There is one other good reason to use Kaytee Total Comfort Bedding over wood chips. It’s recycled paper! It’s like totally green, dude! You’re using a recycled product. And it biodegrades easily. Compost already laced with hamster fertilizer? How can that really go wrong? So not only is it better for your pet and better for you, it’s also better for the world.

Frankly, I can’t think of a good reason not to switch to Kaytee Total Comfort Bedding as bedding for your small animal this very instant. It’s just that good. Finally, technology is making a real difference in the life of your pet!