Search Results: "mornfall"

19 January 2012

Obey Arthur Liu: State of the Aptitude (week 12)

Hi folks!

We're almost done for the official Summer of Code program and I thought that I couldn't let it end without another update, so here we are (you may thank Daniel Burrows for additional poking).

The Gtk+ interface for Aptitude is making great progress. The product is not final yet but already implements many of the planned ideas, with others to come.
Here are the screenies:




So, let's see the tasks presented in my previous update:

In some more details: we are now much closer to the final interface. Some things are not done yet, for example, notification bars la Iceweasel (or is it Firefox ?) are in the works for unobtrusive notifications about important things and a little guidance.

We are much more reliable now. We eliminated lots of memory management problems that resulted from, mmh, imperfect coding discipline. We also lock the interface when important backend stuff reload to prevent the user from shooting himself in the foot when triggering an install when the APT cache is reloading for example.. The backend refactoring took a sizable part of this second term but it was worth it. The code is now much cleaner and uses no more (at least much fewer) ugly unscalable hacks.

One very important feature of Aptitude is the ability to easily display all kinds of dependencies and navigate through them by hyperlinking. It's now working in the Gtk+ interface as well. Feel free to click on whatever looks like a package or a package version.

We now support the powerful Aptitude package searching syntax. Daniel Burrows is talking with Enrico Zini to bring the power of apt-xapian-index to Aptitude: autocompletion! lightning fast full-text searches! tag clouds! ponies!

There is still a lot to be done. I'm not going away after the GSoC program. I'm here to stay, for Aptitude and Debian. Daniel Burrows has been very helpful and supportive. The Debian community is as awesome as I knew it before participating in the program.

Daniel Burrows is planning to merge the Gtk+ interface into the main branch in September and packages may appear into Experimental. With the very interesting evolutions of the upcoming Adept-3, Lenny+1 will show very interesting changes in the area of packages managers.

Now for you. I need you to test my interface. All necessary instructions are on the development trac : http://dev.graffit.net/aptitude/trac.

23 April 2009

Petr Rockai: darcs sprint 2009-04

As you might know, as part of the Haskell Hackathon 5 in Utrecht, the second darcs hacking sprint took place. Thanks to generous donations to the Darcs project, I have been able to attend. I took the overnight train from Prague on Thursday evening interestingly, we managed to accumulate about 90 minute delay in Germany, but by skipping some detours (throwing passangers out at more convenient ones) we managed to get to Utrecht on time. (Wow.) After a while of confusion, we managed to get our strippencards and find the right bus and get to the UU campus (at that time, we have already met with Thorkil, whose train was combined with mine in the middle of the night somewhere in Germany). The first thing there was to get our name tags and a round of introductions followed I was fairly surprising by (large) number of darcs hackers among the general Haskell population present at the Hackathon. Overall during the sprint, various topics have been discussed ranging from theory issues to actual implementation bits in current darcs. Some roadmapping has taken place. It was great to see all those darcs people together. More interestingly, it sort of convinced me that actually something is going on with darcs. Although most people seem to be pretty short on time, at least I got the impression that people have actual intent to keep advancing darcs, in one form or other. Also, there s been some preliminary plotting on what is the life expectancy of darcs 2, roughly. My current plan is to use darcs 2 as an implementation vehicle, because people use it in real life, for carrying out the actual work on hashed-storage. That way, we should be able to de-couple low-level repository and file access code from darcs itself, also meaning it should be reasonably easy to plug it into camp later (or maybe it turns out we instead want to remodel darcs so that we can plug camp-core in time should tell). We have done some bits of work on darcsit (gitit) migration of wiki.darcs.net, although it hasn t been so much of a smooth sailing. I have even tried to set up gitit on one of my machines, but cabal-installed happstack went eventually crashing and burning instead of doing anything useful. I m stuck on that front, hoping that Eric and Gwern can get test.darcs.net running within reasonable resource usage. I have thrown a chat with various people about hashed storage and I have explained various problems of the current darcs hashed repositories and how hashed storage addresses those. Also, I have talked with Benedikt about his filecache and we entertained some initial thoughts on how those two play together. We have also spent a while at a whiteboard with Eric discussing what needs to be fixed in sources handling: the file that lives under _darcs/prefs/sources and that keeps track of related branches of a given repository. The catch is, that when inappropriate entries get into that file, bad things can happen: darcs repeatedly waiting for a nonexistent remote machine to answer, or triggering automount a few thousand times by probing just the wrong directory. These need to be remedied and we came up with a reasonable action plan. Hope to have this in 2.3, as it should be moderately hard to fix and it has potential to sweep a fair amount of silly and obscure performance bugs. All in all, it seems to me that the important part of the sprint this time was talking to people and thinking about things. Still, I did manage to get some hashed-storage coding done (but mostly cleaning up and documenting work) during the sprint. I expect the fruit of the sprint discussions to take shape in form of code improvements in following months.

16 January 2009

Petr Rockai: darcs 2.2.0

I am happy to announce general availability of darcs 2.2.0. Getting the release For this release, we have decided to provide two flavours, depending on the build system used:
  1. The source tarball, http://www.darcs.net/darcs-2.2.0.tar.gz, which can be built using the traditional autoconf-based system. This is the fully supported version. After downloading and unpacking, you can issue:
    $ ./configure
    $ make
    
    and possibly
    # make install
    
    More detailed instructions inside the tarball (file README). Please note that we had at least one report of build failure, with quickcheck-related message. The currently best workaround, if this happens to you, is to use the cabal version of the package instead, see below.
  2. Cabalised source. You can either download a tarball from http://hackage.haskell.org/packages/archive/darcs/2.2.0/darcs-2.2.0.tar.gz and build manually (see the build instructions in README inside the tarball), or, alternatively, you can use cabal-install to obtain a copy:
    $ cabal update
    $ cabal install darcs
    
    This will give you a darcs binary in ~/.cabal/bin you should probably add that to your PATH.
