Monday, December 22, 2008

Happy Holidays

2008 has been an exciting year for the Quinlan household as we welcomed Carson Michael Quinlan to the family on May 21st. Carson is just starting to roll over on his own and is babbling constantly (I think he may have said DaDa, but it's hard to tell). Evan has adapted well to his new sibling and enjoys telling everyone "that's baby Carson, he's my brother!"

Kristen has returned to work part-time at Crabapple Knoll Veterinary Clinic where she co-manages inventory. She looks forward to returning back to full veterinary technician duty sometime next year. In the meantime she has been managing our basement remodeling project which should be finished in time for Christmas.

In February Matt said goodbye to JBoss/RedHat after 3.5 years and joined a small software startup in Atlanta called Appcelerator. Unfortunately, in the fall Appcelerator relocated to Silicon Valley, so Matt joined up with some of his old JBoss pals at LoopFuse. Matt's parents are only 20-30 minutes away so we get together with them often.

The pets are all happy and healthy (Tika, Chloe, Elijah, Wink, and Nougat) and continue to clog our vaccum cleaner as always :)

Happy Holidays!
Matt, Kristen, Evan, and Carson

Friday, December 19, 2008

MacBook Air Wireless Dropouts FIXED!

After 10 months of watching my wireless connection drop out randomly (and usually at the most inopportune times) I have finally found a solution. So for anyone else out there running WinXP on a MacBook (BootCamp, Fusion, or Parallels) let me save you the 10+ hours of frustration and point you directly to the solution.

You just need to replace the wireless drivers with the Broadcom drivers provided by HP.


Tuesday, December 16, 2008

Next Stop... Loopfuse

While I have certainly enjoyed my post-Appcelerator vacation, it's time for me to return to the working world. Many of my friends have suggested that I might get a "real job" at a large established company instead of playing the startup game (again). But I'm not convinced that there is any more stability in Fortune 500 companies than anywhere else given the rash of layoffs at large companies. Especially since large company layoffs tend to be governed by seniority while smaller companies are more focused on "who do we need to survive".

I am thrilled to be joining up with some of my former JBoss colleagues (Roy Russo, Tom Elrod, and Frank Merenda) over at Loopfuse and will serve as Vice President of Sales and Marketing. LoopFuse provides a marketing and sales automation suite offering organizations the ability to generate leads from their website, score and route leads, marketing campaign capabilities, full web analytics support, and full CRM integration. This is all provided in a SAAS model so our customers don't need to install, maintain, or support any additional hardware or software.

If your company relies on it's website for a significant portion of your sales leads and you don't have an automated system to identify, score, assign, track, nurture, and analyze your leads for you, then you have been missing out. Drop me an email at and I will give you an overview.

Sorry kids, daddy has to stop playing and start paying for your tuition again :)


Tuesday, October 21, 2008

AjaxWorld - San Jose 2008

For the past week I have been laser focused on preparing for my presentation at AjaxWorld on rapid prototypting for rich internet applications. I always seem to underestimate the amount of effort it takes to build a really compelling presentation and therefore I always end up making tweaks up until the very last minute. Maybe I'm just never satisfied and believe that it could be just a little bit better. Lucky for me it seemed to work.

The presentation generated an amazing response. About 50 people came up to me during the conference telling me how much they enjoyed the presentation and that I had crystalized their challenges and provided an interesting solution simultaneously. The Appcelerator booth was overwhelmed by people wanting to learn more about our technology. Personally, it's incredibly satisfying when you realize that you've really made a connection with your audience.

Later in the evening I was able to participate in a panel discussion about "The Future of Rich Media and Content Across All Four Screens". At first I had no idea what the concept of "four screens" meant. They are (supposedly) : the theater, the TV, the computer, and the phone/handheld. Each representing their own experience and their own idiosynchrasies. At the end the question was posed "Would your recommend Computer Science as a degree to your child?" Initially I simply answered "no" and tried to leave it at that with no explanation (b/c it was kind of humorous) but when pressed I passionately argued that <rant> computer science curriculums have NOT kept up with the pace of innovation happening in the software world and that our CS students would be MUCH better served learning SQL than learning RS/JK edge-trigged flip-flops.</rant>

Overall, I've really enjoyed the conference so far.

Thursday, October 16, 2008

What's next for Quin?

I have been incredibly fortunate during my career and I can say that I have very few regrets. From Tallan (including Carmax, ValueAmerica, & On2) to Interwoven to JBoss/RedHat to Appcelerator it has been an amazing ride. However, today I am pondering my next move. As some of you may have heard Appcelerator has recently decided to close the Atlanta office so I am soon to be unemployed.

I am looking for a senior technical management or evangelism position in the Atlanta area with a maximum of 25% travel. I have a home office now so I can work from home if necessary. I haven't gotten around to revising my resume yet (do people still bother?) but my work history can be found on linked in. If you know of any good opportunities for me please send me an email (matt-at-quinlan-dot-net) or tweet me. If you have already given me a job lead, my sincerest thanks.


Monday, October 13, 2008

Get "Rich" Quick : Rapid Prototyping for Rich Internet Applications

It's the GUI stupid!

Many years ago, I consulted for a large semi-conductor company during the early stages of a software project. They had a highly detailed and fairly rigid process for software projects that started with a complete requirements document based on an extremely verbose and granular template. As the project progressed and I saw the size of the document balloon from 50 pages to more than 200 pages, I had the realization that this document would never be read by ANYONE from beginning to end. The business owners who were responsible for ensuring that the requirements fit their actual business needs were completely overwhelmed by the document's size and complexity. Six months later the business users were given their shiny new software and they were disappointed that the software didn't match their expectations.

In reality, the software was a very solid effort that met all of the requirements specified in the document. However, business users had no ability to read the requirements document and imagine what the user interface might look like for the requirements provided. I remember feeling that the business owners didn't know what they really wanted and feeling resentful of that fact. In retrospect, I realize that almost nobody knows exactly what they want, until they see it. Why? Because to a user, the interface IS the software. Concepts like data models, middleware, rules engines, LDAP, and SSL have no real meaning outside of us techies.

So how do we avoid this? Is Agile Development the answer? Agile is definitely a step in the right direction. It codifies the practices that had evolved in the most successful and most productive software development teams of the 1990s. However, we need more. We need to enable our development teams to prototype the user interface quickly and easily so that users can actually see (better yet, use) the software EARLY in the process. In web 1.0 this was a fairly straightforward effort of building static HTML wireframes. The problem was that this work was largely throwaway b/c they had to be rebuilt as servlets, JSPs, ASPs, PHPs, etc.

As our web applications become more sophisticated this approach starts to break down even further. Today, rich internet applications include syndicated content, widgets, DOM manipulation, Ajax calls, and often a substantial amount of JavaScript. Static wireframes just cannot easily emulate this kind of rich user experience accurately.

What If?

What if you could build the user interface prototype in a matter of days or weeks without a single line of server-side code or even a datamodel? What if the business owner could not only play with this prototype, but also provide context specific feedback seamlessly while exploring the prototype? Finally, what if the prototype wasn't a prototype at all, but was the actual user-interface of the final product (zero throwaway code)... even if you haven't decided which server-side technology you want to use (Java, .Net, Ruby, PHP, Python, Perl)?

This is exactly how we develop software for our consulting customers today using the Appcelerator platform. We've been doing this for over a year now, but we haven't really given it a name until recently. We call it "Interactive Use-Cases". Essentially, we skip the entire functional requirements definition phase and move directly from use-cases to working prototype! This is only possible because of the advantages that the Appcelerator platform provides us. Let me explain.

Technological Enablers

First, Appcelerator's widget library, web expression language, and message-oriented architecture were designed to enable web developers to build UIs with the minimal amount of code (read: JavaScript) possible. As an example, Ajaxian's Dion Almaer posted a small interactive web page on his blog and invited people to port it to their favorite JavaScript framework. Compare the ViewSource of the Appcelerator version to those of the other frameworks. More app + less code = better productivity.

Second, the fact that you are not generating your HTML from server-side scripts frees you from the wasted effort associated with building throwaway static wireframes. Build applications as Ajax enabled .html files which dynamically pull data/content from the server and (re)render those sections of the page accordingly.

Third, our message-oriented architecture is ideal when prototyping because message subscribers in the browser do not care about the source of their messages (that's the point of publish/subscribe architectures). So build the entire user interface with the exact messaging code that they will need for production use. But instead of building a datamodel, DAO objects, DTOs, business logic, and such to provide the actual service implementations, just add a single line to your webapp to include a single JavaScript file containing mock implementations of these backend services. In 90% of the cases you can mock that service with a couple lines of JavaScript that generates a JSON message with a mock payload.

My favorite part about this approach is that once you have gotten sign-off from the business owners, you can remove a single line from the application and all of the mock services have now been turned off. And the server-side programmers have a complete contract of every service which needs to be developed along with test data. Even better, they can choose to implement those services in any language they prefer because the UI is just producing/consuming JSON.

Fourth, thanks to a recent enhancement by Andrew Zuercher, we can easily collect user feedback on our user interface prototype by passing an additional URL parameter which highlights the border of any HTML control on mouseOver. By CTRL-clicking on any highlighted element a feedback dialog box appears that includes the specific page and HTML control being commented on. Users can see other users comments so that feedback effort isn't duplicated. UI elements that already have comments are indicated with red borders.

annotated web page screenshot

Everyone knows that prototyping is a valuable exercise that improves the likelihood that the business users will be satisfied with the end-product. However, the limitations of web technology have made it prohibitively expensive and time consuming for all but the most critical web projects...... until now.

The Effects of Open-Source on Recruiting

This is the first of a series of blogposts in which I will explore the impact of an open-source business model on different aspects of a software company. During my tenure at both JBoss and Red Hat and now at my current employer Appcelerator, I have witnessed these sometimes subtle, often dramatic, effects from finance to sales to engineering to IT to support to marketing to legal to human resources. Everyone is affected in an open-source company.

I have always enjoyed technical recruiting. Probably a result of my first employer (Tallan) emphasizing the importance of everyone participating in the recruiting process. The company actually tracked statistics on which employees had passed/failed interviewees and the success/failure of those interviewees who were actually hired. There were no direct financial rewards for being the best interviewer, but there were definitely some bragging rights. It was during this time that I realized just how different hardcore technical recruiting is from almost any other position. When companies hire accountants, managers, lawyers, marketers, and salespeople, so much of the decision was based upon a candidate's history, his/her personality, and his/her attitude. However, when a company is trying to fill a highly technical position, the VAST majority of the decision (hopefully) falls on his/her technical accumen. Technical recruiting is different... and for good reason.

One of the most difficult challenges facing companies who need to fill highly technical positions is to accurately assess a candidate's skillset and knowledge. Notice that I distinguish between knowledge and skills. While I do actually understand the bodily mechanics, balance, and coordination necessary to dunk a basketball... I still do not possess the athletic skill to do so. Oftentimes, the HR department won't even attempt to evaluate the technical aptitude of a candidate, just assuming that the candidate's proficiency on any technical skill listed on the resume is likely to be sufficient for the position's requirements. That's not a dig on HR, how on earth would we expect them to evaluate whether a candidate who lists Oracle as a skill is capable of installing Oracle, designing datamodels, or tuning Oracle databases? It takes a rockstar to know one ("'s just a handful of people in the world who can tell the difference between you and me. But I'm one of them." - from Goodwill Hunting). When companies do actually attempt to assess technical talent it is often conducted haphazardly by someone who would rather be coding than interviewing candidates. Either way, the result is that the quality of technical talent within an organization fluctuates more than the price of crude oil. And because companies loathe the concept of shedding weak talent, mediocrity becomes the accepted standard.

Enter open-source.

The introduction of open-source into a software company's business model adds a new way to evaluate the technical accumen of potential hires. When looking to add new members to the team, no talent pool can compare with the members of that project's open-source community. Rather than conducting a series of interviews to determine the best candidate, you can easily see who the most engaged, most insightful, and most talented community members are based on their comments, their posts, their blogs, and their code contributions. This approach to recruiting results in a ruthlessly efficient "weedout" process allowing a company to easily identify the best possible candidates. Much like the ability of open-source software to prove it's value before a company invests in support, this model requires a job candidate to prove his/her value prior to consideration.

During my tenure at JBoss I specifically remember that the HR department was not allowed to interview or source candidates for positions on the core development team. You first had to be a contributor. And if your contributions showed that you were a rockstar, then we would send you an email and ask if you would like to make your hobby into your job. Few people declined because it gives them a chance to work on something they are personally interested in (which isn't necessarily true for most programmers).

Next week, Appcelerator will have our first official hire directly from our community. Kevin Whinnery (formerly of Lawson Software) will be joining our team as an evangelist. Kevin has been one of our most active members to date and is in the process of writing a book about Appcelerator. This is a perfect example of someone who clearly proved their worth in advance... and we are thrilled to have him coming aboard. Welcome to Appcelerator Kevin! Are you next?


Monday, August 18, 2008

Google Alerts via RSS

I am trying to become a more efficient consumer of news and information. I was a bit late coming to the RSS party, mostly because I didn't truly realize the value it could create. However, once I started using RSS it became a passion of mine. I found it incredibly valuable to have my news & information delivered to me rather than having to go find it constantly (which always drops off when I get busy).

I found lots of cool tools that allow me to mix RSS, and filter RSS, and generally create mashups (more on this in future post). However, the one itch I could not scratch was the ability to consume my Google Alerts as an RSS feed. It seemed ridiculous to me that I couldn't find a little RSS icon anywhere on the Google Alerts page.

Luckily, after much searching, I found someone who had noticed that the URLs for individual Google Alerts looked a lot like those for Google News. So here's the scoop, if you want your Google Alerts as an RSS feed:

1. Goto Google News and enter the query that you would want to use for your Alert.
2. Look at the URL that is created as a result and pull out the q=______ section (hint: this is your querystring)
3. Add the querystring onto the following URL:

Obviously replace the ________ with your querystring from step 2.... and Voila! You now have an RSS feed to import into Google Reader or whatever reader you prefer.

Outlook : Hazy with a chance of Pain

This morning I booted up my laptop and launched Outlook to pull up my calendar and task list (one of my favorite Outlook features) and plan out my day. However, my expectations were quickly dashed when Outlook informed me that it "Cannot open your default e-mail folders. The file c:\Documents and Settings\mquinlan\Local Settings\Appclication Data\Microsoft\Outlook\outlook0.ost cannot be accessed. You must connect to Microsoft Exchange at least once before you can use your offline folder file." and then closed immediately upon clicking the OK button.

Now I'm actually a big fan of Outlook, when I was working for RedHat and switched my laptop over to Linux I was forced to live without Outlook for more than a year and I must admit that the alternatives (Thunderbird and Evolution) are complete crap. Yes, Thunderbird is fine for email only users. But if you actually need to run your life in your PIM and you need something simple like calendaring support... you are stuck using buggy 3rd party extensions like Lightning. So needless to say, one of my favorite aspects of leaving RedHat was to return to my previous level of personal productivity through Outlook. Or so I had hoped.

Now on to debugging the problem. I've checked to ensure that the file it references does indeed exist. I've even temporarily removed the file so that Outlook might recreate it from the server-side (Exchange). But no luck. I'll post the resolution here once I figure it out. Not because anyone reading this is likely to benefit, but more likely that I will stumble across this again in 12-24 months and not be able to remember how to fix it and this will be my documentation.

Update: Looks like the problem wasn't Outlook, but rather another piece of software which I use to sync Outlook's calendars with Google calendar. While Google provides a free piece of software to do this, it is only capable of syncing your main Outlook calendar and I like to separate out personal and work calendars. I purchased and use SyncMyCal and it has worked flawlessly... until today. I'll see if there's an update. But luckily, this issue was fairly easy to resolve and didn't require me to rebuild my entire Outlook .ost file.

Thursday, August 14, 2008

Carson Update

I've been a slacker about updating this blog about Carson's health. The good news is that there has been little reason to update the blog because Carson has been very healthy and happy! In just the last week or so he has become sooo much more aware and grins at us when we make goofy faces (which is often). Anyhow, thank you to everyone who has been following our saga and praying for us. He may not be destined to sing opera (b/c of the vocal chord damage), but somehow I'm sure he'll manage :)

Wednesday, August 6, 2008

The Death of Offline Web Apps

I love my Google Reader (especially the VI hotkey navigation). I really love the fact that I can take my RSS feeds offline with me when I'm about to jump on a plane. However, what happens when the concept of being disconnected from the Internet disappears?

I tend to be a ridiculously early adopter of technology and therefore end up with hopelessly outdated technology that costs 5x more than it should. I have always thought that connectivity should be independent of wires & location. From OmniSky (for my Palm Pilot in 1999) to Intel Anypoint (1.5 mbps baby) to digital phone cards (PocketPC) to EvDO cards... there's almost never a reason not to have an IP address except on an airplane, a submarine, in a faraday cage, or in deep space. Since I'm unlikely to encounter three of those situations it's really about the ability to access the net at altitudes of 30,000ft.

I just read today that Delta has announced it is going to provide WiFi on all domestic flights. And it seems JetBlue has been offering limited access since 2007.

As competition forces the cost of mobile connectivity to decline, offline may be a stop-gap solution that eventually becomes a solution in search of a problem. Now this doesn't mean that some of the advancements that have been associated with offline will also disappear (local data storage, desktop integration, etc.). However, the idea that my user interface needs to be stored locally will soon seem quaint.

note: cross-posted at my work blog

Monday, August 4, 2008

Stop Identity Theft by Freezing Your Credit

What keeps someone from applying for a credit card in your name? Truthfully, very little. We have all seen the reports of identity theft in the news, but you may not know that this has become a truly rampant problem affecting a growing portion of the overall population.

How do you protect yourself? There are dozens of advertisements for services which claim to protect you from identity theft. Most are worthless, a few have some merit, but the good news is that you can protect yourself for $9 if you are a resident of Georgia (other states may be up to $30, if you have been an ID theft victim it's free).

It's called a credit "freeze" and essentially it means that nobody can open credit in your name unless they provide a secret 10-digit pin number. Simple & effective.

Here are direct links for issuing a credit freeze for each of the 3 credit bureaus;
notes: You must pay the $3 fee per bureau which means $9/person or $18/couple. You may also be required to pay a small fee to "thaw" your credit profile when you actually do want to apply for credit. But it's a small inconvenience for the protection it provides.

Do it now and save yourself from the identity theives.

Friday, July 18, 2008

Cross-E-mail Client HTML

I was a salty Java programmer who never really cared much for GUI development until recently when I joined an RIA (rich internet application) software company called Appcelerator. One of my tasks at work was to create a monthly newsletter for our community members. We have an amazing graphic designer here (Tyrus) who created a really cool layout for me and all I had to do was convert the image into HTML so that it could be rendered in people's email clients.

Twenty plus hours later I am still trying to figure out all of the quirks associated with rendering HTML in email clients. I thought that creating cross-browser web pages (IE, Firefox, Safari) was a challenge, but cross-email web pages are nearly impossible. It turns out that there is an entire community of people who spend countless hours identifying what works and doesn't through painstaking trial and error.

My newsletter design was to have a grey background color rounded corners and one of the corners was intentionally asymetric with an arm shooting out of it. Like this:

So I cut up the image into some component images that I planned to align with HTML background colors inside a table to provide a canvas on which to place my text.

Now the question was how do I emulate the background color shown in the image within my webpage so that I can enter the textual content of the email? I had lots of options here with tables, div tags, background images, background colors, styles, etc. So I chose one and went about building my webpage after an hour or two I had everything working in Firefox so I decided to test it in Internet Explorer. WHOA! Not even similar! I spent HOURS googling and tried dozens of "tips", but it turns out that most people posting tips just regurgitate what someone else had told them (which wasn't necessarily true).

I finally decided that the only way to truly understand what background color options I had was to conduct a test. So I built an HTML table with 6 different ways to color a cell to see what kinds of color changes and alignments resulted. I had also learned that Outlook has used Internet Explorer to render it's HTML until version 2007 when Microsoft decided to use MS-Word instead (so I had to add MS-Word/Outlook2007 to my testing). Here are the results:

Notice how Firefox renders all of them exactly the same. Perfect alignment and perfect color. IE screws up both the alignment and the color so that almost every one of them is different! And Outlook... god help Outlook. After about 5-6 hours of searching I finally found this post which highlighted the fact that in strict mode (as opposed to quirks mode) an image tag is displayed as an inline element which causes Internet Explorer to add 4 pixels of spacing below the image to account for descending letters like j,q,p, and y (nevermind this is an image and cannot actually have descending letters!). The solution was to add a style tag:

style="display: block"

And voila, the space at the bottom of the image in IE disappeared! Simple right? As Lee Corso would say, "not so fast my friend". When I rendered the image with the style attribute in Outlook2007 it added a 1 pixel border on the LEFT of the image! I finally solved that problem by duplicating the background color of the image inside the TD cell of the table which contained it. Like this:

After trying several other email clients and toying with this for hours I finally decided that the most cross-client solution to background colors was to use tables (styling every padding/spacing/margin attribute to zero and collapsing borders) and to set background color directly on TD elements. Image alignment required the tricks I describe above. Also note that recipients who use Gmail will not get the proper spacing if you use style="margin xxx" or style="height xxx" or style="width xxx". For gmail, you must specify height or width as a tag attribute instead of a style.

Now that I have figured all of this out... I hope to never utilize this knowledge again in my personal or professional life. However, just in case I am forced (kicking and screaming) to do this again, this blogpost will serve as my documentation of what actually worked. And who knows, maybe it will help someone else not spend 20+ hours pulling their hair out on these issues.

Thursday, June 12, 2008

5 Quick Personal Finance Formulas

Being somewhat of a personal finance junkie (Clark Howard & Dave Ramsey disciple) I am always on the lookout for better ways to make decisions with my money. For example, when I'm standing in front of the 1080p flatscreen HDTV at Frys I try to think of what that money would be worth in my retirement account. Or when I'm trying to decide if I should pay someone else to mow my lawn, it helps to quickly calculate my personal hourly payrate.

Money Magazine (Jan2008) had a great little article with 5 quick formulas that you can do in your head to help with questions like this.

How many years will it take to double my money?

72/annual investment return, eg: @ 8% investment return, it would double in 9 years

What am I giving up in retirement savings when I spend money today?

Add a zero to the price tag, if you have invested the money for 30 years, earning a 8% return. So a $10,000 dollar stereo system trims the savings by "$100K".

How do I need to earn, before taxes, to buy what I want?

Multiply the cost by 1.4 (for 28% federal tax rate)

What am I worth by the hour?

Divide your annual pay in half, drop the last 3 zeros. If you make $100,000 a year, you make $50/hour (40 hour week)

Does my fund manager do well enough to justify his fees?

Multiply your fund's expense ratio by 10. The result is the percentage by which it needs to outperform a low-cost index fund to cover the extra fees. A fund with an expense ratio of 1.5% for example needs to do 15% better than the index.

Monday, June 9, 2008

Carson is HOME!

Do you want to see him?

Click here for live webcam of Carson's Crib !

This link will require a plugin to be installed in your browser.
Don't worry.... it's safe.

Carson Coming Home !

Saturday morning Kristen and I were treated to a big surprise. We arrived the NICU to find that Carson's NG feeding tube had been removed! His doctors were happy with his progress and decided to remove the tube and let him free feed (as opposed to taking a bottle on a specific schedule). For the very first time we were able to hold him and see his entire face... no tubes, wires, tape, cannulas in his nose, or IV's in his forehead. We expect to bring him home early this evening :)

Friday, June 6, 2008

Lipstick on CGI

It was 1997 and I hadn't really embraced the web yet as a programmer. While I had played with HTML, I was convinced that real developers wrote in C/C++ and PL-SQL. HTML was for sissies. One of my co-workers was building an online search engine for an e-commerce company and he introduced me to CGI programming. The idea of redirecting the incoming HTTP request to a script that generated HTML on the fly instead of regurgitating the contents of a file seemed immensely cool to me at the time. Technology advanced and I followed with SSI, then servlets, then ASP, then JSP, then taglibs, then struts, then JSF, etc.

However, I never really questioned the basic premise that web applications are essentially a simple collection of scripts which dynamically generate HTML documents and share a server-side context (http session). Afterall, all of the server-side web technologies I had used were based on the same fundamental concept that CGI had introduced back in 1995. Most innovations in this area were just further abstractions built on top of this concept (e.g. JSP custom taglibs). But abstraction is a double-edged sword. It eliminates the need to understand everything going on under the covers. However, each abstraction layer typically includes its own configuration (struts XML hell), quirks, and conventions. Which results in the need for someone to define "best practices" based on their personal pain of figuring out where the friction points are between the layers of abstraction that live just above and just below it (e.g. ValueObjects/DataTransferObjects).

Building web applications has become much more complex than necessary and the the development community has responded with simplification efforts (think Ruby on Rails, annotations, configuration by exception, etc.). Each of these efforts were a significant evolution of web application development, but none were revolutionary. While undeniably valuable, they were still just lipstick on CGI.

True Web Clients

There is an opportunity today that really hasn't existed until recently (outside of building GUIs completely inside a proprietary player like Flash). Stop generating HTML on the server-side. Write rich web applications as standalone clients based on open standards such as HTML, CSS, and JavaScript. Call it Client-Server 2.0 if you like, but without the baggage of software distribution, version management, and platform dependencies. While JavaScript was the foundation of this revolution it was the introduction of CSS, DOM manipulation, and finally AJAX that allowed us to build truly standalone web clients.

So how do you go about building true web clients? Until recently it was actually rather painful to do so. You had to be a JavaScript guru and even then you typically were weaving together multiple 3rd party JavaScript libraries and frameworks to provide the necessary event handling, DOM manipulation, parsing, etc. Appcelerator was designed specifically to simplify the development of web clients so that mere mortals can develop them (not just the PhDs @ Google). Yes, you can use all of the Appcelerator widgets and even leverage the client messaging bus without giving up your HTML generation scripts (and many people do). But once you've experienced the elegant simplicity of developing true standalone web clients that invoke services for business logic & data access, you will never go back.

The shift is already underway. The client operating system IS the browser. See the rise of offline, single-site-browsers, and desktop web integration. The clients call services and re-render themselves accordingly. The only question remaining is... how long before you starting writing webapps as standalone web clients?

(cross-posted from Appcelerant)

Final Hurdle

The only thing that is keeping Carson in the NICU is his current inability to drink the entire contents of his bottle without falling asleep. When this happens, the remainder of his milk must be pumped into his stomach through the NG tube that's stuck up his nose. Sometimes he finishes the bottle easily, but he's just not consistent yet. If he doesn't improve this weekend we will be getting trained on how to feed him through the NG tube and we will feed him at home with daily visits from a home nurse.

Tuesday, June 3, 2008

Vocal Cords

Last night Carson underwent another procedure where the surgeon went in to see if his cyst had reformed and was collecting fluid again. The surgeon referred to the size of the original cyst as "huge" and said that the walls of the cyst were not as flimsy as many of the smaller cysts she has seen. As a result, the cyst cannot be removed at this size without significant trauma. Therefore, she is simply try to keep it drained and see how well it is absorbed by the surrounding tissue.

The good news
The surgeon did not see any indication that the cyst had recurred and it continues to drain normally.

The bad news
Unfortunately, it appears that the size and location of the cyst may have impacted the development of his vocal cords on one side. As a result his voice will likely always have a raspy or hoarse sound. We just don't know if that means he's gonna talk like a cowboy or whisper like a monk. Either way, his challenges pale in comparison to being born without an esophagus (which is what we were told originally).

Spoke with the neonatologist today and he indicated that if things went well we could probably take Carson home in 5-7 days. There is a small chance that he could come home sooner, and if things go south he could be there longer. But that was his best guess.

Kristen should be leaving to visit him in about 15 minutes. I'm sure he's looking forward to seeing mommy.

Monday, June 2, 2008

Carson's First Videos

While we are posting a lot of pics here, but we typically use Snapfish for our photo management. Click here to see a complete album of Carson. My apologies that it requires signup... we should probably switch to Flickr so you don't need to but we have hundreds of pics on Snapfish already.

Also we have uploaded a coupla videos as well to youtube that you can see here:
Video#1 Video#2


Sunday, June 1, 2008

Carson's Homecoming Countdown

We haven't posted to the blog in a while because there hasn't been much to report. Saturday has come and gone and Carson is still in the NICU so my prediction was apparently a bit optimistic.

On Saturday Dr Gowan (the surgeon who treated Carson originally) told us that she thinks his cyst may have reattached and is collecting fluid. On Monday she is going to put him under and re-scope his trachea to see what's really going on. If the cyst has reappeared she will drain it again and continue to monitor his progress. Still no ETA on his homecoming.

One a positive note, Carson is definitely starting to show his personality now. He is very alert when I visit him and smiles when we talk and play with him. His doctors and nurses all gush about how sweet and cute he is. I suspect that's because he is one of the few babies in the NICU that is full-sized and healthy.

We still visit him everyday and are anxious for him to come home. Evan is anxious as well because he's never met his baby brother (NICU doesn't allow children visitors). I'll post here as soon as we get an estimated homecoming date for Carson.

Tuesday, May 27, 2008

Home Again

Kristen was finally released from the hospital on Sunday morning. We celebrated by going to lunch at her favorite sushi restaurant (eating sushi while pregnant is not advised). While she is still quite sore from the c-section, Kristen is recovering well and has weaned herself from the more powerful painkillers. She spends a lot of time breastfeeding her Pump-in-Style and so that we can bring Carson some mother's milk in the NICU.

Carson has been in the NICU (neonatal intensive care unit) at Children's Healthcare of Atlanta since just after birth and has continued to progress nicely. Originally he looked a bit like a science experiment with an IV line for fluids and nutrition, a tube into his lungs to breathe for him, a tube into his stomach to remove bile, three skin-mounted sensors for heartbeat, temperature, and who knows what, a pulse-ox sensor on his foot which measured the amount of oxygen getting into his bloodstream, a blood pressure cuff, two lines attached to his umbilical cord for blood draws and secondary blood pressure monitoring, and a urinary catheter.

He now has only the skin sensors, the pulse-ox, an external nose-mounted oxygen line, and a feeding tube. He has been able to take up to 65ml of breast milk through his feeding tube and keep it down so they are hoping to remove the tube and try bottled breastmilk later today. That is a huge step in the right direction if he takes well to the bottle. We also know that he has been able to maintain the necessary oxygen level in his blood even without the oxygen line (for short durations) but they are keeping that on just as a precaution for now. He is still on sedation but only on an as-needed basis (not a continual drip). Our only significant concern at the moment is that we have yet to hear him cry. He gets upset and tries to cry but we haven't heard his voice yet. Obviously, his trachea and larnyx are still healing so we remain optimistic.

Kristen and I are visiting Carson everyday at the NICU until he comes home. We don't have any estimate from the doctors yet, but I have my money on Carson being home by Saturday.

Friday, May 23, 2008

Carson & Kristen Update

It's late friday night and Kristen is asleep in her hospital bed as I type this. We have been living in a hospital room together since Tuesday morning and we are both anxious to get home to be with our other son, Evan. Kristen has been weaned from the epidural and is managing her pain with percocet (sp?) and Motrin. She is hoping to be released sometime Sunday.

While we are anxious to get home, I must admit that we have enjoyed being this close to Carson (his hospital is directly across the street). I've been over there three times today alone. Carson's health continues to improve daily. He is still on a breathing tube because his lungs haven't developed completely yet. Because of this he remains under sedation so we really don't get to interact with him much. However, tonight for the first time we actually saw him open his eyes for just a moment. I could swear that he smiled when he saw his mother for the first time. The respiratory therapist has given Carson a surfactant and some steroids to accelerate his lung development with hopes of removing the breathing tube on Saturday. No word yet on when he might be released, but I'll post an update as soon as we know.

Carson is 80 hours old now. May he never have any as difficult as his first five.

Wednesday, May 21, 2008

Happy Birthday Carson

It's strange how much your life can change in the course of a day. This morning we were prepared to face the reality that our son was going to be born with a very serious birth defect which may require multiple surgeries to correct including the possibility that a section of his colon might be used as an esophagus.

Kristen was induced around 6am this morning and we had hoped that Kristen would push little Carson out around noon. However, when Dr Bodner came in to assess her progress at about 3:30 Carson still hadn't dropped down far enough and his heart rate was unstable so an emergency C-section was called.

I have never been in an operating room and was floored by the number of doctors and nurses in this tiny operating room. There were 12-14 people in the room all working in concert... simply amazing. I was sitting up near Kristen's head and holding her hand, but there was a blue curtain which shielded our view. Kristen was fully conscious the entire time. When the doctor finally pulled Carson from the womb he was extremely pale, his heartrate was about 80, and he was not breathing. We kept waiting to hear him cry out, but of course, he couldn't.

It's an eerie feeling in an O.R. when things go wrong. The tone of people's voices and the look on their faces made it abundantly clear that things were dire. The anesthesiologist actually bent over and offered to put Kristen under sedation and said that I could go to the waiting room if this was too intense for us. We both declined. Kristen and I could hear the team repeatedly attempting to get a breathing tube in him, but with no success. We heard one of the doctors ask for two different dosages of "epi" to be drawn up (not a good sign) and another was discussing the possibility of a tracheotomy.

Finally, we heard his heart rate increase and the team had been able to breathe for Carson using a bag so his blood was now getting the necessary oxygen and was flowing to where it was needed. His color turned pink and we felt a small sigh of relief. They let us spend about 3 minutes with him before whisking him away for evaluation. (see picture below... that's me in scrubs on the left).

After Kristen went to surgery recovery I rode with Carson in the ambulance over to Children's Hospital of Altanta where the team of doctors and surgeons would re-evaluate Carson's condition. However, we had been told that they had finally been successful in passing a very small air tube into his trachea (which is a very positive sign). When we arrived at the Children's Hospital they took Carson to the O.R. and told me to sit tight in the waiting room and wait for their call. Slowly, the good news started to leak in.

First, Carson did NOT have esophageal atrisia as previously diagnosed. It was a problem with his larynx. Next we learned that there was a cyst on the trachea just above his larynx (not actually on it). Finally, we learned that both his trachea and his esophagus are fully formed! They actually drained the cyst right when they found it and Carson did great through the procedure.

The last doctor I saw was Dr Gower who said to me "I want you to buy a lottery ticket for me on your way home tonight. " Apparently, of all the possible conditions which could have caused these symptoms, this was (by far) the best possible case scenario. They moved him to the NICU shortly after surgery and I got to spend about 30-40 minutes with him before returning back to Northside to be with Kristen.

The staff at both Northside & Childrens were amazing. Not only did they provide outstanding care for both Kristen and Carson, they really went out of their way to explain everything that was going on and were extremely nice. Apparently, news of Carson's condition had spread throughout the labor & delivery staff and Kristen said that one of the nurses from the O.R. came to her recovery room and actually began to cry when Kristen told her how well Carson was doing. My sincerest thanks to the entire staff of 20+ people who helped us through this. Also, thanks to my parents for being here not only today, but for the past six weeks while Kristen has been on bedrest. I have no idea how we could have done this without you.

It's been an amazing day for us... certainly one we will never forget.

Happy Birthday Carson!
Mom, Dad, and big brother Evan

New Carson Pictures

You can click on any picture to see it fullsize.

First picture of Carson


Weight = 7lbs 12oz
Length = 20.5 in

Carson has arrived

Today at 4:35pm Kristen gave birth via c-section. Unfortunately, Carson was not breathing and had a very weak heart rate at birth. They were just about to poke a hole in his throat when they finally got a small airtube passed into him.

His heart rate is now fine, and he is breathing with the tube. But we are not sure what lies ahead for him. Apparently he does NOT have AE/TEF but rather something is wrong with his larynx (voicebox). I am about to consult with a surgeon now and we expect that Carson will be in surgery within 30 minutes.

Realtime Birth Updates

I've added a little gadget on this blog that will provides real-time updates of Kristen's progress (just look to the box on the right). These updates can be done via my mobile phone which will be a bit easier to do as we get closer. If you are curious, the real-time update uses a technology called Twitter.

Tuesday, May 20, 2008

T minus one

Tomorrow at 6am the doctors will induce Kristen into labor. The estimate is that Carson should be here by about noon. I cannot wait to see his face for the very first time :)

Tuesday, May 13, 2008

Scheduling Carson's Birth

Another doctor's appointment today and the decision has been made to admit Kristen to the hospital on Tuesday (5/20) and drain off some of the excess amniotic fluid before inducing labor early Wednesday morning. Surgery to repair the AE/TEF will be scheduled to happen within 24 hours of birth. I cannot believe that we are only a week away!

After spending months looking through baby name books and creating dozens of lists, we have finally chosen a name for our baby boy:

Carson Michael Quinlan

Sunday, May 4, 2008

Kristen Home

Yikes! I just realized that I had never posted the update to Kristen's hospital stay. Sorry to keep everyone in suspense. Kristen was released later that evening and she has been taking it easy on the couch ever since.

Wednesday, April 30, 2008

Back to the Hospital

Uncomfortable would be a kind word to describe Kristen's state over the past couple weeks since being released from the hospital. She's spent most of that time on the couch or in the recliner watching Tivo or surfing the internet to learn more about EA/TEF. Yesterday the term uncomfortable gave way to painful as Kristen's contractions became more frequent and intense.

This morning at 3am kristen was awoken by her contractions and she spent the next few hours documenting of the frequency (every 5-7 mins) and then called the doctor. We have been here at the hospital since about 7am and I'm writing this while Kristen tries to get a nap. She has been given multiple injections to slow down her contractions which have slowed to about every 7-8 minutes but at about half the prior intensity. They plan to check her out after dinner to determine if we can come home tonight or not.

Kristen was just checked and apparently her cervix is still closed (or almost closed) which is a good sign. I'll post another update either tonight or tomorrow depending on what happens.

Monday, April 21, 2008

Chugging Along

So it's been a few days since we posted anything... mostly because there hasn't been much news to post. (that's a good thing)

Kristen visited the doc again today and had her first of many followup ultrasounds (weekly until delivery). Everything appears to be progressing nicely; her amniotic fluid is not increasing at the moment and her contractions are very mild. Baby Quinlan appears to be doing fine (I suppose we should stop calling him Baby Quinlan and actually pick out a name soon). Kristen remains on strict couch-rest until the doctors say differently.

We will post back here when we learn more.

Matt & Kristen

Thursday, April 17, 2008

Kristen on Bedrest

Good news! Based on Kristen's progress over the past several days, Kristen has been released from the hospital. While she continues to have minor contractions, they are not increasing in severity or frequency (thank you Terbutaline). She is now home and resting comfortably on the couch.... well, maybe not comfortably ;)

Unfortunately, she has been given doctor's orders to remain in bed (er, couch). My parents have been a godsend this week by taking care of Evan and helping us out at home. We are increasing Evan's school schedule from 2 days / week to 3 days / week to give my parents (and Kristen) a break.

For now, we will continue to monitor Kristen's health with weekly visits to the OB/GYN and the radiologist to track the volume of amniotic fluid and the condition of the baby. The doctors are hoping that Kristen can hold out for about 4 more weeks to provide the baby ample time to develop. The more mature he is, the better he will be able to handle the surgery after birth.

We will continue to post developments here as they happen.

Matt & Kristen

Tuesday, April 15, 2008

Surgical Consult

We met with Dr Roger Pitt today to discuss the surgery that baby Quinlan will require and the resulting aftercare. He was extremely nice and walked us through all of the possible variations of EA/TEF with their corresponding surgical options.

The baby has either type C or type D. We are hopeful that it is the more common type C because the gap between the two ends of the esophagus is typically smaller making it easier to reattach them. If the gap is larger (uncommon with type C but common with type D) then we have to consider other options including traction or interposition grafts. We won't know which type he has until after he is born.

He will have surgery within 24-48 hours of birth to attempt to reconnect the esophagus. The esophagus will be given approximately one week to heal while the baby is fed intraveneously. Then we will try to feed the baby a small amount of milk and check for leaks (a tube will be left in his throat to provide drainage). If the suture doesn't leak and there are no complications the best possible outcome would be that he is home about 2 weeks after birth. A more conservative estimate may be 3-5 weeks.

After he comes home we will likely need to come back for periodic dilations where they will attempt to get the lower portion of the esophagus to stretch to the same size as the upper portion to which it was attached.

The biggest concern for me at the moment is that EA/TEF patients often suffer from one or more additional VACTERL birth defects. Each additional defect obviously comes with it's own set of challenges. The good news is that none of these additional defects have been observed in the ultrasounds so far (although they cannot see all of them).

Assuming that nothing changes overnight Kristen should be discharged from the hospital after her followup ultrasound tomorrow. She will then need to have weekly appointments at both the OBGYN and the hospital (ultrasound) until she gives birth.

Monday, April 14, 2008

Baby Quinlan Facing Hurdles

Saturday afternoon (4/12/08) my pregnant wife Kristen started to feel really uncomfortable with the number of Braxton-Hicks (false-labor) contractions she was experiencing. We called the doc and he suggested that we come into the hospital to have her evaluated. Kristen received some Terbutaline to slow down the contractions and they monitored her until morning.

Sunday morning we had an ultrasound with Dr Lopez-Zeno which indicated that Kristen's contractions were being caused by an excessive amount of amniotic fluid. The doctor then noticed a cyst in the baby's throat which he thought was the likely reason for the amniotic fluid buildup. Apparently, the baby should be constantly swallowing the amniotic fluid and the cyst might be preventing him from doing so. The doctor scheduled us for another ultrasound with a specialist Sunday morning.

Monday afternoon we had our followup ultrasound with Dr. Stone. He was able to determine that the cyst was actually a birth defect called Esophageal Atresia with TrachEoesophageal Fistula (also referred to as EA/TEF).

The baby will most certainly need to have surgery soon after birth to reattach the two disconnected ends of his esophagus and disconnect the esophagus from the trachea (fistualas). We are having a consultation with the surgeons tomorrow. In the meantime they have started Kristen on steroids to help mature the baby's lungs more quickly in case they have to take him early.

The good news is that other than this problem the baby is quite healthy (strong heartbeat, active, good weight) and the mommy is quite healthy as well (but anxious to get out of this hospital bed).

We will post updates here as we learn more.

Matt & Kristen

P.S. Here's other useful links about EA/TEF :