Milestones

April 20th, 2009

The past couple of months have been busy ones. But, the work I put in has borne much fruit. Two weeks ago, I was promoted and became a software engineering manager. I still report to the same person, but I am now responsible for overseeing three parallel projects and two other engineers. The people who have been assigned to me are first-rate, making my transition easier than it could have been.

Late last week, I also became a professional web designer when Compass Games’ new website went live. While putting in several hours each week over the past month and a half, I wrote a content management / e-commerce system from scratch that allows users to view company news, view their product catalog, view each individual product, place items into a shopping cart and use PayPal to pay for those items. It is not a self-sufficient system, I still have to hand modify the data, but it works well enough for now.

I had planned on using Joomla! for the website infrastructure, but the boys at Compass were in a hurry to move to a new system, so I decided to push ahead and write code instead of trying to force 3rd party software to do things it may not be able to do. The problem with using 3rd party software is that it is written with its view of the world and, to use it as efficiently as possible, you need to understand that view. With a prototype already written in Dreamweaver and agreed upon by the principals, I decided to make use of the raw HTML/CSS produced by Dreamweaver and turn it into a data-driven template. The results speak for themselves.

The next phase of the project is to install/populate a new forum based on phpBB3 software. Compass Games’ old forum was a public thing hosted at yuku.com. I wrote a script to suck all of the posts out of it and will try to repopulate the new forum with the users and data pulled from the old, public one. We also have to build a Compass Games related theme to make it unique. Once that’s done, we link to it from the new website and we’re good to go.

There are still some CG projects in the pipeline. One thing that I’m going to add is a copy of my on-line dice rolling system to their site. This will be first of many game aids that could be hosted there. I’m also going to add an RSS feed to the news system as well as add a Site News area so that website-related announcements won’t clutter the company-specific ones.

Finally, there are some other longer term projects coming down the pipeline which are going to challenge me even further than my recent accomplishments. It should be interesting.

Fixing Monadnock

April 1st, 2009

Monadnock is my MacBook Pro. If you look in the archives, you will find a post where I had tried to turn my laptop computer into a triple-booting workstation: OS X, Linux and Windows XP. The Windows XP installation failed, not surprisingly, but I really didn’t care much b/c I am also running WinXP from within two VMware Fusion virtual machines: one for IE7 browser compatibility test and another for *ick* IE6 browser compatibility testing.

I did care, however, a little bit b/c the failed installation left a 20GB unusable dead zone partition on my hard drive. Yesterday, I decided to clean house and embark on another project. I decided to blow away the dead zone and the Kubuntu Linux partition that I haven’t used since I installed it and instead install a different leaner meaner ArchLinux distro in a smaller Linux partition and create a shared HFS+ partition that both operating systems can use. It’s a simple enough project really, a 6 or so on the Geek Difficulty Scale.

Except, that Apple’s Disk Utility application kept crashing whenever I tried to repartition the drive. Using their lower-level diskutil utility failed as well. Evidently, the failed WinXP installation really hosed the dead zone partition information.

After spending last night backing up all of my OS X data (code, music, photos, etc.) to my 1.5TB disk array, I came into work today and booted my laptop to the Kubuntu Linux CD and essentially reinstalled Linux. By reinstalling Linux, I can use their disk partitioning tool and repartition the drive the way I want to… assuming that the dead zone could be read. Long story short: the Linux partitioning tool was able to read and delete the dead zone partition. I did have to create a large Linux partition out of the dead zone and the original smaller Linux partition and finish the install, but it was time well spent to get my hard drive back in working order. After Linux installed, I rebooted to OS X, ran Disk Utility and removed Linux. My hard drive is back to being one huge 250GB HFS+ partition.

I’ll play with ArchLinux later…

Assorted Geekery

March 23rd, 2009

The effort to redo Compass Game’s website is bearing much fruit. It’s still not ready to go live just yet, but the basic look & feel and the core databases which drive the site are in place. I’m currently waiting for more site-related content.

Meanwhile, I’ve gone back to doing some Crucible-related work. Crucible is my web applications / services platform. It is based on my own set of derived data protocols, which is timely given that Red Hat just decided to patent the process of requesting web services through CGI using the SOAP protocol. I looked at SOAP (Simple Object Access Protocol, a misnomer if ever there was one) a few years ago and found that it was overhead-heavy. My system uses 3 different protocols: XmlCGI (a variant of XML-RPC), YamlCGI (similar to XmlCGI but based on YAML) and JSON. XmlCGI and YamlCGI can be used for both input and output data transmission, while JSON is an output-only protocol geared toward Javascript browser request handling. XmlCGI and YamlCGI could be specified as output protocols if need be and would be primarily used for standalone, non-browser clients who wish to request services over the Internet.

