Putting off Potential Riders

December 26, 2007

Most people who know me also know that I try really hard to make public transportation work for me. Since I live here in Nevada City, I rely on a combination of shuttles, trains, and bikes to get to and from my Krugle startup in Menlo Park.

Heck, I’ve even written about “The Perfect Train Ride” on the Krugle.com blog site.

But sometimes public transport makes it hard to be a supporter. This past Friday was a good example.

The Capitol Corridor train 532 was on-time, picking me up in Fremont at 12:49pm and arriving at Sacramento by 3:30pm. Unfortunately that train doesn’t continue to Auburn, so you wind up on the dreaded “motorcoach connection”, aka bus bingo.

Several of the connecting buses arriving in Sacramento were late, so there was some confusing shuffling of passengers between the available buses. The bus I was on, normally a straight shot to Auburn, wound up with passengers for Roseville. And we left the station 15 minutes late. And, of course, freeway traffic on Friday is always a mess.

Which meant we got to Auburn at 5:21pm, or exactly 1 minute after the Gold Country Stage shuttle bus left. The shuttle that’s supposed to wait for us in Auburn and take passengers to Grass Valley. Normal departure time is 5:15pm, so I guess we’d exceeded our grace period.

The Gold Country Stage dispatcher, a very nice woman, said that if they’d known the bus was nearby, they would have held the shuttle. I asked the Amtrak bus driver about this, and he said that they were two different systems, so there was “no way” to coordinate.


So now there are 10 passengers standing in the freezing cold, waiting for the next shuttle. This was scheduled for 6pm, but it’s a local, not express, so the ride to Grass Valley is a painful hour of touring the trailer parks along Highway 49.

However there had been an accident on Highway 49 earlier that day, so the 6pm shuttle was delayed by 40 minutes. And that meant the (now freezing, unhappy, will never take Amtrak again) passengers should have stayed in Sacramento and hopped on train #536, which arrives in Auburn at 6:30pm and connects to an express shuttle bus.

I pulled the rip cord and asked my wife to drive down and pick me up. But everybody else wound up arriving in Grass Valley more than an hour later. For the want of a phone call, a bus connection was missed. For the want of happy customers, passenger traffic targets were missed. And so on – just as all politics are local, so it seems that public transportation lives and dies by the actions of individuals.

So I’ll do my part, and post the Gold Country Stage dispatch number (that’s area code 530, 470-0103) on the steering wheel of every motorcoach connection bus.

Videos, videos, and More Videos

December 15, 2007

As much as I complained about my CodeRage II experience, it did leave me with a useful video. That one recently got pushed to the Krugle site, for your viewing pleasure.

But I hadn’t realized how much else was going on with videos at Krugle – the page here has many other video snippets, as well as useful documents and an LDAP test app for those of you getting ready to install a Krugle appliance. 🙂

Java Memory Leaks and Other Fun Stuff

December 11, 2007

For the past 9 months or so, there’s been an irritating, on-going memory leak with the public Krugle.org site.

Unfortunately catching the problem on the live site would mean letting the live site die a horrible death and then paw through the smoldering ruins. Which is something we weren’t willing to do.

So instead we set up a system that replayed the public site access logs, against an exact clone of the public site. And the problem didn’t show up. Nice.

After taking a look at the fidelity of the replay, we realized that some requests were being ignored, specifically HTTP POST requests – the access logs don’t contain the body of the POST, so it’s not possible to actually replay the exact request. These types of requests were primarily logins, and handling user activity logging.

So we took the next step of simulating these during the replay, by using fake data. But activity logging couldn’t handle the load of trying to replay a day’s worth of activity in an hour, so we disabled that. Which was a mistake.

Because eventually, after more comparison on live systems, the finger of blame kept pointing back at user activity logging.

Which meant we finally did a long overdue code review of this part of the system, and came across an interesting bit of code in the constructor for a class we use to send out HTTP requests:


We use Log4J to handle logging, and configureLogger is a method that configures logging. The configureLogger method had this interesting line of code:

logger.addAppender(new ConsoleAppender(new PatternLayout("%-5p %d{ISO8601} [%t] - %m%n")));

As soon as I saw this, I realized the problem. All logging systems have a singleton “root” logger and a logging hierarchy. The call to addAppender will effectively hand off this new appender object to the logging system, and it will never be deallocated for as long as the system runs.

