Search Results: "will"

14 July 2008

Cyril Brulebois: Package updates

This (extended) weekend features: pkg-phototools collab-maint More to come

13 July 2008

William Pitcock: Thoughts about Dan Kaminsky s DNS vulnerability and it s effects for DNSBLs

Rumour has it that Kaminsky’s vulnerability is that it is possible to hijack the NS records for a TLD registry’s root servers, by spoofing the response from a hostile machine and guessing the transaction id. Obviously transaction spoofing is nothing new. Anyway, here’s a way how it works: Other methods on how to do this, including spoofing transaction IDs and UDP packets are left up to the reader. The problem in this case is that: So, that’s the vulnerability. Now, the important question I propose is, “can someone use this same concept to hijack a DNSBL?”. The answer is yes. By adjusting the values for the attack, one can still poison the cache for a specific domain if seen as desirable. This is a problem because spammers will now likely try to poison cache for DNSBLs in order to buy more time for their botnets… But maybe I am missing something. Luckily caching times out eventually so even if it’s poisoned, it won’t stay that way forever.

Russell Coker: Logic and Pants

I just read an interesting post about proposed new laws in the US prohibiting exposing underpants [1]. This is not a new thing and is part of a debate that has been taking place in many countries since the trend of “hip hop” saggy pants. The first thing that occurs to me is to wonder what the difference really is between underpants and bathers. It seems to me that bathers are simply underpants that don’t turn transparent when they get wet (and which are made of materials that don’t degrade easily when exposed to sea water, UV light, and chlorinated water from swimming pools. So it seems that unless there is some clear legal difference between bathers and underpants such laws will not be effective. Could an underwear company produce products that are essentially the same as it’s regular products but which say “swimming attire” on the label to allow it’s customers to escape silly laws? In fact why not label all underwear as “swimming attire” just in case? Would the prudes who object to a glimpse of underwear want police to go checking the labels of underwear to determine if they are permitted to be seen? The fascist trend in first-world countries is already quite bad, I don’t think we want to add underpants inspection to the list of police powers. Also it should be noted that a small portion of the police officers are corrupt, the idea of corrupt cops inspecting underpants is really not appealing… It would be possible to define any clothes worn under other clothes as “underwear”, but this has problems too. For example when I was younger I used to often wear jeans over my bathers when on the way to/from a beach (often there were no adequate facilities for changing clothes near a beach). If I was to wear jeans over my bathers while walking to a beach could I get booked for showing a small section of my bathers over the top of my jeans - and then legally entirely display my bathers while swimming? Of course there are legal nude beaches in many localities, but blurring the distinction between a regular beach and a nude beach by permitting activity that would be “indecent exposure” on all beaches seems likely to have results that would not make the prudes happy. The next logical implication of laws against exposing underpants is that they encourage wearing smaller underpants. My experience is that it is impossible to wear boxer-shorts without them being exposed above the top of my jeans. Should I be essentially prohibited from wearing boxer shorts because of the risk that if my shirt is not tucked in then someone might catch a glimpse of my underwear? Now if “underwear” was defined to be “anything work beneath the outer layer of clothes” then what about the situation of having multiple layers of clothes? For example when an athlete who wears a track-suit over shorts, are those shorts “underwear”? If so do they cease being “underwear” once the track-suit is removed? Is there a race condition [2] where an athlete can wear shorts on the track, a track-suit on the bench, but they have to remove the track-suit as fast as possible because they are committing indecent exposure while removing the track-suit? If underwear is defined as being the innermost layer of clothing, then what of the practice of “free-balling” (the practice of a man wearing a track-suit with no underpants) and the Scottish tradition of “nothing is worn under the kilt”? Can a track-suit or kilt be defined as underwear? If so how would it be enforced, would police look up the kilts of all men to ensure that the kilt is not the underwear? As for “plumber’s crack” the only solution seems to be to compel plumbers to wear overalls. Of course then plumbers would increase their rates to cover the expense and inconvenience involved in a forced change of attire. I think that most people would prefer to hire a cheap plumber who shows some “crack” than an expensive plumber.

Bastian Venthur: Porting rng to QT4

Today I was busy porting reportbug-ng to QT4. One really cool thing I noticed is the new QWebView widget, which is the main widget of the QWebKit module. It works surprisingly easy compared to the good old QTextBrowser of QT3 — now you can just throw an URL at it and it will render the page nicely complete with CSS, images, etc. Here’s the obligatory screenshot: reportbug-ng qt4 as you can see, the bugreport looks much better than in the old version of rng. WebKit does a really good job rendering the HTML, I think the fonts look even smoother than under firefox. To ease the transition to from QT3 to QT4 I’ve extracted all the Debian BTS specific stuff to python-debianbts and uploaded it to unstable. Rng uses it to query our Bug Tracking System via it’s SOAP interface and get the data in Python’s native data types. There is still the problem with rng (QT3) crashing when showing bugreports. I’ve investigated the problem a bit and found out that it is not rng’s fault but probably a problem with python-qt3 or one of it’s underlying libs. QTextBrowser causes segfaults in nearly 50% of the cases where you try to render html from a different thread: here’s an easy way to reproduce:
# crash.py
# Usage: python crash.py "some text"
#        python crash.py "some evil html”
from qt import *
import sys
import threading
class Form(QMainWindow):
    def __init__(self,parent = None,name = None,fl = 0):
        QMainWindow.__init__(self,parent,name,fl)
        self.browser = QTextBrowser(self, “browser”)
        self.setCentralWidget(self.browser)
if __name__ == ‘__main__’:
    if len(sys.argv)  2:
        print 'Usage: %s "some text"' % sys.argv[0]
        sys.exit()
    s = str(sys.argv[1])
    # setup qt stuff with a browser
    app = QApplication(sys.argv)
    app.connect(app, SIGNAL("lastWindowClosed()"), app, SLOT("quit()"))
    form = Form()
    app.setMainWidget(form)
    form.show()
    # start a different thread and try to set the text in the browser
    # we wait 1.0 second -- just to make sure the change happens after the
    # start of app.exec_loop() below
    t = threading.Timer(1.0, form.browser.setText, (s, ))
    t.start()
    app.exec_loop()
QWebView doesn’t seem to have this problem, the QT4 version of rng didn’t crash a single time. I’m not quite ready with the porting to QT4, and since I’ll be quite busy during the next weeks I suppose it will take a few weeks until the new version will be updated to unstable.

Wouter Verhelst: New toy

While all of Belgium is buzzing over the fact that now the iPhone is being sold here, in compliance with the law against coupled sales (i.e., not simlocked), I couldn't care less. Instead, I bought me something far more useful than a cell phone that wants to be a PDA. (occasionally, the poem is one of the better-known poems by expressionist poet Paul van Ostaijen, my favourite in the Dutch language) This is a Hanlin V3 e-book reader. I found that I was reading way too much text on the 'net, some non-fiction, but recently also fiction, to comfortably do so. I could print, but that's not very good for the environment. I could read some of it on my YP-T10, but not all of it. Hence, the ebookreader. This thing has an e-paper screen, meaning that it does not require power usage to retain an image on the screen, and that the quality of the display is much, much better than anything an LCD screen could hope to offer. Even from an angle: After having it for about two days, I must say I'm quite happy with it. Reading text on this device is way, way more comfortable than trying to read anything on my laptop, or something similar. Having said that, there are a few quirks with it, which I hope future firmware-updates will fix: These are mere annoyances, however. It's an ebook reader, not a webbrowser; I can live with that. And while the zoom function in the PDF files is not perfect, it mostly does the job. And the positioning of the buttons is probably something that will be different for each and every person. I've found that just plain files are most easily read; the device does a decent job of auto-detecting headers and applying some basic markup; and if it gets confused, fidgeting with the text file until it gets it right is not too hard. In addition, the device comes with much more settings to apply to markup on text files than it does for either of PDF or HTML; e.g., one can change the zoom level in more settings, the line spacing, and a few more things. Additionally, the device also comes with an MP3 player, but I don't really plan on using it. First, I don't like MP3 files; second, the device has not much battery—only 950mAh, which is enough for weeks because of the low power-usage of the screen—and using it for MP3 decoding is a waste of battery; and finally, I have a perfectly good portable media player, so I see no point in trying to use this device for that particular purpose. But, well, I guess some people will like it. All in all, I do like the device. The attention to detail in the packaging is... heh. It even comes with a screwdriver to load the battery...

Russell Coker: New SE Linux Policy for Lenny

I have just uploaded new SE Linux policy packages for Debian/Unstable which will go into Lenny (provided that the FTP masters approve the new packages in time). The big change is that there are no longer separate packages for strict and targeted policies. There is now a package named selinux-policy-default which has the features of both strict and targeted. When you install it you get the features of targeted. If you want the strict features then you need to run the following commands as root: semanage login -m -s user_u __default__
semanage login -m -s root root Then you can logout and login and you get the main benefit of the strict policy (users being constrained). IE you can convert from targeted to strict without a reboot! The above only changes the access for user login sessions (and cron jobs). To fully convert to the strict policy you need to remove the unconfined module with the command “semodule -r unconfined“, currently that results in a system that doesn’t boot - I’m working on this and will have it fixed before Lenny. Also it’s possible to have some users unconfined and some restricted in the way that strict policy always did. When running in the full strict configuration you need to run the command “newrole -r sysadm_r” immediately after logging in as root. When you login you default to staff_r which doesn’t give you the access needed to perform routine sys-admin tasks. Due to the change in the function of the policy packages (in terms of not having a strict package) it made sense to revise the naming (Fedora 9 has a package named selinux-policy-targeted which also provides the strict configuration - I don’t want to do that and don’t have as much legacy as Fedora). This is why I decided to not have package names that include the word “policy” twice. Of course all policy packages get new names, but the ones that matter needed new names anyway. Another new feature is the package selinux-policy-mls, as the name suggests this implements Multi Level Security [1]. I don’t expect that the MLS policy will boot in enforcing mode in a regular configuration at this time (you could probably hack it to boot in permissive mode and switch to enforcing mode just before it starts networking). I uploaded it in this state so that people can start testing it (there is a lot of testing that you can do in permissive mode) and so that it can get added to the package list in time for Lenny. I expect that I’ll have it booting shortly (it should not be much more difficult than getting the strict configuration booting). In terms of the use of MLS, I don’t expect that anyone will want to pay the money needed for LSPP [2] certification. NB The wikipedia page about LSPP really needs some work. I believe that the main benefit for having MLS in Debian is for the use of students. I periodically get requests from students for advice on how to get a job related to military computer security. Probably the best advice I can offer is to visit the career section of an agency from your government that works on computer security issues, for US readers the NSA careers page is here [3]. The second best advice I can offer is to work on MLS support in your favourite free OS. Not only will you learn about technology that is used in military systems but you will also learn a lot about how your OS works as MLS breaks things. ;) Finally I’d like to thank Manoj for all his work. For a while I didn’t have time to do much work on SE Linux and he did a lot of good work. Recently he seems to have been busy on other things and I’ve had a little more time so I’m taking over some of it.

