Book Reports

As part of my New Year’s resolutions this year I’m trying to get to 25 books read in 2013.

This is an obligatory Book Report blog post stemming from that goal. Take it or leave it, but here we go.

#1: Overclocked: Stories of the Future Present by Cory Doctorow

This book is a series of short stories written by founder Cory Doctorow. Through these short stories and their thankfully brief prefaces I learned Cory had grown up on the same diet of Science Fiction as had I, with Isaac Asimov being a primary influencer.

A few short stories that stood out:

– I, Robot. While I abhor the use of this classic title, Doctorow’s rendition of this short story is not bad at all but holds very little in common with its namesake. This takes place in the future (surprise!) where the US is a regulated police state with tight controls over 3D printing and intellectual properties. The main character is employed in one of the few remaining legal occupations as a police officer to enforce IP regulations. The result of the IP conservatism puts the US in a horribly inferior position to the post-singularity “Eurasia” as referred to by Doctorow. The story has an adequate narrative slicing through the above, but I was happy enough with the presentation of a State retarded by IP regulation that the story was a bonus.

– “After the Siege” felt like a deeper and more violent rendition of Doctorow’s I, Robot, but each stood apart well enough that they’re both worth reading.

The other short stories aren’t so bad either. Definitely worth a read but it won’t blow your socks off.


#2: The 100-Year-Old Man Who Climbed Out the Window and Disappeared by Jonas Jonasson

This book is about an old man (100 years old to be exact) who climbed out his window and takes on a wacky journey . The author is crafty with words and surprises abound in this well written book. Part of the schtick is that the old man had a life history of meeting famous people without realizing it, but it gets old about 3/4ths of the way through. Luckily the book ends shortly thereafter.



My condensed notes:
Hoppy Harrington
post-apocalyptic, POST-NUCLEAR


The quality of these book reports is going downhill, but I’m still on track 3/25 complete!

Posted in happiness, media | Leave a comment

Why I resigned from Geary Bus Rapid Transit (BRT) board

I love Bus Rapid Transit (BRT). Implementing BRT is recognized by transportation professionals across the world as a proven set of techniques to significantly improve a bus line’s performance with little up-front investment in costly infrastructure such as rail. BRT has proven itself to be a real-life “silver bullet” for cash strapped transit agencies to implement serious improvements with minimal time and cost.

Imagine my excitement when I moved to San Francisco in 2006 as a fresh faced transit enthusiast and heard wind of a planned BRT line on Muni’s 38-Geary bus line! The Geary corridor is often touted as the single busiest bus line by ridership west of the Mississippi and is a critical component of transportation infrastructure connecting western San Francisco residents to the downtown Financial District. Like the rest of Muni’s lines, the corridor suffers from unpredictable travel times, poor on-time performance, lack of dedicated lanes, excessive stopping, etc. contributing to an unreliable transit corridor. BRT, I thought, would be the perfect solution — cheap, quick to implement, with quick return on investment for the residents of San Francisco.

So, I followed the “rules” of community engagement to support a transit overhaul: over the past 6 years I joined a volunteer action group for Geary BRT, petitioned business owners and residents, presented to our local elected officials, found that the SF County Transportation Authority (SFCTA or simply the TA) had secured initial approval and exploratory funding, was appointed to an advisory Committee for the BRT project, and the dream comes true, right? Wrong.

What I’ve seen in the past 6 years has been a severe disappointment during which I have lost trust in America’s regulatory framework to enact effective transit improvements.

This has led me to no other choice than to resign from my role as a member of the Geary BRT Citizen’s Advisory Committee and begin a personal campaign to revise this process, both at the State and Federal levels.

During last week’s Geary CAC meeting I delivered the below statement. In the coming months I hope to followup to this post with a series of suggestions and actions to fix our federal and state processes for improving transit infrastructure.

Below is a transcript of my resignation, original audio here.

So, first of all I want to say I appreciate the engineering effort that has gone into this project. From an engineering perspective this is one of the best alternatives I’ve seen on this project since its inception. I think it does a great job of providing the hybrid approach of increasing speed and travel time while also serving the needs of local residents and folks that need shorter bus stop distances.

