Search Results: "ana"

12 September 2009

Olivier Berger: New sympa (.org) t-shirt in my collection

The nice developers of Sympa (Mailing list manager) have been very kind to send me a new gift T-Shirt. New sympa.org t-shirt I ve not been a great contributor to sympa, but helped in keeping it in shape in Debian a few years from now. Very nice way to thank contributors, IMHO. Keep up the good work, CRU guys.

Frans Pop: debtree 0.8.0

debtree 0.8.0, including the new option to display reverse dependencies, is now officially (or rather: unofficially) available. The new feature is of course documented in the man page, but also on the website. And now I think the time has come to port the script to perl. If I manage that I plan to upload the package into the archive as version 1.0. P.S. debtree now also supports generating trivial graphs:
$ debtree --max-depth=0 dpkg
Funnily enough that same graph is less trivial for apt. Support for --max-depth=0 was added to allow to generate graphs showing only reverse dependencies.

11 September 2009

Ian Wienand: Django toolchain on Debian

Although Django is well packaged for Debian, I've recently come to the conculsion that the packages are really not what I want. The problem is that my server runs Debian stable, while my development laptop runs unstable, and Django revisions definitely fall into the "unstable" category. There really is no way to use a system Django 1.1 on one side, and a system Django 1.0 on the other. After a bit of work, I think I've got something together that works, and I post it here in the hope it is useful for someone else. This info has been gleaned from similar references such as this and this. This is aimed at running a server using Debian stable (5.0) for production and an unstable environment for development. You actually need both to get this running. This is based on a project called "project" that lives in /var/www
  1. First step is to install python-virtualenv on both.
  2. Create a virtualenv on both, using the --no-site-packages to make it a stand-alone environment. This is like a chroot for python.
    $ virtualenv --no-site-packages project
    New python executable in project/bin/python
    Installing setuptools............done.
    
  3. The unstable environment has a file you'll need to copy into the stable environment - bin/activate_this.py. The stable version of python-virtualenv isn't recent enough to include this file, but you need it to essentially switch the system python into the chrooted environment. This will come in handy later when setting up the webserver.
  4. There are probably better ways to keep the two environments in sync, but I simply take a manual approach of doing everything twice, once in each. So from now on, do the following in both environments.
  5. Activate the environment
    /var/www$ cd project
    /var/www/project$ . bin/activate
    (project) /var/www/project$
    
  6. Use easy_install to install pip
    (project) /var/www/project$ easy_install pip
    Searching for pip
    Reading http://pypi.python.org/simple/pip/
    Reading http://pip.openplans.org
    Best match: pip 0.4
    Downloading http://pypi.python.org/packages/source/p/pip/pip-0.4.tar.gz#md5=b45714d04f8fd38fe8e3d4c7600b91a2
    Processing pip-0.4.tar.gz
    Running pip-0.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-Wu9O-U/pip-0.4/egg-dist-tmp-xjSdxq
    warning: no previously-included files matching '*.txt' found under directory 'docs/_build'
    no previously-included directories found matching 'docs/_build/_sources'
    zip_safe flag not set; analyzing archive contents...
    pip: module references __file__
    Adding pip 0.4 to easy-install.pth file
    Installing pip script to /var/www/project/bin
    Installed /var/www/project/lib/python2.5/site-packages/pip-0.4-py2.5.egg
    Processing dependencies for pip
    Finished processing dependencies for pip
    
  7. Install setuptools, also using easy_install (for some reason, pip can't install it). There is a trick here, you need to specify at least version 0.6c9 or there will be issues with the SVN version on Debian stable when you try to get Django in the next step.
    (project) /var/www/project$ easy_install setuptools==0.6c9
    Searching for setuptools==0.6c9
    Reading http://pypi.python.org/simple/setuptools/
    Best match: setuptools 0.6c9
    Downloading http://pypi.python.org/packages/2.5/s/setuptools/setuptools-0.6c9-py2.5.egg#md5=fe67c3e5a17b12c0e7c541b7ea43a8e6
    Processing setuptools-0.6c9-py2.5.egg
    Moving setuptools-0.6c9-py2.5.egg to /var/www/project/lib/python2.5/site-packages
    Removing setuptools 0.6c8 from easy-install.pth file
    Adding setuptools 0.6c9 to easy-install.pth file
    Installing easy_install script to /var/www/project/bin
    Installing easy_install-2.5 script to /var/www/project/bin
    Installed /var/www/project/lib/python2.5/site-packages/setuptools-0.6c9-py2.5.egg
    Processing dependencies for setuptools==0.6c9
    Finished processing dependencies for setuptools==0.6c9
    
  8. Create a requirements.txt with the path to the Django SVN for pip to install, then and then install it.
    (project) /var/www/project$ cat requirements.txt
    -e svn+http://code.djangoproject.com/svn/django/tags/releases/1.0.3/#egg=Django
    (project) /var/www/project$ pip install -r requirements.txt
    Obtaining Django from svn+http://code.djangoproject.com/svn/django/tags/releases/1.0.3/#egg=Django (from -r requirements.txt (line 1))
      Checking out http://code.djangoproject.com/svn/django/tags/releases/1.0.3/ to ./src/django
    (project) /var/www/project$ pip install -r requirements.txt
    Obtaining Django from svn+http://code.djangoproject.com/svn/django/tags/releases/1.0.3/#egg=Django (from -r requirements.txt (line 1))
      Checking out http://code.djangoproject.com/svn/django/tags/releases/1.0.3/ to ./src/django
    ... so on ...
    
  9. Almost there! You can keep installing more Python requirements with pip if you need, but we've got enough here to start.
  10. Create a file in /var/www/project called project-python.py. This will be the Python interpreter the webserver uses, and basically exec's itself into the virtalenv. The file should contain the following:
    activate_this = "/var/www/project/bin/activate_this.py"
    execfile(activate_this, dict(__file__=activate_this))
    from django.core.handlers.modpython import handler
    
  11. Now it's time to start the Django project. I like to create a new directory called project, which will be the parent directory kept in the SCM with all the code, media, templates, database (if using SQLite) etc. In this way to keep the two environments up-to-date I simply svn ci on one side, and svn co on the other.
    (project) /var/www/project$ mkdir project
    (project) /var/www/project/project$ mkdir db django media www
    (project) /var/www/project/project$ cd django/
    (project) /var/www/project/project/django$ django-admin startproject myproject
    
  12. Last step now is to wire-up Apache to serve it all up. The magic is making sure you specify the correct PythonHandler that you made before to use the virtualenv, and include the right paths so you can find it and all the required Django settings.
    DocumentRoot /var/www/project
    <Location "/">
        SetHandler python-program
        PythonHandler project-python
        PythonPath "['/var/www/project/','/var/www/project/project/django/'] + sys.path"
        SetEnv DJANGO_SETTINGS_MODULE myproject.settings
        PythonDebug On
    </Location>
    Alias /media /var/www/project/project/media
    <Location "/media">
        SetHandler none
    </Location>
    <Directory "/var/www/project/project/media">
        AllowOverride none
        Order allow,deny
        Allow from all
        Options FollowSymLinks Indexes
    </Directory>
    
With all this, you should be up and running in a basic but stable environment. It's easy enough to update packages for security fixes, etc via pip after activating your virtualenv.

Christian Perrier: Dedicated book offerred

During Debconf9, most Debian developers and contributors who were present there were kind enough to answer my call for dedications, meant to turn a gift I planned to offer to my former boss who just retired, into a special gift. You may then remember me going over all of you with Rapha l Hertzog and Roland Mas book in French (definitely the best French book about Debian) and asking you to sign it and write down some words. I finally managed to give Fran ois the book this week and, on his behalf, I'd like to thank all people who contributed to this. This was much appreciated and having that great book with that special addition made him very happy (even if he managed to install his other gift, namely a Dell laptop, with Debian squeeze, without the help of any book). Ladies and gentlemen, you rock. But you know that.

Steve McIntyre: Silly photos from Spain

While driving through Spain around DebConf, I saw a few things that I thought I should share with the world... San Sebastian runs on dbus!
let's all take the d-bus! ALSA on a coach:
alsa-riffic Wonderful fuel economy! We managed to fill up with diesel, then coast for about 15 miles down a very very very long downhill stretch into Bilbao. And just before we stopped at a toll booth at the bottom of the hill, the car's estimated MPG figure flipped to 99.9 and we got a blurry photo.
we could drive home on that tank...

10 September 2009

Carl Chenet: Python-keyring : accessing the system keyring service from Python


It s always painful to enter passwords in apps. Sometimes you just can t remember, especially if you don t use them on a regular basis. Keyrings fortunatly are really popular now (Gnome-keyring, KWallet) and provide a great way to manage your passwords, only requiring the unique keyring password. The Python keyring library offers a unique and simple library to access the active keyring on your system. Based on a idea by Tarez Ziad (official Python distutils module maintainer) and coded by Kang Zhang during the 2009 Google Summer of Code, this library aims to be merged when mature to the official Python getpass module. Python-keyring is looking for a sponsor. The Debian package for python-keyring has been uploaded on mentors.debian.net accessible at the following urls :

http://mentors.debian.net/debian/pool/main/p/python-keyring/
http://mentors.debian.net/debian/pool/main/p/python-keyring/python-keyring_0.1+hg66-1.dsc Please feel free to contact me if you re interested in sponsoring the Python keyring library.

Mark Brown: ASoC updates in 2.6.31

Linux 2.6.31 was released today. This was a fairly busy release for the ASoC subsystem, with updates including: Plus lots of updates and fixes to existing code, especially to the OMAP and TWL4030 drivers.

9 September 2009

Matthew Palmer: The Rise and Fall of Wordperfect

It's been sitting in my browser for so long that I've forgotten where I got it from, but I've just finished reading The Rise and Fall of Wordperfect Corporation, written by W. E. "Pete" Peterson, one of the very early employees of the company, and one of the top people there for many years. It's a really interesting book, giving some insights into what it was like in the early days of "the microcomputer revolution", and with some solid observations of how to (and how not to) run a software company, and manage a very rapidly growing organisation. I'd recommend it to computer historians, software development managers, and business owners.

Matthew Palmer: Water Tanks, Reliability, and Redundancy

Water supply, in the developed world, is one of those things you just pretty much take for granted. You turn on the tap, and clean, cool, refreshing water comes out. Similarly, when I go to a fire in my shiny fire truck, no matter what time of the day or night, I expect to able to hook up to a hydrant and have a strong, steady supply of water available. This level of reliability is something that we in the IT industry can typically only dream of. Practically 100% reliability over a period of decades, without constant maintenance and tweaking? Not a hope. To even get close to that, we need clusters of fully-redundant servers, fancy database replication techniques, and probably something totally out of left-field like Erlang's ability to reload code on the fly. But how do the water utilities do it? Clusters of fully-redundant high-capacity pumps, fancy pipe re-routing techniques? Or something totally out of left-field like a big water tank and gravity? Where I live, we've got the latter. Thinking about how it probably operates and is managed, I'm blown away by the sheer simplicity and robustness of the whole design, and how it can handle all manner of failures. First off, consider how few components have to be working in order for the water supply to continue for a while after some sort of catastrophic failure. We need: Note that this list of elements doesn't include any moving parts, or even guaranteed continuous water supply from a dam or other huge supply store. You can lose your feed pump(s), supply lines, or anything else that's on the supply side of the water tank for some period of time and nobody on the consumption side will know or care. Need more resilience to supply-side failure? Just build a bigger tank. This blows my mind, it really does. Need to do pump maintenance? No problem, just make sure that the tank is large enough to service demand over the period of the "outage", and go for it. Can't find a pump supplier to give you a restoration SLA of less than a week? Just make sure you've got a water tank that'll provide for a week's consumption. Basically, any supply-side reliability problem can be solved with "build a bigger tank", and while there's a limit to how big we can make tanks, I'll bet we know a lot more about building huge water tanks to withstand some freaky failure conditions than we do about building pumps that won't fail for 100 years. If you do need more capacity than a single tank can provide, just parallelise -- horizontal scaling of the water supply. Woohoo! Your big water tank also provides cost savings in your other equipment. If you had to pressurise a water supply using pumps, not only would you need your redundant array of very expensive pumps (Hmm, RAVEP-5 sounds like a Doctor Who villain), but those pumps would need to be able to provide your peak consumption flow (toilet breaks during the Super Bowl, probably). I'd imagine that could get mighty expensive, and without providing much benefit for 99% of the time. I see this capacity problem at work all the time. Customers who have the occasional massive traffic spikes need to massively over-provision their average utilisation to successfully service that 1% of the time that they're doing heavy traffic. Yes, I know, cloud computing, horizontal scaling, capacity on demand, yadda yadda yadda. It's not a panacea, and the number of apps that are designed to properly scale horizontally over a large range of traffic volumes is miniscule. My general point, though, is that it when you've got a variable load, it costs a whole lot more to provision systems to supply peak demand than to provision systems that can deal with average demand. A suitably large water tank means you can easily deploy a much smaller capacity feed pump. All you have to do is make sure that when demand exceeds supply, you've got enough water in your tank to cover the difference between the demand and supply over that period. When your peak capacity increases, and is starting to strain your infrastructure, you've got a choice, too: you can upgrade the pump or increase your storage capacity, whichever is cheaper / easier / quicker / provides better kickbacks / whatever. This is all well and good, you say, but computer systems aren't water supplies. There's a lot more moving parts, inputs, and outputs, and those all have to be handled. This is quite true. Water-powered computers are not in high demand. However, I think we could produce some much more reliable systems if we looked for ways we could simplify capacity and redundancy issues, water supply style, instead of layering more and more cruft into our solutions.
Ironically, just after I started writing this post (and this gives you an idea of how long it's been sitting in my drafts folder), I saw an article in the RISKS digest about a water supply problem in Santa Cruz, caused by a power outage killing the refill pump for an extended period and resulting in the storage tank running dry. Hey, I never said that it was a foolproof system -- especially when you've got failures of imagination that result in the system that tells people that there's no power relying on the power source it's monitoring being up in order to be able to tell people that there's no power...

Brett Parker: LVM weirdness

I'm having some issues with LVM, basically it appears that I can't assign over a certain amount of my pv, where that certain amount is somewhere around 1.5TB... output from all the relevant chunks are:
ensenada:~# lvdisplay
  --- Logical volume ---
  LV Name                /dev/main/root
  VG Name                main
  LV UUID                ZR33WS-glE2-bUn6-adCX-n50C-37eX-Fc7Pde
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                7.45 GB
  Current LE             1907
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:0
  --- Logical volume ---
  LV Name                /dev/main/voldemort
  VG Name                main
  LV UUID                DrT0co-THRw-6Zcy-Q3PT-OiQj-4KBz-xfV0Un
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                1.37 TB
  Current LE             358400
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:1
ensenada:~# vgdisplay
  --- Volume group ---
  VG Name               main
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  56
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               5.45 TB
  PE Size               4.00 MB
  Total PE              1428053
  Alloc PE / Size       360307 / 1.37 TB
  Free  PE / Size       1067746 / 4.07 TB
  VG UUID               ddVSIr-W9BU-XOWJ-gdSo-HZ4m-vw3M-S33Q3s
ensenada:~# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               main
  PV Size               5.45 TB / not usable 1.54 MB
  Allocatable           yes
  PE Size (KByte)       4096
  Total PE              1428053
  Free PE               1067746
  Allocated PE          360307
  PV UUID               sFxRYg-Ua60-zpMT-DMqo-tpD5-d24W-qfW31p
ensenada:~# lvcreate -n test -L 74G main
  Logical volume "test" created
ensenada:~# pvs
  PV         VG   Fmt  Attr PSize PFree
  /dev/sda3  main lvm2 a-   5.45T 4.00T
ensenada:~# lvs
  LV        VG   Attr   LSize  Origin Snap%  Move Log Copy%  Convert
  root      main -wi-ao  7.45G
  test      main -wi-a- 74.00G
  voldemort main -wi-ao  1.37T
ensenada:~# lvremove /dev/main/test
Do you really want to remove active logical volume "test"? [y/n]: y
  Logical volume "test" successfully removed
ensenada:~# lvcreate -n test -L 75G main
  device-mapper: reload ioctl failed: Invalid argument
  Aborting. Failed to activate new LV to wipe the start of it.
  LV main/test in use: not deactivating
  Unable to deactivate failed new LV. Manual intervention required.
ensenada:~# lvremove /dev/main/test
Do you really want to remove active logical volume "test"? [y/n]: y
  Logical volume "test" successfully removed
ensenada:~# lvcreate -n test -L 74G main
  Logical volume "test" created
ensenada:~# lvremove /dev/main/test
Do you really want to remove active logical volume "test"? [y/n]: y
  Logical volume "test" successfully removed
ensenada:~#
Please, someone, put me out of my misery - this is driving me nuts! Extra info:
ensenada:~# uname -a
Linux ensenada 2.6.26-2-amd64 #1 SMP Fri Aug 14 07:12:04 UTC 2009 x86_64 GNU/Linux
ensenada:~# dpkg -l lvm2
Desired=Unknown/Install/Remove/Purge/Hold
  Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
 / Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
 / Name                  Version               Description
+++-=====================-=====================-==========================================================
ii  lvm2                  2.02.39-7             The Linux Logical Volume Manager
ensenada:~#
ensenada:~# cat /etc/debian_version
5.0.1
(Erm, just remembered that I haven't got comments enabled at the mo, so if you've got fixes, please mail me! iDunno@sommitrealweird.co.uk - thanks!)

8 September 2009

Andreas Metzler: hugin 0.8.0 in experimental

We have finally managed to upload hugin 0.8.0 to experimental. It will probably end up in sid soonish. Upstream is already busy preparing 2009.2 (swiftly sidestepping any possibility for a 1.0 ever ;-) lenny backport available on this site.

7 September 2009

Jordi Mallach: Flags and outrages

A bit more than two years ago, two young Spaniards on vacation in Latvia maybe went a bit too far during one of their night parties and decided to remove some Latvian flags that hanged from a post in the streets of Riga. They spent 1 month in prison, with charges for outraging the Latvian flag. The Spanish media talked about the disproportionate charges, the ridiculous and medieval laws in Latvia and so on. Today, we learn that Jaume d'Urgell will go to prison due to the outraging crime of substituting the current Spanish flag with the Republican flag of 1931 on the facade of a public building. So much for medieval laws and institutions like the Spanish monarchy.

Eugene V. Lyubimkin: I became DD.

That are only 3 simple words, but their value is hard to underrate. It's very important milestone in my Debian work.

The achievement might not be possible, if there wasn't the help of:
- Vincent Bernat, who thoroughly corrected my first packaging and sponsored my first (and not only) package;
- Dmitry E. Oboukhov, who uploaded many packages for me and also gave some useful advices;
- Roger Leigh, who spent not one day to improve my packaging skills, and also advocated my NM application;
- Enrico Zini, who was my NM Application Manager.
Thank you!

Thanks to people who built my NM procession chain up to creating the account: Bernd Zeimetz (FD), Christoph Berg (DAM), Peter Palfrader (account creation).

Wouter Verhelst: Tennis: Back Again!

It wasn't too long that Kim Clijsters retired from Tennis, with Justine Henin following her not too long after that. At that point, with the next best player, Kirsten Flipkens, being ranked a hundred-something, I thought it'd be a long time before we'd see Belgian women's tennis reappear. Certainly I didn't think we'd be hopeful this year already. As such, I'm delighted to be able to say that not only is Kim Clijsters making a smashing come-back already beating Venus Williams, ranked 3rd on the WTA lists, at the US open, and only a few months after her returning to tennis at that but Yanina Wickmayer, ranked 50-something on the WTA lists by now, has managed to reach the last 16 players. With Kirsten besting her career record by reaching the 3rd round of the US Open (before being ousted by Kim, no less), I feel the future of Belgian Women's tennis is looking very bright indeed. Perhaps I should think about getting that cable subscription, so I can actually watch the matches.

Russell Coker: Bad but Appealing Copyright Arguments

Some people seem to believe that the problem with copyright law is the inability of people on the free culture side of the debate to compete with the large amounts of money that are being spent but the RIAA et al. I think that a significant part of the problem is that many intelligent and well-meaning people are simply unaware of or unconvinced by the arguments. For example the Reid Report post titled Paul Porter speaks truth to Black radio [1] includes the quote Only the United States, North Korea and Iran don t pay royalties for performers on free AM/FM radio . This point actually sounds quite reasonable and will convince many intelligent and well-meaning people who have an interest in politics such as Ms Reid. Cory Doctorow has written an interesting article titled Internet rapshoot: How Internet Gatekeepers Stifle Progress [2]. He describes how the big entertainment companies are failing to properly represent their customers or the artists who produce the content, and in the process creating monopolies out of companies such as Apple and Google. Cory starts by raising the issue of cultural discourse, monopolies in the distribution of popular art will lead to control over the political process. Ironically the article that Ms Reid cited [3] mentions the issue of pay for play which led to a steady diet of misogyny, violence and drug culture on the airwaves. Brendan Scott has written about a similar issue in Australia where the music copyright holders are trying to get massive increases in license fees from restaurants and other small businesses [4]. The expected result of this is greater use of classical music (which is out of copyright) and more interest in purchasing licenses from small musicians who aren t affiliated with the music cartels. One of his main points is that playing music in public places (including public radio frequencies) is the major form of advertising for musicians. Michael Tiemann writes about a Brazilian band that has been quite profitable by skipping the recording industry, providing the fans what they want, and selling CDs direct to fans [5]. This is one of many examples to illustrate the fact that the current music factory system is not required for musicians to make a profit. Amanda Palmer has written an interesting blog post about how the Warner music group wasn t getting as much money from Youtube as they wanted so they demanded that HER music videos be removed [6] (among many others). So we have a music studio that doesn t even pay the artist (below a certain number of sales the artist gets no payment, selling 30,000 albums is not enough to get a cent) demanding that the music videos be made unavailable to fans when the artist wants them published. This is a travesty and if similar licensing schemes are implemented for radio stations then we can expect that some radio stations will be financially discouraged from playing music even when the artist would be happy to have it played for free! In Australia we have an organisation that secretly taxes all viewing of material that they think is under copyright with a suitable license (they give no detailed information on how they determine the copyright and license status they probably violate my license by taxing universities for copying posts from my blog). Educational institutions and other organisations that sign up get to pay them some money based on what they are deemed to have used. The money is then distributed to the creators in proportion to the amount of use their material received. The distribution rules state that any amount less than $50 per year for an Australian resident or $200 per year for a non-resident will be instead redistributed to other people [7]. Usually analysis of The Long Tail [8] comprises the majority of the sales if users are given enough opportunities to search for a product that is a good match for their requirements. This is the entire basis of businesses such as Amazon.com. The Australian Copyright Agency (Copyright Agency Limited CAL) seems to have a business model of taking all the revenue that might be earned by the creative people in the long tail and give it all to the top performers. If a similar system was implemented for the US music industry then it would be great for Michael Jackson s estate, but bad for the vast majority of musicians. It seems likely to me that the current situation with the music industry is fairly optimal for making a few very popular musicians very rich. The proposed changes for the US will make things even better/worse (depending if you are among the rich few or the majority of the population). One thing we need to ask ourselves is whether we want laws that will make a few people rich or laws that will give many people an adequate income for work they enjoy and which also enriches our culture. This correct decision seems obvious to me. Can anyone think of other good points that should be raised when discussing such issues with people who don t consider copyright to be a big issue?

6 September 2009

Stefano Zacchiroli: rc bug of the day - again

8 RC bugs in 8 days I got back from vacation about 10 days ago. For the first time in recent years, I've spent 2 weeks of vacation mostly without email (excluding 2 "breaks" of 10 minutes each in an internet point, just to verify that my electronic world was not collapsing). The net result is that I feel very recharged and more productive both at work and for other tasks. Including Debian. Hence, during last week, I've tried an experiment. When during the day I feel bored about a given task, instead of reloading compulsively the page of an online newspaper, instead of checking (once more) my email, instead of checking (once more) my feeds, I try to fix an RC bug. For the first week, the result has been encouraging: one RC bug fixed per day (on the average, some day I haven't fixed any, some other 2 or 3): In some sense, this try to be kudos to the amazing initiative of Sesse, a few releases ago (or was it Lenny? my memory still sucks, no matter how recharged I feel). He has been fixing one RC bug a day for several months. I'm quite sure I won't be able to deliver the same result, but maybe this post will motivate other people, so that collectively we can fix a handful of RC bugs per day. Of course in the beginning it's easy, because there are a lot of "simple" bugs to fix and also because (as you can notice in the list above) "clusters" of similar RC bugs, that require similar fixes, can be identified. But the effort is useful nevertheless, since it cleans up RC bug list enabling more capable people to fix more resistent bugs. I'm gonna tag RC reports like this one with "rc" and "debian". If people follow up with similar initiatives we can rinse out of planet a feed of pretty good news for the Debian development community :-) In the interest of sharing best practices, here is my RC bug squashing workflow:
  1. go to http://bts.turmzimmer.net/details.php, choose "both" (i.e. squeeze + sid) as distribution and sort by "bugnr" (so that you can avoid most recent reports, which are not yet NMU material)
  2. choose an inspiring bug form the list which is at least 1 week old (better at least 2 or 3), study its log; for the moment, I tend to prefer neglected bug logs, where the maintainer has been unresponsive
  3. apt-get source package , sudo cowbuilder --build package_1.2-3.dsc , install the result and check for bug reproducibility
  4. fix the bug ! (yes, this is the easy step :-) ), taking care of not changing anything else
  5. dch --nmu
  6. dpkg-source -b package-1.2/ , sudo cowbuilder --build package_1.2-3.1.dsc , check if the bug is fixed and the package otherwise working
  7. lintian package_1.2-3.1.changes , check that there are no regressions in lintian errors wrt latest uploaded version
  8. interdiff -z package_1.2-3.diff.gz package_1.2-3.1.diff.gz , check that no unexpected changes have slipped in
  9. debsign package_1.2-3.1*changes , dput -e 2 package_1.2-3.1*changes (as allowed by devref 5.11.1)
  10. nmudiff --delay 2 , in the text: briefly describe in what the patch consists, and mention devref 5.11.1
I welcome suggestions on how to improve the above workflow in order to be both more effective and more polite with maintainers (FWIW, all the maintainer feedback I've received thus far for the above NMUs has been totally positive: you rock guys.).

5 September 2009

Jon Dowland: exploring git repositories

I am in the process of moving the Doom packages that the Debian Games Team maintain from subversion to git. I started with a small native package called game-data-packager. The clone operation took hours to run and resulted in a 90-odd Mb git repository. Since game-data-packager is a relatively small collection of shell scripts with a recent history, I have reason to believe that git svn has imported much more of the Games Team SVN repo than just the game-data-packager bits. After fiddling with git repack -a -d, git prune and git gc --aggressive, the repository is still 80Mb large. How do I determine what is using all this space? Can anyone advise me on the best way to analyse a repository like this?

Olivier Berger: Triplification / RDF extraction for bugzillas and for Debian bugs

To summarize some ideas and try and promote the work we ve done in the frame of Helios, we ve submitted a short paper (PDF) to the triplification challenge. Alas, others had better projects, and we didn t win, apparently. Still, we ll continue to work beyond these initial demonstrators, in order to try and push for a standard of interchange of facts / meta-data about bugs, for instance as RDF using the EvoOnt BOM ontology plus our extensions. The paper describes the 2 first demonstrators that we ve setup (and for which I previously blogged) : one for the triplification of bugzilla, and one for the triplification about Debian bugs, using UDD to do so.
Abstract: To interconnect bugtrackers, and especially the one used to manage free
software projects, one need tools to convert their custom format to a common interop-
erable form. We, in the context of the Helios project, are working on refining existing
ontologies to describe bugs from the most used bugtrackers in open source software. We
propose two prototypes for review, based on triplify and EvoOnt BOM, which export
bugs from bugzilla installations and Debian s UDD in the form of RDF triples.
Read the rest in Bugtrackers triplification (PDF)

4 September 2009

Russell Coker: Ownership of Laptops for Work

Jetstar has announced some new changes to the way they manage their IT infrastructure [1]. Some parts of it are obvious things that people have been doing (or wanting to do) for a long time such as using thin clients with no moving parts (not even cooling fans). But the really interesting part is their plan for managing laptops. They are using a virtual machine image on a flash storage device that can run on any system. So deploying a new system will only require installing the virtual machine software and inserting a storage device. Moving a user s environment to a different system (EG due to hardware failure) will merely require inserting the storage device in a new system. That raises the issue of ownership of the device. It seems that Jetstar are considering using systems that are owned by employees, Stephen Tame said In two years time a laptop should be a condition of employment, and this includes bringing your own laptop . When introducing that I expect there would be some resistance by employees who don t want to spend the money. However
I have previously estimated the costs of running a car [2] which works out to more than $1,650 per year for insurance, registration, basic maintenance, and the interest that would have been received if the car had not been purchased and the money had been invested. Laptops can be purchased for significantly less than $1000 (currently the EeePC 701 is on sale for $219) and can be expected to last for three years or more if you are careful to avoid damage and don t run demanding software. So a job that demands ownership of a laptop is asking for a much smaller financial investment than one which demands ownership of a car. But I expect that many employees won t see it that way. The up-side for employees to bring their own laptops is that they can choose a model that suits their preference. Everyone has preferences regarding the size of keys on a keyboard, the distance that they travel and the pressure required to register a key-press. For desktop machines it s easy to swap keyboards but for laptops there is no such option. Then there s the issue of the trade-off between physical size and weight vs display resolution, personal preferences in this regard will depend to some extent on the body mass and strength of the employee. Now there are a number of security issues related to personal laptop use. Obviously if the laptop has a Trojan-horse program installed then it could sniff any data that goes past on the network. The most trivial case of this could be addressed by running VPN software inside the emulated environment. This would force a Trojan to compromise the virtual environment (EG by modifying the address space) or to compromise the files on disk (insert a Trojan inside the filesystem for the virtual environment). The former would be tricky to get right while the latter would be trivial. Both attack methods have been used in the past and proven to work. This is why many companies prohibit their employees from connecting their own systems to the corporate network. One example of a system that is based around running virtual machines for all desktop operations is the NSA NetTop project [3]. NetTop involves a SE Linux system that runs multiple instances of VMWare for different desktop environments. Each VMWare instance runs at a particular sensitivity level and uses a VPN connection to a back-end network running at the same level. The aim of NetTop is to prevent applications in the different VMWare instances from communicating with each other. The significant difference between a typical NetTop installation and what JetStar might be doing is that NetTop runs on a secure base it s hardware that has been purchased and installed by a military organisation and is run in a secure facility. While personal laptops that are owned by employees can be expected to be infected with viruses and Trojan-horse programs. In the past I have suggested that an employment package for any skilled employee should include some budget for buying things that facilitate the work [4]. It seems to me that a company like JetStar could best achieve their goals by assigning a budget to each new employee to buy a machine for their use. The employee then gets to choose a machine up to that budget which would only be for work purposes. Then when the employee leaves or the machine becomes due for replacement it could be sold at auction. When considering all the costs involved in hiring a new person, spending something less than $1,000 to buy a laptop is nothing. Finally if buying machines for work purposes, you really don t want employees using them for surfing porn. Porn sites tend to be particularly bad for malware distribution. To reduce the incidence of such problems I think that work machines should have their sound hardware disabled and laptops should not be purchased with overly large displays. There is no need to make work machines totally unsuitable for porn surfing (which would also make them less effective for work), but making them less suitable than a $500 budget PC should dramatically reduce the scope of the problem.

Erich Schubert: Friends update - LiveDash, HoneyWish, Amiando

A short update on some friends of mine.First of all, Patrick F. Riley - I worked with him on some projects when I was visiting the UC Berkeley, one of which was a predecessor to his latest thing: LiveDash. It's really cool: it allows you to search almost in realtime in TV feeds. It also live-indexes Twitter, blogs, news sources etc.Secondly, HoneyWish (currently only available in German) is a service for a "honeymoon travel gift list" thing. It works like the traditional gift lists, except that instead of putting all kind of household stuff on it, there are all the parts of the honeymoon trip on the gift list. This makes much more sense these days: people tend to get married later; they might even be sharing a house for some time before getting married. So they don't need much silverware anymore, but they for sure will enjoy their honeymoon trip - so what could be a better gift for them?Third, Amiando a web-based ticketing and event management service. Founded already some years ago by some friends, it has been growing and coming along nicely. Every now and then, it won some award, many of them in the "top startup" category.There are of course many more projects of friends I'd like to point out, but these three definitely are highlights.

Next.

Previous.