Search Results: "ema"

6 January 2008

Brice Goglin: Debian X.org notes - One year of X.org BTS maintenance

One year ago, I started triaging the X.org BTS (by replying to #163057 iirc). I closed almost 1600 bugs since then, bringing the remaining ones to about 900 today. I am kind of proud of Ender's graph (when the URL works...). Even if the actual BTS triaging is done now, I still try to take care of X.org bugs. And it's not that easy unfortunately... Almost 650 new bugs were opened this year against X.org packages. 250 of them are already fixed, more than one hundred have been forwarded upstream. It doesn't mean that 300 bugs still apply to our packaging. Most of our X packages are simple (apart from the xserver-xorg postinst mess that David is cleaning). But, there are lots of problems that we have no clue about, or that miss some info because people can't upgrade to unstable, ... I am sometimes tired of getting so many bugs without being able to do much about them. Maybe because upstream doesn't care enough about some problems (lots of drivers are unmaintained and get broken more and more when new features are added for a couple more important drivers). So, I sometimes tend to concentrate my work on what I like and trust. Some people noticed that xserver-xorg-video-ati get very often updated these days (6 uploads in the last 20 days). Of course, the reason is that I own a r300 board :) But also because its upstream devs are very good, it's very nice and easy to work with them. Of course, we have a lot of work and few people to do it. That's kind of sad since playing with X is very interesting. Most users are very happy when discovering things like RandR 1.2 or Compiz. Getting a chance to test them early and understand their internals is very cool. But, as said in some other posts, hacking on X.org doesn't seem to look fun. If you're interested anyway, taking care of the bugs is a very easy way to learn a lot. I had no clue about X one year ago and I learned a lot by taking care of the BTS. I would be glad to get some help now :)
(Permanent link) 

5 January 2008

Jeff Bailey: Disabled gnu.org email address

My next step in reducing the spam traffic in my life is removing my @gnu.org email address. This is one that has been good for me for 13 years but has largely been useful only as a spam trap. In fairness to the FSF, their spam filters have gotten really quite good in the last 5 years or so, but there's zero signal on that account so I may as well squish it.

I've set my alias in /com/mailer/aliases to :fail: with a 551, but the multi-level relay on monty-python seem to not respect that. I've filed a ticket, so that anyone trying that will get a proper message to say where to follow-on to.

The efforts seems to be making a difference. At the beginning of December, I had just over 11 thousand messages in my last-30-days spam folder. Right now it's 8925.

4 January 2008

Andrew Pollock: [life] Post-op, Day 1

I just called the ICU for an update before I head in for the day. She's apparently doing well, and can probably transfer out of the ICU later today, although apparently beds are tight in the ward. Update 1 I've managed to find somewhere with EVDO access, so I can update this in between ICU visits. She's looking really good this morning. She asked for some 7up, because her throat's really dry and sore from being intubated. She had something to eat at 6am. She hasn't had much sleep though, because the ICU has been too busy. She's getting turned every two hours, which isn't terribly enjoyable, but her pain is manageable. She's such a trooper. Update 2 Sarah's continuing to do well. The nurse sat her up on the side of her bed for lunch, and had half a roast beef sandwich and some fruit. Her throat's still pretty sore, and she's really preferring the liquids. Apparently her blood sugar is a bit high (something that can happen post-operatively) so they gave her some insulin before lunch. Getting her back down again looked a bit painful, as did shuffling her up the bed. Apparently there's a bed with her name on it in the intermediate ICU, so as soon as the doctor's order comes through to move her, she'll be moved. They'll also take out the central line and one of the peripheral lines at that time. Update 3 Last update today. Sarah was moved out of the ICU and into intermediate intensive care (where she'll remain until she's discharged) at 2:25pm. She got a private room again, which is very fortunate. It's nice and quiet, so she should get a good night's sleep. I can stay the night as well. One of the doctors from the team looking after her came by at about 5:50pm. She said the chest drain can come out in the next day or two. They took another x-ray this afternoon to check on some pleural effusion that they were worried about. When we asked the doctor about it this evening, she described it more as trapped air than trapped fluid, and that it should work itself out in the next few days. The x-ray showed that it was "stable", in that it hadn't really changed from the x-ray in the morning. They'll take another x-ray tomorrow morning to see how it's going. Other than that, she's continuing to do really well. The pain seems manageable. She got up into a chair for dinner (with help). They didn't give her any more insulin beforehand, so I presume her blood sugar is settling down again.

Wouter Verhelst: Broken C code

A few weeks back, someone asked on debian-68k about an unexpected result of some piece of software when it was compiled on ARAnyM, an m68k emulator that can run Linux. His initial idea was that this could perhaps be a bug in ARAnyM, since it only occurred to him inside ARAnyM, and not on any of the other architectures he tried. In fact, it was a bug in his code. Let's have a look at what's going on here. The example program which Sergei provided and which exhibits the problematic behaviour is spread over two files. The first file contains this:
#include <stdio.h>
void *f();
main()  
	void *a;
	a = f();
	printf("%d\n", (long)a);
 
while the second contains this:
#include <stdio.h>
long f();
long f()  
	long a = 84;
	printf("%d\n", a);
	return a;
 
Many people familiar with the C programming language will intuitively expect that this program, when run, will output the following:
84
84
When in fact, when compiled and ran on an m68k machine, the output is as follows:
84
-1072577264
What's going on here? In order to understand that, we have to take a look at the assembly code. This is done by use of "objdump -d", and gives (amongst others) the following output:
800004c4 <main>:
800004c4:	4e56 0000	linkw %fp,#0
800004c8:	61ff 0000 001a	bsrl 800004e4 <f>
800004ce:	2f08		movel %a0,%sp@-
800004d0:	4879 8000 05aa	pea 800005aa <_IO_stdin_used+0x4>
800004d6:	61ff ffff feec	bsrl 800003c4 <printf@plt>
800004dc:	508f		addql #8,%sp
800004de:	4e5e		unlk %fp
800004e0:	4e75		rts
800004e2:	4e75		rts
800004e4 <f>:
800004e4:	4e56 0000	linkw %fp,#0
800004e8:	4878 0054	pea 54 <_init-0x800002f0>
800004ec:	4879 8000 05aa	pea 800005aa <_IO_stdin_used+0x4>
800004f2:	61ff ffff fed0	bsrl 800003c4 <printf@plt>
800004f8:	7054		moveq #84,%d0
800004fa:	4e5e		unlk %fp
800004fc:	4e75		rts
800004fe:	4e75		rts
So what's happening here? The difference should be clear: the f function stores its result value in the D0 register, but main goes looking for it in A0. The reason for this discrepancy very simple. The m68k processors has three sets of registers: one set is for integer values (D0 through D7), one set is for address values (A0 through A7), and one is for floating-point values (FP0 through FP7). The m68k ABI specifies that integer return values should be stored in integer registers, that address return values should be stored in address registers, and that floating-point return values should be stored in floating-point registers. This makes sense, since register-indirect addressing modes require the address to be stored in an address register; and calculating values requires the value to be stored in either a floating-point or integer register. When main, then, tried to look for a return value in A0, it found something, but obviously not what it should have found... This issue would have been a non-issue had this function been written the way it should have, like so:
#include <stdio.h>
void* f();
int main()  
	long* a;
	a=(long*)f();
	printf("%Ld\n", *a);
	return 0;
 
void* f()  
	static long a=84;
	printf("%Ld\n", a);
	return &a;
 
To close up: there's a reason why compilers emit warnings if you do something strange or "clever". In this particular case, the warning was suppressed, since both files contained a declaration of an f() function, even if the declaration was different. This is a horrible hack that tries to work around those warnings, rendering them utterly useless. Please, pretty please, with sugar on top: don't do something like that. If you write C code, please compile it with -Wall -Werror, and make sure it compiles that way. If you want to access a function in a different file, create a common header file that both will #include, so that the compiler can notice differences between declaration and definition of a function; and don't expect that something will work because you fixed it for a common and well-known case, because there will often still be other places where your bug will still trigger. In this case, by declaring the function as one returning a long value, they made sure it could not break on 64-bit architectures. However, as shown above, that doesn't make the bug go away...) Writing clean and portable code is way more fun. Trust me.

Benjamin Mako Hill: Laptop Liberation in Nara

I'm going to be giving a reprise of the Laptop Liberation talk I gave at Cornell University in November at the Nara Institute of Science and Technology in the Kansai region of Japan on January 7th. If you around, please feel free to show up. If you are in Osaka, Kyoto or Nara and would like to have lunch or dinner, please email me and we can try to arrange something. Details on the talk is online here in English and Japanese (thanks Mika!) although the talk itself will be in English.

Adrian von Bidder: Aggressive Java

Happy new year etc. Dear Lazyweb, how do I set up java so that it either uses arts or properly uses software mixing so that I can have sound in parallel between Java and other applications? (At least, I assume that Java is the culprit, because I can have parallel sound between flash within firefox, which I assume not to use arts, and arts based stuff. I could be wrong on this, though, so the question might be how to set up arts to not lock sound exclusively...) (Yes, the blog doesn't take comments. Drop me an email and I'll update this entry.)

3 January 2008

Andrew Pollock: [life] Post-op, Day 0

I'm exhausted, but very relieved. The important news: the operation was a success, the surgeon, Dr D. Craig Miller, bless his cowboy boots, managed to spare the aortic valve (he'd given us a 99% probability of being able to do so beforehand), so we don't have to be concerned about pig/cow valves for now, and mechanical valves later. He was reluctant to say that her own valve will last her the rest of her life, but it should last a "long time, long enough to have a family". When I left the hospital, Sarah was in intensive care, extubated, conscious, and talking to me, but very very tired. She's got a daunting array of things coming out of her at the moment (a lot of which I couldn't see because she had blankets over her). It's been a long day, so I decided to head home, rather than potentially keeping her awake for the next two ICU visiting times tonight. Here's the time line that I recorded: 05:15 - Arrive at the hospital to go through the admissions process 06:35 - I leave Sarah shortly before they're going to wheel her off to the operating room (I'll get into my fun at the end). 09:30 - I ask for an update, and they tell me she's going on bypass 10:30 - It looks like they can save the aortic valve 12:25 - Still doing the valve stuff, making a new sinus of Valsalva 14:15 - I ask for another update, everything is going okay, someone will come out to talk to me 14:55 - Still going, at least another hour until they start to close up 15:15 - Closing up, surgeon will be out to talk to me 16:10 - Surgeon comes out to talk to me about how the operation went 16:50 - I got to see Sarah briefly in the ICU, she was still intubated, but conscious and seemed to respond to my voice ~18:15 - Extubated. Spoke with her briefly. She was very tired, and I decided to let her rest for the remaining visiting times and go home and get some rest myself So what the surgeon had to say for himself was very interesting indeed. He didn't end up doing exactly what he'd said previously, based on how things looked once he actually got in there. He said that the sinuses of Valsalva were paper thin. So thin, you could see the blood flowing through them. They were about 0.5mm thick, rather than the normal 1.5mm thick. Sounds a bit like a disaster waiting to happen. Apparently it's not possible to detect this with imaging, you have to get in there and see it for yourself. He didn't end up removing as much of the aorta as previously planned (specifically the part around the transcending arch) as whilst the diameter was a bit bigger, the tissue apparently looked healthy. He said the part of the aorta he did remove (preceding where the braciocephalic, left common carotid and left subclavian arteries branch off) was "cheesy" in consistency, so it's not like she just happened to have an enlarged aorta, no aneurysm, and way too thin sinuses of Valsalva. There was definitely some unhealthiness to the aortic tissue, just not as bad as thought from the imaging. So it's all good. I think she'll spend a day or two more in the ICU before getting moved to a normal ward, but it's too soon to say what's going on with all of that. There's some elevated risk of stroke due to blood clots for the next 24-48 hours, but she's on blood thinners, so it shouldn't be a problem. The day was pretty crazy for me. I'm not sure if it was stress, or the stomach bug that's been doing the rounds of Central Park Apartments, but I went to bed last night at 11pm, was up again at 1am, with shall we say, a gastrointestinal upset, and up again at 3am, throwing up. We got up at 4:15am to get to the hospital. I felt really nauseous all morning, and was an absolute wreck while I was in with Sarah when they were putting a peripheral line in her before they wheeled her off to the OR, so I bailed about 5 minutes early and just made it to the bathroom in time to throw up again. I haven't eaten all day, just tried to keep the fluids up. I'm debating having some plain boiled rice for dinner, or waiting until tomorrow to have something easy on the stomach. I definitely felt a lot better as the day progressed, but my stomach is still pretty tender. Sarah and I ate pretty much the same stuff yesterday, so I don't think it can be food poisoning. She tends to have a very sensitive stomach at the best of times, so I'd expect her to be showing problems before me if it was food poisoning. But enough about me, I'll live. I hope it's not a stomach bug, as I don't want Sarah to come down with it as well, now that she's on the road to recovery from this surgery. Many thanks to Shona, Briana, Laura, and Christina for spending time with me throughout the day to keep me occupied. ICU visiting hours are every even hour between 10am and 10pm, for thirty minutes at a time, so I plan on spending all day at the hospital tomorrow. Hopefully I can find a good spot to get some EVDO coverage, so I can update things as the day goes along, rather than at the end of the day when I get home, like I had to today. Hopefully I'll sleep better tonight than I did last night.

Russell Coker: Comment Policy

I’ve been thinking about the comment policy for my blogs. I have started deleting comments when people subscribe to comments and use fake email addresses (I get the bounces and it’s annoying). Also I am deleting comments that don’t make much sense or which don’t address the topic of a post. Some people seem to search for blog posts marginally related to a topic that they want to vent about. I’ve had someone request that a comment be removed because it was written by someone with the same name as him (see this post if you want to read the details [1]). I’ve written a short document about unique names on the Internet [2] on my documents blog, hopefully it will be useful for other people who become concerned when they discover that they don’t have a unique name. My general policy about comments is probably going to be not to delete them unless requested by the author of the comment (if there is a good reason), and otherwise to only delete them for technical reasons or for being wildly off-topic. One thing that seems missing from most blog ethics documents is a section on comments. When I write my own code of blog ethics I’ll have to write a section about this. Suggestions are welcome.

Ond&#345;ej &#268;ert&iacute;k: SymPy/sympycore (pure Python) up to 5x faster than Maxima (future of Sage.calculus?)

According to this test, sympycore is from 2.5x to 5x faster than Maxima. This is an absolutely fantastic result and also a perfect certificate for Python in scientific computing. Considering that we compare pure Python to LISP.

Ok, this made us excited, so we dugg deeper and ran more benchmarks. But first, let me say a few general remarks. I want a fast CAS (Computer Algebra System) in Python. General CAS, that people use, that is useful, that is easily extensible (!), that is not missing anything, that is comparable to Mathematica and Maple -- and most importantly -- I want it now and I don't care about 30 years horizons (I won't be able to do any serious programming in 30 years anyway). All right. How to do that? Well, many people tried... And failed. The only opensource CAS system, that has any chance of becoming the opensource CAS, in my own opinion, is Sage. You can read more about my impressions form Sage here. I am actually only interested in mathematical physics, so basically Sage.calculus. Currently Sage uses Maxima, because Maxima is old, proven, working system and it's reasonably fast and quite reliable, but written in LISP. Some people like LISP. I don't and I find it extremely difficult to extend Maxima. Also even though Maxima is in LISP, it uses it's own language for interacting with the user (well, that's not the way). I like python, so I want to use Python. Sage has written Python wrappers to Maxima, so Sage can do almost everything that Maxima can, plus many other things. Now. But the Sage.calculus has issues.

First, I don't know how to extend the wrappers with some new things, see my post in the sage-devel for details, it's almost 2 months old with no reaction, which shows that it's a difficult issue (or nonsense:)).

And second, it's slow. For some examples that Sage users have found out, even SymPy, as it is now, is 7x faster than Sage and sympycore 23x faster and with the recent speed improvements 40x faster than Sage.

So let's improve Sage.calculus. How? Well, no one knows for sure, but
I believe in my original idea of pure Python CAS (SymPy), possibly with some parts rewritten in C. Fortunately, quite a lot of us believe that this is the way.

What is this sympycore thing? In sympy, we wanted to have something now, instead of tomorrow, so we were adding a lot of features, not looking too much on speed. But then Pearu Peterson came and said, guys, we need speed too. So he rewrote the core (resulting in 10x to 100x speedup) and we moved to the new core. But first, the speed isn't sufficient, and second it destabilized SymPy a lot (there are still some problems with caching and assumptions half a year later). So with the next package of speed improvements, we decided to either port them to the current sympy, or wait until the new core stabilizes enough. So the new new core is called sympycore now, currently it only has the very basic arithmetics (and derivatives and simple integrals), but it's very fast. It's mainly done by Pearu. But for example the latest speed improvement using sexpressions was invented by Fredrik Johansson, another SymPy developer and the author of mpmath.

