Harper Reed: Tech, Mobile, Yo-yoing and Death Metal

Software, PHP, MySQL, XMPP, Hacking, Baphomet

Yes! I am a venture hacks scout! Chicago RPZNT

I am excited to be a part of Venture Hacks helping them find amazing startups for the Angels on the Angellist. The scout program is going to be a lot of fun and hopefully will allow some great startups to be funded by the amazing angels from the angel list. Check out this great write up in GigaOm.

If you have a startup that you want to submit to the angellist, you can do so yourself by submitting directly to the angel list. If you want more information about the angel list, or would like me to take a look at your startup (and get all the perks of interacting with a person as amazing as myself - hah) - then send an email to me directly. I am pretty easy to contact and can help out in many ways.

I am looking to help out and interact with midwest startups. I am very serious about making sure that Chicago continues to be a good place to be an entrepreneur. Having venturehack/angel list representation in Chicago will continue to help the community. Be sure an check out the listing for Chicago Angels.

Making the Midwest/Chicago a great place for starting a company isn’t just for people like myself, the groupon guys, sandbox and the angels. It is about the entrepreneur as well. Please let me know if you have ideas, concerns or just general insights into making the Midwest/Chicago the best place to start a company.

If you are outside of the Chicago/Midwest area - feel free to ping me anyway. I am always looking for new startups to talk to and people to connect.

I don’t like to move my blog around. It is super annoying. The RSS feed gets all messed up, I spend months tweaking everything. I find silly bugs and then fascinate about fixing them. All in all it takes months to complete the process. I avoid it like the plague.

However, I really wanted something simpler than wordpress. I didn’t need a CMS. I barely need a blogging engine. I update so infrequently. I want something that creates well formed html (hah), static content and is easy to use.

I started looking into hosting this blog on Google’s app engine awhile ago. I looked into Bloog - an awesome restful bloggin engine for app engine. It was very hopeful. i spent a bunch of time hacking on it and eventually ported my theme over. I didn’t feel it though. it worked well. it had all the features i wanted. It even used a bunch of neat app engine tricks. I gave up on using it for my blog. It just wasn’t the correct choice.

During this time, I watched most of my hackerish friends start to use Jekyll to power their blogs (or write and then use igor as anders did (protip: do not search for “anders jekyll” in google)). I admired the simplicity of the jekyll engine. It was so easy and fun to use. I wanted to use it for my blog - but it didn’t play as nicely with app engine as i had hoped.

I then found Drydrop.

DryDrop is a neat application for app engine that let’s you host static content. In my current phase of life, I really hate managing servers. It is fun and all - but if i don’t have to - i am not going to. ;) Instead, I try and use platform as a service services(heh) to minimize the number of servers that I touch on a daily basis (my current server number is 4 (I secretly want it to grow back to 100+)). DryDrop was a nice solution for my server hatred. It allowed me to serve simple static content on app engine. I immediately ported a bunch of my static sites over to app engine: harpercloud.com, biofuelmenace.com, weownthesun.com and of course ryankanno.com.

After a few weeks with these sites on app engine - I decided that it was probably the right place to put my precious blog.

Jekyll is an interesting beast. It is exactly as the wiki proclaims: a simple, blog aware, static site generator. It has no features (well. a couple), it has no built in community aspects (no commenting, trackbacks, reactions, etc). It doesn’t have any admin. it is just a static site generator that is geared for blog like sites. It works amazingly.

The first thing I did was port my theme over to Jekyll. You can check this out at my blogs git repository. It was a pain in the ass, but i was able to clean up a bunch of annoying HTML issues that i had from changing shit all the time. I still need to refactor it a bunch.

Once the theme was done, I started working on the content. This is the biggest issue. I have a bunch of content. Like 1000s of posts. Jekyll is not necessarily the quickest of generators when you have thousands of posts. Luckily I was able to do some simple tricks to ensure that the old posts work and the new posts work as well. Its honestly pretty annoying and i need to solve this better.

A couple hints for hosting Jekyll on App Engine with DryDrop:

It is a bummer to leave wordpress.

I have been on wordpress since early 2005. I think that is the longest I have stayed with 1 piece of software. I really enjoy the wordpress community. I really like matt and all he has done for open source and the internet. I like the fights they pick and i enjoy the innovations they are bringing to blogging. I don’t like having to fight hackers off every single day. If there was one reason i am abandoning wordpress it is because of the hackers.

I hosted about 25 wordpress blogs on my mosso account for various friends. I kept most of them up to date, but a lot of them were for friends and were not under my control. 100% of them got owned. hah. It was just something they did. no matter how fast or often i updated the wordpress software - it would be owned at least one time. My personal blog was safe for some reason. Maybe it was because I always ran the bleeding edge version from SVN. I will not miss the constant updates and the attacks. The wordpress community does a good job of handling this issue. I, however, was tired of it.

I migrated at least 22 of the 25 hosted blogs to wordpress.com or posterous. I killed all the unused wordpress installs. No more hackers getting in through plugins, themes or trickery.

If i were to use wordpress again, I would either use wordpress.com or vaultpress. Both of those products seem to solve my problems. Right now, however, jekyll has pretty thoroughly solved them.

I can’t wait to start updating this blog a bit more often. I don’t know if i will write like i did in 2003/2004 - but i plan to update it a bit more than i did in 2009. We shall see ;)

