Search Results: "pm"

21 December 2007

Andrew Pollock: [tech] Waiting for a software RAID-1 to resync is like watching paint dry

I'm so annoyed with myself. So today was the day I was going to upgrade the disks in daedalus. I'd finally managed to convince Dell to sell me two new 140Gb disks to replace to two 70Gb disks that were fast approaching capacity. I'd organised for access to the datacentre from 10am. I arrived early. I didn't manage to get into the datacentre until about 11am, because they were having problems remotely unlocking the door, and I had to wait until an air conditioning repair guy turned up, who was fixing some air conditioning problem. I hadn't had a lot of time to plan how I was going to do the upgrade, but I figured it was going to be pretty straightforward. Each disk is partitioned into three partitions, all of which are mirrored using software RAID. The first partition is the root filesystem, which is just an ext3 filesystem, mirrored. The second partition is swap, also mirrored, and the third partition is an LVM physical volume. The first two partitions are only a couple of gigabytes. So the basic plan was to remove the second disk (disk 1, aka /dev/sdb), put in the new bigger disk, load the partition table from the original disk 1, resync the three mirrors, and then boot off the new disk 1, and rinse and repeat with disk 0. This was all going swimmingly, when right at the end (in fact after the third partition finished syncing according to the kernel), /dev/sda decided it had a few unreadable sectors. This made the software mirroring have a dummy-spit, and decide it needed to restart the syncing from scratch. I'd seen this before with a bad disk. So I wishfully hoped it was something to do with the new disk being bigger than the old disk, so tried to roll back to the original disk 1. As was pretty much expected, disk 0 exhibited the same problems at the same point. So the problem was disk 0, not the new disk 1. So it seemed like I just managed to pick the wrong half of the mirror to work from. I thought I'd try manually dd'ing the third partition from /dev/sda to /dev/sdb, ignoring the errors, but that didn't result in a usable half of a mirror either. Interestingly, these bad sectors hadn't made themselves known until this point. The RAID array had been otherwise healthy, and SMART hadn't uttered a peep. I think at this point, after spending about 3 hours fighting with it, I decided to move up a layer. I could successfully sync /dev/md0 (the root filesystem) and /dev/md1 (the swap device), and the only reason I could think of these bad sectors not giving me grief already, was because they were right at the end of the disk, and I hadn't quite used all the free physical extents in LVM yet. Lucky I hadn't decided to grow things any further. So I decided that rather than trying to convince this existing /dev/md2 to sync with the new /dev/sdb3, I'd just build a new degraded RAID-1 on /dev/sdb3 and move all the physical extents from the degraded RAID-1 on /dev/sda3 to the new degraded RAID-1 on /dev/sdb3. I tried the logical volume with /tmp on it first, since it was fairly sacrificial. It worked fine. So I tried the largest logical volume, /srv, which was 30Gb. That went fine as well, so I moved the rest. All of them went without complaint. So then I removed the now unused /dev/md2 from the volume group, and finally managed to boot with just the new disk 1. Then I was able to put in the new disk 0, and just do a standard RAID-1 rebuild onto it. Hooray for LVM saving the day yet again. And this is where I should have stopped. At this point it was about 3pm. I'd been aiming to leave by 4pm to pick up a rental car that I had to get by 5pm. I'd wanted to also upgrade to Etch while I was physically in front of the box, in case there were any nasty kernel/udev issues that made the box unbootable. The catch was, I needed to grow /var, which was quite full. The intention had been that once I'd got the two new disks in and all synced up, I'd create a fourth mirrored partition, and add this to LVM as a new physical volume, then I could just keep merrily growing things. It felt a little bit dirty having to make a new partition to get at the extra space, and I'd reading about mdadm's "grow" mode, whilst I was sitting around waiting for things to sync. So I thought to myself, I'd just delete the third partition, and recreate it using the remaining additional cylinders I now had at my disposal, then use this grow feature of mdadm to tell Linux the array was now bigger, then resize the physical volume, and go from there. This is where things went a bit pear-shaped. I deleted and recreated (larger) the third partition on each disk, and rebooted. I was then messing around with mdadm trying to update /etc/mdadm/mdadm.conf, since the UUID of /dev/md2 had changed, when I discovered that /dev/md2 had completely disappeared. It seems that recreating that partition made Linux completely fail to see /dev/sda3 and /dev/sdb3 as RAID-1 members, and so because of the fairly transparent nature of Linux's RAID-1, LVM had seen the underlying physical volumes, and just decided to run with /dev/sda3 as the physical volume, and everything had continued to work. I just had no redundancy any more. So it was about 3:20pm at this stage, and I was starting to panic, thinking I'd never get this sorted out before I had to leave, and I'd end up returning to the US with a non-redundant mess on my hands. Then I remembered that I had the backups of the partition tables of the old disks, from before I removed them. So I thought I'd go back to that state, and just have the additional cylinders unallocated. I hadn't yet attempted to grow the RAID-1 (partly because it had vanished), so in my haste, I didn't see this being a problem. The problem was, I'd booted into multi-user mode, and things had merrily been operating on just half the mirror. I restored the partitions, and rebooted, and lo and behold, /dev/md2 magically reappeared, already 100% consistent according to /proc/mdstat. I was somewhat surprised by that, but I booted back into multi-user mode again, only to discover that the /var filesystem was panicking and remounting itself into read-only mode. This was pretty weird, given that during boot, it was considered clean by e2fsck. So I was really getting bothered by this stage, so I rebooted into emergency mode (single-user mode in Debian starts way too much), and manually started up LVM, and forcibly fscked everything. There was a bit of filesystem damage to /var, /home and /srv. Thinking I'd now fixed the problem, I rebooted into multi-user mode again, but again /var, which was considered clean during the fscking/mounting phase of booting, panicked shortly after mounting, and remounted itself read-only. So I rebooted again, broke the mirror, and forcibly fscked the filesystems again (only operating on what was on /dev/sda3. Then I rebooted without incident into multi-user mode and resynced the mirror. At this point I ran away. So I'm really annoyed with myself. This should have been a blog post about how crap Linux's software RAID is at error recovery, and how LVM saved the day yet again, but it was overshadowed by me overreaching in my haste, and managing to cause silent data corruption. The morals of this story: I think that is all. I'm just so pissed off that what could have been a perfect (enough) upgrade with zero data-loss, even considering I had a bum disk, wasn't.

