Erik Zaadi

The tales of a coding manager addicted to dad jokes

Recent Posts

mv {word,octo}press

After my wordpress blog was hacked twice, and I got a warning from google that I host malware (!), I decided that enough is enough, time to ditch Wordpress and hope never to see php code again.

I managed to resist the urge to roll my own blog engine (haven’t we all been there?), and decided to use octopress.

After being victorious over ruby and rvm who thought it’d be hilarious to make me go crazy while making earthquake work, I thought I might give octopress a shot.

Startup weekend Haifa (2011)

Last week, a Startup Weekend event took place in Haifa.

Being somewhat of an addict to Startup Weekend, I attended.

Although the location was a bit smaller and less equipped than the previous Startup Weekends in Tel-Aviv (Yaffo), the organizers worked hard to make it a fun and enjoyable experience.

I pitched an idea there that didn’t get enough votes unfortunately, although I had a lot of positive response from people.

I joined a team called VideoChef, with some really great people.

Jenkins on Nginx – Take 2 - Static file handling

Updated the wiki with a Nginx configuration that handles all the static files for Jenkins, really improves performance.

Jenkins on Nginx - Fixing artifacts downloading problem

For those of you using Nginx to proxy Jenkins, be sure to copy the updated nginx server config from the wiki page https://wiki.jenkins-ci.org/display/JENKINS/Running+Hudson+behind+Nginx.

I added some proxy buffer specific parameters that fixes artifact downloading..

Connecting Jenkins to self signed certificated servers

I’ve recently needed to connect our Jenkins CI server to several internal servers such as Jira and IRC (Fun post coming soon on Jenkins@IRC..).

The problem with these servers are that their SSL certificates are selfsigned. This causes Jenkins to fail when connecting to the servers with the following error (Which you can see in the Jenkins log):

1
2
3
4
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:
PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target

To solve the problem, instead of going through Java keysigning hell, download JavaSSL.zip, extract the files and open a command prompt or shell to the extracted folder.

The small things

Lately I’ve been going deeper and deeper down the nix rabbit hole at my new work.

The deeper I go, the more I undestand what a nix n00b I am. I’ve had so many OMG/AHA! moments, and it reminds me a bit of the period I (re)discovered the Mac, and when my journey of the open source world began.

Here’s a small example that’ll make anyone with nix experience chuckle, since it’s so basic:

Automating Egged Bus Wifi Connection

On my commute to work I travel by bus, with wifi.

It’s one of those wifi’s you have to open a browser and click on some license agreement in order to connect.

After agreeing, the browser is redirected to a page filled with commercials, earning yet another referral point to the company that set up this wifi.

Annoying as it might seem, this is not the end of the world, as you overcoming it by clicking is not that bad.

Making the touchpad work with two finger swipes on ubuntu 10.10 installed on a Lenovo laptop

Once you’ve tried a mac, it’s hard to use a touchpad without multitouch capabilities.

On Ubuntu 11.04 this should work out of the box, but the script below will allow you to control the settings better than the UI.

Save this script somewhere on your disk:

1
2
3
4
5
6
7
8
#!/bin/sh
sleep 10
xinput --set-prop --type=int --format=32 "SynPS/2 Synaptics TouchPad" "Synaptics Two-Finger Pressure" 4
xinput --set-prop --type=int --format=32 "SynPS/2 Synaptics TouchPad" "Synaptics Two-Finger Width" 8 # Below width 1 finger touch, above width simulate 2 finger touch. - value=pad-pixels
xinput --set-prop --type=int --format=8 "SynPS/2 Synaptics TouchPad" "Synaptics Two-Finger Scrolling" 1 1 # vertical scrolling, horizontal scrolling - values: 0=disable 1=enable
xinput --set-prop --type=int --format=8 "SynPS/2 Synaptics TouchPad" "Synaptics Edge Scrolling" 0 0 0 # vertical, horizontal, corner - values: 0=disable 1=enable
xinput --set-prop --type=int --format=32 "SynPS/2 Synaptics TouchPad" "Synaptics Jumpy Cursor Threshold" 250 # stabilize 2 finger actions - value=pad-pixels
xinput --set-prop --type=int --format=8 "SynPS/2 Synaptics TouchPad" "Synaptics Tap Action" 0 3 0 0 1 2 0

Open System => Preferences => Startup application and add a new startup item :

Times they are a changin

It took over a year for the idea to boil up inside of me until I finally reached the decision.

3 1/2 months ago it hit me, I finally understood that I wanted to leave XMPie.

Before I started to look elsewhere, I notified my superiors, as I wanted to make sure that someone good would replace me.

It saddens me a bit that until now, two days before I leave, we didn’t find any adequate recruit to take my place.

Node.js Frontend Fu (node-fe-fu)

As you might have noticed from my previous post, My geekadellic franzy about node.js is reaching new peaks..

I’ve created a small node.js module to be used not as a web server, but more as an aid for developing frontend applications regardless of the backend technology used.

What the module does is:

  1. Searches for .less files, parses them, and saves two copies of the file: E.g. css/main.less Will be transformed into css/main.css - parsed less to css css/main.min.css - parsed less to css and minified
  2. Searches for .js files, minifies them: E.g. js/main.js Will be minified and saved to js/main.min.js

You can choose to search directories recursively, and if you wish to watch the files for changes, triggering a parsing/minification upon each save.