Previously this wasn’t much of a problem, when we used a single HTTP sender object. But this wouldn’t handle the load, so I’d changed things to use a thread pool, which in turn dynamically allocated an HTTP sender for each request. And suddenly we wound up with a gnarly memory leak.

Whatever Happened to the Class of ’83?

December 8, 2007

It’s been (almost) 25 years since I graduated from MIT, and fellow Delta Tau Delta fraternity brother Mike Santullo is trying to put together a reunion. To get things rolling, he sent out a freshman photo of the 15 members of my pledge class.

DTD class of ‘83

Now that’s a flashback moment. Where are they now?

  • Jeff Caddell – Unknown. Probably lives in the south, though last reported sighting (around 2002-2003) was in Maryland, working as a senior project engineer at the McCormick Flavor Group.
  • Jono Goldstein – Managing director at TA Associates in Boston.
  • Steve Yoon – Doctor working at Center for Disease Control and Prevention in Atlanta.
  • Steve DeFalco – President and CEO at MDS International.
  • Brian Jacobs – Founder and General Partner at Emergence Capital Partners in San Mateo. Who says a man can’t escape his past hair-style? He’s also the lead investor in Krugle.
  • Mike Santullo – Retired entrepreneur living in Palo Alto, following the sale of Four11.com/RocketMail to Yahoo way back when. Now keeping busy as the founder and co-chair of the California Clean Tech Open competition. He was also an angel investor in Krugle.
  • Jeff Molzahn – Died of pancreatic cancer June 25, 2001.
  • Randy Schweickart – Manager, Process Engineering at ICOS Corporation in Seattle and soccer dad extraordinaire.
  • Chris Schneider – Fellow Nevada City resident and Krugle employee, who also teaches physics and coaches Ultimate at Bitney College Prep High School.
  • Doug Sargent – Working for Symantec in Oregon as a sysadmin.
  • Jeff Muss – Rocket scientist at Sierra Engineering. Yup, he really is one.
  • Ken Krugler – That’s me, fluffy ‘do and all.
  • Alex Lightman – The guy formerly known as Alex Petofi. Currently CEO at Innofone. It’s kind of hard to tell what exactly he’s doing these days, but it’s got somethin to do with IPv6 technology.
  • Alan Taylor – President of Sedway Consulting in Boulder, CO.
  • Joe Masci – Another stealthy classmate. Recently spotted doing a charity bike ride to raise money for Alzheimer’s research.

I’m looking forward to seeing everybody, hopefully in Boston this coming June right before the MIT reunion.

The Infamous Dessert Diet

December 6, 2007

I was at the Gartner Application Architecture, Development & Integration Summit (how’s that for an event name?), along with two other members of Krugle. We were manning the booth, and late in the day the dessert trays came out. Which meant I once again got to explain the intricacies of The Dessert Diet, along with a digression into the Slippery Slope argument and why I can’t just have a small bit of dessert now, even though it’s not yet Friday or Saturday.

The dessert diet is the creation of Chris “Schmed” Schneider, my long-time friend and business partner. Since my cravings for huge mounds of gelato and large slices of dense chocolate torte rival his, I’ve been on the same plan since about 1990. While I’m no longer in Olympic gold medal diver shape, I like to think that it’s helped me avoid becoming a pear-shaped programmer.

CodeRage II – sometimes things don’t go well

December 4, 2007

CodeRage is the name of the virtual developer conference sponsored by CodeGear, the spin-out from Borland that handles all of their tools like Delphi and JBuilder.

This year I gave a talk titled “Impact Analysis for the Rest of Us” It was about how impact analysis is something every developer does, every day. And yet current impact analysis tools focus on the architect level, the Big Bang type of change.

Anyway, I thought it was an interesting and useful topic, though perhaps I’m a bit blinded by my involvement with Krugle. Apparently it didn’t rate so high with the CodeGear crowd – I got assigned the first slot (7:15am) on the last day (Friday). And then at the end of my presentation there was some confusion about how to patch me in via Skype, even though I’d worked through the issues with the conference team during an earlier training session.

Which means the 3 people who watched the video I’d slaved over (see my post about much pain & suffering while creating it) weren’t able to ask questions, even if they’d had any.

At least I’ve got a video that might be useful in the future, so I’m going to focus on the positives.