OK, let's go back to the benchmarks. First thing we realized is that Pearu was using CLISP 2.41 (2006-10-13) and compiled Maxima by hand in the above timings, but when I tried Maxima in Debian (which is compiled with GNU Common Lisp (GCL) GCL 2.6.8), I got different results, Maxima did beat sympycore.

SymPyCore:

In [5]: %time e=((x+y+z)**100).expand()
CPU times: user 0.57 s, sys: 0.00 s, total: 0.57 s
Wall time: 0.57

In [6]: %time e=((x+y+z)**20 * (y+x)**19).expand()
CPU times: user 0.25 s, sys: 0.00 s, total: 0.25 s
Wall time: 0.25

Maxima:

(%i7) t0:elapsed_real_time ()$ expand ((x+y+z)^100)$ elapsed_real_time ()-t0;
(%o9) 0.41
(%i16) t0:elapsed_real_time ()$ expand ((x + y+z)^20*(x+z)^19)$ elapsed_real_time ()-t0;
(%o18) 0.080000000000005


So when expanding, Maxima is comparable to sympycore (0.41 vs 0.57), but for general arithmetics, Maxima is 3.5x faster. We also compared GiNaC (resp. swiginac):

>>> %time e=((x+y+z)**20 * (y+x)**19).expand()
CPU times: user 0.03 s, sys: 0.00 s, total: 0.03 s
Wall time: 0.03


