Read my latest article: 8 things I look for in a Ruby on Rails app (posted Thu, 06 Jul 2017 16:59:00 GMT)

Rolling up my Sleeves, continued

Posted by Tue, 27 Nov 2007 17:33:00 GMT

It’s been about a year and a half since I wrote about my wrist pains that would often occur at work, which was being caused by something I bet many of us deal with from time to time… Repetitive Strain Injury. So, I’ve been wearing these gloves when I’m at work on my normal Apple keyboard. I knew that they helped to some degree because on the days that I forgot them, my wrists would begin to hurt after a hour or two of coding/writing emails. Not much fun.

A few months ago, I attempted to start typing with Dvorak, which started off with requiring myself to do it for about three hours each morning to start the day and then switching back. After about a week and a half, I forgot to continue doing it. The Dvorak keyboard sits next to my desk… whispering to me, “play with me”... but I haven’t had time to get back into it.

So, the strain continues from time to time. Over the course of a few months, I began to notice that most of the strain seemed to be in my right wrist and I started to wonder if the mouse movements were a bigger culprit than the keyboard itself. So, I spoke to a guy at Macforce (a cool and local Apple dealer) about the mouse pad that he was using. He said that it really helped him out and so I bought myself one.

It’s a Belkin WaveRest™ Gel Mouse Pad and cost me less than $30 USD. It’s been a few weeks and I’ve noticed that I can go almost the entire day without the gloves that I wore before. So, I think that there is still some strain occurring, but a lot less than before. So, I’m hoping to give Dvorak another shot and hope that combo helps alleviate a lot of pain that I’ve been experiencing at work.

If you’re experiencing wrist pains and it’s focused on the hand that you use your mouse with, you might consider something like this to help out.

I’m sure that I’m not the only one that has/is experienced motion strain at the computer.. so, what has been your experience and have you had any success making improvements to your work space to help?

Moved to our new studio

Posted by Wed, 21 Nov 2007 13:56:00 GMT

One of the reasons why I’ve been too busy to write on my blog lately is that we recently moved into to a new studio. We had a lot of preparation to do before we moved in and are finally getting settled in the new space.

We took the space from…

Planet Argon - Studio BEFORE improvements

To this…

As you can see.. we have lots of natural light for the entire team…

I think that Chris Griffin shares the same excitement that I do about the new space. ;-)

Chris Griffin jumps for joy!

We’ll be posting more photos on the Planet Argon flickr stream over the coming weeks as we get the studio organized. :-)

Skitch... my favorite desktop application of 2007?

Posted by Tue, 20 Nov 2007 18:04:00 GMT

It just occurred to me that my first Skitch was on July 7th, 2007. 7/7/7. I’ve been meaning to post an article about how Skitch has changed the way our team approaches reporting bugs and communicating ideas visually.

First of all, the Skitch web site advertises it (see video) as a fun tool for playing with photos and sharing stuff with friends/family. While this is true, I think their bigger market could be those of us who work in the web design and development community. It took a less than a week for Skitch to become a tool that I rely on the most during my day to day work and since it keeps surprising me that people aren’t using it and/or haven’t heard about it… I thought that I’d share how we’re using it at Planet Argon.

Introducing “LOLBUGZ”

Our team is currently using Lighthouse for managing bugs/tickets for internal and client projects. If there is one way to slow down bug fixing cycle.. .it’s the ticket submission process. It takes a lot of time and commitment to try and communicate some problems that you’ll find in a web application. This is why screenshots can be so useful to helping speed up the process. Skitch allows us to not only provide a screenshot really quickly, but it gives us the ability to focus our attention with shapes and text, which provides more context when viewing an image.

For example, here are a few real-world Skitches that I’ve used to report some problems.

What happened to this drop down?

This pagination needs some CSS-Love!

Oh no! Tags are getting grouped together…

Styling has gone crazy…

I mastered an unordered list! (hooray!!)

This list isn’t scaling anymore…

Side note: LOL BUGZ was a term coined by Rick Olson at Active Reload to describe the tickets that I post for Lighthouse. ;-)

Trying out 15 during the initial releases for the iPhone… bug report sent via twitter to Erik Kastner.

As you can see, using Skitch helps communicate some very specific things without needing to type a huge description. Of course, we do try our best to add more context with our tickets. For example, here is a real-world example of a ticket that I posted on Lighthouse. As you’ll see, there are a few skitches embedded in the tickets, which works much better than attaching screenshots to tickets.

One of the best features of Skitch is it’s work-flow. Within a few seconds, I can do the following tasks.

  • Take a screenshot of a specific region of my screen
  • Add some arrows and text
  • Click on Webpost, which will upload directly to myskitch.com
  • Click on Share to navigate to the new upload
  • Click on the embed textfield and it uses JS to copy the embed html into my paste buffer
  • Paste the html snippet directly into the ticket that I’m reporting
  • Submit my LOL BUG

