Monday, December 18, 2017

Change Matplotlib backend to avoid QT5 issues.

This is an issue that has been bugging me for about 5 hours. Until I reached the solution of changing the backend of Matplotlib for good.

import matplotlib
gui_env = ['TKAgg','GTKAgg','Qt4Agg','WXAgg']
for gui in gui_env:
        print "testing", gui
        matplotlib.use(gui,warn=False, force=True)
        from matplotlib import pyplot as plt
print "Using:",matplotlib.get_backend()


Tuesday, October 17, 2017

Playing around with NL Toolkit

So I was planning to play around with Natural Language a little. I have started from this page here since it uses Python and is easily accessible.
I am going to this use this page as a log for this activity to log how I fixed certain errors and progressed through the processes. So here goes.
#1 Error: Resource gutenberg not found
Solution: I almost gave up when I finally hit this URL!topic/nltk-users/LEGj1IHJJ1g
I used this command to fix the path to the library'path_to_nltk_data')

Wednesday, September 27, 2017

How to configure Wordpress to run on Docker

Well, it's not a big deal. You need two (2) things.
#1. This Nginx config
server {
    listen 80;
    root /var/www/html;
    index index.php;
    access_log /var/log/nginx/hakase-access.log;
    error_log /var/log/nginx/hakase-error.log;
    location / {
        try_files $uri $uri/ /index.php?$args;
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass wordpress:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
#2 You have to make sure your PHP instance (docker) has mysqli installed (or installing via DockerFile) everytime.


Sunday, November 27, 2016

Display switcher for terminal buffs

I am not a Linux developer or anything, I just love writing scripts that facilitate in making me lazy. So here's one that lets me switch my displays (dual). I usually work on only one and when I need to quickly switch, I use this. It depends on xrandr though. And it has my display names hardcoded (lots of assumptions, I know), but it might just come in handy.
Switch to left or right
./ left
./ right
Set both on with duplicate view
Set both on their individual view
./ both

You can simlink it /usr/local/bin too.
Github gist

Sunday, November 06, 2016

Getting file list from torrent magnet URLs using Aria2

So, I hit upon this realy awesome SO reply on how to fetch the torrent file list using magnet URLs. I use Aria2 for torrents and it's be design that you cannot get any meta data from Magnet URLs because they do not hold any information off the link. They fetch the meta data when you use them. So, what you have to do is, generate a torrent file from them and then use THAT torrent file for listing. So it's a 2 step process.

First you create the torrent file using:
aria2c --bt-metadata-only=true --bt-save-metadata=true -q "magnet url here"
It will generate a torrent file right there with a name that is a hash just use that to get the file list.


Saturday, October 08, 2016

Replacing Apache in your VPS with Nginx

If you have not been following the web development scene recently, you need to know that Apache is being seriously challenged by Nginx in the ideal server candidate position. Nginx is a great server daemon that also uses much less resources. Recently I attempted to make a move to Nginx from Apache. But there were some issues that needed to be addressed.

Well, setting up Nginx is really straightforward, just run
# apt-get install nginx
But you might face problems with starting the nginx service. Well, the most likely reason probably is that by default Nginx is configured to run on Port 80. In computers one port cannot be used by multiple programs at the same time. But Apache too is configured to listen on port 80. Now, if you want to move to Nginx and serve all your sites via Nginx, you can unassign Apache from port and give Nginx the instruction to listen to port 80. To do that you will need to tweak an apache configuration file. This may be different for different distros and scenarios but the most common place to look for the Apache configuration files is
Now usually the configuration can be found in
Just open your appropriate configuration file and try to find the the line:
Listen 80
If you can't find the line it's very much possible that the port instruction is in different file. Just read through the configuration and try to find if any "Include" directive. It could be like
Include "ports.conf"
Which means the port Listen directive is there. Open the file (you should be able to find that in the same directory).
Now change "Listen 80" to "Listen 1234". This will make Apache listen to port 1234.
Now you should restart Apache with
#servicectl restart apache2
And start nginx with
#servicectl restart nginx

Monday, October 03, 2016

Wordpress to survive the most difficult hurdle

A legend in the making. Wordpress, as popular as it is among content writers, it is also one of the most cubersome platforms to deploy on. And when it comes to merging more than one wordpress sites, the biggest hurdle is the Database. Well, VersionPress is coming to the rescue.

What VersionPress (VP) attempts to do is make the whole Wordpress installation version controllable. Now, it's one thing when you are merging files but it's completely different monster when you want to take on the Database. Sure, merging 2 DB dumps cannot be an issue for git but what about context?

Imagine this scenario where you have developers making your site look and work awesome and content writers writing away on live production server. Now the day comes when you have to pull the changes from the development version to the production. Well several things get intertwined here
  • Posts having same IDs
  • Plugins having custom tables
  • Options and Meta
Now that's a real spaghetti you got there. When you think about it, you feel like nothing short of a magic is going to be needed for that right? Well, if that's so, VersionPress is magic. Here's how they are supporting plugins in their new alpha. If you are late to the show, you might want to read their past release notes too.

Change Matplotlib backend to avoid QT5 issues.

This is an issue that has been bugging me for about 5 hours. Until I reached the solution of changing the backend of Matplotlib for good. ...