Category Archives: Software tools

Ghost blog

Although I am using WordPress to host this blog, I never felt too comfortable with it. For me it looks too complicated, I cannot make sense of the source code, writing plugins has too many turns for my likeness, the whole thing is great if you know it, but too much trouble if you don’t. WordPress feels like my own big applications, while I retained them in RAM I was  productive, but as soon as I left them alone for a few months I always wanted to rewrite each of them because I couldn’t made head from tail.

But the alternatives were not better and my hosting providers know it well, then it did the trick and I forgot about blog hosting and did some programming, until now.

Being messing with NodeJS for more than a year now, I wouldn’t mind to convert many things to it, and a blogging application is one of the prime candidates. I played with the idea of making one, but in the end I got engaged with other things and left the open source effort for others.

There are a few blogging platforms in NodeJS already, but the best candidate in my eyes is Ghost. The author run a Kickstarter campaign, exceeded his target and got the product on time, which speaks volumes for me..

The code is available, and although I don’t really know how it works, I feel a lot more confident reading it and trying to make sense about what is going on. I believe that if I spend the time I should be able to make things with Ghost.

Then, the first step is to deploy it. I am using my traditional approach, fired a Vagrant machine and started following the instructions (my scripts are hosted in Github). I am halfway through it, it is too late now to do any testing.

As a side result, I just found Flightplan, which is an attempt to replicate Python Fabric but in NodeJS.

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

Getting started with Docker

During the weekend I was looking a bit at Docker, which is a way to create containers to run your code isolated from the rest of the machine, while still using the common libraries and deployment of the host operating system.

In my case the benefit could be important. I am leaning more and more into the micro server architecture, and the result is that I have around two orders of magnitude more servers to deploy, monitor and maintain.

I do most of my development using Vagrant, which lets me emulate a real life deployment, up to a point. In many cases, I will develop all the services in the same guest machine, but at deployment I might have a couple of machines keeping most of the servers, and then a load balanced layer for the busier services.

In theory I can emulate that with Vagrant, but in practice if I run more than two or three instances my laptop starts to crawl. Then although I test that everything works, going into production means a few sessions of debugging when things are different from theory to practice.

The idea I get from Docker is that using it I should be able to create a machine for each server without killing my laptop, and that would sort the problem of adding a load balancer in my deployment.

To make my life easier, I did some Fabric scripts to deploy Docker in Vagrant. We will see how it works during the week, at the moment it is just following the details in the installation page, but I didn’t do any real deployment (only a hello world).

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

git log enhancement

II found this little edit in Coderwall today. It is a change to the settings in the git log, to receive a nicely formatted report instead os the default one.

To have it as a reference, I am copying it here:


Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

Nginx and Vagrant

I have been using Vagrant for a couple of months now, and it is a fairly good solution to my usual problem of having too many projects in the same machine.
However, I was doing some front end Javascript development today, and none of my changes was served by Nginx. I disabled caching both in browser and server, but no updates were received.
The problem is that Nginx is using the filesystem if you are making calls from your local machine, and that didn’t work very well with Virtual Box.
For my own reference, the fix was simply to add the setting:

to my nginx.conf server section.

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

How to change an issue status in Bitbucket during push

I am using Bitbucket a lot more than usual, and keep finding interesting bits and pieces.

For my own reference, here is a list of the commands to change the issue state while pushing to Bitbucket.

Action Command Keyword Examples
resolve an issue
  • close
  • closed
  • closes
  • closing
  • fix
  • fixed
  • fixes
  • resolve
  • resolves
  • resolved
  • resolving

close #845

fix bug #89

fixes issue 746

resolving #3117

reopen an issue
  • reopen
  • reopens
  • reopening

reopen #746

reopening #78

mark an issue on hold
  • hold
  • holds
  • holding

holds #123

mark an issue wontfix
  • wontfix

wontfix #12

mark an issue invalid
  • invalidate
  • invalidates
  • invalidated
  • invalidating

invalidates #45

link to a changeset for the issue
  • addresses
  • re
  • references
  • ref
  • refs
  • see

re bug #55

see #34 and #456

The commands needs to be all lowercase, and seems to be doing the trick. Just to keep a real life example, I did a small project in Bitbucket to follow the history of an issue.

You can check the details in Bitbucket.

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

3 Weeks to live, live!

I was following the guys in 3 weeks to live, and when they stopped posting details a few days ago I thought ‘well, sometimes it works, sometimes doesn’t’.

But early this morning (or late past night) , while doing my own code, the news reader jumped. They did it, OnCompare is live now, and it looks pretty good. And the results provided by the site are good as well. I really like it.

On the other side, I feel very envious. I did my own share of crazy projects, and in fairness since I saw them I started harassing my friends to do the same, but right now, I feel very very envious! :D

