Liquid JS

Posted 5 days back at Too-biased - Home

Color me impressed.

Matt Mccray ported Liquid to javascript. Go here to get the gist of it (yea, bad pun)

Pretty awesome work Matt :-)


<script>
 Liquid.readTemplateFile = function(path) {
  var elem = $(path);
  if(elem) {
    return elem.innerHTML;
  } else {
    path +" can't be found."; // Or throw and error, or whatever you want...
  }
 }

 var tmpl = Liquid.parse("{% include 'myOtherTemplate' with current_user %}"); 
 alert( tmpl.render({ current_user:'M@' }));
</script>

<script type="text/liquid" id="myOtherTemplate">
  Hello, {{ current_user }}!
</script>

Configatron: Simple, Persistent Configs for your Ruby App(s)

Posted 5 days back at Ruby Inside

Configatron is a new Ruby library that makes it easy to have persistently accessible configuration data available through your Ruby application. It bears some similarities to the Rails pluginSimpleConfig, but being distributed as a gem, is suitable for non-Rails applications. To install: gem install configatron

Once configatron is installed, the following code will get things going:

configatron do |config|
  config.app_name = "My Awesomely Jazzy App"
  config.database_url = "postgres://localhost/somedb"
  # etc...
end

And then you can access these configuration variables throughout your application, like so:

config.app_name     # => "My Awesomely Jazzy App"
config.database_url # => "postgres://localhost/somedb"

Configatron comes from Mark Bates, creator of the Mack Web application framework.

Post supported by thoughtbot training thoughtbot is a five year old web development consultancy, specializing exclusively in Ruby since Rails 1.0. We now provide an Advanced Rails training class, sharing our lessons from the trenches and interactively taking participants through the source and development process of a real-world app, Umbrella Today.

Near C Performance for RIAs with Next Generation Mozilla JavaScript Engine

Posted 5 days back at InfoQ Personalized Feed for unregistered user - Register to upgrade!

The Mozilla Foundation has developed TraceMonkey a trace-based JIT compiler that pushes the envelope on JavaScript performance. With plans to be incorporated it in the 3.1 release of Firefox, it delivers near C performance and promises to ‘leap frog’ RIA development to a new level. By Dionysios G. Synodinos

AttachmentFu Pull S3 From Production Bucket While Developing

Posted 6 days back at Darwinweb

Populating a database is a chore. As soon as a project gets deployed and the prospective admins are swarming about inputting data, my routine of downloading the production database chock-full of tasty data begins. During development most of my data was actually produced in production.

Normally this is a seamless process automated by a cut and paste snippet. But with AttachmentFu using the S3 backend, the bucket where files are stored is implict based on the configuration for your particular environment. There are a few potential solutions:

  • Share buckets between environments. This is the easiest, but also quite risky with regards to data integrity—if you follow a policy of only deleting attachments from the primary environment this can work, however there is still a slight risk of overwriting data with the same name.
  • Copy data between buckets. This is sort of a pain. The logic can be quite simple though, and if you have an EC2 instance set up it is pretty fast.
  • Hack the URL. The quick and dirty, but effective solution is to hack the URLs that are output to the browser so you can view the images from an alternate bucket without affecting uploads or deletions.

I want to do this locally without modifying the repository code, so what I did is add a new file containing the following to config/initializers/ and add it to my local git ignores:


Technoweenie::AttachmentFu::Backends::S3Backend.module_eval do
  def s3_url(thumbnail = nil)
    File.join(s3_protocol + s3_hostname + s3_port_string, 'production_bucket', full_filename(thumbnail))
  end
  alias :public_filename :s3_url
end

The downside is that you won’t be able to see files that were uploaded from development. But for me that doesn’t matter because I only ever do that when I’m developing the image uploading forms, which soon are overwritten by production data.

Implementing this for secure urls is left as an exercise to the reader.

Tell your Rails story

Posted 6 days back at Riding Rails - home

I’ve been receiving some very moving stories about how people came to be Rails programmers from incredibly diverse backgrounds over the years. I even talked to a taxi driver once who was taking me to the airport that was doing Rails. Or the guys who were looking to quit programming who started enjoying it again with Rails.

All these are powerful stories that I’d love if we could share with the world. So let’s try to do that! If you have a great story about how you came to Rails, then please send it to david at loudthinking dot com with the subject “My Rails story”. I’ll filter all those into a folder and we’ll find a way to publish them.

Tell your Rails story

Posted 6 days back at Riding Rails - home

