Search Results: "pm"

5 January 2008

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

"Day Two Downers" be damned, Sarah's powering along like a freight train. Neither of us had a terribly fantastic night's sleep. Her chest drain is attached to this big box thing that has some sort of water seal in it, and with the suction going through it, it bubbles and makes noise like a massive aquarium. But she did get some sleep, and said she felt better this morning for it. The doctor came by at 8am, and took the incision dressing off, and we got our first good look at it. It's big (i.e. long). It runs from about the top of her breastbone to the bottom of her sternum. 20cm at my estimation. She said that she thought the chest tube could come out today, and sure enough it came out at about 12:30pm. They also took her urinary catheter out at that time, so now all she's hooked up to is oxygen. Her blood sugar levels were acceptable at breakfast time. Oh, the reason the incision ran so high was because they elected to do the bypass attachment to an artery in her neck, rather than further around the aorta, because the tissue was fragile and they didn't want to risk a dissection. Not doing the bypass in the aorta also left them the option of removing some of the transcending arch if they determined it still ended up being necessary. Sarah got up and had breakfast in a chair again, and was generally feeling pretty mobile. She moved between the chair and a wheelchair (and back) when they came to get her for another x-ray, without requiring any assistance. She took her first walk around the ward at 11am. I'd popped home for a shower and to check on the cats, and so I missed it. Doctor Miller dropped in at around 12:30pm to see how she was doing, and that was good as Sarah got a chance to talk directly to him about how the procedure had gone. He was very positive and said she could put this whole thing behind her now. At 2pm, she went for another walk, this time sans two thirds of the tubes from her first walk, and got in and out of bed unassisted. She took her last walk of the day at 4pm. Apparently her blood sugar is still on the high side, but within the range that they don't feel the need to give her insulin. Her chest is apparently looking better on the x-ray they took this morning. They took a second one after they removed the chest drain, but we haven't heard anything about how that looks yet. She's continuing to do extremely well, most of this less than 48 hours out of surgery.

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.

Torsten Werner: Open Source licensed scientific software



Software becomes more and more important in science as in other areas of life. Scientist have a tradition to publish their work very openly but that does often not include the source code of the software that was developed to carry out simulations which has some obvious problems such as:
- other scientists cannot check the software for errors,
- other scientists cannot fix the bugs and easily reproduce the results,
- other scientists cannot base their new research on already existing software and have to write it completely from scratch again and again,
- software package from different authors cannot be combined easily.

But things are getting better. One field of scientific research where we can see some improvement is machine learning - http://en.wikipedia.org/wiki/Machine_learning which is a broad subfield of artificial intelligence and concerned with the design and development of algorithms and techniques that allow computers to "learn". S ren Sonnenburg et.al. wrote a paper about "The Need for Open Source Software in Machine Learning" which is available at http://jmlr.csail.mit.edu/papers/v8/sonnenburg07a.html. They even created a portal with the goal to support a community creating a comprehensive open source machine learning environment at http://mloss.org.

An increasing number of software package are available in Debian like
- some simple-to-use utilities to apply compression techniques to the process of discovering and learning patterns: http://packages.debian.org/sid/complearn-gui
- a python package for convex optimization: http://packages.debian.org/sid/python-cvxopt
- a library for support vector machines: http://packages.debian.org/sid/libsvm2
- a machine-learning library: http://packages.debian.org/sid/libtorch3-dev
- an object-oriented programming language designed for researchers, experimenters, and engineers interested in large-scale numerical and graphic applications: http://packages.debian.org/sid/lush
- a large scale machine learning toolbox: http://packages.debian.org/sid/shogun-python-modular
- a data mining software in java: http://packages.debian.org/sid/weka

I'd like to know if you are using some of the packages or some other scientific software in Debian. Feel free to leave comment. Or maybe you are missing something in Debian?

If you are an author or user of some free software related to the topic of machine learning please consider registering it at http://mloss.org.

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.