Ian Wienand: Playing with the x86 PMU

A discussion about commas lead to an excuse to have a play with the IA-32 processor performance managment unit (PMU). To start, take two versions of a program to count the number of commas in a text file — one in C and one in Python. The C one runs faster on the input data set of ~60MiB of random data, but why? The CPU performance monitors give are the key to getting some idea of where the programs spend their time. I like to use perfmon2 because it's what I know, but Oprofile can do it too. All the available events for IA-32 are described in the manual; I currently of no better way of finding out about them than just reading it. On Itanium I reccommend Caliper which, for the most common situations, does most of the work for you and presents it in a nice report. Intel's Vtune also does a similar thing. The first thing to investigate is if the CPU is getting enough instructions to keep busy. The IFU_MEM_STALL metric is a good place to start as it is triggered when the instruction fetch pipeline is stalled, presumably waiting on either the ITLB or the trace buffer (Icache).
$ pfmon -e CPU_CLK_UNHALTED,IFU_MEM_STALL ./comma < ./randomcommas
340559375 CPU_CLK_UNHALTED
   192115 IFU_MEM_STALL
$ pfmon -e CPU_CLK_UNHALTED,IFU_MEM_STALL python -Sc "import sys; print sum(l.count(',') for l in sys.stdin)" < ./randomcommas
1287100
4571257047 CPU_CLK_UNHALTED
 71981750 IFU_MEM_STALL
That works out to 0.05% of total cycles for the C version and 1.5% for the Python version, neither of which sets off immediate warning bells. If it did, we could start drilling down to things like the L2_IFETCH and ITLB_MISS events, or the BR_* branch events to try and see why the CPU is having to wait to get its next instruction. Next it is useful to find the CPI (cycles per instruction). This is calculated by the ratio of retired instructions against the number of CPU cycles; since a superscalar machine can issue more than one instruction per cycle this should ideally be much greater than 1 (for example, an Itanium can execute up to 6 instructions each cycle).
$ pfmon -e INST_RETIRED,CPU_CLK_UNHALTED ./comma < ./randomcommas
542953593 INST_RETIRED
340612036 CPU_CLK_UNHALTED
$ pfmon -e INST_RETIRED,CPU_CLK_UNHALTED python -Sc "import sys; print sum(l.count(',') for l in sys.stdin)" < ./randomcommas
1194455205 INST_RETIRED
4569931735 CPU_CLK_UNHALTED
This works out at a CPI of 1.59 for the C version and 0.26 for the Python version. The Python version is clearly spending a lot of time waiting, because it isn't even able to issue one instruction every cycle. At this point it seems the CPU has enough instructions to do, but it is sitting around waiting to get through those instructions. This suggests the waiting is related to getting data from the cache. The load and store requests from the L2 cache are accounted to the L2_LD and L2_ST events respectively. These have the ability to mask out cache lines in different states of the MESI protocol, but for this we don't care so just ask pfmon to show us everything.
$ pfmon -e L2_LD:M:E:S:I,L2_ST:M:E:S:I ./comma < randomcommas 
102505 L2_LD:M:E:S:I
   167 L2_ST:M:E:S:I
$ pfmon -e L2_LD:M:E:S:I,L2_ST:M:E:S:I python -Sc "import sys; print sum(l.count(',') for l in sys.stdin)" < ./randomcommas
3278774 L2_LD:M:E:S:I
  10457 L2_ST:M:E:S:I