I’ve been receiving some very moving stories about how people came to be Rails programmers from incredibly diverse backgrounds over the years. I even talked to a taxi driver once who was taking me to the airport that was doing Rails. Or the guys who were looking to quit programming who started enjoying it again with Rails.

All these are powerful stories that I’d love if we could share with the world. So let’s try to do that! If you have a great story about how you came to Rails, then please send it to david at loudthinking dot com with the subject “My Rails story”. I’ll filter all those into a folder and we’ll find a way to publish them.

Scripted GUI Testing with Ruby - Ruby on Rails Podcast

Posted 6 days back at Ruby on Rails Podcast

Ian Dees talks about his new book on testing GUI applications. His company uses Ruby to test handheld devices.

Sponsor

How not to write a job advert

Posted 6 days back at Inter-Sections

Recently, I found a Craigslist job advert that made me chuckle. It seems to manage to do almost everything wrong, from the point of view of recruiting the kind of person it appears to be targeting.

So, in the spirit of improving the web, here’s my blow-by-blow description of all (or most of) what’s wrong with this job ad.

Here’s the advert, first, in case it’s taken down:

Senior Rails Developer (Toronto)

Reply to: jobs@redwirenation.com [?]
Date: 2008-08-26, 9:12PM EDT


Working Role Title: Senior Rails Developer 

Why People Want To Work for Us: RedWire Employees Are Rockstars 


Enabling Entrepreneurs To Connect on a Global Scale 
As far as missions go, ours is pretty cool. How many people get to say their job is to help others be successful? 

Innovating at Warp 9 
We are a small company, but we are driven to change the world. Our reason for being is to help entrepreneurs realize their ambitions. We are innovative, relevant and user-friendly, and we use these qualities to equip business owners with the tools they need for success. 

Fun-zilla 
Working for RedWire means being passionate and creative. We want awesome people to work with who will be contributing members of our team of rockstars. 

The top three reasons why working at RedWire rocks: 

1) You get to do good. People helping people—it’s a beautiful thing. 
2) Brainastics, whiteboards, candy and lots of coffee. Sometimes we have to remind our employees to go home. 
3) Flexible work hours. We don’t do “9 to 5”. 
Nuff said. 

We realize that a start-up environment doesn’t appeal to everybody, but if it works for you, then, please, read on. 


Current Needs: 

¼ Network Engineer 
+ ¼ Electrical Engineer 
+ 3?8 Senior Open Source Software Developer 
+ 1?8???Mathematician 
= 1 RedWire Senior Developer 

We are looking for an in-house doer-thinker-fixer-betterer whose superpower is to fulfill all the functions of an IT Department. We need an autonomous and resourceful guru to join us in our quest and manage all things IT. You must be ridiculously passionate about the web, love the idea of working in a start-up, enjoy variety in your day-to-day and be able to handle the stress of being the go-to resource. 

Role Overview: 

This is a pivotal role for an ambitious, highly enthusiastic developer who’s excited at the thought of working in a fast-paced, high-growth web start-up. 

In this position, you will demonstrate your mental prowess as you coordinate a diverse flow of projects and initiatives. 

You will be responsible for: 

- Web application development 
- Network administration 
- Information storage 
- Network functionality 

In addition, you will also be responsible for helping set up email distribution, as well as any other relevant technically related projects as they arise. 

We are looking for a goal-oriented, naturally eager person who can work effectively and efficiently under tight deadlines and who is able to manage multiple projects at once. 

Qualifications:
• Provable guru status and devoteeism of Ruby on Rails with experience actually deploying applications 
• Strong experience with MySQL, version 5+ and beyond 
• Background in developing and optimizing GNU/Linux, *nix, and *BSD platforms for mission critical production environments 
• Familiar with network infrastructure and design concepts for small networks (<25 machines). 
• Proven experience in designing security-hardened web applications, using open cryptographic standards 
• Familiarity with hardware prognostics and normal accident theory 
• Expertise in open-source programs and development 
• Familiarity with content versioning systems (e.g., Hg, SVN, CVS) 
• Experience breaking stuff 
• Experience fixing what you’ve broken 

If you are the personification of our long-winded wish list, then we’d celebrate your email’s alerting us to your existence. Interested potential rockstars should send their résumé to jobs@redwirenation.com. 

Right. *cracks knuckles* Let’s get started, shall we?

Rockstars helping people for brainastical whiteboard candies

The first problem: Why people want to work for us: Redwire employees are rockstars.

Really? Ok, I’ll sign up, but I want to get some free tickets to their concerts. Many employers still feel like calling future employees rock stars or ninjas is going to attract better developers. Here’s some news for you: most of the great developers you’re interested in can’t stand the term “rockstar programmer” (or ninja, or whatever alternative you may care to come up with).

