Last Friday, I spent most of the day at this NAVCA ICT event in Taunton. (There s another similar one in York this Friday if you re interested.) The event was a sandwich, with a Steve Bridger social media session as the filling between workshop halves.

Conference
I went to the workshop for support workers. I m not sure whether it was quite the right label, but the others were for managers/trustees and for accidental technical supporters, which definitely weren t. There seemed to be at least three other ICT specialists there, so I wasn t the only one.
The best thing about the workshop was the mix of specialists and generalists. I was really interested in what the generalists had to say, but sadly the workshop was more of a lecture and I don t feel I got as much out as I could. I d be interested to know if that was the same for other participants.
I m not sure what I thought of Steve Bridger s session. It was a difficult one: the strange mix of an audience was all together, the room felt pretty warm and it stood between us and lunch. I had trouble concentrating but posted a few updates to identi.ca about it.
The worst thing was all the needless promotion of certain companies products. They didn t talk about blogging and syndication, they talked about Blogger and Google Reader; they didn t talk about photo-sharing, they talked about Flickr; they didn t talk about spreadsheets, they talked about Excel.
Nevertheless, I left the event feeling really positive about other ICT specialists, with some hope that the generalists were getting it and quite impressed by the people I met from the other tracks. It was pretty good to help someone towards the autosuspend setting on their GNOME-based netbook within ten minutes of arriving, too. I ve just updated software.coop with Richard Stallman s explanation of why proprietary software is a social problem, to see if that helps put the community-based view across.
I ll look again at some of the grant-funded resources mentioned and see if we can improve them, but I d welcome any comments from the voluntary and community sector about how best to do that.
and now for something completely different...
sometimes in a shell script you need to do stuff that modifies
the positional parameters ($@, $1,
$2, etc) from the cmdline, usually via the builtin
shift, maybe from using getopt(1) or similar.
for example, it's quite common to see the following in a shell
script that parses cmdline flags with getopt
# parse cmdline options with getopt
TEMP= getopt -o h123 -n $0 -- "$@"
if [ $? != 0 ] ; then usage >&2 ; exit 1 ; fi
# overwrites $@ with getopt-generated/sanitized arguments
eval set -- "$TEMP"
# destructively iterates across $@
while true; do
case "$1" in
-h)
# handle option h
shift
;;
...
--)
shift
break
;;
esac
...
done
but sometimes you want to be able to restore the original
positional parameters later, or otherwise quote them in a manner
where they can be passed along to another script/function, log
them, embed them in a string/file, etc. you can't always just stash
them in another variable to use that later, because
"$@" has a special meaning to the shell that can't
otherwise be reproduced with another variable.
one way you could try to store/save them would be to save
the original copy of $@ and use eval set
-- later on to change it back to the saved variable. using a
slightly simplified version of the above:
#!/bin/sh
# save the cmdline
saved="$@"
echo original command line, $# arguments: "$@"
while test -n "$*"; do echo arg: "$1"; shift; done
echo mangled command line, $# arguments: "$@"
# restore the cmdline
eval set -- "$saved"
echo restored command line, $# arguments: "$@"
while test -n "$*"; do echo arg: "$1"; shift; done
and at first glance, it seems to work:
rangda[/home/sean] ./bad.sh one two three
original command line, 3 arguments: one two three
arg: one
arg: two
arg: three
mangled command line, 0 arguments:
restored command line, 3 arguments: one two three
arg: one
arg: two
arg: three
but you may run into problems when some parameters have spaces,
or quotes:
rangda[/home/sean] ./bad.sh "1: one" "2: two"
original command line, 2 arguments: 1: one 2: two
arg: 1: one
arg: 2: two
mangled command line, 0 arguments:
restored command line, 4 arguments: 1: one 2: two
arg: 1:
arg: one
arg: 2:
arg: two
rangda[/home/sean] ./bad.sh "one's one"
original command line, 1 arguments: one's one
arg: one's one
mangled command line, 0 arguments:
./bad.sh: eval: line 12: unexpected EOF while looking for matching ''
or worse, shell meta characters:
rangda[/home/sean] ./bad.sh 'i wonder what pwd would do'
original command line, 1 arguments: i wonder what pwd would do
arg: i wonder what pwd would do
mangled command line, 0 arguments:
restored command line, 6 arguments: i wonder what /home/sean would do
arg: i
arg: wonder
arg: what
arg: /home/sean
arg: would
arg: do
the solution is to build up the saved value a bit more manually,
single-quoting each parameter (which should prevent any unintended
side effects of space/quotes/metacharacters), and escaping existing
single quotes inside of parameters.
# escape any single quotes in an argument
quote()
echo "$1" sed -e "s,','\\\\'',g"
# save up a properly quoted/escaped version of "$@"
for arg in "$@"; do
saved="$ saved:+$saved '$(quote "$arg")'"
done
echo original command line, $# arguments: "$@"
while test -n "$*"; do echo arg: "$1"; shift; done
echo mangled command line, $# arguments: "$@"
# restore the cmdline
eval set -- "$saved"
echo restored command line, $# arguments: "$@"
while test -n "$*"; do echo arg: "$1"; shift; done
let's see how it behaves:
rangda[/home/sean] ./good.sh "1 one" "2: two"
original command line, 2 arguments: 1 one 2: two
arg: 1 one
arg: 2: two
mangled command line, 0 arguments:
restored command line, 2 arguments: 1 one 2: two
arg: 1 one
arg: 2: two
rangda[/home/sean] ./good.sh "one's one"
original command line, 1 arguments: one's one
arg: one's one
mangled command line, 0 arguments:
restored command line, 1 arguments: one's one
arg: one's one
rangda[/home/sean] ./good.sh 'i wonder what pwd would do'
original command line, 1 arguments: i wonder what pwd would do
arg: i wonder what pwd would do
mangled command line, 0 arguments:
restored command line, 1 arguments: i wonder what pwd would do
arg: i wonder what pwd would do
while not entirely pretty, it does to do the trick. i'd be
interested to know if anyone has a better way of doing this (or if
there are hidden problems in what i've posted above).
I recently got my hands on a Lenovo IdeaPad S9e netbook for a short amount of time (I don't own it), so I did a few tests with Debian unstable (more or less Lenny right now) and a Linux 2.6.28 kernel on it, see results below.
The machine type is 4187-42G, and it features an Intel Atom N270 CPU (with HyperThreading) at 1.6 GHz, 1 GB of DDR2 RAM, an 80 GB SATA drive, an 8.9" WSVGA 1024x600 (glossy) screen, VGA port, LAN, wifi, bluetooth, 2xUSB, SD card slot, PCI ExpressCard slot, built-in microphone, and a webcam.
BIOS
You can enter the BIOS by pressing F2, the boot menu by pressing F12 during boot. Booting from USB works fine on this netbook. There's a Splashtop installation on the netbook (called "Lenovo Quickstart" here) which you can disable in the BIOS.
Installation
There's no CD-ROM drive, so the simplest way is to use a USB thumb drive for installation. Here's how you can prepare one containing a Lenny installer (assuming your USB thumb drive is /dev/sda):
$ wget http://cdimage.debian.org/debian-cd/5.0.0/i386/iso-cd/debian-500-i386-netinst.iso $ wget http://ftp.nl.debian.org/debian/dists/lenny/main/installer-i386/current/images/hd-media/boot.img.gz $ gunzip boot.img.gz $ dd if=boot.img of=/dev/sda1 $ mount -t vfat /dev/sda1 /mnt $ cp debian-500-i386-netinst.iso /mnt $ umount /mntIf the above USB thumb drive doesn't boot correctly (which it did not in my case: GRUB error 17) it's probably because of a messed-up MBR. This is how you can fix it:
$ apt-get install mbr $ install-mbr /dev/sda
Then insert the USB thumb drive in the Lenovo IdeaPad S9e, choose USB boot in the BIOS, and start the installer. Most of the process works as usual, the only small difference is that you might want to load the "parted" installer module in order to resize the Windows-partition on the disk (if you want to keep it) to make space for Linux. The second (fat32) partition seems to keep a restore image and/or the Splashtop stuff, not sure.
Audio
Works out of the box using the snd_hda_intel driver. The hardware is onboard audio in the southbridge (82801G / ICH7) and uses the Realtek ALC269 codec. If some programs don't have working audio, try modprobe snd-pcm-oss.
Built-in microphone
Untested so far.
Bluetooth
Works out of the box using the bluetooth and btusb driver. The laptop's Bluetooth device is USB-attached internally and shows up in lsusb as:
$ lsusb Bus 003 Device 002: ID 0a5c:2150 Broadcom Corp. $ dmesg usb 3-2: Product: BCM2046 Bluetooth DeviceAfter modprobe btusb you can use hcitool / hciconfig etc. as usual, and/or enable more related stuff with /etc/init.d/bluetooth start. Sensors The lm-sensors script detects the lm75, eeprom, i2c-dev, and i2c_i801 modules. The following is the 'sensors' output:
$ sensors acpitz-virtual-0 Adapter: Virtual device temp1: +36.0 C (crit = +95.0 C)The hard drive temperature can be viewed with:
$ hddtemp /dev/sda /dev/sda: FUJITSU MHZ2080BH G1: 44 CHPET The Intel ICH7 southbridge in this laptop supports High Performance Event Timers (HPET) which allows for more power savings and thus improved battery life.
$ dmesg grep -i hpet ACPI: HPET 3F6E1E41, 0038 (r1 INTEL CALISTGA 6040000 LOHR 5A) ACPI: HPET id: 0x8086a201 base: 0xfed00000 hpet clockevent registered HPET: 3 timers in total, 0 timers will be used for per-cpu timer hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0 hpet0: 3 comparators, 64-bit 14.318180 MHz counterYou can check the wakeups-per-second with powertop. SD card slot Works out of the box. It seems to be attached via USB internally (usb-storage driver).
$ lsusb Bus 001 Device 004: ID 0bda:0158 Realtek Semiconductor Corp. Mass Stroage DevicePCI ExpressCard slot Untested so far. ACPI Works fine, see comments for "acpitool" output. Network card Works out of the box using the tg3 driver.
$ modprobe tg3 tg3.c:v3.94 (August 14, 2008) tg3 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16 tg3 0000:02:00.0: setting latency timer to 64 eth0: Tigon3 [partno(BCM95906) rev c002 PHY(5906)] (PCI Express) 10/100Base-TX Ethernet 00:11:22:33:44:55 eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] WireSpeed[0] TSOcap[0] eth0: dma_rwctrl[76180000] dma_mask[64-bit]Touchpad Works out of the box, both in X as well as in the console using gpm.
$ dmesg Synaptics Touchpad, model: 1, fw: 7.2, id: 0x1c0b1, caps: 0xd04731/0xa40000Suspend-to-disk and suspend-to-RAM I'm using the hibernate Debian package. You can explicitly force the usage of either method in /etc/hibernate/hibernate.conf by uncommenting the respective lines.
TryMethod disk.conf # TryMethod ram.confSuspend does not yet work out of the box, however, as the machine is unknown:
$ s2ram -n
Machine unknown
This machine can be identified by:
sys_vendor = "LENOVO "
sys_product = "418742G "
sys_version = "Lenovo "
bios_version = "14CN51WW "
See http://suspend.sf.net/s2ram-support.html for details.
After a few test I found that s2ram -f -a 3 works fine (tested from console only so far). Now this needs to be integrated upstream and in the Debian package (I'll file a bug report). Update: Submitted bug #520848, and an email to the upstream mailing list.
Wireless
There doesn't seem to be a mainline driver for the Broadcom BCM4312 wifi card in the laptop, yet:
$ lspci -nn 05:00.0 Network controller [0280]: Broadcom Corporation BCM4312 802.11b/g [14e4:4315] (rev 01)Neither the b43 nor the b43legacy drivers work as of 2.6.28. For now, one of two possible options is to build a (partly non-free) driver provided by Broadcom from source (option 2 would be to use ndiswrapper, I guess, but that's untested):
$ wget http://people.debian.org/~adamm/kernel/linux-kbuild-2.6.28_2.6.28-0.1_i386.deb $ dpkg -i linux-kbuild-2.6.28_2.6.28-0.1_i386.deb (currently needed in unstable due to bug #518115) $ apt-get install build-essential linux-headers-2.6.28-1-686 $ mkdir temp; cd temp $ wget http://www.broadcom.com/docs/linux_sta/hybrid-portsrc-x86_32-v5_10_79_10.tar.gz $ tar xfvz hybrid-portsrc-x86_32-v5_10_79_10.tar.gz $ make -C /lib/modules/ uname -r /build M= pwd clean $ make -C /lib/modules/ uname -r /build M= pwd modulesIf that worked, you can load the driver via:
$ rmmod bcm43xx; rmmod b43; rmmod b43legacy (you could also permanently blacklist these modules) $ modprobe ieee80211_crypt_tkip $ insmod ./wl.ko $ dmesg wl: module license '' taints kernel. wl 0000:05:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18 wl 0000:05:00.0: setting latency timer to 64 eth1: Broadcom BCM4315 802.11 Wireless Controller 5.10.79.10You can now run iwconfig, iwlist, etc. from the command line, or use some GUIs such as kwifimanager. In order to disable wireless, run:
$ rmmod wlSo far, I only tested WEP (but not WPA). CPU frequency scaling Works out of the box using the acpi_cpufreq driver. Use cpufreq-set -c 0 -g performance if you need full CPU power, cpufreq-set -c 0 -g powersave otherwise. Use -c 1 to do the same with the other CPU/core. PC speaker Works fine out of the box using the pcspkr module, tested with beep. Graphics card Works out of the box using the intel X.org driver.
$ xrandr
Screen 0: minimum 320 x 200, current 1024 x 600, maximum 1024 x 1024
VGA disconnected (normal left inverted right x axis y axis)
LVDS connected 1024x600+0+0 (normal left inverted right x axis y axis) 195mm x 113mm
1024x600 60.0*+
800x600 60.3
640x480 59.9
TV disconnected (normal left inverted right x axis y axis)
DRI works out of the box with the (mainline, open-source) driver:
$ glxinfo grep direct direct rendering: YesIf you attach an external monitor or projector, you can enable it using xrandr as usual:
$ xrandr --output VGA --autoYou can also use a dual-head setup by adding this to your "Screen" section in /etc/X11/xorg.conf:
SubSection "Display"
Virtual 2048 2048
EndSubSection
After restarting the X server, you can play with xrandr and move the external screen (VGA) "below" the laptop's LCD screen (LVDS) for a simple dual-head setup. The GUI tools arandr or grandr are probably a bit simpler to use than plain command line xrandr.
USB
Works fine, of course. The only small problem is that there are only two USB ports, more would have been better.
Disk drive
Works fine, it's an 80 GB SATA drive.
Webcam
Works out of the box using the uvcvideo driver.
$ lsusb Bus 001 Device 005: ID 5986:0141 Acer, Inc $ modprobe uvcvideo uvcvideo: Found UVC 1.00 device Lenovo EasyCamera (5986:0141) input: Lenovo EasyCamera as /devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3:1.0/input/input9 usb 1-3: New USB device found, idVendor=5986, idProduct=0141 usb 1-3: New USB device strings: Mfr=3, Product=1, SerialNumber=0 usb 1-3: Product: Lenovo EasyCamera usb 1-3: Manufacturer: BISON CorporationYou can use luvcvideo for webcam viewing. Battery Lasts for ca. 3.5 hours, probably less if the system is under high load. Special keys Fn+CursorUp / Fn+CursorDown (brightness), Fn+ESC (enable/disable webcam), Fn+F1 (sleep mode), Fn+F2 (enable/disable TFT backlight), Fn+F6 (enable/disable thouchpad), Fn+F7 (Num lock), Fn+F8 (scroll lock), and Fn+F11 (F12 key) all work fine. Fn+F3, Fn+F5, Fn+F9, Fn+F10, and all other special keys are untested. LEDs The power, disk activity, CAPS lock, Num lock, and battery charging LEDs all work fine out of the box. lspci -tvnn
-[0000:00]-+-00.0 Intel Corporation Mobile 945GME Express Memory Controller Hub [8086:27ac]
+-02.0 Intel Corporation Mobile 945GME Express Integrated Graphics Controller [8086:27ae]
+-02.1 Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller [8086:27a6]
+-1b.0 Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller [8086:27d8]
+-1c.0-[0000:02]----00.0 Broadcom Corporation NetLink BCM5906M Fast Ethernet PCI Express [14e4:1713]
+-1c.1-[0000:03-04]--
+-1c.2-[0000:05]----00.0 Broadcom Corporation BCM4312 802.11b/g [14e4:4315]
+-1d.0 Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 [8086:27c8]
+-1d.1 Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 [8086:27c9]
+-1d.2 Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 [8086:27ca]
+-1d.3 Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 [8086:27cb]
+-1d.7 Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller [8086:27cc]
+-1e.0-[0000:06]--
+-1f.0 Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge [8086:27b9]
+-1f.1 Intel Corporation 82801G (ICH7 Family) IDE Controller [8086:27df]
+-1f.2 Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller [8086:27c4]
\-1f.3 Intel Corporation 82801G (ICH7 Family) SMBus Controller [8086:27da]
cat /proc/cpuinfo
See comments.
Resources
When you order good into Switzerland, they will pass the customs
office, where VAT and possibly import duties are levied. The
customs office does
not charge any duties if the total amount to be paid is less than 5
CHF Practically, given 7.6% VAT, this means that you can import
5 CHF / 0.076 = 65.79 CHF for free .
As soon as you exceed this amount, it gets complicated. All of a
sudden,
the carrier charges you for the customs declaration it does in
your name. What really blows my mind is that
the fee to pay to the carrier (more on that later) actually plays
into the whole equation.
Let s assume you order goods for 100 CHF, which is well above
the free import limit. You also paid 10 CHF for shipping. The
carrier charges you 20 CHF to do the customs presentation for you.
There, they determine that import duties are 5 CHF, and you end up
paying: (100 + 10 + 20 + 5) * 107.6% = 145.26.
That s fun, isn t it? I continue to be amazed by all the ways in
which the government sucks money from your pockets.
What s similarly baffling is how some carries deal with this.
The Swiss Post (and their ally TNT) makes you pay taxes, duties,
and fees on delivery, and their charges are the lowest when
compared to the other carriers. With this approach, you have the
option to refuse the package, if you re willing to deal with the
vendor to get your money back.
DHL is the only other carries I know who does things like the
Swiss Post. However, due to their extraordinary crap performance
and service, I could never recommend them to anyone. The three
letters of DHL, a German company, apparently stand for das heisst
langsam this means slow .
None of the other carriers give you the option to accept the
duties and their services.
For instance, GLS delivers your parcel, and some weeks later you
get an invoice, asking for the taxes and duties, and charging a fee
of 45 CHF for their service, which you ve never really asked for
and which you could not refuse. UPS, FedEx, and DPD fall into the
same category, but their charges are lower.
The one and only time I had used GLS to have something shipped
to me, I called them up to complain about their invoice, and
replied with an invoice of my own, in which I charged the same
amount for opening and reading your letter and giving your
call-centre employee the chance to talk to me directly . They got
the message and dropped the invoice.
The next step should be to play them off against each other:
create some pencil art, write an invoice for half a million, and
pay UPS to deliver the package to GLS headquarters. Attach a
miniature audio transmitter to the invoice for added fun.
NP:
Goldie: Timeless

Conference
This afternoon, I ll be at What s So Social About Social Enterprise? in Bristol.
In general, I ll be trying to support the idea that TTLLP and cooperatives in general are necessarily social enterprise. I may ask a few questions about the Social Enterprise Mark which you may have seen me asking elsewhere already. I ll probably be sending a few updates during the event to identi.ca and other sites if I can get it working from the venue.
What s your answer? What s social about social enterprise?
After the release of Asus Eee PC and the discovery of the market that was eager to buy cheap and wearable computers every laptop manufacturer has jumped into the hype and released their own versions of netbooks, with different success.
In case you ve been living under a rock these past years, I shouldn t have to tell you what this is about :). Well, just in case.
The Google Summer of Code (GSoC) is an international program that offers student developers stipends to write code for various open source software projects. Debian has participated since 2006, mentoring dozens of students on Debian projects.
The important part of the 2009 edition of the Google Summer of Code is going to start next week with the Organizations application period (March 9th). By that time, we should have listed a reasonable number of ideas on the dedicated wiki page.
We will try this year to improve on the performance of the previous years, starting first with more and more dedicated manpower. If you have some time to spare to help manage our Summer of Code bid this year, we can make it a much better experience for the students and for Debian.
Help is immediately needed in many areas. Some examples:
Last week, I couldn't resist and bought myself an Acer Aspire One (AOA 150Ab) netbook. It has 1G RAM, 120G HDD, unfortunately needs a fan, and is the model without 3G modem. It comes with Linpus Linux pre-installed. Looks quite nice, but is obviously ultimately the wrong OS ... Besides, it's locked down quite a bit, there's not even an easy way to start a terminal :-) I still have kept it, in a dual-boot configuration, to play around or show to people.
Installing Lenny went very well, and to make things more fun I'm running quite a few things from experimental: KDE 4.2, xorg 7.4 (1:7.4~5 right now) and Oo.org 3. And, to get DRI2, also the 2.6.28 kernel from the newer-than-sid repository of the kernel team (2.6.28-2~snapshot.12850, but I hear 2.6.28 has now been uploaded.) While the whole thing is fun to use and didn't make any real problems, there are a few remaining issues (yes, this is a Dear Lazyweb posting, feel free to comment. I'll try to add updates to this article as this progresses):
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.keys">
<merge key="input.xkb.layout" type="string">ch</merge>
<merge key="input.xkb.variant" type="string">de</merge>
</match>
</device>
</deviceinfo>
I now realize that just installing hal-info from squeeze or sid might also fix the issue.
I just finished packing up the signature collection for dedication-5.0.txt.
Hopefully I didn't miss any signatures, saving about 400 attachments is
tedious. Fortunately most people got the filenames right. On the down side,
there were about 80 signatures that I couldn't verify because the corresponding
key could not be found on the key servers. I've mailed the owners, and about 20
have uploaded their key until now.
There are 355 valid signatures. Thanks to all for such a huge participation,
that's about twice the number (185) we got for dedicating Potato to Espy in
2000. (These were DD-only, though.)
Comparing to the various Debian keyrings, 207 active DDs participated, 3 former
DDs, 12 Debian maintainers, and 133 other contributors.
Let's hope Lenny will be as great as Thiemo would have liked it.
Since several month, awesome users have reported a bug with OpenOffice.org. When using OOo and clicking on a menu, or using the mouse wheel to read a document, the currently selected tag (desktop) will change automagically to another one.
I've digged into awesome and found that awesome received a _NET_CURRENT_DESKTOP request. As defined by EWMH, this kind of request are sent by a pager to change the active desktop.
That was weird. Nobody is using a pager here. So, I just kicked my gdb out, attached it to OOo, breaking on XSendEvent call. And I got it:
Breakpoint 1, XSendEvent (dpy=0x1a00080, w=483, propagate=0, event_mask=1572864, event=0x7fff1fd70d70) at ../../src/SendEvent.c:46 (gdb) bt #0 XSendEvent (dpy=0x1a00080, w=483, propagate=0, event_mask=1572864, event=0x7fff1fd70d70) at ../../src/SendEvent.c:46 #1 0x00007f8c0ab4193f in vcl_sal::WMAdaptor::switchToWorkArea () from /usr/lib/openoffice/basis3.0/program/libvclplug_genlx.so #2 0x00007f8c0aafdbd8 in X11SalFrame::Show () from /usr/lib/openoffice/basis3.0/program/libvclplug_genlx.so #3 0x00007f8c1378623c in Window::Show () from /usr/lib/openoffice/program/../basis-link/program/libvcllx.so #4 0x00007f8c13785f40 in Window::Show () from /usr/lib/openoffice/program/../basis-link/program/libvcllx.so #5 0x00007f8c1372cb54 in FloatingWindow::StartPopupMode () from /usr/lib/openoffice/program/../basis-link/program/libvcllx.so #6 0x00007f8c1373c877 in ?? () from /usr/lib/openoffice/program/../basis-link/program/libvcllx.so #7 0x00007f8c1373ccf2 in ?? () from /usr/lib/openoffice/program/../basis-link/program/libvcllx.so #8 0x00007f8c1373ce84 in ?? () from /usr/lib/openoffice/program/../basis-link/program/libvcllx.so #9 0x00007f8c13795e7f in ?? () from /usr/lib/openoffice/program/../basis-link/program/libvcllx.so #10 0x00007f8c13797e74 in ?? () from /usr/lib/openoffice/program/../basis-link/program/libvcllx.so #11 0x00007f8c13796748 in ?? () from /usr/lib/openoffice/program/../basis-link/program/libvcllx.so #12 0x00007f8c0aafe6f8 in X11SalFrame::HandleMouseEvent () from /usr/lib/openoffice/basis3.0/program/libvclplug_genlx.so #13 0x00007f8c0ab040c2 in X11SalFrame::Dispatch () from /usr/lib/openoffice/basis3.0/program/libvclplug_genlx.so #14 0x00007f8c0ab31625 in SalX11Display::Yield () from /usr/lib/openoffice/basis3.0/program/libvclplug_genlx.so #15 0x00007f8c0ab356f3 in ?? () from /usr/lib/openoffice/basis3.0/program/libvclplug_genlx.so #16 0x00007f8c0ab2df1f in SalXLib::Yield () from /usr/lib/openoffice/basis3.0/program/libvclplug_genlx.so #17 0x00007f8c135b050e in Application::Yield () from /usr/lib/openoffice/program/../basis-link/program/libvcllx.so #18 0x00007f8c135b0587 in Application::Execute () from /usr/lib/openoffice/program/../basis-link/program/libvcllx.so #19 0x00007f8c17517e80 in ?? () from /usr/lib/openoffice/program/../basis-link/program/libsofficeapp.so #20 0x00007f8c135b4b24 in ?? () from /usr/lib/openoffice/program/../basis-link/program/libvcllx.so #21 0x00007f8c135b4bc5 in SVMain () from /usr/lib/openoffice/program/../basis-link/program/libvcllx.so #22 0x00007f8c1754ca6c in soffice_main () from /usr/lib/openoffice/program/../basis-link/program/libsofficeapp.so #23 0x000000000040105b in main ()I started digging more into the code, and this is what I finally found in salframe.cxx:
// #i45160# switch to desktop where a dialog with parent will appear
if( mpParent && mpParent->m_nWorkArea != m_nWorkArea )
GetDisplay()->getWMAdaptor()->switchToWorkArea( mpParent->m_nWorkArea );
Beautiful! It even has a comment with a IssueZilla bug number. Let's go and see where it comes from.
After 10 minutes of research to find that fucking IZ, I finally found the link to the issue #45160. The bug is IMHO not related to OOo but to a window manager doing poor job.
I've found that an awesome user already reported an bug err, wait, I mean an issue as issue #96684 (remember there's no bug in OOo, only issues) and I commented about it.
UPDATE: It seems OOo developers have agreed to fix that bug eventually.
Biella asks if I can read novels
from a screen. Yes, I've read what has to be getting close to a thousand
novels that way, over the past 8+ years.
I was thinking about this just the other day as I read
The once and future e-book: on reading in the digital age.
That article does a good job arguing against many of the common complaints
about ebooks, such as "I can't read an ebook in the bathtub".
![]() |
![]() |
Arthur Liu is doing a great series of posts following up on
the results of Google Summer of Code '08 projects in Debian.
(post 1
post 2)
Most of them failed to produce code that's actually used
in Debian, though there were some very successful projects, too.
My experience with ikiwiki
in '07 parallels that:
latex
Patrick Winnertz produced a working teximg (latex -> image)
plugin that's in ikiwiki.
The initial proposal also included doing latex -> html and
wiki page -> latex conversions; that work never happened.
file upload and image gallery
Ben Coffey had an ambitious proposal to add file upload
support to ikiwiki and also write an image gallery plugin
using that.
Ben did produce a working file upload interface, but that
code never got into ikiwiki. This was due to a combination
of at least three things:
lightbox javascript
library, which, at least at the time was licensed under a non-free CC license.
The code is present in a branch in ikiwiki's git repo, but at this point
there is still no image gallery plugin in ikiwiki, though others are now
working on other implementations.
Conclusions
I learned some important things from participating in the '07 SoC:
It's been a somewhat long day...
I got up at 6:30am for a 7am ankle physical therapy session.
I went to the hospital after that. When I got there, a sonographer was doing
the echocardiogram on her heart to check the valves. I missed the doctors.
Sarah didn't feel any more knowledgeable about her condition even though
they'd been through.
The patient Sarah was sharing with had a bad night, caused her to have a bad
night's sleep also, and she always deals with all of this crap much worse when
she's got a sleep debt.
Dinner stayed down, but breakfast did not.
The sonographer seemed fairly confident about her heart condition. Usually
they don't make any comments on what they're seeing and leave that to the
doctors, so we took some comfort from that.
I managed to corner the physician's assistant who had been following Sarah
in her office, and quizzed her on what was going on.
It turns out a PICC
line had been ordered, and they get installed by specalised PICC nurses
and that's all they do all day. The PA implied that it might not happen
until tomorrow. The gall stones were definitely unrelated, and something to
follow up with her primary care physician. Incidentally, Wikipedia has some
wicked pictures of gall
stones. Talk about freaky.
I think I hung around until 10am, and then headed into the office to try and
get some work done, with the intent to come back after work.
Not long after, Sarah called me up all beside herself about the PICC line
(she doesn't deal well with the idea of getting jabbed at the best of times,
and being tired put her over the edge), so I scrapped work, and went back to
the hospital for the remainder of the day.
I decided to hunt down her cardiologist to see if the PICC line was
absolutely necessary, and I managed to get the exact low down on her
condition.
The changes to whitehouse.gov are being used as an example of
ephemeral digital content.
At the exact moment Barack Obama was inaugurated, all traces of President Bush vanished from the White House website, replaced by images of and speeches by his successor. Attached to the website had been a booklet entitled 100 Things Americans May Not Know About the Bush Administration - they may never know them now. When the website changed, the link was broken and the booklet became unavailable.At the same time, the Obama administration is chafing under rules that don't allow them to use Facebook, gmail, Blackberries, and Twitter. Because of this pesky Presidential Records Act.
Suddenly, they have to relearn how to communicate, because the law has not caught up with the way people live. They are being forced to return to older technologies (or they will once those technologies start working properly), and abandon or become more guarded in their use of newer technologies.Anyone else find the dissonance am(az us)ing? Seems that anyone who really wants a copy of that missing booklet will be able to access it via FOIA in a few years (unless it got wiped with all of Cheney's files). Meanwhile, if the new guys find a way to stop being hobbled by the law, their digital content will likely be truely ephemeral, since they have become addicted to "newer technologies" that eliminate all expectations about data's preservation and privacy. I think this is one case of the law not keeping up with technology that I can support. It might be more fair to describe it though, as technology not keeping up with the law.

Time to Report
After a good start, I ve hit a bump in the road getting all the various TTLLP annual reports filed with the various offices on time.
Well, less a bump in the road, more of a gaping chasm.
Well, less a gaping chasm, more of a black hole with the potential to consume as many resources as you can throw at it.
As usual, it s the financial reports and rax return which are the problem. After making a good start by closing the 2007-8 books in plenty of time, we ve had some small problems which we ve overcome, but the blocking problem now is that HMRC are using an obsolete address for the company.
I only just found out that was the problem yesterday. That s doubly odd because I changed my address at the same time (which they re using) and we ve submitted two tax returns since then with the correct address.
Once I got through to the telephone helpline, they told me to go to the tax office (in the nearest town just now, but scheduled for closure) to change the address. At the tax office, they told me to use a telephone in the corner and I had no need to have gone in person. HMRC s left hand doesn t seem to know what its right one is doing!
The guy on the end of the phone confused me with jargon, but the upshot is that it will take up to 3 working days to correct our address, then we can request new access to our accounts which will take up to 7 days which means we ll miss the filing deadline. I think it s time to complain about the broken address. I ll dent my progress. Anyone else finding the changed tax filing process bloody taxing this year?
Finally, anyone got free and open source software for online filing of partnership tax returns? There s a 10 shareware Excel spreadsheet tool out there, but I guess I ll have to borrow someone s Excel to run it (it won t work in OpenOffice, will it?). Is there a better way? If not, I ll tell parliament.uk about HMRC driving Windows sales (slowly chipping away at the monopoly).
Next.