Then we compared just the (x+y+z)**200:

sympycore:
>>> %time e=((x+y+z)**200).expand()
CPU times: user 1.80 s, sys: 0.06 s, total: 1.86 s
Wall time: 1.92
swiginac:
>>> %time e=((x+y+z)**200).expand()
CPU times: user 0.52 s, sys: 0.02 s, total: 0.53 s
maxima:
(%i41) t0:elapsed_real_time ()$ expand ((x + y+z)^200)$ elapsed_real_time ()-t0;
(%o43) 2.220000000000027


Where GiNaC still wins, but sympycore beats Maxima, but the timings really depend on the algorithm used, sympycore uses Millers algorithm which is the most efficient.

So then we tried a fair comparison: compare expanding x * y where x and y are expanded powers (to make more terms):

sympycore:
>>> from sympy import *
>>> x,y,z=map(Symbol,'xyz')
>>> xx=((x+y+z)**20).expand()
>>> yy=((x+y+z)**21).expand()
>>> %time e=(xx*yy).expand()
CPU times: user 2.21 s, sys: 0.10 s, total: 2.32 s
Wall time: 2.31
swiginac:
>>> xx=((x+y+z)**20).expand()
>>> yy=((x+y+z)**21).expand()
>>> %time e=(xx*yy).expand()
CPU times: user 0.30 s, sys: 0.00 s, total: 0.30 s
Wall time: 0.30
maxima:
(%i44) xx:expand((x+y+z)^20)$
(%i45) yy:expand((x+y+z)^21)$
(%i46) t0:elapsed_real_time ()$ expand (xx*yy)$ elapsed_real_time ()-t0;
(%o48) 0.57999999999993