Next: How many people get to say their job is to help others be successful?

Well, let’s see… off the top of my head, every single employee in the world? By definition, employees help others be successful. That’s what “having a job” means. Most people who join start-ups do it because they’d also like to help themselves be successful somewhere along the way, or because the work is more interesting. In any case, if you want to excite start-up developers, you’re gonna need a better “mission statement” than that (ideally, just scrap the mission statement altogether).

Fun-zilla

Well, nothing says fun like Fun-zilla, right? Who are you trying to hire? 10 year olds?

“We want awesome people to work with who will be contributing members of our team of rockstars.”

*puke*

Top three reasons:

1) You get to do good. People helping people—it’s a beautiful thing.

Oh puh-lease, I’m getting all teary-eyed already. Of course. How could I not see it? Tell you what, it’s such a beautiful thing, I’ll work for free too. Every start-up believes their goal is the best, the most worthwhile of them all, but your job in a recruitment ad is to convince other people who haven’t drunk the kool-aid that that’s so. This kind of vague nonsense isn’t going to help.

2) Brainastics, whiteboards, candy and lots of coffee. Sometimes we have to remind our employees to go home.

Translation: long hours, no concept of work/life balance. That’s acceptable for a start-up (though perhaps it shouldn’t be), it’s understood that you may work long hours on a start-up. But you shouldn’t brandish that about as a key selling point for your company, much in the same way that someone who’s changing jobs might be doing so because their current job sucks, but they probably shouldn’t say it outright in the interview. And since when are whiteboards a perk?? What’s next? “Our state-of-the-art office premises include a quality toilet seat”?

3) Flexible work hours. We don’t do “9 to 5
Nuff said.”

Normally, that would be fine, but in conjunction with the previous statement, it’s highly suspicious. “We don’t do 9 to 5” could just as easily mean “We do 10 to 10”, in this context. Nope, not “enough said” - more detail would have been preferable.

One cup of flour, two cups of milk, two eggs

1/4 Network Engineer
+ 1/4 Electrical Engineer
+ 3/8 Senior Open Source Software Developer
+ 1/8 Mathematician
= 1 RedWire Senior Developer

Oh boy. Maybe add another 1/32 janitor while they’re at it? What the heck is up with the /8 fractions anyway?

We are looking for an in-house doer-thinker-fixer-betterer whose superpower is to fulfill all the functions of an IT Department. We need an autonomous and resourceful guru to join us in our quest and manage all things IT.

Ok… so, what emerges here, is they’re looking for a CTO. That’s what a CTO is - a one-man IT department. But either they can’t afford one, or they haven’t figured out that’s what they’re looking for, or they don’t know that hiring a CTO in a company like that is the most important hiring decision in the whole history of their company (and should be achieved through intense networking, not through free job ads). Or perhaps, more likely, they just don’t really have a clue what they want, beyond the fact that it’s someone who knows stuff about IT.

In this position, you will demonstrate your mental prowess as you coordinate a diverse flow of projects and initiatives.

You will be everyone’s IT bitch.

…ambitious, highly enthusiastic…

And you will enjoy it!

Responsibilabilities and Qualifimications

You will be responsible for:
- Web application development
- Network administration
- Information storage
- Network functionality

Wow is that it. Oh wait, you’re not finished. Please continue.

In addition, you will also be responsible for helping set up email distribution, as well as any other relevant technically related projects as they arise.

Didn’t we cover this already? If you want someone with that breadth of skills, you’re hiring your CTO cofounder. And you better give them equity - lots of it. And you will never find them via a craigslist job ad. Also, what the heck is “Information storage”? Does this “Senior Rails Developer” also have to manage the shared drive, perhaps?

Provable guru status and devoteeism of Ruby on Rails with experience actually deploying applications

Devoteeism? Guru status? Come on, I need some lines that I can make fun of. This is so self-contained, I can’t possibly make it any more ridiculous than it already is.

Proven experience in designing security-hardened web applications, using open cryptographic standards

What does that even mean? My guess is, it translates to “is capable of setting up an SSL certificate on apache”.

Familiarity with content versioning systems (e.g., Hg, SVN, CVS)

Is it even possible to be a “Ruby guru” and not be “familiar” with source control? Another hint that the person who wrote this job ad doesn’t know what they’re talking about.

Experience breaking stuff
Experience fixing what you’ve broken

It’s always a good thing to let your company’s personality show through your ad. Well, not always, I guess. Not in this case, for example. After this litany of unintentionally awful propositions, this “joke” doesn’t really go down well.

