Archive for September, 2018


September 28, 2018 Leave a comment

Git hooks are scripts that Git executes before or after events such as: commit, push, and receive. Git hooks are a built-in feature – no need to download anything. Git hooks are run locally.

These hook scripts are only limited by a developer’s imagination. Some example hook scripts include:

* pre-commit: Check the commit message for spelling errors.
* pre-receive: Enforce project coding standards.
* post-commit: Email/SMS team members of a new commit.
* post-receive: Push the code to production.

Categories: git, Interesting

Using Version Control Hooks

September 27, 2018 Leave a comment

Flake8 can be integrated into your development workflow in many ways. A default installation of Flake8 can install pre-commit hooks for both Git and Mercurial. To install a built-in hook, you can use the flake8 –install-hook command-line option.

Categories: Interesting Tags: ,

Tips for using a git pre-commit hook

September 26, 2018 Leave a comment
Categories: git, Interesting

Welcome to Hypothesis!

September 25, 2018 Leave a comment

Hypothesis is a Python library for creating unit tests which are simpler to write and more powerful when run, finding edge cases in your code you wouldn’t have thought to look for. It is stable, powerful and easy to add to any existing test suite.

Categories: Interesting

Creating a Simple Recommender System in Python using Pandas

September 24, 2018 Leave a comment

Have you ever wondered how Netflix suggests movies to you based on the movies you have already watched? Or how does an e-commerce websites display options such as “Frequently Bought Together”? They may look relatively simple options but behind the scenes, a complex statistical algorithm executes in order to predict these recommendations. Such systems are called Recommender Systems, Recommendation Systems, or Recommendation Engines. A Recommender System is one of the most famous applications of data science and machine learning.

A Recommender System employs a statistical algorithm that seeks to predict users’ ratings for a particular entity, based on the similarity between the entities or similarity between the users that previously rated those entities. The intuition is that similar types of users are likely to have similar ratings for a set of entities.

Currently, many of the big tech companies out there use a Recommender System in one way or another. You can find them anywhere from Amazon (product recommendations) to YouTube (video recommendations) to Facebook (friend recommendations). The ability to recommend relevant products or services to users can be a huge boost for a company, which is why it’s so common to find this technique employed in so many sites.

In this article, we will see how we can build a simple recommender system in Python.


Different tabs for different files

September 14, 2018 Leave a comment


Needed to have different tabs for different files when editing with vim. Eg in python tab == 4 spaces, in a MakeFile tab == tab.


Added this to ~/.vimrc

" Use different indentation for yaml files
 autocmd FileType yaml,yml setlocal tabstop=2 expandtab shiftwidth=2 softtabstop=2

 " In makefiles, don't expand tabs to spaces, since actual tab characters are
 " needed, and have indentation at 8 chars to be sure that all indents are tabs
 autocmd FileType make set noexpandtab shiftwidth=8 softtabstop=0


Categories: vim Tags: FutureWarning: Possible nested set at position 1

September 11, 2018 Leave a comment


You get the following error when running flake8

$ flake8
/usr/local/lib/python3.7/site-packages/ FutureWarning: Possible nested set at position 1
EXTRANEOUS_WHITESPACE_REGEX = re.compile(r'[[({] | []}),;:]') E302 expected 2 blank lines, found 1

# Uninstall flake8

$ pip3 uninstall flake8
Uninstalling flake8-3.5.0:
  Would remove:
Proceed (y/n)? y
  Successfully uninstalled flake8-3.5.0

# Install the working version

$ pip3 install -e git+ --src /usr/local/lib/python3.7/site-packages
Obtaining flake8 from git+
  Cloning (to revision 9631dac5) to /usr/local/lib/python3.7/site-packages/flake8
  Did not find branch or tag '9631dac5', assuming revision or ref.
Collecting pyflakes<2.1.0,>=2.0.0 (from flake8)
  Downloading (53kB)
    100% |████████████████████████████████| 61kB 460kB/s
Collecting pycodestyle<2.5.0,>=2.4.0 (from flake8)
  Using cached
Requirement already satisfied: mccabe<0.7.0,>=0.6.0 in /usr/local/lib/python3.7/site-packages (from flake8) (0.6.1)
Requirement already satisfied: setuptools>=30 in /usr/local/lib/python3.7/site-packages (from flake8) (40.0.0)
Installing collected packages: pyflakes, pycodestyle, flake8
  Found existing installation: pyflakes 1.6.0
    Uninstalling pyflakes-1.6.0:
      Successfully uninstalled pyflakes-1.6.0
  Found existing installation: pycodestyle 2.3.1
    Uninstalling pycodestyle-2.3.1:
      Successfully uninstalled pycodestyle-2.3.1
  Running develop for flake8
Successfully installed flake8 pycodestyle-2.4.0 pyflakes-2.0.0


Categories: python Tags: ,