Crucible is still in the alpha testing phase. I have some basic debug services working under a variety of protocols, but the support needs to be fleshed out for complex data types. Once I get past this hurdle, I can write some real web services.

Catching My Breath

March 9th, 2009

The past month and a half have been a whirlwind of activity, punctuated with family illnesses.

I’ll start with the illness, a stomach flu that caught us by surprise while we were vacationing up north in Gilford, NH, on the shores of Lake Winnepesaukee. Our plan was to spend a relaxing long holiday weekend on President’s Day weekend and go skiing and/or showshoeing. While Saturday and Sunday were pleasant with swimming in the hotel pool and spending time at the Funspot arcade with its large variety of current and classic video games, my wife came down with an intense, violent stomach flu just after midnight on Monday. While she spent the day in bed with occasional hurried trips to the bathroom, my son and I stayed in the living room part of the suite and hunkered down as best we could.

We came home on Tuesday and the hour and a half drive back home was uneventful thanks to some anti-diarrheal medicine. However, while my wife very slowly recovered, my son and I got hit with the bug just after midnight on Wednesday morning, the day I was due back at work. Calling this thing violent was an understatement; the full contents of my digestive system were emptied in almost no time flat and left me in a near delirious state. I spent the rest of the day on the family room sofa in extreme agony in between numerous bouts of fitful sleep. I would wake up, sure that hours had passed, only to see that I’d only been asleep for 15 or so minutes. Meanwhile, the muscles in my arms, legs and shoulders were a mess of aches and it felt like someone had beaten me about the midsection with a 2×4.

It took me until late Sunday to fully recover. It took my son nearly the same amount of time. However, he didn’t seem to have the same illness. Instead, he contracted something called Fifth Disease and, while my wife and I stayed in a state of elongated nausea, he had numerous fevers ranging from 101 to 104 degrees Fahrenheit.

It took my wife about an extra week to fully recover.

Meanwhile, my side projects with Compass Games continue to move forward. I have taken over their webmaster duties and am now in the process of overhauling their site. All I’m going to say is that the HTML coding of the site left a bit to be desired. It looked like an HTML editing tool like FrontPage was used and then the results were cut-and-pasted willy-nilly where needed to fill a void. Ghastly, ghastly stuff.

My goal was to use a software package called Joomla! to redesign their site, but time pressures have pushed me away from that at the moment. As I am not experienced with Joomla! and Compass Games needs to have the site updated tout de suite, I have decide to postpone the Joomla! installation and configuration to a later date and have instead used my own home-brew templating system based on Ruby scripts, Javascript and the erb Ruby code module. So far, it’s all coming together nicely.

Other projects continue to vie for my time as well. I’ve made a ton of progress on my Crucible web application framework and I shall soon use it in a production environment with my dice roller application. Zoran continues to keep me busy as well. Not only am I involved in several concurrent projects, but I’ve also been tapped for a possible management position in the near future. If this does happen, it will add another set of challenges to my career. I hope it happens sooner than later.

Full Speed Ahead

January 14th, 2009

A financial roadblock to one of the many projects that I’ve been working on has been removed allowing work to progress.  On the flip side, I have so many projects going on simultaneously that it’s getting more and more difficult to keep things going.  I may need to get my hands on some project management software just to keep all of my tasks straight.

One of my current projects is a paying gig, a redesign of a game company’s website, complete with a forum and an e-commerce engine.  The money’s not bad for a side project and it’ll give me some street cred as a professional web developer.  Plus, it’s fun.

Just a Quick Drive-by Post

January 8th, 2009

It’s been a while since my last post.  Since then, several things have improved, though life continues to be extremely busy.

My wife’s health issues have subsided.  The culprit was a combination of a hiatal hernia and a narrow part of her esophagus.  The hernia was causing acid reflux which would then hit that narrow part of esophagus and cause intense pressure and pain.  Her esophagus was stretched, a phrase which makes me gag, and she was given a prescription to treat the reflux.

Meanwhile the flying squirrels were evicted from the attic.  I hired a team called The Bat Guys and they did a bang-up job.  They are also going to handle the clean-up, which will begin once the weather in the Northeast calms down.

