Search Results: "cas"

3 March 2008

Raphaël Hertzog: This time of the year again

Yes, it’s DPL election time again. On the good side, we’ll spend less time this year than we used to thanks the constitution change. On the bad side, it seems that almost nobody is interested to run for DPL (even HE is not sure yet!). I’ve been relatively satisfied by the work done by sam (although one can always do better) and it looks like many share this feeling… and when this is the case, we just expect the DPL to run again. But sam clearly said that he won’t run again. What a pity. I also don’t plan to run this year[1] but I’m always interested in leadership issues and I’d gladly be part of a DPL team. Hopefully someone will provide such an alternative on the ballot this year. Right now, I’m more in the mood of implementing some real changes (like the symbol based dependencies that I added to dpkg-shlibdeps) instead of trying to convince others to do them. When you associate this to some support of the leadership in place, it can give very good results. Now back to real work, I still have to test and polish the dpkg-source rewrite which adds support of several brand new source package formats. Feel free to check out our progress in the sourcev3 git branch. [1] Feel free to convince me otherwise by adding some comments here. Partagez cet article / Share This

2 March 2008

Jan Wagner: 10th Chemnitz Linux Days

Like Meike already told, it was a nice event, like always. IMHO it’s based on the good balance of community and a small amount of business booth and of course the visitors.
This year we was apart the Sidux Project. Didn’t heared about (much) before, but their slogan is Hot & Spicy! Maybe ‘hot’, cause it’s based on Debian unstable. Hopefully you won’t get tears if it’s too spicy. Anyways … if you want, you could take a look. My opinion is, this would be a good case for a Custom Debian Distribution, if there would be a requirement for it. But he.. everybody is free to do, what ever he want, if nobody else is restricted.
The talks I attended was in most cases excellent, some of them was funny … only one of them did really suck. Desktop Virtualision … after the talk, my question if there could anything else virtualized then the OS from Redmond, was answered with ‘Unfortunetly only XP’ … how lovely!

Steve Kemp: And time keeps dragging on

So, as I previously mentioned I want to be able to tag messages in Mutt. There exist folder-based solutions already, using the X-Label header. There doesn't appear to be any existing solution allowing you to view all messages with a given tag across mailboxes. So I wrote a simple shell script to create virtual mailboxes, such as ~/Maildir/tags-debian for all messages with a debian tag, using hardlinks. My conclusion is that this solution will not work properly in practise, primarily because of deficiencies in mutt. The simple case works just fine. I add a tag to a message, and later when the indexing job runs the virtual folder is created. I can open it and work on it just fine. So where's the problem? Well in my case I tend to tag messages with a label such as "todo". Once I've done whatever I was supposed to I can remove the tag. Using this hardlinking scheme I cannot remove the tag(s) in the virtual folder - I have to remove it in the original message which is a real pain. Why? Well quite simply mutt will not let me work on my virtual message without destroying the hardlink.. If I use the edit function, for example, I am presented with a copy of the mail for editing - and the hardlink is replaced when that copy is saved. Even the edit-label patch which allows you to edit the X-Label header from within mutt ends up replacing the hardlink with a new file! So whats the solution? Well I guess I want to be able to run an external command against a message in mutt - passing the filename of the Maildir message as an argument. That way I can edit the live file. Right now I don't believe that is possible, but I'd love to be told different. If anybody has any solutions of editing, or even just deleting, a header from a message within mutt - in such a way that the hardlink isn't destroyed please do let me know. Simple reproducer:
mkdir -p ~/Maildir/.foo/cur
mkdir    ~/Maildir/.foo/new
mkdir    ~/Maildir/.foo/tmp
cp 'validmessage' ~/Maildir/
ln validmessage ~/Maildir/.foo/cur
Now edit the message - start mutt open the message in the index and press 'e' - the hardlink is now gone. Replaced by a new file with the contents, so the original mail message is unchanged. Update: I've got an "edit-inplace" primitive working, via the very hacky header-fu patch. It is not complete, but it demonstrates that it can be done. My world is now complete.

Romain Francoise: Shared links for 2008-03-02

Julien Blache: pommed v1.16: MacBookAir1,1, MacBookPro4,1, MacBook4,1

I’ve finally got enough information to complete the MacBookAir1,1 support, it’s been tested and it works. I’ve also got the information I needed for the new MacBook Pro and MacBook released in February 2008, but there I’ll need some feedback. I have some doubts on which machine uses which keyboard+trackpad assembly. I’ll need to confirm those two last points, so if you are running pommed on either one of these machines, your feedback is welcome. On a slightly related note, I have some sound troubles on my MacBookPro2,2 with 2.6.24.3 which I didn’t have with 2.6.24.2. I cannot play WAV files anymore, be it with pommed, with aplay or with any other software. In the best case, the sound is distorted and too fast, in the worst case I can’t hear anything at all. And they call it the stable tree, hmgrmpf.

1 March 2008

Adam Rosi-Kessel: The Best Movie to Start at 11pm at the End of a Long Trial

Anatomy of a Murder. David Denby put it best:
Otto Preminger s Anatomy of a Murder, from 1959, is still the best courtroom drama ever made in this country, and, in its occasional forays out of the court, among the finest evocations of place an Upper Peninsula Michigan resort area in the off-season, leafless, underpopulated, alcoholic, and forlorn. James Stewart, in one of his wonderful melancholy late performances, plays a former county prosecutor named Biegler, a lifelong bachelor who now spends his time with a non-practicing lawyer (Arthur O Connell) and an unpaid secretary (Eve Arden), who sticks around for the wisecracks. The movie is leisurely, detailed, realistic, intensely companionable; you get a sense of how people exist at the margins of a profession without losing their dignity.
Although there are some distinctions between a murder defense in the 1950’s in the Upper Peninsula of Michigan and modern-day patent litigation, the essence of trial technique is really not all that different. Highly recommended.
Prosecutor: Lieutenant Manion, wasn’t your action against Barney Quill much the same thing as your action against Miller or the Lieutenant you slapped at the cocktail party — all done in the heat of anger, with a willful, conscious desire to hurt or kill?
Defendant: I don’t remember my action against Quill.
Prosecutor: How long had you known your wife was stepping out with Quill?
Defendant: I never knew anything like that. I trust my wife.
Prosecutor: You just occasionally beat her up for the fun of it, I suppose?
Defense Counsel: There has been nothing established to permit a question like that. He keeps trying to insinuate without ever coming to the point. Let him ask the Lieutenant, did he ever beat his wife.
Judge: I will sustain the objection. Do you want to re-phrase your question, Mr. Dancer?
Prosecutor: No thank you, Your Honor. I’ve finished.
Technorati Tags: , ,

Romain Francoise: Fast directory navigation

About a year ago I stumbled upon this post which mentions the following shell keybindings: M-- for pushd .. and M-= for popd. Since the dash and equal signs are very conveniently placed next to each other, this allows fast directory navigation with accessible keystrokes and is especially convenient to move up in the directory hierarchy. Very neat.