Congratulations, it is a brilliant project!

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

New laptop, twice the fun

Apart from the cluster and the other dozen of computers at home, I got my last work horse in 2003, an Inspiron 5160 from Dell.

The thing was expensive, badly designed (it spent three months in service, one for each new motherboard it required until I clipped the insides of the case to stop it ripping the board apart) and lived miserably until a couple of years ago when I stopped using it. Before that I even tried to upgrade it a bit with more memory and a new hard disk, but finally the external wifi card failed and I didn’t bother getting a new one (a few Eee PCs replaced it, thank you very much).

But now the Colmenar is working, Visual Studio 2010 has a good number of nice features, and after a few months thinking I decided to get a new laptop. I got an HP ProBook 6550b, and I am liking it nearly as much as the Eee PC.

It came with Windows 7 64 bits, and a sledge of applications that I didn’t want, so after a few hours trying to remove them I wiped the disk and installed Ubuntu instead. The setup was fast and detected everything but the finger print scanner (which I don’t care).

After installing VirtualBox I went for Windows, and found that the disk that came with the machine had a 32 bits version instead of 64. I imagine that I could have called the guys in HP, but it is not a big deal (as other .NET people are doing, I wonder how longer will I stay in the lands of Uncle Bill) and the setup of Windows 7 32 bits in Virtual box worked without flaws. Visual Studio, SQL 2008 and the usual suspects went in without protests, and now I finally have a machine where I can run Python and mySQL on their natural neighborhood, as well as doing C# as fast as usual in Visual Studio.

The only point a bit annoying is that on the first boot, when Windows asked for my details, some of the dozen weird applications wrote the BIOS with a username and password related to the Mickey Mouse network I said I was using. After wiping everything, when I accessed the BIOS setup to change some details for virtualization, I found that those user details were used and now I can not change them. I didn’t spend too much time investigating, but I guess that I will be in trouble if I want to do a BIOS upgrade, but I think that it will not be another period of seven years until the next laptop. Hopefully, that upgrade will never be required.

All in all I am very happy with the ProBook, it is solid, good looking, the keyboard is surprisingly good for a laptop (I am writing this on it, even than the Natural Keyboard 4000 is my interface with the processor), and the screen is great.

Now, the only bit missing is to do some real programming :)

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

3 weeks to live

In the last few days I started following the progress of the guys in 3 weeks to live, a blog where a couple of engineers post a video recapping a working day in a project which has only three weeks to go live before everyone goes to other gigs.

Apart from the fact that I love the adventure (and feel very envious of them doing it, after so many times that I had good ideas and did nothing with them), they are sharing their experiences with tools and languages. One of them is AgileZen, and online project management styled as kanban, HipChat is another, and a few minutes ago I learnt that at least some of them are .NET programmers, but are using Rails just to learn while driving.

I hope they go well, and feeling more envious by the minute.

NB: you monkeys know who you are, when are we going to do anything at all? :)

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

A tip using Launchy

As part of my current toolbox, every day as soon as the PC boots I start TrueCrypt, Evernote, Remember The Milk, Total Commander, Dropbox and Everything.

Going through each was taking a couple of minutes every morning, even using Launchy. After a while I did some research about how to automate the task, with the result of a small batch file called ‘all.bat’ having the following code:

@echo off
if not "%1"=="" "c:\Program Files\Truecrypt\truecrypt.exe" /auto favorites /password %1 /quit
if "%1"=="" "c:\Program Files\Truecrypt\truecrypt.exe" /auto favorites /quit
echo TrueCrypt ready
start /d "c:\Program Files\Evernote\Evernote3.5\" Evernote.exe
echo Evernote ready
start /d "c:\Program Files\Total Commander\" totalcmd.exe
echo Total Commander ready
start /d "c:\Program Files\Everything\" Everything.exe
echo Search Everything ready
start C:\Users\shanahane\AppData\Local\Google\Chrome\Application\chrome.exe --app=""
echo Remember the milk ready
if not "%1"=="" start C:\Users\shanahane\AppData\Roaming\Dropbox\bin\Dropbox.exe /home

When I am ready, I just call Launchy with an Alt-Space and write all, press Tab and then write the password for my TrueCrypt disk. A few seconds later I am ready to go.

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

Read it later

Read it later is an extension for Firefox that I have being using for a few months now. This little tools allows you to store a page in a reading list without bookmarking it, or saving it as a file.

It saves me the little trick of keeping tabs open just to review the pages along the day, and helps organizing them as well (because the other trick, when my tabs grew out of control, was to bookmark everything and start from clean).

It has a synchronizing option now, that I didn’t use yet, and from the menu you can now bookmark the page in a few places as well.

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather