Search Results: "spa"

11 April 2006

Julien Danjou: Status of Xen in Debian

As you may have read it in the latest DWN, Xen is now (almost) supported by Debian. Actually, it is currently stucked in the NEW queue since yesterday. The packages are also available on our Alioth webspace.
Special flavor of glibc, libc6-xen, is also upcoming, thanks to Aurelien Jarno ! Err, what else to say ?
That the Xen upstream sources are not very clean for now. There's still a lot of tools not needed that are furnished, the sources are a mess, and there is no stable API for now. You may have seen Xen kernels in experimental, but the kernel team has removed them for now. It will probably not be possible to distribute Xen-enabled kernels as long as Xen won't be more stabilized. I really wish that it will be integrated in kernel vanilla sources, since this could calm down a bit big changes, and help having a more stable version. Just see that between 3.0.1 and 3.0.2 version, the way used to compile Xen kernels changed from a special arch xen to a subarch xen. That's better, for sure, but such important changes in the same major branch are quite disappointing. Finally, I would say that Xen is now usable with Debian. I use it for more than 6 months now, and it is quite stable, no huge bug. You will just have to wait that #346387 is fixed to compile your own kernels with patches we provide.

Christine Spang: Voting

I’m finding it kind of ironic that only 43% of Debian Developers voted in the DPL Election, while there are other, non-DD contributors that have expressed an interest in voting but can’t with the current rules.

Martin F. Krafft: More luck than brains