So, sympycore is 7x slower than swiginac and 3x slower than maxima. We are still using pure Python, so that's very promising.

When using sexpr functions directly then 3*(a*x+..) is 4-5x faster than Maxima in Debian/Ubuntu. So, the headline of this post is justified. :)

Conclusion

Let's build the car. Sage has the most features and it is the most complete car. It has issues, some wheels need to be improved (Sage.calculus). Let's change them then. Maybe SymPy could be the new wheel, maybe not, we'll see. SymPy is quite a reasonable car for calculus (it has plotting, it has exports to latex, nice, simple but powerfull command line with ipython and all those bells and whistles and it can also be used as a regular python library). But it also has issues, one wheel should be improved. That's the sympycore project.

All those smaller and smaller wheels show, that this is indeed the way to go, but very important thing is to put them back in the car. I.e. sympycore back to sympy and sympy back to Sage and integrate them well. While also leaving them as separate modules, so that users, that only need one particular wheel, can use them.

Stefano Zacchiroli: happy newS year

happy newS year So this was Christmas, new year, et al. Too bad Murphy struck again on the first day of my (theoretical) vacation, delivering me a nice flu (not yet completely absorbed). Nevertheless I managed to do something funny in the last few days: ... now back to that paper introduction due for December 26th :-/

2 January 2008

Eddy Petri&#537;or: back(b)loging until 2008

I haven't blogged since last year :-D so a "Happy New Year!" is required.

So what happened meanwhile? Quite a few things, both good and bad.

Maybe at a future point in time I'll post a picture or two with my nephews.

To all the people, thanks for the support and, once again, Happy New Year!

[1] a simple poem for kids

1 January 2008

Russell Coker: Low Power - They Just Don t get it

For a while I’ve been reading the Lenovo blog Inside The Box [1], even though I plan to keep my current laptop for a while [2] (and therefore not buy another Thinkpad for a few years) I am interested in the technology for it’s own sake and read the blog. A recent post concerns a new desktop machine billed as “our greenest desktop ever” [3]. The post has some interesting information on recycling plastic etc, and the fact that the machine in question is physically small (a volume of 4.5L and no PCI expansion slots) means that less petro-chemicals are used in manufacture (and some of the resins used are recycled). However the electricity use is 47W when idle!!! On my documents blog I have a post about the power use of computers I own(ed) [4] which includes my current Thinkpad (idles at 23W) and an IBM P3 desktop system which idles at 38W. Both machines in question were manufactured before Lenovo bought Thinkpad and IBM’s desktop PC business (so they technically aren’t Lenovo machines) and they weren’t manufactured with recycled resins. But the claim that the new machine is the greenest ever is at best misguided and could be regarded as deceptive. I think that the machine is quite decent, but it’s obvious that they can do a lot better. There’s no reason that a low-power desktop machine (which uses some laptop technology) should take more than twice the power of what was a high-end laptop a few years ago. Also comparing power use with P3 machines (which are still quite useful now, my IBM P3 desktop runs 24*7 as a server) is quite relevant - and we should keep in mind that before the Pentium was released no system which an individual could afford had anything other than a simple heat-sink to cool it’s CPU. This is largely a failing of Intel and AMD to make power efficient CPUs and chipsets. It’s also unfortunate that asymmetric multi-processing has not been implemented in recent times. A system with a 64bit CPU core of P3 performance as well as some Opteron class cores that could be suspended independently would be very good for power use with correct OS support. For example when reading documents and email my system will spend most of it’s time idling (apart from when I use Firefox which is a CPU hog) and the CPU use will be minimal for scrolling - a P3 performing core would be more than adequate for that task (which comprises a significant portion of my computer use). Then when I launch a CPU intensive task (composing a blog post in Wordpress or compiling) the more powerful CPU cores could start. It would be good if Intel would release a Pentium-M CPU (32bit) with the latest technology (smaller tracks on the silicon means less power use as well as higher clock speeds). A Pentium-M running at 2GHz produced with the latest Intel fabrication technology would probably use significantly less power than the 1.7GHz Pentium-M that is in my Thinkpad. Put that in a desktop machine and you would have all the compute power you need for most tasks other than playing games and running vista and you could get an idle power less than 23W. The new Lenovo machine in question does sound like a nice machine, I wouldn’t mind having one for testing and running demos. But the claims made about it seem poorly justified if you know the history.

