My Blog is Moving — Notice!

April 25th, 2008

After almost 3 years of self-hosting and managing my own Wordpress instance… I’m finally caving in and going with a hosted Wordpress solution. For ~$20/yr, it just makes sense… I don’t have to do backups, upgrades, etc.

This is a preemptive notice… I’ll be making the cutover in a few weeks.

The new domain name will be: http://www.davidpthomas.name

I plan on continuing the use of fepus.net but for my own programming projects and web hosting needs.

word. - dave


I’m a 011001000110000101100100 !!!

April 4th, 2008

Yes, I’m a Dad. Wow. Tyler is 2 months old now. He’s a spitting image of… well, that’s up for debate as he starts to fill in. Lets just say he looks like his parents. Though, I think he looks like me, but maybe because of the implicit crew cut. Health == Fantastic. Sleep == O.K. Smiles == Off-The-Charts! Amy and I are working on a routine where I can run & bike and she can dance & shop. All in all… as expected.

Life has changed, but in a good way. Gone are the days of rampart youth. I spent my 20’s living in downtown Chicago, traveling and consulting abroad, but most importantly with a solid group of friends. Those memories will never fade and the experiences will always continue. You of the Orbitz crew… you know who you are. See you in August 2008! . But now things are complacent and family oriented. It feels very natural and the timing is right. Actually, my lower back is unnaturally killing me this week… maybe because I’m training for the Santa Cruz 1/2 marathon and over-exerted myself on recent 7-mi runs…. Eh. I’m just getting old. Regardless, I’m fundamentally happy that fatherhood is upon me.

It’s 10:36 pm. Mom and baby are sleeping. I’m waiting for another hour to do the night feeding.

Tyler, when you read this… go mow the lawn. I just changed your diaper.


It’s a XY!

February 8th, 2008

Amy and I are proud to announce the arrival of our son Tyler Patrick Holden Thomas!

Born 02/06/08 @ 08:08pm in Santa Cruz CA, he weighed in at 6lb 15oz at a length of 21″. He is a vibrant, healthy, bright-eyed baby boy. We couldn’t be more happy!

santa_cruz.population += 1

Here are some family pics… Enjoy!

Tyler Pic Tyle with Dad Pic Tyler with Glasses
Mom, Dad, and Tyler Tyler in Swing Mom and Tyler

Software Launch - AccuRev plugin for Vim 1.0

January 20th, 2008

After 6 months of development, I’m happy to announce that my AccuRev SCM plugin for Vim is now available!

For AccuRev users who find their heart in Vim, you can get the plugin and details here.

It’s a huge relief to finally complete testing. The test matrix for a general utility supporting multiple platforms and multiple versions of 3rd party tools becomes exhausting for a single person… yet, I put together a methodical test plan and pounded it out over the course of a week. Of particular annoyance is that Vim doesn’t have an existing automated test framework so it requires MxN effort on part of the tester. That being said, well written and documented code is significantly easier to test… so it wasn’t all that bad.

I’m particularly happy to finish this release because Amy is due -any- day now! On the one hand, I’ll be tied up with family stuff for the first few weeks/months. Then again, the sooner I get Tyler typing, the sooner we can release more software .


s/windows/linux/igF(orever)

January 1st, 2008

Happy New Year!

The year 2007 marks the end of many things for me including bachelorhood… and MS Windows.

Married life has been great and Amy and I are awaiting the arrival of Tyler in coming weeks!

As for operating systems, after 2 years of booting predominately to Windows on my dual-boot work laptop, I have declared war. I received a (sick!) new laptop for work during the EOY Holiday week. I immediately formatted the drive, installed Ubuntu on a 100Gb primary partition and windows on the 2nd-ary 20Gb. Why windows at all? Well…. just in case. My job depends on a number of independent factors and having a tiny, tiny, very small partition dedicated was enough for security sake. Also, web meeting tools like GoToMeeting don’t have ports to linux (yet) so I need a channel for remote meetings. Only a minor annoyance though.

Linux forever!


HFSBM

December 7th, 2007

Lets just say that BM is “Bat Man.”

Toyota… the creator of my sweet 2006 double cab tacoma… created a robot that plays the violin. Ya ya. We’ve all seen the maid robot from Rocky 3 (or was it 4?), but this sh$t is for real.

Seriously, my heart stopped; I gasped a breath; at this video. This is twilight zone ‘08.

Generation X. Meet Generation R.


Cool ___board

December 5th, 2007

__ ___

_ _____ ____ _______ ____ __ ___ ________ _

Here is a cool keyboard I’d like to get.

__ ____ __ _____ __ ___ _


reCORD firewood purchase

November 13th, 2007

In preparation for winter 2007, I ordered a bulk shipment of firewood that arrived today– the most in a single purchase to-date — that included one cord of semi-seasoned Oak and 1/4 cord of kiln-dried almond. Oak is the way to go; a good hard wood that burns long, not smoky, and is cleaner for the fireplace. I’m trying almond for the first time… just because.