However, I am concerned because we have had these conversations multiple times before. When we look at these charts that say, well, “Here’s the parking [changes] that we’re going to see and we need to do community outreach again,” I’m highly concerned that we’re doing this over and over again. In the parlance of startups, which is the world where I come from, what this seems like is we’re having developers redo the same product 5 different times without ever launching it to the public, and that’s really concerning.

Another thing that concerns me is that prior to this presentation I was curious to get a status of, at a very high level, where is the status of this entire project relative to its completion or the start of service. Instead of hearing a response to that, I really feel like that was pushed off and that is not something you want to talk about, and I really do feel like this is a core failing of the Transportation Authority’s core responsibility.

A bit of a reminder, I joined [the Geary BRT] CAC in 2008. At that time [Elizabeth Bent] and Jesse [Kohler] were running this project and they are not here today. You guys have joined this team and I think the only person that has been here is maybe Paul [Bignardi from SFMTA] since that time.

I met with [TA project managers at the time Bent and Kohler] in 2008 to express my excitement about this project launching in 2012 which was the original planned start date because that [anniversary] coincides with when Muni was started in 1912 as a rail line, and that was the first municipalized line ever.

But, since then this project has slipped, and never once during a slippage has the Authority told the CAC or the public “Here is a slippage and here is why.” We have now learned over the past few years that the expected start date is 2020. [The currently proposed alternative as presented today] is a great plan and this is fantastic, but I’m concerned this is continuing to slip.

As an attempt to try to address this [slippage] I have asked multiple times for what I would call “sunshine” on what is the TA’s approach toward project management, and one of those specific requests was to have a Gantt chart about what is the current status, and we got that about a year and a half ago and that basically said “There are 3 phases, we’re in [phase 2] of EIS/EIR and here’s where we are.” I then asked, “Hey, can we have a Gantt for [phase 2] EIS/EIR.” And I’ve asked for that multiple times and that was never provided and so I’m very concerned there is not visibility into what is the actual process and what will actually going be completed and I do understand that there is some precedent for how long [EIS/EIR process] takes, but I’m not convinced that’s really being accelerated as fast as possible. I see repeating elements here like [fellow CAC member] Bruce [Osterweil] had mentioned earlier that we’re reaching out to citizens, especially the business community. I was present in 2009 and I videotaped multiple interactions with folks, this was with [Elizabeth Bent] and team, talking to citizens, elderly community members and the business community, about loss of parking. This has been done before and I’m very concerned this is continuing again.

It really makes me sad but I would like to say that I have lost my trust in the TA working on this project. I am concerned that the TA involvement is slowing this down compared to if the MTA had managed this project directly; and what I’m seeing is that this is actually happening now — because the MTA’s improvements to its operations are basically providing the improvements claimed to have been providing back in 2012. I am basically left with no alternative but to voice my concern for the record here. I have tried to have individual meetings with Zabe, Jesse and you guys and I really am left at this point with nothing else I can do. I’m very concerned and I’m sounding the alarm.

I think it would be appropriate for me to resign at this point because I feel as though my presence on this committee does not help accelerate the project or get it delivered at a date that is acceptable to our residents.

But I like this idea.

Posted in happiness, politics, tech, transit | Tagged , , , , , , , , , , , | 8 Comments

New Year’s Post: Life Goals and 2013 Resolutions

I love flying. I feel as though it gives me a greater perspective on myself and the rest of the universe. I wanted to take advantage of this on my recent flight back to San Francisco after visiting my family over the holidays in the midwest. It was New Year’s Eve Day which might explain why after a few minutes of reflecting on my life goals and accomplishments, this introspection bloomed into a full set of resolutions for the coming new year.

One of my resolutions is to resume blogging, at least once a week, and although I initially hesitated to share some of the list below, I think it’s a fitting start to the new year and will help keep me accountable. I hesitate as I’ve shown my life goals to friends in the past (I drafted my first life goal list back in 2004 a year before my college graduation) and their responses have ranged from outright laughter to statements like, “You can’t be serious!” or “Those are silly, why would you want to do that?”

