Mustachify.me web service

Mustachify.me web service

Here is a nice little web service that, given an image, recognizes faces and adds mustaches to each face on the picture. Ā Appearing as mildly funny and mostly pointless at first, it actually packs some impressive technology. Ā I’ve thrown a whole bunch of different images at it, and all the faces were recognized correctly. Ā Not only that, but the mustaches were tilted appropriately to match the face angle.

GitHub’s free alternatives

Personally, I love GitHub. Ā And I try to promote it as much as I can, and I’ve even got a few organizations setup their repositories there. Ā However, I am still asked once in a while for a good alternative. Ā These work either for people who don’t have the money to pay for GitHub’s private repositories, or who are required to keep their code in-house.

Here are a few alternatives to the GitHub hosting service. There are two types of software: locally installed software and hosted. Ā These are decent for smaller companies that don’t have the budget for licensing a hosted service.

Free Local Install

  • gitlabhq.comĀ – this project looks really good, with new releases every month.
  • gitoriousĀ – solid, free alternative to GitHub.

Free Hosted

  • gitorious.orgĀ – Ā open source projects are free, like github.
  • bitbucketĀ – unlimited free private repositories for up to 5 users. The pricing model is similar to the other Atlassian products.

Also, have a look at Sourcegraph,Ā which you can host yourself or pay for a hosted service.

hack {cyprus} *12

I’ve heard theĀ hack {cyprus} *12 announcements for a few weeks now, but unfortunately was too busy with my own projects to attend. Ā If you missed all the noise,Ā hack {cyprus} *12 is a hackathon-type event, where a bunch of people get together decide on a few ideas they want to implement and jump into coding. Ā They usually go at it non-stop for approximately 24-48 hours, after which they present the results.

These are quite common in all the countries where programmers live. Ā Now, we can proudly say that programmers live in Cyprus too. Ā The picture above is from a few minutes ago. Ā Just for the record, it’s Saturday night, after 1:00am! Ā That’s nothing but impressive.

The event seems to be quite well organized, with its own website, Facebook page, Twitter, and more. Ā (Have a look at their live stream page for latest updates.) Ā It is also being sponsored by quite a few companies, including Microsoft, Cyta, and Cyprus University of Technology.

As I said, unfortunately I was preoccupied with something else to book my attendance for this event. Ā However I am planning to go see the presentations tomorrow (care to join me?). Ā According to the schedule, some time around 5-5:30pm the teams will show off what they have managed to achieve in such a short time.

On builds and releases

Once in a while I find myself in a conversation on builds and releases. Ā It’s one of those where before the conversation everyone seems to be on the same page, but immediately after the conversation starts, there’s a massive fight and argument as to how the world works today and what’s the best path into the future. Ā And it gets messy.

I believe that the old approach of one release a decade is dead. Ā Especially in web application development. Ā The world is much more dynamic now, and so should be the release plans. Ā This seems obvious to many, and yet, not a lot of people understand the implication of this. Ā Making releases more dynamic means making the release operation cheaper, ideally – free. Ā Can you release a new version of the project once a day? Ā How about every hour? Why not? Ā You should be able to. Ā Regardless, whether you will actually release every second or not, the path to making releases cheap is automation. Ā And that means you have to have some form of software version control, and some form of build or deploy script. Ā And, of course, some form of rollback script for those times when things go hairy.

One of the things that I do at my current job is setting up such a deployment process. Ā I’ve done it before, but it’s been a while, and given how fast these things change and improve, I’ve been looking around for new tools and ideas. Ā While doing so, I came across an interesting GitHub blog post. Ā And while their requirements and environment are different from mine, I still found it useful. Ā One of the things that shows how well their process works is the stats at the end of the post. Ā Just look at them.

That’s about 100 deploys per day! Not bad, not bad at all.