A jumble of thoughts

On a normal Friday of a normal December, a bunch of families said goodbye to their kids and sent them off to school. Announcements. Meetings for the Principal. A normal Friday.

Then the abnormal sound of gunfire. Of violence. Of death.

And now, the sound of tears, of sadness, of remembering and loss… of fears and nightmares past and future.


I keep imagining what it must be like for the parents of the victims today, especially of the young children. I imagine myself in their shoes, I imagine walking by a now-always-empty room with bright paint evoking happier times.

My thoughts are with the families affected by the tragedy.


When I walk into my son’s class, the kids say “Hi Che’s Dad!” They make me smile no matter how crappy my morning has been. I keep thinking about what someone must go through to walk into a classroom full of children and open fire. Why would anyone want to hurt them?

It’s unfathomable. The loss is unfathomable. The chance and the randomness is most unfathomable of all.


I wrote this earlier today re: discussing gun control policy on the day of a tragedy (slightly edited for grammar):

My only point is that today should be about the tragedy itself, to burn in the news and to cope with the loss & fear of loss that these events bring up.

We get wrapped up in hammering the stats, the policy ideas, and how “stupid” the other side is on this debates today, but the real work is how we keep this in the public eye going forward.

I’m also seeing things like this at TPM that ask good questions. This is the nitty gritty of how we help prevent these sorts of tragedies in the future. Even on the mental care front, how would those laws work?

I’m just incredibly sad & angry about this, and I’m not ready to have those conversations today. That’s all I’m saying.

The response I got from people on Twitter & elsewhere primarily centered on getting people talking about the issues at play while attention is fully on the tragedy. They argue that tomorrow the pain will be a little less for those of us not directly affected. In a month the national media will forget about this completely.

There’s probably a lot of truth to that… the second, little tragedy that goes along with the big, evil tragedy that happened in Newtown.

“Those who cannot remember the past are condemned to repeat it.”

So, it seems our job is to keep us from forgetting this bit of our past, to keep it squarely in focus during the next Congress and the next legislative session here in CT and beyond. Take a moment and ask yourself, “What am I doing for the victims of Newtown?”

If you’re upset about this, and want the government to do something about this, learn what you can about the issues at play. What ideas do people have for reducing gun violence? What should we ask our representatives in government to do? Is gun violence reduction about more than guns? Do we need to rethink mental health policies in this country?

As you do learn about these things, contact your representatives in your state legislature, Congress, and anyone else you think is in a position to advocate for better policies. Tell them what you’re learning, ask them to look into the best ideas you find.

There’s always a risk that bad laws get rushed through in the wake of tragedies. This one will be no different, so it’s up to all of us to become smarter about the dynamics at play here and what public policy options people have considered. We need to do something. Let’s make sure that something lives up to the memories of those lost today.

We need context, not balance

Like many towns, West Hartford has a advertising supported, free weekly paper that’s mailed to everyone. The latest issue arrived today with this as the front page article:

Fire, police overtime nears $3 million in 2010

The Town of West Hartford paid nearly $3 million in overtime compensation in 2010 to police and fire department personnel, according to data released under a Freedom of Information request.

Town administrators this year combed through expenses, trimming nearly $1 million from the original proposed budget before approving a 2012-13 spending plan. But in trying to cut, administrators lack the power to control specific items, such as overtime paid to union employees.

You should go read the article.

Here’s what stood out to me: the next several paragraphs (easily the first third of the article) includes quotes by the Republican members of our town council (the minority party) and other claims that collective bargaining is to blame for the OT in 2010.

At first, I wondered why they didn’t include any quotes by the Mayor or from Democrats on the council. Then I realized that I actually didn’t really care about that. I don’t really care about balance in that sense.

What bugs me is that there’s no context given to these numbers or information. For example, the reporter names particular police officers and firefighters who earned a significant amount of overtime. The reporter writes about how the Republican members of the council want to go after the contracts negotiated with the unions. They give particular salary numbers out.

