<?xml version = "1.0" encoding="utf-8"?>
<rss version = "2.0" 
  xmlns:atom = "http://www.w3.org/2005/Atom"
  xmlns:dc = "http://purl.org/dc/elements/1.1/"
  xmlns:sy = "http://purl.org/rss/1.0/modules/syndication/"
  xmlns:admin = "http://webns.net/mvcb/"
  xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<channel>
<title>MavEtJu&apos;s Distorted View of the World</title>
<link>http://www.mavetju.org/weblog/</link>
<description>MavEtJu&apos;s Distorted View of the World</description>
<dc:language>en-us</dc:language>
<dc:creator>weblog@mavetju.org</dc:creator>
<dc:date>2008-08-27T08:57:38+10:00</dc:date>
<sy:updatePeriod>daily</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>
<atom:link href = "http://www.mavetju.org/weblog/index.xml" rel="self" type="application/rss+xml" />

<item>
<title>Sydney City to Surf 2008 results</title>
<description><![CDATA[<p>
Last Sunday I walked, together with Dirk in his stroller, the yearly
Sydney City to Surf fun-run. It's a fourteen kilometer track through
the city and except for the "Heartbreak Hill" it's a nice track.
</p>
<p>
There were 70 thousand other people in it and all, except one guy
who died of a heart attack 200 meters away of the finish, had a
good time.
</p>
<p>
In previous years they took an average starting time and your exact
finishing time, subtracted that and that is your time. So it was
possible two years ago that Naomi and Dirk finished half an hour
ahead of me: My official starting time was half an hour before
theirs, but I walked with them. Needless to say that it didn't make
me happy.
</p>
<p>
This year they had automated the time-tracking mechanism with RFID
tags. So finally my real time, about two hours and thirty minutes,
would be shown to the world! Justice at last! Except euhm... yes,
computers are involved...
</p>
<p>
The run started at 09:00 with the professional people running and
it wasn't until 10:00 that I finally crossed the starting line. And
I finished at 12:40. Two hours fourty minutes, that's because Dirkie
wanted to have an ice-cream and we had some trouble with him falling
out of the stroller (only his pride got hurt).
</p>
<p>
According to the official results, I came in <a
href="http://city2surf.sunherald.com.au/results08video.php?intbib=42452">on
place 53564 at 222 minutes and 21 seconds</a>. That is three hours
and fourty minutes.  What!??!? So I compared it with numbers of
other people I knew who ran: All between 70 and 90 minutes. So
theirs is correct!
</p>
<p>
Looking through the results at people <a
href="http://city2surf.sunherald.com.au/results08video.php?intbib=47524">at
place 55827, their time is 177 minutes 47</a>. Their time is slower,
and their rank is lower.  That makes sense. What doesn't make sense
is where my 60 minutes have gone! Tomorrow I'll give them a call
to sort this slander out!
</p>
<p>
<b>Update!</b> The City2Surf people said that it happened because
the tag wasn't scanned at the beginning. Yes, I got that idea.
To err is human, to fully mess things up you need computers...
The new time will be 162.21. I'm on my way to the blue starting
group again!
</p>]]></description>
<guid isPermaLink = "false">00244@http://www.mavetju.org/weblog/</guid>
<link>http://www.mavetju.org/weblog/html/00244.html</link>
<category>Sports</category>

<dc:date>2008-08-13T21:00:00+10:00</dc:date>
</item>
<item>
<title>Internode to support IPv6 tunneling (and more)</title>
<description><![CDATA[<p>
At <a href="http://ipv6.internode.on.net/">About Internode and
IPv6</a>, Internode announces that their internal network is
supporting IPv6, and that they have IPv6 connectivity to the rest
of the IPv6 world.
</p>
<p>
If you want to use their Tunnel Broker service on FreeBSD (i.e.
have an IPv6-over-IPv4 tunnel towards their IPv6 gateway), then use
the net/freenet6 port. Make sure you are using version 5.1_x.
</p>
<p>
The required configuration changes in <tt>/usr/local/etc/gw6c.conf</tt>
are:
<blockquote><pre>userid=edwing
passwd=foobar
server=sixgw.internode.on.net
auth_method=any</pre></blockquote>
</p>
<p>
Besides being a tunnel broker they also support a native IPv6
connection if you have an ethernet- or fibre link with them.
</p>]]></description>
<guid isPermaLink = "false">00243@http://www.mavetju.org/weblog/</guid>
<link>http://www.mavetju.org/weblog/html/00243.html</link>
<category>IPv6</category><category>Australia</category><category>FreeBSD</category>