Eric Dorland: Conferencing

So first the bad news is that I'm not coming to DebConf this year. There are a few reasons for this. It's fairly far and expensive. I thought the lineup of talks was pretty similar to the last two years. And perhaps most fundamentally, I don't want to go somewhere cold (well, cool) in the summertime. I think this may be a Canadian thing, but I love summer time and I don't want to squander any of my warm days. So have a good time folks, I'll miss you and I'm certainly going to make the effort to be there next year. And lets hope DebConf 10 is in Montr al :)

I will however be heading to OLS for the first time. Which is ironic because I used to live 2 hours from Ottawa and never went. Now I live several more hours away and now I've decided to go. Irony is fun.

I'm also thinking of attending HOPE here in New York. I'm not really sure what to expect. The talks seem really eclectic, which is cool, but makes it hard to figure out what to go to. Suggestions welcome!

12 July 2008

Kapil Paranjape: Balaram on Institutional Archives

Subbiah Arunachalam forwarded a link to an interview of Professor P. Balaram regarding Open Archives. (Balaram is currently the director of the Indian Institute of Science, Bangalore so he is in a position to influence national policy in such matters). I broadly agreed with his views and I posted a comment which I am reproducing here. Primarily, there are differences between different disciplines. The quotes below are from the interview.
If I publish a paper in Nature, for example, it can be made freely available in my institute's repository after six months. Some journals let archived papers be made available immediately.
... and again later ...
But many publishers have no problem with the open archives approach, even if some still require a delay.
In our discussions with Elsevier we were assured that the policy of that publisher is to allow authors to use institutional repositories at any time (but see the caveats below).
One issue that is yet to be resolved, however, is copyright. I argue that we should be permitted to put in the repository the full text article as it appears in a journal.
There is a difference between "full text" and "as it appears in the journal". If the journal has put in any effort at all into re-formatting your text/images in order to get it to conform with their journal standard, then the copyright for that re-formatting work (usually a combination of manual labour and software) belongs to the journal. For example, Elsevier insists that you do not put the PDF (or other) image file of the exact form of the journal publication in your institute repository. I personally find this quite acceptable since papers in the Mathematical Sciences are perfectly readable in the form in which the authors submit them to the journal. However, re-creating a distributable PDF or other online form of one's paper may be far more difficult in other disciplines --- I have no idea.
For this, countries such as India should have a law specifying that the copyright for articles published with publicly-funded research always vests with the authors and their institutions.
One need not wait for copyright law to change. The directors of each of the research institutes can insist that every paper sent for publication should be made available in the form of a research report with the institute library. By extension, the electronic form of this report would be in the institutional repository. One way to ensure compliance is to only allow reports that are available in the institute library to be used for evaluation (for promotions and the like). The scientists would then refrain from giving up all copyright to their publishers. In my (limited) experience, publishers will not object to authors retaining the right to make copies as long as such copies are not independently sold. Unfortunately, scientists as "the silent compliant mob" does not fit with my experience. In all matters which relate to science administration (and publications are at the centre of that), scientists are by-and-large "status quo"-ists. It will need a strong push from those at the top of the ladder to change the status quo. Professor P. Balaram is certainly one of those at "the top of the ladder" so I would like to see more action to match his words! Update: Fixed the URL thanks to Abhishek Dasgupta. Also clarified the last sentence.

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.

David Pashley: Rebuilding a RAID array

I recently had a failed drive in my RAID1 array. I've just installed the replacement drive and thought I'd share the method. Let's look at the current situation:
root@ace:~# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md1 : active raid1 sda3[1]
      483403776 blocks [2/1] [_U]
      
md0 : active raid1 sda1[1]
      96256 blocks [2/1] [_U]
      
unused devices: <none>
So we can see we have two mirrored arrays with one drive missing in both. Let's see that we've recognised the second drive:
root@ace:~# dmesg   grep sd
[   21.465395] Driver 'sd' needs updating - please use bus_type methods
[   21.465486] sd 2:0:0:0: [sda] 976773168 512-byte hardware sectors (500108 MB)
[   21.465496] sd 2:0:0:0: [sda] Write Protect is off
[   21.465498] sd 2:0:0:0: [sda] Mode Sense: 00 3a 00 00
[   21.465512] sd 2:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[   21.465562] sd 2:0:0:0: [sda] 976773168 512-byte hardware sectors (500108 MB)
[   21.465571] sd 2:0:0:0: [sda] Write Protect is off
[   21.465573] sd 2:0:0:0: [sda] Mode Sense: 00 3a 00 00
[   21.465587] sd 2:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[   21.465590]  sda: sda1 sda2 sda3
[   21.487248] sd 2:0:0:0: [sda] Attached SCSI disk
[   21.487303] sd 2:0:1:0: [sdb] 976773168 512-byte hardware sectors (500108 MB)
[   21.487314] sd 2:0:1:0: [sdb] Write Protect is off
[   21.487317] sd 2:0:1:0: [sdb] Mode Sense: 00 3a 00 00
[   21.487331] sd 2:0:1:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[   21.487371] sd 2:0:1:0: [sdb] 976773168 512-byte hardware sectors (500108 MB)
[   21.487381] sd 2:0:1:0: [sdb] Write Protect is off
[   21.487382] sd 2:0:1:0: [sdb] Mode Sense: 00 3a 00 00
[   21.487403] sd 2:0:1:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[   21.487407]  sdb: unknown partition table
[   21.502763] sd 2:0:1:0: [sdb] Attached SCSI disk
[   21.506690] sd 2:0:0:0: Attached scsi generic sg0 type 0
[   21.506711] sd 2:0:1:0: Attached scsi generic sg1 type 0
[   21.793835] md: bind<sda1>
[   21.858027] md: bind<sda3>
So, sda has three partitions, sda1, sda2 and sda3, and sdb has no partition table. Let's give it one the same as sda. The easiest way to do this is using sfdisk:
root@ace:~# sfdisk -d /dev/sda   sfdisk /dev/sdb
Checking that no-one is using this disk right now ...
OK
Disk /dev/sdb: 60801 cylinders, 255 heads, 63 sectors/track
sfdisk: ERROR: sector 0 does not have an MSDOS signature
 /dev/sdb: unrecognised partition table type
Old situation:
No partitions found
New situation:
Units = sectors of 512 bytes, counting from 0
   Device Boot    Start       End   #sectors  Id  System
/dev/sdb1   *        63    192779     192717  fd  Linux RAID autodetect
/dev/sdb2        192780   9960299    9767520  82  Linux swap / Solaris
/dev/sdb3       9960300 976768064  966807765  fd  Linux RAID autodetect
/dev/sdb4             0         -          0   0  Empty
Successfully wrote the new partition table
Re-reading the partition table ...
If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
If we check dmesg now to check it's worked, we'll see:
root@ace:~# dmesg   grep sd
...
[  224.246102] sd 2:0:1:0: [sdb] 976773168 512-byte hardware sectors (500108 MB)
[  224.246322] sd 2:0:1:0: [sdb] Write Protect is off
[  224.246325] sd 2:0:1:0: [sdb] Mode Sense: 00 3a 00 00
[  224.246547] sd 2:0:1:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[  224.246686]  sdb: unknown partition table
[  227.326278] sd 2:0:1:0: [sdb] 976773168 512-byte hardware sectors (500108 MB)
[  227.326504] sd 2:0:1:0: [sdb] Write Protect is off
[  227.326507] sd 2:0:1:0: [sdb] Mode Sense: 00 3a 00 00
[  227.326703] sd 2:0:1:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[  227.326708]  sdb: sdb1 sdb2 sdb3
So, now we have identical partition tables. The next thing to do is to add the new partitions to the array:
root@ace:~# mdadm /dev/md0 --add /dev/sdb1
mdadm: added /dev/sdb1
root@ace:~# mdadm /dev/md1 --add /dev/sdb3
mdadm: added /dev/sdb3
Everything looks good. Let's check dmesg:
[  323.941542] md: bind<sdb1>
[  324.038183] RAID1 conf printout:
[  324.038189]  --- wd:1 rd:2
[  324.038192]  disk 0, wo:1, o:1, dev:sdb1
[  324.038195]  disk 1, wo:0, o:1, dev:sda1
[  324.038300] md: recovery of RAID array md0
[  324.038303] md: minimum _guaranteed_  speed: 1000 KB/sec/disk.
[  324.038305] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for recovery.
[  324.038310] md: using 128k window, over a total of 96256 blocks.
[  325.417219] md: md0: recovery done.
[  325.453629] RAID1 conf printout:
[  325.453632]  --- wd:2 rd:2
[  325.453634]  disk 0, wo:0, o:1, dev:sdb1
[  325.453636]  disk 1, wo:0, o:1, dev:sda1
[  347.970105] md: bind<sdb3>
[  348.004566] RAID1 conf printout:
[  348.004571]  --- wd:1 rd:2
[  348.004573]  disk 0, wo:1, o:1, dev:sdb3
[  348.004574]  disk 1, wo:0, o:1, dev:sda3
[  348.004657] md: recovery of RAID array md1
[  348.004659] md: minimum _guaranteed_  speed: 1000 KB/sec/disk.
[  348.004660] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for recovery.
[  348.004664] md: using 128k window, over a total of 483403776 blocks.
Everything still looks good. Let's sit back and watch it rebuild using the wonderfully useful watch command:
root@ace:~# watch -n 1 cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md1 : active raid1 sdb3[2] sda3[1]
      483403776 blocks [2/1] [_U]
      [=====>...............]  recovery = 26.0% (126080960/483403776) finish=96.2min speed=61846K/sec
      
md0 : active raid1 sdb1[0] sda1[1]
      96256 blocks [2/2] [UU]
      
unused devices: <none>
The Ubuntu and Debian installers will allow you create RAID1 arrays with less drives than you actually have, so you can use this technique if you plan to add an additional drive after you've installed the system. Just tell it the eventual number of drives, but only select the available partitions during RAID setup. I used this method when a new machine recent didn't have enough SATA power cables and had to wait for an adaptor to be delivered. (Why did no one tell me about watch until recently. I wonder how many more incredibly useful programs I've not discovered even after 10 years of using Linux)
Read Comments (3)

11 July 2008

Gerfried Fuchs: Plug And Pray

Sometimes one stumbles upon interesting pictures. It happens too regularly in recent times and I don't think that it will end too soon. This new section of my blog will contain such photos from time to time.
I'll start off with a quite interesting poster we stumbled upon in my hometown. If you don't understand German, it's about church service targetted at youths—and everyone knows that young people always mix their language with english vocabulary all the time to sound hip, don't we... Don't forget to also read the small text at the bottom, or you don't know where the "Chill Out - Meet & Greet" is going to happen! Plug & Pray

Aurelien Jarno: Dr Jarno

As already announced by Julien Blache, I successfully passed my PhD defense today, and I am now a doctor. During my PhD, I designed and implemented an optical simulator for the MUSE instrument, an integral field spectrograph which will be installed on one of the large European telescopes of the VLT.

Andrea De Iacovo: WordPress freeze.


WordPress has reached his final version for lenny. Now we have a package completely lintian clean, with all the most important bugs closed and (which is a great thing) no security bugs! We still miss some feature (theme and plugin editor) but I will not patch the package again before the lenny official release: implementing thoose feature means modifying permissions in a way I’m not still sure will be completely safe. So, please, try out wordpress as soon as possible and report security issues if you find any!

Adam Jensen: 11 Jul 2008

Yesterday, 10 July, was the due date for the second milestone of my work on DebGraph. I am happy to report that we are roughly two weeks ahead of schedule, so meeting this milestone was not a cause for worry. We now have support for the following graph operators: The next milestone includes the development of a high-level language (or integration with an existing extension language) that streamlines the construction of complex queries using the operators listed above. We can build arbitrarily complex queries using the C++ operators, but dealing with the static typing and compiler toolchain can be very clunky. As such, I have spent the past week working on Lua bindings for DebGraph, which will enable us to query the graph of Debian packages from a clean, dynamically typed language. Lua has a powerful C API that exposes the Lua stack and lets us move DebGraph information to and from the Lua interpreter. I'm writing documentation that outlines how to use DebGraph from both C++ and Lua in order to make this work accessible to more folks. Sneak peak
As an example, we can utilize the FindCycles operator in Lua as follows:
libdg = package.loadlib("./libdebgraph.so",
"luaopen_libdebgraph")
libdg()
LoadPackages('cache')
-- 'g' is the main graph of unstable binary-arm packages
cycles = FindCycles(g)
print("Found " .. #fc .. " cycles")
for comp_key,comp in pairs(cycles) do
    comp_nodes = ""
    for node_key,node in pairs(comp) do
        prop = GetProperty(node, "Package")
        comp_nodes = comp_nodes .. prop .. " "
    end
    print("* " .. comp_nodes)
end
The above Lua script produces the following result:
reading cache/unstable/main/binary-arm/Packages
Found 61 cycles
* debconf-english debconf-i18n debconf
* perl-modules perl 
* cdebconf fontconfig-config fontconfig gsfonts-x11
libcairo2 libfontconfig1 libgtk2.0-0 libpango1.0-0
libpango1.0-common libxft2 ucf x11-utils xutils
[...]
These are the package names in the strongly connected components, shown in alphabetical order. There is still a lot of work to do before the Lua binding will achieve feature parity with the core library, but we have now laid the foundation (and a brick or two).

Julien Blache: aurel32 now a PhD

Aur lien JARNO defended his PhD this morning, and I’m just back from attending his defense. He did an incredible work designing and implementing a simulator for the MUSE instrument that will equip the VLT in 2012 (”first light”) and is being built now. People working in the field are very impressed by the work he achieved, and I must add that it’s even more impressive when you know all he did in Debian and various other projects at the same time. Wow. Congratulations Dr. JARNO!

Lucas Nussbaum: 3G Internet access using mobile phone + laptop in France

In France, we only have 3 mobile network operators: Orange, SFR, and Bouygues Telecom. They usually discuss their rates together to make sure that one of them doesn’t break the market by creating too interesting rates (that’s why it would be so cool if Free.fr could get a 3G license, and why the governement can tell them “do what we want, or we will give Free a 3G license” - source). I’ve long been interested in using my mobile phone with my laptop to access the Internet. With the 3 operators, you can get a contract for a 3G USB key, but that’s not really interesting: it’s expensive, and there’s a limit on volume of data, so you have to monitor your bandwidth. Also, I only need to use my mobile phone as modem a few times a month. So I’m not really interested in paying an expensive monthly fee for that. What do french MNOs offer? Most of them have rather interesting offers when you want to get unlimited internet access from your mobile, but that doesn’t cover the case of using your phone as a modem, to access the internet on another device (e.g laptop). I’m not sure how they can see the difference, but apparently they do. (It seems that there are hacks making use of those unlimited rates, using your phone as a router between the Wifi network (but your phone has to support Wifi) and the 3G network, using apps like WMWiFiRouter. Another hack is to use the same HTTP proxy on the laptop than on the phone, which seems to give unlimited HTTP access.) But offers for using your phone as a modem are clearly less interesting (probably because they want to push their USB 3G cards offers): Bouygues:
Apparently, you are billed only based on the volume (see page 46 of this document), with a progressive rate. 5 MB/month costs 9 EUR, 100 MB costs 20 EUR, and over 100 MB, you pay 1 EUR/MB (!). SFR:
See page 40-41 of this document. You pay 0.50 EUR for a 30 minutes session, with 2 MB of data included. After those 2 MB of data, you pay 1 EUR/MB. Those rates are really crazy. Using a mobile phone on an HSDPA network (called “3G+” in France), you can easily reach 1 Mbps. (and I did see this rate while fetching files using rsync, so I was not particularly aiming at performance!). 1 Mbps translates to 7.5 EUR/min using the 1 EUR/MB rate. Or 12.5 cts/sec!!! Surprisingly, Orange (ex-France Telecom), which is usually not the most innovative MNO and ISP in France, saves us. With Orange, you pay 0.5 EUR for a 20 mins session, with unlimited volume (sessions called “session multim dia” by Orange). I was so surprised that I called the assistance to check. And after trying it yesterday, I was a bit anxious when checking my online bill this morning. But it works! Important note before you try (from Orange website):
La session multim dia est une tarification valable pour les clients forfaits mobile Orange (hors forfaits Orange pour iPhone, Mobicarte et cartes pr pay es). Pour les clients Classique, Intense, Pro, Click le forfait et Initial dont la souscription ou le r engagment est ant rieur au 14 juin 2007, pour les clients forfaits bloqu s dont la souscription ou le r engagement est ant rieur au 16 ao t 2007 et pour les clients b n ficiant d une offre blackberry, l accord expr s de l abonn b n ficier de la session multim dia est n cessaire. Les autres clients b n ficient de la tarification au volume.

10 July 2008

Biella Coleman: Han Reiser and autism

Autism Vox has a post about the recent autism defense for Han Reiser's case. It will be interesting to see play out (and I am as baffled as she is about the Duckbill Platypus. Is it just supposed to be a stand-in for strange?)

Steve Kemp: He'll save every one of us!

So recently there have been a few posts by people discussing the idea of distributed bug reporting systems. This is topical, becuse I've been working on something vaguely related - a support system. Why is a support system, or ticketing system, related to a bug tracker? To answer that you must first clarify what you mean by a support system (or a bug tracker for that matter). There are two distinct types of support systems:
"Full"
This is a system which does "everything". Each submitted support, or bug, request has an associated status, severity, priority and work log. It might be assigned to multiple people through its lifetime, and it might be moved around various internal queues. Example: Request Tracker.
"Minimal"
A reported ticket is an email submission. A "ticket" from start to finish is nothing more than a collection of mails upon a particular topic - there is no assigned "owner", no "priority", no object-specific attributes at all.
I've neither the time, patience, or desire to create any system like the first one. But I've become increasingly dissatisfied with my current support system, roundup, for various reasons. So I need something new. Previously I ruled out several support systems and most of my objections still stand, although I admit I've not really looked again. I will certainly do so shortly. So what have I done? Well I figure I care very little about queues, priorities, reports, and all that stuff. (On the basis that priority is mostly in the ticket itself, and that I'm the sole recipient of the submissions. Previously I had a partner to share them, but these days just me.) I want something that is basically e-mail centric. That reduces the functionality of my support system to two distinct parts:
Ticket Submission
An email to sumbit@example.com should result in three actions:
  • A message being sent back to the submitter. "Hey got your ticket. We'll fix it. Love you long time.". (Set the reply-to address appropriately!)
  • A message to the site admin(s) saying "Hey, you've got a new ticket submission. Deal."
  • A new ticket being created/stored somewhere.
(There are additional nice things to have - such as SMS alerts outside 10:00-17:00, etc, but those are trivial bolt-ons.)
Ticket Updates
When a mail comes in to "ticket-XXXX@example.org" - which was setup in the submission process, or when a mail arrives with subject "[issueXXXX]" we need to append the correspondance to the existing ticket. If that ticket doesn't exist we report an error. If the ticket is closed we re-open it.
So, what do we have? A script that is conceptually simple, and can be invoked via a pipe transport of Exim4. A script that just reads the submitted email from STDIN and only has to decide a couple of things based pretty much on the contents of the "To:" and "Subject:" headers. Simple, no? OK it was actually amazingly simple once broken down. The amazing part is that it all works. I figured that I'd manage new tickets by writing them to mbox files - simple to do. Simple to understand. So the process goes: There are a couple of helper scripts: But basically one script and mutt does it all. So far it's been tested and it is rockin'! (Look at me, hangin' with the cool kids!) Obviously it is pretty Steve-specific, and there is only a toy CGI process for viewing history online, but I'm actually feeling pretty good about it. Once I've closed all my existing tickets I will probably migrate over to it. At least this handles (read: ignores) MIME - which makes it a clear winner of roundup, which just eats, bounces, or corrupts submitted multipart messages. ObQuote: Flash Gordon

Erich Schubert: Thesis done!

Yay! I just handed in my Diploma thesis in Computer Science (approx. Masters degree). It will still be some weeks until it has been graded, the dean has signed the diploma etc., but I'm pretty much done.The topic of my thesis is
Statistical Approaches for Robustifying Correlation Clustering Algorithms
so my field of research is Data Mining, in particular Data Clustering and Outlier Detection. My particular contribution is to improve the accuracy of PCA results in the presence of noise.Some ideas of the thesis are also just being published at the 20th International Conference on Scientific and Statistical Database Management (SSDBM) July 9-11, 2008, Hong Kong, China and the associated proceedings (Springer LNCS volume 5069):
Hans-Peter Kriegel, Peer Kröger, Erich Schubert and Arthur Zimek. A General Framework for Increasing the Robustness of PCA-based Correlation Clustering Algorithms
Other related publications will follow (an outlier detection method using parts of my thesis will be submitted to a journal soon, too). And in case the first name on that list rings a bell: he did some major contributions to multi-dimensional data structures such as the R*-Tree, X-Tree and Buddy Tree, and has since been very active in data mining.I'll be giving a short talk at the graduate seminar next week, and I'll probably publish the slides on my web page. But they will only be a short excerpt of my work due to time limitations of the talk.So basically, I'm jobless now! :-)I still have plenty of related ideas to continue research, and my advisor asked me if I'd like to continue with a PhD degree (so you can assume the grade of the thesis won't be too bad). However, the university is always short on open positions, and I don't know if I'll be able to get one (a research proposal is pending). Therefore, I'm looking for a position that allows be to pursue data mining and/or clustering research. Part time jobs are fine if they are well enough paid, although it of course would be best if the job would just include related research. If the job is located outside of Munich, a contact to a local university with a strong data mining research group is needed. (In Munich I obviously already have contacts to a strong research group.)As you might figure from me posting on Planet Debian, Planet GNOME and similar, I'm fairly experienced in OpenSource and Linux (something like 19 years of programming experience, 13 years of Linux experience). So I'm not just a fresh graduate, but a doer when it comes to coding. (Which is partially why I'd prefer a job outside of the university!)Anyone with interesting job offers (Google Munich anyone? I've been trying to get a back channel contact with you for weeks), please just drop me an email at erich AT debian DOT org.P.S. No, that doesn't mean I'm only looking for jobs in the data mining field. It would just be more convenient.

John Goerzen: My DNS happiness is complete

I have been using Gandi as my preferred register for some years now. They have probably the most customer-friendly AUP out there, are reliable, and good decent folks. I have liked everything about them.

Except the fact that they don't have whois privacy. But now they do! Woohoo! They did have whois spam protection all along, but your address and phone number was visible to everyone.

Whois privacy services are something that you have to keep a close eye on. What you want is for your name to still show up in the public whois database, but just nothing else. Some whois privacy services put *their* name there, which means technically they own the domain. I wouldn't trust that. Gandi is better about it. Your name, their address and phone number.

Of course, you still have to give Gandi your real contact info, and there are some situations in which it will be revealed. But all in all, I am very happy to see them doing this.

I had looked at other registrars that provided whois privacy, and never liked them for various reasons. Many happened to also have quite restrictive terms of service (hello Dynadot), maybe were good people but had restrictive ToS and crappy interface (register4less), etc.

Now I get to stick with Gandi and get the features I want. I'm very happy with that.

Next.

Previous.