Recent Realizations

  • Being CEO means making decisions all the time. You don’t always have time to think about them and not making a decision is actually making a decision.
  • The more decisions you can let other people make, the better. The trick is knowing which ones you can afford to delegate.
  • I still have a lot to learn about the business side of things, and not a lot of time to learn them.
  • I miss writing code full-time. I miss the order of write, test, debug, repeat. Management is unpredictable and messy.
  • Comfort Eagle is Cake‘s best album.
  • There’s a fine line between thinking about a problem and wasting time.
  • I wish there were more British-style quiz shows in the US. I’d watch the hell out of a US version of QI, 8 Out of 10 Cats or Mock the Week.
  • The code I’m most proud of from the past 12 months has got to be my OAuth2 server. I looked at it again today after not seeing it in a while, and it’s gorgeous. Most code I’ve written disgusts me if I go back to it 6 months later.
  • Savannah is the perfect town to wreak creative havok in. It’s the right size where one person can make some real change happen if they set themselves to it (or even if they half-ass it like I do), and a great creative community that’s easy to “infect” with good ideas who will either jump in and help or at least cheer you on.

Two Things

Real quick, before my brain falls out of my head.

  • I launched this. It’s still very new and so very not finished, but you can start to get an idea of what it will turn into and how awesome it will be. We’ve got 10x the number of songs that Pandora does, super awesome technology and we’re just getting started. It’s radio, but awesome!
  • I wrote this. It’s about how those of us already living in the future can help those stuck in the present (or in some cases the past). I’m still looking for the right way to say it all, and am looking for help. So, read it and let me know what you think.

There you go. Two things. Enjoy!

Ficly and Creative Commons: The Power of Open

[hang2column width=”250″]The Power of Open book cover[/hang2column]

I’ve been a huge fan of Creative Commons pretty much since they launched. If you don’t already know, Creative Commons provides several ways for you to license your work that expressly allow people to use it in certain ways. It’s sort of copyright** – allowing folks to do things with your work that they might not otherwise be able to do legally without a lot of complicated legal wrangling. For example, there are tons of CC-licensed photos on Flickr. Depending on the license, you can use those photos for non-commercial work as long as you provide attribution, all the way to mashing them up in any way you want with absolutely no restriction. This blog has been CC-licensed since the beginning of Creative Commons. All of my photos on Flickr and presentations are too.

But, this post isn’t about my blog. It’s about Ficly (and ficlets, may it rest in peace). Back in 2006, when we first started working on ficlets, I wanted everything to be CC-licensed. Part of the motivation for that was so we could use share-alike licensed photos from Flickr. The other reason was that the share-alike license perfectly fit the premise of the site: anyone can add sequels or prequels to your stories. It took a lot of convincing to get the AOL lawyers to sign off, but after they did some digging, they realized that they didn’t have to do any work writing an additional Terms & Conditions document for the site, since the Share-Alike Attribution license (for the sticklers, out there, I think ficlets used by-sa 2.0) covered it all.

A few months ago, someone from the Creative Commons reached out and said they were writing a book of case studies of sites that use CC licenses and asked me if they could interview me. And of course, I said yes! Well, I’d totally forgotten about it until I got an e-mail that the book, The Power of Open is out now, and my little interview made the cut! You can download the PDF from the site, buy a copy for yourself, or just check out this screenshot of the page about Ficly.

I’m proud to be a part of it, and proud of the ficlets and Ficly communities for creating and sharing almost 70,000 stories with the world.

Come Work With ME!

We’re hiring! We’ve got a ton of work to do on an awesome new product and I need help!

What am I looking for? Someone who “gets” working in a startup. You’ve got to understand the pressure involved and time required to launch something and the crazy stupid optimism to believe it will succeed (even if it doesn’t). You’ll be smart, creative and willing to do the right thing even if it seems a little daft at the time.

So, here’s what we’re looking for:

And the best part? We’re right in downtown Savannah above Leopold’s Ice Cream and close to everything happening around the heart of Savannah. We’re fun to work with and are working with some amazing technology. If you’re interested, check out the postings and apply (please)!

What’s the Point of Twitter?