Side note: it also allows you to upload to Flickr, a ftp account, etc.

Over the past four months, Skitch has become one of my favorite OS X tools. The interface is lightweight and the workflow is almost perfect (feature request: providing the embed code in my paste buffer without needing to go to myskitch would be A+++)

I’ve also used Jing, which works on Windows and OS X and does video. I’ve not found it to be as intuitive for working in this manner. In fact, the work-flow leaves a lot to be desired. However! It does do video and this has come in handy a few times for showing people some “live” interaction-type bugs that can’t be communicated as easily through text/images.

If you’re not using Skitch yet and are on OS X… I highly recommend that you try it out for a few weeks during a bug fixing sprint. We’ve gotten our clients and almost everybody on the team using it in this fashion. The productivity increases haven’t gone unnoticed.

That’s not to say that it’s not fun for point out things that aren’t related to your project bugs. ;-)

Happy Skitching!

UPDATE

Plasq liked the writeup and gave me 50 extra invites to pass out for Skitch. So, if you’re in need of one… ask me via email. Thanks Plasq team!

Zeldman on Web Design

Posted by Tue, 20 Nov 2007 17:01:00 GMT

In a new article on A List Apart, Jeffrey Zeldman writes:

“Some who don’t understand web design nevertheless have the job of creating websites or supervising web designers and developers. Others who don’t understand web design are nevertheless professionally charged with evaluating it on behalf of the rest of us. Those who understand the least make the most noise. They are the ones leading charges, slamming doors, and throwing money—at all the wrong people and things.”

He goes on to describe Web Design as, “as the creation of digital environments that facilitate and encourage human activity; reflect or adapt to individual voices and content; and change gracefully over time while always retaining their identity.”

Read the rest of the article, Understanding Web Design on alistapart.com.

Master/Slave Databases with Ruby on Rails

Posted by Thu, 15 Nov 2007 21:02:00 GMT

Not terribly long ago, I announced Active Delegate, which was a really lightweight plugin that I developed to allow models to talk to multiple databases for specific methods. The plugin worked great for really simple situations, like individual models.. but when it came time to test with associations it fell apart. I haven’t had a chance to work on any updates and knew that it was going to take more work to get it going.

Earlier this week, we helped one of our bigger clients launch their new web site1. For the deployment, we needed to send all writes to a master database and a reads to slaves (initial deployment is talking to almost 10 slaves spread around the globe!). We needed something to get integrated quickly and decided to ditch Active Delegate for the time being and began looking at the following options.

I spoke with Rick Olson2 and he pointed me to a new plugin that he hasn’t really released yet. So, I’m going to do him a favor and announce it for him. Of course… I got his permission first… ;-)

Announcing Masochism!

Masochism3 is a new plugin for Ruby on Rails that allows you to delegate all writes to a master database and reads to a slave database. The configuration process is just a few lines in your environment file and the plugin takes care of the rest.

Installing Masochism

With piston, you can import Masochism with:


  $ cd vendor/plugins
  $ piston import http://ar-code.svn.engineyard.com/plugins/masochism/

You can also install it with the old-fashioned way:


  $ ./script/plugin install -x http://ar-code.svn.engineyard.com/plugins/masochism/

Configuring Masochism

The first thing that you’ll need to do is add another database connection in config/database.yml for master_database. By default, Masochism expects you to have a production database, which will be the read-only/slave database. The master_database will be the connection details for your (you guessed it…) master database.


# config/database.yml  
production:
  database: masochism_slave_database
  adapter: postgresql
  host: slavedb1.hostname.tld
  ...

master_database:
  database: masochism_master_database
  adapter: postgresql
  host: masterdb.hostname.tld
  ...

The idea here is that replication will be handled elsewhere and your application can reap the benefits of talking to the slave database for all of it’s read-only operations and let the master database(s) spend their time writing data.

The next step is to set this up in your environment file. In our scenario, this was config/environments/production.rb.



# Add this to config/environments/production.rb
config.after_initialize do 
  ActiveReload::ConnectionProxy.setup!    
end



Voila, you should be good to go now. As I mentioned, we’ve only been using this for this past week and we’ve had to address a few problems that the initial version of the plugin didn’t address. One of our developers, Andy Delcambre, just posted an article to show how we had a problem with using ActiveRecord observers and masochism, which we’re sending over a patch for now.

As we continue to monitor how this solution works, we’ll report any findings on our blog. In the meantime, I’d be interested in knowing what you’re using to solve this problem. :-)

1 Contiki, a cool travel company we’re working with

2 Rick just moved to Portland… welcome to stump town!

3 The Masochism plugin README