MJ Ray: Tour of Britain launch notes

on their front page. Well done ToB and itv! That should be a vast improvement on the 2 hours on the last day that BBC were giving it, although I expect it’s highlights rather than live.

A client of mine seeks a document management system to be run on
a Linux machine, and I have no experience in this domain. I am
turning to you for help, dear lazyweb, my client will make a
donation to a FLOSS project of your choosing in return.
I define document management system as an online file storage
for OpenOffice.org/Word documents, spreadsheets, PDFs, and
pictures. Thus, this is less about content management than about
file storage and organisation, aimed at collaboration.
The following are the sought features:
Chronicle
I've made a new release of the chronicle blog compiler, primarily to allow the "Subject:" header to be used for new blog subjects. (That allows new entries to be automatically posted via email, with an appropriate procmail setup. I'll add one as an example shortly.)RSS Utility
Whilst on the subject of RSS creation (huh?) I've written a tiny utility which will create an RSS feed from a list of text files. It will also create an index.html file to match. To see why this is useful you could view my recent changelog. I think there is a need for a small tool to read files and create feeds from them - like mod_index_rss does, but without messing with Apache. If there is any interest I'd be happy to release the code, as-is it doesn't use a template..Anonymous Hosting?
Online privacy is important. Mostly when this is discussed it is in the context of client-side anonymity. Looking at it from the other side, though, How do you host a website anonymously? You could register the domain via a proxy, or with bogus details. But if you host the site yourself the IP address may be traced to the hosting provider, and that may be used to trace back to you. So, the alternatives? Well you could use a hosted site such as livejournal / wordpress / googlepages / etc. But pretty surely they'll be able to trace content back to you - and if you don't host it there's a high chance they'll just pull it if you talk about "bad things". (I guess you could use TOR for uploading / your connections there.) So, going back to the question. How can you host something, easily accessible to the world, without risk of your identity/association being discovered?ObQuote: HellRaiser
I'm, obviously, ignoring FreeNet. Two reasons for that:I almost think the best way forward would be to write a site which was a proxy for a file-sharing protocol, then link people to items that way. Relying on the swarm to host the files.. The downside is that you'd have to have a convincing argument for when RIAA comes calling, suggesting that you're sharing their stuff too. If it wasn't a general purpose proxy then the deniability is gone, and if it is you're at risk of general copyright infringement claims. Hard problem. Shame.
- It's slow, has no search-engine goodness, and is unproven.
- It requires an atypical client. Aunt Milly won't be able to surf Freenet...
The thing to do: require Microsoft and its cronies to write a strict OOXML
document parser/verifier and release it under the BSD license as a starting
point for other companies' work with OOXML documents. And require them to
offer free support to all companies wishing to publish OOXML compliant
documents (without any vendor specific extensions) on how to do that with their
M$ Office products.