If you see this, this blog is hosted on app engine

Decided to ditch wordpress for jekyl and drydrop. Let’s see how it works.

I will update this post later with more info later.

Smitten by the iPad: thoughts and complaints.

The ipad is awesome

The iPad is a new and very exciting paradigm for computing. I played with it afternoon and it felt very minority report. It felt like the future. no physical keyboard. I was controlling things with my finger/mind. it was awesome. I am smitten.

Besides the irrational distortion field emitted by this shiny device, I have some general thoughts/complaints on the iPad.

  1. The lack of camera is irrational. I have no idea why apple didn't include two cameras on the iPad. It would be an amazing device for parents, students, people, etc. Chatting is annoying on non-multitasking devices, however it might be nice to Skype with a slate like device. It will obviously be added to the next iteration of this device.
  2. The iWork cloud platform is annoying. Importing and exporting documents is very hard. It is obviously not meant to be used by people who have documents already. The only way to get shit on the device is to download it. Why wouldn't Apple integrate iWork with MobileMe? silly. Google will have to change their Docs platform to allow easy downloading from the mobile google docs page.
  3. The lack of any clock or alarm app very strange. I use the clock app on the iphone for a lot of stuff. not having that is a bummer. but in the grand scheme of bummers its about a 0.00001/5.
  4. There is no usb host mode (that i know of). I would love to charge my phone, etc via USB with this device. it would minimize the number of cables and what not i would bring. It would also be awesome to plugin external disks or keyboards to it.
  5. Google Reader blows on the iPad. This is a real bummer since that is pretty much the one thing i want to have all the time. You can't scroll with the desktop version and the mobile version seems silly on the iPad. I can't wait for Google to "fix" all of their webapps for the iPad.
  6. Using an iPhone after spending a lot of time on the iPad makes the iPhone seem like a midget. It makes the nexus one seems like it is made out of paper.
  7. The iPad is probably one of the coolest ways to show presentations to someone while sitting at a bar. I have been pitching some ideas to people and having the iPad with my deck is pretty awesome. A great way to go over your presentation with one or two people. Way better than a laptop.
  8. The Kindle app is awesome. I like it a lot. I want to try reading a book on the iPad, but i really like the kindle's screen.
  9. Most of the apps are boring. Seriously. The apps that are impressive are: Kayak, Maps, Photos, Kindle, Twitterrific, instapaper, Netflix and Square
  10. Square is one of the coolest apps I have seen. It should blow peoples minds. I imagine that it will be a game changer for friends who do retail. I can't wait for my square card reader to show up. I will be charging my friends for everything.
  11. This is an amazing device for casual internet use. I imagine that Hiromi, my parents, my brother and anyone else who isn't attached to a computer all day long would love these devices.
Overall the iPad is amazing. I can’t wait to see how developers iterate on the platform and create really nifty applications. It will also be fun to see what features Apple magically unlocks on the iPad.

I am going to try and build some applications now. If you have ideas - let me know.

Musings about femtocells: the futures!

I wrote most of this entry the day before the earthquake in Haiti. It was motivated by the magicJack announcement and my interest in mobile devices within developing nations.  However, the thoughts in this post suddenly seemed more real after I started hearing reports of communication breakdown after the earthquake.
The femtocell

At the recent CES, the magicJack company announced that they wanted to release a consumer grade FemtoCell device as an upgrade to their USB FXO/Softphone device.  Note: magicJack is an insane company. You probably have seen them on television commercials while watching USA ‘Up All Night’.  While these commercials almost seem scam-like, they have apparently sold 5 million USB magicJacks.  That’s a lot of phone calls!

A femtocell device is basically a mini GSM/CDMA tower. Think of it as a wi-fi AP but instead of wi-fi - it is GSM. You could drop it into your house, plug it into the Internet, and suddenly get 5 bars of connectivity on your mobile handset - instead of the standard AT&T 1 bar. magicJack is offering the same service the USB dongle provides (unlimited calling and what not), but for mobile phones.  As a consumer, you would need to configure your handset to use the magicJack femtocell to receive/send calls.  When you are in range of the device (w/ signal strength enough to cover ~3000 sq. ft. house), you would bypass your carrier and use the magicJack for all incoming and outgoing calls. AWESOME.  Especially with the likes of Google Voice.

There are questions on the legality of such a device - but it is apparently legal to use inside your residence.

Side note: Magicjack is SIP. And hackable. There is a cat and mouse game being played out trying to unlock it.  You can even use it with Asterisk.

The thoughts

So I began to think.  Femtocells could be used to open up mobile VOIP.  One scenario is that you could jump on a 3rd party carrier for a limited time to make a p2p VOIP call using your current GSM/WCDMA mobile device.  That is really awesome.  More importantly, what’s REALLY awesome is the pirate (3rd party) carriers.

Imagine purchasing 100 Motorola F3’s, a GNU Radio USRP2 (~$1400) running the OpenBTS stack and a super huge antenna - and suddenly becoming a rural/developing country mobile provider. Or - if you’re more interested in being a pirate carrier - you could run this setup in a city and be a carrier for the dark side (drugs, gangs, nerds…). This inexpensive setup is available (and achievable) today!  In case of the apocalypse/disaster/camping/nerdcamp - I think it would be nice to have a set up to deploy to organize/help people.

My mind started to work into overtime.  I began thinking about the ramifications of hacking the magicJack. Wouldn’t it be neat to use femtocell technology to distribute ad hoc mobile carriers around a neighborhood/disaster area/rural/developing country?  You could hook the magicJack femtocell up to a Fon2 device (usb/linux/broadband) and distribute them around in places with connectivity. All you would need is a better antenna and some software to manage the provisioning and device identification. BAM! Instant pirate P2P GSM carrier.

I am hoping that this type of convergence will lead us to the future.

I love phones designed for developing countries.

Nokia 1100 and Motorola F3

I love mobile phones. I don’t know why - but mobile devices represent so much of what I love about technology. The ubiquity, the fascination, all the new technology that pops up and all the different way people use their devices. I also feel like mobile devices will be the future of whatever the internet turns out to be. They will power the internet. With all this in mind - I have started to become interested in the devices that fill the opposite niche. The devices that are SO simple that their are almost NO features.

These are not Razrs, or other shitty mobile devices which act like they have all sorts of amazing features.  These specific phones are single feature, cheap devices and are often deployed in developing countries.

There are two that I really enjoy and I suggest checking out.

The first is the Nokia 1100. Also known as my favorite phone in the world. I first saw this phone while working for a minute in Bangalore. It was advertised as a phone ”made for india” and apparently was hardy enough to be used by the working class there. I was drawn to the device. I neeeeeded it. It’s weird, because at the time I was running a symbian device that supported about every possible feature available in mobile - so thinking about jumping to a mobile device that was pretty much featureless was crazy. But - I was compelled.

The phone isn’t that fancy. It has very few features. It is super tiny and is super cheap. It is just a basic, simple phone that does nothing more than look “Nokia” and probably makes calls. The features it has are incredibly handy: flashlight, alarm clock and sms messaging.

I didn’t realize it then, but the Nokia 1100 is possibly the most popular electronic device in the world. According to the infallible wikipedia: Nokia has sold ~200 million of the Nokia 1100s since it’s launch in 2003. To put it in perspective - there have been ~30MM iPhones sold and ~50MM Razrs sold.

I eventually got a couple of these and used them as lenders, experiments and generaly fucking around phones. I even sent one to my brother for him to use - which he eventually washed in a washing machine - it still boots. They are HARDY. and 20 bucks.

The second phone that I am interested in is a bit newer and is a bit more tech. The Motorola F3. My buddy Hemmant showed it to me, told me a bit about the history and I couldn’t stop thinking about it. Anecdotally, this phone was made by a Motorola team in india - again for use in the developing countries market. It is simple, has no features (even less than the 1100) and is JUST a phone. There is one major differentiator. The Motorola f3 is one of the only phones to have an e-ink display. This means that it uses very little power in standby (standby time of ~17 days), can be used in low light/no light situations and is rather resilient. The phone didn’t sell as many as the Nokia 1100 - in fact it was a veritable failure.

The F3 has no features. It barely send txt messages. It has voice prompts for all menus. It is just a phone. A user serviceable, easy to charge, thin, e-ink phone. It works well making calls and receiving txt messages. The F3 would be an amazing phone for a child, elderly person or someone who doesn’t want to deal with learning pesky features. I got one for my “go bag” as an emergency phone (I am not a survivalist, I just crush a lot).

You can find an unlocked Motorola f3 for about 30 bucks on amazon. I suggest you get one.

2009 Hosting Summary (or where does Harper host in 2009/2010)

this is mount fuji
Disclaimer: I am paid money by Rackspace to think about these things. However, I am an equal opportunity hosting consumer. I will try and be as open as possible (but probably a bit biased as well). This is on my personal blog and does not represent Rackspace in the least. These opinions are mine and do not represent Rackspace in anyway.

I guess I will go ahead and jump in. This is based on what I use and would most likely suggest if we were drinking beers and talking about hosting. Your mileage may vary. I am sorry if I end up causing a nuclear war based on these recommendations.

"Platforms"

Two platforms are really getting me going these days. Google’s App Engine and Heroku.