I read all of this and was left with… “and so what?” I don’t know if this is a matter of lazy reporting or tight deadlines and a need to print something or an assumption by the writer that readers are already super informed, but as a pretty regular watcher of town news, I was left with a bunch of questions. I needed context in order to put the numbers in perspective and to understand some of the claims made in the article (both by people quoted as well as the author).

Some questions I would love to see answered:

  • What is a typical yearly budget for overtime expenditure?
  • What is typical overtime budgeting for towns around the state with similar populations?
  • Why did the cited officers get so much overtime pay? How many hours did they work? What was the purpose of those hours?
  • What are some of these union rules that drive overtime costs? What union rules do the Republican members find objectionable?

That’s just a small list. These numbers sound big (“$3 million in OT!” – “That police officer doubled his salary!”) but given some context, they may not be crazy. For example, if the officer is working double shifts most days to make up for staffing shortages, that may be reasonable compensation. If he does it every year, maybe there’s a policy change required. How can we tell with the information provided?

I want better reporting from our papers. People might be willing to pay for them if they actually dug a little deeper than a blogger with SEO skills…

Proxigram supports Facebook

You can now pull in photos from your Facebook account. Right now, it grabs everything, but I have controls in the works to let you choose privacy settings or hide individual photos.

There’s pseudo realtime support, too. Proxigram should update basically as soon as you upload the photo.

As always, everything is on Github.

Proxigram now supports Flickr

Quick update on Proxigram: it now supports Flickr, Yahoo’s popular photo sharing service. If you’re a Pro account holder, it will even get realtime updates from Flickr, just like Instagram provides.

The “point” of the app has changed, too. The goal is to build a single API endpoint for all of your photos. While the photos will still be hosted on their respective services, you can now get one read-only API to see a normalized view of them all.

The project is still open source, so if you’re looking for a sample node app that connects multiple third party services via oAuth (using passport.js), you can get the source on Github.

Facebook support is coming next. If you want support for your favorite photo services, please let me know what you want or, if you have the ability, submit pull requests with patches.

I’ve also written a few bits of supporting code for this. I abstracted out the basic PubSubHubbub verification calls into a standalone library: node-push-helper.

I also have stubbed out a new node Flickr client. I made a new one because I wanted to use oAuth instead of the deprecated Flickr authentication methods. After trying to retrofit one of the other libraries, I decided to just start over. I may merge this back into one of them, but for now, expect new functionality in the coming weeks. Here it is: node-flickr.

Would love code reviews and criticism from node experts. I know the code can be better.

Proxigram – a sprint using Node.js, Express.js, & the Instagram API

I’m happy to share a little experiment I played with this week. I needed to take a look at Node.js & it’s family of technology for a project but found it hard to find good explanations of best practices, etc. There are a half-dozen competing boilerplate/template samples that have very little in the way of explanation or comments. So, I decided the best way to get familiar with the nitty gritty of building a Node/Express app was to write one.

I decided to solve a simple problem I had. I wanted to get my recent photos from Instagram onto my blog. I wanted it to be a simple JS call or plugin, and I wanted it to be smart about storing keys for read-only access to my Instagram account. It seemed like a simple proxy for the Instagram API would suffice. The OAuth credentials are stored on the proxy and a new, non-Instagram specific key gets embedded in the JS.

And thus, Proxigram was born.

Sure, it’s a little contrived, but now that I’ve built it, I’ve got ideas for some improvements and, even better, I now have a functional, real app to share with everyone so I can get feedback about all the things I did poorly.

The source code is all on Github, both for Proxigram itself as well as the jQuery Proxigram library to access it.

The app is interesting to look at on a few levels. The package.json listing the bits and pieces I used is below. The app talks to the Instagram API, obviously uses MongoDB to cache results local to the app. It keeps that cache fresh by using Instagram’s real-time API to get updates for users. It uses passport.js for authentication (though it seems like more of the cool kids are using everyauth these days). It uses less.js for the stylesheets.

So, if you need a working example for all of those things, here you go.

Please leave feedback about things that make you itch about the code. I know a bunch of you are serious Node.js mavens, so I’m really curious what you folks think and what conventions you’re following in your projects. My biggest question at this point is how to deal with making shared components available to code in different files. For example, I made some of the authentication filters global because I split my routes up into multiple “controller-ish” files. None of the boilerplate/template apps did it better, IMHO. If you have thoughts on that one, let me know.

