Search Results: "zed"

20 April 2010

Biella Coleman: On Internet Punditry and Engendering Change

One day a very well known Internet theorist writes a rant on women. The rant generates controversy, controversy lands theorist on WYNC on the media , despite the fact the he does not really work on the politics of gender. If this is so, why then give him more air time and focus on the NPR show? There are three lessons that precipitate from this social fact that are worth highlighting: 1.The fact that NPR chose him to pontificate and not a woman nullifies Shirky s thesis that behavior is one of the most important factors in keeping women behind, unless of course NPR asked a bunch of women but they were too meek to be on the air (not likely). If they wanted to keep the star power that is Shirky, the very least they could have done is had a woman respond. The solutions to get more women in the limelight are so easy to implement but they do require some thoughtfulness and foresight. 2.So what I am saying, it is about networks and Shirky, isn t he a theorist of networks and behavior? It seems to be to more controversial, he really did not address how important networks are for the politics of visibility, instead he focused on individual behavior. If famous highly networked folks, most of them men, don t highlight women in their blog posts, their twitter feeds, and don t invite them to conferences, it is going to make very little difffernce whether a woman is meek or confident. So if there are more guys that are visible, which is certainly the case, it is as much their job to help engender change, not so much by pontificating but acting. 3. I realized that though I first thought his rant was a reflection of his personality (at least his public persona, I am sure he is a nice guy), in fact the rant is valuable to an anthropologist interested in digital media because it is an auto-ethnographic snapshot of web 2.0 punditry culture. It often comes across as smarmy and snarky, which is due in part, to how difficult it is to get your message heard in the sea of many voices. Just like there is an aesthetic of audaciousness in a lot of Internet memeology, for example, the pundits too must often act in extreme ways to get attention which might inf fact be one of the reasons why they are reluctant to share the stage once they have worked hard to get there.

18 April 2010

Eugene V. Lyubimkin: dealing with unwanted recommends using cupt

Some people use '--without-recommends' switch and the problem is gone. I think that's overkill.

This post will tell how (would I recommend) to deal with unwanted recommends. The following text tells about cupt package manager, and though ideas are applicable to any package managers, the techniques may differ.


Stage 1. Facing problems

Suppose we want to install the package kde-minimal:

-8<-
$ sudo cupt install kde-minimal
[sudo] password for jackyf:
Building the package cache... [done]
Initializing package resolver and worker... [done]
Scheduling requested actions... [done]
Resolving possible unmet dependencies...
The following 16 packages will be INSTALLED:

dolphin kappfinder kde-minimal kdebase-apps kdebase-bin kdebase-data kdepasswd
kfind kinfocenter konqueror konqueror-nsplugins kwrite libkonq5
libkonq5-templates libkonqsidebarplugin4 plasma-widget-folderview

The following 1 packages will be UPGRADED:

konsole

Need to get 6024KiB/6024KiB of archives. After unpacking 14.9MiB will be used.
Do you want to continue? [y/N/q]
->8-

Umm, kinfocenter? No, we don't want it to be installed.

Stage 2. Searching for a reason

Now we will use the 'reason tracking' feature of libcupt's resolver. Let's add '-s' switch (simulating) and '-D' switch (tracking reasons):

-8<-
$ cupt -s install kde-minimal -D
Building the package cache... [done]
Initializing package resolver and worker... [done]
Scheduling requested actions... [done]
Resolving possible unmet dependencies...
The following 16 packages will be INSTALLED:

dolphin
reason: kdebase-apps 4:4.3.4-1 depends on 'dolphin (>= 4:4.3.4-1)'

kappfinder
reason: kdebase-apps 4:4.3.4-1 depends on 'kappfinder (>= 4:4.3.4-1)'

kde-minimal
reason: user request

kdebase-apps
reason: kde-minimal 5:55 depends on 'kdebase-apps (>= 4:4.3.1)'

kdebase-bin
reason: kdebase-apps 4:4.3.4-1 depends on 'kdebase-bin (>= 4:4.3.4-1)'

kdebase-data
reason: kappfinder 4:4.3.4-1 depends on 'kdebase-data (= 4:4.3.4-1)'

kdepasswd
reason: kdebase-apps 4:4.3.4-1 depends on 'kdepasswd (>= 4:4.3.4-1)'

kfind
reason: kdebase-apps 4:4.3.4-1 depends on 'kfind (>= 4:4.3.4-1)'

kinfocenter
reason: kdebase-apps 4:4.3.4-1 recommends 'kinfocenter (>= 4:4.3.4-1)'

konqueror
reason: kdebase-apps 4:4.3.4-1 depends on 'konqueror (>= 4:4.3.4-1)'

konqueror-nsplugins
reason: kdebase-apps 4:4.3.4-1 recommends 'konqueror-nsplugins (>= 4:4.3.4-1)'

kwrite
reason: kdebase-apps 4:4.3.4-1 depends on 'kwrite (>= 4:4.3.4-1)'

libkonq5
reason: kdebase-apps 4:4.3.4-1 depends on 'libkonq5 (>= 4:4.3.4-1)'

libkonq5-templates
reason: libkonq5 4:4.3.4-1 depends on 'libkonq5-templates kdesktop'

libkonqsidebarplugin4
reason: konqueror 4:4.3.4-1 depends on 'libkonqsidebarplugin4 (>= 4:4.3.4)'

plasma-widget-folderview
reason: kdebase-apps 4:4.3.4-1 depends on 'plasma-widget-folderview (>= 4:4.3.4-1)'


The following 1 packages will be UPGRADED:

konsole
reason: synchronized with package 'kdebase-apps'


Need to get 6024KiB/6024KiB of archives. After unpacking 14.9MiB will be used.
Do you want to continue? [y/N/q]
->8-

Now, the output is much bigger. Every package has reason(s) to change its state appended. Let's look at the chain: kinfocenter is installed, because... kdebase-apps is to install. Ok, look further, kdebase-apps is to install because... of kde-minimal. The final chain is 'kde-minimal -> kdebase-apps -> kinfocenter'.

Stage 2.5. Analyzing reason

After determining a full chain one may try to think - is this dependency chain looks OK? Maybe, some Depends/Recommends should be turned up to a less strict dependencies? If that so, it's a good idea to fire a command 'reportbug <package>' to report an unwanted dependency.

In this example, the dependency chain looks OK (at least, to me :)).

Stage 3. Installing a package without unwanted dependency(ies)

The resolution of the problem depends on the answer to the question "Why I don't want this package to be installed?"

Case 1. Only this time/package

If the answer is, say, "Because dependency 'kdebase-apps -> kinfocenter' doesn't make sense on this system", then you do:

-8<-
$ sudo cupt install kde-minimal kinfocenter-
[sudo] password for jackyf:
Building the package cache... [done]
Initializing package resolver and worker... [done]
Scheduling requested actions... [done]
Resolving possible unmet dependencies...
The following 15 packages will be INSTALLED:

dolphin kappfinder kde-minimal kdebase-apps kdebase-bin kdebase-data kdepasswd kfind konqueror konqueror-nsplugins kwrite libkonq5 libkonq5-templates libkonqsidebarplugin4 plasma-widget-folderview

The following 1 packages will be UPGRADED:

konsole

Need to get 5463KiB/5463KiB of archives. After unpacking 13.2MiB will be used.
Do you want to continue? [y/N/q]
->8-

And that's all, kinfocenter won't be installed.

Consequences:

1. This answer implies that you are not against installing kinfocenter if some other package needs it. So, while installing other packages which recommend kinfocenter cupt will suggest you to install kinfocenter again.

2. If you will want to upgrade the package, and the new version contains the same relation, cupt will not suggest to install kinfocenter.

Case 2. Forever

If the answer is "Because I don't want to see kinfocenter in my system ever", then the good choice is APT pinning system.

Place the next three lines into your APT preferences file (usually, /etc/apt/preferences or any file in /etc/apt/preferences.d directory):

-8<-
Package: kinfocenter
Pin: version *
Pin-Priority: -10000
->8-

-10000 is a very low priority, usual priorities are (0 - 1000), so cupt will not ever suggest you to install kinfocenter because of soft (Recommends or Suggests) dependencies. Moreover, if in some actions cupt will need to choose between, say 'kde-virtual kde-virtual-alternate', where kde-virtual depends on kinfocenter and kde-virtual-alternate does not, then cupt will choose kde-virtual-alternate. The exceptions possible in (very unlikely to happen) cases, when non-installing kinfocenter will result in very bad solution for selected actions. The less priority kinfocenter has, the less chances it has to be installed when not requested explicitly (as in 'cupt install kinfocenter').

15 April 2010

Bernd Zeimetz: gimp-plugin-registry package updated

Yesterday I finally found the time to update gimp-plugin-registry, the (hopefully!) largest and best collection of plugins for The GIMP. As usual here comes a short summary of the changes: Hope you like my work, suggestions and bug reports are welcome as usual!

Steve Kemp: Planning to be surprised when you deliver?

I'm constantly amazed by how blas electricians are with regard to live voltage. I'm used to mixing with software developers, who have a healthy fear and respect for "hardware", or physicists who're a very cautious bunch on the whole. A week or two ago I developed a leak in my flat's roof, which lead to a small amount of minor water damage and a failure in my lighting. I've had a couple of people out to look at it, and they all seem quite happy poking around with the (potentially soggy) electrical cables without me disconnecting the ring / main supply. Still I guess they must know what they're doing; they've not previously been killed ... ObFilm: Juno