In conclusion

Now, it’s possible that actually, Red Wire is a perfectly fine company, and they just happened to get someone’s friends sister to write and post up the job ad because they were too busy and, heck, craigslist is free anyway. But this is a terrible impression to make to prospective start-up employees and, if they indeed lack a CTO, it’s no way to hire one.

If you’re in a position to hire technical people for a start-up, try not to make quite so many mistakes.

How not to write a job advert

Posted 6 days back at Inter-Sections

Recently, I found a Craigslist job advert that made me chuckle. It seems to manage to do almost everything wrong, from the point of view of recruiting the kind of person it appears to be targeting.

So, in the spirit of improving the web, here’s my blow-by-blow description of all (or most of) what’s wrong with this job ad.

Here’s the advert, first, in case it’s taken down:

<style> pre { white-space: pre-wrap; /* css-3 */ white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ white-space: -pre-wrap; /* Opera 4-6 */ white-space: -o-pre-wrap; /* Opera 7 */ word-wrap: break-word; /* Internet Explorer 5.5+ */ } </style>

Senior Rails Developer (Toronto)

Reply to: jobs@redwirenation.com [?]
Date: 2008-08-26, 9:12PM EDT


Working Role Title: Senior Rails Developer 

Why People Want To Work for Us: RedWire Employees Are Rockstars 


Enabling Entrepreneurs To Connect on a Global Scale 
As far as missions go, ours is pretty cool. How many people get to say their job is to help others be successful? 

Innovating at Warp 9 
We are a small company, but we are driven to change the world. Our reason for being is to help entrepreneurs realize their ambitions. We are innovative, relevant and user-friendly, and we use these qualities to equip business owners with the tools they need for success. 

Fun-zilla 
Working for RedWire means being passionate and creative. We want awesome people to work with who will be contributing members of our team of rockstars. 

The top three reasons why working at RedWire rocks: 

1) You get to do good. People helping people—it’s a beautiful thing. 
2) Brainastics, whiteboards, candy and lots of coffee. Sometimes we have to remind our employees to go home. 
3) Flexible work hours. We don’t do “9 to 5”. 
Nuff said. 

We realize that a start-up environment doesn’t appeal to everybody, but if it works for you, then, please, read on. 


Current Needs: 

¼ Network Engineer 
+ ¼ Electrical Engineer 
+ 3?8 Senior Open Source Software Developer 
+ 1?8???Mathematician 
= 1 RedWire Senior Developer 

We are looking for an in-house doer-thinker-fixer-betterer whose superpower is to fulfill all the functions of an IT Department. We need an autonomous and resourceful guru to join us in our quest and manage all things IT. You must be ridiculously passionate about the web, love the idea of working in a start-up, enjoy variety in your day-to-day and be able to handle the stress of being the go-to resource. 

Role Overview: 

This is a pivotal role for an ambitious, highly enthusiastic developer who’s excited at the thought of working in a fast-paced, high-growth web start-up. 

In this position, you will demonstrate your mental prowess as you coordinate a diverse flow of projects and initiatives. 

You will be responsible for: 

- Web application development 
- Network administration 
- Information storage 
- Network functionality 

In addition, you will also be responsible for helping set up email distribution, as well as any other relevant technically related projects as they arise. 

We are looking for a goal-oriented, naturally eager person who can work effectively and efficiently under tight deadlines and who is able to manage multiple projects at once. 

Qualifications:
• Provable guru status and devoteeism of Ruby on Rails with experience actually deploying applications 
• Strong experience with MySQL, version 5+ and beyond 
• Background in developing and optimizing GNU/Linux, *nix, and *BSD platforms for mission critical production environments 
• Familiar with network infrastructure and design concepts for small networks (<25 machines). 
• Proven experience in designing security-hardened web applications, using open cryptographic standards 
• Familiarity with hardware prognostics and normal accident theory 
• Expertise in open-source programs and development 
• Familiarity with content versioning systems (e.g., Hg, SVN, CVS) 
• Experience breaking stuff 
• Experience fixing what you’ve broken 

If you are the personification of our long-winded wish list, then we’d celebrate your email’s alerting us to your existence. Interested potential rockstars should send their résumé to jobs@redwirenation.com. 

Right. *cracks knuckles* Let’s get started, shall we?

Rockstars helping people for brainastical whiteboard candies

The first problem: Why people want to work for us: Redwire employees are rockstars.

Really? Ok, I’ll sign up, but I want to get some free tickets to their concerts. Many employers still feel like calling future employees rock stars or ninjas is going to attract better developers. Here’s some news for you: most of the great developers you’re interested in can’t stand the term “rockstar programmer” (or ninja, or whatever alternative you may care to come up with).

