Rails Refactoring and Deprecation

I’ve been using Ruby on Rails exclusively for over a year now, but have used other web frameworks for longer periods of time (classic ASP, ASP.NET, and J2EE). Rails is unique in many ways, and if look hard enough online, you’ll find its qualities spelled-out for you.

Deprecation is one quality that isn’t spoken of much, but it’s one of my favorites. The Rails core team is adamant about doing things the best way possible. When it sees a better way of doing things, it immediately starts removing parts of the API that don’t meet that standard of perfection. Developers offload deprecated functionality into plug-ins that give teams time to migrate aging code, but the deprecated code doesn’t stay in the main code base for long.

The other frameworks I’ve used have kept deprecated API calls in for extremely long periods of time. Some I don’t think will ever disappear. These other APIs allow developers to continue using inefficient, poorly-designed, and overall bad code however long they want.

Rails isn’t simply doing things the best way possible, it trains its developers to do the same. I like that.

A Real-Time User Experience Update in Google Calendar

I just witnessed a beautiful example of web application architecture. After periodically making adjustments to my schedule in Google Calendar the past several hours, I witnessed the user interface change, in real-time, without even refreshing my browser.

For as long as I can remember, any time I would click and drag on my calendar to create a new appointment, a block of time would be selected in gray until I released my mouse button. The time would then be reserved with a solid blue block and I would fill in details about the appointment I just made. Just last week I was thinking, “it would sure be nice if they did a better job indicating the time frame you’re actually blocking off so I don’t have to eyeball it.”

Well, while making one final appointment on my calendar tonight, I noticed that the typical gray selection of time had been replaced with a transparent blue block with the time-frame in it. The time frame and size of the box still adjusted as I moved my cursor down my schedule. When I released the mouse button, things worked as they always have. If this new user experience wasn’t enough to be impressed by, I realized I hadn’t refreshed my browser at all. The new feature just appeared:

And that is one of the wonderful benefits of running an application on the web. Although I’m not sure exactly how they do it, Google has engineered Google Calendar so that they can roll-out changes to the user interface in real-time to users. Real-time connection to Google’s servers through Ajax is all that’s needed–no bulky Microsoft-Office-like update to download and install, not even a browser refresh.

Very impressive.

Facebook Notifications Can Be Annoying

Facebook is great, but getting a gazillion Facebook email notifications can be annoying. It should have the option of a daily summary email that consists of all notifications for the day. The user interface would be the same but would also have a little daily summary checkbox option on the notifications settings page for those who want only one Facebook email per day.

I’m blocking Facebook notifications until it’s implemented.

You can join the cause by joining my “Facebook Needs a Daily Summary Email Notification Option” Facebook group.

Update: Today I got my weekly LinkedIn Network Updates email. Somebody’s doing it right.

Bit Literacy by Mark Hurst

A few years ago my dad, Bo Lotinsky, got me hooked on David Allen’s Getting Things Done. I’ve enjoyed a lot of conversations over the years with him about implementing GTD and even got to go with him to one of David’s seminars in Washington, DC. It was one of those memorable father-son bonding times.

I’ve been following Mark Hurst’s blog for awhile now and bought my dad his popular book Bit Literacy. (People send my dad way too many emails.) After weeks of listening to my dad rave about it, I finally got a chance to scan and read it myself. Everyone must read this book. Although a lot of the ideas and techniques can be picked up elsewhere, there are a few that will have a huge impact on how I handle the bits in my life:

Chapter 4: Managing Incoming E-mail and Chapter 5: Managing Todos

  • We have a natural inclination to spend time managing todos rather than actually accomplishing them.
  • Get your inbox count to 0 (yes, zero) email messages per day. (Also known as Inbox Zero.)
  • Todos must be tracked in an external program or service. (I personally like Backpack.)
  • Track follow-ups to emails sent to others externally. (This is why Mark built Gootodo.)

Chapter 6: The Media Diet

  • Regularly prune RSS feeds.
  • If it’s not helpful for what you do in life or provide a high level of satisfaction or enjoyment, don’t read, subscribe, or pay attention to it. Distance yourself from it.

Chapter 12: Other Essentials

  • Learn to use the Dvorak keyboard layout instead of QWERTY. You don’t need new hardwar–all major OSes supposedly have it baked-in.
  • Utilize a bit lever to save time typing common phrases and sentences. Bit levers are much like Microsoft Word’s AutoComplete, but work anywhere you can enter text.

The book is filled with lots of bit management goodness, so check it out.