Thank you, big screen

Thank you, big 27 inches monitor, for the following:

  1. allowing me to place two PDF documents side by side without having my brain start to interpolate pixels
  2. making Netflix worthwhile
  3. letting me see enemies in videogames from a distance
  4. making me comfortable when using IDEs
  5. making photos look better than ...
more...

Yaml fixture with ManyToManyField in Django

The official docs explain how to set up “natural keys” for easier writing of fixtures.

The things to remember are basically two:

  • setup a models.Manager (write the class with an appropriate get_by_natural_key method and instantiate it in the managed class)
  • the fields used for a natural key must be ...
more...

notes on developing with Cmake projects

Date Tags C++ / cmake

Problem

The library provided by your distribution is old and you want to link your program to a more recent version.

Furthermore, I assume both the library you need and your program employ CMake as a build tool.

As an example, I’ll use openbabel for the library, while the ...

more...

PKGBUILD for Avogadro local testing

Since I’m writing some extensions to Avogadro, I find useful having a PKGBUILD for creating a package on Arch Linux.

Here it is

pkgname=avogadro-devel
pkgver=$(git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g')
pkgrel=1
arch=('i686' 'x86_64')
source=()

prepare() {
  cd "${startdir}"  
  rm -fr pkgbuild ...
more...


Best way to install pathogen bundles

Since I’ve put .vim in a git repo, the best way to install pathogen bundles from github is to add a submodule to the repo; therefore, instead of running

cd ~/.vim/bundle
git clone https://cool-vim-plugin.git

I should run

cd ~/.vim
git submodule add https://cool-vim-plugin.git bundle ...
more...

A messy BTRFS recovery

I wanted to recover a btrfs snapshot. I eventually made it but I encountered a few hiccups.

First of all, given the subvolume scheme I chose, I shouldn’t rely on snapper rollback, explanation here.

Instead, I have to boot from the Arch live USB

loadkeys it
cryptsetup open /dev ...
more...

Squash all commits between a branch and master

I usually create small commits when adding new code such that I can easily revert back little by little. This is fine but creates a long and messy history. Git allows squashing commits together.

I typically create a feature branch

git checkout -b feature-branch
# do stuff
git add -a
git ...
more...

automatically activate python virtualenv in pycharm

I slightly modified an answer from stackoverflow to make it work on linux

nano ~/.pycharmrc
if [ -r ".pycharm/term-activate" ]; then
   source ~/.bash_profile
   source ".pycharm/term-activate"
   source $PYCHARM_VENV/bin/activate
fi

On your project folder, assuming you have a virtual environment called venv35,

mkdir .pycharm
nano .pycharm/term-activate

With the content ...

more...