If there’s one piece of advice I could give ..

So I’ve been thinking about things, thinking about the state of web development. What could I write about to could help out some new recruits and budding developers. (Note this is a long one, so get some coffee, sit back, read, and I’d love to see your thoughts and opinions at the end …). In a nutshell:

I have a rather entrepreneurial friend back in New Zealand, he consulted at a Software company I worked for once. Over time we became good friends.. One day him and his business partner came up with a widget. And sold a few, and then needed to sell some more. Then one day he gave me a call. You can imagine as a web developer the conversation “Yeah some some company wants [insert horrendous figure here] to build us an e-commerce site” pffwaaaattt (coffee all over desk)…

And so began a new relationship. Realising the scope of work was BIG, I actually called up one of my dev mates. “Oi, I’ve got some work for us, keen?” Gave him the specifics. We agreed to do it 50/50 (side note, later on I ended up taking it on 100%). We struck a deal. I drew up a contract and we got underway.

Where did you last click ?

Please, when designing UI’s make the most important things on a page so you don’t have to scroll for them. Not everyone has giant screens, and even for those of us who are lucky enough to be rocking the world at giant resolutions, we may not like to have the browser maxed out to the full screen resolution.

Think of the actions on the page and group everything so you don’t have to max out your browser window to reach the most used elements on the page. For example, I’m typing this post in wordpress, and arguably the most important things are giving it a title, content, then saving it right ? Nice and easy your eye follows a visual flow, and you didn’t have to go for the scroll bar.

Blue - common eye track/data entry path
Red - mouse movements

Now lets refine the thinking a little more. Same deal with gmail, open it up, compose a message. Notice there’s two send buttons, one at the top of the page not more than 100-200px away from the compose email link ? So where you last clicked was likely exceedingly close to where you need to click next. OR if you happen to be writing a novel and have scrolled to the bottom, you don’t have to scroll back up to the top, as there’s a send button there also.

Now, try posting a message in Basecamp without scrolling - and without cheating by having lots of vertical pixels. If you’re running a giant screen size drop your browser down size to what mere mortals use, notice the distance from where you clicked on messages, to the send button ? (Particularly if you’ve got a couple of companies of contacts to click through!)

Do more than a couple of messages a day and question to yourself, why is arguably the least important things in a message (milestone, attachment) taking up valuable real estate forcing me to scroll.

No one likes a bitchfest, so being a little constructive - why not use that blank space on the right of the message pane to pick your people and send. Even better, have the people field as a text entry area with auto complete items to cut down on clicks. Keep all the important functions clustered above the fold and cut down on the scroll and click!

Orb Audio and advice sought

One of the many plus factors about working from home is you can have the sweetest sounds throughout the day. Without the accompanied hearing loss of listening to Senns or Grados all day in an office.

Some Tannoy active monitors (Reveal 5a’s) graced my desk for the past year or so. Up until a crackle emanated from one of the tweeters on Friday, followed shortly with that ‘I just got a little poorer’ sensation as the sound stage disappeared from the left hand side as the tweeter blinked out.

The associated cost of fixing it may not be worth the effort. Grieving period now over - they are wonderfully detailed, perhaps a little too ‘clinical’ though which is by design but I have certainly had countless hours of fantastic music. After a little digging I figure some one else probably has had one die in a similar manner - so assuming I can get enough for them on Ebay I’m going to try something different.


(photo credit)

Rather than risk a mission to Bay Bloor Radio and the accompanying questions I turned to Google and found these puppies from OrbAudio. Handmade in the States vs shipped out from China. They look pretty damned cool, and unlike most cool looking, handmade products are reasonably priced and seem to get rave reviews. So. The next question, planning what the heck I could drive them with - the Tannoys had integrated amps on each speaker, so now I need to find an amp. I like the notion of trying out a valve amp but can safely say I have no idea what I’m looking for !

Does anyone have any recommendations for good, cheap, stereo valve amp that would suit. I don’t need to have hearing loss, despite my Tannoy’s abilities to wake up the neighbours, I’d really prefer a rich warm soundstage at low volumes than trying to crank Tool out until I’m deaf :)

