Extracting SGN files used by the Israeli Court System

The Story

One of my friends has some dealings with the Israeli courts.
The noteworthy (and annoying) part of their digital documents is that these documents are using a novel format instead of some industry standard.
Files arriving by email have the SGN suffix, and the email includes the following …

more ...

Adding a child element in XSLT

I recently had to edit a big XML file, and add a child elemnt to every element within. To simplify matters, say I had something like this:

<?xml version="1.0" encoding="UTF-8"?>
<rooty xmlns:ppl="some_identifier">
    <age …
more ...

Populating a NetworkX graph with a scanner

I had a graph living outside Pythonland (a commit tree with dependencies) and wanted to do graphy things to it. To do that, I first had to put the data into a NetworkX graph. I wrote this code bit to discover a graph-like structure and put into a NetworkX (or …

more ...

Getting Magent Links from Deluge

My latest weekend-hack is a plugin that shows the magnet link for a torrent entry


I had something torrented a long time ago, and a friend asked me for the torrent.
However, I haven't kept the original .torrent file, she was tech-oriented enough so I can give her the …

more ...

Prettify HTML pages with BeautifulSoup

The story

Today I wrote some HTML page by hand (my new homepage).
I then used this script to make the HTML code nicer:

The script

This requires the BeautifulSoup module for python

#!/usr/bin/env python

import sys
from bs4 import BeautifulSoup

def bs_file(filename):
    with open(filename, 'r …
more ...

Keeping Windows Awake (with PowerShell)

The story

I got a new game on Steam and got set to downloading it.
For some reason, Steam and Windows have decided that it's better to save some electricity and put my computer to sleep, rather than finish my game.
Today I discovered that instead of playing my game …

more ...

Chef "Share This" script

I wrote this little script to upload the current cookbook to the Chef Supermarket.
It should be run from within the cookbook's directory.

knife cookbook site share -o ../ $(basename $(realpath .)) -c ~/.chef/knife-supermarket.rb

Where my supermarket config is as simple as:


Interesting points …

more ...

Dry Run for Python Pip

As I wrote some time ago, I started my own python cookbook for Chef because I didn't like the direction the "default" one was going.
I recently added a new feature that I wanted to talk about. I called it smart_install in the cookbook, but it's actually a "dry-run" mode …

more ...

Filtering in Shell

Today I told someone that a feature I'm missing in Bash is filtering.
Then I thought about how much I miss it, so I went ahead and "implemented" it.

Filtering in other lanaugaes

Basically, I'm referring to taking a collection/stream of items, running some code on every one, and …

more ...

Cookbook Versioning Script

The Problem

I've always disliked releasing cookbook versions manually. The process requires a lot of bureaucratic steps which are easy to forget and require no thought at all.
Before I had this script, I sometimes avoided modifying the cookbook's version when I only applied "a little fix", losing the ability …

more ...