It's been a busy three days since I last wrote. The climax (or lowest point) must have been the loss of my wallet with about 800 Bhat of cash (16 EUR) and a credit card inside. I left in on a telephone in a bus station in Khon Kaen during a very stressful moment trying to get to our next destination. Luckily, within ten minutes I noticed the loss and could cancel the credit card, so the damage is minimal (although I should hope that one day it hits me hard because I apparently never learn and leave my things all over the place -- like the camera on the return trip from Zanzibar/Tanzania). Anyway, shortly after the loss, we ended up in a very fortunate situation ("more luck than brains"), but more on that later. Last time I wrote, we were in Khorat, headed for Phimai the same evening. With about four hours to spend, we opted for a massage, and I chose the traditional style with a weighty woman bouncing up and down my body and twisting it into unnatural shapes. Nevertheless, I felt absolutely great afterwards and am looking forward to the next time. The massage took a little longer than expected, and when we finally made it to the laundry place to pick up our load, they had just closed. But nothing is impossible in Asia, and soon we had one person tell another to find the owner in a hairdresser shop, and she happily made an exception and handed over our bag. Feeling very good, we headed for the bus terminal to find the bus leaving 90 minutes later than planned, so we spent the time watching the busy life of Thais departing and arriving before riding for 90 minutes to Phimai, where we had to wake the owners of the guest house despite having called in earlier to let them know of our late arrival. The room was spartan but moderately clean, and we passed a night only disturbed by the continuous sounds obviously made by cockroaches, though none seemed to be in our room itself. Jokingly, I remarked that there is nothing to worry as Thai cockroaches would take off their shoes before crawling onto the bed, but I am yet unsure whether that was reason enough for Aline to finally drift to sleep. Phimai is a tiny town housing a beautifully restored Khmer temple, said to be the best preserved in Thailand. Without a guide, and with the heat picking up to a stifling level already at 9:00 o'clock, we decided to better spend the time in a bus, traveling north to Udon Thani, but first spent a visit to the Phimai national museum, and the "Banyan Tree," a huge assembly of trees with Thais picknicking in its shade. Leaving Phimai with a bus, we had to hop on another in Thalak Ke, about 10 kilometres away from Phimai, but our initial joy of catching an air-conditioned ride for the 4 hour trip to Udon Thani was severly lessened when the bus pulled in and was completely crowded. We stood pressed against each other for the first 90 minutes of the trip, until we reached Khon Kaen, where lots of people got off before lots more got on, but we were able to get seats in between. Having arrived in Udon Thani, the plan was to leave the same day for the Laotian border to catch a boat along the Mekhong river to Chiang Khan, but that seemed impossible without a visa for Laos, which is $30 per person and a little too much for the joy of the journey. A little disappointed, we stayed in a luxurious hotel (10 EUR per night) and strolled around the city at dawn, chatted a while with a Welsh expat about old European men coming to Thailand to find women, and finally headed for the Mandarin restaurant, suggested in the Lonely Planet. The place was sketchy, with a loud television set blasting some Thai soap opera, and the staff really misunderstood the meaning of "appetiser" and "vegetarian", so that I ended up eating a giant plate of "Chinese Hors d'Oeuvre", Aline's spring rolls with shrimp paste, and the Pad Thai I had ordered. They forgot the noodles, and Aline's Tofu portion was too hot, but our tummies stuffed, and we sank into bed early. The night was horrible, I was plagued by stomach aches and the fear of a repeated experience -- the last time I ate Pad Thai along this meridian was in Vientiane, and I came down with food poisoning, and I felt exactly the same way as back then throughout the night and morning. I stayed in bed long but fortunately found that I had just put too much food into my belly (which wasn't used to it, we had been eating sparingly), and walking solved the problem. Weighing our options, we decided on the route of the next two days. Initially, it was to be Loei and the Phu Kradung National Park, but seeing that it was a little too difficult to reach with public transportation, we decided to head back to Khon Kaen, forget about Udon Thani and the lost day, and continue to Nam Nao National Park along the route 12 between Khon Kaen and Phitsanulok, with an optional stop shortly after Lom Sak for some whitewater rafting. It was after being told that all busses were overbooked (remember, Songkrat, the New Year's festival bringing every Thai back to his home, starts this week) and our furious attempts to find a hole to slip through that I left the wallet on the telephone. I noticed the loss on our way to the other bus terminal, but it was too late, and it didn't help that nobody spoke English anymore (basically ever since we left Ayuthaya). As said, the money wasn't a big loss, the credit card immediately cancelled, driver's licence and insurance cards also being no biggie, but the wallet still contained one item of interest: the receipt for the cargo bag with the children's clothing waiting for me in Chiang Mai (hopefully). We had our friendly Tuk Tuk driver took us to the tourist police to file a report, with which we should be able to reclaim the bag even without the receipt -- Aline also fortunately took a picture of the bag. But the tourist police was out for the day and as we came to realise the misery of our situation -- it was about 18:00 o'clock by now and we were looking at losing another day on our journey, a friendly women with very good skills of English walked around the corner and told us to hop on her car. We were so glad to be able to follow someone's command that we didn't even ask where she was taking us, but on the back of the pickup, we learnt from her two students that she was an English teacher taking us to the police headquarters. There, we got the report and again boarded the pickup heading back to the city. We still did not know how to continue from Khon Kaen towards Phitsanulok in the lower north of the country, but the lady offered to negotiate a rental car for us after heading to another police station to help her student with a report against a British man, who had left her in the top-end hotel without paying the bill. Fortunately, she knew the real name and telephone number of the guy, so he'll surely get his share, that bastard. The rented car with driver to Phitsanulok would cost us between 4000 and 5000 Bhat (80 to 100 EUR), which we thought was too expensive, and it was again our lady friend who decided to head for the busses again and try her luck. She got us on a 2nd class bus to Phitsanulok, leaving Khon Kaen at 3:45 in the morning, and with about 7 hours to kill, we took her and her two students for dinner and to a discotheque as a form of thanking her for her help. Her name, by the way, is Jill, and she runs the "Khon Kaen Language Centre", teaching English, Japanese, German, and Spanish to about 20 students, half of whom live in her own house as they come from far away. We talked much with her and her students that night. Dinner was a huge buffet with everything you can imagine, including cow stomach and pig intestines (and yes, I tried them both, though I need not do that again), and grills at the tables for a very cozy atmosphere (if it hadn't been for the live band that was playing just a tat too loud). Jill apparently spends her days helping other people, not only learning languages; people come to her for relationship troubles, legal issues, or other difficulties such as my lost wallet. She does not choose to help people, but feels that as a Thai, she must. This attitude prevails throughout the population (as soon as you leave Bangkok and the tourist centres in the south) and is maybe the most important reason why this country is such a great place to be. After dinner, we ended at a discotheque with another live band, including singers and dancers, and even though it was clearly too loud for my taste, the band was very good, and we had a splendid time getting drunk on Thai beer -- after all, what else was there to do until the bus left. I also found out that Jill runs an Internet cafe and consequently left her with 10 Ubuntu CDs to try out, and give away to her computer-savvy students. It was great to explain to her what "free of charge" means, but very hard to actually get her to accept it. After the discotheque, she took us to her house for showers and a quick meal, and I tried to demonstrate Ubuntu to her, but did not succeed within the small time frame I had available. The reason was that her house uses static IPs, and I could not figure out how to tell the Live CD to use a static IP -- it did not ask me. Anyway, this isn't anything I cannot solve via email once I return to Switzerland. We left the city on time and were looking at 5:30 hours of an uncomfortable, rocky bus ride, but thanks to ample space, it went by quite quickly. We gave up on the plans for the national park and postponed the "experience of nature" until Pai (see below), and also found out that April is not the month to go whitewater rafting in Thailand, so without any stops, we reached Phitsanulok and quickly headed for a hotel to sleep through the midday heat, a little too long unfortunately to still get some errands done, like cashing traveller cheques. I am now sitting in an Internet cafe in Phitsanulok, and we did get most of our to do list done. We'll stay here for one night, enjoying the "food festival" over at the night bazaar, and head for Sukothai tomorrow. Having made the acquaintance of a very helpful employee of the Thai Tourist Authority, we now have the possibility to ride along in his van tomorrow, iff he makes it back from Bangkok in time; otherwise we'll go by bus and meet him there for another festival and a light show in the old city of Sukothai, which is now known as the historical park, which the Lonely Planet describes as "Thailand's most impressive World Heritage site". Also, tomorrow, Songkran starts in Sukothai (a day before the official start), and we have been told that Sukothai is one of the two best places for the event on numerous occasions. The other is Chiang Mai, and we were lucky to get two seats on a plane leaving Sukothai for Chiang Mai on the 14th, so we'll get to spend more or less two days in each of the "party centres" (Songkran ends on the 15th, though some cities just keep on going). I have to say that I am very excited about witnessing this event. All the shops in all the towns keep piling water guns on the streets, and for three days, the camera will be better left in the hotel as the entire city soaks itself in water. I cannot wait to buy one of the biggest guns, make a run for the all the Thais, and then give the gun to a child. While I am talking about plans, I might just as well continue my brain dump. From Chiang Mai, we are currently looking at 2-3 days in Pai, a village north-west from Chiang Mai with beautiful landscapes and many hill tribes within walking distance. I'll be leaving Chiang Mai for Yangon in Myanmar, and am currently faced with four choices as to how to spend my remaining time in that country. Mind me while I share these options with you: The simplest options would have me drop the clothing and gifts off at Julie's guest house; Julie is Swiss or German and frequently organises for clothing and similar items to be sent to refugee camps in Myanmar. Then, I could travel to Myanmar and be free to spend the time in Yangon and Mandalay, showing Linux to people, head out into the countryside, or spend my time in the monastery to which I have been invited. These options all appeal to me, approximately in decreasing order. The last option depends on whether Julie organises a trip to a refugee camp anytime soon, in which case I may be able to go along. I'll keep you posted. That's it for now from me from southeast Asia; we're off for the night bazaar. Thanks again for reading along.

10 April 2006

Uwe Hermann: Stuff

Florian Ragwitz: What package is eating up my disk space?

Enrico, how about dpigs(1) from the debian-goodies package to solve your disk usage problem? It's written in #!/bin/sh and not that nifty, but, if you omit the option parsing and usage code, it's even shorter. It basically does
  grep-status -nsInstalled-size,Package -F Status ' installed' $STATUS \
    perl -p00l12 -e 's/\n/ /' \
    sort -rn \
    head --lines=$LINES

Enrico Zini: What package is eating up my disk space?

My 5Gb /usr partition is full. What do I have installed that's eating up all the space? Let's see:
#!/usr/bin/ruby
# pkgsizestat - Display the installed size of packages in a filesystem
#
# Copyright (C) 2006  Enrico Zini <enrico@debian.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
# Display the installed size of packages in the given filesystem
# Defaults to /usr if non specified
#
# Usually used as "./pkgsizestat /usr   sort -nr   less" to see what packages
# are filling up your /usr partition
dev = File.stat(ARGV[0]   "/usr").dev
def pkgsize(name, dev)
      size = 0
      IO.foreach(name)    line 
              begin
                      st = File.stat(line.chomp)
                      if (st.file? && st.dev == dev)
                              size += st.size
                      end
              rescue
              end
       
      return size
end
Dir.glob("/var/lib/dpkg/info/*.list").each    file 
      puts "%d %s" % [pkgsize(file, dev), file.gsub(/.+?\/([^\/]+)\.list/, '\1')]
 
Neat little useful ruby script. Ruby is nice in making scripts short clean and compact. Now I need a shorter version of the GPL :) Update: Florian Ragwitz suggests to use dpigs(1) from debian-goodies instead. What my script does that dpigs doesn't do, however, is counting only those files provided by the packages that reside in the given partition. I could for example use my script to see what's filling up the root ('/') partition when /usr is mounted elsewhere, and I find out that the top package is not openclipart-svg, but linux-image-2.6.15-1-686. Update: htom sent an updated version to sum all sizes and show only up to a certain size:
dev = File.stat(ARGV[0]   "/usr").dev
def pkgsize(name, dev)
      size = 0
      IO.foreach(name)    line 
              begin
                      st = File.stat(line.chomp)
                      if (st.file? && st.dev == dev)
                              size += st.size
                      end
              rescue
              end
       
      return size
