Community supported Caltrain notices, one tweet at a time


August 24th, 2014 ravi

tl;dr: This service has been restored and will be greatly improved now that basic infrastructure has been updated.

Six years ago after becoming frustrated with the lack of communication surrounding the Caltrain service and being repeatedly bumped from the bike car I wrote a basic service to provide communications to fellow passengers.  I had no expectations for how it would take off, but it did and faster than I was able to keep up with.

At the time I was commuting to Mountain View every day rain or shine so improving the features of the service was as self-serving as it was to all who also used it as either a contributor or a follower.  I eventually changed jobs (now 3 times) and with it my mode of transportation from train to car and now bus.  With my shift from train to other modes I admittedly just hoped the service would just run with little maintenance.

Unfortunately my hopes and reality are not always mutually inclusive.  Twitter changed their authentication methods which required having to update certain Perl modules.  That required updating some other libs which required updating the whole damn OS.  Rather than going through that effort I opted to use a auth proxy service.  This worked fine until Twitter suspended them for violation of their TOS.

Earlier this year when this happened the service stopped working completely.  At the same time I learned my company, Nest Labs, was being acquired by Google.  A lot was happening and my focus had to be with work so unfortunately my service stopped working at the same time.

It hasn’t been until the last two months that I have recovered some of my free time on the weekends that I was able to get everything upgraded to where I feel the service can operate as it had in the past.  That is the good news.  The better news is that I feel I have the ability to now leverage a stream to be able to dispense with the email method for sending updates and going to a more Twitter API centric way leveraging mentions or direct messages.

I’ll be sending a tweet via this service referencing this post as the confirmation that things are up and online.

I apologize greatly for appearing to have abandoned the service.  Now that I have things is a more stable state I have more confidence in being able to improve it so long as there is a need for it.  I have seen @caltrain_news posting a lot more regularly, but I’ll let the community decide on the usefulness of this service.


If MySQL crashes in a forest…

June 25th, 2008 ravi

…people will hear.

So /var on my server filled up because like a idiot I forgot to stop logging mail.debug.  1.6G later /var fills up and then MySQL throws a tantrum.  I stop the daemon, remove the debug log, and try to start things up again, but for some reason soft updates are not updating the partition.  Also one of the tables of a DB (which I thankfully had a backup of) disappeared.  I wanted to fsck /var but it wasn’t having any part of it.  Somehow along the line my /var/mail partition flipped out and went into read-only mode.

I managed to get the partitions running, but I didn’t notice that Dovecot and Postfix lost their connections to MySQL so all my mail was being rejected for about 2 hours.  Thankfully in that time there were no Caltrain Tweets that were sent over.  I had envisioned there being a flood of them around 8pm yesterday when I finally got things back up and running.

I decided it would also be a good time to upgrade to FreeBSD 6.3-STABLE while things were hosed so that is a bonus.

And in unrelated news I sent an email to my company’s commuter list advertising this service.  It has the potential for there to be a lot of new updaters which I’m not quite certain I’m ready for.  Not so much of not bieng able to handle the load as being able to manually process key requests.  I have a user portal in the works, and the Twitter direct messaging feature is in Beta (read 1 other person becides me is using it) and actually works.  I just need to get the motivation to compelte things.

What makes a good update?

June 17th, 2008 ravi

With the increase of followers brings more updates with inconsistent content. To help guide the community I whipped up a guide of what I envisioned the content would be.

Check the guide out.

Like I said I don’t want to cramp anyone’s style, but I think it would be nice if the alerts could contain the same baseline of information and occur only when they need to.

How much is too much?

June 9th, 2008 ravi

The 295bus Blog brings up a interesting point about the verbosity of tweets to the Caltrain Twitter account.  Noting that a particular train arrived at the terminus 5 minutes behind schedule is not particularly helpful to anyone.  The key to success of the service is for each update to be newsworthy which means enough information in a timely manor.  Don’t get me wrong — I’m thrilled at the level of support from the community, but I also don’t want to frustrate people who follow the accounts with excessive tweets.

Hi there!

June 8th, 2008 ravi

This service has really taken off since the fatality on Friday May 6th and with this morning’s rumored fire on a train outside Mountain View. With all the new traffic has brought to light some deficiencies with my service let alone any issues Twitter may be having. Because of this I decided to create this dumb blog to better communicate updates. This is in addition to the mailing list that already exists.

Because of the service issues with Twitter I’ve had to actually code in some robustness to my API calls. At the moment I don’t attempt a resend on error (by design), but with the frequency of delays and the number of followers I’ve reconsidered. I have also successfully implemented a method that will redirect Twitter direct messages. This means you will be able to send a direct message via SMS to Twitter and have that be the update. The only hangup is I will need to build an actual user portal on my site to sufficiently link your Twitter account with your email key. Not being a web designer at all (not even a little bit) I’ve been putting this off. Everyone hope for a slow work week for me and I’ll get something done.

Last I am now filtering updates that match (^\w\w:) to weed out people who reply-to all after a few of those were sent out this morning.

Also I wanted to thank everyone for contributing and hopefully this has alleviated some frustration Caltrain commuters have.

Edit: Of course I had to publish the URL for the blog as BEFORE I looked into this WordPress thing. It seems it has its own ‘About’ page which seemed to be a suitable replacement for the old index page. That said the blog replaced it and is now at but I put a Apache RedirectPermanent option so all is good.

  • Polls

    Sorry, there are no polls available at the moment.