In addition to source tarballs, we expect binary packages for various UNIX platforms will be available in due time. For Windows users, Salvatore Insalaco has prepared a binary build, available from http://homepage.mac.com/kirby81_it/darcs/darcs-2.2.0-win1.zip. You just need to unpack the directory somewhere and add it to your path (if you like). Moreover, an experimental TortoiseDarcs release for darcs 2 has been made available by Kari Hoijarvi and is looking for home. It can be found at http://datafed.net/darcs (unfortunately, at the time of this writing, the site seemed unreachable If you can help with hosting, please mail Kari.) What s New The summary of changes since version 2.1.2 (released last November) follows: And a summary of issues that have been fixed in darcs since version 2.1.2 (compiled by Thorkil Naur): 525 amend-record => darcs patches show duplicate additions
971 darcs check fails (case sensitivity on filenames)
1006 darcs check and repair do not look for adds
1043 pull => mergeAfterConflicting failed in geteff (2.0.2+)
1101 darcs send cc recipient not included in success message
1117 Whatsnew should warn on non-recorded files
1144 Add darcs send in-reply-to or header In-Reply-To: x@y.z
1165 get should print last gotten tag
1196 Asking for changes in /. of directory that doesn t exist gives changes in entire repo
1198 Reproducible mergeConflictingNons failed in geteff with ix
1199 Backup files darcs added after external merge
1223 sporadic init.sh test failure (2.1.1rc2+472)
1238 wish: darcs help setpref should list all prefs
1247 make TAGS is broken
1249 2.1.2 (+ 342 patches) local drive detection on Windows error
1272 amend-record not the same as unrecord + record
1273 renameFile: does not exist (No such file or directory)
1223 sporadic init.sh test failure (2.1.1rc2+472) I would like to thank all contributors for making this release possible. Future The next release will be 2.2.1, fixing low-risk issues found in 2.2.0, or those that have been excluded for 2.2.0 due to freeze. This release will appear in two or three weeks time, depending on circumstances. The next major release will be 2.3, due in June or July this year. The focus of this release will be new features and further work on performance. Moreover, we expect that it will use Cabal as its default build system and will make first steps towards sustainable libdarcs API.

13 January 2009

Petr Rockai: darcs 2.2.0rc1

(This post is somewhat late, the final release is in two days. However, we still need testing and reports of possible issues.) I am pleased to announce that darcs 2.2 is coming along nicely. I would like to ask everyone to give a ride to darcs 2.2, release candidate 1. This release again comes in two flavours:
  1. The source tarball, http://repos.mornfall.net/darcs/darcs-2.2.0rc1.tar.gz, which can be built using the traditional autoconf-based buildsystem. This is the fully supported version. After downloading and unpacking, you can issue:
    $ ./configure
    $ make
    $ ./darcs --version
    
    or
    # make install
    
    More detailed instructions inside the tarball (file README).
  2. Cabalised source. You can either download a tarball from http://repos.mornfall.net/darcs/darcs-2.1.99.0.tar.gz and build manually (see the build instructions in README inside the tarball), or, alternatively, you can use cabal-install to obtain a copy (the release candidate is now available on hackage):
    $ cabal update  
    $ cabal install darcs
    
    This should give you a darcs binary in ~/.cabal/bin you should probably add that to your PATH.
This is a preliminary changelog since version 2.1.2 (released last November): Preliminary list of issues that have been fixed in darcs since version 2.1.2: 1223 sporadic init.sh test failure (2.1.1rc2+472)
525 amend-record => darcs patches show duplicate additions
1247 make TAGS is broken
1273 renameFile: does not exist (No such file or directory)
1165 get should print last gotten tag
1249 2.1.2 (+ 342 patches) local drive detection on Windows error
1238 wish: darcs help setpref should list all prefs
1199 Backup files darcs added after external merge
1043 pull => mergeAfterConflicting failed in geteff (2.0.2+)
1117 Whatsnew should warn on non-recorded files
1101 darcs send cc recipient not included in success message Thanks to Thorkil Naur for compiling this list. I would like to thank all contributors developers, testers, bystanders for helping darcs get along further. It s been hard times recently for darcs, as many of you probably know. Nevertheless, we are regaining confidence in future darcs development. No way are we going to leave darcs fall by the road. I am sure that this one time, I speak for everyone in our developer and user community.

17 December 2008

Petr Rockai: farewell, adept

I am quite sad to announce that I am discontinuing Adept development for good. Since Kubuntu will be changing its default manager to KPackageKit (I wish everyone involved good luck), I have no further motivation to work on Adept at all. I have mostly done the 3.0 overhaul since Jonathan Riddell is my friend, and I like to make my friends happy. However, since this is no longer a factor, and my time is likely better invested elsewhere, I am giving up altogether. Of course, if anyone steps up for maintainership, I will happily delegate Adept to them. It is in a relatively good shape these days, I hope. I will keep the source (darcs) repositories around as long as reasonably possible. If you are interested in taking over, even despite the Adept userbase declining sharply in near future, please drop me a mail. With Adept goes also libept, a more general-purpose library for working with APT. I will be around when people need me to fix it, but won t add anything on my own. I am not even sure what is Enrico s status on libept, but probably just consider libept as good as orphaned, too. On a more personal note, this closes a long (very long) chapter in my free software life. I d like to thank everyone involved with it, there have been many of you. Moreover, this apparently cuts the few remaining ties I had to KDE development community I will miss you. well, maybe one of those days UPDATE: No, this does not mean I am no longer friends with Jonathan. I don t know why, but already two people managed to read it that way. To put it in hopefully less ambiguous words: The fact that Jonathan is my friend is no longer a factor just because he does not need Adept anymore. Hope that helps.