Joachim Breitner: A mathematician s status symbol

While writing my diploma thesis, I often wished I had a blackboard in my room: A place to quickly scribble some ideas on, somewhere where I can easily erease and replace stuff. Also, somewhere where you can literally (and not just figuratively) step back from and look at from the distance. For my 25th birthday, my parents organized a discharged part of a blackboard from my old scool, and yesterday, we installed it in my room in Karlsruhe:
A blackboard in my room
Although my diploma thesis is finished, I m sure it will be a nice and useful piece of furniture, and if only to draw funny things on (as my girlfriend did on this picture).

13 April 2010

Gunnar Wolf: Regarding the fatal cycling accident in Ciudad Universitaria

My blog is written in English, even though I sometimes post content relevant locally. Anyway, I want this to be as widely known as possible. We are about to launch a website/community for my University's cyclists, BiciUNAMonos. Please note the site I'm linking is still very preliminary in several ways. But that's the least relevant for now. I am translating here a message written by fellow cyclist (and researcher in the Institute of Astronomy of my University) Sergio Mendoza.
Regarding the fatal cycling accident in Ciudad Universitaria Yesterday night I got home, and was quite surprised to open my mailbox and find a considerable amount of messages under the subject Urgent: Fallen cyclist! I immediately noticed something was very wrong, and was surprised they were contacting me. When I decided to read the first such message, I realized what happened: Dr. Jorge Villanueva was run over by the Puma [internal University service] bus number 14, route 2, which was being driven over the speed limit. This happened last Sunday, April 11. On Sundays, all of Ciudad Universitaria becomes a cycling and running circuit. I was immediately brought back to the moment that, when I was leaving my office in the Astronomy Institute and heading towards Cerro del Agua avenue, a lady driving over the speed limit on the circuit that comes from Metro Universidad threw her car at me. I saw her at a few centimeters distance from her windshield... To the day I don't know how I pulled my bike away, as I was going to hit the windshield with my shoulder. Everything happened in slow motion, I just heard several cars honking at this imprudent lady. I didn't have a scratch, but got excessively close to getting a strong hit, and with the adrenaline raging I gave a kind caress with my closed fist to her brand new car. I had to free my adrenaline somehow... My legs were trembling when I tried to pedal. I told her, lady, I am excessively visible in my bike, why did you do this? , she didn't answer, she just looked despectively at me. This kind of accidents happen every day in the University and its main entries. Precisely today, a University professor threw his car at me entering the University via Cerro del Agua. When I reached him and confronted him, he told me completely sure of his words that I was invading the lane with my bike, and that it was my fault. Anybody would have thought a car-driving university professor is capable of reading the Metropolitant Transit Regulations that clearly states on its 1st article: The priority for using the public space, for the different transport modes will be according to the following priorization: I. Pedestrians; II. Cyclists; III. Users and providers of massive, collective or individual public transport service; IV. users of particular automotor transport; and V. users and providers of freight transport. We are now organizing to put up the first ghost bike in Ciudad Universitaria. This happens few days before the formal inauguration of BiciUNAMonos, the universitary association of urban cyclists; we will do this remembering our university mate. I see every day more people in the University hitting their bike pedals to get to their faculties, centers and research institutes, but what is striking is the lack of University infrastructure. The few cycleways we have are built to use a bycicle system that is open only until 16:00. It is good, but it is in no way useful for those of us who use the bike every day and at every hour, no matter the weather. The main problem lies at the communication points, when cyclists arrive from outside Ciudad Universitaria and have to take the regular circuits to reach the cycleways. The Transit Regulation, in the 1st article I quoted above, defines in an excellent way the priorities that must exist to allow human movility. In this regard we have to mention that:
  1. The pedestrians must be enormously protected with walkways and semaphores to allow them to safely walk. In Ciudad Unviersitaria there are many places that don't even have a walkway or semaphores, and drivers do not respect the pedestrian's preference. Also, now in the central area of Ciudad Universitaria we have the Pumabus system on a confined lane, providing an excellent service to the pedestrians to move within the campus.
  2. The cyclist comes next in this priorization, but there is nothing obvious for him. There are a couple of cyclist ways, usually invaded by pedestrians, and explicitly made to use the Bicipuma system. Cyclists need their own lane for circulation in the Universitary circuit; pedestrians have walkways, Pumab s has its confined lanes, but the cyclists still lack it. The third lane that remains is precisely for the IV and V entries in the Metropolitan Transport Regulations. They can perfectly share the remaining lane in the campus.
The last thing I wanted was to formally announce BiciUNAMonos reminding a fallen cyclist and dedicating a ghost bycicle to his memory in Ciudad Universtiaria, but we don't have a choice. We have to make it very clear to the University community that the bicycle is the best transport system, and that the drivers' imprudence inside Ciudad Universitaria must be strongly punished. Sergio Mendoza
President
http://www.biciunamonos.org
Coincidentally, today I also had a freightening experience. Taking one of my usual routes to work, going up from the sporting area in the Western half of the campus (just before where the map lists the highest point in my ride), just by Investigaciones Biom dicas, I heard a car hitting the breaks behind me and passing me (on my right side) quite narrowly. I was, as always, driving towards the center of the lane, to be able to respond to unforseen events (as this one, precisely). The Universitary authorities had the great(?) idea of placing round, small bumps before the Pumabus stations to avoid drivers parking in front of them. I have seen a strong accident caused by them, and was close to suffering one myself some months ago. I know that just after Biom dicas there are some such bumps, so I never ride too much to the right I don't know what was on this driver's head. Ciudad Universitaria has a 40 Km/h speed limit. Yes, it might seem too low - Circuits are wide and well planned. But there is a lot of cyclist and pedestrian transit, at all times, and I must recognize such a limit is well in place. I often take a longer route to my Institute, bordering the University along Av. Delf n Madrigal. People tell me I'm crazy, as this is an avenue that's often taken at high speed - Usually, cars pass me by between 60 and 80 Km/h. However, I even feel safer going that way than going inside the University. Contrary to the popular belief, Universitary people do not have better driving habits than the bulk of the population. And it's often much easier to drive along a way where the traffic even if it goes at three times my speed runs only in one direction, unlike the swarming of people going in every possible direction inside the main campus. Anyway, last Sunday we lost a University professor, we lost a cyclist. Some people lost a friend, a family member. We have to make this case well known, we have to speak with the authorities so they see the Bicipuma system is good, but not enough. Cycling is the only way to go for a city as complex as ours. A much needed first step is to allow proper vial connections linking the University and the many avenues that surround it. Another one is to make a campaign so the cyclists are not seen as Sergio regards as intruders in the streets The street belongs to us all. Cyclists should never drive on walkways or among pedestrians. Drivers need to learn to share the streets with us.

11 April 2010

John Goerzen: Final comments on our trip to Europe

