Wednesday, May 28, 2008
I'll be leading two Birds of a Feather sessions at
RailsConf 2008 that I hope everyone will attend (or flock to):
I was also invited to sign copies of the book
Advanced Rails Recipes (to which I contributed a couple of recipes) at
Powell's books in Portland on May 30th at 12:30 pm. Hope to see you there!
I'll be there with the full
OtherInbox contingent, so if you're looking for an awesome startup to join, come and track us down.
Labels: rails
Sunday, May 25, 2008
random_data is a testing and seed data gem I wrote a few years back to help get Ruby projects up and running with semi-realistic fake data (the
faker gem provides similar functionality).
I just released version 1.3.0 which includes a bunch of RDoc enhancements as well as some new features contributed by the tireless (and patient!) Hugh Sasse:
- Added RandomData::Grammar, which lets you create simple random sentences from a grammar supplied as a hash, like so:
Random::grammatical_construct({:story => [:man, " bites ", :dog], :man => { :bob => "Bob"}, :dog => {:a =>"Rex", :b =>"Rover"}}, :story)
==> "Bob bites Rex"
- Added Random.bit and Random.bits
- Added Random.uk_post_code
- Bug fix: zipcodes should strings, not integers
Thanks Hugh! Open source is awesome!
Labels: random_data, ruby
Wednesday, May 21, 2008
I spent some time today optimizing
OtherInbox. As our private beta expands, we are starting to see heavier usage, and so it's time to revisit some of my beloved SQL queries.
I use the
MySQL slow query log to find out which queries were taking the most time -- that's been a wonderful tool that I plan to blog about later. I will note that the output is much easier to make sense of if you parse it first with
this script. (It's really old, so I had to modify it to look at Query_time instead of Time)
Using the
EXPLAIN command for each of the slow queries identified in the above log, I found one that was especially disturbing. According to EXPLAIN's "extra" column, MySQL was resolving these queries with two fairly expensive operations:
Using where; Using temporary; Using filesort
Fixing the "Using temporary" required some nimble manipulation of indices, but filesort was really perplexing me. I wasn't using an ORDER BY clause, so as I read
the docs, there was no reason to be doing a filesort. But then I remembered that MySQL automatically does ordering based on GROUP BY clauses. All I had to do was add "ORDER BY null" to the end of my query, and that did the trick:
Using where; Using temporary
If only all optimizations were so simple.
Labels: databases, mysql, optimization, otherinbox
Wednesday, May 14, 2008
We have a formal application process for this year's Baltimore Improv Festival taking place in August. Submissions are due May 23rd. We'd like to get as diverse a pool of performers from all over the country as we can.
On a related note,
BIG has been accepted into
Artscape to perform on the Saturday night show (7/19) along with the Mimehunters. See you there!
Labels: festival, improv
Monday, May 12, 2008
SocialDevCampEast on Saturday was a blast. Lots of talk about building up the "Amtrak corridor" running from DC to Boston as one unified, tech-ified region. The talks people gave were interesting (I even got to do one on my experiences with Amazon Web Services), but for me the most valuable experiences took place in between sessions and at the after-party held at Brewer's Art.
I met several cool DC, MD, and VA entrepreneurs which was really invigorating. I found out about some new blogs that I need to be reading, including
eastcoastblogging.com, written by the creator of the newly-launched
MyDropBin.com.
I also saw first-hand the value of Twitter, which I'm very late to the party on. I don't know that many people in my own circle who were using it, but after seeing how it was fostering the collaboration among people in the conference environment, I'm sold, especially if you have something client-side that checks tweets for you (my friend Brian Lyles aka
Smarticus recommended
Twitterific, which works great). So you can now catch me
@subelsky.
Thanks to the sponsors and organizers for a great event; I'll be at the next one for sure.
Labels: social media, startups
I contributed two recipes to the newly-released Advanced Rails Recipes which I highly recommend. It's got 84 very eye-opening solutions to problems faced by a lot of Rails programmers.
I feel lucky to be working with cool, open technology that's yielded an opportunity to be part of a project like this.
Labels: rails
Thursday, May 1, 2008
For the past seven months I've been building a cool new consumer web app with some folks in Austin, TX,
otherinbox.com/, and we're looking for experienced Ruby On Rails developers. We're a small agile team led by Steven Smith, founder of
FiveRuns.
The whole site is Rails-based and makes extensive use of Amazon Web Services (EC2, S3, and SQS) and there's a new awesome challenge every day. More info on our
jobs page.
Labels: otherinbox, rails