App Engine is known by my close friends as my true love (haha. second only to my lovely wife). I spend almost 90% of my development time hacking on App Engine apps (Excla.im, CityPayments, ChicagoAlerts, Transitapi, AwesomeUpdater, and Harper's Friends). App Engine does a few things very well and allows the developer to do the rest. Quite a few of the lessons I learned while scaling out Threadless are baked into the app by default. You don’t have to scale all the pieces independently and you can really take care of things all at once. I recommend it and use it for prototyping and building new apps.

Heroku

If you are interested in Django, Ruby/Rails or JVM languages (I am looking at you Scala!) - I highly recommend App Engine or Heroku.

"Cloud" Server Providers

Cloud Servers are amazing things. Usually they are XEN hosted and wrapped by an API or a nice pretty interface. I <3 them. If I would have had these server options in 2001 I would have been able to make the server kingdom I dreamt about. It would be awesome. Luckily, now in 2009/2010 I can build my server kingdom in the CLOUDS. Anyway….

SlicehostEC2

Sidenote: Linode is getting a lot of buzz based on their performance/cost ratio. I recommend you take a look at them and see if they will work for you.

If you do find yourself in the dark world of cloud servers, you should check out my favorite utility for managing all things servers: CloudKick. CloudKick is a pretty solid app that allows you manage your all your Rackspace and Amazon servers. You can do it very easily and with very few buttons (I love a small amount of buttons).

If you are looking for awesome easy servers - use Rackspace Cloud Servers. If you are looking for a full stack (load balancer, block storage and what not) - use Amazon. I use Rackspace Cloud Servers.

File Hosting and Serving.

File hosting is simple stuff. I follow this simple guideline:

If you want to host a file for everyone (i.e. a popular image, a iso, download etc) where performance is important - use Rackspace Cloud Files with limelight integration. This is the closest you will come to paying for enterprise CDN capabilities for a tiny amount of money. You can’t beat the level of performance that limelight offers (unless you want to pay for Akamai).

If you need to put a BUNDLE of files somewhere that needs to be public or private - use Cloud Files or S3. Depending entirely on what vendor you like or what API you are most familiar with. I use both for backing up various data from my servers and home (I recommend s3sync, s3fs for S3 or MossoFS, CloudFiles/Duplicity for Cloud Files).

Multi Tenant/Shared Hosting.

Shared hosting is such a pain in the ass. ;) I really don’t like it. However, I use it because of the price and because of how easy it is to host stuff for friends and others.

I use two providers regularly for shared hosting:

WebfactionRackspace Cloud Sites

If file storage is just what you need - then check out Dreamhost. For the love of god they have cheap prices. I looked today and they were offering unlimited everything (that doesn’t make sense). The only problem is that they don’t allow you to use it as a backup service (you have to use the space in a very specific way).

Enterprise/Physical Servers.

Enterprise servers are easy. You use Rackspace. ;) Seriously though - while at Threadless, Rackspace saved our asses more than once. Using Rackspace allowed us to concentrate on our application rather than concentrate on our servers. Although they can be expensive - they offer so much that it is often worth it.

If you are looking for something a bit cheaper or a bit more hands on, I suggest my favorite chicago hosting company: FDCServers.net. They offer great support and cheap servers. You are not going to get near the support that Rackspace offers, but you are going to pay a LOT less. I host a couple big apps at FDC and have had no problems at all.

Conclusion.

This wraps up my hosting review. I recommend App Engine, Cloud Servers, Cloudfiles/S3 and Rackspace Managed hosting. heh. See - super easy. All your hosting questions are answered.

2010 is going to be an exciting year. I imagine that Rackspace and Amazon will continue to fight head to head. Which will only make us consumers have better options. I also am very excited to see what Google does with App Engine (I imagine that they will NOT be adding PHP support). I hope that 2010 is as productive as 2009 was for hosting, if so - then it will be an exciting, innovative time.

Leave your questions in the comments - I will attempt to answer them the best i can.

Leaving Threadless

It was super hard to leave a job that taught me so much, helped me grow and was staffed by all of my friends, but I needed to make that leap towards the future. (Here is a nice interview covering all sorts of aspects of my leaving.)

I did it, and the future is looking bright.

In the next few months, I am going to be helping Rackspace in their cloud computing division. My official title is Nepholologist; a person who studies clouds. I will also be working hard to launch a startup (secrets secrets).  This is extremely exciting.  I’ll be spending half my day working with amazing technologists at Rackspace and the other half pursuing my own thing.   Rackspace has been amazing.  They’ve accommodated my want for freedom and the ability to concentrate on my own stuff while helping them out.  It will definitely be the best part-time job I’ve ever had.

I plan on detoxing.  I’ll be cleansing my brain of all the assumptions that I formed while at Threadless and ready myself for the startup life.  I want to be more scrappy and lean in my thinking.  Part of the plan is to complete all the various projects that I’ve worked on throughout the years like citypayments.org, excla.im, exclaim tracking, and harpersfriends.  I’ve done a lot of fun hacks in the last few years, and I want to work on making them much more robust.  This will allow me closure on one chapter of my life - while some doors close, new ones are opening.

Thanks to everyone who was supportive of me in this time. I could never have made this decision without the support of my family and friends.  To my lovely wife Hiromi, who was constantly telling me to pull the trigger.  My friends and coworkers who knew something was up - but dealt with me until the end - even when I was flighty.  My parents who helped me think rationally.  Most importantly, the entire Threadless family.  Without Threadless and the knowledge I’ve gained from my experiences there, I would not have the opportunities I have today.  The last four years have been utterly amazing (and awesome).

I have a couple of posts lined up for later this week.  One about my history at Threadless and another about the hijinks that have existed over the last few years.

Stay tuned.  It’s only just beginning.

My thoughts on the kindle: 1 vs 2 and the iphone app

Kindle2 vs Kindle1 front powered on

I read a lot. I am not like those crazy people who read a book a day or anything, but i have been reading up to about 2 books a week for the past few years. They are not crazy books, mostly science fiction and fantasy, but they are not small books. I read to chill out. My day pattern is to go to work, work, get home, nap, hang out with hiromi, play computer and then read until i fall alseep. The reading part is VERY important to get my mind and body to a place where I can actually sleep. Needless to say, I take my reading seriously.

I ordered an original Kindle way back when they first came out. I was back-ordered for quite awhile. It was enough time for me to question whether or not I would like the device. Luckily, my friend edith was also in the same place - she and i chatted incessantly about what the future would be like with the Kindle. It was a bright future.

I ended up getting it around mid january 08. The first book I read was Terror by Dan Simmons. That is a serious business book. I had started the hardcover of the book earlier in the month and finished it on the kindle. That was my test. It was successful. Although i hated the fact that kindle pages and paper pages don’t really line up - the experience was the same. I was able to read fast and was able to forget about the buttons and terrible design of the kindle (like Zach Klein said - it looked like the consumer electronics version of the Pontiac Aztec).

After Terror, I read the appropriate Diamond Age by Neal Stephenon. I felt that I was closer to the “Young Lady’s Illustrated Primer” than I had been before. I was reading books on an electronic device that was hardy, easy to use and quick. I was able to give it a seemingly unlimited amount of content and could use it for quite some time without a battery change. Like I said above - it is awesome.

Around this time I discovered the dark and scary underworld that is ebooks on the internet. There is an awesome community of people surrounding ebooks. They are involved with liberating DRM’d ebooks, converting from one format to another, uploading mass libraries of free ebooks, cataloging ebooks, etc etc. It is awesome. If you are interested in free content - there is an almost unlimited amount of free content that is compatible with the Kindle available online. There is also an unlimited amount of pirated books too. They are harder to find and I feel terrible when I find them (I apparently would rather pay authors than musicians. hah). One thing i noticed while I was experimenting with ebooks - technical manuals and what not don’t render as well as non-technical books. I think it has to do with the number of diagrams and tables. They don’t render terribly - but often are not nearly accurate to what i imagine the author intended.

How you get the ebooks to the kindle is part of the magic. The kindle has what Amazon like to call the whispernet. It is, as far as i can tell, a sprint EVDO modem built into the device. Amazon uses this to wirelessly deliver content to your kindle that you buy from amazon.com. Once again - it is awesome. You click on a book in amazon and BAM - its on your kindle. You are not limited to using this JUST for amazon’s content. You can do it with your own ebooks as well. All you need to do is register your email address with amazon and then send books to the yourname@kindle.com email address. The books will appear on your kindle for a small cost ($0.10 i think). If you don’t want ot pay for it, you can send the content to yourname@free.kindle.com and it will return the book in the kindle format. You can do this .txt, .pdf and .doc files easily.

The kindle file format is just the .MOBI ebook format. Which in turn similar to the .PRC ebook format. The Mobi file is a remnant from the Palm days. it is basically the Palm Database format that was used for various applications on the original palm platform. What this means is that all the ebooks that end in .mobi and .prc are natively compatible with the kindle. If you had purchased books for use with the mobipocket reader (an awesome ebook reader for windows), there is a good chance that they were .mobi files. You can copy those to the documents folder of your kindle (when you plug it in to your computer via USB) and they will show up in the book list without any work. This really opens up your options for cheap or free ebooks.

The trick then is to figure out how to convert pdf files and what not to well formed, well meta data’d .mobi files. This makes your kindle happy and allows you to continue to sort by author without having your email address be listed as the author.

I went a year reading just the Kindle. I read two paper books that were not available in a digital format during this time. It was interesting. I felt as though I needed to work out to lift the heavy hardcover books. The kindle makes you forget how heavy books can be. My arms are now wusses.

When the Kindle 2 was announced, i ordered two of them. One for me and one for Hiromi.

The kindle 2 is a huge improvement on the Kindle 1. It is thinner, better performing and a bit easier to use. It is not as easy to turn a page - but it is also not as easy to accidentally turn a page either. I like the new design. The optional leather case is amazing. It works VERY well. i was having to remove the leather case from the original when I would read it - i don’t have that problem with the new one.

There are a lot of small software tweaks that have trickled their way to the Kindle 1 as well. They are separating out your uploaded content from the content that came from directly Amazon. I am also having a hard time finding things that are lost on the kindle. I suppose i could search - but i never think of that when I am looking for content. The interface on the Kindle 2 is much faster. The pages turn faster and the books load faster. The screen is amazing. I really like it. I don’t like the fact that I can’t easily turn off the wireless with a hardware switch. I liked being able to not interrupt my reading to turn wireless on or off.

All in all - the Kindle 2 is a huge improvment over the Kindle 1. If you are able to upgrade, do it. And then give your original kindle to someone close to you who wants one. That is the best plan.

Hiromi loves hers. I was worried that she wouldn’t like it - but it turns out that it works very well for her. She likes the size and the ease of use. She took to it very quickly.

When I got my kindle 2 I was showing a couple of my coworkers some of the data about it. Specifically the whispersync stuff. I told them that I wouldn’t be surprised if they released an iPhone app that allowed ebook reading on the Kindle. I based this on the success of the Stanza app. I stated to my buddies that I was only confused as to the strategy to release such an app, especially on how it could accidently stifle the Kindle 2 sales.

