Managing your backlog with GitHub Issues

When GitHub rolled out its simple but powerful Issue Tracker, I finally realized that GitHub was the only thing I needed to manage my open source projects: I didn't need to use LightHouse or RubyForge anymore, because GitHub's issues were more than enough for me.

If you have a project hosted on GitHub yourself, you already know what you can do with GitHub issues; you can:

  • Open them
  • Sort them
  • Tag them
  • Prioritize them
  • Vote them
  • Search them
  • Close them
  • ...

But the important thing is that GitHub issues are very snappy, simple and FAST.

Like with to do list, I don't think you need 12,789 fields for your bugs and features, possibility to add attachments, folders or subfolders: you need something that doesn't get in your way. At least that's the way I see it, and GitHub issues are perfect for the job, and for managing your entire project backlog.

Of course, like all things, you must use them properly, following some kind of logic. Here's my take on that.

Read the rest of this post »

You should learn a new programming language if...

Yesterday someone posted an interesting comment to one of my articles on DZone:

There are 8 features to consider when choosing a programming language:
 
20 points -- is is solid? would you write a control program for an aircraft or a pacemaker? 
15 points -- can you write a database system (like mysql) in that language, including the deamons?
15 points -- libraries: regex, reading XML, manipulating complex numbers, graphics;
10 points -- active community + books + web pages
10 points -- can write fast IO and easily read complex input and binary input? fancy formatting?
10 points -- can you write web pages;
10 points -- support for OOP?
10 points -- available at least on 2 platforms, Windows and/or Linux and/or Mac.
Rate the language on a scale of 0 to 100. At 75+ you should use it.

While I agree on some of the above, I thought I'd provide my own test to decide whether to learn a particular programming language or not.

Read the rest of this post »

Should I give Haskell another try?

Haskell is a wonderful programming language. I'm not kidding, I really mean it. It's definitely worth checking out, at least.
Haskell is purely functional, succinct, elegant, fast, compiled, cross-platform, well-documented, feature-rich, and cross-platform. On paper, it's pure awesomeness: it lets you program in a way no other language can.

Programming in Haskell requires a radical paradigm shift, so it's not for anyone. I was always intrigued by it, and I started to learn it a few times in the past, on a yearly basis. Now it's that time of the year again, but before I embark in yet another almost-pointless journey, I wanted to analyze the issues I stumbled across last time I read through the countless tutorials and other awesome and free resources online.

Note #1 These are issues I found about a year ago, hopefully they are not true anymore. If you think they are not true, by all means explain why in the comments, but do it in a civilized manner: I am not criticizing your language of choice, I just want to learn more about it.

Note #2 I don't need to learn Haskell. I won't use it for work, not in the short term anyway. But I would use it sporadically to perform certain tasks for which I cannot use Ruby for, i.e. something that needs to be fast and not require something installed to run. Maybe some silly CLI tools, but maybe even some GUI or web/network stuff.

Read the rest of this post »