16 October 2008

Petr Rockai: adept 3.0 beta 4

I have released fourth beta of Adept today. For the unaware, Adept is an APT front-end for KDE: it lets you install, remove, upgrade software and such your Debian and Kubuntu boxes (and maybe on some other Debian derivatives, too). Changes since Beta 2 Since I have done beta 3 somewhat in a hurry, I have regressed the installer component badly — to point of complete unusability. However un-sound software engineering practice, the deep freeze for Kubuntu Intrepid hits today, so I have released beta 4 in rapid succession. Other than the regression fix, I have mostly reworked the paging implementation in the installer — however, the report of complete installer rewrite (hi Jonathan) is somewhat exaggerated. Sadly, the KPageWidget we have been using before turns out to be completely unsuitable for the job, so a quick rewrite probably fixed more issues than it caused (and this seems to be confirmed by early testing feedback). Moreover, this beta got a bunch of improvements to the search, including package name hits, a set of cosmetic improvements (button icons, nicer sidebar, etc.) and a button to run software-properties-kde from the Sources tab (works on Intrepid, but sadly breaks on Debian for now… will fix later. Need time, need sleep.) Where to get I have prepared binary packages. These should be now part of Debian Sid (unstable) and also of Kubuntu Intrepid. You should be able to get the new version from your distribution:
apt-get install adept
Again, as with beta 2, there is no Hardy backport, since my time is tight. If anyone is willing to do a backport please drop me a note: I will gladly publish installation instructions. Heroes of Beta 4 Jobs for Beta 5, RC and Final Mostly just testing and reporting bugs. I currently plan a beta 5 with a few fixes that have started accumulating since beta 4 already (mostly one-liner fixes with minimal risk of regressions). After that, an RC is in order and a final release (finally…). Notifier is not included. Kubuntu has an independent sort of notifier now, I believe. Maybe I’ll find time to reconcile it in 3.1 or so. Moreover, I assume that a beta 4 or a very minorly patched beta 4 will become part of Kubuntu Intrepid — there should be no major roadblocks left, so I hope everything will bode well for Intrepid. I assume that whatever becomes 3.0 final will be eventually included in Intrepid updates. And then, plans should be set forth for 3.1… Known issues The about dialog still says beta 2. Bummer. Please try to note in your reports that this is actually a beta 4 that you are using. I’ll make sure beta 5 fixes that — but it might be another week till then, or so. The Intrepid version should have that fixed, thanks to Jonathan Thomas (again).

9 September 2008

Petr Rockai: adept 3.0 beta 2

I have released second beta of Adept a few hours ago. For the unaware, Adept is an APT front-end for KDE: it lets you install, remove, upgrade software and such your Debian and Kubuntu boxes (and maybe on some other Debian derivatives, too). Changes since Alpha 6 Now, alpha 6 has been the last alpha release, therefore there are no more new features in beta 2. Most of the issues should have been resolved. I have also added a menubar, resolving a potential usability problem (and making the about box accessible, too!). There will be another beta that should fix the few remaining known issues. Please report any issues you have encountered to me (either mail, irc or bugs.kde.org). Where to get I have prepared binary packages. These should be now part of Debian Sid (unstable) and also of Kubuntu Intrepid. You should be able to get the new version from your distribution:
apt-get install adept
There is no Hardy backport, since my time is tight. If anyone is willing to do a backport (you can use the stuff that is in my PPA; however, some things need updating), please drop me a note: I will gladly publish installation instructions. Heroes of Beta 2 There has been a (silent) beta 1 a while back, which introduced a couple of regressions against alpha 6 (but fixed bugs, too!). Jobs for Beta 2 Sorting through Launchpad for bugs that have been fixed is still needed, as far as I know. JontheEchidna has been working on this (and maybe some others have? Drop me a note if you worked on this and claim your fair share of fame… Sorry that I don’t keep track of that, but you know the story… too much stuff to do in too little time, all the time.) Notifier is not included. Kubuntu has an independent sort of notifier now, I believe. Maybe I’ll find time to reconcile it in 3.1 or so.

13 August 2008

Obey Arthur Liu: State of the Aptitude (week 12)

Hi folks! We’re almost done for the official Summer of Code program and I thought that I couldn’t let it end without another update, so here we are (you may thank Daniel Burrows for additional poking). The Gtk+ interface for Aptitude is making great progress. The product is not final yet but already implements many of the planned ideas, with others to come. Here are the screenies: aptitude-20080813-1 aptitude-20080813-2 aptitude-20080813-3 So, let’s see the tasks presented in my previous update: In some more details: we are now much closer to the final interface. Some things are not done yet, for example, notification bars la Iceweasel (or is it Firefox ?) are in the works for unobtrusive notifications about important things and a little guidance. We are much more reliable now. We eliminated lots of memory management problems that resulted from, mmh, imperfect coding discipline. We also lock the interface when important backend stuff reload to prevent the user from shooting himself in the foot when triggering an install when the APT cache is reloading for example.. The backend refactoring took a sizable part of this second term but it was worth it. The code is now much cleaner and uses no more (at least much fewer) ugly unscalable hacks. One very important feature of Aptitude is the ability to easily display all kinds of dependencies and navigate through them by hyperlinking. It’s now working in the Gtk+ interface as well. Feel free to click on whatever looks like a package or a package version. We now support the powerful Aptitude package searching syntax. Daniel Burrows is talking with Enrico Zini to bring the power of apt-xapian-index to Aptitude: autocompletion! lightning fast full-text searches! tag clouds! ponies! There is still a lot to be done. I’m not going away after the GSoC program. I’m here to stay, for Aptitude and Debian. Daniel Burrows has been very helpful and supportive. The Debian community is as awesome as I knew it before participating in the program. Daniel Burrows is planning to merge the Gtk+ interface into the main branch in September and packages may appear into Experimental. With the very interesting evolutions of the upcoming Adept-3, Lenny+1 will show very interesting changes in the area of packages managers. Now for you. I need you to test my interface. All necessary instructions are on the development trac : http://dev.graffit.net/aptitude/trac.

