Search This Blog


Wednesday, October 22, 2014

Python coroutine based state machine

I needed a simple state machine in a project I'm working on. Doing some research I came across coroutines. This post won't even try to explain what coroutines are. Instead, it just shows a super simple example of a finite state machine using coroutine.

Thursday, October 9, 2014

Installing KPCLI on OS X

keepasscli (kpcli) setup

Notes on installing and configuring keepasscli (a.k.a. kpcli) on OS X 10.9 (Mavericks) and 10.10 (Yosemite)

date: May 2014

First, download kpcli.
Once downloaded, put it in its final location (e.g. ~/):

mv ~/Downloads/ ~/)

Make it executable:

chmod u+x

Install perl dependencies via cpan

sudo cpan Crypt::Rijndael
sudo cpan Sort::Naturally
sudo cpan Term::ShellUI
sudo cpan File::KeePass

In theory that should be it, but there’s a problem with Term::readline. To fix it follow the instructions here


For the Term::ReadLine::Gnu the previous link didn’t work for me when updating to OS X 10.10. Instead I followed these instructions

Other dependencies

To be able to copy to the clipboard inside kpcli (e.g. xu or xp), you will also need to install these

sudo cpan Clipboard
sudo cpan Capture::Tiny

Finally, you can make an alias to kpcli including the DB location for fast access. Add the following line to ~/.bash_profile

alias kp="/Users/myuser/ -kdb='/Users/myuser/mydb.kdbx'"

Thursday, June 19, 2014

Santiago, Chile

Great summary of Santiago: beautiful mountains, a BIG air pollution problem, lots of buildings ... and, of course, we are football fans.

Monday, June 9, 2014

Beamer ref

This is a great reference for beamer.

Monday, June 2, 2014

My Essential Sublime Text plugins

This is a personal matter, so this is mostly for self-documentation, but feel free to suggest other plugins you find essential for your own workflow.

Tuesday, May 20, 2014

Need to write a Python decorator?

Before diving into your preferred development environment, you should check if it has already been written. Here you can find several decorators to cover many common cases (momoization singleton, logging, etc.).