I wrote a lot about our trip to Europe here, and I had a few more comments to share. I had a great time there. It was fun to stay with people, and it was also fun to explore cities on our own. I am eager to be able to go back. Communication
I ll admit I wasn t sure how I d do there. I speak only a little German, and no Czech at all. I have never been in a situation in which I don t speak the dominant language, and this is probably typical for Americans. (I m not going to count the few exceptions of eating at small Mexican restaurants in the USA where the staff speaks little English, as it s not really the same experience to be in that situation for an hour or two.) I was most apprehensive about our time in Berlin and Prague. In those cities, we didn t know anyone. And, although I speak a little German, I speak no Czech at all. In the end, though, it all worked out fine. I never saw anyone get frustrated with us for our lack of language knowledge, and we also never got rattled. With patience and a bit of ingenuity, we figured things out in every different situation. I feel a sense of accomplishment from that, and I think it s left me more ready to travel in the future. And, I d also have to say, that was one of the most interesting lessons of the trip: how two people that don t share a common language can still communicate. It might be slow, but it s also rewarding and easier than I might ever have thought. I remember particularly buying a couple of fragile carved wood souvenirs at the Zeidler Holzkunst (wood art) shop in the Altes Rathaus in Leipzig (Seiffener Volkskunsterzeugnisse was on the window). The shopkeeper spoke no English. We were interested in some rather fragile items, and I wanted to ask her if she could pack it in a box. I didn t know the German words for pack or box . So after a couple seconds thought, I realized I knew how to tell her, in German, that we re from America. And then I asked, Can you? (in German) and gestured for a square box, figuring maybe she d put it together that we d need to pack it well to take it home with us. Success. She quickly produced a box, and asked if that s what we wanted. A few minutes later, a bit of pointing towards the glass case communicated what we wanted to buy. It took a little longer than it would have from someone that spoke English, but this was more rewarding in the end. The train station in Prague was another challenge. It didn t have nearly as much English signage as other train stations we d been in. We did a little wondering around, and some educated guesses, and a brief English conversation in a bank, we eventually found an ATM, a place to change the big bills for smaller ones, and a Metro ticket shop that was open. Clothes Many Americans, and American travel books, suggest not wearing jeans and tennis shoes in Europe. Many commented that people dressed more formally in Europe. That advice appeared to be rather wrong, especially in L beck, where it appeared that many people dressed less formally than in the USA. As we went south and east, we saw fewer jeans, but still they were rather common. Our biggest blunder here was probably the shoes that we brought for Terah. She brought some shoes that looked nice, but weren t very good for walking. She wound up with some painful blisters on her feet, and wished she had just brought her regular tennis shoes. Luggage and Packing We try to travel light when we can. All of our luggage for the entire trip fit into two carryon-size suitcases, though we sometimes separated some items out into a backpack for ease of use in airports/airplanes. This worked out about right. We did laundry once in Germany so we didn t have to pack enough clothes for the entire trip. As far as electronics go, we brought along an international GSM phone from onesimcard.com, my Droid (which could use Wifi but not GSM), Terah s iPod Touch, a GPS, my digital camera, and a laptop. That also was about right. We used the Droid to call back to Indiana to check on the boys, using SIP over WiFi for free calling via Google Voice. The laptop is a small one, so didn t add a lot of weight or bulk. It was nice to have to check out maps and Facebook. The GPS was somewhat less useful than I had anticipated. I had pre-loaded it with street-level maps of most of Europe, and also put on it points in Berlin that had been suggested to us. The transit maps were really more useful most places, especially when combined with a detailed street-level map. In Berlin, though, the detail on the street-level map from our hotel was somewhat lacking, so the GPS came in handy. It was also nice to quickly be able to see where the nearest S-Bahn and U-Bahn stops were, then cross-referencing with our transit map to figure out how to get where we wanted to go. One night in Leipzig, after a concert at the Gewandhaus, we made a couple of wrong turns on our way to a tram stop. The GPS would have saved us 15 minutes of walking had we brought it along, but we figured it out with our street map and it wasn t really a problem. Rick Steves is a big advocate of money belts when traveling. These are a belt with a zippered pouch, and are worn under your pants (though over your shirt, if it s tucked in). The idea is that it s hard to pickpocket. He suggests having a days worth of cash in a front pocket, and passports and larger bills in the money belt. We brought one but never used it. I kept small cash in my pocket, and we kept passports and my wallet (with larger bills) in Terah s purse, which was on a strap around her neck, zippered shut, and held under her arm. We had no problems. I tend not to keep my wallet in my back pocket even when traveling in the USA. Also, the hotels we stayed in had safes, and the residences were of course plenty safe, so we had no problem leaving valuables there. I brought only a single lens for my Digital Rebel XTi, a 28mm fixed lens that is small and light. That was just fine, and I was happy to have a fixed lens for photography in dark churches. Also, I wouldn t have wanted to carry around a bulky zoom lens all over. We sometimes took the camera with us, and sometimes not. In Berlin in particular, we just left it in the hotel room. I figured (correctly) that there would be plenty of photos on Flickr of the sites we were visiting, and we could just enjoy the time a little better if we weren t worrying about a camera too. But I was glad to have it along. Transportation The transportation systems in the cities we visited felt more, well, balanced than they often are in the USA. It s not that there weren t busy car-filled avenues, but more that there were also quiet shopping streets where cars were banned. Cars often seemed to be more of an option than a necessity, and not always the best option at that. Public transportation was common, as were pedestrian routes and bicycle lanes. The only American city I ve visited that felt even close to this approach was Portland, OR. I wish we adopted it more often here. I also admire the German intercity rail service, operated by Deutsche Bahn. You can get all over the country pretty quickly. The trains we rode on were quiet, smooth, and timely. I wish we had that kind of service in more parts of the USA.

Christian Perrier: [life] Paris marathon 2010~bubulle-1 ACCEPTED

Upload accepted by organisers. Upload time has been 3h49'29" (my watch says 27", eh!). That was a good one, really (actually, I can compare to only 3 as it was my fourth marathon after Paris and Cologne 2009, plus the unofficial Rambouillet Forest marathon I ran alone 6 weeks after Paris 2009). For marathoners around, here are the chronometric data. Please note that GPS watches tend to overestimate the distance, mostly because of the jerky way one runs in mass events, as well as geometric considerations related to the imprecision of GPS (imprecision may be lateral and thus the line recorded by the watch is often less straight than the real one). For instance, according to my watch, Paris marathon was 42.63km long, so an overestimate by nearly 500meters. As a consequence, the recorded speed of 5'23"/km should be corrected to 5'25". So, times below should be increased by 2 seconds. As a conclusion, even though I can improve the pace and avoid going too fast in the first 25km, I'm very happy as I avoided nearly collapsing as I did last year (with sometimes over 7'00/km and a few walks). Going back home was OK and I had no cramps and I still haven't any. This is also what one gets when preparing well. My only regret is that I didn't run over 30km since, indeed, Cologne Marathon! That made the difference in the last 12 kilometers, obviously. Having spent the winter on many half-marathons (either alone, or a few officials) clearly improved my "performance" up to 25km. For the next marathon (a marathoner always thinks about the next one), I need to have 1 or 2 long trainings a few weeks before. Now, I have to find out which one will be the next one... and I wish good luck to my friend No l K the, who is preparing the Mainz marathon for May 9th as well as Dirk who's certainly preparing another one. Guys, rendez-vous is of course for Debconf10 in NYC. We won't run a marathon for sur, but how about an half one? :-)

7 April 2010

Debian News: Brief Updates: helping the release team, deb.li, linear algebra libraries and upcoming deadlines

6 April 2010

Sylvestre Ledru: Update of the linear algebra libraries in Debian

In the numerical computing world, the cornerstones libraries are BLAS and LAPACK. They have been used in most of the numerical software for decades (like Scilab, R, numpy, OpenOffice with calc, etc). During that time, many implementations appeared to improve the performances taking advantages of clusters, multicore, SEE 1,2,3,4 , various levels of cache...
Between the reference BLAS (refblas) to an optimized one like ATLAS or MKL (Math Kernel Library by Intel - non-free), it is not rare to have a 15 factor. In Debian, we use by default the reference implementation of BLAS (168 reverse dependencies) and LAPACK (178 reverse dependencies). If the results are usually bad, they are pretty easy to use. What is hard to use, is switch between highly optimized libraries.
For now, the main one in the archive is ATLAS. ATLAS build process will launch many computations to know what will work best on the architecture. Results are usually excellent. 1) Upload of a refactoring of the ATLAS package.
I have been working on this for a while and after 19 uploads into Debian Experimental and I am happy (and kind of relief) to upload into debian unstable the release 3.8.3 of ATLAS. The new key elements in this release are: Note that, as before, all prebuilt binaries of ATLAS will be always slower than if you built them on the target architecture (but using Debian binary packages will save a few kilograms of Uranium). And one of most important feature is the capability to switch to any ATLAS implementation. 2) Switch between the different implementation
The problem in Debian (and Ubuntu) was that it was hard to switch between the ref BLAS/LAPACK and the optimized libraries. The user has to play with the LD_LIBRARY_PATH to use the various optimized packages and since there is no convention between the various distribution, the upstream developer has to develop crappy tricks to handle such things. It is why I implemented the following proposal: Handle different versions of BLAS and LAPACK. The main idea is to use the update-alternatives system to allow a quick and easy switch. For example:
# update-alternatives --config libblas.so.3gf 
There are 3 choices for the alternative libblas.so.3gf (providing /usr/lib/libblas.so.3gf).
  Selection    Path                                           Priority   Status
------------------------------------------------------------
* 0            /usr/lib/atlas-core2sse3/atlas/libblas.so.3gf   55        auto mode
  1            /usr/lib/atlas-base/atlas/libblas.so.3gf        35        manual mode
  2            /usr/lib/atlas-core2sse3/atlas/libblas.so.3gf   55        manual mode
  3            /usr/lib/libblas/libblas.so.3gf                 10        manual mode
# update-alternatives --config liblapack.so.3gf
There are 3 choices for the alternative liblapack.so.3gf (providing /usr/lib/liblapack.so.3gf).
  Selection    Path                                             Priority   Status
------------------------------------------------------------
* 0            /usr/lib/atlas-core2sse3/atlas/liblapack.so.3gf   55        auto mode
  1            /usr/lib/atlas-base/atlas/liblapack.so.3gf        35        manual mode
  2            /usr/lib/atlas-core2sse3/atlas/liblapack.so.3gf   55        manual mode
  3            /usr/lib/lapack/liblapack.so.3gf                  10        manual mode
Thanks to this, it is just trivial to switch from one to the other... Conclusion:
I just pushed the changes into Debian unstable for blas, lapack and atlas.
I have been testing a lot these deep modifications and I fixed all the problems that I found. However, in case I missed something, please report a bug...

5 April 2010

Lucas Nussbaum: Apply for the Google Summer of Code at Debian even if you are already a Debian Developer!

The Debian GSOC admins have made it clear that it is possible for DDs to be selected as GSOC students (even if people who are not Debian contributors will be prioritized). So, if you are a student, a Debian Developer, and interested in getting paid to work on Debian during the summer, it s a very good idea to apply! For the details, see this blog post. Note: the goal of this post is not to start a flamewar, but to make sure that everybody is fully aware of the unrestricted selection process. Since we are going to accept DDs as students anyway, let s at least try to get the best applications.

John Goerzen: Thougts about the Europe visit: Water

