Clint Adams: The White House 1814
Wow. Team B did something useful.
Wow. Team B did something useful.
Spring in Tokyo.
Cherry blossoms are beautiful, but every time I tried to go hanami,
it rained.
Hmm...

In the last few weeks, I spent quite some time wondering about how to arrange the hard disk layout of my productive
systems in the future. This article outlines my thoughts and would like to ask the lazyweb for comments.
I try to keep my Debian servers as identically as possible, making it possible to talk non-linux persons remotely
through the system without having to worry about this particular box configuration.
I have been especially worrying about:
I m not a big fan of virus-scanning on the mailservers (I think you should bolt your email-sending computers right down so that viruses and spambots can t send email), but it seems to be a necessity these days. So, I was a bit late starting on mailserver-antivirus and mainly pay attention to it when it goes badly wrong. I ve got clamav installed where needed, but recently I m seeing clamav hang, eat CPU and cause postfix to defer all emails while logging nothing useful. Often this seems to be soon after freshclam kicks in. Anyone else seen this problem? Moreover, anyone managed to narrow it down and fix it?
On some systems, instead of having freshclam, we have clamav-data from volatile which seems to work better, but are they missing out on anything by doing that? Does it lag a bit behind and download a bit more?
Is there a third option, either another way of feeding clamav, or an alternative debian package, which you think people should consider?
Guadalinex-EDU: New educational distribution based in Jaunty
Guadalinex Edu is a new GNU / Linux distribution developed by the Advanced Center for ICT Schools Management (CGA), initially created for use by the educational community of Andalucia, Spain which will be available for teachers and students within the domestic sphere. Guadalinex Edu distribution is equivalent to the future Guadalinex V6 citizen but oriented to the educational sector.
Looking for the highest possible level of stability in the distribution, the CGA will be releasing a beta version of the distribution, installable by anyone who wants it. The aim is to involve the educational community in the stabilization and development of Guadalinex Edu, before its deployment in local schools.
Guadalinex Edu Beta 1 is fully functional, but should not forget that this is a beta version which may contain errors from both: the applications included by the CGA in the distribution, and errors coming from the base distribution where it must be installed (Jaunty Jackalope Ubuntu 9.04), so it is not recommended for use in production computers and, in any case, it is recommend making a backup of important data before installation.
Within an ICT Center, Guadalinex Edu will take advantage of the network infrastructure and servers from the center to offer:
a system that allows any member of the center to become remote user of its data in any computer regardless of the dependence location in the center.
a system for transmitting multimedia content among computers in a classroom
a system of interaction between students and teachers via the computer
For domestic users, Guadalinex Edu is offered as a meta package to be installed on Ubuntu Jaunty and offers tons of applications like:
Celestia (space simulator)
Kstars (Planetarium)
Kgeography (Maps)
Parley (Vocabulary)
Squeak
DRAE Spanish Search tool (Lemurae)
GNU Octave
Kbruch (fractions)
Kig
KmPlot
KSeg (Geometry)
Mathwar (Game of calculus)
QtOctave (numerical calculus)
Freemind
Blender
Audacity
Festival GUI
KTouch (Typing)
Kompozer
Umbrello
K3b
Kino
Plus all the benefits of Guadalinex:
Spanish translation of many applications
Support for electronic ID Card
And Ubuntu:
A wide range of media devices support (kernel 2.6.28)
Firefox 3
OpenOffice 3
XOrg 1.6 , etc
Installation instructions for home users are available here(In spanish)
If you have a Launchpad account, you can add comments and report bugs at the following addresses (if you do not have an account, you can register with Launchpad for one)
Comments:
https://launchpad.net/guadalinexedu/+addquestion
Bug reports:
https://bugs.launchpad.net/guadalinexedu
Original link in spanish here
I've moved buildings again, and am now the closest to home physically
possible, which makes self-powered commuting less of a drag.
Sarah's restarting her Certified Nursing Assistant course, in an accelerated
mode this time, and started clinicals this week, which is at a skilled nursing facility in the
opposite direction to work, so I rollerbladed to work today and yesterday.
I managed to convince my phone to get a GPS lock today, so I used the very
cool Android app, GPS
Tracker, which when enabled, will report to InstaMapper's website as well as
record a track.
Here is
today's commute in.
GPS tracking powered by InstaMapper.com
I m sure there must be lots written about group system administration, but it doesn t seem to be written in either the FAQ, the reference or even the venerable FDL d SAG, so I hope it s not a(nother) completely silly question. As I was reminded by the Paralysed Perl Package Problem, sometimes other system administrators can really mess you up by changing things without documenting what, how or why they made that change.
My current solution on that system is to put the message please record any major system changes with the command dch -c /root/changelog --no-auto-nmu -i 'description of change' in the /etc/motd file. I ve also installed apt-listchanges with a suitable configuration. For TTLLP servers, there s not a problem because we all use the same task tracker to make notes.
For shared/remote servers, I d like to have something better than fault-finding and the intrusion detection tools, but stop short of trying to require all system administrators to use a particular version control on the system configuration, or trying to require them to use a centralised bug tracker application. (The other sysadmins work for other people, so we can t require them to do it and pay us to manage a repository/bug tracker for your server is an awkward sell anyway.)
What do you do?
This friday, I had to go to a customer whose office is close to the
Brussels South station. As I went back, I missed the train to Mechelen
by a few minutes, and had to wait about 20 minutes (IIRC) for the next
one.
So rather than sitting there, doing nothing and twiddling my thumbs,
I thought I'd go to the ticketing office and ask about prices.
Since trains can only be booked about three months in advance to the
actual trip, now is still too early to get a definite price. However, I
asked for an estimate, and they were kind enough to get me one.
Looks like a one-way ticket from Belgium to Madrid is going to be
150ish. Of course that doesn't get me to Caceres yet, but since I'll
need to get from Madrid to Caceres whether I go there by train or not,
that isn't going to make a real difference.
I'm sure it's going to be cheaper if I book a flight with the likes
of Ryanair or some such, of course, but 300 isn't too much of an
inconvenience; and taking a train rather than a flight is much more
appealing to me. So that's what I'll do.
This weekend, I was going to go to an acquaintance so that we could
edit the material which we had filmed at the concert. Yes, we did use
DVswitch, but due to me being somewhat late in proposing a video team,
there was no team, and hence nobody switched anything. So instead we'll
have to edit stuff now.
Since I'd never done anything of the sort before, I guess it's fair
to say that I'm not exactly the expert. As such, I installed samba,
plugged the (LVM2/ext3 formatted) external hard disk containing the
movie files to my laptop, and served them over a gigE link to his; the
idea being that we could then do the editing on his system, using the
software which he knew.
After having copied those files (one 22G DV file, one 15G one, and a
few much smaller ones), he loaded them into the editing software. Which
promptly sat on its ass, making us wait, as it 'analyzed' the movie
clip. This of course took ages.
As said, I don't really know a lot about movie editing. However, in
preparation to this, I had been playing with Cinelerra CV, and so I knew that this
particular application does not require such an utterly useless delay.
This I told Werner, who got interested. So we went over to Cinelerra's
website, and had a look at the features list.
That got him interested, and he suggested that it might be more
interesting for me to install Linux and Cinelerra on his laptop, so that
he could do the editing using that, rather than the Windows application
that he wasn't entirely fond of anyway.
So I did. A few hours later, everything was up and running, we had
had lunch, and we were copying data from my external hard disk to his.
As we were waiting on the data to be copied, I installed foobillard, and we had
a bit of fun playing pool and snooker.
Closing words, as we were wrapping up and he had a slightly more
general look at the system: "sortof useful these days, isn't it?"
Sure.
I really believe that this kind of thing is the ideal way to do
advocacy; rather than suggesting freedom for freedom's sake, one should
suggest something people actually care about, and work from there.
Of course, that doesn't always work.
In a Java framework I'm working on, 'pairs' arise everywhere. Unfortunately in
contrast to e.g. C++, Java doesn't include a predefined 'pair' class.
C++ templates are really nice because of the way they are complied and
optimized (in particular they also handle what Java calls 'native datatypes');
Java generics aren't up to par with that. (But yes, Java offers other benefits,
such as being much easier to parse and thus refactor). Anyway, this is not
going to be a rant on Generics.So I have this interface in Java called Pair<FIRST,SECOND>
along with two implementations SimplePair<FIRST,SECOND> and
ComparablePair<FIRST extends Comparable<FIRST>,SECOND extends Comparable<SECOND>>.For performance reasons, SimplePair is declared 'final', and
so is ComparablePair. It's written everywhere that making classes
final can make a large difference in Java, and since these objects will be used
in a lot of places, it seems reasonable to care about this here.However, it would often be nice to have better readable code, that is assuming
I'm using SimplePair<Monkey,Banana>, it would then be nice to
make a derived class BananaPreference extends
SimplePair<Monkey,Banana>, with added methods getMonkey()
and getPreferredbanana() to make the resulting code more readable.Having readable code is also often quite as important as having performant
code, after all ...If someone with solid experience in Java optimization has some ideas to share,
please do so! Email: erich AT debian DOT org - no comments in blog.Right now, I have one idea on how it could be possible to achieve both
(seriously, I could use some feedback from Java Gurus on that): make
SimplePair and ComparablePair abstract, all methods there final, then derive
final classes as needed. Does that combine the benefits?[Update: I received from Joachim Sauer the following helpful link:
JavaOne presentation on performance tuning and various VMs. Basically this seems to indicate that in all these common situations, any modern Java VM should be able to figure out the inlining options automatically and optimize appropriately, so it won't benefit from any "final" hint by the developer. Note that a C++
compile doesn't do runtime optimization, but allows compile time optimization at a much lower level, so this rule doesn't apply to C++.]
Running 0dns-down to make sure resolv.conf is ok...done. Setting up networking.... Configuring network interfaces... ioctl[SIOCGIFFLAGS]: No such device Could not get interface ath0 flags ioctl[SIOCSIWPMKSA]: No such device ioctl[SIOCSIWMODE]: No such device Could not configure driver to use managed mode ioctl[SIOCGIWRANGE]: No such device ioctl[SIOCGIFINDEX]: No such device ioctl[SIOCSIWENCODEEXT]: No such device ioctl[SIOCSIWENCODE]: No such device ioctl[SIOCSIWENCODEEXT]: No such device ioctl[SIOCSIWENCODE]: No such device ioctl[SIOCSIWENCODEEXT]: No such device ioctl[SIOCSIWENCODE]: No such device ioctl[SIOCSIWENCODEEXT]: No such device ioctl[SIOCSIWENCODE]: No such device ioctl[SIOCSIWAP]: No such device ioctl[SIOCGIFFLAGS]: No such device wpa_supplicant: /sbin/wpa_supplicant daemon failed to start /etc/network/if-pre-up.d/wpasupplicant exited with return code 1 SIOCSIFADDR: No such device ath0: ERROR while getting interface flags: No such device SIOCSIFNETMASK: No such device SIOCSIFBRDADDR: No such device ath0: ERROR while getting interface flags: No such device ath0: ERROR while getting interface flags: No such device Failed to bring up ath0. done.It seems, the update added rules to /etc/udev/rules.d/70-persistent-net.rules by increasing the device number and applying the last applicable NAME directive instead of the first one. This lead to the following file here:
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS address =="XX:XX:XX:XX:XX:a7", ATTRS type =="1", NAME="ath0" SUBSYSTEM=="net", DRIVERS=="?*", ATTRS address =="XX:XX:XX:XX:XX:18", NAME="eth0" SUBSYSTEM=="net", DRIVERS=="?*", ATTRS address =="XX:XX:XX:XX:XX:XX", NAME="eth1" # PCI device 0x10ec:0x8139 (8139too) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR address =="XX:XX:XX:XX:XX:18", ATTR type =="1", KERNEL=="eth*", NAME="eth2" # PCI device 0x168c:0x0013 (ath_pci) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR address =="XX:XX:XX:XX:XX:a7", ATTR type =="1", KERNEL=="ath*", NAME="ath1"So the devices created were eth2 and ath1 but /etc/network/interfaces contained entries for eth0 and ath0. So fixed /etc/udev/rules.d/70-persistent-net.rules and rebooted. <rant>Is it really necessary to break network access with an update???</rant> Update I forgot this one: #521521.
Assurance contracts are contracts in which participants make a binding pledge to contribute to a contract for building a public good, contingent on a quorum of a predetermined size being reached. Otherwise their money is refunded. A dominant assurance contract is a variation in which an entrepreneur creates the contract and refunds the initial pledge plus an additional sum of money if the quorum is not reached. In game theory terms this makes pledging to build the public good a dominant strategy: the best move is to pledge to the contract regardless of the actions of others.This means that Bob goes out and gets a number of dentists to pledge 100$ to his dentist program, and if he doesn't raise at least 1000$, he'll give them each back 110$. So it's a clever solution that works out for everyone, but is still a lot fiddlier than the copyright system - Bob has to go sell the contracts and explain how things work to a bunch of people before he can get started. This might be doable with 10 dentists, but for a more mass-market sort of program, it would not be feasible.
a mechanism by which potential beneficiaries of a public good band together and pool their resources based on their willingness to pay to create the public good. Coase (1960) argued that if the transaction costs between potential beneficiaries of a public good are sufficiently low, and it is therefore easy for beneficiaries to find each other and pool their money based on the public good's value to them, then an adequate level of public goods production can occur even under competitive free market conditions.That sounds an awful lot like open source software, especially the kind espoused by groups like the Apache Software Foundation, where making free software is not a moral imperative, but a good way of producing something that is not necessarily a key business component. This has proven to work very well for infrastructure type code, as well as lots of developer tools. It is less proven as a way to develop end-user software - in the example above, it's not like Bob needs help to develop his system, or that the dentists really want to contribute - they just want a working program and don't want to get involved in its production.
Next.