Prevent Spotify from "freezing" on Linux with Awesome wm

I recently upgraded Spotify on Linux to version 0.9.10.

A part from the nice improvements (it's cool to have a browse tab, at last), there are also some issues.

Specifically, it looks like the song change notification doesn't work well with Awesome WM, causing most parts of X to partially freeze for about 15 seconds (Awesome is completely unresponsive, only a few applications keep accepting keystrokes, mouse clicks are simply ignored).

This is really annoying, especially since there is apparently no way to disable it from the settings UI.

Luckily enough, I was able to find ...

Using nvidia driver on debian jessie

I had some troubles getting nvidia proprietary drivers up & running on Debian Jessie (kernel 3.13-1-amd64).

I'm sharing the solution I found here, as it might be useful to somebody else.

Machine configuration

Machine: Thinkpad W530
Graphics card: NVIDIA Corporation GK107GLM [Quadro K2000M] (rev a1)
Operating System: Debian Jessie (testing) - amd64
Kernel: 3.13-1-amd64 (3.13.10-1)

The error message I got:

[   36.508494] NVRM: GPU at 0000:01:00.0 has fallen off the bus.
[   36.508500] NVRM: os_pci_init_handle: invalid context!
[   36.508502] NVRM: os_pci_init_handle: invalid context!
[   36.508507] NVRM: GPU at 0000:01:00.0 has fallen ...

Importing Apache logs in ElasticSearch

I needed some way to visualize and analyze logs from webservers.

So, I decided to use the "elasticsearch stack" for that:

Setting up ElasticSearch

Just download, untar and launch:

wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.1.1.tar.gz
tar xzvf elasticsearch-1.1.1.tar.gz
cd elasticsearch-1.1.1
./bin/elasticsearch

Check if everything is ok:

http localhost:9200

Importing logs to ElasticSearch

I used LogStash to import the logs from file to ElasticSearch. That required a bit of configuration.

First, download & unpack logstash:

wget https://download.elasticsearch.org/logstash/logstash/logstash-1.4.0 ...

Even better testing, with py.test + tox + travis

I recently wrote a post about using py.test and tox. Now I improved the technique a bit, so here it is a new post with all the recent improvements.

(Please refer to that post for the problems I had to solve, and reasons behind the need of this kind of customizations).

The new test class

In order to properly support Python3, I'm using this test class in my setup.py:

from setuptools.command.test import test as TestCommand

class PyTest(TestCommand):
    test_package_name = 'MyMainPackage'

    def finalize_options(self):
        TestCommand.finalize_options(self)
        _test_args = [
            '--verbose',
            '--ignore=build',
            '--cov={0}'.format(self.test_package_name ...

GitHub-pages-like publishing

I really love using GitHub pages for publishing stuff: I can easily setup the required steps to build & publish my website, and then forget about it.

When I need to make a change, I can just pull the latest copy, do the changes, push back and publish.

No need to remember to update remote copies, restart services, etc.

So, I decided to figure out a way to use the same workflow on my servers too, and this is what I came out with.

First, let me introduce ghp-import

It's a nice script to quickly import a directory in the ...

« Page 3 / 7 »