<dc:date>2008-07-14T09:00:00+10:00</dc:date>
</item>
<item>
<title>When things you wrong, you want useful error messages</title>
<description><![CDATA[<p>
The time of output like this, after you do a release update:
<blockquote><pre>kldload: Unsupported file type</pre></blockquote>
is over. I, for one, welcome our new warning message overlords:
<blockquote><pre>kldload: /boot/modules/test.ko: Unsupported file type</pre></blockquote>
Will be available in FreeBSD 6.4, 7.1 and higher.
</p>]]></description>
<guid isPermaLink = "false">00241@http://www.mavetju.org/weblog/</guid>
<link>http://www.mavetju.org/weblog/html/00241.html</link>
<category>FreeBSD</category>

<dc:date>2008-07-09T09:00:00+10:00</dc:date>
</item>
<item>
<title>Moving on from BarNet, to...</title>
<description><![CDATA[<p>
The rumours are true, it is official: I have quit my job at BarNet.
For the last seven years I've worked in a couple of great projects,
learned a lot more about networks, systems and people than I already
knew.
</p><p>
A couple of highlights and learned lessons:

<ul>
<li>Over time, the network got replaced from simple central router
    plus remote FreeBSD based routers to a partly meshed network
    (still with a lot of FreeBSD based routers) with dynamic routing,
    a proper serverfarm and failover where possible.
<li>I've learned a lot about radio links (which can be tricky due
    to the density of other radio links in the city) and laser links.
<li>Over the years, we went from FreeBSD version 4.x to 6.3 now,
    with all changed in their technology and capabilities.
<li>I learned a lot about the accessing of data in databases,
    database administration and realtime replication of database.
<li>For in-house developed applications, it is good to have a
    framework which generates a consistent look-and-feel, plus gives
    easy access to often used datasources (databases, XML feeds).
<li>VoIP Telephony and legacy systems integration... certainly a
    nice job, but not as something which is an add-on project, but
    as a full-time job. It will help you to find of some
    before-this-unknown problems in your network.
</ul>

And some learned lessons:

<ul>
<li>Content Management Systems for webhosting is important to have
    done correctly, but none fits all. Programmers/system administrators
    are not a replacement for graphical designers. Are there any
    graphical designers which are capable of producing maintainable
    HTML, or does xmlindent(1) have to be used on everybodies output?
<li>If you have a document storage application, and a issue tracking
    application, and a customer relation application, then it's a
    good thing to make sure you keep using the same names for the
    same topics: Use them consistent, don't invent different names
    for the same thing in every new application.
</ul>
</p><p>
Of course, I could bitch and moan about the bad things which have
shown up in the last year but let's keep it positive.
</p><p>
Now I'm in the handover phase... Which of course totally doesn't
go as I had hoped for. We had two months time for it, in which we
could do one month for handover, then two or three weeks for the
last items which were missing or not clear or where the new people
needed their hands to be held. But it was decided that it all should
happen in the last two weeks...
</p><p>
Next step? Nothing set in stone yet, just talking. Want to talk to me?
</p>]]></description>
<guid isPermaLink = "false">00240@http://www.mavetju.org/weblog/</guid>
<link>http://www.mavetju.org/weblog/html/00240.html</link>
<category>Happiness</category><category>Moving</category>

<dc:date>2008-07-08T12:00:00+10:00</dc:date>
</item>
<item>
<title>Migrating from i386 to amd64 - ldd(1) on 32 bit objects</title>
<description><![CDATA[<p>
In the last couple of months I have migrated left-over applications
on old i386 servers running FreeBSD 4.something to jails on amd64
servers running FreeBSD 6.3. It works fine, it works like a charm,
thanks to the 32 bit compatibility and the <tt>misc/compat4x</tt>
port. I could just copy everything in <tt>/usr/local/</tt> to the
new jail, run <tt>ldconfig -32 /usr/local/lib</tt> and everything
started without problems.
</p><p>
There was only an issue with the <tt>ldd(1)</tt> command in the
base-system:
<blockquote><pre>[/] root@ed-exigent><b>ldd `which httpd`</b>
ldd: /usr/local/sbin/httpd: can't read program header
ldd: /usr/local/sbin/httpd: not a dynamic executable</pre></blockquote>
The man-page of <tt>rtld(1)</tt> revealed that it could work:
<blockquote><pre>[/] root@ed-exigent><b>LD_32_TRACE_LOADED_OBJECTS=1 `which httpd`</b>
libm.so.4 => /lib32//libm.so.4 (0x280c8000)
libaprutil-1.so.2 => /usr/local/lib/libaprutil-1.so.2 (0x280de000)
libexpat.so.6 => /usr/local/lib/libexpat.so.6 (0x280f2000)
libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x28110000)
libapr-1.so.2 => /usr/local/lib/libapr-1.so.2 (0x281fd000)
libcrypt.so.3 => /lib32//libcrypt.so.3 (0x2821d000)
libpthread.so.2 => not found (0x0)
libc.so.6 => /lib32//libc.so.6 (0x28235000)
libpthread.so.2 => /usr/lib32/libpthread.so.2 (0x2830d000)</pre></blockquote>
So ldd(1) had to be educated about the differences in the ELF header
for 32 bit and 64 bit ELF objects. Once that was done, no problem
at all anymore!
</p><p>
Patches are available at <a href
=http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/124906">bin/124906</a>,
have been commited to HEAD and will be MFCed in a week.
</p>]]></description>
<guid isPermaLink = "false">00239@http://www.mavetju.org/weblog/</guid>
<link>http://www.mavetju.org/weblog/html/00239.html</link>
<category>FreeBSD</category>