So you’re probably thinking, “dude, you live in CA… why do you need firewood?” Well, it turns out that the mornings can be a bit crisp (high 50’s) and since I work from home, burning a handful of logs in the office fireplace is much cheaper (amortized over the season) than paying for gas to heat the entire house!

Initial Delivery of Firewood Half Way Stacking Full Stack
Initial Delivery Half Way Stacked Full Stack

Amy said I should hire some neighbor kids to stack the wood… but why let someone else have the fun! This is why I wanted to move from downtown Chicago to Santa Cruz CA in the first place!


Controlling the C in Vim

October 26th, 2007

So one day you decide to write a fancy plugin for Vim. After months of writing and testing, you let a friend try. Knowing it’s well architected in terms of layered function calls, has error handling for interactions with 3rd party applications, and provides an intuitive key-based user interface — nothing could go wrong!

Then comes along the diabolical CTRL-C. The arch nemesis of event-based programming (esp. in Vim). The ability to arbitrarily cancel any operation in progress, at any step along the way.

You’re friend decides to hit this magic key combination and the plugin comes to a screeching halt…. the status bar is showing an old state; the progress bar is half-way completed but shouldn’t even be visible; and who knows if the 3rd party application was even contacted.

Ugh. back to the drawing board.

After digging through the vim :help docs for the 100th time over the last few months, I found the solution! The exception handling facility lets you capture the CTRL-C interrupt in a catch clause. Here’s the pattern:

try
… <set variables>
… <call 3rd party apps>
… <perform logic>
catch /^Vim:Interrupt$/
… <unset variables>
… <fix user display>
… <display warning/error message>
endtry

One drawback though is that you cannot re-throw the exception once in the catch block. Though, this can easily be remedied by throwing a custom exception, which is probably better anyway — so the higher level layers deal with application-based exceptions, rather than low-level SDK exceptions.


XY Filial 1.1

October 9th, 2007

We’re having a BOY! All the standard tests have shown that development is on track and so-far, so-good! Amy and I are expecting a ton of surprises along the next 6-12 months, so we decided to know the gender up front. And the name… Tyler Patrick Thomas!

Here are some pictures of our son. For obvious reasons, I’ve left out the gender-determining photos ; )

Tyler 22 Weeks - Head

head

Baby Tyler - 22 Weeks - Body

body

Baby Tyler - 22 Weeks - Foot

foot

While Amy is doing most of the clothes shopping and wishlist building these days, I’ve got a few items already on order over at ThinkGeek.com and CafePress.com. Here are two of my favorites:

Binary Kid T-Shirt

Binary Kid

TCP-IP T-shirt

TCP-IP

Baby Tux T-shirt

Baby Tux

WiFi Hi Chair

WiFi HiChair

iPoo T-shirt

iPoo

Input/Output T-shirt

input/output


As the Google flies

October 6th, 2007

Lately I’ve been curious about the distance calculator in google Custom Map feature. To provide something to calculate… I went on a jog yesterday leaving and returning from my house.


View Larger Map

As the map shows, I have a 1-mile jog to the ocean and there’s plenty of things to see along the way. The two most prominent features are the 150-step staircase going up the cliff and the old cement boat at the end of the pier.

Total distance: 5.5 miles, as the Google flies.

Given that I didn’t have to bring a pedometer or GPS along, I think this map feature is both handy and close-enough.


WYSIWYCC

September 21st, 2007

What You See Is What…You Can’t Control.

I am a vim user. Why? Because what I “put in” is what I “get out.” period.

Today I’m using the embedded WYSIWYG HTML editor of a major (free) online blog tool and have finally reached a raging boiling point. They let the user have a drag-n-drop visual environment for placing images, marking up text, and inserting hyperlinks. They also have a tab that lets the super-users (i.e. coders) modify the raw source code.

The problem? Whenever I submit raw valid W3C HTML source code changes that are not recognized by the WYSIWYG filters, they get removed. Not morphed. Removed. Not left as-is. Removed. Yes. All 15 minutes worth of work is completely and utterly obliterated.

Moral of the story. Use Vim. It’s good for your health.


Blog.new(”AccuRev”)

September 19th, 2007

Our new corporate blog just launched…. guess who got first post : )

This is a great new public portal to reach our customers and prospects. It allows our systems engineers (customer facing tech guys) to share stories about best practices and implementation strategies….the programming engineers can highlight new features and tool integrations… and the public relations group can advertise new features & functionality for upcoming releases. Overall, it offers great inside visibility beyond the traditional marketing collateral.

If your manage teams of developers… checkin/checkout source code…. or are responsible for software tools… I’d recommend keeping an eye on this blog.


Vim =~ /[E|e]aster [E|e]ggs/

September 13th, 2007

I’ve spent the last 2 months feverishly working on a Vim plugin for AccuRev. I’m nearing an alpha launch.

In the meantime, check out the vim easter eggs I’ve found so far:

:help holy-grail
:help UserGettingBoard
:help mapmode-nvo
:help 42