Anyone with 2cents to share ?

Textmate favourite features

Sometimes you just forget the stuff you take for granted, but often you hear of people new to apps and not realising what’s there. Here’s a couple of the features of Textmate that are probably my most used…

CMD + T - Go to file, pretty hot. List of files is shown in a dialog that it is in order of last edited/open file, with the last file you worked on as being selected. So I have a big habit of spending my life CMD+T then Enter all day along. Also by typing will filter down the list of files pretty damned fast.
CMD + SHIFT + T - Go to symbol. Hotter still. This allows you to easily navigate through a file with ease. If you single click on a method name, it jumps to that method without closing the dialog box, double clicking closes the dialog. Particularly handy working on a large class/module this tends to stay open all day jumping back and forth between methods.
CTRL + SHIFT + A - Hottest, subversion integration. Diffing from the commit dialog is a godsend.

What’s YOUR favourite feature of Textmate ?

See Ruby/Rails does scale

Updated LinkedIn Blog Post

If yellowpages.com or a whole bunch of other sites or the Friends for Sale facebook app wasn’t enough to convince you, that yes, you are on the right track with Rails (no pun intended).

Another solid Rails app has been mentioned in mainstream media http://blogs.zdnet.com/enterprisealley/?p=188 blogs about a Facebook app done by the LinkedIn Light Engineering Development team. Cranking out mac daddy throughput rate - 1 billion page views / month.

Enough said.

Go read the article and watch the (excellent) video.

Then get back to the business of building hot Rails apps.

Toronto Rails Night - Merb Presentation

Last night was yet another successful Toronto Ruby on Rails Nite put on by Corina Newby. The Toronto ruby community is rocking, evidenced by the large turnouts and fresh faces we see everytime. I’d guess 40-50 of Toronto’s best and brightest Rails developers filled out the room. The unspace guys put on some much appreciated beer and made sure we’re all informed about the upcoming RubyFringe (can’t wait, I’m really hoping Zed’s presentation is as exciting as his blog rants posts).

Along with the other presenters of the night Mike and Libin/Wes/Carsten (up on TorontoRB.ca sometime in the next day or so).

I did a presentation on Merb - The pocket rocket framework. Slides are are here (you may have to click through to the blog post to view if you’re reading this in a reader/aggregator). Resource links are at the end of this post, and some discussion notes follow..

Presentation background
Intended for people who are interested in looking at Merb, collating key points from blog posts, irc dicussions, mailing lists, and own experiences getting an app running with Merb (well the opposite way round, trying to get an app running and finding out those answers!). Hopefully the presentation collected a fair few hours worth of investigation into 20 or so minutes to help other people out

Sports Bikes vs Sports Cars
Useful analogy between Sports Bikes (Merb) and Sports Cars (Rails). Said cars have all the bells and whistles, everything is packaged up nicely, and it’s pretty hard to hurt yourself, however given the nice packaging it’s pretty hard to modify things. Sports bikes (Merb) on the other hand, are much more open to tuning, playing with, go faster, but need a bit more care

Same same but different
Rails and Merb apps are very much of the same likeness, but there are differences. Don’t expect to be able to port code over 1:1 (especially if you’ve got a big reliance on plugins), and don’t pepper the merb mailing lists/irc channel for “please make xyx behave like it is in rails

merb-core & merb-more
Two gems you need to get started (technically you only need merb-core). -Core is the stripped down bare minimum to get merb running. -more contains all the nice packaged goods to help you along the way

TorontoRB.ca

A while ago I was looking at all of the events going on in Toronto, mailing lists, *camps wondering how the heck does anyone get to know what’s going on?. Particularly those who are new to the scene ? After talking to a couple of people and realising the need for one central place to collect it all, I put together this blog. With my partners in crime, Corina and Pete, TorontoRB.ca will be kept up to date with when things are happening, goings on in the scene, opportunities to help out. Our vision is to keep you, our faithful Rubyist’s up to the play on what’s going on in our fair city.

Add the feed to your readers, sit back, and soak up the centralised goodness. http://torontorb.ca

