Adventures in JSON parsing with C#

Despite building applications with C# for years, I was frustrated today with some basic JSON parsing. This is something that I have done hundreds of times in Ruby and Python, where parsing JSON consists of deserializing into a Hash (Ruby) or Dictionary (Python) on the fly without defining a class, or mapping, beforehand. It’s easy to build the objects on the fly in the dynamic languages. But, with C# being a statically typed language, it’s taken a long time to get to that point. This becomes important as you consume many JSON endpoints from a service, it saves us time if we don’t have to model all of these responses in C# before making requests. This proved to be an opportunity to catch up with the state of art in C# for dynamically parsing JSON.

The Procrastinator’s guide to PIE

NOTE: when I started writing this, I thought the deadline was August 1st, turns it was extended today to August 8th. So, come back and read this next week I guess.

Enjoying your summer? Soaking in that Friday night feeling? Have that nagging thought in the back of your mind that you haven’t finished your PIE application for you great idea? Ah ha, I knew it. Since I’m one of the biggest procrastinators around, I feel your pain. But, wait, you say “I still have 3 10 more nights, there’s plenty of time to watch a couple shows on Hulu, get lost for a few hours reading blog posts, figuring what the heck PIE is, and maybe do a little coding, and then finish the application.” I know your tricks, that’s why I’m here to help.

Rocky Mountain Hi

I won’t dwell on the fact that it’s been 3 years since I last posted. As I work on posting regularly again, it will be fun to revisit the last few years.

But, the occasion of moving half-way across the country is enough to stir the blog into action again. This past weekend, I made the journey from Portland to Boulder, Colorado, marking the culmination of a frantic few months of tough decisions and planning. After 12 years in the Portland area, we decided it was time for a change. So, in a a quick 2-3 month time period we went from, “what if we moved?” to thinking about where we’d move to, on to packing up and hitting the road for Boulder.

Is it hot in here? Apps to help your macbook laptop stay cool

Working at Strands has presented the unique opportunity to work in an all Mac shop, which is fun seeing all the MacBook Pros and MacBook Airs around the office when I’m there. But, as many people quickly discover, these things get HOT, like burn your lap and destroy your child producing ability hot (not to mention the possible damage to the hardware itself). The question was posed at work with the ultra modern social media tool of “send email to whole company” about how to keep things cool. Based on the responses, seemed like information worth sharing.

WebVisions wrap-up

This last Thursday and Friday was the annual WebVisions conference here in Portland. 2008 marks my 4th year in attendance, and I definitely look foward to it every year. You can’t beat the price, it’s one of the cheapest conferences around and with it being local, there’s really not much excuse not to come and check out at least a few sessions and a keynote. Plus it’s a great chance to catch-up with my local developer and entrepreneur friends and meet some new ones.

Breaking the silence

Hard to believe it’s been 6 months since my last post, but what can I say, I’ve been busy! Not only have I been silent on this here blog, but for those that I have talked with over the last few months can attest, I haven’t talked a whole lot about what I’m working on. Today is the day I get to tell my story. NetworthIQ has been acquired by Strands and I have joined the Strands team to work on moneyStrands, the upcoming personal finance solution. For info on how this news is going to impact NetworthIQ, be sure to read the post over there. This post contributes my personal perspective. Needless to say, I’m pretty excited about it.

Can I get a yay Windows? No?

The glowing apple is becoming ubiquitous. Is this indicative of the conference experience these days?

First a picture from RubyConf held earlier this month:

Reminded me of one of Jason‘s pics from Gnomedex this summer:

I wonder how the audience pics at DevConnections (.NET conference in vegas 2 weeks ago) compare.  Now, why didn’t I buy Apple stock when I first started noticing the geeks and their MBP or PBs back then?

New challenge – Web Reviews

I’ve got a new moonlighting gig, to go along with my own projects. I’m writing web reviews for Digital Trends. I didn’t really see this one coming but the opportunity seemed like an excellent one, so I’m giving it my best shot.

Digital Trends is one of the best web business stories in the Portland area. Founded just a few years ago, it has bootstrapped its way to a thriving online business focusing on consumer electronics reviews and news. Through the power networking group known as “mom’s groups,” I met Ian, the CEO, and after a few discussions about the latest TechCrunch reviews, I asked, “hey, why don’t you guys do web reviews, seems like a great fit for the current audience.” Next thing you know, I’m the one writing them.

Infrequent Round-up

When there’s some down time it’s nice to get a post out and then not worry about keeping up with the latest goings-on throughout the week so much here. I’ve pretty much gone the Twitter route for a lot of stuff I may have tried to turn into a post before. You can follow me there if you’re so inclined.

Local Signal

Had a couple days to myself last week and was able to wrap up a number of loose ends with Local Signal. First, I implemented session tracking, so items are bold if they are new since the last time you visited the page. Second, I fixed some bugs with the click tracking. I was using an AJAX call in the link’s onclick event, making it completely unobtrusive and not having to resort to those ugly redirect URLs. You can actually see the link when hovering over. Problem was that the AJAX handler was not getting the call in time, before the the browser followed the link. It only worked when opening a link in a new tab or window. Moving the AJAX call to the onmousedown event of the link fixed that. So, that enabled the “popular” pages to be completed. Only, nothing is really popular enough yet to be of very much use, so they’re hiding out at the moment. You can tack on “popular” as the page (in lieu of news, biz or the others) if you’re really curious.