Ondřej Čertí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.

David Welton: No next big language?

Ola Bini, one of the JRuby hackers, and a very bright guy, posits that there "won't be a next big language": http://ola-bini.blogspot.com/2008/01/language-explorations.html
There might be some that are more popular than others, but the way development will happen will be much more divided into using different languages in the same project, where the different languages are suited for different things. This is the whole Polyglot idea.
I'm dubious, and wonder what he would consider to be the underlying sociological and economic factors driving this change. Programming languages are, in the end, about people in all their weirdness, so to understand where languages are going to go, you have to consider those human factors, as I've attempted to do here. One trend that points to a slow proliferation of languages is of course the lock-in cited in my article. Today's big languages (Java, and on the web, PHP) won't just go away from one day to the next, just as C, Cobol and Fortran have not disappeared with the advent of Java. That process will continue, making it likely that new languages will carve out new territory for themselves rather than exclusively cannibalizing existing installations from older languages. This naturally leads (slowly) to more languages, even if the next generation has a Next Big Language. And why shouldn't there be one? Ola talks about a situation where various languages run and interact on top of a runtime (JVM). Isn't that similar to what we've had with C, though? Perl, Tcl, Python, etc... all run on top of C. Sure, the JVM is a step up from that in some ways, most notably GC, being a bit more consistently cross-platform, and having a wider array of libraries, but in the end, it still comes down to the network effects of being able to read and write a common language, whatever it runs on. Obviously, the network externalities of programming languages are not so strong that they hit a tipping point after which one language crushes all the others, but they are strong enough to consolidate leadership in one or a few languages. Programmatically, Jython, JRuby, (and Hecl?:-) may even find it easier to interact on the same platform, but the humans writing the code will still push for consistency and the minimum set of common tools in order to aid the sharing and review of code. Another way to look at it might be from an organizational point of view. Today's biggest fish in the pond, Google, only allows four languages for their production systems. What would a "no big language future" organization look like? I can't believe they'd welcome a big hodge podge of things. In conclusion, as computers are ever more widely used, it's certain that more languages will be utilized. However, it's also likely that from time to time a few languages, with one in the lead, will emerge as the leaders.

2 January 2008

Andrew Pollock: [life] Pre-op