Web 2 dot Uh-Oh

September 4th, 2007

This weekend I came across a wicked cool “popup” javascript library called “greybox“. My good friends from viewpoints.com gave me the tip. For years, we’ve been using javascript ‘window.open(…)’ to create a non-modal popup from querying user information to sending the user to another website. Othewise known as… brute force.

Today, life is different.

Now, with the help of javascript, AJAX, and some talent, we have a toolset that lets us create modal dialog windows that don’t force the user off the primary website. Why is this important? Because we want stickiness — keep the user as close to the original website as possible. Furthermore, we want simplicity - don’t create yet-another-window because of limitations in technology!

Here are some examples.

So… after spending 30-minutes reading the website/instructions and 10 minutes installing the application…. I spent a full hour debugging why it wasn’t working. To make a long lunch break short… after intensive debugging include pathing, rails routing, file permissions, and instructions, I finally found the dumb mistake. spelling. I love being a programmer.

<script type="text/jvascript“>
var GB_ROOT_DIR - “http://localhost:3000/javascripts/greybox”;
</script>

Now life is grand.


Juggling for BAG-hdad

August 30th, 2007

A few weeks ago, Amy and I were vacationing in downtown Chicago — our old stomping grounds. As folks may know, I’m a numbers juggler (3/5/7) from Oak Street Beach (near Michigan Ave) and have been hanging with the juggling group there since ‘93. On our trip, I spent a few evenings juggling on the lakefront enjoying old friends, amazing weather, and a spectacular skyline backdrop.

On one particular evening, a group of tourists stopped in amazement as I was juggling 7. It’s very common to have passer-by’s stop to ask how long we’ve been juggling or even ask to try — of course we let them — it’s a great way to meet people. Juggling for BAG-hdad But this group was unique. All were visiting the US from Baghdad where they are civil engineers. They asked to take some group pictures for their memories and in return, I asked them to send me a copy. Today I received the picture. I also had a few email exchanges with one of the women who described their 3-week US trip studying highway engineering in Washington DC, Florida, Rhode Island, and Chicago. They have since returned back and it’s sad to report that their situation in Baghdad is described as “lifeless.” Remaining apolitical, I wished her well, to be safe, and keep hope that we can all live in peace very soon.


Jogging my Memory

July 18th, 2007

Boston is a great city. I am there again this week visiting headquarters for some quarterly meetings and hanging with my colleagues. The best part is staying downtown… the roads are non-rectilinear and everyone drives like nuts, but there is so much rich history all around. I managed to score a great hotel downtown and have an awesome view from the 16th floor looking East.

I’ve been traveling quite often lately and to prevent lethargic tendencies while on the road, I enjoy finding a fun spot to take a jog — here is my latest route. My colleague Bob DeMaria runs this path weekly and invited me to join today. Notice the proximity to Logan Airport (BOS)… we had 757’s flying directly over us a mere 1000 feet in the air!


open-SORE-ce software

July 9th, 2007

Open source software is sometimes like “getting what you pay for.”

Don’t get me wrong… I’m a firm believer in open source software and have benefited greatly on many occasions by being (cap)able to make custom changes.

But here’s what pisses me off greatly besides the typical poorly documented, poorly written, poorly packaged freely available tarballs from random (but sometimes talented) people — bad software contracts. I’m not talking about legal stuff. I’m talking about software APIs.

Case in point: I’m authoring a plugin for Vim. Rather than start entirely from scratch, I found a freely available, basic plugin that is advertised as a ‘framework’. One of the methods that required implementing has the following signature:

function name(path): string[]

My implementation didn’t work even though it matches the above description. After following an example and briefly reviewing published software that already implements it, I was sure my implementation was accurate. Long story short, I had to crack open the framework, plaster it with debugging statements only to find their “definition” of an array of strings is a single string with NewLine delimited sub-strings.

string[] == "string1\nstring2\nstring3\n"

Do you call that a return array of strings? Ok, it’s certainly parseable. But come’on… I would have expected:

string[] == ['string1', 'string2', 'string3']

After a long night of reverse engineering, I’m pissed that this ‘framework’ has really turned into a DIY job.


colon right quit

June 23rd, 2007

For the vim users out there… are you tired of hitting Esc just to save and exit? Add this tidbit to your .vimrc:

inoremap :wq <ESC>:wq<CR>

This will let you type ‘:wq’ to write and quit while still in insert mode.


Sand Point Overlook

June 14th, 2007

I just got back from a sick 11-mile mountain bike ride at Nisene Marks State Park and finally found Sand Point Overlook. Here’s my route.

I parked my truck at the base of the mountain and after an hour of climbing the uphill switchbacks, made it to Sand Point Overlook. Here are some pictures…. me at the top… my bike at the top… and the view. What’s next? At the top, there’s a fork in the road.

The best part….. nonstop downhill for 14min 38sec. Reminded me of sledding the Preda-Bergun 3-mile sled run in Switzerland.

I also found a great 360 virtual reality of Sand Point Overlook.