Tweets of February 28 2013

Go dns in action http://dns-status.ntppool.org/# #ntp #go #dns

Thu Feb 28 08:16:22 +0000 2013


Replying to @sneakatdatavibe

Wasn’t created by me, so can’t tell \(and i'm a html noob\)

Thu Feb 28 08:22:17 +0000 2013


https://launchpad.net/~miek/+archive/golang #golang #debian #package #ppa

Thu Feb 28 12:01:36 +0000 2013


Die Boogerd is echt zo dom als die eruit ziet... #doping

Thu Feb 28 12:06:01 +0000 2013


After “eventual consistency” should come “PHP consistency” #YMMV

Read more →

Persistent Synaptic Touchpad settings in Ubuntu 12.10+

I was wondering how to make my touchpad settings permanent in Ubuntu. I could find a few pointers on the net, like:

But sometimes it makes sense to look at your own system’s documentation:

% cd /usr/share/X11/xorg.conf.d
% head 50-synaptics.conf
# Example xorg.conf.d snippet that assigns the touchpad driver
# to all touchpads. See xorg.conf.d(5) for more information on
# InputClass.
# DO NOT EDIT THIS FILE, your distribution will likely overwrite
# it when updating. Copy (and rename) this file into
# /etc/X11/xorg.conf.d first.
# Additional options may be added in the form of
#   Option "OptionName" "value"
#
Section "InputClass"

Which seems pretty obvious to me. I added

Read more →

New Dutch Teletext Script

Last week, the Dutch public broadcaster (NOS) decided to “fix” their online teletext offering, there breaking [an old script I had laying around](/2008/july/15/teletext_nl_script/index.htm l). Their new web interface (displaying gifs) can be found here.

After @bdekruijff discovered their newly, hidden text feed, I decided to adapt the old script to this new situation. Thanks to this page I was able to (partially) reconstruct the feed. Most escape sequences are working, I’m still fiddling with finding Unicode chars for the “Contiguous Graphics Set”.

Read more →

Tweets of January 31 2013

#zsh #shell #roulette SOURCE ~/.zsh_history

Thu Jan 31 08:34:28 +0000 2013


I’m using Source Code pro v 1.013, but 1.017 is out... So right now I’m upgrading

Thu Jan 31 08:37:26 +0000 2013


http://livestream.nucleus.be/ Puppet camp live stream

Thu Jan 31 08:42:31 +0000 2013


RT @Stephan007: Actually really sad! > “@1Pr0grammer: How to tell HTML from HTML5. #LoL

Thu Jan 31 08:50:40 +0000 2013


Replying to @jgraham909

thanks! \(\.\.\. and I really need to finish it\.\. :\)

Read more →

Make me a sandwich, MAKE me a sandwich

We all know this comic:

And now in zsh!

With the following snippet all commands that are started with an uppercase word will be prefixed with sudo and then executed.

So MAKE me a sandwich, becomes sudo make me a sandwich.

accept-line() {
    local B
    B=(${=BUFFER})
    if [[ "$B[1]" != [A-Z]* ]]; then
        zle .accept-line
        return
    fi
    if [[ $B[1] != "" && $B[1] == $B[1]:u ]]; then
        BUFFER="sudo $B[1]:l $B[2,-1]"
    fi
    zle .accept-line
}

And activate with:

Read more →

Pandoc2rfc and xml2rfc

Thanks to the help of Marc Petit-Huguenin I have been able to create (and upload) debian packages (install fine on Ubuntu) for Pandoc2rfc and xml2rfc. For Pandoc2rfc I choose to add a little shell script that calls pandoc and xml2rfc for you. So creating an I-D is as simple as:

pandoc2rfc *.mkd    # or a few other extensions

The shell script depends on transform.xsl to be installed in /usr/lib/pandoc2rfc/, allthough this can be overridden with a flag. When pandoc2rfc is installed you don’t have carry the supports scripts inside your I-D’s source repo. My pandoc2rfc I-D source directory now only has: template.xml, abstract.pdc, back.pdc, middle.pdc and a bib/ directory with references.

Read more →

Vim as MANPAGER

I like Vim, so I try to use it at many places. Like in my shell (set -o vi), and when writing and coding.

After some Googling I found that Vim can also be used as a MANPAGER. But there is one nagging issue. To quit viewing the manual page you have to type ‘:q’, which is one keystroke more then when using less as your MANPAGER… Needless to say: this is unacceptable.

Read more →

Go DNS API change WITH rewrite rules!

In the standard library the DNS types have been renamed from RR_MX to MX which I think is a good change. So I made the same change in Go DNS, but this time I’m providing gofmt -r rewrite rules. They all have the form:

gofmt -r 'RR_A -> A' -w *.go

And then for all the types, so it’s quite a list.

Download the rewrite rules here and use it like $SHELL rewrite.

Read more →

Printing MX records with Go DNS, take 3

I’m starting to get really happy about the Go DNS API, so invasive API changes are less and less likely.

We want to create a little program that prints out the MX records of domains, like so:

% mx miek.nl
miek.nl.        86400   IN      MX      10 elektron.atoom.net.

Or

% mx microsoft.com
microsoft.com.  3600    IN      MX      10 mail.messaging.microsoft.com.

We are using my Go DNS package. First the normal header of a Go program, with a bunch of imports. We need the dns package:

Read more →

NSEC3

NSEC3 - A shadowy flight into the dangerous world of a record who does not exist.

Denial of Existence, a young loner on a crusade to champion the cause of the innocent, the helpless, the non-existent, in a world of records who operate above the law.

Read more →

Adding new RR types to GO DNS

Inspired by NLnet Labs and PowerDNS, I figured I couldn’t stay behind, so here is how to add new RRs to Go DNS.

A small note before I delve into the details, I haven’t optimized Go DNS for adding new types, as this is a relative infrequent event. There are a few items that need to be added before Go DNS understands the new RR type.

  1. Adding the type itself (as a structure) and the four methods needed to implement the RR interface;
  2. Adding the type number and the text string belonging it;
  3. Parsing from text, i.e. when parsing zonefiles.

Lets take the new DANE (RFC6698) as an example. The record is called TLSA, and looks like:

Read more →

.NL DNSSEC error on 28th of October 2012

This is an official announcement from SIDN also published here.

Summary

In the course of Sunday 28 October, an error occurred during the publication of a new ZSK (with key tag 20331). Because of the error, the new ZSK was not published in the DNS when it should have been. However, the software used by SIDN (OpenDNSSEC) continued to work on the basis that the ZSK had been published successfully.

Read more →

Tweets of October 31 2012

Replying to @gitaar

yeah, but xlstproc doesn’t do 2 on Linux AFAIK

Wed Oct 31 07:03:22 +0000 2012


Who is Kroah-Hartman? https://lwn.net/Articles/522088/

Wed Oct 31 11:37:36 +0000 2012


Replying to @jpmens

and with those words hell froze over. #hotel #wifi

Wed Oct 31 16:08:12 +0000 2012


Ubuntu’s mainline kernels dont install anymore... Who should I tell this? 3.6.4 and 3.6.5 fail on quantal

Wed Oct 31 19:20:10 +0000 2012

Read more →

Dynamic Syntax Highlighting in Vim

I’m a huge fan of syntax highlighting in my editor Vim. One thing I started to
miss was that user defined type miss out on the highlighting, because Vim does
not know about them. Wouldn’t it be cool to have some sort of automatic support that
detect your types and adds them to the correct highlighting group? I call
this “dynamic syntax highlighting”.

As a proof-of-concept I took the tagbar
plugin
, and modified it a little to take advantage of the language detection (specifically the types). The modified code can be found in my fork on github.

Read more →

Updated DNS syntax file for VIM

When editing zone files with vim I always get annoyed by the fact that the syntax highlighting did not understand newer types ’n stuff. I never did anything about until now.

Download this vim syntax file and drop it in ~/.vim/syntax. It adds newer (DNSSEC) types and base64 highlighting. Base64 only works when there are no embedded spaces (patch welcome to fix that btw!)

Read more →

Tweets of August 31 2012

Replying to @jessemcnelis

ah thanks I was only using cpuprof, but indeed there is also memprof.

Fri Aug 31 05:35:59 +0000 2012


Mail subject: “DS lunch”, huh Delegation Signer lunch?? Alas, turned out to be something completely different

Fri Aug 31 07:01:57 +0000 2012


Replying to @ecnivnl

Dacht dat we dit gefixt hadden toen we de crawler geupgrade hadden. Je hebt zeker alleen een algo 8 key? \(perfectly ok\)

Fri Aug 31 07:30:23 +0000 2012

Read more →

User management in fksd

If you do DNS for too long everything looks like 53.

In this “trace” I’m showing the logging of fksd when I add a zone, try to list it as a non-existent user miekg (which fails), add the user miekg and list it again. User are identified by the key in the TSIG record, their password is the shared secret.

The “config files” from nsupdate can be found in the github repo of fksd. The nsupdate commands are preceded with a %, extra comments are preceded with #:

Read more →

Dynamic nameserver provisioning with dns pkts

I’m writing a nameserver called fksd (Funkensturm daemon), which is currently in a prototype stage (but the code is available at github).

In this server I’m pursuing some interesting directions in nameserver development, such as the dynamic configuration as provided by BIND10.

BIND10 uses http(s), but I think using DNS packets is more in line with a nameserver, so I opted for that route.

With fksd you can use packets (which will be TSIG signed in the future tomorrow) to configure the server. The only configuration possible at the moment is adding a zone. Such a packet needs to have a TXT record like the following in its AUTHORITY SECTION:

Read more →

Libunbound wrapper in Go

I’ve created a small wrapper for libunbound for use in Go.

The code can be found at github. It depends on my Go DNS library which can be found here.

Official announcement on the Unbound-users@ list.

To give you a little taste of how it looks, I’ve (re)created tutorials 2 to 6 in Go. Tutorial 2 looks like this, for instance:

package main

// https://www.unbound.net/documentation/libunbound-tutorial-2.html

import (
        "dns"
        "fmt"
        "os"
        "unbound"
)

func main() {
        u := unbound.New()
        defer u.Destroy()

        if err := u.ResolvConf("/etc/resolv.conf"); err != nil {
                fmt.Printf("error %s\n", err.Error())
                os.Exit(1)
        }

        if err := u.Hosts("/etc/hosts"); err != nil {
                fmt.Printf("error %s\n", err.Error())
                os.Exit(1)
        }

        r, err := u.Resolve("www.nlnetlabs.nl.", dns.TypeA, dns.ClassINET)
        if err != nil {
                fmt.Printf("error %s\n", err.Error())
                os.Exit(1)
        }
        fmt.Printf("%+v\n", r)
}
Read more →

Tweets of June 30 2012

Replying to @nlmarkscholten

je hebt toch de ip’s van de nameservers, met een tcp\(\!\) DNSKEY query ben je al een heel eind. Zie ook: http://drskey.sidnlabs.nl/

Sat Jun 30 08:11:25 +0000 2012


back to go’old XFCE 4.10. GNOME3 is more slick, but at least this just works \(and fast\!\)

Sat Jun 30 08:12:23 +0000 2012


Replying to @nlmarkscholten

key2ds? zit in ldns, perl’s net:dns en nog een paar andere libs denk ik zo :-)

Read more →

Sync subversion to github.com

This is a post that details on how to sync a subversion repository to git repository on github.com, and how to keep it in sync.

The following sites were instrumental in getting this to work:

There are a number of steps to take. From a bird’s eye view:

  1. Use git svn to clone the svn repo to a git repo;
  2. Create a github git repo;
  3. Add a remote origin in your local git to the remote github repo;
  4. Use some SSH foo to use a separate SSH key for pushing to github.com.

Prerequisites

  • We are working with the fictional svn repo located at https://svn.example.net/example;
  • git-svn is installed;
  • ssh is installed.

Clone the repository

Read more →