Ted Roden
→ I made *.enjoysthin.gs and Blasted.app
→ You can find me on twitter and elsewhere.
No Other Distribution Authorized Under this Agreement
Apple’s iPhone Developer Program License Agreement:
7.3 No Other Distribution Authorized Under this Agreement
Except for the distribution of freely available Licensed Applications and the distribution of Applications for use on Registered Devices as set forth in Sections 7.1 and 7.2 above, no other distribution of programs or applications developed using the Apple Software is authorized or permitted hereunder. In the absence of a separate agreement with Apple, You agree not to distribute Your Application to third parties via other distribution methods or to enable or permit others to do so.Diabolical.
Apple’s developer tools license mandates use of their distribution channel.
Because, you know, Cydia is such a threat to Apple’s business model.
Imagine if gcc’s license required your resulting executables run solely on Linux.
Imagine if Google required hosting your web apps on solely App Engine if you used Closure.
I hope section 7.3 comes back to bite Apple during their Department of Justice investigation.

First and foremost, up to this point, Hairball has been written to exist. Not to be fast or feature-rich or serve a specific purpose. It’s just intended to be something amusing that I can build. However, I’ve recently become curious about how it stacks up to other HTTP servers when it comes to performance.
To figure this out, I decided to test it against the very same framework that inspired it, Tornado. Using Apache’s benchmarking tool called ab, which is the very same benchmarking tool used when the Tornado folks compared their server against other implementations, I ran a very simple test.
The test consisted on running a simple hello world script using both frameworks and testing the results. I did 10,000 requests to each server running 25 simultaneous requests over and over and over again until I’d reached 10,000.
Or, on the command line: ab -n 10000 -c 25 http://127.0.0.1/
The results surprised me quite a bit. Using this simple test, which is the same benchmarking tool used by Tornado, Hairball is more than twice as fast as Tornado.
I’ve posted the full results of both the tests. Along with the code for both the Tornado and Hairball scripts.
I’ll try to run two more benchmark tests soon. 1) How does Hairball compare to apache? And 2) How does it compare when serving long-polling connections?
I Quit, or It's Open Source from now on!
I build things because I like to build them, I want to use them, and on some level, probably a bigger level than I’m willing to admit, I want other people to use them.
I started writing software (not all that long ago) because the act of doing it is fun. You code something, see if it works, it does (in a way), you celebrate, and try to fix it. Wash. Rinse. Repeat.
…
But for me, I’m going to stop thinking in terms of products and start releasing projects. I don’t want to be limited by thinking, “is there a market for this idea.” From here on out, success for a project means at least one person is “watching” it on github.
I Quit, or It's Open Source from now on!
Some of the formatting on this post is totally broken on the dashboard. Click through to view it as I intended.
I’ve got a ton of ideas for new things to build and, having more or less just finished a large project, I’ve suddenly got a lot of energy and some time to work on these ideas. Some of them are ideas that have been building up for years and some are just simple notions that I had while writing the book that I couldn’t implement at the time. And of course, I’m interested in updating, fixing and building new things for some of my other projects.
But one thing has become clear to me: from now on, all of my personal projects will be open source.
The thing is, I can no longer remember why it’s beneficial that I keep the source code of my software hidden away. It’s not that I have super fancy algorithms lying around anywhere. The truth is, I’m not that good of a programmer, the stuff I do can be done by anyone with a book called “[Insert Programming Language Here] in 24 Hours.”
The secret to any of the small successes of any of my projects is not because I’ve kept the secrets close to me, it’s not necessarily even because I do it better than anyone else. Although, sometimes I like to think I do some things better and first, but that’s another story.
- If enjoysthin.gs is successful, it’s not because other developers had trouble duplicating it, it’s because it’s a fun site to use. People have watched it grow from a weekend project into a vibrant community, the users are never pretentious, and visiting the site can be anything from inspiring to hilarious. It’s not about the code base.
- Blasted scratches a very specific itch. If you have that itch, and aren’t aware of the application’s superior, albeit uglier, competitors, buying this $5 application is a no brainer.
But saying, “I’m not that good” is essentially giving the reason of “well, why not open source the stuff?” But, there’s more to it than that. It comes down to why I do this stuff in the first place, what types of things I like to do and what types of things I don’t like to do.
I build things because I like to build them, I want to use them, and on some level, probably a bigger level than I’m willing to admit, I want other people to use them.
I started writing software (not all that long ago) because the act of doing it is fun. You code something, see if it works, it does (in a way), you celebrate, and try to fix it. Wash. Rinse. Repeat.

In real life, there’s probably more beer and less washing machine.
Making this decision is as much of a commitment to do something as it is commitment to not do something. Yes, I’m going to move to open source, but I’m quitting rest of it. I’m leaving the whole business of startups and MBAs and branding and “selling to Google” and Facebook integration as a business decision and “entrepreneurs.”
The truth is that I Hate the scene. I’m tired of people who call themselves geeks but spend their time talking about Twitter’s business model instead of how they can suddenly handle all their mind-numbing traffic. I hate that after presenting at the New York Tech Meetup, a VC in the audience came up to me (unsolicited) and told me that I should “try to appear to be a bigger company.” I’m tired of the valley vs. the alley talk.
But love other parts of this industry. I love the sitting alone in the middle of the night, staring at a cursor in Emacs and knowing that I’m almost there. I love writing an application to learn a programming language. I love outdated technologies and stuff that’s way too far ahead of it’s time. I love that we can hack our phones (again). I love that users write to express how much they love something, and ask how best to buy a second license. I love that indie developers are featured prominently in major television ad campaigns. I love the feeling that, as an industry, we’re on to something.
But for me, I’m going to stop thinking in terms of products and start releasing projects. I don’t want to be limited by thinking, “is there a market for this idea.” From here on out, success for a project means at least one person is “watching” it on github.
It’s not that I’m leaving the business side of things, I’m just proclaiming that my focus is on interesting projects. The secret to my success will not be contained in some secret deep within the source code. I like to think I’m more clever than that.
“So you’re writing open source software now, is that right, hippie? Are you going to release enjoysthin.gs and Blasted.app as open source.”
First off, don’t call me a hippie, chief. Secondly, I’m not sure if I’ll release the code to those projects. I actually want to know if anyone has thoughts on the matter: is there any interest in me releasing the source code to either Blasted or Enjoythin.gs?
Is anybody interested in that? Preparing enjoysthin.gs for an open source release could potentially be a lot of work. If there is significant interest, I’d be willing to open source both of the projects.
PS: None of this is set in stone. I may take it all back.
Introducing Hairball
I frequently want to make web posts of a very nerdy variety (yes, nerdier than the stuff I post already). However, I know that most of my tumblr friends are probably not that interested in that type of thing. So I’ve decided to put it off in its own silo at ted-is-a-nerd.tumblr.com. It will auto import some of my other nerdy content from elsewhere and will be a reasonable place to keep up to date with that type of thing. So follow away if you’re into that type of thing.
Here’s my inaugural post announcing the launch of a new thing, Hairball!
After finishing the first draft of my book on the realtime web, I wanted to take a break and build something different. So I spun my wheels for about a week before deciding on a new project.
Then it hit me, “I should write an HTTP server and simple web framework… and I should write it using… wait for it… common lisp.”
It’s Hairball!
It supports long polling connections (suitable for ‘realtime’ web apps), it’s single threaded, scalable (perhaps), and fun to play with. I plan on getting it to a point where it’s suitable for production web development… if you’re the kind of guy who wants to do that in lisp.
For now, visit the official site and grab it from github.

Loading more...