Finally, Zoran shuts down for the holiday week, so I enjoyed that time with my son and we played several games together.  We got a Wii for Christmas and we enjoyed the Wii Sports very much.  On top of that, we played several spur-of-the-moment roughhousing games on the sofas.  Great fun was had by all.

The Cherry on the Sundae

November 24th, 2008

As if life wasn’t keeping me busy enough, one or more squirrels have invaded my mother-in-law’s attic. As my mother-in-law lives in an in-law apartment attached to my house, this is a concern.

A baby squirrel running amok in my mother-in-law’s kitchen clued us into the problem. Earlier today, I climbed up into her attic and discovered the numerous turds that had been collecting up there. Nice. Looks like I have a major clean-up job over Thanksgiving weekend.

My Plate is Full

November 21st, 2008

This has been a tough couple of weeks. I thought last week was bad, but this week was rough enough to make me forget last week. Thank God it’s Friday. No shit.

I really can’t relate the scope of all that has happened in the past couple of weeks. Instead I can give a breakdown of the current situation:

My Son’s Health
On top of my son’s (high-functioning) autism sits peanut and tree nut allergies and asthma. Well, the asthma kicked in strongly last week as what started as a simple cough turned into a full-blown series of asthmatic complications. So now my son is on albuterol and Flovent, the latter a steroid-based medication that turns my loving, peaceful son into a monkey with no impulse control. Every time he’s on the Flovent, his problem behaviors take flight. Thankfully, the school knows and has been helping him adjust, though he had his worst day yesterday.
My Wife’s Health
Over the past few months, as I’ve related before, my wife has had a series of episodes which features severe abdominal and chest pains. Finally, after a battery of invasive and non-invasive tests, the episodes were caused by a hiatal hernia, which caused a series of reflux events which then forced itself against a narrow part of her esophagus. The fact that we have a definite diagnosis helps, but other issues came up and the search for the diagnosis for the hernia triggered a series of other tests in other areas which prompted yet more tests. Etc. Thankfully, everything else has turned up negative so far, but all of these tests take time.
My Mother-in-law’s Health
My mother-in-law has breast cancer. She’s also 83 years old and is reaching a point where she wants my wife to be with for all of her appointments. Since my mother-in-law is not one to handle stress lightly, my wife has been keeping her own health issues a secret from her mother. This makes the scheduling of all the appointments a tricky business.
My Son’s Therapies
As I mentioned, my son is autistic, or, officially, suffers from PDD (Pervasive Developmental Delay). The fact that he has come as far as he has is a godsend and is the direct result of many, many hours of behavior therapy. These therapy sessions have taken place in our house over the past 5½ years, though now they are taking place out in the community. In addition to behavior therapy, my son also undergoes feeding therapy because he lacked the ability to chew. Like a stroke victim, my son lacked the fine motor skills needed to learn how to eat solid food. Again, after many years of trying, and after many setbacks caused by the school’s occupational therapists, he is finally getting that skill down. All these therapies, while beneficial, take time after school. The sessions themselves take up six hours per week, not including travel time.
My Car
I should have known better. Ever since I got my car’s emergency brake cable fixed, it’s had a hard time moving on very cold mornings. On previous occasions, whatever was causing it worked itself out by the time I got down the road. Well, on Wednesday I found out the reason. My left rear brake caliper was frozen shut. I discovered this while on my way to work after a motorist came up next to me and frantically shouted that my car was burning, whereupon I bailed in a hurry, grabbing my iPod and laptop computer bag. It turned out that my car was not on fire, but there was certainly enough smoke pouring out of the left rear wheel assembly that showed that ignition was near. Fast forward to today, I still don’t have my car back. Parts had to be ordered, the dealership wouldn’t stand by their work, yada yada yada… Being house-bound sucks, particularly since I’m still responsible for my tasks at work.
Zoran
I can’t get into particulars here, due to customer secrecy and all. Suffice it to say that I’m a major part of a team that supports Zoran Imaging Division’s most important customer. I’m also involved in another project for ZID’s #2 or #3 Japanese customer, depending on revenue. (Those two customers alone combine for $21million annually.) That project was the reason I went to Japan last May. Couple that with learning the Postscript language and being involved on a consultant basis on yet more internal projects and my time is certainly maxed out.
Extracurricular Activities
Without going into details, I have several projects of my own going on. I run and maintain this blog, a web forum (Barscape), an on-line dice rolling service (Dice Service) and a series of wargame battle resolvers (Britannia, Samurai Swords), but I’m also building a fiction site for a friend of mine, building an on-line Britannia game manager, building and maintaining two web sites in partnership with another guy (Vision Forge Films, Shining Full Clear) and building and brainstorming two game development projects with the aforementioned partner.
Other
Finally, when I’m not doing anything else project-related, I play chess at Chess World, plan hiking expeditions in the White Mountains and play with my son. Additionally, I’m a member of the US Chess Federation, though I’m unrated and haven’t played in a tournament all year, something I’d like to change soon.