end
pkgs =  
Dir.glob("/var/lib/dpkg/info/*.list").each    file 
  pkgs[pkgsize(file, dev)] = file.gsub(/.+?\/([^\/]+)\.list/, '\1')
 
pkgs = pkgs.sort
pkgs.reverse!
to_size = 1024**3 # show up to 1 GB
size = 0
pkgs.each do  a 
  size += a[0]
  puts "%d %d %s" % [a[0], size, a[1]]
  break if size >= to_size
end
Ralph Amissah posted a different variant:
# [License part omitted]
dev=File.stat(ARGV[0]   "/usr").dev
def pkgsize(name, dev)
  size=0
  IO.foreach(name) do  line 
    begin
      st=File.stat(line.chomp)
      if (st.file? && st.dev == dev)
        size += st.size
      end
    rescue
    end
  end
  return size
end
def space(file,dev)
  "%d %s" % [pkgsize(file,dev),file.gsub(/.+?\/([^\/]+)\.list/,'\1')]
end
@used=Array.new
Dir.glob("/var/lib/dpkg/info/*.list").sort.each do  file 
  x=Array.new
  x << space(file,dev).split(/\s+/)
  p [x[0][0].to_i,x[0][1]]
  @used << [x[0][0].to_i,x[0][1]]
end
#p @used.sort.each    x  p x  
@used.sort.each    x  puts "# x[0]  # x[1] "  
#redirect to file?
Thank you everyone for the nice feedback!

8 April 2006

Lars Wirzenius: Random thought: Simplicity in web browsers

I like simplicity. I want things to be as simple as is sensible, but no more, and because of this, I tend not to particularly like web browsers. Web browsers are extremely complicated beasts, and to a large degree this is for stupid reasons, like having to support any kind of broken markup. I think the world would be better if web browsers would simply not display pages with broken markup. However, web browsers also have other things that irritate me, even if ever so slightly. For example, there's way too many buttons and other elements in their tool bars. Compare the following four screenshots of Mozilla, Firefox, and Epiphany, with their default configurations in Debian, with the version of Epiphany that I have configured myself.
Mozilla screenshot Mozilla: six real buttons, URL box, throbber, four bookmark buttons, plus widgets for rearranging or otherwise manipulating the toolbars themselves.
Firefox screenshot Firefox: six real buttons, URL box, Google search box, throbber, two bookmark buttons.
Epiphany screenshot Epiphany: nine buttons, throbber, and URL box on a separate line.
Epihany   la liw screenshot Epiphany la liw: four buttons, URL box, throbber.
Now, I admit that I'm a bit of a power user, and don't need quite as much hand-holding as a novice, but still, does anyone need a bookmarks button in the toolbar? People who make bookmarks often will quickly learn to type control-D, and those who do it only rarely don't need a toolbar button, they're happy enough with a menu entry. And why do Firefox and Mozilla need a button called "Latest Builds"? How is that interesting to anyone except Mozilla developers? Me, I prefer my setup. Four buttons plus the URL box. All buttons are easy to hit with the mouse, no need to hunt and seek the right location. Besides simplicity, my configuration saves on vertical space, which is pretty important for us laptop users.

Julien Danjou: New TuxFamily web site

TuxFamily.org has just launched his new web site. It now supports english, spanish and, of course, french. For whose who don't know TuxFamily yet, it's a non-profit organization aiming to provide hosting services for free software projects. It's like SourceForge somehow, except that we don't use gforce but vhffs, our own hosting system. I would say that the main difference is that we don't provide a lot of preinstalled tools like bugtracking system, release publishing infrastructure, forums, etc.
We "only" give web spaces (with PHP support), MySQL or PostgreSQL databases, Subversion and/or CVS repositories, DNS servers hosting, mail hosting, mailing-lists, etc. For free, and for all projects which are free as in free speech. And not only free software projects, we also host some free art stuffs. For example, we host the prism54 project. Although the organization is french, our goal is to be open to other countries, so we began to internationalize all of our web interfaces. It is almost complete now, so maybe you could give it a try if you need hosting for your next project!

7 April 2006

Ross Burton: Spam Poetry

I could blog about work, or Sound Juicer, or new albums, or my trip to the Very Very Cold Helsinki, or the subsequent cold/lost voice I've developed, but no. Instead, have some Spam Poetry:
Their death row raid
in means lethargy high jinks
as exhumation fault.
dynamo or spring chicken
Inspired. NP: He Has Left Us Alone, but Shafts of Light Sometimes Grace the Corners of Our Rooms..., A Silver Mt. Zion

Wouter Verhelst: DFSG vs GFDL

One of the things that has kept Debian in heated discussion over the last few years is the question whether the GFDL, or the GNU Free Documentation License, is free according to Debian's own DFSG. We've had three votes on the subject, with the final one decisively saying it's conditionally free. Or so I thought. Yesterday, Josselin Mouette proposed another GR on the subject, since he believes there's a conflict between GR 2006 001 and the current text of the DFSG. Sigh. At least he isn't trying to reverse the effect GR 2006 001. But still; no, the GR does not conflict the text of the DFSG. I used to think otherwise, but got swayed by the discussions on -vote that occurred prior to GR 2006 001, especially (strangely) the one that happened as a result of Anton Zinoviev's amendment, which ended up as choice #3 on the ballot. At the the time, I was supportive of the original proposal to throw out all GFDL-licensed documents, even though I disliked doing so (for obvious reasons); but I felt that the arguments about the DRM clause did hold. This was wrong, and it took me an insult to see it. Quoting Anton, myself, and Craig Sanders:
This clause disallows the distribution or storage of copies on DRM-protected media only if a result of that action will be that the reading or further copying of the copies is obstructed or controlled. It is not supposed to refer [to] the use of encryption or file access control on your own copy.
No; however, as written it can be interpreted as such.
only by nutcases with an agenda. normal people (including lawyers and judges) wouldn't have such an insane and insupportable interpretation. that's because normal people rely on facts. and evidence. they don't just make up whatever crap they need to suit their argument.
Craig's way of saying things did not immediately have the intended effect; and had I not grown tired of the discussion, I probably would've missed it. But the fact that I stopped following the discussion gave me some time to think about it, and as such, Craig's argument had a chance to sink in. When I was finally swayed, I failed to attribute it to Craig, however, instead thinking it was an argument by Anton that did it. The point is this: the mere fact that you're able to construct an interpretation of a license which is logically sound and complies with everything, does not mean that it is a sane interpretation. Lawyers and judges, strange people though they might be according to some jokes, are still people; human beings. If you come up with an interpretation that nobody in court came up with on the first reading of a given text, then chances are rather high nobody will follow you. That's what really matters: whether something you claim will hold in court. Not whether something you claim holds up to your own argumentation. And yes, claiming that doing chmod -r, or storing something on an encrypted filesystem is somehow restricting distribution, seems a little far-fetched. After all, when I'm storing something on my own hard disk, or even in the privacy of my home-directory on a large shared fileserver, I'm not engaging in a distribution of any kind.
From WordNet (r) 2.0 (August 2003) [wn]:
  distribution
      n 1: (statistics) an arrangement of values of a variable showing
           their observed or theoretical frequency of occurrence
           [syn:  statistical distribution ]
      2: the spatial property of being scattered about over an area
         or volume [syn:  dispersion ] [ant:  concentration ]
      3: the act of distributing or spreading or apportioning
      4: the commercial activity of transporting and selling goods
         from a producer to a consumer
Definition 3 and 4 seem to require an active action by the originating person; when someone copies a file from your $HOME, you didn't distribute the file to them; they took it from you. In our culture of sharing is good, you should share!, I missed it; but a court would probably see copying without asking for permission more as stealing, rather than distributing. After all that, the arguments about the DRM clause being too broad seemed a bit weak to me; and given that the FSF had already agreed on it being a bug which needed to be fixed, as they had for the other arguments against the GFDL (apart from the Invariant sections, which are not being discussed here), made me decide that the big giant insane problems with the GFDL are not so much of a problem as most people seem to claim.