We went in to Stanford Hospital this morning for a few hours of pre-op stuff. They took blood, did an ECG, a chest x-ray, and we had a chat with someone from anesthesiology. A physicians assistant and a nurse practitioner talked to us (separately) about what to expect. We also watched a short video about what to expect. We now have to report back at 5:15 tomorrow morning (there's a 5:15 in the morning, how about that?) for a 7:30am procedure. They're saying it'll take 6-8 hours and that Sarah will be on a ventilator for the first 4 hours or so that she's in intensive care, post-op. She'll probably be in the ICU for a couple of days. It's sounding like I can only spend 10 minutes in there every few hours, but we'll see how that pans out tomorrow I guess. It's sounding like I won't get to see her until around 4pm tomorrow I think someone was saying. I guess we'll see how that pans out as well. I've just doped myself up with some NyQuil so I hopefully get a better night's sleep than last night. I'm going to need it, it's going to be a long day.

Eddy Petriș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

Andrew Pollock: [life] Home again

Well, this is actually our fourth day home, I just haven't had the time or inclination to write anything until now. We had an uneventful trip home on the 29th. I think I'm getting more used to these long-haul flights, the time went pretty quickly. There is much to be said for Qantas' in-flight entertainment system. And Melatonin tablets. We had a good, jam-packed three weeks in Australia. We landed on a Sunday morning, at around 8am. Sarah's Aunty Glenda picked us up from the airport, and we stayed with her for the week. We caught up with two sets of friends on the Sunday, and managed to last until the evening without crashing. I spent the week working from the Sydney office. Jetlag is a wonderful thing for making me into a temporary morning person. I was at my desk by 8am every day. I'd forgotten how early the sun got up in Australia in the summer time. Monday in Sydney is Sunday in California, so Mondays are blissfully quiet and great for getting things done. The beauty of getting in by 8am meant I still caught Mountain View from about about 1pm onwards for the rest of the week, so that was good. I got a lot done while I was in the Sydney office. On Tuesday morning we went to the US Consulate to sort out Sarah's visa renewal. It was a no-brainer, and our passports were back at my parent's place within 48 hours. Thursday night was the Sydney office Christmas party. The Friday night we flew out of San Francisco was the Mountain View office one, so it was good to be able to catch a party somewhere. Got to love working for an international company. Photos here. Sarah spent the week in Sydney pottering around and catching up with relatives. Every night was booked out with dinner with friends. Photos from the week in Sydney are here. Next stop was Canberra for four days. We stayed with different friends each night. We'd really come to appreciate how bug-free California is. Apparently Canberra was having a particularly bad fly season this summer. They were just about carrying us away. We stayed a night with Rusty and Alli on their farm out at Majors Creek, which is always a nice getaway. It was great to see how the place is coming along. We won't recognise it next time we're there. At Canberra airport on the way to Brisbane, totally by chance, we bumped into our old upstairs neighbour Melissa, from when we lived in Turner. Her and her husband and kids moved to Brisbane around the time we moved from Turner to Ainslie, and we hadn't done a very good job of keeping in contact. To cap it off, she ended up sitting in the seat across the aisle from us on the plane, so we had a good old chinwag for an hour and half. Photos from Canberra are here. Then we got to Brisbane and did the family thing. It was good to see my family again, and show them all of the photos of Joshua and just spend time with them. Brisbane traffic has degenerated significantly in the last 12 months. The Gateway Arterial Motorway near the airport is a complete mess. There's a lot of construction going on for the new cross-city tunnel they're putting in. Probably the highlight of the trip was the mass outing to Australia Zoo. It's been a couple of years since we've been there, and boy, does that place just keep getting better. My hot tip is to save yourself a fortune, and a precious couple of hours, and avoid purchasing food from the catering area. It's sheer bedlam, and very expensive. The zoo is getting so big, that you really need all of 9am to 4:30pm to see it all properly, so you can save a lot of time by bringing your own lunch, or getting a pass-out and getting lunch from somewhere nearby. Photos from the zoo trip here The weather in all parts of Australia that we saw was pretty grey and wet for the most part. I'm not complaining, we need all the water we can get. It was sounding like most of the rain was falling outside the catchment areas though. It was nice to see Canberra not looking all brown and dry though. Photos from the time in Brisbane here. In a brief fit of spontaneity we decided to sign up for Qantas Club memberships. I'm really kicking myself for not getting lifetime membership back in 1999 when I sold my share of our business. I've done so much travelling since then, and it'd have really come in handy. As it happened, we got good use out of it this trip. The flight from Brisbane to Sydney was at 8:15am, so we left my parents' place at about 6:15am, sans breakfast or showers, and breakfasted at the Brisbane airport, and showered in the Sydney airport, as we had about 5 hours to kill until our flight to San Francisco departed.

Jonathan McDowell: onak: not dead, just resting

I finally found some time over Christmas to solve the onak issue with dynamic backends (#413762). It took a lot longer than it should have to get something new out. And TBH that's pretty much the way onak has been. It gets spurts of development activity when I find some free time, and then nothing happens for months (or years) on end. However, as I've been asked if it's a dead project, it's not. I know that SKS is a perfectly acceptable keyserver and probably the one that's most used out there, but I still have a soft spot for onak and various ideas about things that need done for it. And I'm always happy to receive comments, suggestions or (even better) patches.

Julian Andres Klode: Bye, 2007 - Welcome 2008!


April 2007, I joined the Fellowship of the Free Software Foundation Europe. I also became involved in the development of Debian GNU/Linux with my first package, aufs, sponsored by Daniel Baumann. This was the starting point for my Debian stuff. Now I maintain 6 packages in Debian. One of the most interesting packages is gnome-app-install, which will be part of the gnome-desktop task (already added to tasksel’s list). Users will be able to install applications easily. It also activates the automatic codec installation, so users will be able to play most multimedia files easily. 30th December, I finally got assigned my AM, Martin Zobel-Helas (zobel), and I’m happy to be able to continue the NM process now. On the Ubuntu side, some things have happened, too. I merged several new versions of dir2ogg and a new aufs version, and became an Ubuntu Member on the 29th November. In 2008, I plan to complete the New Maintainer process and become an Ubuntu MOTU. I will continue my packaging stuff, and will merge new features from Debian to Ubuntu and from Ubuntu to Debian. A happy new year to everyone and sorry for blogging this such late.

31 December 2007

Joerg Jaspert: HTML output for packages in NEW

You may remember that, short before the release, Aj had a HTML page for packages in NEW, living in his ~/ajt/new/ on our ftp-master host. It was based on a patch from Thomas Viehmann and got lost with the ries crash. Today I reimplemented it, putting it directly into dak and the ftp-master codebase and webtree. My work is also based on Thomas patch, but I reworked the whole thing a bit. I’ve written a new dak command, show-new, which is based on process-new, the command I always use when I process NEW packages. Obviously not with all that functionality, it doesn’t need any reject capability, but it still has some nice parts. Like To not duplicate code too much this also meant that various code blocks had to be moved into daklib/ files. If you want to look at it - the NEW Overview, something that I wrote long ago, has links to the per-package-version files. Just click on the version number. I have plans to enhance it even more, like having the lintian output use colors too. To make that easy I filed a bug against lintian asking for it. For the other changes - well. I think the layout can be enhanced, possibly going a bit in the direction of the removals summary page, but that will take some time, as I need to talk to my CSS-masters for it. And while I was changing dak code I did some more changes to it. One patchset already got applied from James, removing the obsolete non-US support. I have a large number of other changes, but have to redo them, much more using bzr branches, so James can more easily pick single changes out of them. The changelog for those applied changes is pretty impressive with its length, I think…
2007-12-30  Joerg Jaspert  joerg@debian.org>
        * dak/dak.py (init): add show-new. This is based on a patch
        submitted by Thomas Viehmann in Bug #408318, but large parts of
        handling it are rewritten and show-new is done by me.
        * dak/queue_report.py (table_row): Add link to generated html page
        for NEW package.
        * dak/show_new.py: new file, generates html overview for NEW
        packages, similar to what we see with examine-package.
        * config/debian/cron.hourly: Add show-new call
        * config/debian/dak.conf: Add HTMLPath for Show-New
        * dak/examine_package.py (print_copyright): ignore stderr when
        finding copyright file.
        (main): add html option
        (html_escape): new function
        (escape_if_needed): ditto
        (headline): ditto
        (colour_output): ditto
        (print_escaped_text): ditto
        (print_formatted_text): ditto
        - use those functions everywhere where we generate output, as they
        easily know if we want html or not and just DTRT
        (do_lintian): new function
        (check_deb): use it
        (output_deb_info): Use print_escaped_text, not print_formatted_text.
        Also import daklib.queue, determine_new now lives there
        Also add a variable to see if we want html output. Default is
        disabled, show_new enables it for its use.
        Most of html, besides header/footer are in examine_package instead
        of show_new, as it makes it a whole lot easier to deal with it at
        the point the info is generated.
        * dak/process_new.py (determine_new): Moved out of here.
        (check_valid): Moved out of here.
        (get_type): Moved out of here.
        * daklib/queue.py (determine_new): Moved here.
        (check_valid): Moved here.
        (get_type): Moved here.
        * dak/init_db.py (do_section): Remove non-US code
        * dak/make_overrides.py (main): ditto
        * dak/process_new.py (determine_new): ditto
        * daklib/queue.py (Upload.in_override_p),
        (Upload.check_override): ditto
        * daklib/utils.py (extract_component_from_section):,
        (poolify): ditto
        * dak/import_archive.py (update_section): ditto
        * dak/symlink_dists.py (fix_component_section): ditto
        * scripts/debian/mkmaintainers: ditto
        * scripts/debian/update-mirrorlists (masterlist): ditto
        * config/debian-non-US/*: Remove subdir
        * scripts/debian/update-readmenonus: Removed.
In the recent past I did some more dak changes. Just to list them here, they are (Most patches applied by James. Can’t remember if someone else applied one. If so that would be Aj). And - at the end of all this - I will finally update my dak package again. Im not sure I get it uploaded this year, as I’m away tomorrow, but it will get an update fairly soon! Ha.

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

Holger Levsen: 24C3 day two - 8h to complete a blog post

It's noon now and half the attendees or so the day hasn't really begun. Sure, some people here at the 24C3 in Berlin are having lunch already, but most are having breakfast or not even that yet. As the Debian booth is set up (mugs are sold out, bags almost...) and there are no interesting talks for me at the moment, I'm having a second breakfast in the smokers lounge is the cellar. Officially, this is the third non smoking congress and inofficially it's the third time there is an official smoker place ;-) This time, it's a lounge with comfortable sofas, ambient light and loud music...

About four weeks ago I was contacted by Martin Michlmayr and asked if the video team could make use of some hardware donation a company wanted to sponsor. I said yes, and so last week two boxes arrived at my house: a small audio mixer, a Behringer XENYX 1202 with 12-channels and XLR and chinch inputs, which is supposed to help us improve the audio quality in small venues. The second box contained a TwinPact100, which is a video converter box. It has an SVGA-input (supporting up to 1600x1200), an SVGA-output (sending the same signal out) and DV (firewire) output (and more features we don't really care about). So for us it's basically a SVGA-passthrough box which also outputs a video stream (of a speakers laptop in our use case) over firewire. So no more capturing of slides with a normal camera, yay! Yesterday Ben Hutchings and me tested this box and found it working, then Ben also fixed an issue with dvswitch, which we use to mix different firewire video streams together, probably even as soon as FOSDEM again! Many thanks to hitflip.de for this nice donation!

When I arrived here this morning I hoped to see the BabelBox I set up last night to be still running, and it was, yay! BabelBox is a d-i setup which loops through an installation of Debian etch in 36 languages, mostly using the graphical installer. And this will be running here for approx 72 hours non-stop resulting in 289 installations without a single keystroke :) IMO it shows real nicely two of the three major strengths of d-i: internationalisation and automatisation.

I guess it's pretty unlikely that I'll find some time during the last two days of the congress to take Andre Salomons packages for the OLPC laptop and demonstrate d-i's third major feature: it's modular design. It's more likely to be an excercise for next year though (I'll arrive home on the 31st..), here is too much stuff happening. Installing babelbox was just following a good howto. In any case, there is a OLPC.de meeting planned tomorrow at 12.30 noon at the Debian booth or in the Embedded Corner. Just come along and look out for the green cluster of XOs :)

And by now it's 8 PM - time flies when you're having fun. I just noticed that my wireless connection is up since seven hours uninterrupted! Wow.

27 December 2007

Holger Levsen: Volldampf voraus

"Volldampf voraus" ("full steam ahead") is the motto of this years chaos communication congress, which should express a particular request for talks and projects featuring forward looking hands-on topics. If you are not attending check out the schedule anyway, it covers a huge variety of topics and most of the events are in English and all should be streamed live.

Since about two hours the debian booth (located in the upper floor next to the Embedded Corner) is finally set up (thanks to a bunch of friendly debian people - we are still looking forward to welcome you to sit behind the booth and answer peoples questions), the fourth slot of talks is beginning now and in an hour I hope I'll find time for some food...!

If you are at the congress and want to try the wireless mesh networking provided by the freifunk community, you can either use OLSR or B.A.T.M.A.N as routing protocols. Last night I've uploaded batmand and olsrd packages to experimental, featuring those development versions which are supposed to be used here. They are also available on my webserver for etch and sid (follow the previous links).

Miriam Ruiz: SMV Video Format

Some small portable MP3 players also allow reproducing images and videos (does anyone know why they call them MP4 players?), but they need the latter to be in some funny format called SMV (for devices with SigmaTel chipset. Other devices use different formats, such as AMV for devices with Actions chipset, MVS for those with Sunplus chipsets, MTV, DMV or ASF). SMV seems to stand for “SigmaTel Motion Video”, and was developed by SigmaTel Inc to allow users to transform common PC video files and watch them on their portable multimedia players (PMP). I’ve been trying to find out how to convert videos to this format for a while, to be able to watch them in a small gadget I bought some time ago, but haven’t been able to do so from Linux yet. All the converters seem to be privative, and just for Windows, although they seem to work with wine according to some reports I’ve read on the net. I’m not putting any closed-source software in my lappy anyway, so that’s not an option for me. I recently found a web page of someone developing a conversion tool for SMV called smvconv, based on mplayer and ffmpeg and released under a MIT/X11 license. It’s just a small C program and a shell script, and seems to be in a very preliminary stage, but the most important part is that he has also published the structure of SMV files, which seem to be, in fact, quite a simple format composed of some headers, a WAV audio file and some JPEG frames: An SMV file has three sections, concatenated together:
  1. An IMA ADPCM .wav file, with header.
  2. An SMV header.
  3. A number of .jpeg files, with headers, each prepended by a 24-bit (3-byte) little-endian value representing the size, and buffered at the end with nulls, so that they are at predictable locations (the jpeg modulo). SMV is a constant-bit-rate format, but the underlying format (jpeg) is not. Proprietary encoders -according to smvconv’s author- probably make up for this by encoding at various qualities until a jpeg of the proper size is made.
The SMV header is a magic string in ASCII (”SMV002000″) followed by a number of 24-bit (3-byte) little-endian values representing the width, height, header length (in 3-byte words, starting with some magic “002″), some apparently constant value (1), the jpeg modulo, fps, number of frames. some apparently constant values (a 1 and a 0), the number of frames per jpeg, and 4 padding values (65793 == 0×010101). The default qualities seem to be 35kBps (”High”), 25kBps (”Medium”) and 16kBps (”Low”). Lets hope to have some working converter soon, so we can use this feature in those cheap players. I don’t remember where I put the USB connector for mine, but as soon as I find it -it seems to be non-standard, so no way to replace it with a new one, AFAIK- I’ll start experimenting with it.

25 December 2007

Eric Warmenhoven: Tomorrow will be: roughly the same as today.

A couple months ago, I got an iPhone, like I wanted. Today, I dropped it flat on its face onto a tile floor, and the bottom half of the touch screen no longer responded. So this afternoon, Christmas Eve, I went to the Apple store at 5pm to try to get it fixed, realizing at the time how stupid and unlikely that was. To my great surprise, the store was open, mostly empty, and I was given a brand new iPhone on the spot. I took it home and connected it to my Macbook, and iTunes asked me if I wanted to restore my old profile. A short sync later and it’s indistinguishable from my old iPhone, pre-drop. It even remembered which websites I had open! It also had the pictures I had taken with the phone but hadn’t yet copied off of the computer. So now I love my iPhone even more because I don’t care if it breaks; the new one will be identical to the old one in every way. Today ends week eight of my forty-eight week Invisalign treatment. I originally was looking at orthodontic work to correct the crowding on my lower teeth, and have been considering getting either braces or Invisalign for about four years now. I’ve talked to several dentist and orthodontists, and the ones who offer both braces and Invisalign have tried to persuade me to get braces instead. The main reasons they’ve pushed braces are that they’re cheaper, they’ll probably take less time, and they’ll be able to correct more things, such as my overbite. I decided to go with Invisalign instead for several reasons: vanity, comfort, convenience, and protection. Invisalign so far has been much more comfortable than braces were, especially since they don’t cut at my lips and gums like braces did. I can eat whatever I want, unlike with braces, since the retainers come off while I eat. And I grind my teeth at night, so the Invisalign gets worn down instead of my teeth. The biggest inconvenience so far with Invisalign is that I’ve stopped snacking, since there’s such a huge time cost involved with brushing my teeth before putting them back on, and I’m not supposed to have them off for more than two hours per day.

24 December 2007

Manoj Srivastava: Manoj: The Choice of the cat

The second in the Vampire Earth series by E. E. Knight, this book has our protagonist moving to the next step in the genetically augmented hunter clans of the human resistance. Well written, though the next stage of the character development would require the people to actually get into some relationships. Apart from that, the series is moving well along, with other team members being brought into the fold.

23 December 2007

Adam Rosi-Kessel: Media for Kids


One great thing about kids — especially kids who have not been overexposed to TV media — is how easily entertained they are. We recently showed Esther some Looney Tunes cartoons from the 1940’s (on a real TV, no less!) and she couldn’t stop laughing. It is refreshing to see someone spellbound by animated content that didn’t require a rendering farm to create. I’m sure she’ll be jaded soon enough, but we’re trying to drag it out as long as possible by providing only very occasional small doses. This piece on the end of reading as a cultural activity is chock full of interesting statistics. This excerpt, in particular, is relevant here:
In August, scientists at the University of Washington revealed that babies aged between eight and sixteen months know on average six to eight fewer words for every hour of baby DVDs and videos they watch daily. A 2005 study in Northern California found that a television in the bedroom lowered the standardized-test scores of third graders. And the conflict continues throughout a child s development. In 2001, after analyzing data on more than a million students around the world, the researcher Micha Razel found little room for doubt that television worsened performance in reading, science, and math. The relationship wasn t a straight line but an inverted check mark : a small amount of television seemed to benefit children; more hurt. For nine-year-olds, the optimum was two hours a day; for seventeen-year-olds, half an hour. Razel guessed that the younger children were watching educational shows, and, indeed, researchers have shown that a five-year-old boy who watches Sesame Street is likely to have higher grades even in high school. Razel noted, however, that fifty-five per cent of students were exceeding their optimal viewing time by three hours a day, thereby lowering their academic achievement by roughly one grade level.
It certainly doesn’t surprise me that television–even educational TV–is generally not good for kids. The “inverted check mark” bit was a surprise, though. Who would guess that two hours a day is optimal for the nine-year-old brain? On a related note, Kiddie Records Weekly (recommended by about.com here) is an astonishingly extensive source of free children’s books in MP3 format. It’s also an excellent example of the increasing relevance of bittorent in enabling wide economical distribution of legitimate content. The content is primarily (exclusively?) digitized vinyl records from the 1930’s and 1940’s. Fortunately, Alice in Wonderland gets no worse with age. To complete the nostalgia circuit, who can forget “loaf of bread, a container of milk, and a stick of butter” (via sketchelement, quite a while ago): These are good times to be a kid. Or maybe just to be a parent. Technorati Tags: , , , , , ,

22 December 2007

Daniel Leidert: bluefish-unstable packages ready for testing

I promised it some time ago and now it has been done: Debian packages for the development tree (1.1 series) of Bluefish are ready for Debian users (i386 only). The packages can be installed along with the stable version, so you can safely test new features and give us feedback and bug reports. NOTE: The packages cannot be (re)built on Etch, because debhelper version 5.0.57 or higher is necessary. I will fix this part of debian/rules soon, so it can be (re)built on Etch too.

Next.

Previous.