Then a couple days later the Kindle app was released. Like the Kindle - it is awesome. hah. With the Kindle app for the iphone and the Kindle, you are able to sync your placemarks on the books you are reading. You could read to a certain point in a novel while on your commute - then go to a meeting and pick up your iphone and continue reading from where you left off on your kindle. Then you coudl pick up the kindle and it would sync to where you left off on the iphone. That is cool. I tried it and it works. It is a bit wonky - but for the most part it works great. The only issue i have with the app is that it doesn’t have ANY of the content that you upload via email. It is only amazon purchased content. Lame. I read a lot of “found” books and a lot of purchased books. An example is a series of books where 2-4 are in the amazon kindle store, but book 1 isn’t. I find book 1 elsewhere and then buy 2-4. However, I can’t read book 1 on my iphone. Only the kindle. WHAT IS THE WORLD COMING TO. ;) I understand amazon’s reasoning for this - and I don’t expect it to change. I do wish i could push my emailed books into their cloud and handle them a bit better (with metadata, etc). I doubt that will happen.

If you read a lot and want a great reading experience, you should buy a kindle.

Python Oauth Client - Excla.im

I built Excla.im quite awhile ago, well before Twitter unleased their oauth beta program. Regardless, Chris Messina tagged the Excla.im sign up process as an anty pattern within his flickr stream. I was bummed because i would have loved to use Oauth to authenticate Excla.im. But because of the tagging, i was constantly thinking about how to remove the anti pattern.

Finally, Twitter released the Oauth Beta and I was able to bribe @Al3x to give me access (which reminds me, i need to send my bribe). I then sat for a month looking at the various python examples for OAuth and basically said “What The Fuck” over and over again. There were no solid examples and my experience with OAuth in PHP was a total hack so i could post shit to fireeagle. I was SOL as to finding a guide.

Then abrah.am released his PHP twitter OAuth lib. It worked really well and was pretty much just plug and play to use it in a PHP app. Nice. I wanted that but in python. I decided to spend a minute or two and create it.

The base library my client is using is the the OAuth lib from google gdata-python-client project. I figure it is a working client and is in production use - so it should be solid. There are very few changes between it and the official client that is released through oauth.net.

The client is rather simple, in fact it should work with other api providers with very little work. You can check it out at github. Please let me know feedback. i am a python n00b - so give me your best shot/code review. I am using Google Code as a issue tracker, so feel free to post some bugs.

It is rather pluggable. I was able to launch excla.im (on app engine) with oauth support in no time. I am currently not holding passwords for anyone. It is an awesome feeling.

Seven Things (goddamn internet friends)

I was tagged by both Eli White and Brian Fling in this dastardly meme regarding 7 things. I am usually a HUGE fan of all things meme - and kind of regard myself as a certified meme expert. However this whole meme that requires a lot of work - I.E. blogging is something entirely different. I think i actually like it, but i am not entirely sure yet ;).

I do find it hilarious that almost every blog post regarding this seven things starts with a bit of self deprecation and surprise at how this meme stumbled upon innocent them. Well, it did come as a surprise - so I guess i understand.

Well here it goes. Seven things about me:

One:

I grew up without a TV. When I was quite young (~3) my parents got rid of their TV. I am not completely sure why. I imagine it had something to do with money (the lack of) and priorities being making sure my brother and I were clothed and fed. My parents got their first TV after getting rid of the previous one when I was about 21. My parents used to rent a TV for big events (war, olympics, etc) and my brother and I would watch the TV manically until it was returned to the rental place. We also used to rent a TV and VCR about once or twice a year to watch all the movies we could in the time alloted. Those were awesome times. I currently don’t have a TV.

Two:

I have been paid to YoYo and Juggle in front of a LOT of people. I guess that makes me a professional. Heh. In college my two best buddies (Matiss and Brian) and myself started a “circus” group. We juggled and did shows for all sorts of things. We opened for Incubus, Sir Mix A Lot, and a few other boring bands. We protest juggled as a group called Jugglers against homophobia - protesting people like Elizabeth Dole and her homophobic antics. After college I continued to support my friends by juggling on the side. It was a really fun time. I don’t juggle as much as i would like, but i still try to make it to conventions and what not. It is a lot of fun.

Three:

My first computer was an Apple ]c. My dad got it in some trade. My brother and I would build text games in basic. Shortly after that I got in to BBSs. Mostly we called places like and downloaded things that would get me in trouble. It was an awesome time. I suggest checking out the to get an idea of how awesome it actually was.

Four:

I met my lovely wife Hiromi while in college in iowa. We moved to Chicago together in 2001 to live together as roommates. Eventually, it became clear that our relationship was much more than that. We got married in 2006 and happily live in Chicago. She is awesome.

Five:

I read a lot. I always have. Growing up without a TV will do that to a person. I read mostly fiction, but will stray to the dark side and read non-fiction every once and awhile. I usually read about an hour before going to bed. It helps calm me down and is a good way for me to get into the sleeping groove. I have recently been into ebooks and use a Amazon Kindle to read them. I find that I do miss regularly reading paper books, but the convenience of reading ebooks is awesome. I can’t wait until the eInk displays and associated readers are smaller, easier to use and cheaper.

Six:

I love David Bowie. It isn’t a love that requires posters and discussion or anything. It is kind of similar to how people who grew up catholic talk about religion. David Bowie has just always been there for me. My first record I picked for myself was Ziggy Stardust. My first concert was the Bowie's Sound + Vision tour. When I was quite younger, my mom took me to get my hair cut and I brought along my Labyrinth LP to show the stylist that I wanted David Bowie hair. I ended up with a rat tail.

Seven:

Although I always knew I would end up with a Computer Science degree - I fought it as long as I could. In college I studied the history of Catholicism for a couple years before actually jumping into computer science. It was awesome. I ended up concentrating on Giordano Bruno and the his (untimely) multi-world theory. It was a lot of fun and lead me to have an unnatural interest in the mechanics of theology.

That's it!

To make this official, I now have to tag 7 people to make a Seven Things list on their blog.

Ready? These Seven People please report to the meme office and make a Seven Things entry on your blog:

  1. Dylan Reed - my brother - I like involving him in the blogosphere.
  2. Scott Van Den Plas - crazy person - He has a great blog and I love including him in meme parties.
  3. Ryan Kanno - hawaii nerd - Ryan is hilarious. Hopefully all seven things will be about a Ukulele.
  4. Cole Pierce - art nerd - Cole is one of my favorite artists. I used to make him go to terrible iowan raves.
  5. Lakshmi Nagarajan - friend and pro blogger - Lakshmi is an awesome "mommy" blogger who learned to drive a car in 2008. heh.
  6. Anders Conbere - xmpp nerd - Anders is awesome. I hope he picks this meme up.
  7. Speedy Joe - awesome designer - Speedy just set up his blog. I wanted to give him some blogosphere love. ;)

The rules of this ‘game’ for those that I have tagged:

  • Link your original tagger(s), and list these rules on your blog.
  • Share seven facts about yourself in the post - some random, some weird.
  • Tag seven people at the end of your post by leaving their names and the links to their blogs.
  • Let them know they’ve been tagged by leaving a comment on their blogs and/or Twitter

There yea have it. I continued the meme. I am not one to be a meme killer ;) This was fun. Thanks to Eli and Brian for making it happen!

2008 Retrospective

2008 was a great year.

A lot of fun things happened. I started speaking more. I started using linux as my desktop. Obama won. I played with XMPP manically. I built some neat applications and Threadless continued to be awesome.

On my blog, the following entires got a decent amount of attention:

  • Chicago Transit API - Oct. 6th - Reverse engineered and built a proxy for the CTA Bustracker.
  • Mini Hi Fi: The Chase - Aug. 30th - Built a mini stereo. Audiophile addiction avoided!
  • Excla.im - a replacement jabber bot - Jul. 13th - Built a small jabber bot to update twitter.
  • Social XMPP - Mar. 25th - Initiated a conversation with the venerable Peter St. Andre to start up the social xmpp list.
  • OLPC Chicago Jabber Server - Mar. 2nd - Built a jabber server for hosting various OLPC related community activities.
  • Awesome Hosting Options - Mar. 2nd - Outlined what I use for hosting. A rather popular post. A bit outdated. I need to update it.
  • The Mosso Cloud: Requests are not a good metric - Feb. 29th - I was unhappy with how mosso had set about charging us for usage. Mosso is still a good host and is still struggling with this issue.
  • Google Apps Auth: XMPP and Radius idea - Feb. 25th - I wrote about how I wanted a radius endpoint for my google apps account. It would make a bunch of stuff easier for me. My solution was to hack a radius server to auth over our Google Apps talk/XMPP account.
  • Putting the blame on your vendors for the win. - Jan. 22nd - I was unhappy with how some internet peers had blamed their vendor when equipment failures resulted in downtime. I think that people should stand behind their decisions and if there is an error - they should take responsibilities. It is weak to blame a vendor.
The theme seemed to be XMPP and Hosting - which, if you have hung out with me recently,  is rather close to what i like to talk about in real life ;). I think that I will continue this trend into 2009, but hopefully blog about it more.

I did notice that I ended up blogging less this year than almost any year before (2008: 30 entries, 2007: 84 entries, 2006: 154 entries, 2005: 166 entries, 2004: 275 entries, 2003: 290 entries, 2002: 266 entries, 2001: 103 entries, 2000: 27 entries). I have been blogging for about 8 years for a total of about 1395 entries - which means that this 1 year accounts for about ~2% of my blog entries. haha. I am guessing that 2% accounts for about 90% of my blog traffic. I am not a new years resolution type of guy, but I would like to blog more regularly. Hopefully get my percentage up a bit. maybe 100 posts. It isn’t THAT hard. ;)

To offset the lack of blogging, I twittered a lot. In fact, I updated twitter around 3251 times (this number is approximate because of the twitter api and paging). Of the 3251 tweets, 852 were replies. I replied to paulsmith the most with 25 replies. ryankanno was second with 20 replies. I said awesome around 249 times. I talked about sleep 71 times. I mentioned Hiromi 122 times. I said fuck about 46 times. I talked about work 238 times.  My fake new years resolution about twitter is to stop having twitter steal blog entries. I saw that written somewhere and I laughed at how often that happens. I think of a blog and instead just twitter about it. It kills the entry and doesn’t flesh out my thoughts as much. I think the best plan is to integrate and use both mediums to develop a post.

My flickr usage dropped significantly this year. Kind of a bummer because i LOVE taking pictures. Hiromi is currently telling me that we don’t take enough picture together.  It looks like i took only ~800 pictures in 2008. I blame this on the iPhone and how slow its camera is. In previous years i have used shozu and a 360 device. This let me upload picture directly after i took them and most often in the background. I need to take more pictures. I wish i had more insight into my flickr pictures. I need to build out my archive a bit more to keep track of everything like i did with twitter. It is quite handy.

