Electrification isn't the only change

This Vox article discusses the possibility that vehicle electrification could accelerate more quickly than previously expected.

Basically, a lot of oil company and large firm predictions fail to take into account continuing policy changes and innovations in the electric car market which could continue to drive costs down.

That's a good take and a prudent one that I think will be borne out. There is one other change that I think will accelerate the gas to electric vehicle transition to an even greater degree: self driving/autonomous vehicles.

I think it's reasonable that autonomous vehicles will see limited real-world use in the next five years and widespread use within 10-15 years. Recode predicts that between 2020 and 2025 autonomous cars will be developed enough to handle all driving tasks.

I believe that if self driving cars become practical that people will begin using them aggressively. From getting deliveries to cross country roadtrips people will love not having to pilot a vehicle for day to day tasks.

The traditional model of car ownership has a family own a car or two that can accomplish most any car task (going to the grocery store and a cross country road trip). If self driving cars become commonplace people will likely stop owning one specific car and will instead buy use of cars.

That means that maybe people will use a different car for a grocery run versus a road trip. Local trip or commuting cars could have maybe 50-100 mile ranges before needing recharging while roadtrip cars will have ICE-based (internal combustion engine) drivetrains to enable the much greater range requirements of that trip.

I think that if self driving cars become practical (and that's still a big if) it will significantly accelerate the rate at which electric cars and electric car infrastructure will proliferate.

So If the optimistic take is that 30% of cars are electric by 2030 I posit that many many more (say, 50% rather than 30%) will be electric if autonomous vehicles become road worthy for the vast majority of road driving scenarios.

Tongue Tying Words Sounds Like A Plan

Where the rubber meets the horse you road in on.

The thesis of this project has been that the extremely human nature of puns is deceptive and they actually have many qualities that can be figured out without essentially creating an advanced AI or neural network.

To that end as I played with various data sources and tools I intentionally shied away from ones that were more like full on natural language processing.

I jumped through a lot of hoops to find data on definitions, synonyms, and sounds that would let me work with them on my own terms.

Sounds the alarm! This is going phonemenally!

Sounds went great, I found the CMUDict project that has most words encoded with Arpabet, an ASCII equivalent to the IPA. I quickly was able to find sound sequences within other words and compare them via Python’s excellent string comparison methods. There’s tons more that can be done there and I’ll be playing with sounds for a long while yet.

Definitions, not so much. After someone’s JSON encoded dictionary lacked some words (what kind of dictionary doesn’t include the word ‘potato’?) I tried to scrape the dictionary included in OS X. This involved someone’s python wrapper for Objective C that pulled one definition at a time from it and spewed out the raw text to the terminal. I got partway through parsing those definitions into something resembling a usable data structure before I abandoned ship.

Casting a word net to spell out my plans

In the end, what I had been resisting (natural language processing) offered a granular enough solution for me. Princeton’s Wordnet project and the associated python interface, NLTK (Natural Language ToolKit) gave me what I needed.

I experimented with its various methods built into it. One promised to tell me how short the path between words was in terms of a number, to me that sounded like a wonderful way to approximate a word’s subject.

As it turned out that didn’t really work at all. The numbers were too abstract and didn’t really end up mapping to subjects from the perspective of me recognizing words as sharing a subject.

I turned to hyponyms (words contained within a word’s sense) and hypernyms (what overarching words contained the word being asked about). While these were segregated by part of speech (hypo- and hypernyms for nouns did not contain verbs or adjectives and vice versa) that combined with synsets (words that had a similar sense to the asked about word) provided a close enough approximation of subject that I could move forward with it.

This in turn provided me with interesting algorithmic problems like how should I crawl a branching tree of words of indeterminate length/depth and ensure that I successfully found all the words within it?

I worked through these and had a great time teasing out the problems incurred there.

Material improvements and other alloys in my quest

At this point Puntenshawl doesn’t out put puns per-se, but it gives me material to work with in making puns. I’m increasingly able to ask it about a word or series of words and it will tell me various options for making puns on them. While not funny in and of itself, this definitely provides me with more material, so in a sense it is successful so far.

It’s been an adventure, and there’s yet more to go, but for now this is a good place to be.

Setting Sale on a Discounted Mentor Ship

Who am I? (24601)

It was my senior year of high school when someone told me that puns are playing with language. That resonated with me and I decided then and there to get good at puns. That was eight years ago and I’m pretty great at punning now, to the point where I can get lost in workshopping a phrase to make the wordplay in just a bit better.

Meanwhile I work on a devops team and optimize servers in various ways, getting the syntax just right in a bash loop or combing through logs for that one errant message.

The biggest gap in my toolbox is that I’ve never gotten functionally literate in a programming language. I joined ChiPy’s python mentorship program to rectify that.

The void stairs up to level two

There’s a particular satisfaction in making a pun that takes someone a moment to understand. That moment of thinking, processing, turning over the meanings overlaid onto a sentence illustrates how complicated understanding puns is in terms of what’s happening inside someone’s brain as they figure out which word has additional meaning or what change has been made to introduce humor into an otherwise blasé sentence.

It’s that difficulty that has made a lot of people I’ve told about this project react with incredulity. Understanding puns is, from a computational perspective, extremely advanced and most likely could well be a life’s work.

Making puns though, to me that’s a different story. Making a pun requires adding a meaning to a sentence. To say ‘udderly’ rather than ‘utterly’ means that in addition to an adverb noting how absolutely without qualification something is I am now also talking about cow mammaries. We as humans can grasp both meanings of the word because they sound similar. The similarity in sound is one primary means of making puns that I intend to work with. These are what I refer to as homophonic puns, where their similarity in sound presents an opportunity to add meanings.

Further, when two people are making puns back and forth at each other, they’re creating subject matter puns. That is, there is the primary subject of the sentence as well as the subject within which puns are being made.

Trees are a common subject matter pun I’ve found. An exchange of those might go as follows:

Punster One: “Leaf me alone!”

Punster Two: “No, I’m trying to branch out.”

Punster One: “Well then you’re barking up the wrong tree.”

Punster Two: “Look, can we just get to the root of the problem?”

Punster One: “Fine, I’ll chlorofill you in.”

These two people are talking about a disagreement and the first one eventually agrees to fill the other person in on the missing details.

Meanwhile, any additional word that can be made to have to do with trees is an additional pun.

They imposed a Syntax on linguists, they could not be reached for comma

I know a couple of linguists, and through the little bits and pieces of knowledge I’ve gleaned from knowing them I’ve managed to put together the right questions to ask.

To tackle homophonic puns I’m working with phonemes, that is, sounds. Splitting words up by phoneme rather than letter means that words like “oh” and “though” which have the same ending sound can be directly compared. This is much easier than trying to code for all of the weird sounds that letters make throughout the english language.

For subject matter puns I intend to compare words based on their synonyms and subjects to make as many words as possible in a given string have to do with the same subject. I’m doing this through dictionary definitions to approximate subjects and a thesaurus to figure out which words can be substituted to begin with.

Slitherin’ in on a python

What I need to deal with wordplay in terms of homophonic and subject matter puns is as follows:

  1. A dictionary wth International Phonetic Alphabet (or equivalent) pronunciations
  2. A dictionary with definitions of words
  3. A thesaurus

I have data for all three of these things to varying degrees of quality, though I’ve only seriously worked with the pronunciation dictionary thus far. I’m striving to have all the data I work with be local to my machine purely because of the volume of comparisons I intend to make across every word in the dictionary for every word of input.

Thus far it’s been a lot of fun playing with the data, I’ve gotten to think about algorithmic efficiency, proper handling of large files, and data structures in what I’ve made.


I'm buying hard drives again.

I have close to 100,000 photos spread across a few different drives and replicated to Crashplan.

My goal is to have everything accessible at nearly anytime while being redundant to at least two physical locations.

So what I really need is a magical computer with four terabytes of storage, a network connection around one gigabit per second, and easy portability.

Since that doesn't exist (is it too much to ask for wizard computers?) I have to settle for weird crap.

Currently I'm migrating my old Aperture libraries to Lightroom. I have all my photos on big desktop hard drives, but those are hardly portable. I want my pictures accessible wherever I am at the moment.

So I'm buying more hard drives. Seagate Super Mega Buzzword 2TB drives. They're portable and work. I'll just end up with an ever expanding stack of them as time goes on. They'll get fun labels like "2006-2012!" Hooray for cheap storage.

Albums of Files

The filesystem on desktop computers is a huge skeuomorph.

Files exist in one place and there's only one path to a given folder. Yes, symlinks, aliases, and shortcuts exist, but only as afterthoughts. Even tagging files is only relevant for within-folder sorting or search parameters.

The ability for things to be accessible from more than one place at once is effortless for modern computers. That should be equally effortless for users to take advantage of.

Many of our files already behave in this way through abstraction layers like iTunes, Lightroom, iPhoto, and the Recents menu in many apps.

These are all siloed efforts to better organize how we access specific kinds of files. And you know what? They're not bad at it.

Lightroom has collections of user selected photos as well as rich keyboarding tools.

iTunes has albums, user defined playlists, artists, as well as rich metadata searching to get the songs you want.

These are for individual document types rather than entire filesystems.

What if the filesystem itself worked this way? Users could define their album for a class, save a search for things (documents, photos, etc) containing the words "New York City" or created between the dates December 17th 2011 and January 4th 2011.

These capabilities exist from a technical perspective, but they aren't easily usable.

How about it guys, Dropbox, Google Apple? I could use a file system that wasn't made in the 80s.

Self Improvement

I have no job description. I do random IT, photography, office systems, and occasionally work with python, mongoDB, and Amazon EC2.

A lot of the time I screw around with computers all day and help the rest of the office get their shit done.

That's cool, but I realized that the more boring parts of my job could well become most of my job. If I wanted to move on to more interesting problems and cooler things, I'd need to push myself forward.

So here I am, reactivating my old blog and doing Learn Python The Hard Way.

Cheers to self improvement.

Thought Curation

At Startup Institute we have to engage with the relevant communities around us.

One of the best tools I've been using for that is twitter.

I want to take it a step further though, I want to use twitter as a means of curating my thoughts and steering my mind towards design. To that end I've been working on being mindful in curating who I follow. That influences what I see in my timeline and thus what I'm thinking about.

The more design and startup related tweets I see the more I'll engage with those communities. The more I see the more I'll know, and the more knowledgeable I'll become.

Here's hoping it works.

The Future of Startups

I'm saying it right now: I know what the next big thing in startups is. I can see the future. Not the future Samsung talks about with their "Next Big Thing" capaign.

I'm going to be on the forefront of this new wave of startups.


That's why I'm anouncing my new venture here and now.


May I present, Cnsnnt


Flickr, Tumblr, Grindr, and many others have been poking at the beginnings of this revolution, but I've never been one for doing anything half-assed. 


Cnsnnt is the full-assed evolution of startups. Welcome to the future. 

Phonebloks: Neat idea. Too small an audience.

I saw Phonebloks  a few minutes ago. My first thought is that it would experience the same problems that Linux experiences. It may be superior, but it takes a commitment to understanding what's better about it.

The average user doesn't care about the battery, processor, camera, etc. in their phone. They want a phone that works. There is definitely a subset of users that want to be able to customize their devices in the way that Phonebloks thinks is necessary, but I think that user base is too small to sustain the ecosystem they show in the video.

As a thought experiment, how many people are asking for the Galaxy S IV's camera module with the HTC One's processor attached to the iPhone 5's screen?

My guess is not many. 

Respect the User

When things are used by millions of people attention to detail takes on a different meaning. It is no longer that fretting the little things shows that one is a good designer.

Fretting the details shows a respect for the user.

If 1,000,000 people use a product and 1% of those people notice a detail and appreciate its inclusion that's 10,000 people. 

If 5% of those people appreciate the detail, but can't put their finger on what it is that they like, that is 50,000 people.

Making tens of thousands of people happier with one little detail is new consideration as more and more people use the same products.

Respect the users. They'll appreciate it.

Google Reader

On March 13th Google announced that Google Reader was being shown to the great cloud in the sky. As a heavy Google Reader user, I understood that Google had this power all along and that because we didn't pay for the service it could be yanked at any time.

MG Siegler hit on something interesting on Techcrunch though, what if Google Reader's imminent sunset causes traffic to plunge?

The idea behind this is interesting, under this model Google Reader enables news junkies to be the highbrow readers of news. If they're the highbrow readers then they are a very valuable set of people, they are the tastemakers when it comes to what news gets shared.

If the tastemakers are annoyed with Google, that's going to have much farther reaching consequences than Google might have imagined. The evidence for them being the tastemakers is the general outcry regarding Reader. The people crying out are not the average news consumer, they are the ones who have many feeds and work Reader into their workflow.

Google appears to be betting that they aren't that important and that everyone will cease to care in a few days. If Google is wrong their goodwill amongst a very important subset of users just took a huge hit.