OxDEAD Unicornz

Have you ever seen so many?

Static Site on Google Cloud Storage: Caching

Be aware Google Cloud storage sets Cache-Control:public, max-age=3600 header for all files by default. This means files are going to be cached by browsers and proxies so it is going to take up to an hour for folks on the Internet to see an update.

I’ve decided to decrease default max-age value to 600. So I upload blog files with -h option set now:

gsutil -h "Cache-Control:public, max-age=600" rsync -d -r . gs://<bucket_name>/

0xDEAD Unicornz Ascending to a Cloud

What time is it? Migration time! Long story short I’ve decided to play a bit with Google Cloud services and Go. I’m really impressed with the platform so far – it’s awesomely documented and super easy to use. I was impressed to the point I’ve decided to move my blog from a VPS to Google Cloud Storage just to see how it goes.

Here is a step by step instruction

Git Author != Committer

It may be quite confusing, but in git ‘commit author’ and ‘committer’ are separate beasts.

Let’s imagine you have a remote Gerrit repo and you noticed your last commit has author’s email configured as foo@internal.com:

Don’t Rely on Ubuntu 14.04 Service Autocomplition

It appears lot of my colleagues think they’ll get the name of any service in Ubuntu system autocompleted by typing service first_few_letters_of_service_name and pressing Tab button. When this does not work (and it does not work a lot) it creates a lot of confusion and rises lot of questions.

In Ubuntu 14.04, the script that handles completions for service command is /usr/share/bash-completion/bash_completion It looks for service names as files in /etc/rc.d/init.d, /etc/init.d, and in the output of systemctl list-units --full --all

DNS Zone Updater Script

Howdy guys and girls? Unicorn Rider is back and he has something for you.

In most cases Internet providers assign dynamic IPs to customers. It creates problems when you need to access some service in your local network since you don’t know which IP you should connect to.

Debian 8 Xfce4 Xscreensaver Lock Problem

Long blah-blah-blah, you may skip to the problem description

Long story short – after a system upgrade on my old EEEPC1005PE netbook awesome tile manager stopped to work with my config. I’m using some shifty library features and it looks like library from Debian package awesome-extra version 2012061101 does not keep up with awesome 3.5.6-1.

I don’t think it’s something unrecoverable but decided to try some new (for me) window manager. Since the netbook is not very powerful quite obviously I didn’t even consider fancy ones. My two options are xfce4 and xmonad.

Python. Threading. Function() Takes Exactly X Arguments (Y Given)

Was playing around running multiple threads in Python. Here is a part of script launching docker_cleanup(controller_name) function in a separate thread.

from threading import Thread
    threads = []
    for controller_name in controllers:
        # Remove container if it already exists
        t = Thread(target=docker_cleanup, args=(controller_name))
    for t in threads:
        t.join()  # Block main thread while childs executed