Next: How many people get to say their job is to help others be successful?

Well, let’s see… off the top of my head, every single employee in the world? By definition, employees help others be successful. That’s what “having a job” means. Most people who join start-ups do it because they’d also like to help themselves be successful somewhere along the way, or because the work is more interesting. In any case, if you want to excite start-up developers, you’re gonna need a better “mission statement” than that (ideally, just scrap the mission statement altogether).

Fun-zilla

Well, nothing says fun like Fun-zilla, right? Who are you trying to hire? 10 year olds?

“We want awesome people to work with who will be contributing members of our team of rockstars.”

*puke*

Top three reasons:

1) You get to do good. People helping people—it’s a beautiful thing.

Oh puh-lease, I’m getting all teary-eyed already. Of course. How could I not see it? Tell you what, it’s such a beautiful thing, I’ll work for free too. Every start-up believes their goal is the best, the most worthwhile of them all, but your job in a recruitment ad is to convince other people who haven’t drunk the kool-aid that that’s so. This kind of vague nonsense isn’t going to help.

2) Brainastics, whiteboards, candy and lots of coffee. Sometimes we have to remind our employees to go home.

Translation: long hours, no concept of work/life balance. That’s acceptable for a start-up (though perhaps it shouldn’t be), it’s understood that you may work long hours on a start-up. But you shouldn’t brandish that about as a key selling point for your company, much in the same way that someone who’s changing jobs might be doing so because their current job sucks, but they probably shouldn’t say it outright in the interview. And since when are whiteboards a perk?? What’s next? “Our state-of-the-art office premises include a quality toilet seat”?

3) Flexible work hours. We don’t do “9 to 5
Nuff said.”

Normally, that would be fine, but in conjunction with the previous statement, it’s highly suspicious. “We don’t do 9 to 5” could just as easily mean “We do 10 to 10”, in this context. Nope, not “enough said” - more detail would have been preferable.

One cup of flour, two cups of milk, two eggs

1/4 Network Engineer
+ 1/4 Electrical Engineer
+ 3/8 Senior Open Source Software Developer
+ 1/8 Mathematician
= 1 RedWire Senior Developer

Oh boy. Maybe add another 1/32 janitor while they’re at it? What the heck is up with the /8 fractions anyway?

We are looking for an in-house doer-thinker-fixer-betterer whose superpower is to fulfill all the functions of an IT Department. We need an autonomous and resourceful guru to join us in our quest and manage all things IT.

Ok… so, what emerges here, is they’re looking for a CTO. That’s what a CTO is - a one-man IT department. But either they can’t afford one, or they haven’t figured out that’s what they’re looking for, or they don’t know that hiring a CTO in a company like that is the most important hiring decision in the whole history of their company (and should be achieved through intense networking, not through free job ads). Or perhaps, more likely, they just don’t really have a clue what they want, beyond the fact that it’s someone who knows stuff about IT.

In this position, you will demonstrate your mental prowess as you coordinate a diverse flow of projects and initiatives.

You will be everyone’s IT bitch.

…ambitious, highly enthusiastic…

And you will enjoy it!

Responsibilabilities and Qualifimications

You will be responsible for:
- Web application development
- Network administration
- Information storage
- Network functionality

Wow is that it. Oh wait, you’re not finished. Please continue.

In addition, you will also be responsible for helping set up email distribution, as well as any other relevant technically related projects as they arise.

Didn’t we cover this already? If you want someone with that breadth of skills, you’re hiring your CTO cofounder. And you better give them equity - lots of it. And you will never find them via a craigslist job ad. Also, what the heck is “Information storage”? Does this “Senior Rails Developer” also have to manage the shared drive, perhaps?

Provable guru status and devoteeism of Ruby on Rails with experience actually deploying applications

Devoteeism? Guru status? Come on, I need some lines that I can make fun of. This is so self-contained, I can’t possibly make it any more ridiculous than it already is.

Proven experience in designing security-hardened web applications, using open cryptographic standards

What does that even mean? My guess is, it translates to “is capable of setting up an SSL certificate on apache”.

Familiarity with content versioning systems (e.g., Hg, SVN, CVS)

Is it even possible to be a “Ruby guru” and not be “familiar” with source control? Another hint that the person who wrote this job ad doesn’t know what they’re talking about.

Experience breaking stuff
Experience fixing what you’ve broken

It’s always a good thing to let your company’s personality show through your ad. Well, not always, I guess. Not in this case, for example. After this litany of unintentionally awful propositions, this “joke” doesn’t really go down well.