If you’re in Toronto, know of something I’ve missed. Have a blog, project, or anything that you think deserves a mention on there, send it into mail@torontorb.ca and it will get attended to in short order.

Minor gotcha and shout out to Passenger crew

Okay so yesterday I found a behavior problem with passenger (1.04) in that

request.env['PATH_INFO']

was nil, whereas under Mongrel it was being set as we were expecting to the current path. Within less than I guess 2 hours of reporting it on #passenger, code was put in place and committed to github.

Now how’s that for amazing work ? You’ve got to hand it to the boys over at the Passenger team. I sat back in my chair at that point and thought about the days before dealing with open source. I recall a dev team I was working with found a bug in number handling with .NET, what could they do ? For all the money paid in licensing fees etc ? Nothing. Just code around it.

Days like yesterday I really enjoy the open source community, it certainly has some major advantages. I still have a lot of testing to do before I’d happily switch a production app over to Passenger, but looking forward to the promise of better deployment that’s for sure!

Toronto Ruby / Rails madness

If you’re in Toronto and been living under a rock you probably haven’t realised that every month, there are a number of events specifically for Ruby/Rails developers.

There’s the ever popular and well attended Rails Pub Nite - great for networking and an excuse to have a pint or two. If this sounds like your thing join the other 40 odd that head out on the third Monday of the month at the Rhino. Pete Forde @ Unspace is the man on the scene for that one, kudos for keeping that for over a 2 years now (I think, don’t quote me!!).

The newish kid on the block the Rails Project Nite. Project nite consists of 3 presentations every time showcasing projects or rails specific learnings, usually showing nitty gritty code on some fantastic projects so quite enjoyable for us nerds! There’s been some great presentations, so make sure if you’ve got any interest get down there, again solid numbers show up. Corina Newby has been putting this together, major props there for getting the new event up and running. If you have an interesting project that you would like to present, just contact her and volunteer your name, and breif summary. Make sure you RSVP on the Project nite, if not you could miss out

Finally there’s the Toronto Ruby users group, meeting on second sunday of every month at the Linux cafe - I will fess up that I haven’t been to this one, weekends being usually DIY disaster time it’s harder for me to make that one :) So if you can’t find something in between those 3 that spark an interest in Ruby related development learnings, well then… there’s no hope for you

More details on the Ruby Users Group, Sunday May 11th - http://www.trug.ca/
More details this months Project Nite, Tuesday May 13th- http://correlations.wordpress.com/2008/05/04/tuesday-may-13th-ruby-on-rails-project-night/
More details on the Rails Pub Nite, Monday May 19th - http://www.unspace.ca/innovation/pubnite/

Finally, what mention of the Toronto Ruby/Rails scene wouldn’t be complete without a Rubyfringe plug, haven’t got tickets, get that sorted out ! - http://rubyfringe.com

See ya at one of the above !

[Post script] Not entirely Ruby/Rails related I would be shot if I didn’t also mention the Toronto Software Developers Lunch or the Ajax Pub Nite.

CentOS 5 + Passenger

Tip of the day: For anyone out there with CentOS 5, despite what Passenger thinks, your http-devel libraries likely are installed.

I was getting an error “you need to yum install http-devel” , which I had, but still getting the error.

If like me, the export APXS2 as per passenger docs doesn’t work, just add “/usr/local/apache/bin/” into your profile path and passenger will then work fine (I just checked by ensuring axps ran at the command prompt before running the passenger module install)

In theory then you should be good to go…

Continue Previous page Next page

About

Rowan is a Director of Technology for a large marketing services company, specialising in architecting, developing and putting web applications into production - in particular Ruby on Rails based apps. He lives in Toronto, Canada but speaks in a funny accent as he's originally from New Zealand. He's been working in the software and web business for over a decade. This blog covers Web Application development and deployment in the real world, dealing with topics from business fundamentals to Ruby on Rails, Merb, PHP, Flex, MySQL, Apache and more.

Read more ...

 

 

View Rowan Hick's profile on LinkedIn

 

Subscribe to my RSS feed