PS. The images on the right are getting served through Proxigram. 🙂

Here’s the dependency list from my package.json:

{
    "name": "proxigram"
  , "version": "0.1.0"
  , "private": true
  , "dependencies": {
      "express": "2.5.8"
    , "less-middleware": ">= 0.0.1"
    , "jade": ">= 0.0.1"
    , "moment": ">= 0.0.1"
    , "passport": ">= 0.1.8"
    , "passport-instagram": ">= 0.1.1"
    , "passport-http-bearer": ">= 0.1.2"
    , "mongoose": ">= 2.5.0"
    , "connect": ">= 0.0.1 < 2"
    , "connect-redis": ">= 1.0.0"
    , "connect-heroku-redis": ">= 0.1.2"
    , "airbrake" : ">=0.2.0"
    , "instagram-node-lib": ">=0.0.7"
    , "express-messages-bootstrap": "git://github.com/sujal/express-messages-bootstrap.git#bootstrap2.0"
  }
  , "engines": {
      "node": "0.6.x"
    , "npm":  "1.1.x"
  }
}

Incentivizing individual relocation vs. corporate relocation

Where We Live ran a show today on why younger people (25-34) are leaving the state. I ended up missing the show (listening to it now!), but caught a very lively discussion on Twitter.

One side conversation (you can see it on storify here) that I joined in on was about how hard it is to convince people to move to CT.

Let’s be honest. It’s hard. Harder than it should be, quite honestly, considering how nice it is to live here. I had a lot of experience with this when I was hiring people at ESPN. Even with a kick ass company, a dream job for most sports fans, and great relocation packages, it was hard to convince people to move to CT. There are a lot of reasons, and they vary by person, but they all seemed to boil down to cost and opportunity.

For people moving from a relatively low cost-of-living area, like Kansas or Vermont or Nevada, it was mostly about cost. CT looks and feels expensive when you’re browsing real estate or rents even though we’re cheap-ish for the region. For whatever reason, cost-of-living adjustments never seemed to truly capture the difference people felt.

For people moving from a big city or high cost-of-living area, like New York City or Boston or San Francisco, it was mostly about opportunity. What if they didn’t like the job here? What job opportunities would they have at a similar style company? This was exaggerated in my particular industry. There aren’t many of the kind of companies that are doing consumer Internet or mobile products that ESPN makes. If you live in NYC or Boston or SF, on the other hand, you have dozens of options plus many, many strong startup and entrepreneurial companies nearby.

There are people working on the second issue (e.g. this effort). So I asked about the cost reason, specifically:

As I mentioned, you can read the whole convo if you want, but that’s the main point.

CT just authorized $291 million in spending over 10 years to incentivize Jackson Labs to build a $1 billion facility here. Of that, $192 million is a loan that is entirely forgiven if the facility creates & retains 300 jobs in 10 years.

Now, I don’t know whether that’s a good program or not for 300 jobs, but like a lot of programs, the government seems to focus on giving money to companies rather than individuals. This isn’t bad per se, but the tradeoffs are worth talking about.

For one thing, this means that the government has to choose an industry or individual company to offer these incentives to. This doesn’t prevent existing companies from leaving, nor does it help them. That seems odd to me. But it’s also exceedingly common. Remember the brouhaha about Boeing moving it’s HQ?

Instead, I wonder if cities or states have considered incentivizing individuals to take existing jobs. For the same expenditure ($192 million over 10 years), the state could offer 5 year rent or property tax credits of $5,000 to over 7,500 families or individuals. $5,000 would cover over 100% of the median property tax for the state.

On the surface, that seems like a better use of taxpayer money. That assumes there are, of course, 7,500 jobs to fill in the state. Then again, more people moving here mean more people needing services and products. I suspect like any social network, virtual or real, there are network effects that come into play once you create some momentum.

Curious if anyone has seen studies or programs like this in the United States. I wonder how well they work, and what data we can glean from them.