Author: Kevin Lawver

  • 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…

  • My Kids Are Ruining It!

    We signed up for Netflix recently, and I love it. I’m not sure why I held out for so long… Anyways, the boys have fallen in love with it too and are now ruining my recommendations by watching nothing but Mythbusters and Mystery Science Theater 3000 on it. Now, whenever I log in, the “Top Picks” list is all Jamie and Adam or Tom Servo and Crow staring at me. No documentaries or alternative standup. Nope.

    (Max, if you’re reading this, I’m kidding. I just think it’s funny.)

    It reminds me of the Tivo Thinks I Want WHAT?! episode. When Tivo first launched, there was an option to fill up the empty space with stuff it thinks you’ll like based on your recording and viewing preferences. Max was two or three at the time, and into Blue’s Clues big time. We were into The Sopranos, Oz and The Wire. So, what did Tivo think would make us happy? The Price is Right and a bunch of old game shows from the 80’s.

    Collaborative filtering is great and all, but when it goes wrong, it goes really wrong.

  • 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.

  • My Favorite Albums of 2010

    I’ve done a bunch of “best of” music lists over the years, but this was one of the hardest. I gave up on limiting it to ten almost right away and went right to 18. There was a ton of great music this year across a bunch of genres (as you can see by the list). I don’t have time to describe them all now, but you owe it to yourself to check them all out.

    Again this year, there’s an appearance by some spectacular mashup work. Girl Talk gets all the press, but The Kleptones released the best album of the year with their double album. Uptime/Downtime is amazing, and while Uptime will keep you dancing, Downtime is the more impressive to me. It sounds like a complete album and you don’t feel like you’re listening to mashups. They’re just great songs. With most mashups, you’re totally aware that you’re listening to a bunch of stuff that wasn’t meant to go together. In the best ones, they’re all made to work and sometimes build an even better song out of the component parts. In the Kleptones’ case, even way back to A Night at the Hip-Hopera, they build great songs out of the pieces they find lying around to the point where you forget that these songs even existed in another form.

    1. Uptime/Downtime by The Kleptones
    2. Heligoland by Massive Attack
    3. Broken Bells by Broken Bells
    4. The Lady Killer by Cee Lo
    5. New Inheritors by Wintersleep
    6. Permalight by Rogue Wave
    7. Sigh No More by Mumford & Sons
    8. The Suburbs by Arcade Fire
    9. Together by New Pornographers
    10. Fields by Junip
    11. This is Good by Hannah Georgas
    12. We Kill Computers by The Pack A.D.
    13. Wake Up! by John Legend and The Roots
    14. Mt. Chimera by Brasstronaut (not available on Amazon, you have to get it from Zunior, but trust me, it’s worth it!)
    15. Of the Color of Blue Sky by Ok Go
    16. All Day by Girl Talk
    17. The Five Ghosts by Stars
    18. Latin by Holy F\^ck

    And I can’t leave without an honorable mention for new discovery: Lungs by Florence + The Machine – I think I’ve listened to this album more in the past few months than almost anything else in the top 20.

  • 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!

  • Inspired by Sharktopus

    I didn’t watch it, but Syfy had a movie called Sharktopus on last week. I’m sitting here on the couch with Brian, and we’ve decided that this mutant animal thing needs to be encouraged. So, here are our recommendations for Syfy’s next round of mutant animal movies:

    • Donkeymander
    • Chihuchilla
    • Tigersloth
    • Turtlehorse
    • Cobronkey
    • Squidant
    • Ladybug Man vs. Butterfly fish
    • Pigow vs Lizicken (Brian really like the VS)
    • Beelephant – with a stinger the size of a car!
    • Hippotoo (needs a sturdy perch – Jen came up with that one)
    • Hippoguin vs. Rhinogator
    • Catalope vs. Hamsterlion
    • Monkodile
    • Sharkiraffe
    • Mothemone (as long as you keep your sweaters out of its tentacles, you’re fine)
    • Cuddlebudgie (that would be a cuddlefish+hedgehog)

    Now all we need are some concept art and scripts!

  • I Got a C!

    Our CEO came in today and wanted to see me in his office. Now, this doesn’t happen all that often, so I was a little surprised. But, it was good news! Since I’ve been at Music Intelligence Solutions, I’ve been referred to as everything from “Lead Engineer”, to “Lead Technical Architect” to, in rare cases, “CTO”, depending on who I or David (the CEO) was talking to.

    Thankfully, all of that title confusion is over, as I’m now officially the CTO of the company!\
    I never thought I’d be CTO of anything. The thought never entered my mind until a few years ago when AOL’s CTO left and I e-mailed the COO and asked if he would be replaced. I thought to myself, “Hey, I could be CTO. Wait a minute, I really could be CTO.” And that’s where it started. I had a new goal – be good enough at what I do to some day be CTO of the company. At the time, the goal was to be CTO of AOL, but I’m now glad that didn’t happen. I’m the CTO of the right company at the right time, and it feels pretty damned good.

    My job isn’t going to change at all. I’m still lots of other things at the moment – sysadmin, developer, manager, project manager, product manager in a couple cases, etc. But, it’s still a big step to be the CTO of any company, especially one with the potential we have at MIS.

    Enough celebrating – I have to get back to work!

  • Murray Wilson Is Awesome

    My pal Murray Wilson does great things – he and AWOL take kids the system doesn’t want and teaches them to take apart, clean and refurbish computers the system doesn’t want – computers that would otherwise go to the landfill.

    They then put linux on them and put them out into the community with families that need them. He’s one my absolute favorite people in Savannah (nay, the world) and I’m proud to know him.

    The computers will, of course, end up in the landfill eventually, but the “Goon Squad” gives them easily another 2-5 years of life, and the kids learn useful and marketable skills. It’s a win-win, and an amazing program and Murray and AWOL built from the ground up.

    If you can spare it, AWOL can always use some help. Every little bit helps, and every kid they help is one that’s not in the juvenile justice system or out on the street by themselves.

    Murray is awesome in the best sense of the word.