This time, however, I’m including a list of previous life goals that I HAVE accomplished, with a view toward recognizing that although my life goals may be strange and wide ranging, I AM serious about accomplishing them, no matter how unrealistic they may seem. Plus, now if I want to refer to them I can just google “Kieran’s life goals” instead of digging up a Google doc.

Remaining life goals:

  • Self sufficiency – $1MM or greater in liquid assets bearing yearly interest (I proved driving a cab that I can live off of $20k/year even in SF. I should be able to get more than 2% back yearly on $1MM.)
  • Drive bus for large municipal transit agency (would love to drive the electric trolley busses in SF)
  • Lead a major transit system/transportation agency to positive change (Most likely this will not be a dense city and instead will be suburban agency with a history of underinvestment. Self-driving vehicles will enable amazing revolutions in transit in the next few years.)
  • Work at university or hands-on learning institution (incubator/accelerator) as advisor/mentor/teacher
  • Travel south of the equator: South America, Asia, Australia & NZ (did visit Japan but still have other countries on the list)
  • Raise a family
  • Drive an emergency vehicle
  • Attend burning man
  • Assist humanity to positively deal with upcoming challenge of technical innovation irrevocably changing our society and economics (eg join relevant startup, be outspoken advocate/writer, political office, etc)
  • Become fluent in a non-English language – unfortunately Python doesn’t count, I’m not fluent in that anyway. French is best bet as I’m halfway there, if I’m able to live in a French-speaking country longer hopefully I’ll have the opportunity to do so. Clement do you have a vacation home I can crash at yet?

Achieved life goals to date:

  • Start a tv station (done, wiki IUSTV)
  • Experience living in a dense metropolitan area (done, SF)
  • Work in job/industry of my studies – advertising (done, worked at OMD, thanks Sara for hiring me way back in 2006)
  • Start my own company (in progress w VidCaster and going better than I could have ever imagined)
  • Drive a taxi (done, thanks Greg at Desoto for making this a reality)
  • Be a journalist (done, sort of, made hundreds of local SF news videos w VidSF, SFGate, SFist and SFAppeal; it’s surprisingly tough and not in the ways you might think)
  • Work abroad (done, thanks to pushing by Clark I lived in Scotland for 6 mo working for NHS, and Ireland for 4 mo working for Matheson Ormsby Prentice with other side jobs thrown in)

Resolutions for 2013:

  • Blog once per week – anything / no need to be work related
  • Meditation at least once per week (link)
  • Exercise >30 min at least once per week (biking for transportation not included)
  • Dress better (buy suits, dress up at least once per week)
  • Read 25 books in 2013

“Would be nice” resolutions:

  • Visit extended family with kids to help them take breaks / vacations
  • Enable my siblings Eliza and Zach to visit me SF
  • Go camping once per quarter

Here’s to 2013!

Posted in family, happiness | 5 Comments

Video SEO Sitemap Standards and Documentation get a Refresh from Google and Partners

I don’t know about you, but nothing gets me more excited than video SEO! (Well, at least it’s a close second after racing cars, driving taxis, and public transportation, but none of those pay the bills at the moment.) By the way, if you’re new to video SEO, you may want to read this older blog post about what exactly is video SEO and why it matters to you and your business.)

Last week I had the pleasure of joining some of the Google team at their Los Angeles Venice office as VidCaster prepares a beta of a Google TV app for our users. I thought most of the dev session would be dedicated to the particulars of Google TV (more on that in a later post), but much to my surprise there was a great deal of new info about the evolution of video search in general including some brand new documentation from Google on the subject of video search.

Below I summarize my learnings to share with others, all of which are public to the best of my knowledge.

Explicit push for a “Play Page” Standard

I have always been a proponent of the concept of a “playback” page or “video landing page” for user experience and indexing purposes. Even the non-technical readers can understand this concept — you have seen a “play page” each and every time you view a video on YouTube. Each video on YouTube has a unique web page URL (look in your browser address bar and you’ll find a URL usually ending with a confusing unique video ID such as “oHg5SJYRHA0“) where you watch the video, view comments and can click on related videos such as cats playing pianos.

Interesting to note, Google has now begun to refer to video landing pages as “play pages” and highly recommending their use:
> “Make sure you have a publicly available video page where users can watch your video. Google recommends using a dedicated video play page for each video.”