31 December 2007

Jeff Bailey: End of year snippets

* ST:TNG Season 5 Episode 5 "Disaster" was just awesome. One day we'll even catch up on modern shows. Probably about the time when Angie's favourite game stops being Nethack, though.

* Leif is now 73cm tall.

* I should update my profile photo.

* I love how a last minute flight during high season from Vancouver to San Francisco is less than $300CAD.

* I'm sorry I haven't replied to emails and LJ comments from folks. I've been trying to actually stay *off* the computer over the winter break.

I've been asked by a few people how we're celebrating NYE now that we have a baby. Angie put it best:

"Leif's asleep! Quick! Let's... Sleep!"

I've had a blessed 2007. So far 2008 is looking pretty good. =) I do resolutions in July rather than January. I don't think anyone should try to start something new in the coldest part of the year. That's the time for sitting inside and eating cookies. Not that it's anything resembling cold here...

Hugs, my friends.

Amaya Rodrigo: Still remains - Stone Temple Pilots

Our bed we live, our bed we sleep
Making love and I become you
Flesh is warm with naked feet
Stabbing thorns and you become me
Oh, Id beg for you, you know I ll beg for you
Pick a song and sing a yellow nectarine
Take a bath, I ll drink the water that you leave
If you should die before me
Ask if you can bring a friend
Pick a flower, hold you breath
And drift away...

She holds my hand we share a laugh
Sipping orange blossom breezes
Love is still and sweat remains
A cherished gift, unselfish feelings...
Oh, Id beg for you, you know I ll beg for you

Happy Gnu Year, Holgi! You know I d love to be there with you :*

Meike Reichle: Happy new year!

The year is almost over and a lot has happened. I finished my studies and got engaged, (Again, thank you very much for the many, many congratulations and warm wishes!) now, just before the year is really over I decided to finally make another commitment. Now, I guess the first thing I'll turn to will be Tasks and Sp tzle. ;)

Matthew Palmer: Cowboys

I am very saddened by the state of the IT industry. It seems like nearly everyone who works in or around IT is, to put it bluntly, a cowboy. There appears to be very little desire for actually helping people; instead all I see is a very large number of people circling around looking for the next person they can make a quick buck off. In short, most of the IT industry is composed of people who are little better than shysters and conmen. As a case in point, I recently had contact with someone who is trying to get an online store running. They've been trying, unsuccessfully so far, for several months. They've been screwed over by basically every IT-related person they've had contact with so far. Now, after all of their suffering, they've finally gotten in contact with me. Most of their money is gone, and they're deeply behind schedule. So I'm left trying to pull a miracle job in little time and with little money. Yes, I could shoo them away, because they're asking for more than they can afford, but there's a little spark of helpfulness left in me, and I'll try to get them going as best they can with what they've got. If they'd found someone competent right at the beginning, they'd have been fine. They started with sufficient cash and time to produce a good end result. But chancing upon someone decent doesn't have good odds in IT; it's a bit like winning the lottery. This story isn't unique in my personal experience, by any stretch. There seems to be a near-endless procession of non-technical people who come out of their encounters with the IT industry battered and bruised, whether it be on the web, in their business infrastructure, or their personal computing needs. While it's easy to blame the customer for not managing themselves and their computing properly, I don't think it's fair to lay the blame on them -- to me, that's like blaming the patient for dying on the operating table, when the responsibility must lie, prima facie, with the surgeon. It's the surgeon, after all, who is the (presumably) trained and experienced professional in the relationship, and it is his responsibility, primarily, to ensure that everything goes smoothly[1]. Depressingly, I don't see much of a way around this problem. The few IT people who did care could try and group together, build some sort of a rating or "membership implies quality" system, educate the consumer, and try and drive the cowboys out, but guilds and trade associations are frowned upon these days, smacking (as they do) of restraint of trade and collusion. Government regulation never seems to produce anywhere near the desired result, while hoping that the consumer will either rise up and demand quality, or will gain sufficient knowledge to be able to pick a cowboy is a complete non-starter, for the same reason as teaching everyone basic surgical techniques isn't going to improve the quality of hospitals.
There's an ad that used to be on Australian TV for a certain bank, where a guy is at a party and he's asked by another of the partygoers what he does for a living. As he replies, "I work in banking", the entire party goes silent and stares at him in horror. It's only when he says, "It's OK, I'm with $BANK_BEING_ADVERTISED" that everyone looks happy again and continues on with their party. Although I've never had that particular experience, I'm almost getting to the point where I'm not happy telling people what I do for a living. This is because in any non-trivial collection of people, there's almost certainly going to be at least one person who has had such a poor experience with the IT industry that they're either going to take it out on me, ask me interminable questions about computers, or will just hate me on principle. It's unfortunate that brothels don't have pianos any more; if I were to say "I play piano in a whorehouse" I'm pretty sure the response would be "lawyer or sysadmin?". As Edsger Dijkstra said back in 2001, "The average customer of the computing industry has been served so poorly that he expects his system to crash all the time, and we witness a massive worldwide distribution of bug-ridden software for which we should be deeply ashamed." Are you?
1. That isn't to say that the patient (or client) has no responsibility in ensuring a positive outcome -- if you go bungee jumping the day after open heart surgery, or never send your web developer any content, you're very unlikely to have a positive outcome. However, it seems to me as though the only customer consultation done by most IT "professionals" on taking on a project is a Homeresque "I only have two questions. 'How much?' and 'give it to me'".