In conclusion

Now, it’s possible that actually, Red Wire is a perfectly fine company, and they just happened to get someone’s friends sister to write and post up the job ad because they were too busy and, heck, craigslist is free anyway. But this is a terrible impression to make to prospective start-up employees and, if they indeed lack a CTO, it’s no way to hire one.

If you’re in a position to hire technical people for a start-up, try not to make quite so many mistakes.

Smilies in Rails using BBCodeizer

Posted 6 days back at flip's

I’ve already described how to enable support for Smilies in Rails using RedCloth. If you want to use BBCodeizer instead of RedCloth (Textile), here’s how to do it.

We need to extend the BBCodeizer class. We could do this by creating a file in our /lib directory (e.g. my_string.rb), which has to be included in the environment.rb (require “my_string”). Here’s an example for three simple smilies:

# my_string.rb
module BBCodeizer
  class << self
    Tags[:smiley1] = [/\:\-?\)/, ''<img title=":)" src="/images/emoticons/smile.png" alt="smile"/>']
    Tags[:smiley2] = [/\;\-?\)/, ''<img title=";)" src="/images/emoticons/wink.png" alt="wink" />']
    Tags[:smiley3] = [/\:\-?\(/, ''<img title=":(" src="/images/emoticons/sad.png" alt="sad" />']

    TagList += [:smiley1, :smiley2, :smiley3]
  end
end

The smiley shortcuts are now replaced by the according images in any text you pass bbcodeize (e.g.

bbcodeize 'Hi :)'

returns

'Hi <img title=":)" src="/images/emoticons/smile.png" alt="smile" />'

Dont forget to put some smilies in /images/emoticons

Keywords: smiley, smileys, smilie, smilies, rails, bbcode, bbcodeizer, ruby, emoticon, emoticons

VMware Infrastructure 3 Book Excerpt and Author Interview

Posted 6 days back at InfoQ Personalized Feed for unregistered user - Register to upgrade!

The new book VMware Infrastructure 3: Advanced Technical Design Guide and Advanced Operations Guide details both the design environments and operational processes of VMware Infrastructure 3. InfoQ is proud to provide both a book excerpt and an interview with the authors Ron Oglesby, Scott Herold, and Mike Laverick. By Scott Delap

Check out the Advanced ActiveRecord Envycast

Posted 6 days back at OnRails.org

I just went through the first screencast from the Rails Envy guys’. I wasn’t sure if I would liked the fact that they used a green screen approach, but thought I would support their effort as I really like their weekly podcast. Guess what? It’s a really good screen cast, very informative, high quality and well done. Wait, there is more, they have a cool Cheat Sheet that comes with the download. Well worth the money, go check it out.

20080829_EnvyCast.jpg

How not to write a job advert

Posted 6 days back at Inter-Sections

Recently, I found a Craigslist job advert that made me chuckle. It seems to manage to do almost everything wrong, from the point of view of recruiting the kind of person it appears to be targeting.

So, in the spirit of improving the web, here’s my blow-by-blow description of all (or most of) what’s wrong with this job ad.

Here’s the advert, first, in case it’s taken down:

Senior Rails Developer (Toronto)

Reply to: jobs@redwirenation.com [?]
Date: 2008-08-26, 9:12PM EDT


Working Role Title: Senior Rails Developer 

Why People Want To Work for Us: RedWire Employees Are Rockstars 


Enabling Entrepreneurs To Connect on a Global Scale 
As far as missions go, ours is pretty cool. How many people get to say their job is to help others be successful? 

Innovating at Warp 9 
We are a small company, but we are driven to change the world. Our reason for being is to help entrepreneurs realize their ambitions. We are innovative, relevant and user-friendly, and we use these qualities to equip business owners with the tools they need for success. 

Fun-zilla 
Working for RedWire means being passionate and creative. We want awesome people to work with who will be contributing members of our team of rockstars. 

The top three reasons why working at RedWire rocks: 

1) You get to do good. People helping people—it’s a beautiful thing. 
2) Brainastics, whiteboards, candy and lots of coffee. Sometimes we have to remind our employees to go home. 
3) Flexible work hours. We don’t do “9 to 5”. 
Nuff said. 

We realize that a start-up environment doesn’t appeal to everybody, but if it works for you, then, please, read on. 


Current Needs: 

¼ Network Engineer 
+ ¼ Electrical Engineer 
+ 3?8 Senior Open Source Software Developer 
+ 1?8???Mathematician 
= 1 RedWire Senior Developer 