I am very happy to see Google et al. promoting the standardization of a “play page” as it is truly best-practice for a good user experience. Curious what makes a best-in-class video play page? Check out my recent post — 10 tips for optimizing your video play pages.

In-Page Markup has Renewed Importance

One of my key recent learnings is that Google, Bing and Yahoo are renewing emphasis on in-page markup to identify video content, in addition to (but not replacing) the XML video sitemap.

While there are a number of competing standards for in-page markup of video content metadata, including Facebook’s popular Open Graph protocol (incidentally the GoogleBot can parse Facebook share / open graph markup), Google, Bing and Yahoo have recently come out in support of, a new initiative to simplify and standardize in-page metadata tags.

What’s the Difference between In-Page Markup and Video Sitemaps? Push vs. Pull:

I like to describe video sitemaps as being a “push” mechanism and on-page markup as a “pull” mechanism. Both are important for getting content properly indexed, but they serve somewhat different purposes and work well together in tandem.

PUSH – A video sitemap can be “pushed” or uploaded to Google by any user with access to their Webmaster Tools. In fact, if you’re a savvy developer you can even automate the submission process using an HTTP POST request when new content is posted.

PULL – In contrast, in-page HTML markup on a video play page is “pulled” or fetched by a search engine only when the page is being indexed by the search engine crawler.

By combining these mechanisms, and ensuring that the data is consistent and matches on both, you can maximize the chance that your users will find valid content they are searching for.

In-Page Markup can be Harder to “Game”

One of my favorite parts of the standard is that some of the core components, such as title and description of the video, are simply plain text (displayed to the user on the HTML page) enclosed in tags with appropriate syntax. Check out this example from the Google Video SEO documentation:

<div itemprop="video" itemscope itemtype="">
  <h2>Video: <span itemprop="name">Title</span></h2>
  <meta itemprop="duration" content="T1M33S" />
  <meta itemprop="thumbnailUrl" content="thumbnail.jpg" />
  <meta itemprop="contentURL" content="" />
  <meta itemprop="embedURL" content="" />
  <meta itemprop="uploadDate" content="2011-07-05T08:00:00+08:00" />
  <meta itemprop="expires" content="2012-01-30T19:00:00+08:00" />
  <meta itemprop="height" content="400" />
  <meta itemprop="width" content="400" />
  <object (...) >
    <param (...) >
    < embed type="application/x-shockwave-flash" (...) >
  </object >
  <span itemprop="description">Video description</span>

Notice that both the Title and the Description are plainly visible to the user, encouraging site owners to simply leverage the “real” text that users can see to pull double duty as tagged metadata. I’m a big fan of this approach since it reflects the actual data visible to users and encourages site owners to be “good players” and not game the system by including spammy keywords hidden inside of HTML.

HTML5 Still gets the Short Straw to Flash in Video SEO

I’m sorry to say that the current state of indexing HTML5 video playback objects is very poor across the board and this is still a work in progress for Google et al. We have found that support for indexing HTML5 players is spotty, owing to the very nature of HTML5 players — an “HTML5 video player” is simply a regular HTML page that plays back a video in the full width of the rendered document frame.

Usually an HTML5 video player is embedded in another page using the iframe tag — the HTML5 iframe looks just like a Flash based video player for humans in our browsers. However it’s really tough at the moment for the GoogleBot to distinguish the difference between a “play page” and a “video player” HTML page. As such it’s safest to continue to use a Flash based player (or at least have a backup Flash player) until Google announces clear support for HTML5 players in video sitemaps and markup. (Again, I hate to recommend this, but HTML5 video is still a bit early when it comes to video SEO.)

Testing and Getting Started

Get started now with these updated “features” to video indexing: check out Google’s brand new video SEO docs and use Google’s “Rich Snippet Testing Tool” to see how well your pages make out.

(Or you can just use a cloud video SEO solution like VidCaster and we do all this for you.)

Posted in internets, marketing, media, tech, work | Tagged , , , , , , , , , | Leave a comment

The sky is not falling

I am writing to share some reactions to Claire Cain Miller’s piece in the New York Times, “Silicon Valley Booms but Worries About a New Bust.”