30 December 2007

Clint Adams: And like a heroin-addled bat, he was gone

I spent two hours answering the phone, ribbing the clients affectionately before sending their calls off to different areas in the firm. It was like I couldn't get enough. I had to stop when Carol came back to her desk and demanded to know what the hell I was doing. I rejected the first fourteen answers that came to mind, and instead gave her a shrug, a wink, and a fingersnap. Then like a Carmelob, I scuttled away and strolled back across town to my office. My dyspeptic boss tapped his foot in a hostile manner. He demanded to know where I had been. I rejected the first three answers that came to mind, and simply responded that I had been answering phones. Also I quit. It seemed the thing to do. Explaining to my colleagues that I had just freed up a bit of time, I returned to Carol's office, where I found her rocking back and forth in the corner. I turned off her light. It seemed the thing to do.

29 December 2007

Enrico Zini: eeepc

Meet the EeePC Being in Taiwan, we swiftly got hold of an Eeepc. Instead of installing Debian into it, we decided to keep the original system and see how it works. It's a Debian derivative, and the feeling inside a terminal window is quite familiar. The boot is very fast. Two seconds after the video bios quickly shows on the screen, the X cursor appears. It's definitely worth having a look at how this devil boots. The "Asus Launcher" is worth a look. IMHO it's nicer and more useful than the usual launcher menu that we get in Gnome or KDE 3, although it probably only makes sense on a small display. It replaces the desktop background, has tabs, no clutter and allows to launch applications. Turns out it's customisable as well. What's on the system KDE 3.4.2, with some applications renamed so that their names are more human. For example, konsole became console. vim! \o/ But not emacs :) mc! Someone out there wanted to make my life easier. fbreader. I had never heard of it, but it's a very good discovery that I've now started to use it on my laptop as well. Little howtos To get to a terminal, hit Ctrl+T in the file manager, or Ctrl+Alt+T elsewhere. The root password is the same as the user password. To change the system language, I managed with a simple dpkg-reconfigure locales. Ways they simplified the unix system It's single user: I didn't find a way to create multiple users besides the terminal, and the login program does not ask for a username, only for the password. The "win" key has a house painted on it, and it's used as "hide/show all applications" key. When all applications are minimised, the Asus launcher is visible instead of the X background: this behaviour basically turns the key into a sort of "run application" key. The key still works as a kind of shift, although it probably was not intended to. The repository management is interesting. /etc/apt/sources.list contains:
deb http://update.eeepc.asus.com/p701 p701 main
deb http://update.eeepc.asus.com/p701/tw p701 main
which means they have a repository per eepc model and a subrepository per localised version. The "Internet" group of applications has a Wikipedia toplevel application: it's nice to see the ecosystem of free software / free culture coming together to provide a nice user experience. An extra link to the SD card mount point (besides the one in /mount) appears in the home directory automatically when the SD card is inserted. This means that when you do "save as" from all sorts of applications, the SD card is there, easy to reach. This helps if one decides not to use the internal flash for data, and just save everything in the SD card: I like doing this, as it allows me to quickly move the SD card with all the data between the EeePC and other computers. Changes I made so far Activate en_GB.UTF-8 via dpkg-reconfigure locales. Add en_GB.UTF-8 to /etc/scim/global, to get SCIM input methods to work. Little flaws Virtual screens are enabled, so W+arrow switches virtual screen. The feeling you get if you hit W+arrow is that all your applications disappeared. This could be improved by having the vm keep the asus launcher at the bottom of the current virtual screen, instead of just at the bottom of the first screen. Or, to disable virtual screens by default. It is possible to drag the lower panel around, maybe accidentally: that's another of our fancy default "features" that should be disabled by default. It is also possible to remove applets from the applet bar by mistake: for example I wanted to disconenct the wireless, and I instead ended up quitting the wireless applet. Luckily, the next time I started the computer it magically came back. ~/.xsession-errors is continuously getting the useless stdout/stderr debugging flood of GUI apps. Noone bothers usually, except that in this case the file is on flash, where unneeded writes are also very much unwanted. I'm considering symlinking it to /dev/null, but ideally we should get GUI apps to only write out what is really important. Battery charging doesn't show how long it is going to take until the battery is fully charged. No capslock or numlock leds. This probably calls for disabling or remapping of capslock. Numlock is very hard to hit by accident, but capslock is. Random thoughts If you buy an eeepc, I really suggest you think of it a mass consumption appliance and stay on the original OS for a while. Most of what's in here is what we use everyday, just on a different context. Try to use it as an appliance and see if it is perfect, and if it isn't, try to find out what is missing. It is a fantastic way to find out important bits that are missing in Debian as well. Also, if you're used to tailoring everything to yourself before starting to use a Linux system, this is a great way to try the usage experience that we can offer by default. The Firefox welcome page the first time you connect, for example, is surprisingly nice. Everything we know as doable comes a bit as as a surprise because this time someone has done it for us. I wish that that someone can be invited to talk at the next Debconf: the possibility of having a look at the work that has been done in bending Debian to this nice little device is to me one of the most valuable things so far about the eeepc. Help/About KDE/Credits It's reachable by most applications, and says:
The development team would like to thank the following people and organizations for their contributions:
  • the Debian Project,
  • the GNU Project,
  • the KDE Project,
  • the Mozilla Project,
  • the OpenOffice.org Project,
  • the SAMBA Project,
  • the X.Org Foundation,
