August 13, 2016

An advice towards Mercurial

This is not a rant, really, just a some few things I would like to write down.

History

When I started into development I've got the great suggestion to use revision control systems, the first one that I ever used was CVS, it really worked well for my own purposes, just had some issues with the sharing-between multiple machines.

Then Subversion was the hot-thing and it was a bit better that Subversion, but still had some of the things that I disliked from CVS.

Then GIT showed up, the projects I was working on required CVS, so I got an early non-official version of git-svn and started working with it, it was great, so many of my problems went away, but it was still under a SVN server.

After that , Github, Bitbucket, Kiln, and the tipping point, everybody switched to the reasonable choice, distributed revision control systems, and I think the best summary for why this approach is better than others, is described by Joel.


My point


My point is not to tell which tool is technically better, my point is more subjective, I think that Git is still technically the most advanced approach you can have for revision control systems, but it might not be the most simple one to use.

I have used a lot of tools, and among all of them the one that still holds my thumbs up is Mercurial, here some few reasons:
  • Simple and concise user interface (commands)
  • Better merging strategies
  • No automatic commits on merge
  • Good performance
  • Simple to explain
  • Gentle learning curve
  • Consistent tooling 
 Not too many reasons, rights? that's why I like it, because it just works, no porcelain/plumbing, just the tool. The other tool that goes beyond this is Fossil SCM, but it still needs adoption.

So in the end, my suggestion, if you are using revision control systems and you are unhappy with Git, or you don't know any other tool, give Mercurial a try.

July 27, 2016

Some interesting things...

During the last seven years I've been working as a software developer, ocasional team leader, weird tester and lazy seller.



The world of software development is so wide and moving that you never get tired of it, I happen to dislike some technology approaches, some practices, and even some programming languages.

But something I come to appreciate from the profession itself, is the self-pacing nature of it. It's possible to have great teams where things move really fast and well, and is also possible to get into a slow-as-a-snail situation in which you can't even see the final outcome.

I've been in many kinds of teams, and I think I know how to create a working environment that helps to understand the problems, react to them and make things better, I have come to that state.

I can't say that I'm the best developer, because I'm not, my role is closer to a problem-solver. That's why I've been investing some time looking for options in software development in which I can learn more, new problems, new challenges, and came across TopTal.

Confession, I have heard of it while listening to TheChangelog, that ringed the bells for me, working from home is a nice incentive, now that I have a family, and the chance to work with people all over the world, is a hook for me. So, I'm looking forward to join it's development group.

I'm currently applying to see: how it is, how it works, what can I do in there, will it suit me?

But only time and practice will say, let's see how it goes...

Update: It didn't go that well :-), but it was a great opportunity to understand how little I know, and to try to learn new things

July 18, 2016

Personal current trends on software development



Most productive development environment (server-side):
Most productive web development environment (single-page applications):
 Most productive mobile development environment:
Most interesting programming model:
Most useful getting-things-done tool: