Search Results: "spa"

13 July 2008

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.

Matthew Garrett: My trip to Istanbul by Matthew Garrett aged 28 and 4/365ths

Saturday

Arrive at Heathrow. Richard gets to be my special lounge buddy - we later discover Bastien sitting outside looking like a lost puppy. Flight is delayed by a mere hour, so we get to the hotel with little trouble and check in. Dinner with Luis and co on pillows on the street. This becomes a recurring theme. Drinking is involved. This also becomes a recurring theme. People complain about my shortcut finding skills.

Sunday

See beautiful things. Thankful to finally get to see buildings older than my old college. Dinner under some bridge with Red Hat folks where we discover the joys of the "special price". People once more complain about my shortcut finding skills. Suspect pillows are involved, but hazy recollections.

Monday

Arrive at the university by taxi. More to the point, arrive at the university by taxi without taking a 30km detour. Dinner with Canonical people, then a party in some overpriced bar on the top of a very big hill. Discover that taxi drivers in Istanbul either have no fucking clue where anything in the entire world is, or that driving tourists to bizarre locations is a national pastime. Avoid this fate and arrive home at something like 4AM.

Tuesday

Corporate whoring continues with dinner with Collabora people (delayed by two and a half hours because Christian values getting sweaty with other men over eating, or something), followed by more drinks on the pillows. Am vindicated when it turns out that my route back to the hotel would in fact be the shortest possible route back if people didn't keep insisting on making random left turns when we're almost there.

Wednesday

Fascinating (and increasingly drunken) discussion of the neurobiological aspects of colour spaces with Pippin precedes drinks on the roof of the university. Narrowly prevent Luis' attempt to leave the foundation open to flagrant copyright violation suits. More pillows.

Thursday

Wake up with a twisted ankle and a broken laptop. I had a good birthday, it seems. Collabora host a party on a boat. Miraculously, nobody falls off the boat. We head back to the pillows while others trudge up the hill to Taksim. Aaron wins the inaugural Aaron Bockover award for services to the GNOME community.

Friday

Dinner with Novell, demonstrating my even-handedness when it comes to accepting corporate favours. Miguel reveals his true nature as a Microsoft shill by admitting to owning an XBox. I advise him to raise his free software credentials by getting a Freerunner - as a bonus it'll crash whenever anyone tries to call him, preventing Microsoft from whispering more sweet nothings in his ear. A foolproof plan. Party paid for by Google. Ear bleedingly loud. Some drinking involved. Return to bizarro deviant pillows where we are treated to the spectacle of child labour. Spend some time wondering why Planet Fedora is discussing upskirt photos and decide that hating the entire human race is probably the best option.

Saturday

Turns out that while the Grand Bazaar is effectively just a shopping centre, it's a fucking giant shopping centre that sells nothing I can find any excuse to want. Wander over to Asia for dinner. Conversation with Lennart about using cgroups as a mechanism for providing application latency requirements and how the current lack of standardisation of mountpoints and exposure of irritating implementation details makes it almost impossible to use them for anything. Fascinating diversion into how to deal with getting a SIGBUS when your mmap()ed soundcard gets hotswapped, including deciding that the easiest way of getting a reliable indication of your current process maps is by, erm, parsing /proc/self/maps. Final pillows trip. Emotional farewells (by which I mean more drinking)

Sunday

Airport. Plane. Train. Home. Transfer hard drive into laptop with working screen. Discover that productivity not actually enhanced by having more than a 300x200 pixel area of functionality. Decide to write libelous article about previous week instead.

Romain Beauxis: Spip package

I've just uploaded a new package for the SPIP content management webapp. SPIP is a very powerfull CMS made by a team of french coders. It is widely used in the french-speaking part of internet, used in thousands of sites, ranging from personal home page to professional publication websites. SPIP is somehow not well known in the eglish-speaking world, probably because most of the things happen in French... However, it's fully translated and documented in English, as well as many other (...)

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...

Sune Vuorela: kde / java / packaging

The following is not a joke: more precise, soprano, used by nepomuk (semantic desktop thingie), has a sesame backend (java) and a redland backend (c++). According to upstream and others, the sesame backend is way faster than the redland backend. In the soprano svn dir (and in the pristine tarball), there are a few jars put in precompiled: This isn’t completely beautiful, but as they all are bsd licensed, it is at least legal.
But it isn’t good enough for debian, as we ship sources and build them. (I think I have heard at least fedora mumble something similar)
The two last jar files, the slf4j ones, are available packaged in debian in the libslf4j-java package. but openrdf-sesame is not available. If some persons out there has java knowledge, debian packaging knowledge, preferably knowledge of debian java policy and some spare time, packaging openrdf-sesame would be much apprecaited. And after that, getting the soprano sesame backend built is next goal. Thanks in advance. applications welcome.

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.

11 July 2008

Bastian Venthur: Maximize vs Maximize to Preferred Size

In times where screen resolutions of 1600x… and above are becoming more and more common, I wonder if the maximize window button which enlarges a window to take all the available space on the desktop is still as useful as it used to be. I noticed that some (if not all, I’m not a Mac user) applications on Mac only maximize their windows depending on the content of the window. For example if you maximize the window of your word processor, the window becomes only as wide as necessary to make the whole page visible. This doesn’t just look better on very large monitors, it is also more usable than a simple maximize since it doesn’t unnecessarily hide other windows. Is there a window manager for Linux which does something similar, or better: is something like this possible with KDE? I know that QT widgets have a “preferred size” — shouldn’t it be possible to have a maximize to preferred size button? It’s surely not useful for every application, but may applications only need a quite small main window and look very ugly when maximized.

10 July 2008

Andrew Pollock: [tech] What is a good RAID reconstruction speed?

I'm in the process of converting my poor-man's SAN from IDE disks attached to the host by IDE-USB adapters to SATA disks attached by eSATA to SATA cables. I had some spare time tonight, so I thought I'd prepare the new RAID-10 on brutus. The intent is to then take the 4-port USB 2.0 card out of minotaur during a lull in recordings on Saturday, and put it in brutus as well, and do a giant pvmove, then put the 4-port eSATA card back in minotaur with the new disks attached. So I've got the 4-port eSATA card (a Silicon Image SiI 3124) in brutus, and I've built the RAID-10 with mdadm and it's busily reconstructing. I'm getting a reconstruction speed of around 60Mb per second (/proc/mdstat says 60254K/sec right now). I have no idea if that's good, bad, or indifferent. I do know that output of hdparm -tT is very nice by comparison:
apollock@brutus:~$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads:   260 MB in  2.01 seconds = 129.06 MB/sec
 Timing buffered disk reads:  222 MB in  3.01 seconds =  73.77 MB/sec
compared to
apollock@minotaur:~$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads:   162 MB in  2.02 seconds =  80.20 MB/sec
 Timing buffered disk reads:   48 MB in  3.04 seconds =  15.78 MB/sec
Those times are with a reconstruction running on brutus and a recording being written to the array on minotaur, so not the most controlled benchmarking environment. If I can sit on my hands long enough, I'll try some benchmarks from the MythTV machine, comparing the performance of the SAN before and after switching disks.

DebConf team: DebConf 8 website: a call for help (Posted by Mart n Ferrari)

DebConf 8 is approaching and our website is clearly not what we’d like it to be. It turns out that compiling all the useful stuff that travellers might need is not easy, so we kindly ask you —dear lazyweb—, to lend us a hand. The most important thing we need, is to recognise missing data. When you’re a local, is difficult to know what foreigners might need to know. So, even if you don’t know the country, your different point of view could help. The second thing is to actually get articles written, some stuff ought to be written by locals, but the majority can be researched from the web (as we already did!). Proof-reading and checking translation is also appreciated. Send us your patches, comments and suggestions to the website queue at the RT system, or contact Tincho@OFTC. Don’t sweat over formatting: plain text is OK, if you want to provide markup, please use very spartan XHTML Strict.

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.

9 July 2008

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

New status update! Here’s what Aptitude looks like: aptitude-20080709-9 (more screenshots after the break) I’ve been exploring how the APT libraries work and how to interact with the aptitude back-end and here’s what it can do now: What’s missing: Basic functions of a package manager are already covered. We’re still at the APT API exploration phase although we’re almost done with it. I will soon start working on the final user interface and the real code design. The current code is about 2000 lines of hastily hacked together C++ and XML. I’ll have to restart the coding with a more elaborate Object design. Something that will be easier to work with in the future. The code is on http://dev.graffit.net/aptitude/trac. You can try to compile it and play with it. On the other hand I’m going to scrape most of the code soon for the restart so if you’re bored.. A walkthrough and more screenshots after the break. Here’s a walkthrough of what you can do right now: aptitude-20080709-2 aptitude-20080709-3 aptitude-20080709-4 aptitude-20080709-5 aptitude-20080709-6 aptitude-20080709-7 aptitude-20080709-8 aptitude-20080709-9

8 July 2008

Russell Coker: Is a GPG pass-phrase Useful?

Does a GPG pass-phrase provide a real benefit to the majority of users? It seems that there will be the following categories of attack which result in stealing the secret-key data:

  1. User-space compromise of account (EG exploiting a bug in a web browser or IRC client).
  2. System compromise (EG compromising a local account and exploiting a kernel vulnerability to get root access).
  3. Theft of the computer system while powered down when the system was configured to not use swap or to encrypt the swap space with a random key at boot time.

  4. Theft of a computer system while running or that did not have encrypted swap.

  5. Theft of unencrypted backup media.

Category 1 will permit an attacker to monitor user processes and intercept one that asks for a GPG pass-phrase as well as to copy the secret key. Category 2 will do the same but for all users on the system. Category 3 will give the potential for stealing the private key (if it’s not encrypted) but no direct potential for getting the pass-phrase. Category 4 has the potential for copying a pass-phrase from memory or swap. I am inclined to trust Werner Koch (and anyone else who submitted code to the GPG project) to have written code to correctly lock memory and scrub pass-phrase data and decrypted private key data from memory after use. But I really doubt the ability of most people who write code to interface with GPG to do the same. So every time that a GUI program prompts for a GPG pass-phrase I think that there is the potential for it to be stored in swap or to remain indefinitely in RAM. Therefore stealing a machine that does not have it’s swap-space encrypted with a random key (which is the most practical way of encrypting swap) or stealing a running machine (as mentioned in a previous post [1]) can potentially grant a hostile party access to the pass-phrase. So it seems to me that out of all the possible ways of getting access to a GPG private key, the only ones where a pass-phrase ones is going to really do some good are categories 3 and 5. While it’s good to protect against those situations, it seems to me that the greatest risk to a GPG key is from category 1, with category 2 following close behind. I previously wrote about the slow progress towards using SE Linux and GPG code changes to make it more difficult to steal the secret key [2] - something that I’ve been occasionally working on over the last 6 years. Now it seems to me that the same benefits can and should be made available to people who don’t use SE Linux. If a system directory such as /var/spool/gpg was mode 1770 then gpg could be setgid to group “gpg” so that it could create and access secret keys for users under /var/spool/gpg while the users in question could not directly access them. Then the sys-admin would be responsible for backing up GPG keys. Of course it would probably be ideal to have an option as to whether a new secret key would be created in the system spool or in the user home directory, and migrating the key from the user home directory to the system spool would be supported (but not migrating it back). This would mean that an attacker who compromised a local user account (maybe through a vulnerability in a web browser or MUA) would not be able to get the GPG secret key. They could probably get the pass-phrase by ptracing the MUA (or some other GUI process that calls GPG) but without the secret key itself that would not do as much good - of course once they had the pass-phrase and local access they could use the machine so sign and decrypt data which would still be a bad thing. But it would not have the same scope as stealing the secret key and the pass-phrase. I look forward to reading comments on this post.

Russell Coker: Label vs UUID vs Device

Someone asked on a mailing list about the issues related to whether to use a label, UUID, or device name for /etc/fstab. The first thing to consider is where the names come from. The UUID is assigned automatically by mkfs or mkswap, so you have to discover it after the filesystem or swap space has been made (or note it during the mkfs/mkswap process). For the ext2/3 filesystems the command “tune2fs -l DEVICE” will display the UUID and label (strangely mke2fs uses the term “label” while the output of tune2fs uses the term “volume name“). For a swap space I don’t know of any tool that can extract the UUID and name. On Debian (Etch and Unstable) the file command does not display the UUID for swap spaces or ext2/3 filesystems and does not display the label for ext2/3 filesystems. After I complete this blog post I will file a bug report. If you are using a version of Debian earlier than Lenny (or a version of Unstable with this bug fixed) then you will be able to easily determine the label and UUID of a filesystem or swap space. Other than that the inconvenience of determining the UUID and label will be a reason for not using them in /etc/fstab (keep in mind that sys-admin work sometimes needs to be done at 3AM). One problem with mounting by UUID or label is that it doesn’t work well with snapshots and block device backups. If you have a live filesystem on /dev/sdc and an image from a backup on /dev/sdd then there is a lot of potential for excitement when mounting by UUID or label. Snapshots can be made by a volume manager (such as LVM), a SAN, or an iSCSI server. Another problem is that if a file-based backup is made (IE tar or cpio) then you lose the UUID and label. tune2fs allows setting the UUID, but that seems like a potential recipe for disaster. So this means that if mounting by UUID then you would potentially need to change /etc/fstab after doing a full filesystem restore from a file-based backup, this is not impossible but might not be what you desire. Setting the label is not difficult, but it may be inconvenient. When using old-style IDE disks the device names were of the form /dev/hda for the first disk on the first controller (cable) and /dev/hdd for the second disk on the second controller. This was quite unambiguous, adding an extra disk was never going to change the naming. With SCSI disks the naming issue has always been more complex, and which device gets the name /dev/sda was determined by the order in which the SCSI HAs were discovered. So if a SCSI HA which had no disks attached suddenly had a disk installed then the naming of all the other disks would change on the next boot! To make things more exciting Fedora 9 is using the same naming scheme for IDE devices as for SCSI devices, I expect that other distributions will follow soon and then even with IDE disks permanent names will not be available. In this situation the use of UUIDs or LABELS is required for the use of partitions. However a common trend is towards using LVM for all storage, in this case LVM manages labels and UUIDs internally (with some excitement if you do a block device backup of an LVM PV). So LV names such as /dev/vg0/root then become persistent and there is no need for mounting via UUID or label. The most difficult problem then becomes the situation where a FC SAN has the ability to create snapshots and make them visible to the same machine. UUID or label based mounting won’t work unless you can change them when creating the snapshot (which is not impossible but is rather difficult when you use a Windows GUI to create snapshots on a FC SAN for use by Linux systems). I have had some interesting challenges with this in the past when using a FC based SAN with Linux blade servers, and I never devised a good solution. When using iSCSI I expect that it would be possible to force an association between SCSI disk naming and names on the server, but I’ve never had time to test it out. Update: I have submitted Debian bug #489865 with a suggested change to the magic database. Below are /etc/magic entries for displaying the UUID and label on swap spaces and ext2/3 filesystems:
The following magic entry will display the UUID of a swap space as well as displaying the label in the same manner as the mkswap program:
# according to man page of mkswap (8) March 1999
# volume label and UUID Russell Coker
# http://etbe.coker.com.au/2008/07/08/label-vs-uuid-vs-device/
4086 string SWAPSPACE2 Linux/i386 swap file (new style),
>0×400 long x version %d (4K pages),
>0×404 long x size %d pages,
>1052 string \0 no label,
>1052 string >\0 LABEL=%s,
>0×40c belong x UUID=%x
>0×410 beshort x \b-%x
>0×412 beshort x \b-%x
>0×414 beshort x \b-%x
>0×416 belong x \b-%x
>0×41a beshort x \b%x The following magic entry will display the UUID and label (AKA volume name) of an ext2/3/4 filesystem:
# ext2/ext3 filesystems - Andreas Dilger <adilger@dilger.ca>
# ext4 filesystem - Eric Sandeen <sandeen@sandeen.net>
# volume label and UUID Russell Coker
# http://etbe.coker.com.au/2008/07/08/label-vs-uuid-vs-device/
0×438 leshort 0xEF53 Linux
>0×44c lelong x rev %d
>0×43e leshort x \b.%d
# No journal? ext2
>0×45c lelong ^0×0000004 ext2 filesystem data
>>0×43a leshort ^0×0000001 (mounted or unclean)
# Has a journal? ext3 or ext4
>0×45c lelong &0×0000004
# and small INCOMPAT?
>>0×460 lelong <0×0000040
# and small RO_COMPAT?
>>>0×464 lelong <0×0000008 ext3 filesystem data
# else large RO_COMPAT?
>>>0×464 lelong >0×0000007 ext4 filesystem data
# else large INCOMPAT?
>>0×460 lelong >0×000003f ext4 filesystem data
>0×468 belong x \b, UUID=%x
>0×46c beshort x \b-%x
>0×46e beshort x \b-%x
>0×470 beshort x \b-%x
>0×472 belong x \b-%x
>0×476 beshort x \b%x
>0×478 string >0 \b, volume name "%s"
# General flags for any ext* fs
>0×460 lelong &0×0000004 (needs journal recovery)
>0×43a leshort &0×0000002 (errors)
# INCOMPAT flags
>0×460 lelong &0×0000001 (compressed)
#>0×460 lelong &0×0000002 (filetype)
#>0×460 lelong &0×0000010 (meta bg)
>0×460 lelong &0×0000040 (extents)
>0×460 lelong &0×0000080 (64bit)
#>0×460 lelong &0×0000100 (mmp)
#>0×460 lelong &0×0000200 (flex bg)
# RO_INCOMPAT flags
#>0×464 lelong &0×0000001 (sparse super)
>0×464 lelong &0×0000002 (large files)
>0×464 lelong &0×0000008 (huge files)
#>0×464 lelong &0×0000010 (gdt checksum)
#>0×464 lelong &0×0000020 (many subdirs)
#>0×463 lelong &0×0000040 (extra isize)

Neil Williams: Spammers Hall of Shame

Some time ago, I added a
Spammers Hall of Shame to my first website, codehelp.co.uk.

"... sites that send me unsolicited commercial email can expect a poison
response. If such companies are arrogant enough to not even read the
contents of this page, then I shall post details of their incompetence
here."

It's not often that I add a new one - generally when the spammer in question tries to claim that it is not spam and pretends to have taken an interest in the site when it is plainly obvious that the About page has been completely ignored. It takes a special kind of idiocy to get onto the list - something that motivates me to a noticeable level of annoyance. The vast majority of spam doesn't come anywhere close. It has to be something that has some indication of being supposedly "customised" for me and my website(s) yet equally takes absolutely no notice of the content of that website, specifically the content explicitly added to About that should have been noticed by anyone with half a brain.

Anyway, my latest poison pen is now available for everyone to see.

True, it gives their spam email a wider airing but it's not as if codehelp.co.uk is anything but a very quiet backwater of the internet so it's not going to affect traffic in any real way. I just get annoyed when idiots who claim to be professionals do not have the simple courtesy of reading.

In a similar tone:
http://qof-gen.sourceforge.net/#free

7 July 2008

Cameron Dale: blog software updated

I updated ikiwiki, the software used to generate this blog, to the version in backports (2.50 from 1.50). I tried very hard to not spam any aggregators, as the new version uses a different link format. Hopefully I succeeded, apologies if I didn't.

Ian Wienand: Whoda' thunk it!

I learned a new word today, thunk. At first, given the context, I thought it meant text (as in program code) hunk, but the Hacker's Dictionary suggests it's actually more a term for a closure. For those not familiar with what a closure is, it's a "thunk" of encapsulated code created by the compiler which is dynamically generated and managed. Stealing the Wikipedia example: Closures Nested functions are probably the closest thing to a closure you can get with C (I've talked about nested functions and trampolines before). However, because the stack disappears it's not nearly as useful, I think the term for these is lexical closures, because it's basically a way to share some stack and restrict name-spaces. Amusingly, the code using the term "thunk" was assembler, so my first search was for thunk gas (as in GNU Assembler). This of course lead to endless articles on the high price of gas — a non-renewable fossil fuel running out and capitalists realising inelastic demand can be used to line their pockets? Whoda' thunk it!

Rapha&#235;l Hertzog: Git, CIA and branch merging

Dear Joey, we also had this problem for dpkg, that’s why I hacked the /usr/local/bin/git-commit-notice script that we’re using on Alioth to do something like this instead:
while read oldrev newrev refname; do
    branchname=$ refname#refs/heads/ 
    [ "$branchname" = "master" ] && branchname=""
    for merged in $(git rev-parse --not --branches   grep -v $(git rev-parse $refname)   git rev-list --reverse --stdin $oldrev..$newrev); do
         /usr/local/bin/git-ciabot.pl $merged $branchname
    done
done
It will stop git rev-list each time that it encounters a commit that is available in any of the other branches present in the repository and thus when you merge a branch, you only see the merge commit in CIA. You should also note that the script is smarter as it calls CIA only for branch updates, not for tag creation (and other kinds of updates) where it only leads to strange errors IIRC. Partagez cet article / Share This

6 July 2008

Uwe Hermann: Underhanded C Contest 2008: Leaky Redaction

This year's Underhanded C Contest has been announced. If you haven't yet heard of the contest (which is pretty much the opposite of the International Obfuscated C Code Contest) here's a quick intro:
The Underhanded C Contest is an annual contest to write innocent-looking C code implementing malicious behavior. In this contest you must write C code that is as readable, clear, innocent and straightforward as possible, and yet it must fail to perform at its apparent function. To be more specific, it should do something subtly evil.
This year's topic is Leaky Redaction: Underhanded C Code Contest 2008 image
Write a short, simple C program that redacts (blocks out) rectangles in an image. The user feeds the program a PPM image and some rectangles, and the output should have those rectangles blocked out.
[...]
Your challenge: write the code so that the redacted data is not really gone. Ideally the image would appear blocked-out, but somehow the redacted blocks can be resurrected.
The deadline for submissions is September 30th, 2008. Winners will get a $100 ThinkGeek gift certificate (plus eternal fame, of course). In 2005 I took part in this contest together with Daniel Reutter which was really great fun. See underhanded2005.tar for our entry (the topic was "covert fingerprinting" in 2005) and the comments from the judges for our entry (as well as the other entries).

5 July 2008

Raphael Geissert: debconf8


Just received the ticketing notification, so I can finally post it:



:) Many thanks to the person who decided to sponsor my travel to Argentina, without whom I would would stay at home instead of being at Debconf :cheers:

P.S. travel data can be found via penta.

Steve Kemp: To read makes our speaking English good.

I've setup several repositories for apt-get in the past, usually using reprepro as the backend. Each time I've come up with a different scheme to maintain them. Time to make things consistent with a helper tool:
skx@gold:~/hg/rapt$ ls input/
spambayes-threaded_0.1-1_all.deb        spambayes-threaded_0.1-1.dsc
spambayes-threaded_0.1-1_amd64.build    spambayes-threaded_0.1-1.dsc.asc
spambayes-threaded_0.1-1_amd64.changes  spambayes-threaded_0.1-1.tar.gz
So we have an input directory containing just the package(s) we want to be in the repository. We have an (empty) output directory:
skx@gold:~/hg/rapt$ ls output/
skx@gold:~/hg/rapt$
Now lets run the magic:
skx@gold:~/hg/rapt$ ./bin/rapt --input=./input/ --output=./output/
Data seems not to be signed trying to use directly...
Data seems not to be signed trying to use directly...
Exporting indices...
What do we have now?
skx@gold:~/hg/rapt$ tree output/
output/
 -- dists
     -- etch
         -- Release
         -- main
             -- binary-amd64
                 -- Packages
                 -- Packages.bz2
                 -- Packages.gz
                 -- Release
             -- source
                 -- Release
                 -- Sources
                 -- Sources.bz2
                 -- Sources.gz
 -- index.html
 -- pool
     -- main
         -- s
             -- spambayes-threaded
                 -- spambayes-threaded_0.1-1.dsc
                 -- spambayes-threaded_0.1-1.tar.gz
                 -- spambayes-threaded_0.1-1_all.deb
neat. Every time you run the rapt tool the output pool and dists directories are removed and then rebuilt to contain only the packages located in the incoming/ directory. (More correctly only *.changes are processed. Not *.deb.) This mode of operation might strike some people as odd - but I guess it depends on whether you view "incoming" to mean "packages to be added to the exiting pool", or "packages to take as the incoming input to the pool generation process". Anyway if it is useful to others feel free to clone it from the mercurial repository. There is no homepage yet, but it should be readable code and there is a minimum of supplied documentation in the script itself .. ObQuote: Buffy. Again.

Next.

Previous.