Needless to say, I’m running at full capacity.

Ticonderoga: A Green Machine

November 19th, 2008

I finally got around to using a Kill-a-Watt meter to measure energy usage for my Penguin Computing Linux workstation and my new Mac Mini. Jorden Mauro, a co-op who’s been working in my group for a few months now, helped out. We wound up using his MacBook Pro for additional comparisons for reasons which will be evident.

At idle, the workstation uses 89W of power, while the Mac Mini uses 18W and the MacBook Pro uses 22W. That’s a significant savings.

When I built Zoran’s IPS product from scratch on the Linux workstation, the energy usage shot up to a 100-125W range. Since I still don’t have IT’s blessing to have the Mac Mini inside the company’s firewall, I could not use it to do a direct rebuild. Instead, Jorden used his MacBook Pro to do a complete Linux kernel rebuild. At full load, the energy usage peaked at 40W, over half of what the workstation pulls at idle.

To test the Mini at load, we put in a DVD and measured the energy usage. While playing a DVD, the Mac Mini used roughly 36W of power.

That is a pretty significant savings. Now, it should be said that my Linux workstation is a 5 year old machine. It is running a Pentium 4 processor and lacks the power savings features of today’s Core 2 Duo chips. Still, the energy savings coupled with a faster, more capable processor is nice bonus.

Monadnock: Another Schizo Attempt

November 15th, 2008

In case you couldn’t tell, Ticonderoga and Monadnock are the host names of my computers.  Good, strong New England names.

Anyway, I was so pleased with Ticonderoga’s transformation into a dual-boot development machine, that I decided to do the same with Monadnock. Except, I decided that I would also try to load Windows XP natively on it as well. My inspiration for such shenanigans came from this post at Anomalous Anomaly.

To make a long story short, I failed. Windows struck again, though the Kubuntu distro also tripped me up a bit. What I do have at the moment is a dual-boot system with OS X and Kubuntu on it and a 20 GB hole between the disk partitions where the WindowXP install was going to go.

The issue was the lack of gparted with the Kubuntu distro. Since gparted is a Gnome-based application and Kubuntu is a KDE-based distro, gparted was not included on the LiveCD I burned. The other included disk partitioning tools did not include support for the NTFS filesystem and it did not seem to be able to read GPT disk formatting information. So, from this point on, I deviated from the Anomalous instructions and went my own way.

Rebooting to the Kubuntu CD, I ran the Linux installation procedure, which includes a good partitioning program. From there, I blew away the 70GB FAT32 partition that Apple’s Boot Camp had installed and replaced it with a 20GB FAT32 partition and a 50GB ext3 Linux partition. I then continued the Kubuntu Linux installation onto the ext3 partition, also making sure that GRUB, the Linux bootloader, was installed in the ext3 partition and not at the base of the GPT/MBR hybrid partitioning scheme. That might have caused problems with the Windows XP install.

The Kubuntu Linux installation was successful, though it doesn’t have full support for the MacBook Pro out of the box. I had to install some extra device drivers and do some extra configuration in order to get the special function keys and the special trackpad features to work. Or, at least I tried. Some things worked, but even those only worked temporarily.

No matter, I could attend to those later. Now it was time to install Windows XP. I fired up Apple’s Boot Camp Assistant and hit the second snag: Boot Camp froze. Evidently, it didn’t my hand-rolled partitioning scheme and just sat there, dormant. I killed the process and then tried to just install from the Windows XP installation CD. No luck there either. The Windows XP installation process failed with a missing file error.

A missing file error? On an operating system installation CD? Excellent work there, Microsoft.

So, no Windows “joy” on my laptop, which is just as well. When I told a colleague at work about my triple booting plans, his response when I mentioned a Windows installation was, “Why would you want to take a huge dump on your hard drive?”

Well, writing cross-platform code means support Windows as well, no matter how odious the environment. Oh well. I guess I’ll have to scrounge up a Windows-only development box.

In the meantime, I’ll have to trash the 20GB partition hole and reuse the space. I’ll probably expand the Linux file system to fill in the space.

Or maybe use it for other operating systems like PC-BSD or some such.