Linus Torvalds and the other Linux kernel developers, and Free software developers around the world.
I'm using an appliance that is thanking me, and others like me: priceless!

28 December 2007

Philipp Kern: Digicam wanted... any suggestions?

My wish to buy a digicam or to receive it as a birthday or Christmas gift is quite old actually. Exactly a year ago I already looked out for suitable models at Amazon and had trouble finding something satisfyable. Just like now. I really don't want to dig into the whole market of cams to get an overview of what's available. My parents own an older 5 MP Canon PowerShot, which is just fine. It uses standard rechargeable batteries and has a turnable display. Now the latter is not really available anymore and the reviews of Canon cams on Amazon are not too promising, neither, i.e. they claim that the quality got worse in the last two years since we buyed that old cam. Does anyone have some recommendations of cameras in the 100 < x < 200 Euro range which get along with standard batteries? Preferably it would use SD cards as my laptop happens to provide a reader for it. A finder is not really required, as I use the display for almost all pictures anyway, but the display should have a sensible resolution (something people also critisised when looking at Canon cams). The lens should provide a bit of wide-angle and should obviously be good. As my blog does not provide any comments facility (yet), I appreciate emails at pkern (at) debian.org with suggestions, especially if you made some personal experiences. (Although I know that people here prefer digital mirror reflex cams, but those are just too expensive for me.) Thanks in advance, dear Lazyweb!

Martin-&#201;ric Racine: O: planner -- project management application

While looking at outstanding bugs against my Debian packages, I noticed that an RC bug had crept in against Planner. The bug itself isn't new. In fact, Ubuntu had experienced it already and simply decided to build their package without SQL support to resolve the issue. Planner is a fairly well-matured piece of software, with very few bugs remaining. It remains quite usable in everyday use. However, it has fallen behind in terms of keeping its code up-to-date against the latest versions of some optional dependencies. Tonight, I was just sitting here pondering what to do and it occurred to me that I'm simply no longer interested in maintaining the package. I have done a fairly good job of overhauling the build scripts and of upgrading them for the Python transition but, at this stage, I feel that I've accomplished as much as I could do. Besides, I no longer have the time to maintain so many packages, so I have decided to focus on maintaining those I actually care for and Planner isn't one of them. The package already is assigned to Debian's GNOME team, so no need to actually orphan it, since anyone from the team can pick it up. If you're a member of the GNOME team and feel like taking over, perhaps even submitting patches to upstream to close a few more bugs, go right ahead and jump in.

Next.

Previous.