Of course I use zsh and not bash, so I had to "port" this hack to zsh, which resulted in somewhat obscure code compared to the bash version:
function up-one-dir   set -E; pushd ..; set +E; zle redisplay; zle -M  pwd   
function back-one-dir set -E; popd; set +E; zle redisplay; zle -M pwd
zle -N up-one-dir
zle -N back-one-dir
bindkey "^[-" up-one-dir
bindkey "^[=" back-one-dir
Not so pretty, but it works. The only problem is that I do most of my shell interaction through shell-mode in Emacs, not in zle-capable terminals. So I also had to write a shell-mode version, which turned out to be even uglier because I basically had to rip off the shell-resync-dirs code to handle comint interaction and directory tracking. Here it is in all its glory:
(defun ore-shell-dirnav (direction)
(interactive)
(let* ((proc (get-buffer-process (current-buffer)))
(pmark (process-mark proc))
(cmd (if (eq direction 'up) "pushd .." "popd")))
(goto-char pmark)
(sit-for 0)
(comint-send-string proc cmd)
(comint-send-string proc "\n")
(set-marker pmark (point))
(let ((pt (point))
(regexp
(concat
(if comint-process-echoes
(concat "\\(" (regexp-quote cmd) "\n\\)")
"\\(\\)")
"\\(.+\n\\)")))
(insert "\n")
(backward-char 1)
(while (not (looking-at regexp))
(accept-process-output proc)
(goto-char pt)))
(goto-char pmark)
(delete-char 1)
(let* ((dl (buffer-substring (match-beginning 2) (1- (match-end 2))))
(dl-len (length dl))
(ds '())
(i 0))
(delete-region (match-beginning 2) (1- (match-end 2)))
(while ( i dl-len)
(string-match "\\s *\\(\\S +\\)\\s *" dl i) ; pick off next dir
(setq ds (cons (concat comint-file-name-prefix
(substring dl (match-beginning 1)
(match-end 1)))
ds))
(setq i (match-end 0)))
(let ((ds (nreverse ds)))
(condition-case nil
(progn (shell-cd (car ds))
(setq shell-dirstack (cdr ds)
shell-last-dir (car shell-dirstack))
(shell-dirstack-message))
(error (message "Couldn't cd")))))))

(defun ore-shell-dirnav-up ()
(interactive)
(ore-shell-dirnav 'up))

(defun ore-shell-dirnav-down ()
(interactive)
(ore-shell-dirnav 'down))

(define-key shell-mode-map (kbd "M--") 'ore-shell-dirnav-up)
(define-key shell-mode-map (kbd "M-=") 'ore-shell-dirnav-down)
Phew. It's a lot of code for a seemingly simple feature, but the time it saves me probably adds up to a few hours per year, so it's worth it.

Lucas Nussbaum: mailing list for cross-distributions collaboration

A few months ago, I asked a set of questions on development mailing lists of a few GNU/Linux distributions. This resulted in very interesting discussions. As promised back then, all the answers from all distros I contacted can be read on the web or as an mbox file. Also, Freedesktop.org kindly agreed to host a mailing list to ease discussions between distributions, and act as a central point of contact. You can subscribe, and post to distributions at lists dot freedesktop dot org. This mailing list is for people involved (or interested) in the development of distributions. Questions that are on-topic are both technical and social/organizational issues, like: Off-topic stuff obviously include trolling about which distribution is the best one, or user support. Don’t hesitate to forward this announcement to all interested parties. Let’s make this mailing list something useful together! Also, I really apologize for procastinating announcing this list for sooo long. I’m really good at procastinating interesting stuff, it seems.

Eddy Petrișor: Building in a sarge chroot might not always work

Adeodato correctly points out that building under a Sarge chroot, and expecting the package to work on Sid, might not always[1][2] work mainly because of ABI changes and similar changes. Thus, I am forced to clarify this a little.


Generally, the binaries in the packages we produce do not dynamically link to anything other than libc6, libstdc++5 (yes, 5, not 6) or some internal libraries, so we don't have to worry about ABI changes, at least, not yet.


So, a disclaimer is in order: unless you know what you're doing, you probably are better off building packages for each of the supported Debian distros.

Thanks Adeodato for the heads-up.

[1] unless your package is a special case
[2] or, better said, in most cases


udate: fixed the link to dato's post

28 February 2008

Filip Van Raemdonck: PyGTK/glade object reuse

Someone asked on the PyGTK mailinglist if it is possible to reuse certain parts of a libglade window several times within an application.
It certainly is, and it's not even hard to do!

I've quickly written a demo application to show how it's done.
The user interface designed in glade is really simple, a textbox with two toggle buttons underneath. Activating one button will display a second, disparate textbox beside the original one. Deactivating it will remove that second textarea.
The other button will display and remove a copy of the first textbox which was there from application startup.
The full widget tree of this interface is shown in the first screenshot. Glade widget tree The actual code to the demo application is rather brief.
The main point to keep in mind is that you can't actually reuse the same widget, more than once, at one time. You could reuse it if you'd make sure it's never used more than once at the same time, and keep track of it (you also have to make certain it doesn't get accidentally destroyed along the way!)

What the demo really does, and what libglade allows you to do, is use (parts of) the same interface definition over and over again to build distinct PyGTK objects and add them to the existing interface. At least the PyGTK implementation of libglade, and possibly the native C libglade as well, actually caches the interface definition in case you'd want to reuse parts of it for additional object creation.

Let's have a closer look at how it's done:
import gtk, gtk.glade
class ReuseDemo:
  def __init__ (self):
    self.gladefile = 'glade-reuse-demo.glade'
    self.xml = gtk.glade.XML (self.gladefile)
    self.win = self.xml.get_widget ('firstWindow')
    self.theContainer = self.xml.get_widget ('theHBox')
    self.xml.signal_autoconnect (
                     dict (gtk_main_quit=gtk.main_quit,
                     btn1_toggled=self.toggle1,
                     btn2_toggled=self.toggle2))
    self.buttons = (self.xml.get_widget ('tbtn1'), self.xml.get_widget ('tbtn2'))
    self.childTree = None
    self.win.show_all()
Demo application window First step is to import the gtk and gtk.glade modules.
The actual demo is in a little class; it's constructor starts by storing the name of the glade file, because it's needed later to construct the additional objects from (even if the caching should mean it isn't really re-read anymore). The xml tree from this file is parsed by pyglade and the window object is retrieved from the first of the two windows defined in it. At this point the window is already a PyGTK object!

The container that needs to have objects added to and removed from is also retrieved and stored as a class attribute. The signals for the two toggle buttons and to allow a graceful exit by means of the windowmanager close button are connected to their handlers, and the two togglebuttons' objects are also retrieved and stored away for later reference. Finally, a variable to hold a reference to the secondary textbox objects is initiated, and the window is shown.
  def toggle1 (self, btn):
    self.toggle (btn, 'txtContent', 1)
  def toggle2 (self, btn):
    self.toggle (btn, 'txtOther', 2)
The two toggle button callbacks call a single method, with the gladeXML tagname for the respective textbox object each one needs to display or remove and an index number for arguments (in addition to the togglebutton object reference that the callback received as it's first argument).
  def toggle (self, btn, tagname, idx):
    self.buttons[(idx%2)].set_sensitive (not btn.get_active())
    if not btn.get_active():
      if self.childTree:
        self.theContainer.remove (self.childTree)
        self.childTree = None
    else:
      objXML = gtk.glade.XML (self.gladefile, root=tagname)
      self.childTree = objXML.get_widget (tagname)
      self.theContainer.pack_end (self.childTree)
The important logic is in the final method. First, the button which is not toggled is disabled or enabled for user interaction, depending on the activated state of the toggled button. Because the indices passed on by the two toggle buttons' callbacks were one-based, while the python tuple that holds references to the toggle buttons is zero-based, the remainder of a division by two of the callback index will automatically point to the button that was not toggled. Alternatively the values 1 and 0, in that order, and thus pointing directly to the tuple indices could also have been used as index arguments for the two callbacks.

The necessity of disabling the other button when one is activated, and therefore two textboxes are displayed, is because the demo isn't written to support displaying more than two textboxes at the same time, but especially removing the correct textbox when three would be visible. If it were extended in that sense, the need to disable the other button would disappear.

Next the activated state is tested; if the button is deactivated, the second textbox is removed from the container and the reference to it removed, while if it's activated, a new object is instantiated from the gladeXML description and added to the container.
Here's where the gladeXML tagnames come in: to recreate only part of the widget tree, and retrieve the actual widget from the parsed tree. Note that you must reconstruct the parse tree here; retrieving the same object from the original parsetree and trying to add it a second time to the container will result in a GTK+ warning (on the console) and nothing being added at all.

That's all there is to it, really. All that is left is to instantiate a class instance and start the GTK+ mainloop:
if __name__ == '__main__':
  ReuseDemo()
  gtk.main()
The second screenshot is an example of how the application might look in one specific state.

A tarball with the glade and python code is available from the sysfs download area.

Eddy Petrișor: Postfix - (almost) a satellite system

When installing postfix and configuring it to act as a "Satellite system", all mails, including messages to root, will go to the remote mail delivery system. Also, there might be a local user account that absolutely doesn't exist on the remote MTA and should stay on the local machine, but, by default, this doesn't happen.

This is not good.

What is needed in such a case is virtual_alias_maps and a /etc/postfix/virtual file such as:

root root@localhost
root@fqdn.domain.name root@localhost
eddy eddy@localhost
eddy@fqdn.domain.name eddy@localhost

Don't forget to run postmap /etc/postfix/virtual, after restarting the system.


This tip is particularly useful on laptops.

Lucas Nussbaum: Google Summer of Code s real goals?

There’s an interesting discussion about Google Summer of Code going on debian-devel@. The question can be summarized as “Should we allow current Debian contributors to be students in GSOC?“? The GSOC FAQ says:
Google Summer of Code has several goals:
  • Get more open source code created and released for the benefit of all;
  • Inspire young developers to begin participating in open source development;
  • Help open source projects identify and bring in new developers and committers;
  • Provide students in Computer Science and related fields the opportunity to do work related to their academic pursuits during the summer (think “flip bits, not burgers”);
  • Give students more exposure to real-world software development scenarios (e.g., distributed development, software licensing questions, mailing-list etiquette).
The problem is that those goals are clearly conflicting: Another problem is that in the past, some students that were also debian contributors had problems organizing themselves: they used some of their GSOC time to work on their usual Debian tasks, leading to results that were a bit disappointing. But it’s possible that this is mainly a management problem (however, mentoring people takes a lot of time, and only students are paid, not their mentors). How do you deal with that in your project?

MJ Ray: Current Issues / NS Cycle Forum 2008-02-27

I was at the North Somerset Cycle Forum yesterday.  There wasn't any feature presentation, but there were still several interesting topics.

We reviewed last year's work and were introduced to the 08/09 work programme. Lots of last year's work was completed, or is nearly done and the funding for the couple of failed projects was transferred elsewhere.

Among things that have been improved but not completed last year was Hewish rail bridge. That bridge on NCN 33 is single-track with "temporary" lights which are dangerous because they don't detect cyclists accurately. There is now a cycle bypass of the lights along a shared surface, but Network Rail do want to fix it before it collapses and they want a fairly large contribution from NSCouncil to make it take 40 tonnes instead of 7 tonnes. That's been put forward for 09/10 year funding, because it will remove lorries from a long diversion through residential areas in Ebdon, Ebdon Grounds and North Worle.

On the Strawberry Line (NCN 26), work on Winscombe to Shute Shelf and Congresbury station are about to go out to tender now. Sandford ramp should be built late spring. The River Yeo crossing at Tutshill (which will take 7 miles and Congresbury off Weston-Clevedon rides) will be investigated independently of the tidal trail walk.  The town end of the current Locking Road WsM cycle lanes are up for improvement, as is New Bristol Road Worle.

We looked at the latest draft of the North Somerset Cycle Map and suggested changes.  My contributions were to suggest remapping part of North Worle and marking Clevedon Road WsM as a suggested route, because I think that will have benefits when the Tropicana is rebuilt.

North Somerset are applying for Weston-super-Mare to be one of the new cycling demonstration towns.

Combining two of my hats, I agreed to take up the loss of (council?) cycle stands from the Cooperative Food store (ex-LocalPlus) in Long Ashton and see if we can behave better. 

Future meetings: Thu 24 Apr, Tue 24 June (both 6pm), Wed 10 Sep, Thu 13 Nov, Tue 6 Jan, all Locking Castle Campus Room 2 unless changed.

Any comments or questions?

27 February 2008

Wouter Verhelst: Beid screencast

My FOSDEM talk didn't go entirely as planned. I tried to run a demo of the beid packages, but unfortunately they decided to play up again. This isn't the first time; they sometimes have this. It has something to do with OpenSC or OpenCT, I believe, but it's hard to figure out what, exactly. When I got back at the office with the machine that failed to work properly, and tried again, it did work. Heisenbugs suck. Pun intended. Anyway, since things work now, I prepared a screencast showing off what I wanted to show during the talk; it takes about 8 minutes. I was going to edit the talk to hide the spammer who was DoS'ing my mailserver just as I was trying to send an email out, and perhaps to hide away the long waits at times; but I didn't find an easy way to do so, and I got tired looking. If you're interested, have a look. Also, the screencast doesn't include any sound. This is because I couldn't find any piece of equipment on which istanbul would produce correct imagery (it appears to be buggy on powerpc), where the hardware was fast enough to capture and encode both a video at 1024x768 resolution and sound from the sound card (ruling out "anything", the machine on which I tried to do the presentation at FOSDEM), and on which the microphone would actually work (ruling out the amd64 box that was standing nearby). Since I could at least create a correct movie on the last machine, I just forgot about the sound. Instead, I tried to make the screencast show what was going on, by pointing at important tidbits with my mouse pointer. Which kindof worked, but was not ideal. Oh well.

26 February 2008

Russell Coker: Chilled Memory Attacks

In 1996 Peter Gutmann wrote a paper titled “Secure Deletion of Data from Magnetic and Solid-State Memory” [1]. In that paper he mentions the fact that the contents of RAM last longer at lower temperatures and suggests that data could be retained for weeks at a temperature of -60C or lower (while 140C causes rapid data loss). The paper also addresses issues of data recovery from hard drives, but given that adequate CPU power for encryption is available recovering data from a disk shouldn’t be an issue unless thee attacker can get the key to decrypt it or crack the algorithm - so disk recovery is not a hot issue at the moment. Recently some researchers at Princeton University have published a paper describing in detail how to chill RAM to make it keep its data after a power cycle and even after being installed in a different computer [2]. This attracted a lot of attention, while Peter’s paper described the theoretical concept (in great detail) the Princeton group showed how to implement the attack using materials that are commonly available. Most of the analysis of this misses some fundamental points. Any suggestion that you can wipe the RAM on power failure or on boot misses the point entirely. If an attacker can chill a DIMM and then remove it from the system then there is no chance for it to be wiped. Maybe if you had security on the PC case to detect case opening (some servers have a basic version of this) such things would do a little good, but it shouldn’t be difficult to bypass in most cases. Another common flawed analysis is to suggest that this is no big deal because sniffing the memory bus has been possible for years. While it has always been possible for government agencies and companies who design motherboards to sniff the bus, for most potential attackers it has been overly difficult. When considering the effectiveness of a security system you should first consider what your threat model is. Who is going to attack you and what resources will they be willing and able to devote to the attack? An organisation that is prepared to use expensive equipment and highly trained people to break your encryption probably has other methods of gaining access to your secret data that are easier and cheaper. The research from Princeton suggests that I could perform such attacks with my spare time and with equipment that is very cheap. I’ve been idly considering doing this to an old PC just for fun! Therefore I have to assume that everyone who has the same amount of skill and money as me can potentially compromise my data if they capture one of my machines. It is still most likely that if anyone steals my laptop they will want to sell it and use the money to buy drugs. I don’t think that I have any data that is anywhere near valuable enough to justify a targeted mugging. But my procedures (in terms of changing passwords etc) in the case of my laptop being stolen now need to be scaled up due to the ease in which data might be compromised. The best way of dealing with this would be to have the decryption keys locked inside the CPU (stored in registers or memory that’s locked in the CPU cache). The possibility of getting a modern CPU to operate at any temperature approaching -60C is laughable, and the CPU is a well contained package that can operate on its own and is difficult to attack. This would make things significantly more difficult for an attacker while requiring little effort (in fact it might be possible to lock data in the CPU cache already in which case a software change is all that is required). Update: A comment by Mike made a good point about CPU cooling. Toms Hardware performed an overclocking experiment (from 3.2GHz to 5.25GHz) and used liquid nitrogen cooling [3]. It might be possible to cool a CPU core to -60C in a reasonably small amount of time. But I still believe that it would raise the bar enough to make it worth doing. Update2: Thanks Jaime for the spelling advice.

25 February 2008

Lior Kaplan: FOSDEM 2008 and the art of Juggling


People have different methods to handle the overwhelming amount of lecture and events. Some just stick to one or two rooms and hear all the related issues, some goes by topic (which might be presented in different places) and I prefer to try and juggle between the lectures and try to have it all. I’ve planned the lectures I’d like to go to, always keeping an alternative in case the first one isn’t interesting enough for me. I left some lectures early to get to other lectures (usually leaving during the Q&A parts). And some lectures even required me to arrive a bit earlier just to get a seat (especially important if you intend to stay for a few lectures in a row). While rushing back and forth between rooms, I’ve tried to find I have questions for and people I’m interested to talk with. Moving enough at the campus usually means you’ll eventually find them. The only problem with the whole process is that it’s consuming a lot of effort and energy during these two days, and I’m feeling exhusted by the end of FOSDEM. But the productivity of talking so many people face to face and getting new information from the lectures makes it all worthwhile. So my advise is to try and use FOSDEM to expend your horizons instead of going to these familiar talks about stuff you probably already know enough,

    Joerg Jaspert: New FTP Assistants

    As you probably know (well, in case you read d-d-a (hello man-di)), we got two new people as FTP Assistants. While I disagree with the way it went, it’s a good thing to not have NEW, removals and override changes a (pretty much) one man show. OTOH I am also pretty reluctant to having others do NEW, as the long time I am now doing it makes me feel about it like - well “it’s my baby”, or something like that. It’s just that I processed a lot of packages, rejected even more and (mostly) had fun doing it. (And I hate to share fun, HA :) ). But I understand the need of having more people doing it, so today I gave an introduction to Thomas and Kalle. Now they at least know where to start. And while that took somewhere around 2 hours - its still only an introduction. I bet there will be many more questions when they do more than just reading the large amounts of text I flooded into the ftp teams IRC channel. :) But that should work fine, I am online most of the day - and then there are the other ftpteam-members and ftpmasters in the channel, someone should be able to respond sooner or later. :) And now some real content. The ultimate way to get a totally bug free Debian:
    for i in $(dak control-overrides -t dsc -l awk ' print $1 '); do
     dak rm -m "Cleanup" -C package $i
    done
    
    Don’t try this at home, kids. (Yes, a nice DELETE FROM $correct_table in projectb also works, but isnt as much fun! The above gets you nice and pretty logs in the removals.txt and also nice and pretty mails to the package address!)

    Sylvain Le Gall: planet.ocamlcore.org

    Since 4 hours, the planet of ocamlcore.org is online. This is the first service provided by ocamlcore.org to the OCaml community. In fact, ocamlcore.org team has decided to release it today, because Erik Castro de Lopo ask a question about another OCaml planet in China. The one in China seems to be gathered through google search... Putting online the planet is also the occasion to test a little application to manage feed subscription: ocaml-planet. This script is quite trivial but it was a good first experiment of managing CGI/sqlite through OCaml. The application should help us to control subscription of feeds. I think this is a better way to subscribe than letting people commit changed planet.conf in some kind of SCM (like we do for planet debian). Once the forge of ocamlcore.org will be online, we will publish the source code of this application. I hope that this planet will be of some help for the OCaml community... http://planet.ocamlcore.org

    Lucas Nussbaum: back from FOSDEM

    I was at FOSDEM last week-end. As usual there, I spent an excellent week-end. It was really nice to see all those friends again (and even meet some friends for the first time, hi gaston/carxwol/atmaniak!) Only problem is, FOSDEM is definitely too short ;-) To make this post a bit more interesting, I did some homework. The opening talk about FreeBSD had those stats about developers’ age, so I made the same ones for Debian (using the birthDate LDAP field, which was filled in by 340 DDs). Here is the graph. It would be interesting to compare that with other communities, which are sometimes perceived as “younger”. DD years of birth

    Benjamin Mako Hill: My Spring

    I'm going to be traveling and giving talks quite a bit this spring. Here's what my schedule looks like now. I don't think much will be added to it: I'll be giving at least one talk at the FSF Members Meeting, the Renaissance Panel, Lugradio Live, Penguicon, and Community One. Matt's wedding is private. To join the FSF members meeting you must become an FSF Associate Member if you are not already. All of the other conferences require some sort of registration. Penguicon, Lugradio Live, and ROFLCon are each cheap and each promises to be a lot of fun. The talk at Hampshire should be free and open to the public. I'll be posting more about each of these as things get closer including details about what is that I'll be talking about. If you'd like me to talk to another group or at another event while I'm town for any of the events above, now would be a good time to ask. If you just want to meet up for a beverage of your choice, that's good too. In either case, get in contact.

    Next.

    Previous.