I met Claire at the Founder Showcase event she mentions in her article and thought her to be an inquisitive and thoughtful person.

I have four primary reactions:

  • I do not believe it is “easy to come by” money in Silicon Valley.
  • I do not believe startups are wasting money on “lavishly” decorated and “holier than thou” offices.
  • I believe we are seeing a new generation of smarter, more efficient startups.
  • I was quoted out of context.

I do not believe it is “easy to come by” money in Silicon Valley.

Claire writes, “… for anyone with a decent idea and the drive to start a company, $100,000 to get it off the ground is easy to come by.”

I have direct experience fundraising within the time period this article covers, having helped Cabulous present to raise over $500k and fundraising for the company I co-founded, VidCaster. My 50+ fellow peers in the highly competitive 500 Startups accelerator program have direct experience fundraising right at this moment. My wider network of peers includes those in programs such as Y Combinator, TechStars and of course those entrepreneurs branching out without an accelerator behind their back.

None of these entrepreneurs would ever say $100,000 is easy to come by.

All 100+ investors I have met with while fundraising for VidCaster and Cabulous, whether angel, “super-angel” or VC, are cautious, thoughtful and thorough in the examination of any investment.

Most notable is the attention toward solid and sustainable revenue. We did not pursue funding for VidCaster until we were absolutely sure that our business had created a scalable and sustainable revenue stream, proven simply by looking at our books.

Companies that raise funding from investors whom I encounter are almost universally deserving of capital to expand what is already a successful business.

I do not believe startups are wasting money on offices.

Even as we approach levels of tech sector employment not seen since the late 90’s, use of space is extremely efficient — twice as efficient to be exact.

SFGate article from earlier this year:

“…as tech jobs have multiplied, their real estate footprint has fallen. Where tech companies occupied 18.3 percent of San Francisco office space in 2000, they occupy just 9.3 percent today, according to Yasukochi, who based his estimates on data from the California Economic Development Department, Moody’s and his firm.

That’s one reason so many offices in San Francisco remain vacant. At the end of 2010, 17.1 percent of the city’s office space sat vacant, according to Jones Lang LaSalle, up from 14.7 percent in the first quarter of 2009.”

Fellow entrepreneurs I know shy away from investing in traditional, lavish office spaces reminiscent of the 90’s. In fact, most startup companies growing today look to share space in San Francisco or the Peninsula with other software companies doing similar work. I have been a longtime member of Parisoma co-working space in San Francisco and as our company grows we are partnering with other startups to lease shared facilities in San Francisco.

I believe we are seeing a new generation of smarter, more efficient startups.

In San Francisco and Silicon Valley we are witnessing a slow motion revolution in the way that companies are formed and ideas are monetized.

The next generation of startups focus on functional products that earn revenue. They reach a point of significant recurring revenue before seeking funding. They are conservative with cash and go to great lengths to minimize expenditures, especially those “legacy” expenditures from the previous generation of startups such as lavish offices or physical server infrastructure.

In fact, I went so far as to remind Claire during all of our email communications of my core belief that this next generation of startups is very different.

A quote from a recent email exchange with Claire yesterday afternoon:

I’ll share again since it’s a strong belief of mine: I think our startup (VidCaster) is a great example of what I believe to be a wider trend in this generation of startups — focusing on a product that earns real revenue, pursuing funding only when the company is showing real traction.

I am disappointed to have been quoted out of context in this excerpt from the article:

Soon came VidCaster, a service for Web sites to add video; it was started by Kieran Farr, a taxi driver turned chief executive. He said his service had absolute stickiness — meaning that it lures Internet users to stick around for a long time.

“What’s the gross margin of the business look like?” asked George Zachary of Charles River Ventures.

“What does that mean?” Mr. Farr said.

“That’s a problem.”

Unfortunately, this is where the article stops quoting.

I’ll admit I was taken aback by George’s question, but I wasn’t the only one — other audience members told me they were confused why he asked this as well.

To understand why, here’s a quick bit of accounting background: gross margin for software-as-a-service companies is an irrelevant metric, it approaches 100% if we are doing our job right and running a functional software business.

