Michael Prokop: Re: I am only mad on IRC
Martin, sorry for calling you Madduck on the debian.ch-mailinglist. Luckily I didn’t use that name during our meeting in Zurich last week. *pfuh*
Martin, sorry for calling you Madduck on the debian.ch-mailinglist. Luckily I didn’t use that name during our meeting in Zurich last week. *pfuh* 

I do very little law-firm-life blogging here, although that life is where I spend the overwhelming majority of my time. Consider Real Lawyers Have Blogs (something of a misnomer — they mean real firms have blogs). Counterpoint: Be Careful What You Post (motion to amend to assert defamation counterclaim against new defendant for comment on blog entry granted).
In any event, in case I have any law firm associate readers, I’ll send props to the ABA’s free Litigation Podcast. It has a high signal to noise ratio, and the episodes are usually short enough to complete in my walk to and from the train.
I’d like to draw attention to the latest post (”cast?”), The Secrets of Superstar Associates (21.1 MB MP3). Although on some level the advice should seem obvious, the “rules of the game” are seldom spelled out so clearly. I recommend it to any law students looking to join a firm and junior associates as well. In fact, even if you’re not a lawyer, much of the advice is transferable to surviving in any highly-skilled-professional organization.
Technorati Tags: ABA, American Bar Association, Litigation Podcast, Law Firm
| 2005/06 | 2006/07 | 2007/08 | |
|---|---|---|---|
| number of (partial) days | 25 | 17 | 29 |
| Damüls | 10 | 10 | 5 |
| Diedamskopf | 15 | 4 | 24 |
| Warth/Schröcken | 0 | 3 | 0 |
| total meters of altitude | 124634 | 74096 | 219936 |
| highscore | 10247m | 8321m | 12108m |
| # of runs | 309 | 189 | 503 |
Using Xfce on your laptop running Debian? The battery plugin is
unusable? Don't panic, we're aware of this.
Basically, the situation is a mess, for some reasons:

--show-why, which
is like --show-deps but traces back to the closest manually
installed package.
In some wide-character locales, the fix for bug #472625 in this
upload of aptitude triggers bug #473874 and bug #474065
in apt; the symptoms are an error message about line N too long
(max 1024) on start-up, and messages saying that method http
has died unexpectedly! when you try to update the package lists
or install new packages. I've written patches to fix these bugs in
apt, and once they're reviewed by the other apt maintainers they
should be fixed in the next upload of apt (version 0.7.12). Until
then, if you're bitten by this bug, you can work around it by
diverting /usr/share/aptitude/aptitude-defaults.$LANG and replacing
it with an empty file. For instance, for Russian (ru):
# dpkg-divert --rename --local --divert /usr/share/aptitude/aptitude-defaults.ru.real --add /usr/share/aptitude/aptitude-defaults.ru
# echo > /usr/share/aptitude/aptitude-defaults.ru
Once a fixed apt is uploaded, you can remove the diversion like this:
# rm /usr/share/aptitude/aptitude-defaults.ru
# dpkg-divert --rename --local --remove /usr/share/aptitude/aptitude-defaults.ru
I had an "Aha!" moment today when I came to a Wittgensteinian realization that while the sense of a piece of code corresponds to the formal behaviour of that code, the meaning of the snippet is the set of possible contexts where this code could be used. This idea has changed my view of teaching programming (I have been teaching Python in a local school for a couple months now).
This attitude is nothing new, but for some reason I have not come across it, or rather, I have never seen it applied. (The fashionable problem-based learning thing has some similarities, but isn't quite it.) Having an idea to start from, it was not hard to find good articles expanding the idea. I especially liked Robert Strandh's short writeup on idioms and Elliot Soloway's Learning To Program = Learning To Construct Mechanisms And Explanations (1986). Experienced programmers will not learn much, but anyone dealing with CS education, teachers and students alike, ought to have a look.
The moral is that emphasis should be placed on reading exemplary code ("experienced programmers do X this way") rather than definitions ("function Y does Z"). Programming seems to be closer to language use than to mathematics, and teaching methods should reflect that.

UI fonts of OpenOffice.org Writer and XFCE thunar are really not the same
... years of seeing this ugly font and being force to scale the OpenOffice.org UI display to 80%.
I just found the solution!
All his related to a X settings: Xft.dpi. People are suggesting around to set it to 96 or something like that. I just decide to use the one i can find xdpyinfo (does it make sense?) and send the result to X settings using xrbd.
Here is the script $HOME/bin/xfce4-xft.sh:
#!/bin/sh xrdb -query Xft.dpi grep Xft.dpi > /dev/null && exit 0 RESOLUTION= xdpyinfo grep resolution sed "s/.* \\([0-9][0-9]*\\)x.*/\\1/" TMP= mktemp trap "rm -f $TMP" EXIT echo "Xft.dpi: $RESOLUTION" > $TMP xrdb -merge $TMPCopy/paste/chmod a+x this file. And then add a file $HOME/.config/autostart/xfce4-xft.desktop to autostart the previous script:
[Desktop Entry] Encoding=UTF-8 Type=Application Name=XFCE-XFT Comment=Fix XFCE Xft.dpi settings Exec=/home/gildor/bin/xfce4-xft.sh StartupNotify=false Terminal=false Hidden=false(replace /home/gildor/ by your own home directory) Thats it. Your Xft.dpi will be fixed depending on the configuration of your X server. This allow you to have a laptop and a desktop with different screen resolution. I am waiting the email from bugzilla.xfce.org to submit this script to XFCE bug tracking. Enjoy. Update: Following the comment of this entry, another better solution is to use openoffice.org-gtk which works out-of-the-box with a clean UI. I don't even have to force OO to gnome style. Thanks to Dan Callahan, Vasilis and Corsac for their suggestion.
OK, after a mainboard replacement by HP, I have my AMD64 HP Pavilion DV6000 (DV6615ea) back and a quick update has given me working wireless! The last remaining obstacle has gone - the most recent 2.6.24 kernel update includes working support for the Broadcom Corporation BCM94311MCG wlan mini-PCI (rev 02) in the b43 kernel driver.$ uname -a
Linux dwarf 2.6.24-1-amd64 #1 SMP Thu Mar 27 16:52:38 UTC 2008 x86_64 GNU/Linux
$ dpkg -l 'linux-image-2.6*'
linux-image-2.6-amd64 2.6.24+13
linux-image-2.6.24-1-amd64 2.6.24-5
Apr 4 20:07:06 dwarf kernel: b43-phy0 ERROR:
YOUR FIRMWARE IS TOO NEW. Please downgrade your firmware.
Apr 4 20:07:06 dwarf kernel: b43-phy0 ERROR:
Use this firmware tarball: http://downloads.openwrt.org/sources/broadcom-wl-4.80.53.0.tar.bz2
Apr 4 20:07:06 dwarf kernel: b43-phy0 ERROR:
Use this b43-fwcutter tarball: http://bu3sch.de/b43/fwcutter/b43-fwcutter-009.tar.bz2
Apr 4 20:07:06 dwarf kernel: b43-phy0 ERROR: Read, understand and _do_ what this message says, please.
./debimg debimg.cfg. This will create an ISO image named
I've been using git for a while, like it a lot, and finally decided it's time
to move all my Debian packaging work over from CVS.
After a frustrating few hours trying, I gave up on trying to use git-cvsimport.
It generates mangled repositories even for simple packages like sudo. The
git-import-dsc tool in the git-buildpackage package works fine as far it goes,
but I'd really like to preserve my history.
So, after some consultation on IRC, I took a look at parsecvs.
It didn't quite work out of the box, either, but looks promising, and the
author showed an immediate interest in the problems I'm having and offered
to help. So, perhaps I'll be able to use it before long...
In the meantime, a while back I offered to help Gudjon I. Gudjonsson
restructure the sdcc packages so that a DFSG compliant version can return to
main with a full version under a different package name going in non-free.
This is all necessary because some of the assemblers provided in the package
have a non-commercial use clause in the license, and there are also license
issues with the HTML documentation. I care about this because sdcc is a
build dependency for gnuradio, which I maintain for Debian (it uses the 8051
toolchain to build downloadable code for the USRP, etc). While waiting for
parsecvs to get some love and attention, I sat down this evening to
restructure sdcc and move it to git.
I'm pretty happy with my progress so far, though there's a bit left to do
before uploads happen. Gudjon and I decided to use the
collab-maint
facilities on alioth.debian.org for collaboration, which took me a little
head-scratching to figure out, but looks like a perfect fit for our needs.
I updated the wiki page about
Git on Alioth
with a few of my learnings as I went through the process.
Using git branching to handle non-DFSG-compliant upstream sources is pretty
obvious, the notes in the git-buildpackage documentation helped. Using
pristine-tar to capture the deltas required to regenerate orig.tar.gz files
from the git repo is amazingly cool. It's hard to believe how much friendlier
the world seems when you don't have to drag a bunch of tarballs around with
you to do useful work! And git-buildpackage has suitable options to make
using it pretty automatic. Great stuff!
It's likely to be a few days before I can get back to this, finish up, and
upload the results of this restructuring work. In the meantime, I'm writing
this entry largely to offer my compliments to everyone involved in making
git-buildpackage, alioth, and collab-maint work so well. Special thanks to
Joey Hess, whose pristine-tar package is another in a long line of absolutely
brilliant tools that contribute to making my life easier! I'm going to end up
using it a lot.

An email saying that Nectarine now has three, new dedicated streams for music is not spam, and it never will be. You can now find one stream for chiptunes, one for oldskool songs, and one for songs only included in a demoscene production.
And yes, this is the right time to sign up for Solskogen 2008.
In my last blog entry, I was asking for algorithms to morph a picture so that contour lines would become circles. I then started to write some python/gtk/cairo code to actually visualize my thought. It came out relatively pretty, so I made the GUI around it usable (although far from nice, I guess) and put the current, early version in a darcs repostory (DarcsWeb browser available).This is a screenshot (click for full version) of a map of my part of town, shamlessly stolen off the internet. The red shading shows the distance from the thick point of the graph the redder, the closer. On the right the image is morphed so that all points on a circle around the center have the same distance to it. The blue shape on the left and the blue circle on the right are points with distance 205.Below the user canapt-get build-dep is not a proper solution for me for two reasons:
aptitude, who wants to remove them immediately. Marking them manually installed would not be a solution either (since I would not remember why I did install them).equivs to create a dummy package depending on its build-deps. Pretty useful (for me at least). Maybe it would be worth including in the devscipts package ?

mysql> CREATE TABLE User_ ( mysql> ... mysql> ) ENGINE=InnoDB DEFAULT CHARSET=latin1; Query OK, 0 rows affected, 1 warning (0.04 sec)One warning, but we're running this as part of an import, so we'll fail to spot this and even if we did, we wouldn't be able to get it back out of mysql because SHOW WARNINGS only shows the last command. So let's look at the table we just created:
mysql> show create table User_\G
*************************** 1. row ***************************
Table: User_
Create Table: CREATE TABLE User_ (
...
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
Eh? what's going on? We asked for InnoDB, but have got a MyISAM
table. Lets look at the engines available.
mysql> show engines; +------------+----------+----------------------------------------------------------------+ Engine Support Comment +------------+----------+----------------------------------------------------------------+ MyISAM DEFAULT Default engine as of MySQL 3.23 with great performance MEMORY YES Hash based, stored in memory, useful for temporary tables InnoDB DISABLED Supports transactions, row-level locking, and foreign keys BerkeleyDB NO Supports transactions and page-level locking BLACKHOLE NO /dev/null storage engine (anything you write to it disappears) EXAMPLE NO Example storage engine ARCHIVE YES Archive storage engine CSV YES CSV storage engine ndbcluster DISABLED Clustered, fault-tolerant, memory-based tables FEDERATED YES Federated MySQL storage engine MRG_MYISAM YES Collection of identical MyISAM tables ISAM NO Obsolete storage engine +------------+----------+----------------------------------------------------------------+ 12 rows in set (0.00 sec)Oh, so innodb has been disabled. We can fix that easily by removing skip-innodb from my.cnf.
root@cmsdb01:/var/log# grep skip-innodb /etc/mysql/my.cnf root@cmsdb01:/var/log#But hang on a second, that's not in the config file. What's going on? It turns out that the reason InnoDB is disabled is because of the innodb_log_file_size setting not matching the files on disk.
root@cmsdb01:/var/log# grep innodb_log_file_size /etc/mysql/my.cnf innodb_log_file_size = 512M root@cmsdb01:/var/log# ls -lh /var/lib/mysql/ib_logfile* -rw-rw---- 1 mysql mysql 5.0M 2006-12-19 18:39 /var/lib/mysql/ib_logfile0 -rw-rw---- 1 mysql mysql 5.0M 2006-12-19 18:39 /var/lib/mysql/ib_logfile1Rumour has it that you can just stop MySQL, delete these log files and start MySQL again. I'm yet to try this as the server in question is in production use. The alternative is to change the innodb_log_file_size setting to match the file. So in summary the problems with MySQL are:
Next.