This is probably the only real surprising to an American post I ll be making, because it was the little thing that was most surprising. And that despite the fact that I had been warned:
Don t expect to get a glass of tap water at a restaurant or caf ; it s an unusual request that probably won t be understood or honoured. Lonely Planet Germany
Now, before I go on, I want to clarify that this post is NOT a complaint of what I saw in Germany and Prague; it s just a description of how it was surprising to these American eyes, and perhaps also a description of how the American approach such a mundane topic might be surprising to people from elsewhere. (Update: I want to clarify that I only visited 3 cities in Germany plus Prague. I don t want anybody to assume that I m making generalizations about the entire continent here, despite my title; I think the comments reflected that I didn t make this point clear enough. I lack data to draw much of any generalization at all; this is more of reporting on my experiences than anything else.) Utilitarian Water I noticed that the vast majority of toilets I saw in Germany and Prague are of the extremely water-saving variety, with an option for a small or a large flush. These toilets exist in the USA, but are still rather uncommon here. I was glad to see this attitude of conserving water. I was a bit surprised when I took a shower at our hotel in Berlin. Although that hotel was extremely environmentally-conscious in every other way including the toilets, light switches with RFID sensors and timers, etc the shower head was the most wasteful of water I had seen in quite a few years. I felt rather guilty of using so much water for a shower. But our hotel in Prague took shower heads to the next level. The shower head there was this huge square monstrosity, about a foot long on each side. I have never seen a shower head that big. It had a voracious appetite for water, too. Although it could be pointed in any direction, doing so was useless because, even at full blast, it was clearly getting not nearly enough water to propel the spray forward. It seems that this shower head needed special water-guzzling plumbing. But even without it, I felt even more guilty for showering in Prague. I suspect that I used more water for the two showers I took there than I would have over an entire week at home. I also very much suspect that this shower head would be illegal in the USA due to its water consumption. (I should note as an aside that the shower heads I saw in private homes were no different than American ones.) One thing I didn t see was lawn sprinklers. This may have been because there is less open grass in the places we visited, or perhaps because spring hadn t yet really hit. In any case, I wonder if our American habit of pumping water from deep beneath the ground, only to shoot it up in the air and spray it back on the ground again might appear a bit odd to others. Drinking Water In Restaurants We did a lot of walking in Europe, and sometimes we d have walked awhile to get to a restaurant. I really prefer water when I m thirsty, and ordered water with my meal at restaurants a few times. I stopped doing that, though. The presentation varied, but usually it went along these lines: they brought a glass bottle to the table, it cost EUR2 EUR5, and generally contained almost as much glass as water. The most impressive display of water was at a Berlin restaurant. I wanted some water, and so did Terah. So the waitress suggested we could share an EUR 4.90 bottle (0.75L). Sounds good, I guess although it s less water than you d get in a typical American bottle for one person, it seemed a lot by typical German restaurant standards. A few minutes later, our water arrived. It required the waitress to use a full tray to deliver our water and its, well, water accessories. First she carefully placed a frosted plastic water holder, precisely centered on the table between the two of us. Into this, she carefully placed the water bottle. It was, of course, made of glass, and also tall taller than most wine bottles, though containing less actual liquid. I am not yet sure of the purpose of the holder; it certainly wasn t to keep the water cold, as it was served warm. Perhaps they feared the bottle s impressive height acting as a sail and getting knocked over by a gentle breeze. In any case, next came our water glasses, which appeared to be exactly like wine glasses, but bore the logo of the company that bottled the water etched in the glass. After that, she picked the water bottle back up out of the holder, carefully opened it (it was just a regular twist-off lid), and then poured water into each of our glasses. She was careful not to have even a drop run down the side of the bottle, and filled each glass precisely 2/3 full. The glasses were, of course, positioned carefully on the table, and the bottle of water returned to its place of honor within the water bottle holder. This process consumed most of the small quantity of actual water in the bottle. I do believe that is the most elaborate presentation of a small amount of good ole H2O I have ever witnessed. It was made with the kind of care I would expect to be shown to someone that had just bought a $100 bottle of wine, not a EUR5 bottle of water. We had walked a mile (1.6 km) to get to that restaurant, and I was indeed a bit thirsty. I wasn t sure I wanted to drink all of my tiny quantity of water presented so elaborately all at once, so I had a sip of the beer I had the good sense to order along with the water. The beer, incidentally, cost roughly the same per liter as the water and was simply plonked down on the table with a complete lack of fanfare. Sadly, beer is not really very good for quenching thirst, due to its diuretic effects over time. Another surprise came at a restaurant in Prague. It appeared to have the typical prices for water, so I ordered a local Czech orange soda to drink. It, like the water, was served in a smallish glass bottle. In any case, I ordered a traditional Czech goulash to be served in a bread bowl, while Terah ordered some ribs. The waiter took our orders and menus, and returned a minute later bearing a bowl full of water and a lemon slice. This he put next to me, and announced, wash for you. My reaction was: Hmmm. This is different. (Which is why we went to Europe, after all!) What is this for? Did he think my hands looked dirty and needed to be washed before eating? Or did he think I would get them dirty while eating, and somehow fail to use my napkin? It turned out that the use of it became clear. I ate the goulash using the supplied spoon, but the bread bowl it was served in was of course edible too. It turns out it is pretty much impossible to eat a bread bowl that had contained a stew without getting your hands dirty, and the wash turned out to be quite practical and useful. It was free to wash my hands in, but I m sure would have cost EUR5 had I wanted to drink it. Drinking Water American Restaurants Some of you reading this may never have experienced water in an American restaurant, so allow me to explain. In a typical American restaurant, water is free and comes with unlimited refills. Americans generally think of water as healthy (and our doctors and government medical experts urge us to drink plenty of it), and water in a restaurant is a good way to save money while dining. It would generally be considered questionable service if your glass of water at a restaurant got less than half full, and really quite bad service if it sat empty for more than a minute or two. A waiter at an American restaurant will typically go around with a pitcher of ice water. If your large water glass isn t completely full, the waiter will pick it up and step a few steps back from the table before filling it from the pitcher. The waiter will then dump water and ice from the pitcher into it, usually overflowing the top such that some water and ice spills on the floor (so now you see the point of stepping back from the table). The glass will then be returned to your table, wet sides and all. It will be completely full, so you have to be careful not to spill when you take your first sip. The fancier or more expensive American restaurants will offer a version of this, though without the spilling on the floor part. Usually at one of these restaurants, you ll automatically get water set out for you when you arrive. This is free, and if you order another beverage, you ll still keep your water. (Though at any restaurant, it would be quite acceptable to order water along with your other beverage.) Needless to say, this water is coming from a faucet, not some glass bottle, but I m fine with that. A few American restaurants have bottled water on the menu, but I can t recall ever seeing somebody with one in a restaurant. Drinking Fountains Drinking fountains are common in the United States. They provide free tap water to anyone. You can find them near almost any public restroom, whether indoors or outdoors. You can also find them in virtually every park, along some walkways or bicycle routes, in airports and train stations, and even in museums. They re so common that I rarely even think about being able to find water in a city if I m thirsty. Often you ll find them installed in groups of two or three, with one at a lower height so as to be usable by children or adults in wheelchairs, and another at a regular height. Many indoor ones even contain integrated chillers to make the water cold (which, sadly, probably more than negate the environmental benefits of water fountains.) I saw exactly two drinking fountains in Europe, and I can say I got a drink at 100% of the drinking fountains I saw there. One was in the Hamburg airport, but notably it was at the place where you wait to have them check your passport. So you can use a drinking fountain in Hamburg, but apparently you must do so before you have officially entered Germany. The other one was in the Prague airport. It was in an out-of-the-way corner, on the lowest level, by the gates for the people that are flying out on the small planes. Which we were. Above it was a placard bearing a icon indicating that this was, in fact, a drinking fountain and how to use it. I was surprised at the need for the icon at first, but less so after I observed a man walk by, glance at the fountain, and wash his hands in it (rather than do so at a sink in the restroom 5 feet away). As a result, we were sometimes a bit thirsty in Germany. By the time we got to Leipzig, we realized what was going on and bought a Coke bottle which we could refill from the tap water in restrooms as we went along. (This we kept until it was confiscated at a museum in Prague). I didn t see many Germans carrying around bottles of water, but it was still cold, so it s possible they were but were in a coat or bag. I was left with the somewhat unwarranted conclusion that some Germans must be either always slightly dehydrated, carrying around hidden bottles of water, or paying EUR2 for a small plastic bottle of water all the time. In the USA, we do have bottled water. Among people that care about such things, there are certain people that drink only from bottled water as much as possible, and then there are other people that view bottled water as exceptionally expensive and an environmental catastrophe and avoid it as much as possible. I m part of that latter group. I ve noticed that statistics show that Germans consume more bottled water per capita than Americans do, which is not really a surprise given what I observed. Conclusions Part of the reason I wanted to go to Europe was to experience different approaches to things, and we surely did. I didn t expect it to lead to a blog post about something as mundane as water, but here it has. I ve got to say I like the overall attitude of water conservation in Germany, which seems to have gone further than it has in the USA. I also like the system of water fountains we have in the USA, which also helps the environment by reducing demand for plastic water bottles. The wash for me in Prague was just great. One of those moments where I was completely surprised (and in a good way) by something. (I m just glad the waiter spoke a bit of English, because I wouldn t have figured it out at all otherwise.) In the end, part of the fun of traveling is learning about these differences. So next time, we ll just plan on finding a bottle to carry around at the start of our trip, and then thirst won t be a problem. Perhaps I ll even try washing my hands in a drinking fountain.

