The internet sucks. Build a LAN.| notes.pault.ag
Praise Kier!| notes.pault.ag
Years ago, at what I think I remember was DebConf 15, I hacked for a while on debhelper to write build-ids to debian binary control files, so that the build-id (more specifically, the ELF note .note.gnu.build-id) wound up in the Debian apt archive metadata. I’ve always thought this was super cool, and seeing as how Michael Stapelberg blogged some great pointers around the ecosystem, including the fancy new debuginfod service, and the find-dbgsym-packages helper, which uses these same header...| Paul's Notes
PKCS#11 is a standard API to interface with HSMs, Smart Cards, or other types of random hardware backed crypto. On my travel laptop, I use a few Yubikeys in PKCS#11 mode using OpenSC to handle system login. libpam-pkcs11 is a pretty easy to use module that will let you log into your system locally using a PKCS#11 token locally. One of the least documented things, though, was how to use an OpenSC PKCS#11 token in Chrome. First, close all web browsers you have open. sudo apt-get install libnss3...| Paul's Notes
About a year ago, I bought a Projector after I finally admitted that I could actually use a TV in my apartment. I settled on buying a ViewSonic PJD5132. It was a really great value, and has been nothing short of a delight to own. I was always a bit curious about the DB9 connector on the back of the unit, so I dug into the user manual, and found some hex code strings in there. So, last year, between my last gig at the Sunlight Foundtion and USDS, I spent some time wandering around the US, hitt...| Paul's Notes
Around a year ago, I started hacking together a machine readable version of the OSI approved licenses list, and casually picking parts up until it was ready to launch. A few weeks ago, we officially announced the osi license api, which is now live at api.opensource.org. I also took a whack at writing a few API bindings, in Python, Ruby, and using the models from the API implementation itself in Go. In the following few weeks, Clint wrote one in Haskell, Eriol wrote one in Rust, and Oliver wro...| Paul's Notes
Last week, I posted about python-sense, and API wrapper for the internal Sense API. I wrote this so that I could pull data about myself into my own databases, allowing me to use that information for myself. One way I’m doing this is by pulling my room data into an InfluxDB database, letting me run time series queries against my environmental data. #!/usr/bin/env python from influxdb import InfluxDBClient import json import datetime as dt from sense.service import Sense api = Sense() data = ...| Paul's Notes
A while back, I saw a Kickstarter for one of the most well designed and pretty sleep trackers on the market. I fell in love with it, and it has stuck with me since. A few months ago, I finally got my hands on one and started to track my data. Naturally, I now want to store this new data with the rest of the data I have on myself in my own databases. I went in search of an API, but I found that the Sense API hasn’t been published yet, and is being worked on by the team. Here’s hoping it’...| Paul's Notes
As some of the world knows full well by now, I’ve been noodling with Go for a few years, working through its pros, its cons, and thinking a lot about how humans use code to express thoughts and ideas. Go’s got a lot of neat use cases, suited to particular problems, and used in the right place, you can see some clear massive wins. I’ve started writing Debian tooling in Go, because it’s a pretty natural fit. Go’s fairly tight, and overhead shouldn’t be taken up by your operating sys...| Paul's Notes
As nearly anyone who’s worked with me will attest to, I’ve long since touted nedbat’s talk Pragmatic Unicode, or, How do I stop the pain? as one of the most foundational talks, and required watching for all programmers. The reason is because netbat hits on something bigger - something more fundamental than how to handle Unicode – it’s how to handle data which is relative. For those who want the TL;DR, the argument is as follows: Facts of Life: Computers work with Bytes. Bytes go in,...| Paul's Notes
For the tl;dr: Docker FDW is a thing. Star it, hack it, try it out. File bugs, be happy. If you want to see what it’s like to read, there’s some example SQL down below. The question is first, what the heck is a PostgreSQL Foreign Data Wrapper? PostgreSQL Foreign Data Wrappers are plugins that allow C libraries to provide an adaptor for PostgreSQL to talk to an external database. Some folks have used this to wrap stuff like MongoDB, which I always found to be hilarous (and an epic hack). E...| Paul's Notes
I’ve been using Linode since 2010, and many of my friends have heard me talk about how big a fan I am of linode. I’ve used Debian unstable on all my Linodes, since I often use them as a remote shell for general purpose Debian development. I’ve found my linodes to be indispensable, and I really love Linode. The Problem Recently, because of my work on Docker, I was forced to stop using the Linode kernel in favor of the stock Debian kernel, since the stock Linode kernel has no aufs support...| Paul's Notes
I gave a talk this year at PyCon 2014, about one of my favorite subjects: Hy. Many of my regular readers will have no doubt explored Hy’s thriving GitHub org, played with try-hy, or even installed it locally by pip installing it. I was lucky enough to be able to attend PyCon on behalf of Sunlight, with a solid contingent of my colleagues. We put together a writeup on the Sunlight blog if anyone was interested in our favorite talks. Tons of really amazing questions, and such an amazingly war...| Paul's Notes
On a regular basis, I find myself the odd-man-out when it comes to talking about how to work with Python on Debian systems. I’m going to write this and post it so that I might be able to point people at my thoughts without having to write the same email in response to each thread that pops up. Turns out I don’t fit in with the Debian hardliners (which is to say, the mindset that pip sucks and shouldn’t exist), nor do I fit in with the Python hardliners (which is to say apt and dpkg are ...| Paul's Notes
One of my new favorite languages is a peppy little lisp called hy. I like it a lot since it’s a result of a hilarious idea I had while talking with some coworkers over Mexican food. Since I’m the most experienced Hypster on the planet, I figured I should write a survival guide. This will go a lot easier if you already know Lisp, but you can get away with quite a bit of Python. The Tao of Hy We don’t have many rules (yet), but we do have quite a bit of philosophy. The collective Hyve Min...| Paul's Notes
Over my time working with Debian packages, I’ve always been concerned that I have been missing catchable mistakes by not running all the static checking tools I could run. As a result, I’ve been interested in writing some code that automates this process, a place where I can push a package and come back a few hours later to check on the results. This is great, since it provides a slightly less scary interface to new packagers, and helps avoid thinking they’ve just been “told off” by...| Paul's Notes
It’s sometimes helpful to keep your machines using a list of apt archives to use, rather then a single mirror, because redundancy is good. Rather then using (the great) services like http.debian.net or ftp.us.debian.org, you can set your own mirror lists using apt’s mirror:// protocol. All of this is ultra unstable, so be a bit careful when using this. I’ve been using mirror:// for a few months now, and it seems fine (even have my servers using it), but it was a bit of a pain to set up....| Paul's Notes
Some of you out there may have tried to pass flags to a script that was being| notes.pault.ag
Let's talk about 'Complexity' in software projects and frame the conversations a bit| notes.pault.ag