Recent Posts
Cheap IOT By Hacking Routers —
One must make effort to be lazy
Hush hush now Logstash —
Yo dawg, I heard you like to process logs with Logstash...
Bye Octopress, Hello Hugo —
Yet another blog platform migration
s3cmd is dead, long live s3-cli —
For those of you that still use Octopress like me, one of the annoying things is deploying to Amazon S3.
I was using s3cmd which is indeed an awesome utility to sync the rendered blog to S3, however it’s slow, it’ll take about 5 minutes to deploy my blog, which is not a huge blog.
While implementing a quick hack that uploads images to Amazon S3, I stumbeled upon a certain Mr Awesome called Andrew Kelley - @andrewrk, who’s node s3 client I used.
Two bots one Slack —
We started evaluating Slack at BigPanda, and it is truly great.
The signup process was super simple, adding integrations is really fast, and all the apps, web and native feels fresh and fast.
Needless to say, one of the first things I did was to hook up on of our Hubot instances that controls our door (see previous post).
With our previous not so hip chat, we did a quick hack, creating an Android Widget that calls our Hubot instance (called Bellboy), opening the door.
BigPanda's Raspberry Pi Powered Geekalicous Door —
We recently moved to a new shiny office at BigPanda.
Before moving in, we renovated parts of the office, including the door. We got a door with an electronic lock, which usually is opened using a code panel.
Alas, we can’t have a simple code panel, we’re way to cool for that!
So we decided to hook up our Raspberry Pi to control the door.
Here’s the Raspberry Pi, all hooked up:
handle proxy 404 in nginx —
In our SPA era, when you get a 40x or 500x (Oy vei) error from your proxied backend, you typically want to display a static part of your SPA.
To do this, we can usual a small but usefull nugget from nginx:
HERE BE DRAGONS
1 proxy_intercept_errors on; This ensures that if the proxied backend returns an error status, nginx will be the one showing the error page.
Long time no spamming —
TL;DR - Yet another ‘didn’t blog in a while due to ENTER EXCUSES HERE’ post..
I’ve moved on I now work at BigPanda since March, and until now, I didn’t make time to write here..
I did get a chance to write a blog post at the BigPanda Blog about how we use vagrant, which was fun writing.
In the end there are only two reasons I stopped blogging.
Number one: Refactor Syndrome
Cleaning up Jenkins jobs —
Jenkins rules, but… It’s a Java XML consuming monster.
Once you get up to a large number of jobs (We are near 300), it gets a bit tough, especially when restarting.
So, every once in a while, I cleanup old unused jobs that are left over.
delete_non_active_jobs.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 import urllib2 import os from shutil import rmtree def get_active_jobs(): request = urllib2.
Assign an Application to all desktops in Applescript —
Back to basics, applescript It’s been a while since I wrote applescript.
Although the capabilities are truly amazing, I never really connected to the tell syntax, a bit to verbose for me.
Anyhow, I’m using slate for automagically position apps when I change monitors (amongs other things), and I needed a way to pin certain applications to all desktops when using multiple monitors, or to a specific desktop when using just one monitor.