This shows us that the Python version does quite a few more stores than the C counterpart. Considering this program should simply be reading the input stream and counting the number of commas, we do not expect much store traffic at all. This suggests the Python version is doing some extra copying, for whatever reason (maybe some Python expert can pinpoint it?). We can drill down a bit more into the memory related latencies. The DCU_LINES_IN event gives the total number of lines allocated in the cache. Another event, DCU_MISS_OUTSTANDING, gives a weighted measure of the cycles spent waiting for a cache line to be brought in. Each cycle spent waiting is weighted by the number of outstanding cache misses (I think the Pentium M I'm using can have up to 4 cache miss requests outstanding at once) and has some caveats, but can be considered a rough estimate of the time spent waiting for a cache line to be brought in. Therefore divding DCU_MISS_OUTSTANDING by DCU_LINES_IN gives us an approximate metric of how long a cache miss takes.
$ pfmon -e DCU_MISS_OUTSTANDING,DCU_LINES_IN ./comma < randomcommas 
769736 DCU_MISS_OUTSTANDING
102387 DCU_LINES_IN
$ pfmon -e DCU_MISS_OUTSTANDING,DCU_LINES_IN python -Sc "import sys; print sum(l.count(',') for l in sys.stdin)" < ./randomcommas
99810150 DCU_MISS_OUTSTANDING
 4240179 DCU_LINES_IN
So that works out to 7.5 cycles for the C version and 23 cycles for the Python version. This seems to strongly suggest that it is memory traffic that is weighing the Python version down. That is only the initial phase; the results give a high level idea of why one program is running slower than the other. The initial analysis phase generally consists of taking the ratios of certain events to try and get some idea in your head of what the program is doing. Then comes the really hard work; drilling down to figure out how to fix it! Some useful references:

19 December 2007

Ian Haken: Trials and Tribulations of ARM Programming

I spent a rather long time today trying to figure out a rather obscure bug. I few months ago I bought a gp2x, an open portable gaming system (and media player, etc.). I've really enjoyed it so far. The open platform for development has lent itself it many fun apps, console emulators the most conspicuous I think, but it's also fun to experiment and develop with it. I recently ported an asteroids clone I wrote and the whole process was actually fairly simple. As such, I decided to take on a larger task of porting something like FreeCNC, which as far as I know, no one has done yet.

After some simple trouble with library version conflicts, I got the program compiling correctly. However, if wasn't reading files quite right. I spent a little while investigating and discovered the problem was in a function which essentially hashes filenames. In the end, it was this snippet of code which was giving the trouble:

char buffer[13];
...
calc = ROL(calc)+*(long *)(buffer+i)


In particular, this is trying to read 4 bytes from this character array as an integer. At first I though the trouble might be endian-ness, but both the gp2x (an ARM processor) and x86 use big-endian*. I finally resorted to running gdb and sifting through assembly level instructions.

$r2 = 0xbffffd7c
$r3 = 0x41434f4c
0x0000a310 _ZN8MIXFiles7calc_idEPc+52>: str r3, [r2]


Here, the register $r2 points to buffer and $r3 is the value we're trying to save into the buffer. After this we would expect
*0xbffffd7c = 0x41434f4c
but instead see
*0xbffffd7c = 0x08db9841.
If I purposely set *0xbffffd7c = 0xffffffff and repeat this instruction we see
*0xbffffd7c = 0xffffff41.

Clearly the problem lies in this single str instruction, and was resident to the ARM architecture. So of course it was time to go to the processor documentation. Reading the fine print finally reveals what I was looking for.
A word store (STR) should generate a word aligned address. The word presented to the data bus is not affected if the address is not word aligned. That is, bit 31 of the register being stored always appears on data bus output 31.
Yep, since the buffer was an odd-sized array and stored on the stack, it started on an odd number in memory. Hence its address was not word aligned, and so as per the documentation, the store did not have the expected result. Here's a short program which shows what I'm talking about.

x86ARM
buf=BFBF3471, buf%4=1
Num: 4C4F4341
Buf+0: 4C4F4341
Buf+1: 4C4F4341
Buf+2: 4C4F4341
Buf+3: 4C4F4341
buf=BFFFFD75, buf%4=1
Num: 4C4F4341
Buf+0: 4F434100
Buf+1: 43410000
Buf+2: 41000000
Buf+3: 4C4F4341

Perhaps the lesson to learn here is that when casting pointers, it's buyer-beware, and there are safer bitwise manipulations to use, though certainly less efficient.


*Edit: Both x86 and the ARM processor in question are little-endian, not big-endian. Typo on my part, but notwithstanding the point is that they both had the same endian-ness, so it wasn't where the issue lay.

16 December 2007

Mike Hommey: Moving a system off to a usb disk

There are cases where you don’t want to bring a laptop with you, but still want to have your data or, even better, your system and configuration. It is actually not so difficult to do if you are using LVM. With my setup, it was quite straightforward. So, if you happen to have a similar setup (2 partitions : one for /boot, and the other one for the LVM physical volume), here are the steps to do the same (assuming the usb disk is /dev/sda, the laptop disk /dev/hda, the LVM volume group vg, and you’re using grub as a bootloader). At this point (well, you obviously still need to wait for the pvmove to end), you can reboot right now. Your boot loader setup will use your old /boot partition and the kernel will use the root filesystem on the usb disk.
Be aware of a few things, though. You still need to do two things to finish your setup, now: Now you can have any computer run your system, booting off the usb disk. It had the nice side effect that my laptop is much faster now, as the internal disk is an old 4200 rpm disk, vs. 7200 rpm for the usb disk…
You may also want to try to remove the Xorg configuration file (/etc/X11/xorg.conf) so that the video driver and resolution are not hardcoded ; recent enough Xorg do runtime detection, and that worked pretty well on the two laptops I booted with the usb disk.

15 December 2007

Sune Vuorela: Extremamamamamamamadura day 3

Day three in Extremadura
Yesterday after dinner, we phoned “Telepizza” and got a pizza with cheese and cheese a cheese - and a pizza with barbecue sauce and bacon and bacon.
After a long night of hacking we finally got to sleep. And I almost got my debian working again.
Sleeping until 10 was kind of needed after that - and I got my debian finally working again. No more ubuntu live cd.
We skipped breakfast and found a supermarket. Yay! Best food this trip so far.
A sneak peek on the lunch - and we kind of ate it, but … I feel sorry for the students dining here 3 meals every day. So far we have gotten some discussions about kde3 packaging and kde4 packaging. Lenny will probably ship with a kde3 desktop and with kde4 development platform. - and everytime someone is thirsty, the question arises: “why do they get drinking water from swimming pools?” And tomorrow it is “back home”. Kind of sad, but I miss my bed. And my hardware.

Lars Wirzenius: EoC wiki and domain

Enemies of Carlotta, my little mailing list manager, now has a wiki, courtesy of Michael Durgener. It also has its own domain, courtesy of Andreas Barth. See: http://www.e-o-c.org/. There is also now a mailing list for commits to the EoC 2 development branch. To subscribe, e-mail eoc-commits-subscribe@liw.iki.fi .

14 December 2007

Martin F. Krafft: Surveys on the console

As part of my research, I may have to conduct a survey among Debian contributors. The word "survey" usually elicits frowns because surveys are often misconducted. MJ has taken the time to draft up some advice to surveyors. Problems with surveys generally fall into one of two categories: content and presentation. I'll refrain from making statements about content (Wikipedia has some stuff on questionaire construction) and instead concentrate on presentation in the following. Commonly in the digital age, surveys are administered via a web page or e-mail. In my recent Ph.D. transfer report, I identified a number of shortcomings with these approaches: Asking Debian contributors to click radio buttons on a web page is a bit like expecting a mountain biking champion to ride a tricycle across a paddock: painful, if not offensive. Furthermore, web surveys can only be taken while on-line, when most of us have better things to do. E-mail surveys address some of these problems, but create new ones: answers cannot be constrained to a domain (think multiple-choice), character set and formatting issues make evaluation difficult, and it's impossible to prevent users from attaching comments or modifying responses. In thinking about the issue, I came up with a third means to administer a survey: a console tool. Think of a Debian package which provides a console application controlled by a study-specific data file. The data file specifies the questions and their answer domains, and the tool presents those to the participant. Since most of Debian happens on the console anyway, such an approach to surveys seems more appropriate. Interaction with the survey tool would be as easy as pressing the 2 or 4 keys to select one of the multiple choices, and the tool would immediately move on to the next question (and not wait for the user to hit enter). Obviously, n and p should allow navigation back and forth across the set, and c would spawn a text editor to give the user a chance to attach a comment to his/her current response, in which s/he might criticise the question or provide additional information. Finally, the tool should be able to pick up where it left off, should the user chose to exit/suspend the survey for now. Integration with debconf or another interface abstraction is also worth consideration. There is more to it: people change their minds and should thus be able to amend responses. With their consent, it might be valuable to track such changes and inquire about their motivations. As I was thinking about how to realise this, I suddenly arrived at version control: use Git as a backend storage. The set of cool features this would enable seems to be endless: it works off-line and can be used to track aforementioned changes, but also offers the possibility to create a squashed result in case the participant prefers to submit only the final result. Furthermore, it's a trivial change between anonymous submissions, and submissions authenticated by a GPG signature. In addition, the survey tool should be able to display questions according to previous responses (control flow). For instance, if the survey determines that a given user is a contributor to the bug tracking system, but not a project member, it wouldn't make sense to ask when s/he received his/her Debian account. Furthermore, questions could be dynamically creatable from context, so that the survey can drill into depth depending on previous responses, rather than asking the same questions to all participants. I am currently applying for funding to outsource the development of such a tool. If you are interested in coding it up and getting paid for it, speak to me. Here are some more specifications to keep in mind before jumping on: These are likely to be incomplete, but should convey the basic picture. Feedback is always welcome! NP: Oceansize: Frames Update: James Andrewartha pointed me to purity, which asks multiple-choice questions on the console. It has the kind of interface which I envision. Also, Chris Lamb suggested this personality survey as a base line. Well, actually he just suggested I look into it.

Adam Rosi-Kessel: Proof of Winter 2007

P1050055
We were hit pretty hard in Boston. My office was shut down and deserted by mid-afternoon, but I decided to stay until late afternoon — big mistake. You might think the trains wouldn’t be as affected by the snow. And they weren’t — it only took me twice as long to get home, while it took my brother over six hours to drive from Somerville to Roslindale. Still, it was a pretty extraordinary scene at South Station around 4:30pm. It was packed inside and out. A few trains arrived, and no one got on or off. I was wondering if they were ghost trains until finally things started moving. The odd color balance in this photo set is because these were all taken in the dark with very long exposure times. But the apocalyptic cast may actually be appropriate. Earlier: Proof of Fall 2007, Blizzard 2007, Blizzard 2005, First Snow 2004, Winter Sunset 2005. Technorati Tags: , , ,

11 December 2007

Jordi Mallach: Black screens in Alacant

Six months ago, a political group in Spain made a big fuss and noise when the Government of Venezuela closed down the anti-chavist RCTV TV station, and waved the flag of freedom of speech, called the democratically elected government a regime , and called their president a dictator . On Sunday night, these very same people, following orders from the leaders of the Valencian government or should I say regime , drove up to the top of the Carrasqueta peak in Xixona, in the South of the Valencian Country, and protected by the winter's darkness, proceeded to force open two locks, broke into ACPV's property and unplugged and precincted the equipment which had been broadcasting the signal of TV3 and the rest of the public Catalan TV channels to the South of our land, for the last 21 years. Although this wasn't unexpected it is probably one of the biggest attacks to freedom of speech, choice and plurality since democracy was restored in the state. The political benefit PP is planning to obtain from this attack is clear: pleasing the regional right-wing cavemen who think we have nothing to do with the Catalan culture just 2 months away from some very decisive elections will probably give them a handful of extra votes. There are also economical interests involved, like having right-wing media groups control even more digital TV channels that they already do, but that's really anecdotic now. Two nights ago, it was the South. In a matter of days, the antennas in the Bartolo, in the North of the Valencian territory, will also be unplugged, blackening the screens of thousands of Valencians who think they have the right to watch decent quality TV in their mother tongue. Thank you, fascists.

MJ Ray: Movements: back again (just)

I'm back (again) but I'm not feeling 100% well (again). I'll write about the various events I attended and share the pictures as soon as I get bluetooth file transfer working (is that obex?) but here are some sites I commented on recently:
When is it going to be the norm for JavaScript?
Never, I hope.
Down with the Press Release!!
I wonder if I didn't like this because open letters aren't very common here.
Print before you think! - Atomo64's Blog - by Raphael
Reposting the old psnup -2 trick... works in Mozilla-based browsers, at least
How Old Are ProBlogger Readers? Poll Results
I whinge about ProBlogger's misuse of bar charts again...
How Much Money Do Bloggers Earn Blogging?
and again... guess I should stop doing that. But histograms ROCK. Excuse me - I'm still ill...
blog.aksw.org Blog Archive Open-source innovation platform Cofundos.org
I've seen a couple of these cooperative free software funding ideas recently. Here's one...
Information Unlimited A proposal for user-driven commercial free software development.
and here's another...
gmane.org.fsf.europe.discussion
and here's a little background on the first.
Sustaining Alternative Media - Bristol Indymedia to Bristol Social Forum
It's just too damn awkward to contribute to BIMC.
Miriam Ruiz: Journalists avoiding writing about Free Software?
Since when have journalists avoided writing about stuff because of criticism? Sounds like an excuse to me.
Issues Forums in the UK, Meet Tim Erickson in November at London E-Democracy 07 Conference E-Democracy.Org - Project Blog
I did meet Tim. Which was nice.
Labour: Queen's Speech - full statement
I saw this site advertised on TV after the speech, visited it, asked a question. No answer. 'nuff said. I asked a question on another page and it was deleted unanswered. Control freakery at its best.
ConservativeHome's ToryDiary: Cameron takes Tory message of social justice to Labour heartlands
My question about the surprising Conservative Cooperative Movement announcement. No answer. Are all the political parties similar? Do any of them have any answers?
BBC Internet Blog - Linux Figures
Part one of the reaction of the BBC director who thought they only have 600 Linux users.
BBC Internet Blog - Open Standards
Part two of the reaction "The BBC is committed to open standards [...] wherever possible" - yeah, tell that to their satellite system and the Ceefax-killers! (Warning: may contain Andrew Suffield...)
BBC Internet Blog - Operating System Figures
Part three - explains just how their analysis system got the numbers so horrendously wrong. "All of the BBC's regular reporting mechanisms use the User Agent string" - D'oh!

Simon Richter: This is delicious crack

The main project I'm currently working on for money is a device driver for an actual bit of hardware. Since people working on Windows are slightly more used to the idea that money is exchanged for goods and services, this is the primary target platform. After dealing with all the interesting bits concerning development on this platform, I now have a .sys, a .inf, a .dll and a .xsl to install. The DLL was easy, Windows Installer has special handling for COM DLLs; the XSL file was a bit tricky since it needs to be placed in a "special" directory that will be phased out before Longhorn (the documentation is that old...), and I'm completely lost on the other two as the Installer does not know about the special registration system for drivers at all. At this point, I started entering the rabbit hole.

10 December 2007

Ingo Juergensmann: Windows problems with Samba fileservers

Lately our Windows Server 2003 TerminalServer reports frequent errors when logging on. In fact, this only happens with our secretary does her login... Anyway, Windows seems to loose chars of filenames it wants to copy from fileserver (running Debian stable and Samba) to its local storage of user environments.

Die Datei \\ned\user\profiles\.msprofile\Anwendungsdaten\Thunderbird\Profiles\nc6lmfyt.default\ - ImapMail\mail.intranet.wbs-germany.de\mailadmin-1.m konnte nicht nach C:\Dokumente und Einstellungen\user.MOE\Anwendungsdaten\Thunderbird\Profiles\nc6lmfyt.default\ -
ImapMail\mail.intranet.wbs-germany.de\mailadmin-1.m kopiert werden. M gliche Fehlerursachen sind Netzwerkprobleme oder nicht ausreichende Sicherheitsrechte. Wenden Sie sich an den Netzwerkadministrator, wenn das Problem weiterhin besteht.

Details - Das System kann die angegebene Datei nicht finden.


(rough translation: "The file \\ned\...\mailadmin-1.m couldn't be copied to C:\...\mailadmin-1.m. Possible reasons are network problems or no sufficient permissions. Ask your system administrator if the problem persist. Details - the system couldn't find the given file.")

A short search in Microsofts Knowledge Base leads to this article, stating:
Most frequently, this issue affects .lnk, .url or .xml files. During the update of roaming profiles, they are renamed to .tmp while the profile is written back to the home folder on a NetApp Filer share.


Ok, we're not using NetApp Filers but beside that everything is matching our problem. So, if someone knows a solution for Samba fileservers, please comment below! TIA!

UPDATE:
chrismaster wrote in a comment that this behaviour is caused by a Debian bug in Debians Samba package. Thanks!

6 December 2007

Eddy Petri&#537;or: I am laptop-less, but disk-ful

Today I went for the second time[1] to emag's service[2] to have my laptop's[*] battery replaced since it was powering the laptop only for 15 (yes, fifteen) minutes. This after only 11 months since I bought the laptop[**].

I didn't observed this drastic reduction until recently (last time I remember was about 1 hour and 50 minutes, back in August), because I wasn't so mobile since August.

To make the long story short, I had to: wait, wait, argue, wait, argue, talk normally to the manager, wait, wait, argue, argue, observe sheer contempt from the personal when I asked again for the manager, talked normally to the manager, left after 4-5 hours wasted (+2 yesterday).

All this just to be able to keep my data safe by holding on to my hard disk, since they insisted they wanted the whole laptop[3], and making them write on the warranty receipt they were the ones who pulled out the HDD (I might be over-cautious/paranoid, but I wouldn't trust emag with the garbage bin).


Now I am on a forced vacation away from Debian for an undefined time, although I might be able to send mails and do make small patches from work.


Hey, emag:


[*] Dell Inspiron 6400 / E1505
[**] when I think the long battery time was one of the most important points, it looks ridiculous now to have such a bad degradation in such a short time

[1] first was yesterday, but due to some support person's incompetence I had to postpone - I asked two questions, they gave me two wrong answers
[2] after all this I wouldn't recommend emag to anyone
[3] You might ask why would they need the whole laptop for a clear 'battery is broken' complaint? Apparently "the service can't test the batteries without the laptop". They probably have neither any spare laptops nor dedicated equipment to measure batteries.

Sam Hocevar: Bits from India

Incredible !ndia As Christian already stated, we are currently in this lovely city with friendly people whom we French people have great trouble understanding, totally insane traffic and colourful taxis you find nowhere else, and dangerously spicy food. And no, it s not Mexico City. My first talk at FOSS.IN/2007 in Bangalore, India (Giving back to the community: how does Debian perform?) was an attempt at explaining to upstream developers what Debian did with their software, and where to proactively find information about the changes we do, the bugs that are reported, etc. I did this talk because Bangalore has this incredible ratio of software developers per square kilometer, while at the same time we have so few Indian DDs despite the 1.12 billion inhabitants. So I expected to find people doing much development but not necessarily familiar with Debian. With Christian s two other talks about translation works in Debian and how to contribute to Debian, we did quite a thorough coverage of Debian for a novice audience. My second talk, in the main conference track, will be on Saturday and will be an even more general presentation of Debian. Of course, my slides are not ready yet, what did you expect? Debian business cards There has been great interest in my Debian business cards, so I m providing their SVG source (to be loaded and printed in Inkscape, for they make extensive use of the blur effect which is an Inkscape extension) for anyone interested. They use the Sexsmith and Sans Condensed Uralic fonts, available in Debian packages ttf-larabie-straight and ttf-uralic. Sam s Debian business card Sam s Debian business card (back) Sam s Debian business card (sample) I don t know enough about SVG scripting and object cloning, so to do the text shadow you will have to edit the same object twice. Sorry about that. Here are the files: background image (PNG), generic DD front (SVG), custom DPL front (SVG), back (SVG). The background image was cropped from Ayo s Debian Expo wallpaper. The rest of the design should be considered public domain. Just a note about the different languages I ve been using at the back: I know I could have used more fancy languages with beautiful glyphs to show how truly universal our system is, but I did not know which to choose. So I just put the languages I personally vaguely understood.

Gunnar Wolf: Digging into Drupal

As of late, I've shifted quite dramatically my sysadmining/development activities. On the development front, although Perl is still my mother tongue and I maintain many systems I wrote with it (and my main involvement in Debian is through the pkg-perl group, of course), I've been largely switching over to Ruby - both under the Rails framework and doing standalone stuff.But somehthing that's new to me (well, relatively - it has been observed I have been playing with the idea in and out for some more time) is entering this maze of twisty little passages, all alike called Drupal. What can I say? I'm quite surprised by it. It is such a reach CMS, and so twistable for almost-anything, that it still defeats me.I've been asked (ordered? pushed?) to propose a complete plan to replace my Institute's current static-and-butt-ugly-HTML site with something dynamic and manageable, so, of course, this last week has been an intensive Drupal crash-course for me.Drupal itself is quite complex, yes, and I thought I had it mostly mastered for the trivial tasks. But then, I started looking for some I-thought-quite-simple extra thingies - And I started discovering its user-contributed modules. I've been having quite a bit of fun with them, and as I hate messing up my clean and nice installation, I've even set up a Drupal5 modules APT repository for Etch, where I'm putting the modules as I process them.As I'm really not into PHP, and I still lack enough of the Drupal framework understanding to really step forward and become responsable for them, I'm not yet even suggesting packaging them for Debian - but a time might come where I upload them as well ;-)BTW, in case somebody is wandering about this Jaws-to-Drupal scripty I mentioned that other time: It basically works for blog entries (as you can see in my test site - barring some trivial latin1-UTF discrepancies). I have not yet migrated because I'm also trying to migrate my Phoo photo galleries to Acidfree albums... And it's quite a more challenging task than just migrating blog+comments. But soon, I hope - I have a bit more time than in the last weeks to be able to play with it. Anyway, here it is as it is.

5 December 2007

Evan Prodromou: 14 Frimaire CCXVI

One thing that's been interesting me lately is RSS. Yeah, I know, not exactly cutting-edge technology, but the format -- in its three different forms -- has become the default for machine-to-machine transfer of serial information on the Web. So RSS really represents our individual or collective presence on the Web spread across time, space, and theme. I'm particularly interested in RSS because I'm working on themed portals like Keiki. It's one of our goals to pull in the parenting part of a person's personality spread on other parts of the Web, so you don't have to re-enter it in Keiki if you don't want to. It's a fun problem to be solving. But as I was playing with the format, I realized that I'm spread pretty far across the Web, myself. I make most of my contributions to this blog, but I'm also part of other communities and a user of other services. What if I used some software like Planet to pull together the disparate threads of me into one place? So that's what I did. I ended up using a tool called Gregarius instead of Planet, mostly because I originally intended to install it on Godaddy's hosting service, which doesn't support cron jobs, which Planet needs. Once I realized how ad-infested GD's "free" hosting service is, though, I moved all my sites off of it, and back to Antipater. And my personal aggregator is there, too. It was interesting to pull in the accounts I've listed on About Me and see which ones produced RSS feeds. Some I expected (my Flickr feed, my del.icio.us feed) and others I didn't (my Upcoming feed surprised me). I was also surprised by sites that didn't produce a feed. I really expected something from Pownce and Tribe.net), but I couldn't get them to cough up a feed. Most disappointing was Facebook, which has a really nice mini-feed of my activity there that doesn't seem to translate into an RSS feed in any possible way. But otherwise things went very quick. I found Gregarius really easy to work with, although its inability to pull tag (metadata) and categories out of RSS streams. There's an autotagger plugin, but I haven't gotten it to catch any tags yet. Oh, and the OPML output was horrible -- I think it might generate HTML that looks like raw OPML -- totally useless. In any event, if you feel like cyberstalking me or just seeing what I'm doing around the rest of the Web, keep an eye on evanprodromou.info. There's even a handy aggregated RSS feed... just in case you want it. tags:

Matthew Palmer: Strategists and Tacticians

Like most things, the scale of decisions that have to be made by a person or organisation fall across a wide spectrum. At one end, you've got the fine-detail work: lines of code, individual config settings, IP addresses, that sort of thing. This is crucial work, because it's this detail that ultimately produces saleable results. Travelling all the way to the other end, there's the "big picture" decisions: the "visionary" stuff. What market segment will we target? What will we do (in large-scale terms) to get there? I am convinced that individuals naturally gravitate towards one end of this spectrum or the other, depending on their psychology. While people usually can work at all scales, they have a "most comfortable" point where they work the most naturally. The further away from this point they are pushed, the less comfortable and effective they are. No level of thinking is better or worse than the other; they're just different. While "large scale thinker" and "small scale thinker" could be taken as being insulting, I certainly don't mean it that way. I should point out that "Strategy" isn't (just) about setting goals. A strategist isn't someone who comes out with grand pronouncements like "By the end of next year this company should be providing telecommunications services to 20% of the Fortune 500" without knowing how to get there. That's not a strategist, that's a poor-quality management consultant. People whose only skill is making vague pronouncements should just be taken out and shot. They're not doing anything useful for anyone. A strategist is someone who is good at planning the goal of "20% of the Fortune 500". They're thinking about the big picture issues, without getting bogged down in the minutiae. A tactician, given the job of planning something at the macro scale, will chase some good idea down an intricately detailed rabbit hole, and miss the other dozen or so large issues that need to be considered. The strategist's planning needs to stop at a certain level and let other people take on the detail work. Conversely, a good tactician can focus on the individual details without getting distracted by the big picture. A strategist put into a tactical role will miss all the important minutiae because they're working out how their little part fits into the big picture, instead of working out how to make their little part work, in and of itself. It's important, for individual happiness, to try and work out what level you're most comfortable thinking at, and then trying to find a job that puts you there. It's almost as important to make sure that the people who are working at the more and less detail levels around you are equally comfortable. Take, for example, the micromanager. We've all either been there ourselves or have heard multiple stories on the subject. I think the micromanager is nothing more than a person who wants to work at a smaller scale than they're being forced to by their organisational rank. Since they can't do the detail work any more, their only outlet is working vicariously through their subordinates. Voila! Instant micromanagement. An even more painful case of micromanagement would be when the subordinate wants to think at a larger scale than the superior. In that case, the subordinate will naturally be thinking large scale, and will miss the details. To the small scale thinking superior, that is incompetence, and will naturally be dealt with by more micromanagement. In reality, both parties are incompetent at their jobs, and they should really swap roles, so that everyone is in their element. It would be nice if companies stopped thinking hierarchically in this way -- that a more "senior" person has to think at larger levels. Just because you've been somewhere longer (or have been working in an industry longer, or got higher marks, or whatever), it doesn't mean that you're more of a strategist. This is probably the Peter Principle restated: people get promoted to a level where they just can't comfortably think at the necessary scale any more. If instead people were put into a planning hierarchy based on their natural scale of thinking, we'd all be a lot better off. There'd be a lot less power games, though, which makes me think it's not going to happen any time soon. A business, at whatever size it might be, needs an appropriate mix of strategists and tacticians. A really small business (1-10 people) can get away without needing large scale thinkers, in the same way that a really small boat can get away without needing a rudder or pilot. If a really small boat gets itself into trouble, everyone on board can grab an oar or bucket and help get the boat out it's predicament -- it's small and nimble enough to be able to do that. As the company expands, though, it's important to make sure you've got some strategists around. If you don't have anyone to keep an eye out for problems and plan around them, your small-to-medium sized boat is likely to have a hole punched in it by a submerged rock. Even if somebody on board happens to notice the rock before you actually hit it, once you get to a certain size you can't physically stop or turn the boat in time. If you don't understand the growth issues in the company, you might not even realise that you're no longer the nimble and low-inertia dinghy until you're up to your knees in sea water. Although an obvious solution to this problem might be to say that all businesses should be small and nimble ones, it's as impractical as saying that all boats should be dinghies. A fleet of dinghies isn't going to be able to support the worldwide sea freight market, and a fleet of small companies doesn't have the necessary resources on hand to take on the big projects that are so often needed. Also, a dinghy is at risk of being swamped by one freak wave, while a larger ship can weather significant storms without going under. Regardless of the size of the business, there always needs to be a good supply of tacticians. A boat (of whatever size) full of people who are all looking out for rocks isn't going to go anywhere, because nobody's making the thing move. Similarly, a company full of strategists isn't going to be doing any of the day-to-day work that actually earns money, and no money means no company. The single most important thing, though, is be self-aware enough to know what sort of person you are, and try to find something that lets you work at the level you're most comfortable at. Otherwise you're just setting yourself up for unhappiness.
(I'm not really sure why I'm suddenly writing management blog posts; this idea of "levels of thinking" just came to me and I figured I'd put it out there. If it makes you feel more comfortable, there's a fairly transparent mapping of these ideas to the practice of software development, although I'll leave the execution of that mapping to the reader. Comments are welcome.)

4 December 2007

Eddy Petri&#537;or: wiki.d.o theme -is it bad timing or too late?

I have been working recently working on the wiki.d.o theme; this work was started last year around May - June and I halted it due to lack of time. The point was (opposed to what many might have thought) to make a theme that looks like the www.d.o theme.

Currently the TODO is outdated, so here is an updated one (I'll update it and push it there, too):
There are some screen shots with the current theme as seen on Opera, Epiphany (for some reason sometimes different from iceweasel) and MSIE 6.0, but here are again since I expect that my public darcs repo will change:

In MSIE (by far the most annoying browser and creates the most issues):


In Opera:


In Epiphany (the window was smaller, the content isn't bigger):

If you want to contribute, you can:

darcs get http://users.alioth.debian.org/~eddyp-guest/darcs/wiki.debian.org_theme

read the README to understand what matters, and tackle one of the items on the TODO list above.



I found it pitiful that Zack has based his PTS rework based on the wiki.d.o default theme since that theme is, in my opinion the one that should be corrected (at least the colors should be).

I am not an expert in aesthetics and i don't claim that the www.d.o theme is beautiful, but it seems that the recurrent discussion of it being replaced with something better never found a person to make it true. This is one of the reasons I stopped last year since it seemed the dream would come true at that time.

Ian Murdock: Watch that space

Simon Phipps: “We’ve got an exciting development bubbling that I hope to be able to announce in full detail at FOSS.IN in Bangalore on Friday when I speak there. Just to give you a glimpse of what’s happening, Sun will be announcing a multi-year award program in support of fostering innovation and advancing open source within our open source communities…”

Evan Prodromou: 13 Frimaire CCXVI

I'm organizing a micro-coworking session here in Montreal for 6 December (15 Frimaire). "Micro-coworking session" is just a fancy way of saying "hanging out together and working at a caf ". Folks will be meeting in the back of Caff ArtJava from about 9AM to about 5PM. More info on the subStation Coworking event page on Upcoming. The event is for people interested/involved in (or supportive of) Station-C, the incipient Montreal coworking facility scheduled to open in February 2008. But everyone's welcome to come by -- heck, we'd have a hard time keeping you away. tag:

Private and public life in the age of Facebook One of the things I find interesting about life on the Internet is the distinction between public and private life. So much of our lives are on-line today; for many of us, the Web is where we make our living, make our friends, enjoy our social life, and plan our off-line activities. But what about those personal activities that don't jibe with our intended professional image? If we have out-of-the-mainstream political or religious views, or unorthodox social activities, how do we keep them to ourselves? How do you talk about things on-line with friends that maybe you don't want your parents or other family to know about -- or vice versa? How do we preserve our reputation in more than one sphere, in situations where those spheres are very different? I think there are a number of strategies for doing this.
  1. Be discreet. In other words, just don't put personal stuff on the Web. Keep up your professional image at all times, and don't use Web sites or tools to make connections in more private ways. This is probably the safest strategy, and the one that most privacy groups and media recommend. But there are some downsides, too. You miss out on the Web's power to enhance your life as a well-rounded human being -- your personal life languishes for the benefit of your professional one. You give up on some important opportunities to connect with other human beings in a deep and meaningful way. Especially if your interests are shared by only a small percent of the human population, it's unlikely you'll run into other people who share them off-line. I also think there's something unhealthy about stifling your personal side for your professional life's benefit.
  2. Use pseudonyms. Another way of being "discrete" -- here, I mean separated into different parts. I think this is one of the most common ways to deal with the problem. Use your "real name" for activities, groups, and opinions that you feel safe presenting to the world at large, and use made-up names or handles for activities you might not feel like discussing at a job interview. This can be very successful, but also nerve-wracking. What parts of life require a "secret identity", and what parts don't? What if one part of your life leaks into another? It can also be tedious to set up, say, two or three different Flickr accounts, two or three Facebook accounts, umpteen blogs, etc. Or, you keep a LinkedIn account for work and a MySpace one for your partying set, and hope that Google doesn't make a link between the two. But you can get sick of managing them, and other people don't know which name or pseudonym to use and when to "out" you to their other friends.
  3. Integrate. By this I mean: let your personal and professional life grow together. Decide what parts of your personal life you're willing to make public, and bring them into your public persona. Parts of your life that you don't feel you can integrate, consider letting go of. I think this can be risky and difficult, but ultimately I think it's the most healthy psychologically for people who spend a lot of time on the Web. Most often, these people either work for themselves and don't have to answer to others, or they work in industries where offbeat or out-of-the-mainstream lifestyles are tolerated or encouraged (or the need for highly-skilled people makes those "quirks" easier to ignore). Or they just gamble that nobody at their work or in their family is really checking (quite often the case).
  4. Wait for better software. I think the main reason that this is a problem is that social software developers aren't very good sociologists. Or, rather, we focus on the software rather than on the social. It would be nice to see the next generation of Web services support the multiple facets of a person's life. I'm an Open Source fanatic, a Web developer, a wikitista, an entrepreneur, a father, a Burner, a Montrealer, a man, a prankster, a partier and a cook -- among many other things. How can social software, or a federation of services, let me reflect these different aspects of my personality to my friends, coworkers, colleagues, relatives and strangers? Could I define finer-grained relationships with others than just "friend", and choose what parts of my life to feature or downplay with each? It's a fascinating design and implementation question, and my hope is that someone will take on the challenge in the future.
I think this is a situation where our society and our software both need to evolve and change. It would be nice -- very nice -- if edgy politics or weirdo culture didn't hurt your chances of advancing in your chosen field. And if friends, family and colleagues could accept us all for who we are, in all our parts. But it will also be nice if software and software usage patterns on the Web let us find a way to adapt to that, too. People have lots of different parts and lots of different personae that they inhabit at different times and in different contexts -- it would be great to match our social software more to that reality. tags:

One-liners Some other things to note:
  • Montr al has had an insane amount of snow in the last few days. I dug out our car for about 90 minutes this morning, and drove for hours in snow-blind traffic. Not an easy time, but boy the city is lovely like this.
  • I'm doing a talk on extending MediaWiki at the PHP Qu bec meeting this Thursday, Dec 6. Meeting info is here.
  • Pictures from Montreal Santarchy are available on Grimmwire's Santarchy Montreal 2007 set. Great group, fun crowd, loooooong night. Oh boy.
  • Speaking of SantaCon, Santarchy in Second Life sounds totally nutso.
  • My server overload problems seem to be getting better. I moved Vinismo to its own server on Amazon Elastic Compute Cloud. I also moved SonaUiki and the Br leurs site to GoDaddy, where I have a ridiculous number of free Web hosting credits. It worked surprisingly well, and GoDaddy supports PmWiki out-of-the-box. Nice! Update: Apparently GoDaddy adds a whole bunch of ads in on their free Web hosting. I didn't notice; I have Adblock Plus installed. Gar. I'll have to move these sites back pronto.
  • My light and convenient Toshiba Port g R200 has been throwing I/O errors. So I gotta get a new hard drive. Good news: the thing's still under warranty (yay!). Bad news: I gotta drive through this miserable weather to a place in St. L onard to get the HD replaced. Boo!
tags:

Next.

Previous.