Sunday 31 January 2010

Book Review: “The Passionate Programmer” by Chad Fowler

I’m a huge fan of books and from now on I’ll write a review on each technical (or may be not) book I read. The first book reviewed will be a wonderful book by Chad Fowler: "The Passionate Programmer”. Actually, it’s full name is “The Passionate Programmer: Creating a Remarkable Career in Software Development”. This is what this book is about – your career.

Chad Fowler is a great programmer, Ruby practitioner, musician and conference organizer. He recently lived and worked in India, setting up and leading an offshore software development center. He is co-founder of Ruby Central, Inc., a non-profit corporation responsible for the annual International Ruby Conference and The International Rails Conference, and is a leading contributor in the Ruby community.

As the author highlights, your career is the most important project in your life and you, as it’s result, is the most valuable product of it. That really makes sense if remember that your time is the most valuable resource: you can’t replenish it.

As Chad assumes you are a product, he splits his book into parts on how to promote this product:

  1. Choosing Your Market
    Here Chad describes what you should be and what niche you should take, what skills to develop and what technologies to specialize in.
  2. Investing in Your Product
    This part is about how to develop yourself, not what but how. How you should sharpen your skills, how you should choose a mentor.
  3. Executing
    Where to apply yourself, how much you are worth, how to behave in stress situations – you are a product and this part is about how to execute you and produce value.
  4. Marketing… Not Just for Suits
    Advertise yourself, make people believe you’re the one they need, be public – the marketing of product from all practical aspects.
  5. Maintaining Your Edge
    You’re at the top, you’re the king – but what next? Chad devotes this part to you-product maintenance: looking for future employments, planning your next career steps.

This book is good. Very good. My favorite statement from it is “Be the worse” – be the worse in your team meaning that all around are better than you. In this case you’ll grow up much faster than in any other case.

Thursday 28 January 2010

Joining your social bits in one service

I'm using Twitter as my main way to express myself to other people. It's ultimately nice for sharing links and thoughts. However, I had also two other services that I could not synchronize with Twitter... since now.

Welcome, here come the TwitterFeed! Wonderful tool for joining all your services into one:
1. Google Reader - I share items time to time and now they are automatically reposted to Twitter. Step-by-step tutorial on how to configure TwitterFeed to get your Google Reader items - http://goo.gl/s0NK
2. Blog - my monthly posts rate is extremely low these days but I promise I'll speed up :) This post will be the first one automatically reposted to Twitter.

Also TwitterFeed plays nicely with OpenID so feel free to expose your Google or MSN account to it.

Sunday 10 January 2010

Fixing Twitter for Chrome with User JS

I'm a rather conservative Twitter user and prefer web interface to all the others. The only thing in it that have been bugging me since I've started using it was impossibility of submitting tweet with Ctrl + Enter shortcut. And today I've fixed that (yeap, I'm damn proud of myself!) using User JS script for Chrome.

Yes, it only fixes Twitter in Chrome and may possibly fix it in Firefox with GreaseMonkey (I did not check it!).

So, first of all - make your Chrome accept User JS.

1. Switch to development channel of Chrome
2. Enable User JS in Chrome using "--enable-user-scripts" shortcut flag as it is described here
3. Restart Chrome
4. Copy this code and paste it to file named Twitter.user.js :

// ==UserScript==
// @name Twitter extensions script
// @description Short script that gives some features I really miss like Ctrl + Enter way to submit tweets.
// @version 0.1
// @include http://*twitter.com/*
// ==/UserScript==

console.log('Started Twitter script');

var txtStatus = document.getElementById('status');
if (txtStatus == null) {
return;
}
txtStatus.onkeypress = function (e) {
e = e || window.event;
var keyCode = e.keyCode || e.which;

var ctrlKeyPressed = e.ctrlKey;
var enterKeyPressed = keyCode == 13 || keyCode == 10;

if (ctrlKeyPressed && enterKeyPressed) {
console.log('trying to submit tweet...');
var submitTweetButton = document.getElementById('update-submit');
submitTweetButton.click();

return false;
}
}


5. Drag and drop this file to opened Chrome
6. Accept script installation
7. Enjoy Ctrl + Enter shortcut in Twitter web interface! :)