Monday, August 22, 2011

Home Mercurial Server

I hope I'm not the only one who had this problem:
I've been working on some code demos and web designs and wanted to having it under source control, so I could keep track on changes, work from multiple computers and generally have a backup for everything.
For normal projects, I guess this should be done as an open-source project on bitbucket or github, but in some cases it's simply more convenient to have the repository at home.

So, I installed a Mercurial server. Want to know how?

The only thing you'll need is the Mercurial installation for your favorite OS (yes, Windows included). After installing it, run
hg init RepoName
this will create a repository called RepoName under the current directory.
For the next part, I'll assume the server is accessible only inside the home network, and there's no need to configure extra security measures. So, create a script that servers this repository inside the the repository directory:
hg serve --config web.push_ssl=No --config "web.allow_push=*"
All you have to do now is to schedule this script to run on boot time.
Now, from any machine on the network you can use commands such as:
hg clone http://ServerName:[probably_8000]
to work with your new Mercurial repository.
That's it.

Having a "development server" can be very handy, as it could also hold other documents (NAS functionality), personal wiki, local deployment server, etc.

Saturday, August 20, 2011

People Skills

I've just read this great post which I found on Hacker News, and felt sympathetic.
For too many times in my short career I was forced to work with people that has no people skills. Those people held a programming, admin or other technical roles, which means they weren't "customer facing", so for the employer, there was no need to require people skills when hiring them.

But that's a wrong call in my opinion. Even if the people in question were among the top 5% of the most professional people I met, I'd rather not work with them at all, than suffer their presence. Even if that means spending a few more days on solving some technical issues.

Many things bother me with such people:
  1. Some of them know they're so good at what their doing, and leverage their bad people skills in a way that no one would be able to learn from them. This gives them job security.
  2. Some of them use the fact no one wants to communicate with them in order to get this quiet room "in the basement".
  3. If there's a "dirty job" that involves communicating with customers, obviously they aren't tasked with handling it. That's an ugly way to get only the "nice" tasks.
  4. They get away with ugly code, since no one wants to communicate with them and get them to beautify it or write documentation.
So yeah, I know many people don't go to work in order to socialize, but having people with zero people skills, no matter how professional they are, simply hurts the organization.

When it's time for me to hire employees, be sure that having decent people skills will be a criteria.