Virtual environment is essential component of Python world. You can isolate different version of packages into separate environments.

How to set up virtualenv?

Install Python and virtualenv package by pip:

pip install virtualenv


Create directory which will hold the virtual environment (e.g. pyenv34) and initialize it:

virtualenv --system-site-packages pyenv34


You can uses system-site-packages option to tell virtualenv to inherit system packages from system installation of Python.

The next step is to activate environment:



Your command prompt will change and you will see the name of virtual environment in the command line.

Now you can install, uninstall packages by pip and everything will be isolated in the virtual environment directory.

E.g. install ipython


It’s time to import antigravity 🙂


Shells like Bash or Zsh have one neat feature: repeat last command.

How to invoke it? Use double exclamation mark:


This is very handy when you have typed the command as normal user, but it must be executed by sudo.


apt-get install safeq
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)

Execute the same command with elevated privileges:

sudo !!

Sometimes it is necessary to work only with text console.

Git provides rich command line interface, but browsing history is little bit cumbersome.

If you like command line tools and email client mutt then there is awesome tool for you: tig.

tig is text mode interface for git.

Just enter directory with cloned git repo and type:



Quick navigation:

  • Enter – show details
  • Tab – switch window pane
  • q – quit

You can find more information at

This tool is available for Mac and Linux. Windows version is available in Cygwin.

Sometimes it is necessary to modify several places in text file at once.

Sublime Text has very neat feature: multiple cursors.

Point mouse cursor at desired text location, press CTRL and left click. You can repeat this operation several times.


You’ll see multiple cursors and as you start typing all cursors will perform the same operation.


Gradle requires Java and it can reuse all great features from the runtime. The drawback is that it takes several seconds to boot whole Groovy/Java engine after typing command: gradle.

There is simple way how to speed up Gradle: use daemon mode.

The easiest approach is to put following line into file ~/.gradle/


Gradle will automatically spawn daemon process after the first execution of command gradle.


Every build is starting faster.

That’s nice, but daemon is sitting in the memory. You can shut down daemon by command:

gradle --stop

Interesting option for developers is to leave daemon in running in foreground and watch daemon in debug mode:

gradle --foreground --debug

More detailed info about Gradle daemon is available in Gradle manual.