8 August 2008

Enrico Zini: Handling concurrent update-apt-xapian-index runs

Handling concurrent update-apt-xapian-index runs So, update-apt-xapian-index takes a bit of a long time to run. When you install the package, if the index isn't there then postinst will rebuild it in background, good. Now, suppose you have an advanced package manager that after installing apt-xapian-index, detects that it's installed, detects that there is no database and runs an update with a nice GUI feedback. If this happened while the update is running in the background, the usual thing to do would be to abort the update; however, the package manager wouldn't be able to know when the indexing has finished and it can enable the advanced features. Let's not do the usual thing, then:
#  progress' is the object that does progress reporting.  Commandline options
# can choose a silent one, a machine readable one or a user readable one.
# Lock the session so that we prevent concurrent updates
lockfd = os.open(XAPIANDBLOCK, os.O_RDWR   os.O_CREAT)
lockpyfd = os.fdopen(lockfd)
try:
    fcntl.lockf(lockpyfd, fcntl.LOCK_EX   fcntl.LOCK_NB)
    #  ServerProgress  is a proxy progress reporter that listens for
    # connections on a Unix socket, and broadcasts progress status updates both
    # to the local progress reporter and to whoever connects to the socket.
    progress = ServerProgress(progress)
except IOError, e:
    if e.errno == errno.EACCES or e.errno == errno.EAGAIN:
        progress.notice("Another update is already running: showing its progress.")
        #  ClientProgress' is another proxy class that connects to the socket
    # forwards progress updates to whatever the user has chosen as the
    # local progress indicator.
        childProgress = ClientProgress(progress)
        childProgress.loop()
        sys.exit(0)
    else:
        raise
What happens here is that if the upload is in progress, the second update-apt-xapian-index will not be able to lock a lockfile. But instead of exiting, it connects to the other indexer via a unix socket, and shows the progress just as if it were the one doing the indexing. So, now, suppose I run update-apt-xapian-index:
# update-apt-xapian-index
Reading Debtags database: done.  
Rebuilding Xapian index... 20%

And suppose I run another one:
# update-apt-xapian-index
Another update is already running: showing its progress.
Rebuilding Xapian index... 20%

And suppose I run yet another one:
# update-apt-xapian-index --batch-mode
notice: Another update is already running: showing its progress.
begin: Rebuilding Xapian index
progress: 19/100
progress: 20/100

And suppose I run yet another one (running with -q shows nothing, but it will wait until the master indexer has finished):
# update-apt-xapian-index -q

This way, the advanced package manager (adept 3 does this) will show a progress indicator and correctly let the user know when indexing has finished... only, if an update is already running, the progress indicator will not start at 0% because the update was already in progress, and the user will think: "wow, I've been lucky!". The server side of the socket only uses nonblocking I/O, so there's no risk of slave indexers causing the master indexer to hang. It's been simple to implement, and brillant. It is in apt-xapian-index 0.15, which I have just uploaded to sid. Shame it's a bit late for lenny.

5 August 2008

Petr Rockai: adept 3.0 alpha 6

Hi, it’s that time again: new alpha version of Adept hits the block. For the unaware, Adept is an APT front-end for KDE. You can do all the cool stuff with it that the other kids can’t. Join the fun! New features since Alpha 5 (the list is a little less staggering than the last time, sorry about that, but it’s only been a week) Where to get I have again prepared binary packages, this time even more of them (a Hardy backport is included). Traditionally, in Debian, you can install alpha 6 from experimental:
apt-get install -t experimental adept
The sources.list goes:
deb http://ftp.debian.org/debian experimental main
If you are on Kubuntu Intrepid, the line is:
deb http://ppa.launchpad.net/mornfall/ubuntu intrepid main
and finally, on Kubuntu Hardy, the lines are (BUT: read below!)
deb http://ppa.launchpad.net/kubuntu-members-kde4/ubuntu hardy main
deb http://ppa.launchpad.net/mornfall/ubuntu hardy main
Big fat warning: Due to somewhat unexpected difficulties, Adept requires newer APT than available in Hardy. This means, adding the above sources.list lines will upgrade your apt to a version from Intrepid, that’s also completely untested on anything resembling a Hardy installation. Be wary. Moreover, installing Adept means means KDE 4.1 for Hardy users. (This does not apply to Intrepid users, they are already on the cutting edge and no extra dangers lie this way.) (For all Kubuntu users, there are more instructions to be found on https://launchpad.net/~mornfall/+archive.) Heroes of Alpha 6 I hereby nominate the “Heroes of Alpha 6”, for their deeds that helped Adept move forward: (And a totally flirtless wink towards Blauzahl, who somehow inspired me to actually do some bugzilla sorting…) And now, it’s easy to join the ranks of these heroes — just test the new alpha version and find bugs. Immortality won’t escape your grasp. Also, please don’t forget to read the next section. Jobs for Alpha 6 Sorting through Launchpad for bugs that have been fixed in alpha 6 (compared to 2.1) would be really awesome. It is a big list and many of them are likely to need testing. (I can take care of that for the KDE bugzilla, but launchpad is a task just too daunting for me and my time possibilities, so help would be very much appreciated). Notifier is still not included. The components to test are (if you have sudo, kdesu for the rest):
sudo adept
sudo adept installer
sudo adept updater
Please give a go to all of them, report rough edges, crashes and all that, either through IRC (mornfall at freenode, oftc) or mail me-at-mornfall-dot-net or use KDE Bugzilla. Known Issues

1 August 2008

Petr Rockai: adept 3.0 alpha 5

Short introduction: Adept is an APT frontend for KDE. You can use it to search for packages, install, uninstall, upgrade, all the usual things. It’s gone through a number of changes since 2.1, which has been the default package manager on Kubuntu for some time now. What’s new since 2.1 Where to get Since compilation is still not that trivial (well, it’s 3 packages to compile and install, really, and you have to get them with darcs), I have prepared binary packages for the two main “target distributions”. In Debian, you can install alpha 5 from experimental:
apt-get install -t experimental adept
The sources.list line is:
deb http://ftp.debian.org/debian experimental main
If you are on Kubuntu Intrepid, the line is
deb http://ppa.launchpad.net/mornfall/ubuntu intrepid main
(more instructions on https://launchpad.net/~mornfall/+archive) What (and how) to test All of the previous components (save for notifier, which is not included at all yet) have been merged into a single binary, that is adept. I have missed desktop files in this alpha (it might be a little on purpose too, as I’d like people to run the program from terminal to be able to check the debug output and possibly send it along with problem reports). If you have sudo (Kubuntu-ers do, the rest can use kdesu or similar):
sudo adept
sudo adept installer
sudo adept updater
are the magic commands. Please give a go to all of them, report rough edges, crashes and all that, either through irc (mornfall at freenode, oftc) or mail me-at-mornfall-dot-net or use KDE Bugzilla to report bugs. Missing features I have one outstanding issue on “must have for 3.0”, that being filtering packages according to their state. There is also no actual way to browse through the 19k+ packages, but might have to give for 3.0. A “browsing” mode is likely for 3.1, although still could make it for 3.0 if I get my act together on that one. We’ll see how alpha testing goes, maybe I’ll have hands full of bugs to fix and won’t get anywhere on features… Known Issues Reward For the brave, fearless testers, I unfortunately cannot promise anything else than fuzzy feeling for doing a good thing… I won’t be at aKademy nor Debconf this year, so I can’t even promise beers. Maybe next time. ; - )

12 July 2008

Petr Rockai: fast forward

Lucy left for England yesterday (OK, now it’s two days ago — last Friday). That means that I have unusual amount of free time at my hands, and yet even more things that could be done with it. But I suppose it’s time to update this little blog. It’s probably pointless to enumerate what happened, or what changed. Everything is fine and smooth over here — the wrinkles get worked out over time (with Lucy, without Lucy). Hobbies still take time and I still haven’t given up. My latest determination is to get myself a bassoon for next Christmas. (Now, that will be a year since we got Lucy a Marigaux 901, used, in great condition for a great price, lo and behold, on Austrian ebay. World is so weird sometimes…) And in the land of [LVM], I have finally started the process to merge code to improve LVM’s behaviour in presence of failed storage hardware (physical volumes gone missing). In the land of Adept, well… first things first. FOSSCamp I have visited Prague for the latest Ubuntu- (well, Canonical-) organised event, the FOSSCamp. I have met Johnatan (KUbuntu), Seli (KWin), Lidya (Amarok), Robert (Konsole), Jos (Strigi) and Inge (KOffice). See also Johnatan’s Blog (including a real blurry picture). So back to Adept — I had some hacking time over there in Prague, and I have almost brought Installer and Updater back to life for Adept 3. I unfortunately didn’t have as much time for it since then — but my current free time situation does open up some possibilities. First and foremost, I should really make a text interface to the underlying libraries for myself, maybe with fancy colourful UI, hopefully one that is comfortably close enough to apt-get and still offers advantages. Hmmmm… Intermezzo 1 Now zoom out and zoom in somewhere else, enough of coding matters. Our research group at the University had a (tool) paper accepted for ATVA 2008, meaning that I am not unlikely to visit Seoul, South Korea in October. Another piece of distant world to visit. FOSDEM Now, that reminds me… Since the last time, I have also been in Belgium — to visit FOSDEM — meeting Alasdair (of LVM) and Bart and Pino of Krita and Okular, respectively… although unfortunately, I didn’t spend nearly enough time with Pino… At least we have spend a day walking around Ghent with Bart (and Lucy, who visited Belgium with me, also having friends of her own there). Moreover, I have spent a lot of mostly productive time with Alasdair, discussing LVM2. And Belgium is nice and pretty, although I didn’t really get around to taste any beer. Maybe next time. And Antwerps were nice, too. Photos? Someday. LinuxTag And after that, I have visited Berlin again, for LinuxTag as usual — plus the accompanying LVM discussions, with Milan, Kabi and Mikul (Blek) of the Czech part of the team, and Heinz, John and of course Alasdair for the rest of the world… Also as usual, we walked around, had dinners, discussed non-work stuff, etc… a good event all in all. At LinuxTag, I have briefly seen Lidya again, as well as Ossi (whom I nearly didn’t recognise…) and Aaron who (for a change) didn’t recognise me (but to be fair, I didn’t quite stop by to chat and he’s been busy…) and Sebas, cordial as ever (and always a pleasure to meet)… reminds me of Paris two years ago, too. Intermezzo 2 Less than a month ago, I have finished my first semester of master’s study — two or three more to go (I have completed bachelor’s the semester before). Yes, I am a bachelor of computer science, or something like that, anyway, now. Or so I hope. I did not attend the whatever ceremony and I don’t really have the diploma (or maybe I do, but gods know where it is…). A short note on Debian with best intentions I am now sponsoring Trent Buck’s ?darcs packages, contributing a little on the go (making me wish that alpha buildd would make a little more progress…). With Enrico, we have uploaded new versions of wibble and libept, both of which I think make both of us fairly happy. (Although we again managed to hit a way strange compiler issue (only manifested on arm… what have I done that the gods punish me so?), as documented in Debian bug 487406…) I have packaged dzen2 and taken over haskell-mode (I am losing track of my own packages again — I really need to set up reliable watch files so I don’t miss out too many releases… apparently neither has new upstream versions, so I can sleep peacefully for a little longer). Intermezzo 3 I am not going to DebConf nor Akademy this year. That makes me a little sad, but it’s all my own fault (and laziness). Next time folks, next time. I haven’t seen K vin in aeons and he probably removed me from his memory by now… No matter, I’ll try a little harder next year, promise (oh, how many have I made to date?). Finale Nothing grandiose, just best wishes to everyone, I have to land in bed now it seems, as I am ever so sleepy. (Just So Stories, anyone?) There I go.

16 March 2008

Daniel Burrows: aptitude 0.4.11 released

I've released version 0.4.11 of the aptitude package manager (release notes). Due to ongoing work by the installer team, I uploaded this release to experimental rather than unstable; once things are clear I will upload a build to unstable (probably promoting the experimental cwidget to unstable at the same time). The initial upload accidentally left out libept support, so I'm preparing a new upload as I write this. The aptitude search language and its documentation have gotten particular attention in this release. The most visible change is the introduction of a new syntax for search expressions: in addition to the old style of ~i, you can now type ?installed. Not only is this more readable and more memorable, it means that I'll be much more able to expand the breadth of the query language: it was becoming rather difficult to select new single-character flags for search terms, so expanding the namespace is nice. On this note, a number of search terms have been added to the language; see the release notes or the aptitude user's manual for details.
PS: if you're wondering about the quote in the release notes: I just needed to vent a little about that incident in a way that I found amusing and harmless; I'm over it now, and hopefully this will be the last time I mention it in public.

22 December 2007

Petr Rockai: on blogging

The last time I have blogged, few people told me that it sounds somewhat patronizing or such (especially that it may sound so to people that do not know me). Well, I have to admit that it is hard to write in a decent tone — the intention and motivation behind the text is oftentimes hard to express. Certainly, better writing skills would probably help — or choosing easier topics. But that is how I am — and afterall, you never learn much when you only do things you already know how to do. So please, dear reader, take no offense in my blog… If you know me, you can probably see through my writing and understand what I mean. If you do not and still enjoy it, the better. And if you do not, please accept my apology — but in that case, it probably was not meant for you. Yes, I know the blog is aggregated in a few places, and I will probably have to do something about this — aggregate only subsets of the blog, appropriate for each of the aggregators. But pretty please, bear with me, I am lazy and it always took me ages to fix even trivial problems.

Petr Rockai: on sharing happiness

I just wanted to say, that it is great when someone writes you just because they have good news and want to share them with you. Last night that happened to me again — an old friend of mine, Jemima, IM’d me. So thank you Jemima for that, what I said, I really meant. And let me wish you (and your little one) all good again — it cannot hurt. (And this all made me think that I have again somewhat lost contact with some of the people that are very dear to me — yes, I mean you Bart, Alex, Kevin and also you, Maks, even if you probably do not think of me that way (or you do?) … whom have I forgotten this time? Maybe Enrico — you are far away as well, these days. I just hope all of you are doing well.) (Ah, and I also miss one further person, who I have known as Helielf and met her or IRCNet very long time ago — if you read this, thanks to some bizarre coincidence, please mail me, or something… I have lost all contacts to you and I miss you. Wondering if you even remember me — who knows what nick I have used at that time? I have noticed you used the name Haruka for a while, but have no idea if that is still true. But if we never meet again, it has been a beautiful mandala, thank you.)

16 November 2007

Petr Rockai: on self-reflection

On Self-Reflection I have a need to write some things down recently, I don’t really know why or so. I have acquired a few new (and great) friends recently, mostly here in Brno. Also, I have more motivation than ever to try hard to live a good life. It has always been a hard way to follow for me, to be all those things that I find great in other people. How they can handle situations smoothly, what they know and what they can do. And it is great to see such people, and yet it is hard to not envy them. But envy not, since it is a great evil. One never knows what the other people have to go through, and it is just plain unfair to envy them. But I am drifting away from the subject at hand. What I have noticed as well, that I have changed in subtle ways, patterns of thinking. Self-reflection is somewhat cautiously sneaking into my mind. Two independent events have reminded me of that today. Recently, I have been participating in online discussion more than I have used to, especially with people I do not know, and with which I often tend to disagree, and this is putting me in a new kind of situation. And to be honest, I am not really handling it all that well. What has made me think about this was Boudewijn Rempt’s comment on the dot. He handled the task at hand so much better than myself, even if it was his ego that was in the line, that has made me actually stop and think about it. And as I have written in that thread, I admire Boudewijn greatly for that calm reaction, of which I would be almost surely not capable. So here I am, trying to learn from that. My memory is indeed very short, but I also take this writing as a way to train that. The second event was that a friend of mine (I do not know him long, but I call him a friend nevertheless, although I know not whether I actually deserve that) has told us something to the effect that one should learn. Meaning that one should learn from own mistakes, and no, I no more see the empty phrase behind those words. There is something in that, and it is a very interesting experience. Going through situations you have encountered and realize where you have made mistakes and what you could have done better. Actually admit, that even though the outcome was fairly good, that you have made some silly things. It is indeed a very interesting experience, to admit a failure when you are not pressed to by any external means. Liberating, maybe. Same goes for things long forgotten. Where you have made mistakes, even though you have been always righteous and positively convinced about always doing the right things. You may be wondering whether I have been on crack all the time, but, well, that is not the case. I cannot tell how this came about, and yes, I have realized those mistakes and again forgotten them and so on and so forth. But hey, I think it may be better this time. If only a little…

14 November 2007

Petr Rockai: looking back

Looking Back The past year has very much changed my life. A long time ago (around the beginning of this year) I have written that I have met Lucy. That happened over a year ago. In fact, it is just few weeks since it was a year. Lucy wrote me a beautiful letter at that time, picturing some of the moments in our life. I am very grateful for that letter. I am also much happier ever since I met her. Of course, there were problems (and there are problems)… None the less, life is fairly easy, and I am staggering on the path to becoming a better person. Lucy is a great help in that respect. Many things have straightened out over that year. A few got a little more wrinkled, but often due to smiles and seldom due to frowns. I have also mostly fixed the long-standing issue of a place to sleep and live in Brno, having recently moved in. I now live near the school (~15 minute walk, maybe less when in a little hurry), more or less in the city centre, with great connectivity to most of the places I need to visit. The previous place is just too remote for me. The new one is also a better building, or so I think, not a concrete-and-iron from-a-single-template building so typical of the socialist era, but solid brick building with high ceilings and thick walls. And it gives a much homelier feeling too. And what am I doing lately? Well, day job and school (both study and TA and research) take a fair amount of time, the rest I divide among Lucy, friends, learning to play the recorder, reading, writing and the many other things I (try to) do. I have even started to practice embouchure and breathing with an oboe (double) reed (and also with Lucy’s instrument). The idea is that i have the intention to get a bassoon (which is a double-reed as well) and start to learn and practice. And I also hope, that the practice from oboe will give me a head start to that. Maybe even that I could play both. I know that I won’t ever become a very good player, but I want to at least try. And I want to have some fun with it, too (it is great to be able to play an instrument, however impractical the woodwinds are, e.g. compared to guitar, which is probably much more social… one day, I may learn that too, though; wink). I still believe that with enough determination, i could become a semi-decent amateur. Call me foolish if you like, that is how I am. I have also considered blogging technicalities, and I probably will, if i find the time for that. It may also help me sorting things out. Probably need to consult the various people I work with, what they think about that, though.

24 August 2007

Miriam Ruiz: GoPlay!

Thumbnail of GoPlay! v0.1DebTags is a really nice system for clasifying programs, it allows you to select which packages you want by being able to select between many different kind of labels, that are used to categorize them. Anyway, there is sitll a long way to go if we want to make it easier for users to locate the programs they want, and that goes for games too. In DebConf7, in Edinburgh (Scotland), Enrico suggested me that we could do a GUI for searching the games available in Debian, using his DebTags as the backend. Starting there, using his libept library for accessing the data, FLTK (Fast Light Toolkit) as the toolkit engine, and C++ as the programming language, we’ve been slowly developing it. The version 0.1 of the program is ready, and hopefully will be in Debian soon. We’ve decided to create a standalone package with the thumbnails, that could also be shared with other programs, and the package for goplay itself. Both are now waiting in the NEW queue, and hopefully soon they will be in Debian. Of course, more snapshots of the games shall be taken, and there’s a lot of room for improvements, but at least it’s a starting point. For using it, you’ll need to install debtags and ept-cache in your system, and set them up properly, and possibly also the results from popcon, if you want to have that data in the GUI too: apt-get install debtags ept-cache
debtags update
mkdir /var/lib/popcon/
cd /var/lib/popcon
wget http://popcon.debian.org/all-popcon-results.txt.gz
ept-cache reindex

22 July 2007

Petr Rockai: toolbox upgrades

In the past something-over-half-a-year (wow, time flies like crazy), i have shuffled my (virtual) toolbox fairly significantly. In the desktop department, I no longer use the full KDE desktop, only a few applications from KDE 3 (that is mostly konqueror, plus some of kdeedu). I still use amarok, although by now mostly just to manage my iPod, since it is outright laptop-hostile. Most of the time, it’s better (and much more power-efficient) to use iPod hooked into usb for power, at least as long as the music is there. For the rest, i now use the commandline players to play single albums (just music123 for most formats). For the window manager, i have opted for xmonad, after briefly using ion3 and a faint attempt at wmii (which didn’t quite work for me). Xmonad, however, works great and its simplicity is quite amazing. Despite its absolute minimalism, it is, after some getting used to, much more usable than the rest of WMs i have used. For terminal, i use urxvt, which is lighter and apparently also faster than konsole (i may reconsider that choice when KDE 4 konsole comes out). With xmonad, i don’t really need tabs anymore, i’m not sure why, but it may be related to more general change in my workflow. In the version control department, i am now using darcs for all the projects where i decide. I no longer use svk, since i no longer really know how to. Not working with it for a while, i lost the ability to use it efficiently (which possibly hints at the fact it is somewhat too complex). On the other hand, i am much happier with darcs, also since it is much more forgiving about mistakes and generally very deterministic. It requires some insight to be used efficiently i suppose, but this is mostly due to differences with more traditional systems (i believe). Today, i have finally moved my ikiwiki to darcs, which was the last thing using subversion/svk (well, i have only been able to use it through ssh and local svn for some months now, so i generally didn’t use it at all). This hopefully means that i will be able to add more content to this page and blog as well, since it is less effort now. I am still using emacs (GNU emacs 22, xemacs didn’t quite work for me when i have tried it — i have a somewhat nontrivial setup, too). I intend to try out vimpulse at some point, in addition to viper, to supersede my emacs-lisp hacks for visual line selection. I have also started working on replacing my internet-facing services, since they are running in an “emergency” (ie, not really working well) mode, after the xen system broke down completely (it was mostly un-upgradable due to fragility of xen packages and of the whole xen system — and since the setup relied on working xen for even basic internet connectivity, upgrades were extremely painful). I am migrating to a solution based on user-mode-linux, and moving all the services to a less power-hungry and less noisy machine (an oldish pentium 3 box). When this is complete, i should be able to read my private mail sanely again, since currently the spam filters don’t work and my inbox is mostly trash. This is unrelated to the xen breakdown, my mail used to be handled by a machine at a company i used to do admin work for. However, they removed my accounts (and therefore access to my mail) without a line of prior notice. I still have control over my domain at least (although there will be a problem when it gets to expire, i will have to arrange a transfer with the said company, i suppose). Morale of the story: never do that. (Yeah, and in the spirit of the post, i am still using mutt for reading mail).

24 January 2007

Enrico Zini: package-managers

Improving package managers I noticed two posts on improving package managers none of which mentions Debtags. Daniel Burrows mentions various issues: David Nusinov mentions that the ideal package manager should look like Google, where you search for things using just a simple one line text entry and pick from the results what you want to install. I should probably do a bit of recap of things that have been going on. I'll go through that list again:
  • The current sections in Synaptic are useless
Agreed. This used to be a bug about this, which has been closed by Debtags more than one year ago. We now have much more useful category data for about 73% of the archive (including experimental), but what we lack is software using it. Here's a quick trick to try:
  1. install debtags, and this gives you an easy to read text file in /var/lib/debtags/package-tags.
  2. from that file, pick packages that have the tags role::program, scope::application and interface::x11.
  3. display the results, and use the tags works-with::* and use::* to navigate the results.
There is a python-debian package in experimental that has a debtags module you could play with. Why is that that so far noone has written a simple package manager just for gamers, which uses only the game::* tags? Do you think Debtags gives you too many tags? Then check out: To summarise so far, we not only do have better categories, but also a number of cool algorithms to use them, and some interface prototypes as well. Just don't expect me to write a package manager as well: that's a job that so far I decided to leave to someone else. adept gave it a try, with positive results.
  • there are better keyword search technologies than strstr()
Indeed, Xapian for example. I use it as part of the backend of the Debtags smart search, and here's our Xapian-powered normal keyword based package search interface which does stemming, indexing and all you want to ask from a serious full text index. In that page you don't see all the nice features of Xapian, but only the ones that I needed for my Debtags evil plans. Have a look at the documentation and give it a try. Here is a way to see Xapian's similarity matching in action:
  1. go to the Go tagging! page
  2. click on a random untagged package
  3. the system gives you a rather relevant selection of tags
  4. look at it again: the package was untagged: how could the web engine possibly figure those tags out?
What is happening under the scenes is that:
  1. I ask Xapian: "what packages are similar to this one?".
  2. I aggregate the tags of the resulting packages.
  3. I rank the tags by how many resulting packages have them.
While we are on this topic, why don't we decide that we maintain a Xapian index of our package descriptions in, for example, /var/lib/apt/fulltext/, so that various applications can share it? Indeed. Anyone would like to implement this little "popcon" tool? Having the data easily accessible locally can encourage people to use them. The Debtags Go tagging! page already uses popcon data to show the most common untagged packages at the top, with double reason: it shows packages that more people are likely to know (and therefore likely to categorise) and it pushes for the most common packages to be tagged more urgently. Indeed. Anyone volunteers to implement a prototype? The full unaggregated (but anonymised) popcon data are accessible to every Debian Developer on the host gluck.debian.org in the directory /org/popcon.debian.org/popcon-mail/all-popcon-results. Ideally one can do many interesting things with this concept: besides tag suggestions, one could identify the packages that are most representative of an installed system, and also offer negative suggestions like: "people who have packages like yours usually don't have this package: would you like to remove it?". There is more than all this that could be done. Recently, almost by accident, I had the idea of querying packages by example, like pointing to a file and find packages that can work with it. I've asked Jeroen to have Mole collect info on all files that could possibly get installed in /usr/lib/mime/packages/ (as suggested by Bernhard R. Link), to see if that prototype can be made more accurate. Query by similarity would be nice: I don't like this program, but what else do we have that does the same job? This is best implemented using Debtags data, since it directly maps to semantic properties. Note that you don't have to show a single tag to the user to implement this kind of interface. Do we have a way to point at the X window of an application and get the name of the package that installed it? Wouldn't it be about time to have it? Why don't we have a system updater utility that shows the Debian weather? Why aren't more people playing with semantic web? But more generally, the problem with package managers is that we seem to be irrationally compulsive in wanting to make the one and only big easy and complete interface for everyone. Other more reasonable people would tell you that if you have two very different kinds of users you may want to consider having two different user interfaces. Ubuntu for example installs by default 3 package manager interfaces: Synaptic; the thing that you access from the application menu to add applications to it; and the update manager. Does it sound like a waste? To me it makes lots of sense. We have lots of interesting, usable metadata; we have algorithms; we have prototypes; we have ideas for lots of cool, implementable features. The question is, are we able to write applications that just combines what is needed from all this treasure to provide the right interface(s) for our base(s) of users? Even if my English in 2004 wasn't easy to understand, a read here might still be useful. There is so much really cool stuff to be written, just within reach.

Next.