<dc:date>2008-07-04T09:00:00+10:00</dc:date>
</item>
<item>
<title>CVSROOT-ports/modules re-animated</title>
<description><![CDATA[<p>
When it comes to the FreeBSD Ports collection, the CVS repository
and the GNATS bug tracking system, people not always understand how
its can be made easier.
</p><p>
For example: Did you know that the URL <a
href="http://bugs.freebsd.org/12345">http://bugs.freebsd.org/12345</tt></a>
would bring you automatically to the PR with number 12345? And did
you know that if you want to checkout the directory /ports/x11-wm/fvwm95,
all you have to do it <tt>cvs co fvwm95</tt> (For an easy Mozilla
Firefox and Seamonkey (and probably other browsers) sidebar, visit
<a href="http://www.mavetju.org/unix/freebsd.php?porter=1">this
page</a>)
</p><p>
So, what is the story about that <tt>cvs co fvwm95</tt>. The magic
for that is stored in the file <tt>CVSROOT-ports/modules</tt>, it contains
a list of all ports and their directories. The file is updated every
time a port gets commited, removed or changed from location. At
least that is the theory. Adding is done manually via the
<tt>addport</tt> script, but removing and changing locations has
been always a manual task.
</p><p>
Recently the caretaker of this file had enough of people whinching
when he said they needed to update that file when it changed. So
he said <a
href="http://blog.droso.org/2008/06/20/cvsrootmodules-obsoleted/">that
support for it would cease</a>. But but but... That would break at
least one of my ways to do things easy!
</p><p>
I can do only one thing now, take control over it myself! So I
proposed it to <tt>portmgr@</tt>, who approved it. The second thing
to make is a script which mangles <tt>/usr/ports/INDEX</tt> to
generate a modules file (in the shape I like it).
</p><p>
All that is done now, and the <tt>CVSROOT-ports/modules</tt> file
is now updated once per day. See <a
href="http://www.freebsd.org/cgi/cvsweb.cgi/CVSROOT-ports/modules">the CVS
webinterface</a> for the last update!
</p>]]></description>
<guid isPermaLink = "false">00238@http://www.mavetju.org/weblog/</guid>
<link>http://www.mavetju.org/weblog/html/00238.html</link>
<category>FreeBSD</category><category>FreeBSD ports</category>

<dc:date>2008-07-03T10:40:00+10:00</dc:date>
</item>
<item>
<title>DHCPDUMP 1.8 released</title>
<description><![CDATA[<p>
When I wrote DHCPDUMP first, I was lucky because the output of
<tt>tcpdump</tt>, which is used an input for DHCPDUMP, was very
consistent.  Over the years this has changes a little bit. A lot
little bits.
</p>
<p>
Therefor I present to you: DHCPDUMP version 1.8, now using
<tt>libpcap</tt> as input instead of the output of <tt>tcpdump</tt>.
</p>
<p>
You can find it at <a
href="http://www.mavetju.org/download/dhcpdump-1.8.tar.gz">http://www.mavetju.org/download/dhcpdump-1.8.tar.gz</a>.
</p>]]></description>
<guid isPermaLink = "false">00237@http://www.mavetju.org/weblog/</guid>
<link>http://www.mavetju.org/weblog/html/00237.html</link>
<category>DHCP</category><category>DHCPDUMP</category>

