According to AppleInsider, Google reports that they had been getting 50 times more search requests coming from Apple iPhones than any other mobile handset. This was so surprising that they originally suspected it had made an error in reading their own data, but it turned out to be true. It’s quite possible that in a few years, searches made from mobile devices will outnumber searches made from desktops.
The devx article 8 Simple Rules for Designing Threaded Applications has some good advice:
- Be sure you identify truly independent computations.
- Implement concurrency at highest level possible.
- Plan early for scalability to take advantage of increasing numbers of cores.
- Make use of thread-safe libraries wherever possible.
- Use the right threading model.
- Never assume a particular order of execution.
- Use thread-local storage whenever possible; associate locks to specific data, if needed.
- Don’t be afraid to change the algorithm for a better chance of concurrency.
In spite of yesterday’s all-day snowstorm and sub-freezing temperatures (-10 C / 14 F), about a couple of dozen people still showed up for last night’s Ruby/Rails Project Night, TSOT’s monthly session where developers from Toronto and surrounding areas get together to see in-depth presentations on projects done using Ruby and Rails.
As per tradition (well, as much tradition as you can get with this being only the second Project Night), I presented the opening monologue, titled Do the Stupidest Thing That Could Possibly Work. The basic premise: if a stupid idea works for you, it isn’t stupid. It’s something I’d been meaning to do — a live version of this article from last June.
The first presenter was Rowan Hick, with his presentation How to Avoid Hanging Yourself in Rails, a guide to getting the most out of ActiveRecord. He billed it as something intended for developers new to Rails or intermediate developers who’ve been frustrated by Rails’ database performance.
A good chunk of his presentation focused on ways of speeding up getting results from ActiveRecord, which can summarized in a chart like this:
Method | Requests per second | Speed index | Notes |
---|---|---|---|
find(:all) |
5.26 | 1x (baseline) | Straight out of every Rails tutorial every written. |
find(:all, :include) |
7.70 | 1.4x | A little better… |
find(:all, :select, :include) |
15.15 | 2.88x | Nearly 3 times the speed for only a little work. |
find_by_sql |
28.90 | 5.49x | Considerably faster, but no longer database-independent and harder to maintain. Still, I can see optimizations like this in my future… |
Merb | 38.56 | 7x | Next to Rails, Merb is blazingly fast, and Rowan says you can use code nearly identical to Rails. I’ll have to give it a peek sometime… |
Rowan is kindly sharing the slides from his presentation — you can get it from this entry in his blog.
Next came Mike Bowler, who presented Easy Branding Tools, his one-stop online shop for ordering all sorts of things related to your brand — from business cards and stationery to domain names — powered mostly by Rails. Notable points in his presentation included:
- “PassiveRecord”, which was his way of creating subclasses of ActiveRecord for objects that weren’t connected to the database but still had ActiveRecord goodies like validation.
- Some custom validations
- Thoughts on running tasks in the background: he used
script/runner
for this project, but for future apps, he’s more likely to usebackgroundrb
.
The final presentation was Luke Galea’s who presented CRMS: Clinical Research Management System, an enterprise-class Rails app that manages drug and treatment experimental trials carried out at various hospitals across the United States.he covered all sorts of aspects of building such an app, which included using databases not typically used with Rails (the hospitals tend to use SQL Server), offloading some work to apps implemented in other languages (some hairy calculations are handed off to an engine written in Prolog), and building a “vanilla” app with features needed by all the research hospitals, and “spicing” them individually as needed by each client.
We kept things moving quickly so that people could brave the snow and go home, so the event wrapped up at 8:00 p.m.. More than a few decided to join us at the TSOT development team’s semi-official watering hole, Hemingway’s, to hoist some pints and socialize.
I’d like to thanks the presenters for the work they put into their presentations and the attendees for braving the snow and coming out! I’d also like to say thanks to my co-worker and TSOT’s VP of Public Relations, Corina Newby, for doing the heavy lifting in getting the event together.
If you’ve got a Ruby or Rails project that you’d like to show off in front of your peers in a 20- to 30-minute presentation (where you can get as in-depth and tech-y as you like), we’d like you to present! Email either Corina or me for details.
Keep an eye open for announcement of the next Ruby/Rails Project Night!
New tracks for Rock Band available for download via XBox Live have been announced: Complete Control by The Clash, Truth Hits Everybody by The Police and Teenage Lobotomy by The Ramones. They’re available for 160 Microsoft Points each for 440 Microsoft Points for the set of three.
Big Box Linux
My friend Paul has opened an online store aimed at making life easier for Canadian Linux users: Big Box Linux is a place where you can buy computer parts and peripherals that are known to work with Linux. The site has a feature that lets you select parts based on which distro they’re known to work with. Big Box Linux ships anywhere in Canada.
Linuxcaffe
BlogTO, one of the local city blogs here in Toronto (“T.O.” is local shorthand for “Toronto, Ontario”) has posted an article about Linuxcaffe, a local spot that combines coffee, community and open source code. In addition to coffee, pastries, sandwiches and all the other stuff you’d expect to find at a local indie cafe, Linuxcaffe also boasts free Wifi, laptops for rent, space for community gatherings from techie user groups and workshops to art openings and live music.
In the article, BlogTO interviews Linuxcaffe’s owner David J. Patrick. Here are a couple of questions from the interview:
What’s different about the linuxcaffe than other cafes in Toronto?
Everything! Because I’m a filmmaker, with broad theatre experience, but almost no restaurant background, linuxcaffe has no preconceptions. The joy of open source has affected every aspect of the operation, using nothing but free software and enjoying real contributions from the community. Our trade secret is that we have no trade secrets.Who is your typical customer?
We are lucky enough to be frequented by several distinct communities; the locals and dog-walkers, who pick up a dark organic coffee on the way; neighbourhood folk who seek out home made healthy food (we offer nutritious vegan and gluten-free alternatives); we attract all sorts of students and creative types with the free WiFi; and many of our open source interested customers will come from surprising distances to learn more and hang with like-minded enthusiasts.In what way does the cafe interact with various tech communities in the city?
I’m a board member of the Toronto Linux Users group and linuxcaffe is host to several open source programming user groups. We are a magnet for Linux newbies and those looking for tech support, and we share all of the code we develop in-house.
For more about Linuxcaffe, read the rest of the BlogTO article or visit their website. They’re located at 326 Harbord Street (at the corner of Grace and Harbord, directly south of Christie subway station). Their hours are:
- Monday – Friday: 7ish to 11ish
- Saturday: 10ish to 11ish
- Sunday: 10ish to 5 p.m.
RubyFringe: July 18-20
There’ve been hints about it all over the ‘net for the past couple of weeks, but it’s finally out: the RubyFringe conference is taking place in Toronto on July 18th through 20th. Its organizers — local Ruby/Rails heroes Unspace — describe it as “an avant-garde conference for developers that are excited about emerging technologies outside of the Ruby on Rails monoculture”. If the “sold-out and over-sold labradoodle shows that are now staged with alarming frequency” are Kenny G, RubyFringe aims to be the Sex Pistols.
“We believe that the most important function of a geek conference is to encourage networking between smart people doing awesome stuff,” the site says. “We have plans to keep everyone engaged for the entire duration of the event, with several meals as well as after-hours socializing covered.”
The event boasts:
- Just one track
- A limit of 150 attendees
- No technical sponsors
If there’s a group capable of making this gathering — calling it a conference would be contrary to its spirit — it’s Unspace, who are the folks behind Toronto’s original regular gathering of Rails developers, Rails Pub Nite.
Also adding to the event is the speaker list, which already has an interesting assortment of people. Hampton Catlin wrote in his blog that when coming up with the idea for the conference, they had a list of 10 dream speakers and they’ve secured all ten, and from the list below, they’ve got even more:
- Ezra Zygmuntowicz (Merb)
- Zed Shaw (Mongrel/Utu)
- Evan Phoenix (Rubinius)
- Obie Fernandez (Hashrocket)
- Damien Katz (CouchDB)
- John Lam (IronRuby)
- Yehuda Katz (Merb/JQuery)
- Tobias Lütke (Jaded Pixel)
- Chris Wanstrath (ErrTheBlog)
- Jay Phillips (Adhearsion)
- Leila Boujnane (Idée)
- Matt Todd (Halcyon)
- Luke Francl (Slantwise)
- Blake Mizerany (Sinatra)
- Geoffrey Grosenbach (Topfunky)
- Hampton Catlin (Haml/Unspace)
The conference will take place at the Metropolitan Hotel in downtown Toronto, just a hop, skip and a jump away from some of Toronto’s more interesting neighbourhoods, including Chinatown, Queen Street West, Kensington Market and College West. The early-bird registration rate is $650, and you’ll be able to register starting February 18th.
If you’re looking for a change from the usual big conference fare, this might be the event for you, and Toronto — a great city with all sorts of things to do — is a great place to have it.