Fixing emacs install path

I’ve recently switched from macports to brew. Things that were previously installed using macports were not working properly. For example emacs,

$brew list emacs

Returned the following:

/usr/local/Cellar/emacs/24.4/libexec/emacs/ (5 files)
/usr/local/Cellar/emacs/24.4/share/emacs/ (3822 files)
/usr/local/Cellar/emacs/24.4/share/icons/ (7 files)
/usr/local/Cellar/emacs/24.4/share/info/ (62 files)
/usr/local/Cellar/emacs/24.4/share/man/ (5 files)
/usr/local/Cellar/emacs/24.4/var/games/ (2 files)

But emacs, linked to /usr/local/bin/emacs was not linked to /usr/local/Cellar/emacs/24.4/bin/emacs

The fix was running

$brew link emacs

But before that I had to fix permissions to /usr/local/share/emacs which was set by macports:

[Ruby] Fixing: “Cannot load such file — hitimes/hitimes” when installing jekyll

I was getting the above error and the only page I could find was which doesn’t look related.

Context: I was trying to follow [1] and run jekyll on my local machine. When running bundle exec jekyll serve I got a stacktrace with the message:

Cannot load such file — hitimes/hitimes

I’m on a MacOS ans installed ruby using brew. The problem is that I had a native ruby installation and also remains from a previous mac port install. The fix was quite simple. First, how I got to a messed up stage:

I had a version of ruby running, but even when installed the newest version using brew, the versions were not matching:

ruby -v

Then I decided to override the PATH variable to find the brew installation first. For that we need to know where that is located:

$brew ls ruby

I also n00b’ed and hard-coded the /usr/local/Cellar/ruby/2.1.5/bin/ in the PATH env variable. But by default, brew will create a soft link to


But my directories were messed up (maybe because I was using macports before) and so the link was not created. To fix that, I had to run:

brew link --overwrite ruby

After fixing the symlink, I updated my path to include /usr/local/opt and this fixed the issue.



Mercurial Templating

It’s possible to customize how the log output looks like using hg.
We can use inline templates as in:

hg log --template "{rev}"

{rev} is called a “keyword” and it gets replaced by the actual value when we do hg log. The list of keywords can be seen here.

Alternatively we can define our style in a separate file, e.g. ~/.hg/

changeset = 'changeset: {rev}:{node|short}'

We specify the style using --style=/home/unixname/.hg/ or setting the default style in .hgrc:


Other settings


We can change the font-colors of the text by using ANSI escape codes

Basically we specify \x1B[3<i>m where <i> is a number from 0 to 7 (see the wikipedia page for the color mapping). And \x1B[0m resets the color.

Files in multiple lines

We can add the following line that configures the formatting of a file entry (when using the {files} keyword)

file = ' {file}\n'

Date in my timezone

We can use




2048 CLI in python

I’ve decided to code a simple CLI version of the 2048 game in python:

Some details of the implementation:

* I’ve handled only the “up” move. For the others I do a rotation of either 90, 180 or 270 degrees the matrix representing the board.
* The core of the algorithm is apply “gravity”, perform the merge with adjacent element with same number and then apply the “gravity” again because my merge function can leave empty spaces.


Get every new post delivered to your Inbox.