I’m twitter user #3,404. I’ve been a daily twitter user since before it had vowels, so I’ve seen it grow from a fun little experiment to a platform with a lot of promise to the behemoth it is today. How I’ve used the service has changed over time, but it seems like more and more, I use it to complain. And from the folks that I follow, they’re doing the same.

Yeah, we use twitter to celebrate victories, share breaking news, and keep in touch – but it feels like the vast majority of tweets from the people I follow are sarcastic land mines – and mine are too. It’s too easy to pop open my twitter client and unleash my righteous indignation at the latest outrage perpetrated by the internet. Sarcasm is easier than productivity, encouragement, enlightenment or even humor. It’s to the point that a great percentage of my vocabulary exists only to express sarcasm.

But, it’s not helpful. It’s not even all that much fun. It’s mostly annoying and makes people more likely to be sarcastic and annoying themselves.

So, I’m going to try to stop. My challenge for myself this week is not to post any sarcastic tweets. None. Zero.

Wish me luck. It’s going to be so hard.

New Digs

This change has been a couple months in the making and this morning in my pre-caffeinated stupor, I decided I was tired of fiddling with it and trying to make things perfect and just flipped the switch – welcome to the new lawver.net! Why change? Well, I’ll tell you…

I’ve been blogging for over ten years now. This blog started out on Blogger, and then moved to Movable Type fairly early on, where we lived happily for almost ten years. Then, Movable Type 5.0 came out and I didn’t feel like re-doing everything on a platform that felt stagnant. So, I decided it was time to move to WordPress and save myself the trouble to maintaining templates that were starting to get creaky and stale. I’m not a designer, and I don’t have a lot of time for side projects anymore, so I wanted something that looked good and that would be easy to maintain. I chose Khoi Vinh’s awesome Basic Maths theme, made a quick child theme to throw my OpenID delegate and Typekit stuff in the header, moved some widgets around, and then flipped the domain name so it points to lawver.net instead of the temporary domain name I set up.

There’s still a lot of data cleanup to do (the content column is a lot narrower than the old one and Jen likes putting up laaaarge photos), but it’s all in the old content and I can go back when I’ve got time later and clean them all up (there were some issues importing the textile posts too).

And since this post lines up nicely with The Ideas of March, I’ll try to post things more often. Our old install of Movable Type was so crusty it was actually painful to blog. I don’t see that being a problem anymore…

Do I Need Pants Today?

Have you ever been plagued by that question? I know I have. So, at Rails Machine’s hackfest last night, I set out to answer the question once and for all. How did I do it? With this: Do I Need Pants Today?.

Yes, it’s ridiculous, but I got to draw underpants and build something completely silly and launch it in about an hour and a half.\
And because I’m a good little geek (and thanks to a couple suggestions from the guys at the hackfest), there’s an API too! It only returns JSON, because that’s how I made it. If you want to build your own app that answers the questions (I really think it calls for an iPhone app), you can call http://doineedpantstoday.com/?format=json and get a little javascript object that will tell you the answer. If you pass wday=[0-6] (0 = Sunday, 6 = Saturday), you can get the answer for any day of the week. AND, if you pass cb=YOURJAVASCRIPTFUNCTIONHERE, you’ll get a neat-o JSONP response!

Yes, it’s overkill. But, it was fun!

Oh, and it should look awesome on your mobile device too, in case you need to know the answer and you’ve already left the house.

Some Huck Hacking

I used to work on a big search product at AOL and still love search, even though that’s not what I do anymore. So, when I saw that IndexTank and Heroku were having a contest to build a cool app with IndexTank’s search-in-a-box, I couldn’t resist. I knew I had to keep it simple since I don’t have a lot of time for hacking outside of work, but I knew I had to do something.

I had two ideas, and went with the simpler one: What would happen if you broke a book down into individual sentences and made it searchable? Would it be useful at all? I decided to try Huckleberry Finn by Mark Twain, since it’s not too long, is public domain, is quotable and full of vernacular that can screw up indexers, and I knew it was available from Project Gutenberg.

I grabbed the text file, cut and pasted each chapter into individual text files and then wrote a Ruby parser to split it up into paragraphs and sentences, which were then written to javascript files. After that was done, I wrapped it in a simple Rails app to display each chapter and paragraph, and then fired all the sentences at IndexTank.

I call the result… Huck Smash, and I think it’s pretty cool.

It was a lot of fun to write an app without a database or ORM, just a bunch of javascript files that Ruby can read and an extremely limited scope. I know it probably won’t win, but it was a lot of fun to write and only took a few hours to put together. Writing the text parser was a lot of fun, and figuring out how to navigate the book and build out the HTML so you can link to an individual sentence was cool.

I’m going to try to spend more time outside of work playing with single-purpose sites and fixing Ficly up. I need to keep things constrained so I don’t bite off more than I can chew or over-commit, but this was so much fun I want to do it again.

I’d love to hear what you think of Huck and any ideas you have for improvements.

Thank You, Open Source!

Thank you
“Thank You” by Darwin Bell

I read Zed Shaw’s blog post on the decline of open source participation last week and it got me thinking about just how much open source software we use at work and how we’re (mostly not) giving back to those communities. So, here’s the first step in me becoming more involved and giving something back, even if it’s just a huge “thank you”. I am trying to be more involved, especially in the MongoDB and MongoMapper communities. I’m probably not going to be contributing code to either, but I’m fairly active on the mailing lists, have reported bugs and am committed to help with the MongoMapper documentation project.

Excuses aside, here’s a list of the big open source things we use on a daily basis and why we love them:

  • Apache – The webserver that holds everything together. It’s used by most of the web, and we use it too.
  • Ruby on Rails – Rails lets us do more faster. We also use a bunch of gems that I’ll list later on.
  • Sinatra – When you don’t need everything that Rails has (a simple API, for example), then Sinatra is perfect.
  • Passenger – Deploying Rails apps used to be a pain. Not anymore! Thank you, Passenger!
  • MySQL – Need an RDBMS? Well, we use this one. And it works pretty darned well.
  • Memcached – We cache everything we can, and memcached helps us do that.
  • MongoDB – We use it because it’s web scale! (if you get that joke, then you’re in the club!) Seriously, we first started using MongoDB just to collect our stats because we’d maxed our poor MySQL instance. Then, I looked deeper and realized it’s perfect for the big top secret thing I’m working on now. Atomic updates and super-fast inserts make it perfect for collecting a lot of data quickly. And it’s now slouch on the query side either. There’s also a great community behind MongoDB. The updates and improvements are frequent and the community is always willing to jump in and help.\
    It’s a nice hybrid between the new school document store databases and a traditional RDBMS.
  • Beanstalkd – A super-fast queue server. It just works, which is why I love it. We queue everything we can. Why? It’s a great way to meter load. If you can only handle 3 jobs running at once, then you only run 3 workers. If you can handle more, you run more. It’s great!
  • And of course, all of our servers are Linux and run hundreds of open source packages that I don’t even worry about.\
    Since our strength lies in Ruby, we try to do everything in Ruby that makes sense. I’m not going to list all the gems we use, but here are a few of my favorites – the ones that make life easier and make programming all day more fun.
  • MongoMapper – Makes working with MongoDB even more fun. I’m on the MongoMapper mailing list, and it’s one of the most supportive and helpful communities I’ve been a part of. It makes using it more fun.
  • memcache-client & beanstalk-clent – they’re how we talk to memcached and beanstalkd
  • hashie – Allows you to very easily create classes built around hashes. Great for wrapping around API’s.
  • typhoeus – My favorite of the many HTTP clients for Ruby.
  • will_paginate – Now I don’t need to do all the horrible gymnastics needs to add “previous” and “next” links to things! THANK YOU!
  • hpricot – My favorite way to parse HTML – with CSS selectors!
  • aws-s3 – A great interface to Amazon S3 (where we store a bunch of stuff)

There you go. That’s pretty much our entire stack. I left out a bunch of gems – most of them we don’t use directly – or that just provide one or two things.

So, thank you to all of the creators and contributors to open source projects out there, especially the ones we use to make our work easier. The web would be a much smaller place if there weren’t dedicated geniuses out there making this stuff, and the world would be a poorer place for it. I promise to be a better member of the community and contribute where I can!