Work was awesome in 2008. We had some large projects that launched a bit rougher than i would have liked, but they turned out awesome. Typetees.com, theselectseries.com, threadlesskids.com and the new threadless.com are all awesome. The team that worked on them are all amazing. I couldn’t ask for a better team of technologists, production people, operations people and warehouse people to help make technology at Threadless be awesome.  I can’t wait to see what is in the pipeline for 2009.

Seriously - 2008 was a great year. I can’t wait to see what 2009 brings. I hope more fun, more blog entires, more tweets and more pictures.

Happy Holidays

It's snowing like crazy.

I have been busy. Threadless just ended its annual holiday sale (went out with a bang). Hiromi and I have been busy getting read for our holiday party with my parents on christmas (today!) and i have been hacking on a bunch of stuff in my spare time. Hiromi made an amazing dinner and we ate it. ;) It was a great time. We missed Dylan and Sarah, but we will hopefully see them soon.

This year has been great thus far and I will attempt to memorialize it in a year end post around the 1st. However, in the meantime I wanted to take a moment and say ”HI” and go ahead and wish everyone a Happy Holidays. I hope everyone discovered their proper amount of conspicuous consumer. I know that we did.

Although, I certainly don’t update my blog quite as often as I would like (or my mom would like) - I do update my twitter status quite often and post a number of pictures to flickr. I am hopefully going to start updating this blog a bit more, but in the meantime you are welcome to check out my interweb activity aggregation page and the associated RSS feed (props to broox who showed me his, which I copied).

Chicago Transit API

The goddamn damon bus. seriously

The genesis for this API is some work I did awhile ago reverse engineering the CTA Bus Tracker mashup. I was able to expose the endpoints that powered their google maps mashup. In its original state - you can get some pretty awesome functionality and data. I am attempting to clean it up and make it more robust.

The native endpoints thus far are:

I have created a proxy for the endpoints that will do some caching and hopefully alleviate any crazy load the CTA servers would have if this API becomes popular.

I also did some work to push the UPOC alerts from the CTA riders community into a usable form. That endpoint is the first of hopefully many that can be used to grab real time information about the CTA. You can access it at:

Dan X O’Neil and myself hacked these alerts into the CTA Tweet bot that sends CTA updates via twitter. Pretty neat.

Moving forward with the API, I want to do a couple key things. The first is to return JSON instead of that terrible XML. The second is to create a couple endpoints that will help with finding the right bus at the right location. I am always looking for help with this stuff - so if you have any ideas - please let me know in the comments.

So far, there are not a whole lot of applications using this API. The only ones I have thus far are:

If you know of any others - let me know. I have a couple projects brewing myself that will hopefully add a shortcode, and a jabber bot for bus notifications and queries. Are there any things yall would like to see? I personally want a really solid native iphone app. It would be awesome to be able to have the iphone pinpoint your location and then tell you what the nearest buses are that are arriving soon. Also - replicating the bus tracker in an easier to use fashion would be excellent.

All of this API work wouldn’t have been possible without the help of Dylan Richard, Dan X O'Neil and Kevin Zolkiewicz. The CTA has also been amazingly cool with all of this - I really like those guys.

Release your applications inner API. Please.

I have recently been involved in talking to a local chicago entity about their unofficial API. It has been fun and deserves a blog entry of its own. However, this is not that blog entry - this blog entry is about mashups and the not so public APIs they often create.

In the past couple years i have constantly been tearing apart webapps. Either because I wearing my developer hat at work or because i am rocking on something at home. I have always been trying to figure out what goes on behind the scenes and wondering if i coudl use that to do something cool.

A couple weeks ago i decided to figure out what powered the CTA Bustracker Google Maps mash up and was able to expose the "hidden" api that powered the mashup. In a conversation I had with Dan x O'Neil about the unofficial API I was able to expose - he asked a question about mashups and APIs. It led me to rant about how there is so much untapped APIs out on the internet currently powering mashups, and other rich internet appliances. These APIs are not documented, are unofficial and will of course change. But think of the data and functionality that could come from all these mashups and startups who are building an API for internal use but could release it and empower their users to build something neat.

If you have built an application recently that has endpoints that is returning JSON for js frontend work, or is integrating with google maps, or is exposing endpoints for fun - PLEASE, please document it a bit, throw an API link on your site and let some enterprising and bored nerds build something on the thing you made. Don’t try to imagine how someone would use your endpoints - but expect to be surprised.

I need to do this with threadless - we built it to be very easy to break down and integrate into other peoples sites (image urls, etc). But, there is a secret API that we should be releasing, documenting and letting people use. Stay tuned.

Hi. My name is Harper. I am an engineer excited about real time, social software and the open source software movement. I am currently spending some time building interesting things and hacking for rackspace. In a previous life, I was the CTO of the awesome Threadless. This is obviously my blog. I write about everything from being a professional yoyoer to hacking the newest Internet appliance. Be sure and check out my homepage at harperreed.org. If you are so interested, my resume is located here. I love getting emails and what not so feel free to contact me through here.

Be sure and take a gander at my photos.

If you want to contact me click here to start a chat.

Archives

Pictures