<dc:date>2008-06-24T13:00:00+10:00</dc:date>
</item>
<item>
<title>Australian driver license</title>
<description><![CDATA[<p>
Everybody who knows me that I'm crazy with cars. At cars. "Mad at
cars" is the more the right line: I have a love / hate relationship
with them. I know that todays society can't exist without them, but
also that they are the biggest curse in todays society. Anyway,
that's not the story here.
</p>
<p>
The story is about the availability of driver licenses in Australia:
The joke goes that you get them with a box of Weetbix. And todays
experience only shows that it is true. And why I feel so scared
when I'm on the road.
</p>
<p>
So I got my dutch driver license in 1996, when I was 25. Wait, that
was seven years after I was able to get it. I know. I told you I
didn't like cars. I got my first car in 2000, five years after I
got my driver license. I told you I didn't like cars. I moved to
Australia in 2001, so I got rid of my car after six months.
</p>
<p>
In Australia you need an international driver license which is valid
for six months or get an Australian driver license. So after six
months I wasn't allowed to drive a car anymore. In 2006 my dutch
driver license expired.
</p>
<p>
So, where does this story go to? Today, in 2008, seven years after
I last driven a car, two years after my driver license expired, I
got my Australian driver license. How? Just go to the RTA, show
your dutch license, show some ID and fill in a form. Expired license?
Not a problem. Not haven driven a car in seven years? Not a problem.
</p>
<p>
And you wonder why I am so scared on the roads here...
</p>]]></description>
<guid isPermaLink = "false">00236@http://www.mavetju.org/weblog/</guid>
<link>http://www.mavetju.org/weblog/html/00236.html</link>
<category>Traffic</category><category>Australia</category>

<dc:date>2008-06-04T21:00:00+10:00</dc:date>
</item>
<item>
<title>Using the Internode SourceForge mirror</title>
<description><![CDATA[<p>
Since a couple of weeks Internode has a Sourceforge mirror, which 
traffic is free of charge for Internode customers.
</p>
<p>
If you want to prefer it in your ports configuration, add this to 
<tt>/etc/make.conf</tt>:
<pre><blockquote>MASTER_SITE_SOURCEFORGE= \
        http://internode.dl.sourceforge.net/sourceforge/%SUBDIR%/
MASTER_SORT?=   internode.dl.sourceforge.net mirror.internode.on.net .au
</blockquote></pre>
</p>]]></description>
<guid isPermaLink = "false">00235@http://www.mavetju.org/weblog/</guid>
<link>http://www.mavetju.org/weblog/html/00235.html</link>
<category>FreeBSD</category><category>FreeBSD ports</category>

<dc:date>2008-06-03T19:00:00+10:00</dc:date>
</item>
<item>
<title>BATV and Postgrey</title>
<description><![CDATA[<p>
BATV stands for <a
href="http://en.wikipedia.org/wiki/Bounce_Address_Tag_Validation">Bounce
Address Tag Validation</a> and is a method to prevent backscatter
from spam runs. It works by modifying (danger! technical content
ahead!) the Envelope From address in an SMTP session from
<tt>joe@example.com</tt> to <tt>prvs=tag-value=joe@example.com</tt>.
If this email is undeliverable, it will be send back to
<tt>prvs=tag-value=joe@example.com</tt> instead of to
<tt>joe@example.com</tt> and your mail host knows that this is a
valid undeliverable message.
</p>
<p>
So what has Postgrey to do with this? <a
href="http://postgrey.schweikert.ch/">Postgrey</a> is a greylisting
server. It is (danger! technical content ahead!) forcing email
deliveries from addresses and hosts which are not yet known to be
retried later. Why? Earlier this century, emails sent by viruses
and spam-hosts weren't smart enough to understand this and the email
with the malicious payload was not accepted by your mailhost.
</p>
<p>
Yes, but what has greylisting to do with it? Greylisting delays
every email from / email to / sending host combination it hasn't
seen before. So if BATV changes the email from address every day,
the first email from that user will be delayed every day. Every
day! So Postgrey needs to be taught what the real email address is.
Luckely BATV keeps this information in the from address:
<tt>prvs=tag-value=<b>joe@example.com</b></tt>. Small patch, and
it works.
</p>
<p>
And now the tricky stuff: Not every read the documentation properly,
and the two following formats have been seen:
<pre><blockquote>
prvs=tag-value=joe@example.com
prvs=joe=tag-value@example.com
</blockquote></pre>
Brilliant! They swapped it around! So my four line patch becomes
an eight line patch.
</p>
<p>
Anyway, the <a href="/~edwin/postgrey-batv.patch">patch</a> is
available and submitted to the Postgrey author.
</p>
<p>
<b>Note</b>: Please note that I've made a little change to the patch
to pick the second field (as the standard suggests) instead of the
wrong standard. Not that it ever should come to there, but it's a
"just in case" thing.
</p>]]></description>
<guid isPermaLink = "false">00234@http://www.mavetju.org/weblog/</guid>
<link>http://www.mavetju.org/weblog/html/00234.html</link>
<category>SMTP</category><category>Spam</category><category>Email</category>

<dc:date>2008-05-22T19:00:00+10:00</dc:date>
</item>
</channel>
</rss>