We are looking for an in-house doer-thinker-fixer-betterer whose superpower is to fulfill all the functions of an IT Department. We need an autonomous and resourceful guru to join us in our quest and manage all things IT. You must be ridiculously passionate about the web, love the idea of working in a start-up, enjoy variety in your day-to-day and be able to handle the stress of being the go-to resource. 

Role Overview: 

This is a pivotal role for an ambitious, highly enthusiastic developer who’s excited at the thought of working in a fast-paced, high-growth web start-up. 

In this position, you will demonstrate your mental prowess as you coordinate a diverse flow of projects and initiatives. 

You will be responsible for: 

- Web application development 
- Network administration 
- Information storage 
- Network functionality 

In addition, you will also be responsible for helping set up email distribution, as well as any other relevant technically related projects as they arise. 

We are looking for a goal-oriented, naturally eager person who can work effectively and efficiently under tight deadlines and who is able to manage multiple projects at once. 

Qualifications:
• Provable guru status and devoteeism of Ruby on Rails with experience actually deploying applications 
• Strong experience with MySQL, version 5+ and beyond 
• Background in developing and optimizing GNU/Linux, *nix, and *BSD platforms for mission critical production environments 
• Familiar with network infrastructure and design concepts for small networks (<25 machines). 
• Proven experience in designing security-hardened web applications, using open cryptographic standards 
• Familiarity with hardware prognostics and normal accident theory 
• Expertise in open-source programs and development 
• Familiarity with content versioning systems (e.g., Hg, SVN, CVS) 
• Experience breaking stuff 
• Experience fixing what you’ve broken 

If you are the personification of our long-winded wish list, then we’d celebrate your email’s alerting us to your existence. Interested potential rockstars should send their résumé to jobs@redwirenation.com. 

Right. *cracks knuckles* Let’s get started, shall we?

Rockstars helping people for brainastical whiteboard candies

The first problem: Why people want to work for us: Redwire employees are rockstars.

Really? Ok, I’ll sign up, but I want to get some free tickets to their concerts. Many employers still feel like calling future employees rock stars or ninjas is going to attract better developers. Here’s some news for you: most of the great developers you’re interested in can’t stand the term “rockstar programmer” (or ninja, or whatever alternative you may care to come up with).

Next: How many people get to say their job is to help others be successful?

Well, let’s see… off the top of my head, every single employee in the world? By definition, employees help others be successful. That’s what “having a job” means. Most people who join start-ups do it because they’d also like to help themselves be successful somewhere along the way, or because the work is more interesting. In any case, if you want to excite start-up developers, you’re gonna need a better “mission statement” than that (ideally, just scrap the mission statement altogether).

Fun-zilla

Well, nothing says fun like Fun-zilla, right? Who are you trying to hire? 10 year olds?

“We want awesome people to work with who will be contributing members of our team of rockstars.”

*puke*

Top three reasons:

1) You get to do good. People helping people—it’s a beautiful thing.

Oh puh-lease, I’m getting all teary-eyed already. Of course. How could I not see it? Tell you what, it’s such a beautiful thing, I’ll work for free too. Every start-up believes their goal is the best, the most worthwhile of them all, but your job in a recruitment ad is to convince other people who haven’t drunk the kool-aid that that’s so. This kind of vague nonsense isn’t going to help.

2) Brainastics, whiteboards, candy and lots of coffee. Sometimes we have to remind our employees to go home.

Translation: long hours, no concept of work/life balance. That’s acceptable for a start-up (though perhaps it shouldn’t be), it’s understood that you may work long hours on a start-up. But you shouldn’t brandish that about as a key selling point for your company, much in the same way that someone who’s changing jobs might be doing so because their current job sucks, but they probably shouldn’t say it outright in the interview. And since when are whiteboards a perk?? What’s next? “Our state-of-the-art office premises include a quality toilet seat”?

3) Flexible work hours. We don’t do “9 to 5
Nuff said.”

Normally, that would be fine, but in conjunction with the previous statement, it’s highly suspicious. “We don’t do 9 to 5” could just as easily mean “We do 10 to 10”, in this context. Nope, not “enough said” - more detail would have been preferable.

One cup of flour, two cups of milk, two eggs

1/4 Network Engineer
+ 1/4 Electrical Engineer
+ 3/8 Senior Open Source Software Developer
+ 1/8 Mathematician
= 1 RedWire Senior Developer

Oh boy. Maybe add another 1/32 janitor while they’re at it? What the heck is up with the /8 fractions anyway?

We are looking for an in-house doer-thinker-fixer-betterer whose superpower is to fulfill all the functions of an IT Department. We need an autonomous and resourceful guru to join us in our quest and manage all things IT.

Ok… so, what emerges here, is they’re looking for a CTO. That’s what a CTO is - a one-man IT department. But either they can’t afford one, or they haven’t figured out that’s what they’re looking for, or they don’t know that hiring a CTO in a company like that is the most important hiring decision in the whole history of their company (and should be achieved through intense networking, not through free job ads). Or perhaps, more likely, they just don’t really have a clue what they want, beyond the fact that it’s someone who knows stuff about IT.

In this position, you will demonstrate your mental prowess as you coordinate a diverse flow of projects and initiatives.

You will be everyone’s IT bitch.

…ambitious, highly enthusiastic…

And you will enjoy it!

Responsibilabilities and Qualifimications

You will be responsible for:
- Web application development
- Network administration
- Information storage
- Network functionality

Wow is that it. Oh wait, you’re not finished. Please continue.

In addition, you will also be responsible for helping set up email distribution, as well as any other relevant technically related projects as they arise.

Didn’t we cover this already? If you want someone with that breadth of skills, you’re hiring your CTO cofounder. And you better give them equity - lots of it. And you will never find them via a craigslist job ad. Also, what the heck is “Information storage”? Does this “Senior Rails Developer” also have to manage the shared drive, perhaps?

Provable guru status and devoteeism of Ruby on Rails with experience actually deploying applications

Devoteeism? Guru status? Come on, I need some lines that I can make fun of. This is so self-contained, I can’t possibly make it any more ridiculous than it already is.

Proven experience in designing security-hardened web applications, using open cryptographic standards

What does that even mean? My guess is, it translates to “is capable of setting up an SSL certificate on apache”.

Familiarity with content versioning systems (e.g., Hg, SVN, CVS)

Is it even possible to be a “Ruby guru” and not be “familiar” with source control? Another hint that the person who wrote this job ad doesn’t know what they’re talking about.

Experience breaking stuff
Experience fixing what you’ve broken

It’s always a good thing to let your company’s personality show through your ad. Well, not always, I guess. Not in this case, for example. After this litany of unintentionally awful propositions, this “joke” doesn’t really go down well.

In conclusion

Now, it’s possible that actually, Red Wire is a perfectly fine company, and they just happened to get someone’s friends sister to write and post up the job ad because they were too busy and, heck, craigslist is free anyway. But this is a terrible impression to make to prospective start-up employees and, if they indeed lack a CTO, it’s no way to hire one.

If you’re in a position to hire technical people for a start-up, try not to make quite so many mistakes.

JRuby 1.1.4 Released

Posted 6 days back at InfoQ Personalized Feed for unregistered user - Register to upgrade!

JRuby 1.1.4 is now available and features improved and much faster Java integration, the beginnings of 1.9 compatibility, native library integration with FFI, and much more. By Werner Schuster

The political splash page

Posted 7 days back at Rail Spikes

Whew! That was a hell of a speech last night, wasn’t it? I think I’ll go to BarakObama.com and check out what’s going on…

Barak Obama donation splash page

Splash page?! The tiny red box I’ve highlighted is the only way to escape the splash page and get to the real site.

As a web developer, I’ve believed for years that splash pages are evil. Jakob Nielson wrote back in 1999 that “splash pages are useless and annoying. In general, every time you see a splash page, the reaction is ‘oh no, here comes a site that will be slow and difficult to use and that doesn’t respect my time.’”

And yet, on political sites, the donation splash page – especially after big events – is ubiquitous.

I have only one experience of building a site for electoral politics. In 2006, my friend David Krewinghaus and I won a bid to create a website for Senate candidate Amy Klobuchar (I set up the infrastructure. David designed everything. If you’re looking for a designer, David’s great!)

The campaign was strongly influenced by Hillary Clinton’s website. At the time Hillary Clinton was raking in dough for her puff-ball Senate re-election campaign (she raised so much money that she was able to transfer $10 million to her presidential campaign). Hillary had a donation splash page, and so the Klobuchar people wanted one, too.

We convinced them that this was a bad idea because it would annoy people and hurt the usability and searchability of the website; and couldn’t they put a big donation button on the home page? This satisfied the campaign. I felt I’d done my duty as a conscientious web developer by putting the users first.

But it was only temporary. As the election approached, the campaign pressed us again for a splash page, and this time they couldn’t be persuaded. So we built one. My contribution to splash page usability was that it wouldn’t be shown if you’d already seen it.

I still hate political splash pages. But campaigns use them for one reason: they work.

And Amy Klobuchar? They call her Senator Amy Klobuchar now.


1 2 3 4 5 6 ... 520