First of all, you can't do All Fool's Day pranks on global web sites because of time zones: if you do, you'll be pranking either early or late somewhere and so you're the fool. Now, I've been a bit quiet recently because I've been moving dozens of Wordpress blogs over to one Wordpress MU install. Clearly the right way to do it. They're all on different domains and we want their names to have www, which needed the following small change...
--- wpmu-settings.php
+++ wpmu-settings.php
@@ -6,8 +6,8 @@ if( $current_site && $current_blog )
$wpmuBaseTablePrefix = $table_prefix;
$domain = addslashes( $_SERVER['HTTP_HOST'] );
-if( substr( $domain, 0, 4 ) == 'www.' )
- $domain = substr( $domain, 4 );
+if( substr( $domain, 0, 4 ) != 'www.' )
+ $domain = 'www.'.$domain;
if( strpos( $domain, ':' ) )
if( substr( $domain, -3 ) == ':80' )
$domain = substr( $domain, 0, -3 );
I could have sworn I changed something else in that file, but I don't see what. Oops. I guess I'll run a check against the release tarball before merging the next upgrade from upstream. If anyone wants to hire someone to move blogs to Wordpress MU, you how where to find me. It's pretty enjoyable once you get into the routine, even if this project overran. I'm looking at changing my own blogs too. I'm looking at Chronicle but maybe with more email-like input files.
Yesterday I
speculated that Lamers Bus Lines was the most
disproportionately photographed, unintentionally insulting, bus line name
on the Internet.
Apparently not. Several readers pointed out that, while a Flickr search for lamers
bus returns 81 photographs, a search for f cker bus and
fucker bus
return a combined 84 photos not unlike these.
With Lamers, PUTA, F cker, SCAT, and the
SLUT, I'm beginning to wonder if something very fundamentally wrong
with the way human society is choosing the names for its mass transit
systems.
Recently I took stock of my Javascript programming efforts, with the intention of simplifying things. To date I've put together three sites which make use of Javascript:
// find the div called "foo" - hide it.
$("#foo").hide()
I'm liking this library a lot recently, but only time will tell if I use it more.
config.c: 139
cookie.c: 221
display.c: 709
feed.c: 577
list.c: 96
list.h: 16
main.c: 96
main.h: 84
md5.c: 360
md5.h: 76
rss.c: 120
xml.c: 276
xml.h: 17
total: 2787
It uses expat to parse the HTML, libnbio for socket management (which is available in Debian), and ncurses for the UI. It doesn’t have any sort of threading (libnbio does a good job of making sure that, other than DNS lookups, there’s never anything going on long enough to prevent responsiveness). About its only feature is that it will use my cookies.txt file, so that I can see my LiveJournal friends’ protected entries.
I originally wrote harsh in about a day or two. It was really easy because of the 2800 lines, about 850 of them had been written in some of my other projects (list.c/h and xml.c/h) or are standard (md5.c/h). I was also really familiar with the three helper libraries from writing grim (my IM client) and stark (a tool for viewing GnuCash data files).
As a learning exercise, rewriting harsh in Haskell was excellent. It’s incredibly small, does a lot of standard things (like networking and console UI), and doesn’t do a lot of non-standard things (like an AIM client does). I got to play with the Haskell light-weight threads and STM; I learned how to create a Debian Haskell package; I learned how to use ghci as a debugger with breakpoints; and I’m much more comfortable with monads and with the language in general.
It did take me significantly longer to write than the C version, though that’s more due to me having to learn not just the language but some libraries along the way (like HTTP, Vty, and HaXml). I still think that it would take me just as long to write the Haskell version as the C version, but I’m still much more comfortable with C, and imperative programming in general.
From a code size perspective, the Haskell version is about one-sixth the size (excluding comments):
Config.lhs: 53
Feed.lhs: 144
Harsh.lhs: 272
Util.lhs: 26
total: 495
However, that’s not a very fair comparison. In the C version, md5.c/h are included in the total count, when really they should be considered a standard library (and on the Haskell side, I used Data.Hash.MD5 from MissingH). On the C side, I did all of the HTTP request and response processing myself (which is what more than half of feed.c is about), while on the Haskell side I left that to an HTTP client library. Excluding all those things though, the Haskell version is still about one-fourth the size.
Anyway, I put the Haskell version of harsh up here. If any Haskell hackers out there could take a look at it and let me know what I’m doing wrong or oddly, I’d appreciate it.
Exim has the habit of trying to find out about its host names and IP addresses when it starts up. This has, in the
past, been an issue for the Debian packages, since a Debian system might be on a dial-on-demand modem line with
expensive costs and thus should not do unnecessary DNS lookup when the MTA is started.
This article tries to describe the issue and which countermeasures debian took, and asks for tips how to solve this in
the case of IPv6, where our past measures unfortunately do not directly apply.
I’d like to solicit opinions from people who are more experienced than me with Unix, the local resolver library
including /etc/hosts and /etc/nsswitch.conf, DNS, and - especially - the customs that apply on a system running IPv6.
To avoid the extra DNS lookups, the Exim packages have a Debconf option to configure exim for “minimal DNS
usage”, which hardcodes the hostname into Exim’s configuration at package configuration time. This was
necessary since - without this option - exim looks up its own host name in the DNS even when a completely local
operation is invoked.
In some cases, exim still looks up its IP address when a listening daemon starts up. This is why the Debian installer
configures 127.0.1.1 (not 127.0.0.1) for the local hostname on installation, yielding /etc/hosts files like
However, in the last few weeks I have heard a few cases where exim does IPv6 AAAA lookups when a listening daemon starts up. An strace shows a gethostbyname2 call for AF_INET6, and if we want to continue the line we went in the past, we’d need an IPv6 address for myfoo.localdomain in /etc/hosts as well. I am now wondering how this could be implemented. In IPv4, we have 127.0.0.0/8 available for the local host and could arbitrarily choose 127.0.1.1 to configure the local host name on. In IPv6, there is only ::1, which is a single address. Would it be possible to choose an arbitrary “link local” address on lo, the loopback interface? Or is there any better way? This being said, I consider the entire 127.0.1.1 business a horrible hack which is one of the most ugly things I have ever seen. Do we have a chance to implement this in a more cleaner way, or is it still the way to go for the distribution, where we don’t know zilch about the environment where an installed system is going to be used? This issue leads to people adding their local host name to ::1 in /etc/hosts, which might re-introduce other issues that we experienced in a phase when we did the same for 127.0.0.1, eventually ending up with 127.0.1.1, or to disabling IPv6 altogether, which is a bad thing in a time where IPv6 should be enabled, not disabled. So I’d like to find a clean solution which could then be implemented in whatever part of Debian might be responsible. I tried asking this question in other places, including Usenet, before pestering my Blog to ask the Lazyweb, but obviously the people I asked before do not care for the special environment that a Linux distribution has to take care of. The only answers I got were like “that would be the local administrator’s task to fix” and “this should be taken care of in the local DNS server/setup (maybe even on the local box being installed)”. A quite frustrating experience.127.0.0.1 localhost 127.0.1.1 myfoo.localdomain myfoo # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts

root@cms01:/tmp/openssl-0.9.8g# date Mon Mar 31 08:23:35 GMT 2008 root@cms01:/tmp/openssl-0.9.8g# tzconfig Your current time zone is set to GMT Do you want to change that? [n]: y Please enter the number of the geographic area in which you live: 1) Africa 7) Australia 2) America 8) Europe 3) US time zones 9) Indian Ocean 4) Canada time zones 10) Pacific Ocean 5) Asia 11) Use System V style time zones 6) Atlantic Ocean 12) None of the above Then you will be shown a list of cities which represent the time zone in which they are located. You should choose a city in your time zone. Number: 8 Amsterdam Andorra Athens Belfast Belgrade Berlin Bratislava Brussels Bucharest Budapest Chisinau Copenhagen Dublin Gibraltar Guernsey Helsinki Isle_of_Man Istanbul Jersey Kaliningrad Kiev Lisbon Ljubljana London Luxembourg Madrid Malta Mariehamn Minsk Monaco Moscow Nicosia Oslo Paris Podgorica Prague Riga Rome Samara San_Marino Sarajevo Simferopol Skopje Sofia Stockholm Tallinn Tirane Tiraspol Uzhgorod Vaduz Vatican Vienna Vilnius Volgograd Warsaw Zagreb Zaporozhye Zurich Please enter the name of one of these cities or zones You just need to type enough letters to resolve ambiguities Press Enter to view all of them again Name: [] London Your default time zone is set to 'Europe/London'. Local time is now: Mon Mar 31 09:23:48 BST 2008. Universal Time is now: Mon Mar 31 08:23:48 UTC 2008.More information is available in the Debian System Administrator Manual.
Since yesterday I am through with my
NM procedure. Looking back I get to the same conclusion as probably
most NMs have: not overly hard, but time-consuming and glad to have it over
with. Anyway, so far so good, just waiting for DAM approval and my account
now. There are still a couple of people in front of me but I hope
for another processing before the elections close. (I
guess it would at least be good for the turnout.)
For now, many thanks to my Application Manager Andreas Barth who has
been very responsive and always answered my mails quickly and thoroughly,
and also to Martin Zobel-Helas for advocating me.
OK, been quiet for a few days, at least on the blog, but in accordance with typical behaviour (for me at least) a quiet blog means a lot of things going on elsewhere. The smallest was a fix for deb-gview - combining a fix for opening files in the current working directory with a fix for the imminent dpkg 1.14.17 which modified the .changes file format a bit. That was relatively easy and I've uploaded 0.2.1 to unstable. gvfs hasn't made testing yet so there's no point in waiting for deb-gview to migrate before 0.2.1.dpkg-buildpackage -a' is usable for nearly all packages once you have dpkg-dev >= 1.14.7. emdebuild >= 1.0.0 is only necessary IF:X-Build-Cross-Libtool: yes' which is my next main target. This is a package-specific problem and each incidence needs a package-specific solution via an appropriate patch. As such, the wrapper is likely to stay in place in emdebuild for some considerable time - at least until someone can rebuild the entire archive with a test that can identify which packages are still affected.
How to turn a
serial GPS into a data logger with 6 hours battery life
. Then attach it to your bike using
magnets from broken hard drives. Totally rocks!zh_TW translation
plugin of JOSM; I'll try to find out how to do it and pass on the
information to who can do it.name tag because osmarender cannot render Chinese
characters. There is some planining to create an OSM mirror in
Taiwan which renders twice, and allows to choose the rendering
language for the map. I will try to get a planet.osm
extract for Taiwan that people can use to experiment with this;
thanks to people in #osm for giving me names of people
to contact. I will try later after Europe wakes up from this
even-earlier-than-usual sunday morning.
If you noticed, a lot of services I run were offline last night. This is because either Supermicro or Micron sucks (I haven’t decided which), and the motherboard of that server got fried. Luckily, it’s nice replacement was also ready on the same evening. So, everything is restored from backups. If I missed something, please let me know about it.
On another note, the replacement has AMD Opterons and a much larger RAM capacity. 16 slots!
Today we had the opportunity to be part of a very important event: Venezuela’s final meeting on DIS 29500 fast-tracking. Even though we’re working on this matter since 2007, and we weren’t approved official participation as a community, we managed to be there today. There was a strong discussion; and we had our chance to participate. I believe we were welcomed by the NB and hopefully we, as a community, can be part of future discussions in a very constructive way. Thanks again to all the committee members and our NB who made it possible for us to participate today.
From: "FONDONORMA" <...@fondonorma.org.ve> To: <brannon@...>, <takahashi@...>, <gaillen@...>, <...@fondonorma.org.ve> Subject: Modification to the vote on DIS 29500 - Venezuela (FONDONORMA) Date: Fri, 28 Mar 2008 14:04:26 -0430 (snip) Venezuela wishes to modify its position on DIS 29500 (snip) (snip) from Approval with comments to Disapproval with comments.
Next.