Uwe Hermann: The Underhanded C Contest 2006

The Underhanded C Contest 2006 has started.
We hereby announce our second annual contest to write innocent-looking C code implementing malicious behavior. In many ways this is the exact opposite of the Obfuscated C Code Contest: in this contest you must write code that is as readable, clear, innocent and straightforward as possible, and yet it must fail to perform at its apparent function. To be more specific, it should do something subtly evil.
This year's challenge: ridiculous performance degradation
For this year's challenge, imagine you are an application developer for an OS vendor. You must write portable C code that will inexplicably taaaaaake a looooooong tiiiiime when compiled and run on a competitor's OS. The program is supposed to read a set of words on stdin, and print a frequency count of unique words in lexicographical order. Essentially the output should match the command line tr "[:space:]" "[\n*]" sort awk 'length($0)>0' uniq -c Try to write a simple C program that does this, but produces as wide a disparity as possible between its runtime on one platform and runtime on another (your "competitor.")
This sounds like a lot of fun ;-) I have participated last year and will most probably do so this year... Deadline: July 4th, 2006

6 April 2006

Jeff Bailey: Has the hula hoop fallen?

Last weekend I found myself looking for something to hack on that wasn't something I see during my work day. I took a look at <a href="http://www.hula-project.org/Hula_Project">Hula</a>. I've wanted something like this for use at home. It would be nice if <span class='ljuser' style='white-space: nowrap;'><a href='http://auzure-skies.livejournal.com/profile'><img src='http://stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0;' /></a><a href='http://auzure-skies.livejournal.com/'><b>auzure_skies</b></a></span> and I could see one another's calendar, have our own Jabber server, and have easy access to our email through a local client or through webmail.<br /><br />There seem to be a steady stream of commits to Hula's SVN, but almost no discussion on the mailing list. I've sent in <a href="http://forge.novell.com/modules/xfmod/maillist/archbrowse.php/hula-dev/2006-March/001012.html?id=1613&amp;prjname=hula&amp;mlname=dev">one patch</a> to the Makefile so that make dist would run (<a href="http://forge.novell.com/modules/xfmod/maillist/archbrowse.php/hula-dev/2006-April/001014.html?id=1613&amp;prjname=hula&amp;mlname=dev">accepted</a>), and sent <a href="http://forge.novell.com/modules/xfmod/maillist/archbrowse.php/hula-dev/2006-April/001013.html?id=1613&amp;prjname=hula&amp;mlname=dev">another</a> asking for design information (No answer yet). In general, the codebase seems crufted with a bunch of legacy NetWare concepts. It's written in at least four languages (C, C , C#, and Python) and doesn't seem to have a testsuite. The code also currently doesn't run on powerpc without segfaulting.<br /><br />Ah well. Anyone know if there's another project that has similar aims and goals? Basically some sort of server software that will handle almost all of what evolution can hand to it, plus some sort of extensible interface so that it's reasonably easy to add things like Jabber servers, RSS/Atom Aggregators, etc.

Erich Schubert: Planarity

Planarity is indeed an addictive flash game. I just did level 13 in 19:30 minutes. What are your scores like? This game was also featured in that cool Multi-Touch touchscreen video you might have seen some month ago. There is however a rather generic approach that will lead you to a solution rather reliably. Don't just move around random vertices, instead pick one and move it into the center, now grow the solution from that center node. The higher the level, the less space you'll have, so keep it dense! Always look at all "new neighbours" first, where to place them best to avoid having to swap them later. But by just walking around clockwise around the "convex hull" of what you've built so far, you get a pretty good network. I guess you can even prove it that you'll be able to solve it in O(n) that way when done right. In level 13 I this worked quite good for me, except I ran out of space some time. I then picked a random outer node, moved it to the very upper left, and moved the "covex hull" to the borders of the screen. From time to time you'll see you've made a mistake, but this can usually be solved by mirroring some group in your network. Update: Level 14 in 18:13 Minutes. Looked like this: Planarity screenshot with a small problem at the top edge of screen due to lack of space there. Update: Level 15 in 14:01 Minutes. The schema works perfectly, you have to touch each node at most twice (once when discovering, and maybe switch place with a sibling when discovering the new neighbours). All changes are local, and you don't actually look at the lines, just at the colored nodes. Unless of course you run out of space and have to rearrange.

Kai Hendry: Unattended Upgrades

A few days ago I was moaning about how it wasn’t easy to keep a Debian machine updated compared to say Red Hat’s automagic up2date (paid subscription required) service. Today I noticed a new package in a dapper dist-upgrade called unattended-upgrades. More information about unattended upgrades in the Ubuntu wiki. Sweet! And under the GPL. Great. I’ve copied the initial version for online viewing of unattended upgrade source on my static site.

5 April 2006

Julien Danjou: Zim

ZimTwo weeks ago I began to use zim, a desktop wiki, written in Perl/GTK2. This is very helpful to manage my TODO list and other stuffs! I love it, it is very tiny, and I can put it in one of my workspace corner. The files are plain text so I can manage them within my home subversion repository.

Erich Schubert: Programming languages that need to die.

We have way to many programming languages. So I'm putting together a list of languages that need to die. ;-) Honorable mentions that didn't make it into the "must die" list: Languages that I think have issues, but couldn't put on this list: So let the flamewars begin. I'll try to keep track which language zealots are the worst. Without having started, I bet it'll be the Lisp zealots.

4 April 2006

Jos Parrella: Free Software vs. Privative Software in Venezuelan National Assembly

For my hispanohablantes readers: this post is written in english since it’s gonna be syndicated into Planet Debian. Expect a post in spanish later in the day. If you can understand spoken spanish, I recommend you to hear the Free Software talk of M.Sc. Ernesto Hern ndez-Novich (Debian Maintainer) which ends noting several benefits of using Debian GNU/Linux. Available here. Update: other posts in spanish are already available in Planeta Linux Venezuela. Yesterday we (SOLVE, a Venezuelan Association of Free Software Users, Developers, Cooperatives and Entrepreneurs) had the opportunity to assist to a Free Software vs. Privative Software forum. This doesn’t sound amazing, indeed. But if you take into account that the Forum was held in the National Assembly (or House of Representatives, anyway I’ll call it AN) it gets better. Now, get this idea: the AN is having a forum to discuss a Law, and it’s listening to the parts involved. Let it sink for a minute. But what if the AN is also bringing this parts to a table to actually write the Law? This is how laws are made in our Country now (Damog always says we are terribly nationalistic. It may be true, indeed.) Anyway, we were there around 10 AM, in the Protocolar Room of the AN. The event was full-house, featuring two thirds of people supporting proprietary software (students between 17 and 20 years from the countryside and big entrepreneurs -and Microsoft, of course-) and one third of people supporting free software, including people working in the Government, students, cooperatives, developers, etc. The session was opened by Representative Luis Tasc n, which once was a great supporter of Free Software (now it seems the same for him, anyway he’s doing a great job changing the law-making roadmap) and the speakers were: Microsoft, the National Center for IT, Cavecom (the association of big software enterprises in Venezuela) in the Dark Side and Felipe P rez Mart (from SOLVE) and Ernesto Hern ndez-Novich (Sim n Bol var University) in the White Side. Kudos for IBM, in the Gray Side with Black Spots. The session of talks was incredibly amusing. The speakers started to change their opinions based on the last talk. So, this way, Berrizbeitia (Director, CNTI) tried to discuss Tascon (Representative), the Microsoft Brazilian guy tried to oppose Berrizbeitia, the guy from Cavecom fighted Microsoft (this guy was a complete moron, by the way: when he was told that a group of venezuelan people had developed translations into wayuunaiki he said that was useless since we only have 800 wayuu - native americans) the IBM-boy tried to say they were the best, Felipe Perez (SOLVE) tried to dismantle Berrizbeitia’s talk and finally Ernesto Heranndez-Novich roundkicked them all. The kids from Microsoft (wearing MSDN and VisualStudio shirts) said that Microsoft is a good company which is open-source and gives the code for free. I argued some of them that they were working free for Microsoft. They “hadn’t see it that way”. They also said the plain-ol’-good excuse that “free software was weaker since everyone can see it’s code”. They were changing their strategies and opinions sistematically as the Forum evolved. They argued no compatibility, security problems, and finally they arrived to their real reason to oppose Free Software. Several girls and boys (Daddy’s Boys, as we say to them) were arguing “no free speech” in the Country (which was amusing since this is the first time the National Assembly is writing the laws with the People) and that the Law was going to make them lose their years of University studies. Then, the most accurate of the interventions came, made by Rogmar Marin from Venezuelan Patents and Author Rights Office. He said that this event was all about the people controlling the State, not the State controlling the people. He cited two articles from the draft and the 3390 decree explicitly saying that Free Software was mandatory for Government (in the Decree it says the “National Public Administration” and in the Law it says the “National Public Power”) so he said that they were not going to lose their “bicoca” (a popular form to say “rivers of money”) since they still can program in whatever they want, just that the State has the right to decie the best for their people, and the best for their people was Free Software. This was the whole quid of the event. This is not about Free Software vs. Proprietary Software. This is not about Linux vs. Windows. This is not about IBM vs. Microsoft vs. Venezuelan Companies. This is about the best for the People (which is the maximum interest of the AN) and, in this case, the People was represented not only by the intellectual-closed-circles of Free and Proprietary Software, but by Ana Maria Morillo, from the Cambalache community in Puerto Ordaz, at the southern part of the Country. She said that their Community had absolutely no access to technology. They were poor and humble, and willing to learn. CVG Telecom, a State-based telecom company, installed a Nudetel (no, it’s not an ethic-relaxed phone operator. It stands for Telecommunications Endogen Development Kernel) in their Community, using Free Software. This was their first approach to technology and computers. They didn’t even know how to turn on a computer. Free Software helped them to approach the reality of computers. They felt prepared to use a computer, and proud of themselves. When they used privative software in other places, they needed to adapt to that technology. This demonstrates that Free Software is as easy as any Software. You need to adapt to it. The difference with Free Software is that you are free when you use it. The people from Cambalache appreciate that. Felipe Perez Marti talk was really good. He slapped Microsoft and opposed very roughly to the “technological neutrality” position of the CNTI Director, Jorge Berrizbeitia. Technological neutrality is a neo-liberal, right-wing doctrine which is the technological counterpart to laissez faire, laissez passer. The problem is that (Felipe is an economist, and a great mathematician) technological neutrality isn’t actual neutral. It happens under the conditions where the Smith’s “Invisible Hand” Theorem is valid, so, in a scenary of technological neutrality, the powerful always wins. So, Microsoft wins. He also noted the recent study funded by the United States Homeland Security and carried on by Carnegie Mellon, Coverity and Symantec, which stated that Proprietary Software had between 20 and 30 bugs per TLOC (thousand lines of code) while FOSS had only 0.434 bugs per TLOC. The Microsoft guy seemed astonished by the “discovery” and the students were offended by this. Great. What next? We brought CD’s for people, made Debian evangelization to several “disident” students, made a great cheer to every Free Software supporter, brought signs and SOLVE shirts. While the Microsoft dudes where more than twice times us, we were a coherent group which stayed until 1930 (they left at 1600, you know, it’s a Micro matter of Soft) and held great arguments, sometimes slapping the student’s moral, but definitely making our voice be heard after tenths of years being discriminated by companies, Universities and the Government. As a Debian Project volunteer, what’s your opinion about this? Is the State violating Free Speech taking this decisions? Does it have the right to take it? Is Free Software the best solution for the corporate environments of the Government, taking into account that it handles the citizen information? What are your general comments about this?

Andree Leidenfrost: I'm on Planet Debian!

Thanks to the indefatigable and ever helpful Amaya, I'm now on Planet Debian! Thank you also for your nice introduction, Amaya! :-)

Just to drop a few words about myself and what I do:

I am an expatriate German and have lived in lovely Sydney for almost seven years now. I work as an IT professional mainly programming and maintaining SAP systems.

I have been a Debian user for about a decade now and finally decided to become a maintainer almost two years ago when I started to get involved with the mindi and mondo packages that form the quite neat, flexible and versatile disaster recovery suite Mondo Rescue.

It turns out that I got sucked into Mondo Rescue upstream development reasonably heavily mainly because it is quite a low-level tool and thus needs reasonably extensive tweaking to get it to work properly on Debian (or any other distribution for that matter). Upstream (at the time) wasn't all too fond of Debian, but I was given CVS commit access pretty early on which suited my fine as I could commit my fixes directly upstream.

Since about half a year ago, upstream has become much more active, mainly thanks to Bruno Cornec (sorry no link), the new lead developer. So, hopefully for Etch, we will have a much cleaned-up codebase and fully operational RAID and LVM2 support! In the meantime, give Mondo Rescue a go - it is quite cool as it is right now! ;-)