George asked this question because he thought we were a service business in video production — an industry where margins are closely monitored — which our slides and my verbal presentation clearly stated we were not. He later apologized for his misunderstanding and ended up giving VidCaster the highest score of the panel.

I respect Claire, her writing and her intent to provide a behind-the-scenes look at one of the only bright lights in our nation’s economy, however I do not agree with the perception that the sky is falling over Silicon Valley.

Posted in econ, internets, media, tech, work | Tagged , , , , , , , , , , , , , | 4 Comments

One thing that you will learn quickly is that a computer is very dumb. It does exactly what you tell it to do, which is not necessarily what you wanted.

—Introduction to Computer Programming from Berkeley Foundation for Opportunities in Information Technology from here

Posted in Uncategorized | Leave a comment


Working taxi dispatch phones, I received a call around 1am from a group of loud women.

“We have an emergency, we need a taxi immediately.” (Loud yelling in the background.)
“What’s going on? Is anybody injured?”
“No, nobody is injured. We need a taxi right now, we’re at Geary and Gough.”
“What’s the emergency?”
“We were just thrown out of our taxi here in the middle of nowhere. We’re 3 girls all alone and we need a taxi now.”
“At Geary and Gough. Okay we’ll call a pickup there.”

They’ve already been thrown out once. I doubt any of our drivers would want to pickup that order.

Posted in taxi | Leave a comment

Woman in Tears

I worked taxi dispatch phones Friday night, answering hundreds of calls from people looking for a cab all across the City during the busiest time of the week.

A woman had called around 10pm for a cab from the Richmond district, let’s say 20th Avenue and Clement. She sounded like she had finished a long day at work and just wanted to get home, or so I invented in my head.

She patiently called back every 15 minutes or so until around 10:50pm when she called back in tears. Just before her call, a cab in our fleet finally responded to her order and, as luck would have it, arrived near the same time as a Yellow cab. She had called Yellow about 20 minutes earlier, understandably frustrated from waiting so long and wanting to try another option.

Also understandably, both cabbies are pissed off. It’s a busy night. Drivers can make a lot of money during this time period. Chasing orders for no gain is a waste of everyone’s time.

What do cabbies do when both arrive at an order? Some cabbies see it as part of the “taxi code” to both leave the order to punish the customer for calling two companies. I’ll usually defer to the other driver as I’m non-confrontational. Some cabbies choose to engage in verbal or physical altercations.

In this case both cabbies took off, leaving our poor protagonist in tears and still without a way to get home nearly an hour after her initial call.

Please note this is not meant to be a criticism of any cab company, drivers, customers, or even traditional radio dispatch, simply an example of service failure due to extremely excessive demand for a City administered transportation service.

The staff of the SFMTA Division of Taxi and Accessible Services is fully aware of these issues and we can hope that they are working to act in the near future on peak medallion permitting and layered dispatch.

Posted in politics, taxi, transit | 3 Comments

Python Multithreaded S3 Bucket-to-Bucket Copy (on Amazon Web Services)

For both backup and staging purposes, we regularly need to backup an entire S3 bucket to another bucket. AWS has no built-in function to do this, nor does the boto Python library.

We started off with a simple for key in bucket.list() and copied the files one by one in sequence with key.copy(dest_bucket, key_name). This is imperfect for a few reasons:

  • There are many files, and the files are very large. Processing one by one takes a long time. Sometimes we need a copy asap.
  • AWS is designed to fail. Applications built on AWS should be developed to handle failures. With the sequential design, if any one of the key copy requests fails, for any reason, it will interrupt the rest of the process.

This seems like a perfect problem for threading, and I have been looking for an excuse to play with Python’s built-in threading features. This also seems like a perfect chance to try hosting an open source project on GitHub, also a first for me.

– Does not set ACL. I assume this is set to bucket default.
– Timeout is clumsy, results in multiple 30 second delays. Instead, should log error/timeouts and retry x times.

– 52GB / 7 minutes = 52,000MB / 420 Seconds = 123.8 MB/sec

With tweaks to timeout and error handling, this can be significantly improved. Curious to hear other people’s experiences too.

Try it out!

Posted in internets, work | 1 Comment