3 April 2010

Bernd Zeimetz: deb.li - the Debian ShortURL Service - beta test

After several other Debian developers convinced me that a ShortURL service, which is under control of a Debian Developer would be useful for them, I've spent some time to write the necessary code for it. And if it will be used regulary, I'll ask DSA if they want to host it on a proper machine. So I'm happy to announce the public beta test of deb.li (also available under go.debian.net)! Please note that neither the content of the pages nor the CSS is finished... :) As this should not become just another random, spammer-attracting ShortURL service, I will not provide a web based form to add new URLs. Instead new URLs have to be added via a simple JSON-RPC based interface. Other ways to add new URLs will be added on request (or by sending patches ;)), at least an email-gateway similar to db.debian.org is planned. The small piece of documentation which exists so far is available at wiki.debian.org/deb.li And if you want to give it a try now, log into alioth.debian.org and have a look into
/var/lib/gforge/chroot/home/users/bzed/godebian-client
- the usage is documented in the README file and should be pretty straight forward. I hope it will be useful - comments, bugreports and patches are welcome!

31 March 2010

Erich Schubert: ELKI 0.3 released

ELKI: Environment for DeveLoping KDD-Applications Supported by Index-Structureshas been a major part of my research the last one and a half year. In a few words, it's a Java environment for research on data mining algorithms.In reality, it's a huge piece of software, providing various data types, parsers, distance functions (including specialized distance functions for color histograms or time series; 20+ total), index structures and tons of algorithms (with a focus on clustering, correlation clustering, subspace clustering and outlier detection methods; 40+ total). And providing a way to plug all these together in just about any way you can imagine. In fact, some algorithms are implemented just by plugging together other algorithms and distance functions.The 0.3 release adds more than a dozen outlier detection algorithms (the total is somewhere like 16, with some extra ones I didn't get around to clean up for the release branch yet) and a whole set of visualizations and a new convenience GUI for easier parameterization.It's all on the ELKI homepage.If you know what WEKA is, then ELKI is probably also interesting for you. But currently, we do not have much classification in ELKI. If you are into classification, you'll be better of with WEKA. ELKI is aiming to be to Knowledge Discovery in Databases (you know, the unsupervised thing) to what WEKA is to the Machine Learning (you know, the supervised thing) world.If you don't know all these terms, you'll probably need to browse through some literature to get familiar with the concepts and some of the algorithms. ELKI is not (yet?) an application that will just work on whatever data you want to throw at it. RapidMiner is another established application that can help you there better.As for application in commercial use, note that ELKI is designed in a way to be extensible (to help us in research) and clean (to help in teaching; I constantly have some students use ELKI as base for their projects), and it also is a moving target. The next release will likely feature a completely new database layer, to allow us to add our latest index structure research and support online algorithms. Performance and the ability to scale to arbitrary sizes of data is not of high priority to us.So for commercial applications, you might want to implement it on your own, connect it to your favourite DBMS and optimize it how you need it yourself. (When we need to scale, we'll just run it on a 128 GB system, that will take us far enough). Plus, you'll have to talk to us about a license.But: if you are interested in unsupervised data mining, such as clustering and outlier detection, then ELKI might offer you are large library to base your research on, without having to start from scratch with everything.

30 March 2010

David Welton: Where Tcl and Tk Went Wrong

I've been pondering this subject for a while, and I think I'm finally ready to write about it.
Tcl was, for many years, my go-to language of choice. It's still near and dear to me in many ways, and I even worked on a portion of a book about it ( http://journal.dedasys.com/2009/09/15/tcl-and-the-tk-toolkit-2nd-edition ). However, examining what "went wrong" is quite interesting, if one attempts, as much as possible, a dispassionate, analytical approach that aims to gain knowledge, rather than assign blame or paper over real defects with a rose-colored vision of things. It has made me consider, and learn, about a variety of aspects of the software industry, such as economics and marketing, that I had not previously been interested in. Indeed, my thesis is that Tcl and Tk's problems primarily stem from economic and marketing (human) factors, rather than any serious defects with the technology itself. Before we go further, I want to say that Tcl is not "dying". It is still a very widely used language, with a lot of code in production, and, importantly, a healthy, diverse, and highly talented core team that is dedicated to maintaining and improving the code. That said, since its "heyday" in the late 90ies, it has not ... "thrived", I guess we can say. I would also like to state that "hindsight is 20-20" - it's easy to criticize after the fact, and not nearly so easy to do the right thing in the right moment. This was one reason why I was reticent to write this article. Let me repeat that I am writing it not out of malice or frustration (I went through a "frustrated" phase, but that's in the past), but because at this point I think it's a genuinely interesting "case history" of a the rise and gentle decline of a widely used software system, and that there is a lot to be learned. At the height of its popularity, Tcl was up there with Perl, which was the scripting language in those days. Perl, Tcl, and Python were often mentioned together. Ruby existed, but was virtually unknown outside of Japan. PHP was on the rise, but still hadn't really come into its own. Lua hadn't really carved out a niche for itself yet, either. Tcl is no longer one of the popular languages, these days, so to say it hasn't had problems is to bury one's head in the sand: it has fallen in terms of popularity. To examine what went wrong, we should probably start off with what went right: These features led to Tcl being widely used, from Cisco routers to advanced television graphics generation programs to the AOLserver web server, which was busy serving out large quantities of dynamic web pages when many of us were still fiddling around with comparatively slow and clunky CGI programs in Perl. Note also that there have been a lot of cool things to have gone into Tcl in the mean time. It has a lot of impressive features; many more than most people realize, and has had a lot of them for a while. Check out http://www.tcl.tk to learn more about the "good stuff". But that's not the point of this article... There was a healthy, active community of developers producing lots of interesting add-ons for the language, and working on the language itself. This culminated in its adoption by Sun Microsystems, which hired the language's creator, Dr. John Ousterhout, and a team of people, who added a lot of great features to the language. Quoting from Ousterhout's history of Tcl page:

The additional resources provided by Sun allowed us to make major improvements to Tcl and Tk. Scott Stanton and Ray Johnson ported Tcl and Tk to Windows and the Macintosh, so that Tcl became an outstanding cross-platform development environment; Windows quickly came to be the most common platform. Jacob Levy and Scott Stanton overhauled the I/O system and added socket support, so that Tcl could easily be used for a variety of network applications. Brian Lewis built a bytecode compiler for Tcl scripts, which provided speedups of as much as a factor of 10x. Jacob Levy implemented Safe-Tcl, a powerful security model that allows untrusted scripts to be evaluated safely. Jacob Levy and Laurent Demailly built a Tcl plugin, so that Tcl scripts can be evaluated in a Web browser, and we created Jacl and TclBlend, which allow Tcl and Java to work closely together. We added many other smaller improvements, such as dynamic loading, namespaces, time and date support, binary I/O, additional file manipulation commands, and an improved font mechanism. Unfortunately, after several years, Sun decided that they wanted to promote one and only one language. And that language was Java. So Ousterhout and many people from his team decamped to a startup that Ousterhout founded, called Scriptics, where the Tcl and Tk innovations continued:

In 1998, Scriptics made several patch releases for Tcl 8.0 to fix bugs and add small new features, such as a better support for the [incr Tcl] extension. In April 1999, Scriptics made its first major open source release, Tcl/Tk 8.1. This release added Unicode support (for internationalization), thread safety (for multi-threaded server applications), and an all-new regular expression package by Henry Spencer that included many new features as well as Unicode support.
However, as many a company based around open source was to find later, it's a tough space to be in. Scriptics changed its name to Ajuba, and was eventually sold (at a healthy profit, apparently, making it a relative dot com success story, all in all) to Interwoven, for the "B2B" technology that Ajuba had developed. Interwoven was not interested in Tcl, particularly, so, to create a system for the ongoing development and governance of the language, the "Tcl Core Team" was created. This was something of a blow to Tcl, but certainly not fatal: Perl, Python, Ruby, PHP, Lua have all had some paid corporate support, but it has by no means been constant, or included large teams. At the same time in the late 90ies, open source was really starting to take off in general. Programmers were making all kinds of progress, and had begun to make Linux into what is today the world's most widely used server platform, and laying the groundwork for the KDE and Gnome desktops. While these may still not be widely used, they are for the most part very polished systems, and leaps and bounds better than what passed for the 'Unix desktop' experience in the 90ies. One of the key bits of work that was added to Tk was to make it look pretty good on Microsoft Windows systems. This was in an time when the "enterprisey" folks were turning away from Unix in the form of AIX, Solaris, HPUX, et al. and taking up NT as the platform of choice, so it was in some ways sensible to make Tk work well there, and in any case as a cross platform GUI toolkit, it ought to work well there in any case. And, on the Unix side, Tk emulated the expensive, professional Motif look and feel that serious Unix programmers used. What could go wrong? As Gnome and KDE continued to mature, though, what would become one of Tk's major (in my opinion) marketing blunders took root. I have it on good authority, from someone who was there in the office, that the Scriptics guys working on Tcl and Tk viewed Gnome and KDE (and the Gtk and Qt toolkits) as not really worth their while. To be fair, since Tk has always been under a liberal BSD style license, the Qt toolkit has always been "off limits". Still, though, the attitude was that Tk was a standalone system, and since it ran on pretty much any Unix system, it didn't need to bother with Gnome or KDE. Gradually, though, as more and more people used Gnome and KDE exclusively on Linux, the Tk look and feel began to look more and more antiquated, a relic from the 1990ies when Motif (which has since pretty much disappeared) was king. Tk applications started to really stand out by not looking at all like the rest of the operating system. And, while Linux may not be responsible for a vast portion of the world's desktops, it is widely used by developers, who were turned off by the increasingly creaky look of the Tk applications they saw. Tk is and was actually a fairly flexible system, and it would have been possible to tweak the look and feel to make it look a bit better on Linux, without even doing any major work. Maybe not perfect, but certainly better looking. Nothing happened, though. Another problem was that Tk and Tcl made it so easy to create GUIs that anyone could, and did, despite, in many cases, a complete lack of design skills. You can't particularly blame the tools for how they're used, but there was certainly a cultural problem: if you read most of the early Tcl and Tk books, and even many of the modern ones, there are hundreds of pages dedicated to exactly how to use Tk, but few to none explaining even basic user interface concepts, or even admonitions to the user to seek out that knowledge prior to attempting a serious GUI program. The end result is that a lot of Tk programs, besides just looking "old fashioned" had fairly poor user interfaces because they were made by programmers who did not have a UI/design culture. Contrast that with Gnome and KDE, which have made a point of focusing on how to make a good GUI for their systems, complete with guidelines about how applications should behave. It may have taken them some time to get things right, but they have done a lot to try and instill a culture of creating high quality, well-integrated GUI's that are consistent with the system where they run. Lately, there has been a lot of work to update the Tk look and feel, and it has finally started to bear fruit. However, in terms of marketing, the damage has already been done: the image of "old, crufty Tk" has been firmly planted in countless developers' minds, and no amount of facts are going to displace it in the near future. Another problem Tcl faced, as it grew, was the tug-of-war between those wishing to see it small, light, and easy to distribute embedded within some other program, and those wishing it to become a "full-fledged" programming language, with lots of tools for solving every day programs. Unfortunately, that tug of war seems to have left it somewhere in the middle. Lua is probably more popular these days as an embedded language, because it is very small, and very fast, and doesn't have as much "baggage" as Tcl. Meaning, of course, that it doesn't do as much as Tcl either, but for a system where one merely wishes to embed a scripting language, without much 'extra stuff', Tcl's extra functionality is perhaps a burden rather than a bonus. On the other hand, while Perl was happily chugging along with their CPAN system for distributing code, giving users easy access to a huge array of add-on functionality, and Python was building up a "batteries included" distribution, that included a lot of very useful software straight out of the box. Tcl, on the other hand, chose to keep the core distribution smallish, and only lately has got some semblance of a packaging and distribution system, that is, however, run by ActiveState, and is (at least according to a cursory glance at the Tcl'ers wiki), not even fully open source. The lack of a good distribution mechanism, and, in the meantime, eschewing a larger, batteries-included main distribution left Tcl users with a language that, out of the box, did significantly less than the competition. Technically, a Python style "big" distribution would not have been all that difficult, so once again, I think this is a marketing problem: a failure of the Tcl Core Team to observe the "market", assess what users needed, and act on it in a timely manner. Somewhat related to the large Tcl vs small Tcl issue was one particular extension, or extensions to the language that was noticeably absent: a system for writing "object oriented" code. Tcl, at heart, will never be an OO language through and through, like Ruby or Smalltalk, but that doesn't mean that an OO system for it is not a useful way of organizing larger Tcl systems. Indeed, Tcl's syntax is flexible enough that it's possible to write an OO system in Tcl itself, or, optimizing for speed, utilizing the extensive C API in order to create new commands. Over the years, a number of such systems have arisen, the most well-known being "Incr Tcl" (a play on the incr command, which is akin to += 1 in languages like C). However, none of these extensions was ever included with the standard Tcl distribution or somehow "blessed" as the official OO system for Tcl. This meant that a newcomer to Tcl wishing to organize their code according to OO principles had to pick a system to use from several competing options. And of course, newcomers are the least able to judge a complex feature like that in a language, making it a doubly stressful choice. Furthermore, even experienced Tcl programmers who wanted to share their code could not utilize an OO system if they wanted their code to work with just standard Tcl. Also, if their code had a dependancy on some OO system, it would require the user to download not only the extension in question, but the OO system it was built on, which, naturally, might conflict with whatever OO system the user had already selected! As of Tcl 8.6, thanks to the work of Donal Fellows, Tcl is finally integrating the building blocks of an OO system in the core itself, but this effort is probably something like 10 years too late. Some other more or less minor things that have taken too long to get integrated in the Tcl or Tk distributions include the PNG format (still not there in a production release of Tcl), a readline-based command line (Tkcon is nice, but not a replacement for simply being able to type "tclsh" and get a nice, functional shell like Python, Ruby and most other languages have. This could easily lead to a bad first experience for someone trying out Tcl). Tcl also took too long to integrate a first-class hash type (accessed with the 'dict' command), which only appeared in 8.5. Its "arrays" aren't bad, but don't quite have the full power of a hash table as dict implements them. Once again, the code to do these things was/is out there, it has just been a matter of integrating it into Tcl and Tk, which has been a slow process. One actual technical problem that Tcl faces is the concept that all values must be representable as a string. This is more or less ok for things like lists, hash tables or numbers, but is problematic when the user wishes to represent a value that simply isn't a string. A basic example is a file handle, which at the C API level is a FILE*. How does Tcl get around this? It keeps an internal hash table with a Tcl-script accessible string, such as "file5" that points to a FILE * value that is used internally by file commands. This works pretty well, but there is a big "but": since you can compose a string like "file5" at any time, that must be able to access the actual file pointer, you can't do any sort of "garbage collection" to determine when to clean things up automatically. Other languages have explicit references to resources, so the program "knows" when a resource is no longer referenced by the rest of the program, and can clean it up. Therefore, the programmer must explicity free any resources referenced this way. This explanation is simplifying things somewhat, but it is something I view as a technical problem with Tcl. If you've been following along, you've noticed a lot of "these days" and "recently". That's because Tcl is still very actively developed, with a lot of new ideas going into it. However, if you look at the release dates, it seems that after Ajuba was sold off, and Ousterhout pretty much abandoned an active role in the language for good, placing it in the hands of the Tcl Core Team, there was a lull in the momentum, with Tcl 8.5 taking 5 years to be released. This is actually, in my opinion, an interesting phenomenon in languages: you risk hitting some kind of local maximum when your language is popular enough to have a lot of users who will be angry if things are changed or accidentally broken in the course of big upheavals. So you have to slow down, go carefully, and not rock the boat too much. On the other hand, there is an opportunity cost in that newer languages with less to lose can race ahead of you, adding all kinds of cool and handy new things, or simply fix and remove "broken" features. Erlang is another system that has, in my opinion, suffered from this problem to some degree, but this article is long enough already! Once again, though, not really a technical issue, but a problem with how the code was managed (and not an easy one to solve, at that). A Tcl failure that I was personally involved with was the web infrastructure. What went on to become Apache Rivet was one of the first open source Apache/Tcl projects, and was actually quite a nice system: it was significantly faster than PHP, and of course made use of Tcl, which at the time had a large library of existing code, and could be easily repurposed for projects outside the web (or the other way around: non-web code could be brought in to a web-based project). One thing I ought to have done differently with the Apache Rivet project was listen to the wise advice of Damon Courtney, my "partner in crime" on the project, who wanted to see Apache Rivet have a fairly "fat" distribution with lots of useful goodies. Rails and Django, these days, have shown that that's a sensible approach, rather than relying on lots of little extensions that the user has to go around and collect. The code was out there, I should have helped make Rivet do more "out of the box". A problem that is and it isn't: the syntax. Tcl's syntax is amazingly flexible. Since everything is a command, you can write new commands in Tcl itself - and that goes for control structures, too! For instance, Tcl has a "while" command, but no "do ... while". It's very easy to implement that in Tcl itself. You simply can't do that in most "everyday" languages. However, this comes at something of a "cost". The syntax, for your average programmer who doesn't want to go too far out of their comfort zone, is perhaps a little bit further afield from the C family of languages than they would prefer. Still though, a "human" problem, rather than a technical one. Perhaps, sadly, the message is that you'd better not "scare" people when introducing a new language, by showing people something that doesn't look at least a little bit familiar. Conclusions? First and foremost, that, gradually, Tcl and Tk continue to be improved. However, if one visits developer forums, there are also a lot of negatives associated with the Tcl and Tk "brands", and I am not sure if it will be possible to rectify that. So what can we learn from the rise and subsequent "stagnation" of Tcl?

29 March 2010

Dominique Dumont: V1.0: To release or not to release ?

Hello As the author of Config::Model, I ve often pondered whether my project was mature enough to be released as 1.0. After all, every time I seriously use it, I find new bugs or need to make it easier to use or even add some new features. So I thought that my software was not good enough for V1.0. Then again, all other software have the same issues: fix bugs, improve usage and follow user requirements. Then, I ve realized that wondering about software quality is not the right question. Sure, you need a decent quality level for 1.0. But the more important is not there. The most important is the compatibility pledge. Do I pledge to keep backward compatibility so people can rely on me and my software? Will I do my utmost to preserve the work done by others ? In fact, that s what I ve been doing for several months now, all the changes I ve made are backward compatible (even if warnings are issued) and people have a smooth migration path. So, yesterday, I ve released Config::Model V1.001. Ta-da ! :-D

28 March 2010

Stefano Zacchiroli: RC bugs of the week - issue 25

RCBW - #25 Last (long) week has finally passed: first in Geneve visiting Gismo, then in Sierre/Crans-Montana to present a paper at SAC 2010, then back in Paris for half a day before a day in Bruxelles for the 2nd year Mancoosi project review. (And of course campaigning has always been going on ...) All went fine and I can finally relax a bit for a week-end back "home" (i.e. Paris). Regarding RCBW, it looks like that in the past 2 months I've stabilized around 3 issues per month, which makes me happy nevertheless. Without any further ado, here are this weekissue's squashes: Random points:

John Goerzen: Trip part 5: Leipzig

Note: this post written on March 19 for posting after we return. We arrived at Leipzig surprisingly about 5 minutes late on Wednesday morning. My friend Brad was at the Leipzig Hauptbahnhof (central stration) to meet us. As we walked through the city with him, he commented that I hadn t yet tried Currywurst, and there was a stand selling them with different levels of spiciness. I tried one and liked it; Terah was afraid to touch them. After a light lunch with Brad and Anna, we went back into town and saw the V lkerschlachtdenkmal (Monument to the Battle of the Nations). We were warned that it was weird and ugly. And when we arrived, I noticed that it was enormous. And, well, somewhat ugly. And, yes, weird. IMG_2681 After that, we walked through the old trade fair grounds. Leipzig has a long history as a trade center, and after they built the new trade fair grounds, the old ones were reused for other things except for the old Soviet building, which is now both gaudy and abandoned. We picked up Fritzi, who is a very cute 4 years old, from preschool and returned to their house for supper. After that, Brad and I went back into town, intending to hear a reading at the old city pool. When we realized it was a different day, we walked around the city center for awhile and then had a beer at a yes combination cafe/laundromat. Thursday was our day to explore the city. Brad showed us a couple of buildings in the university, including the library, then dropped us off at St. Thomaskirche. That s the church where J. S. Bach was music director for many years, and was buried. Like so many, it was impressive in its height and history. IMG_2703 Next we went to the Stasi museum. The Stasi were the feared and powerful East German secret police during the Communist times. The museum itself was housed in the former Stasi headquarters for Leipzig and was involved with the history of the overthrow of the Communists. The museum covered a lot of the history of the Stasi, including its frantic last days during the 1989 revolution. The level of spying on people was incredible and sophisticated, and they tried to destroy records as the overthrow of the government was imminent. One of the offices in the inner part of the building was left untouched from the Communist years, right down to the typewriter and coffee machine. IMG_2717 After that, we went to the Altes Rathaus (old city hall or townhouse, built in 1556) to do a bit of shopping. Terah was wanting some souvenirs, and I had spotted a shop I thought she might like when walking through the city with Brad the night before. We had already bought some souvenirs at the Schloss Charlottenburg museum store in Berlin (some East German-style crosswalk fridge magnets, and a decorative egg), but wanted something a bit nicer for us and were on the lookout for gifts for others too. We wound up buying a wood carved church scene with a woven wheat tree for us, and another item for others. The shopkeeper spoke no English, and my German vocabulary is small, but we managed to communicate the question of whether or not she could wrap it up in a box for our trip home and she could, and did. Excellent. (I didn t know how to ask about box, but knew how to say that we were Americans, and with a fair bit of gesturing all around, managed to get the idea across.) Then we went in the Altes Rathaus itself, which was both a museum and an interesting cultural experience. We bought our tickets at the booth downstairs, then went upstairs to the entrance. We asked for the English audio guide, which is very common at museums in Germany. (They are small digital audio players that contain recorded information; each room or display has a number you can key in to hear about it in your own language.) We got it, and were told in incredible detail how to use it, even though they are quite easy to figure out and we had used them before. The museum employee told us where the audio tour starts, and in what order it usually goes, which was an effort for her given her limited English. But we all understood and went on our way. It wasn t even 5 minutes later when she had left her desk and came over to us. She was slightly alarmed at two things: one that we didn t have the volume at full blast (which was loud enough for the entire room to hear), and secondly that we weren t looking at the exhibits in the proper order. Never mind that it s easy enough to pull up the audio information about any room just by keying in the number posted in it, I guess. Anyhow, we sort of inwardly shrugged, let her turn the volume up to potentially disturbing the other visitors level, and went through the museum in the order she wanted us to. (Note that this wasn t a museum where there is a one-way flow of traffic or something; you walk into one exhibit, back to the main hall, and then pick your next one.) So we went through the rest of the museum with our English audioguide blaring throughout the large, echoing, wood rooms, feeling a bit rude to the other visitors (maybe 5 of them while we were there) due to its volume. Anyhow, the Altes Rathaus was beautiful and interesting, covering mainly the pre-industrial history of Leipzig. We learned about some of the guilds, the city treasury (vault), and where the town council/parliament met along with rich merchants. There were about as many museum guards as visitors there, and one or two of them sort of followed us around, pointing out the large and completely obvious signs with audio guide numbers in the rooms for us. They are serious about their audio guides in Leipzig. I m glad we went, and I m glad we had the experience we did, too. Terah told me later that she felt reprimanded about the audio guide and visiting order. My take on it was a bit different: the museum is impressive and interesting, but obviously not visited by tourists as much as museums in other cities, or even touristy sites like Thomaskirche in Leipzig. I think they they noticed two people, obviously very foreign (speaking only a little German, and with an American accent) with an interest in their city s history, and took pride in making sure we got the most of our visit and learned as much as possible about something they care about. Here is the main hall of the Altes Rathaus. IMG_2727 We met up with Brad in a cafe near St. Thomaskirche for coffee and cake, then it was on to St. Nikolaikirche (the Church of St. Nicholas), the other large church in town. We stepped out of a passageway to face the large building, and walked in. The interior was decorated in pastels, and was also beautiful and historic. I can t get enough of that sort of building, I think. This building was especially important because it was the site of organizing for the Monday evening protests against the Communist government in 1989. People met at the church, sang a few hymns (to qualify it as a religious service, perhaps), then organized their protest for the evening. Sometimes they would wind through city streets and put flowers at the Stasi headquarters steps, and once the citizens actually overtook the Stasi headquarters. IMG_2745 After awhile we grabbed a bit more for lunch: a pretzel for Terah and a Currywurst for me. (This one wasn t spicy and wasn t all that good.) Then we went to the GDR museum, which was large and interesting, but unfortunately for us, completely in German with no English guide available. That evening, we went to a Bach concert at the Leipzig Gewandhaus, celebrating Bach s 325th birthday. That was fun, and a neat experience with such good music in a very nice venue. The program included Bach s Suite for Orchestra no. 1 in C Major (BWV 1066), Concerto for Violin no. 2 in E major (BWV 1042), Ich habe genug (BWV 82), and Suite for Orchestra no. 4 in D major (BWV 1069). Sir Roger Norrington was conducting, and was rather fun and atypical to watch. He had the audience chuckling a few times with his minimalist conducting or perhaps his flamboyant gestures. Anyhow, the music was excellent and the tickets included free passage on the public transit system 3 hours before and after the concert a nice touch. Due to our schedule, we didn t spend much time with Fritzi, but we did get to play with her a bit. She likes to pretend to be a shopkeeper, and had her store all ready to lay out. We would ask her for some items, which she d put in a basket for us, and then of course there would be a child s twist: we d get our items, and she d pay us for them too. Terah and I brought some books for Fritzi. The particularly enjoyed Goodnight Moon because inside it is an picture of The Runaway Bunny, which she already had. Fritzi chose one of her books to give to Jacob it was a German book (Maulwurf) based on a Czech cartoon mole. That was nice of her, and Jacob really liked it (I ll write about that later). We had a good time in Leipzig, and I was getting fairly good at navigating downtown and with the trams and then, of course, it was time to move on. So Friday morning we caught our 7:50 train from the Leipzig Hauptbahnhof. We took the ICE train to Dresden, then walked a few feet to get onto the EC to Prague. That was a bit of a funny experience. The ICE trains are all sleek, modern, meticulously maintained, and the passengers tend to be very quiet. Talking is barely above a whisper, and people seem alarmed if their cell phone rings, even outside the quiet car. The EC passenger car appears to have been built, or last renovated, in the 1970s, and may have been Hungarian. The seats and curtains are old and faded; some of the seat backs have rips in the vinyl headrests. People were talking or eating loudly, in a very different setting than on the ICE train. As we rode along, we were on the right side the river Elbe for many miles. The scenery was beautiful, with small houses in the river valley, and the occasional house up in the hillside. At one point (a bit before we passed through K nigstein on the way to the Bad Schandau stop), we spotted what looked like an old walled city up on the hill. I figured out later that it was Festung K nigstein (K nigstein Fortress). Update: I forgot to mention a couple of things about Leipzig. One was our walk through a forest yes, a forest in the city. That was a nifty, quiet, and pleasant surprise. Secondly was seeing all the DDR apartment blocks, where the apartments evidently were quite literally blocks. It is interesting to see the Communist architecture.

27 March 2010

Clint Adams: DPL Campaign Questions 006

Gerfried Fuchs:
I have a question to the candidates: History has shown that DPLs more or less disappear not too long after their period or at least reduce their visible efforts immensly. I wonder where you see the reasons for this trend, what your impression is about it and wether you try to follow that trend or what you will try to do to not have this happen to you, too.
I think that some DPLs are overwhelmed by the amount of requests they receive, and more importantly, are overwhelmed by the feeling of futility from perceiving that it is impossible to fix the things that they had intended to fix. So, unless there are other factors I would need to adapt to, I would try to discourage the number of private requests, and to not lose hope and faith in Debian. I imagine that delegation could be very useful in both these areas. Gunnar Wolf:
What would be different if there was no leader? Where would the project lose more? Would it gain in some aspect?
The DPL is theoretically one of the most important checks against the power of delegates. The absence of a DPL would thus increase any power imbalance in the the project, and likely to make the fighting between core teams even more political and harmful. Communities and teams are destabilized by egos because people stop paying attention to their healthy shared goals and the people around them and instead focus on their own individual success. So if the project were to achieve some kind of anarchic utopia where this is not an issue, I could imagine that the DPL would be the last remaining ego threat, and removing that role would make things better. However, we are nowhere near that now, and I think the DPL can do more good on this front. Yavor Doganov:
What do you think the project should do (with or without or regardless of your help as potential DPL) to preserve this goodness (maximum supported architectures) for as long as possible? Do you think it is "goodness" or you're in the "good riddance" camp?
I definitely think that one of our strengths is being available on a large number of architectures, and beyond that, providing nearly identical experiences on each of those platforms. I am saddened when porters or package maintainers make decisions to stray from the norm on a particular architecture, because I truly enjoy the consistency. I have run Debian on i386, sparc, hppa, powerpc, amd64, and in the few cases where something was different, I found it irksome. However, there is definitely a point where the cost in maintaining a release architecture far exceeds the benefit, and at that time I think we must regretfully bid it farewell. So you are right that porters are a precious resource, and as DPL I would try to reduce their attrition. Speaking as a former porter, I found the unresponsiveness and uncooperativeness of certain buildd maintainers (especially when not porters themselves) to be extremely demotivating. I would try to find a way mitigate porters being demotivated in such a way.

John Goerzen: Trip part 4: Berlin

Note: this post was written on March 16 and posted after our return home. Also, I took no photos in Berlin, reasoning that I could leave my camera at the hotel so as to not worry about it, since I m sure there are enough photos of the Brandenburg Gate in the world already. Photos on this story only are from others. We ve had a good time in Berlin it s been adventurous to be out on our own in an unfamiliar city with an unfamiliar language, but has gone well. I feel that I m finally getting used to it a bit, and now tomorrow we move on to Leipzig. Stepping off the train at the Berlin Hauptbahnhof, and seeing all those people connecting to all those trains, I had a feeling of excitement: here is a grand train station that is actively used by so many people. I got a sense of what the beautiful and enormous Kansas City Union Station once felt like, I think; that station at its peak served almost the same number of people in a day at Berlin Hbf does.
(photo by eliotc) Stepping outside in the cold and snow to wait for our bus, I got the first sense that Berlin felt a bit more like an American city than did L beck: a beggar with a suspicious story was working the crowd with Speak English? (We saw many dressed similarly using the exact same tactic during our stay in Berlin.) Our bus ride to the hotel showed us some graffiti a fact of life in many cities in the USA too. Our hotel, the Circus, most definitely did not feel American. The staff was very friendly (I think I ve only seen that level of friendliness and helpfulness at one hotel in the USA: the Portland Doubletree). The room was small (which we expected) but very nice. There was a fresh flower waiting, and a whole printout of information with my name on it waiting in the room: info about the hotel, restaurant, and a multi-page history of this part of the city. They are very energy-conscious there. The hall lights automatically turn off, but you can touch your (apparently RFID-enabled) room card to any switch to turn them on for a few minutes. When in your room, you put your key card in a little holder that keeps it safe and enables the use of the lights. They don t put shampoo in the rooms, but have a selection free for the taking at the front desk: the rationale being that it generates waste when they have to replace it for people that don t need it replaced. They are very environmentally conscious with everything except the showerhead, which appears to use so much water that it would be illegal in the USA. Here s the obligatory surprising to an American comment about Germany: the complete lack of water drinking fountains. In the US, you can get a drink of water at any building of any size airports, train stations, museums, shopping centers, and also in many public places such as parks. I may have seen exactly one water fountain in the Hamburg airport, but that was it. It is odd given the general sense of environmentalism here that so much energy is being wasted on bottling water, not to mention the expense of having to pay for it all over the place. The bus ride to the hotel was interesting. I needed to buy two tickets from the bus driver. I didn t know the German word for ticket, so I just guessed and went with Zwei Ticket, bitte. Wohin? Rosenthaler Str. Then the price came up. I believe that was my first completely successful German-only conversation. (Most Germans hear a couple of words of mine and quickly switch at least partially to English, which probably gets things done a lot faster, and saves me embarrassment, but doesn t give me much chance to practice my German.) We ate dinner Monday night at the Hackesche H fe at Weihenstephaner, a Bavarian restaurant. It was a fun meal, and the tables were long and seated multiple parties. I tried out their special Bavarian beer, and of course had some Wienerschnitzel. I had noticed apple strudel on their website but not on their menu, so when it was time for dessert, I asked our waitress if they had apple strudel today. They did, and it was delicious. Tuesday began with a walk to the Pergamon Museum. From our hotel, this was a walk of about a mile. We had been introduced to excellent German bakeries during our time in L beck. So, since we hadn t had breakfast, when we spotted a bakery along the road, we went in. Terah got a croissant with chocolate on top, which turned out to also have chocolate inside. I found a couple of smaller rolls with various seeds and flavorings on top. All were excellent, and I believe we spent less than EUR 2 all together. We ate our breakfast of rolls as we walked towards the museum. It was a cold and somewhat windy morning, but it was also fun and exciting to be there. The Pergamon was quite the experience. The Pergamon Altar was the first large artifact we saw, and was particularly interesting given that I have recently read The Iliad and The Odyssey.
(photo by *hoodrat*) The Market Gate of Miletus was also impressive, but the true highlight has to be the Ishtar Gate and processional way. Wow. It was built in 575BC by King Nebuchadnezzar II, and importantly was built out of glazed tiles, so the original artwork, color and all, still survives. You can walk through the processional way and get the feeling of kings and armies proceeding there. Truly spectacular.
(photo by Rictor Norton & David Allen) After the Pergamon, we crossed a bridge to the east taking us off Museumsinsel (Museum Island). We walked down a quiet and somewhat forgotten back street and found a small restaurant for lunch. I had the Berlin Wurst , some excellent sausage with excellent and not-so-sour sauerkraut. Terah had some breakfast-type items with fruit. After that, we walked over to the famous Unter den Linden. It wasn t yet spring, so the scenery wasn t all that spectacular yet, but that and the light snow didn t stop the tourists, or the tacky tourist shops, which appear to be a universal global feature. ( Berlin flip-flops and t-shirts made in China, anyone?) The destination of all this walking was the Brandenburger Tor, the famous Berlin icon. The Brandenburg Gate was immense, and the sense of history of standing there was impressive.
(photo by Andrew Mason) We of course walked through the Brandenburg Gate on our way to the Bundestag, which we intended to tour. We didn t, though, due to the cold and very long line snaking out of the building. We then got on the train to Checkpoint Charlie. We saw the outdoor checkpoint still in the middle of the street. We intended to visit the museum Haus am Checkpoint Charlie, but was so packed that it was difficult to even get in the door. We stood in line to buy tickets for a few minutes, but made absolutely no progress; meanwhile, it appeared that an entire school group came in after us somehow and was also waiting to pay. So we decided to go see Schloss Charlottenburg instead.
(photo by Poom!) The Schloss (palace) was a baroque design, intended to impress visitors with the power and wealth of the owners. Only the old wing was open Tuesday, but we had about an hour and a half available to tour it: enough to see the whole thing, but not enough to linger and read all of the information. It was impressive and interesting. Particularly interesting was the chapel, which was this odd state/religion combination decorated both with sacred symbols as well as symbols of the king. After Charlottenburg, we had dinner at the Prussian Restaurant Marjellchen near the Savignyplatz S-bahn. We started with a smoked herring appetizer. Then I had the K nigsberg meatballs, and Terah had creamed ham. Both of us really enjoyed our meals, and Terah s reminded her of Verenike. Wednesday started with an early rise, then we went to Mauerpark to see a remnant of the Berlin Wall. I am glad to have seen it, and was a bit surprised with how small it was at that point compared to my expectations.
(photo by Eichental) Then we had a few minutes back in our hotel to munch on some rolls for breakfast; after that, it was off to the Hauptbahnhof for our train to Leipzig.

Next.

Previous.