Hopefully, there will be some time soon to look after a few more (maybe less demanding) packages and to get more involved in Debian in general. Oh, and hopefully I'll be a real Debian developer soon - DAM approval on 27 Mar looks promising - thanks, Joerg! ;-)

Matthew Palmer: Rewriting in Rails -- A Practical Examination

[Note: this article was mostly written some weeks ago; I left it in my "to be edited" box and then promptly forgot about it. So any and all temporal references are way out of whack. Since originally writing this article, I have commenced an incremental rewrite of an in-house business management application from crazy-PHP (a common -- some may say overwhelmingly so -- dialect of the language noted for it's complete lack of any sort of good software development practices, such as the creation and use of functions (!)) into Rails. Articles on this effort will be appearing presently.] Almost immediately after I'd finished writing my previous discussion on why rewriting software is evil, I decided to make a little experiment. What I did was take a fairly well factored PHP application, and rewite (a portion of) it in Rails. My intent in this was not to produce a production-quality rewrite. I have no interest in proliferating yet more functionally equivalent clones on the world. Instead, I undertook the work simply to get a feel for (a) writing a whole, traditional, Rails app in a short space of time, (b) how quick Rails really was to produce an application, and (c) whether wholesale rewrites really are as boring and life-sucking as I imagined them to be. My methodology was this: with a small amount of knowledge of the target application (SysCP), the existing database schema and templates, and a weekend, rewrite as much of SysCP as I could in a close-as-possible reproduction of critical SysCP functionality. My summary results are: rewrites are as boring as I thought they would be, Rails is powerful but fairly complex and slightly buggy when you get down into it (especially if you're working from an existing -- possibly suboptimal -- database schema), but overall, Rails is Way Good Stuff. On the boredom aspect -- I had two days to write code. I had some domestic duties to attend to (walk the dog, visit the hardware store, help my wife with attaching a new bag rack to her bike, mow the lawn, etc) but on the whole, it was dedicated to programming. I've spent whole days (hell, 40 hour marathon stretches) cutting code before. I knew this wasn't a six-month deathmarch, but only a weekend experiment. Despite that, I feel that my motivation levels were lower than they normally are when coding. I can only imagine what it must feel like, two weeks into several months of hard core coding, knowing that you'll end up with what you had before, functionally speaking. If you are going to do the rewrite thing (and may the Flying Spaghetti Monster have mercy on your soul if you do), then pick the right project. SysCP is large masses of tangled PHP (is there any other kind?) but it has a fair amount of local and global structure once you get down to it -- for instance, it's quite well factored into business logic and display, and the code is broken down fairly logically by action handler, so you get entire source files that look like this:
  if ($action == 'edit')
   
    // 150 lines of twisty passage PHP
   
  else if ($action == 'new')
   
    // Another 150 lines
   
  // repeat for another few actions
and so on. The nice thing about this is that, if you have to look for how something works, you can almost certainly find it in one place in the source. Deciphering it might be another matter, but at least you've got something to start from. As I mentioned, the display in SysCP is pretty nicely split off from the logic -- a large number of templates, with common header/footer files, with some small parts in common templatettes. Some HTML is still generated within the actions, but due to the above action-based structure, it's usually fairly easy to identify all of the HTML that will be associated with a particular action and turn it into a coherent Rails template. I would dread doing a rewrite of the presentation layer of, say, IRM. It's idea of well-factored presentation is to separate print statements from logic by a blank line. To my great shame, I've had the reins of IRM for a year, and it's still this bad. I claim it's because I hate HTML coding with a vengeance, but I think I'm actually just scared to try and tame that particular monster. (Update: Martin Stevens has been doing some good work turning IRM's HTML into Savant templates. The only downside is that I can hear his manic laughter -- caused by IRM's insanity slowly infecting him -- all the way from England, and it's keeping me awake at night). I also had to re-learn that most hated but most important of lessons -- that, no matter how much reading you may have done, until you've cut chunks of code in a language or environment, you have no idea how it actually behaves in your brain. Specifically, I spent a fair amount of my alloted rewrite time learning a few little lessons in how Rails actually behaves, and all of it's cool little features. Of course, everyone is going to have this pain, and I've suffered it in every language that I've done any appreciable amount of programming in, but it's always a shock to the system that -- after all this time programming -- a new language still makes my brane tingle curiously for a while. Luckily, I'd read and digested all of both the Pickaxe (Programming Ruby) and AWDWR (Agile Web Development with Rails) so I knew what was possible, I just usually wasn't sure how exactly, so I spent a lot of time with my head in the books. Rails' little foibles also bit me in the bum more than once. For example, I spent over an hour (a no foolin' hour) trying to hunt down what I was doing stupid in my code to make Rails completely forget about the value of a couple of my fields. The answer turned out to be to restart Webrick (Rails' internal webserver for development testing), and the problem cleared right up. You could hear my screams of anguish from the moon (even through the vacuum of space -- it was a lot of anguish). Rails isn't the Final And Ultimate Solution To The Webapp Problem, but it's a good start. There is near-zero administrative bumf when you're writing a Rails app. Rails is fairly intelligent about working out what you want done from the world around it. Code generators (which produces sensible, minimalist templates -- not the ugly, unmaintainable behemoths produced by Visigoth Studio, which has given the whole code generation world a bad name) handle a lot of the low-level "oh bugger, I have to add a new file" feeling. It's very, very anal about project structure, but (in contrast to many other bondage-and-discipline frameworks I've looked at in the past) this structure seems almost comforting (maybe I'm just getting old and turning into a satisficer). What all this means is that you (a) don't write much code unless it moves you toward your goal, and (b) Common structure means that any Rails app will be fairly familiar to an incoming programmer. Unfortunately it also means that cunning wankers will, sooner or later, work out a whole pile of ugly tricks and contortions to get themselves out of Rails' comfortable-but-no-doubt-incompatible-with-many-people's-ways-of-thinking straitjacket, which I will (sooner or later) end up maintaining. Like many of Rails' (and Ruby's) features, though, I don't see them being any more abusable than most features of any programming language or environment -- and at least they're powerful and useful (unlike, say, register_globals, magic_quotes_gpc, magic single-character variables, mandatory indenting, or banning tabs as indent characters -- I thought I'd spread the slagging amongst lots of languages). Productivity-wise, although I was only just kicking off my Rails webapp knowledge, I felt I was doing fairly well. From experience, what I produced in my weekend was roughly on par with what I could produce in PHP in the same amount of time, had the situation been reversed. Considering that I have about 3 weeks of Ruby/Rails knowledge, and about 5 years of PHP experience, I think that's a big win. (Update: I've since produced a DNS management applet for work in about 6 hours billable time, and a virtual mail account application in about 12 hours, both using Rails. There isn't a hope in hell that I could have performed a similar feat in PHP, especially with the same amount of inherent flexibility that the Rails solutions contain). Overall, my impression of wholesale rewrites as being soul-sucking experiences stands. I suggest they be approached with the greatest of care, and only be permitted after an appropriate period of psychological counselling. There is plenty of code that needs rewriting (but why do I always have to find it?) but replacing it by doing an rm -rf on the source tree and starting again is not the answer.

Erich Schubert: Windows fileservers suck

... give me samba, please! I've recently been fighting windows file servers. They run on totally oversized hardware (P4-HT, 8 SATA drives in a 7-active-1-hotspare RAID-5 set) but still don't perform reasonably. (2.5 MB/s write performance is really bad, read performance is somewhat okay, though) And then it's so easy to confuse windows... seems like Windows can't handle directories ending with a dot. But you can easily create such folders over the network with SMB... name a folder "foo." and windows can't handle it any more. Or "...". Windows can't delete or rename it. And I'm talking NTFS, not plain old legacy FAT. So if you're going to hide data on a windows box, just store it using SMB in such a folder. And if you want to be really evil, write a script that autodiscovers writeable network shares around you and creates "You suck." folders there. Windows users will start running around screaming, but obviously you can't be the culprit, since you can't access Windows shares, can you? I've also been porting a python app to Windows. Python is so nice, and PyGTK works like a charm on windows. Now if Windows just wouldn't suck as much... for example, it doesn't have os.fork(). And it's I/O charset semantics are a complete mess. Once you don't use only 7-bit ASCII you're likely to go crazy. Seems like the console on Windows always uses codepage 437. The filesystem probably cp 1252. Windows internally claims to use 16-bit unicode. So if you want a python script to run on windows: I can recommend python for cross-platform coding however. The PyGTK GUIs are really nice, much nicer than all that java stuff out there. And these "issues" with windows aren't really Pythons fault, but Windows.

Next.

Previous.