Today’s the day. The day you help save the internet from being ruined.


Yes, you are, and we’re ready to help you.

(Long story short: The FCC is about to make a critical decision as to whether or not internet service providers have to treat all traffic equally. If they choose wrong, then the internet where anyone could start a website for any reason at all, the internet that’s been so momentous, funny, weird, and surprising—that internet could cease to exist. Here’s your chance to preserve a beautiful thing.)

Chef’s special rocking the stage (turn off your audio).

Setting up butterfly labs bitcoin miner with CentOS on BFGminer

Modprobe the serial driver

sudo /sbin/modprobe ftdi_sio vendor=0x403 product=0x6014

Make it load on boot

sudo -i
cat << EOF > /etc/sysconfig/modules/ftdi_sio.modules

/sbin/lsmod | grep ^ftdi_sio > /dev/null
if [ $? -eq 1 ]
  exec /sbin/modprobe ftdi_sio vendor=0x403 product=0x6014 >/dev/null 2>&1

Needs to be executable

sudo chmod +x /etc/sysconfig/modules/ftdi_sio.modules

Add the repository for BFGMiner

sudo -i
cat << EOF > /etc/yum.repos.d/bfgminer.repo
name=bfgminer for RHEL 6 and clones - $basearch - Base

Install BFGMiner

sudo yum -y install bfgminer screen

Add your (mining) user to the dialout group to get access to usb serial devices.

sudo usermod -a -G dialout $(whoami)

Copy the default config and edit it.

cp /usr/share/doc/bfgminer/example.conf ~/bfgminer.conf

Add pools and settings.

vi ~/bfgminer.conf

Start your bfgminer in a screen

screen bfgminer -c ~/bfgminer.conf


Replacing Dropbox with BitTorrent Sync (for 1password)

I use 1password for managing all my passwords.

  • I need to be able to access these passwords on all platforms (mac/phone/tablet/pc).
  • And I need to be able to keep these passwords in sync across these devices.

The 1password app natively supports Dropbox, so I have been using that for a year or so.

But the thought of having my sensitive information on a third party service like Dropbox bugged me. 1password stores my passwords in an encrypted format, but I don’t want it to be available to “third parties” at all.

So I set out to find an alternative. Preferably one that doesn’t include a cloud storage provider.

My first consideration was to run my ownCloud somewhere, but I already run a bunch of infrastructure, and I really don’t want to manage more.

The thing is: my 1password file only changes ones a day or so. So running a service full time, to only manage a ones a day sync, is a bit excessive.

My next option, was to hack something using rsync and push out a change to my devices once every so often. But I travel a lot, and my mobile phones / tablets don’t have a static IP and/or are behind NAT/Firewall. All these things can be overcome, but it would become a pretty hacky project.

Then I came across BitTorrent Sync. It uses the Bittorrent protocol to sync my files, without requiring central storage or a cloud provider. And it has support for all the platforms I require. I decided to try it out.

I started by installing Bittorrent Sync on my mac and phone. I created a folder to sync called “BTSync” and copied my 1Password.agilekeychain in there.

Now it’s time to couple my devices. Open BitTorrent Sync ->

Ctrl + Click (right click) the folder you want to sync ->

Connect Mobile Device -> Full access

On your android device, choose add folder, scan the QR code and you are set! Just wait a little while for your keychain to propagate. When that is done, it is time to point the 1password app where to go.

Open the 1Password app on Android -> Press the … in the right bottom corner -> More -> Update Sync Settings ->

SD Card -> Select the directory that you “BTSync” -> Select the 1Password.agilekeychain ->

Set Data File Location. And you are good to go! Cloudless, synced 1password keychains!

Dear landlord

Please place wifi antenna’s in the correct position. These antenna’s are directional. So if you place them in a vertical position, only the people who are in the path of the AP will get a decent connection. However 2 out of 4 apartments on this floor are not getting good reception this way.


So instead, mount them horizontally, so we all get good reception. K, thx. Bye!


To my fellow hacker on my apartment building

I recently moved to a new apartment building where they have shared wifi for the entire building. The only problem is that there is a fellow hacker who wants all the bandwidth for himself (or he’s trying to collect handshakes to hack the wifi).

He tries to get this by sending ‘wifi deauths’ that force disconnect me from the network. He does this from spoofed mac addresses, that change every time. But it usually takes him a couple of tries to send a successful deauth. So, every time he tries, I block his fake mac address in my firewall.

#!/usr/bin/env python

import subprocess as sub
import os
import uuid

if os.geteuid() != 0:
    exit("You need to have root privileges to run this script.\nPlease try again, this time using 'sudo'. Exiting.")

mymac = ':'.join('%02X' % ((uuid.getnode() >> 8*i) & 0xff) for i in reversed(xrange(6))).lower()
whitelist = [mymac, 'd4:ca:6d:5b:5e:7c']
blocked = []

# sudo tcpdump -ni en0 -e ether proto 0x888e
p = sub.Popen(['tcpdump', '-l', '-ni', 'en0', '-e', 'ether', 'proto', '0x888e'], stdout=sub.PIPE)
    for row in p.stdout:
        mac = row.rstrip().split(" ")[1].lower()   # process here
        print row
        if mac not in whitelist and mac not in blocked:
          cmd = ['/sbin/ipfw', 'add', 'deny', 'MAC', 'any', mac]

except KeyboardInterrupt: