Search Results: "cas"

3 September 2009

Martin Meredith: Stepping down from the Ubuntu IRC Team

After long deliberation (a good few months!), I today came to the decision that I no longer felt that I could be part of the Ubuntu IRC Team. I have felt for a long time that the Ubuntu IRC team has become an elitist crowd, with a very cliquey inner circle, and those who are not in the inner circle being treated on multiple levels like second class citizens. There are a lot of things that have pushed me to make this decision, and I ve not made it lightly. I ve voiced my concerns to the IRC Council previously, (via individual emails), and had no response. I don t see the situation getting any better. In fact, more and more, I see it getting worse. I know that I m not the only person who s thinking this way, though I may be one of the only ones that feels that I need to lay down my cinnamon roll. I ve discussed these issues on multiple occassions with various members of the community (both in and out of the team), and with people linked to the Ubuntu IRC community in one way or another (Debian Developers, Freenode Staff, etc etc). There are also other people who ve come out of the woodwork after I posted my resignation. Within minutes of doing so, one member forwarded my mail onto the community council, and another replied with his thoughts and feelings regarding the matter. I m glad to see that there are other people out there who ve seen what I ve seen, and like me, also dislike it. I will however, retain my @ in #ubuntu-uk. This is a channel I participate regularly in, and the ops there are chosen by the LoCo Team, rather than the IRC council.

Andrew McMillan: Storing Secrets

Something that has been annoying me recently with my bank has been that their website tells me that they will never ask for my password over the phone. And then their call centre asks me for my password. Over the phone. Of course the call centre doesn't mean my website password - they mean the special 'ultra-secure 5ekr1t code phrase', but they don't have a good, universally understood word to use for that. Hopefully they'll work one out, but they appear to have got the message anyway. This got me to thinking about how these phrases are used, and how insecure they are in reality. After all when I store a website password I go to significant lengths to ensure that the same password is not represented by the same string of characters in my database. How vulnerable are our secrets in the databases of organisations we do business with?
<!--break--> Simple Password Storage Surprisingly often people do store passwords in databases in plain text, so that should their website get hacked someone would quite possibly be able to download the whole password database. Please feel free to name and shame these organisations in the comments below. My own pet hate in this regard is the 'Mailman' mailing list software: by default on 'mailman day' - the first day of each month - it sends me my password. In plain text. Of course many developers recognise this flaw, and work around it by using a one-way hash to obscure the password. Usually they choose md5 for their hashing algorithm though, and they often fail to use a 'salt' to randomise the plaintext prior to hashing. This means that even though a password might seem obscure like 'Supercalifragilisticexpialidocious!', and no doubt it will hash to something that seems obscure like 'a7290d426b6a1764af6fd7fba5db214e', but you can often find it straighforwardly by looking it up through one of the friendly reverse hash lookup websites. There's even a Digest::MD5::Reverse perl module on CPAN to interface to a bunch of these in a more automated way! Oh dear. One way to go beyond this is using a 1-way hashing algorithm, with a random salt included into the plaintext before the hashing, so that if (god forbid) two users had 'password' for their password I might see two rows in my database like:
davical=# select username, password from usr;
  username                       password                          
-------------+------------------------------------------------
 user1          SSHA qCctCH5dirYCf29uxJiE68LvmLRDdnBkbldiWlE=
 user2          SSHA y8yOzjoh9fSkVwLaXGoVtWdiIYxmU2FCb2dOZXc=
(2 rows)
When the user wants to log in I apply the same transformation to their incoming password (appending the same salt) and compare against my stored hash. If they match then it must be the same password they used previously. Storing passwords in this way secures them from casual, or even reasonably determined access, although naturally they can still be logged at the beginning and end of the communication - or even in the middle, if we didn't encrypt that bit! The PHP function I use to salt and hash the password is as follows:
/**
* Make a salted SHA1 string, given a string and (possibly) a salt.  PHP5 only (although it
* could be made to work on PHP4 (@see http://www.openldap.org/faq/data/cache/347.html). The
* algorithm used here is compatible with OpenLDAP so passwords generated through this
* function should be able to be migrated to OpenLDAP.
*
* If no salt is supplied we will generate a random one.
*
* @param string $instr The string to be salted and SHA1'd
* @param string $salt Some salt to sprinkle into the string to be SHA1'd so we don't
*                     get the same PW always hashing to the same value.
* @return string  SSHA  followed by a base64 encoded SHA1 of the salted string.
*/
function session_salted_sha1( $instr, $salt = "" )  
  if ( $salt == "" )  
    $salt = substr( base64_encode(sha1(rand(100000,9999999),true))), 2, 9);
   
  return ( sprintf(" SSHA %s", base64_encode(sha1($instr.$salt, true) . $salt)));
 
What about Secret Code Phrases? The problem with these secret code phrases, apart from all of the forgetability and guessability problems that have repeatedly been identified elsewhere, is that they are much less likely to be stored in a one-way hash. Are you going to ask your call-centre staff to type in the customer's secret code phrase? Didn't think so. And if you did it's going to add pronouncability issues to the whole mix. So this means that those organisations who have our secret code phrases in their database will, in all likelihood, have them stored directly as plain text, displaying them to the random call-centre staffer along with all of our other account details, and especially making them vulnerable to accidental disclosure. Disclosure of a sort that doesn't necessarily involve knowing they have been disclosed. Proliferation of Use These things provide the appearance of security - 'Security Theatre' as Bruce Schneier terms it - and because of that they're taken up in a kind of a cargo cult of security: "if the banks do it that way it must be a really good form of security". This makes the problem much worse, because now I have to remember a secret code phrases not only for banks, but for ISPs, phone companies, online auction websites, and so on. How many mother's maiden names, favourite teachers and friend's phone numbers do I have? I'm sure I'm at well up whatever curve it is that measures the number of passwords a person has, because five years ago I had so many I started to store them all in an encrypted database - protected by a yet another password, of course. Now in order to get my story straight I have to store my 'secret code phrases' in there too. If I didn't store my secret code phrases in that database, I'd obviously be re-using them everywhere, from a very small set - perhaps the same one that everyone around me overhears, every time I have to ring my bank to authorise another payment from my account. Because the proliferation of use is not just the breadth of wannabe thespians hoping to climb on the stage of this latest play, but the way they want to use it all the time, too. In fact the only conversation I've had recently with my bank where they didn't want it was when they rang me. Obviously I was the only person who could answer a phone in my house, right? It isn't just security theatre: I think we can see that this analogy belongs much deeper into the sub-genre of 'Security Farce'. Is there a solution? I don't have any easy answers - other than the ones to my security questions, of course - but some improvements are possible. Other banks have quizzed me about stuff like recent expenditure or credit card limits from time to time, but I've usually passed those tests by reading my last bank statement - or failed them by not having it to hand! I don't really think that the answers can lie in that direction because the information is only quite loosely tied to my identity. For some parts of the call-centre handling of secret code phrases there are changes that could make them more secure, but in the fairly short term these organisations need to find a different way to perform these out of band identity checks. For the actual storage of the code phrases it would be a marginal improvement if the database did not contain the actual phrase. Perhaps it could be encrypted with some application-known key, so that it can be unencrypted when it needs to be displayed, but never stored in the clear. Of course there's still the problem with that key... Verification of the secret code phrase could be done by someone not involved in the transaction, so that the call could be temporarily passed into a 'verification stream' where a different person performed the verification step without the context of the account details or enquiry. Though this sort of complexity seems unlikely with call centres seemingly being outsourced to the cheapest supplier. One thing does seem likely to become increasingly true: there is less and less private data in our lives, and every time we share one of these little nuggets with our bank, or our electricity company, or our on-line associates-we-call-friends, is one more chance that it escapes into the hands of the foaming-at-the-mouth-terrorist-cracker-communist-nazi-right-wing-religious-fruitcake hordes. The highest bar for personal verification which any of my banks currently sets for me is a random choice from a set of personally entered questions, with a set of personally entered answers, for which I have to enter two randomly selected characters using my mouse. That's not bad for safe verification, and I'd have to be really impressed with their security if that was stored in the database by a passphrase-protected encryption key. With that bank I don't know what they do over the phone - I assume they've concluded they can trust my logged on persona enough that I can do what I want online, consequently I haven't had to call them and share those secrets with everyone in earshot. Maybe paranoid freaks like me will go back to a chequebook and close down on-line access to their bank accounts entirely when they find themselves having to supply a skin scraping in order to authorise their next $500 payment. "Please insert your finger in the AccuYou(tm) BloodSucker(tm) to proceed with this payment" - well, I guess it might cut down my spending! In any case, biometrics need to be understood before they can be used effectively and appropriately - and remotely over the phone is probably not one of the ways that they can be trusted to work.

2 September 2009

Gunnar Wolf: Drupal 6 Tour Centroamerica Now in Mexico!

I met my friend Josef Daberning, who did his Austrian Social Service working with Drupal at the Casa de los Tres Mundos NGO, in Granada, Nicaragua, at the Central American Free Software Encounter, last May. He told me that, when going back to Austria, he would spend some days in Mexico, and wanted to give a workshop on Drupal. The course has just started, and will take place today and tomorrow You can follow the live stream at http://www.iiec.unam.mx:18000/drupal.ogg The videos will be uploaded soon as well, I will post them on this same node. This node will be used for whatever is needed to make public for people following the talk. As of right now, you can download his presentation http://gwolf.org/files/gira-drupal.odp and http://gwolf.org/files/gira-drupal.pdf [update](s):
AttachmentSize
Basic introduction to Drupal presentation (ODP format)306.07 KB
Basic introduction to Drupal presentation (PDF format)214.62 KB
Drupal themes presentation1.09 MB

MJ Ray: Koha meetings and case studies

It s been a fairly good month working with Koha for me. Our co-op installed Koha 3.0 for a few more libraries and had quite a few enquiries. This means our test servers still need upgrading to 3.0.3, which is disappointing, but current customers come first. The flip side of that is that I m probably going to take some heat during tonight s koha General IRC Meeting and we re facing a bit of a rush to get the direct-RFID control feature and the category of patrons editor tidied and submitted before the 3.2 feature-freeze on 6 September. The features are currently sat up on our infamous co-op 3.0 fork branch, but at least I m currently working with that during a server migration at one library. Also announced this week, the eIFL-FOSS ILS project case studies include several Koha libraries.

Sami Haahtinen: SELinux and me...

Once in a while I get this urge to use SELinux on some of the servers I manage, but almost always run in to something that puts me back enough to never finish the project. This time I managed to figure out the last few glitches. In the end, SELinux still has a really steep learning curve, so it's not for the impatient ones. Even though enabling SELinux in Debian has become a lot easier since the first time I tried to get things running, it's still just the tip of the iceberg. In Debian it is just a matter of installing the right packages and running a few commands, but that's just where the troubles start. Most of the howtos focus on single user or shared installations where all users are created locally. Also most howtos fail to mention that you need to relabel files in certain cases. One of the most annoying problem I ran in to was changing all non-system users away from the unconfined_u class. This is of course done like this (found here):
semanage -m -s user_u __default__

The problem here is that it changes the existing user as well and you start to get errors like these:
denied    read   for  pid=32258 comm="bash" name=".profile" dev=dm-5 ino=185474 scontext=user_u:user_r:user_t:s0 tcontext=unconfined_u:object_r:unconfined_home_t:s0 tclass=file

The problem here is that the home directory for the user is still labeled for the wrong class. The fix is to relabel the home. Sadly this is something that you just need to know, it's not explained anywhere. At least I haven't found an explanation anywhere. Another good thing to do before you continue is to change the already existing user to the staff class. Staff class has a bit more relaxed security controls and you get to change the security roles (details here).
semanage login -m -s staff_u myuser
fixfiles relabel /home/myuser

This gets you a semi working setup, next problem usually is that some daemons are denied access to parts of your system. For me, this was postfix trying to access my home directory that was mounted over NFS. For such cases, you should persuade the maker of the module package to update the global policy if it's a common use case. Or you need to create a policy package that allows access to the given files. The process itself is documented in the audit2access manual page. In general you should study the audit2why and audit2allow packages. The former tells you if there is an easier way to fix something (like enable a boolean) and latter will create the required policy lines. Only problem is to compile the policy and load it. The only problem here was to find the right tool and the right lines from the manual. In general the SELinux learning curve is way too steep. It's a system that works pretty well once you learn all the tricks and start to completely understand the toolset. The community should continue working on lowering the bar for new users. There has been some major improvements since I first tried SELinux, so it's the right direction.

1 September 2009

Nicolas Valc rcel: Canoniversary!

It has been a whole year since i joined canonical on 1st September 2008, it s unbelievable a year went that fast, i m still getting used to the company and suddenly, a whole year just went away, but as some people say, time flights when you are having so much fun. I can describe this whole year experience in just one word: AMAZING! I m having so much fun, even if i m getting out of time for other things i wanted to do, everything has it s price and working for canonical isn t an easy task, a lot is expected from you all the time, but the company policy is to be friends more than co-workers, even if we don t see each other to much. In this year i ve had the pleasure of visiting some friends all over the world while traveling for work or escaping a little before or after a work trip, i ve also had the chance to meet some people i wouldn t otherwise, like a guy i met in Germany that develops this horrible scripts that learn from my shopping customs and offer me stuff i want to buy (i said that guy that i hate him between jokes :P , c mon you hate him as well) and learned things i wouldn t in a normal local based company, i learned almost the hard way that when you say Asian people you are talking about Indians as well (isn t it Polly?) and also notice how different cultures can be, some things that are completely natural and normal for me can be really disturbing and offensive for others and vice versa. I ve also have the joy of seeing some friends join the company and grow our friendship, as well as i ve seen some good friends leave the company, but the sadness was compensated with the happiness that they are going for something better and that the friendship will continue. It s also always fun how when we meet in person is like we have worked in the same office for ever, people is always keen to have some beers, chat and test Pisco (no, i will never get bored of seeing your faces when you try it!). In summary, canonical is like a big family, you know, how people say that there is competition even inside a same company, well, this is not the case, people is always happy to help you and give you a hand when you need it, and even i thought it wasn t possible to have a weekly meeting with your boss to talk about your personal lives before you start talking about work, it s always nice to know that they care about you, not only about numbers and results! That said i wanted to thank everyone in canonical, and the ones that already left for making this company such an amazing place to work! And special thanks for the two guys that helped me had this incredible opportunity (you know who you are!)

Andrew Cater: ACPI for Acer Aspire [SOLVED] - and RHCT

As a follow up to the last post - and with many thanks to PC World tech. support staff :)

This happens occasionally: the fix recommended at the barbeque was to remove power cable and battery for a period of time and try again. It transpires that you need to remove the battery and power cable AND also press the on/off button for 30-60 seconds which resets the laptop motherboard ACPI status. Who'd have known ? :)

Also, I'm now a Red Hat Certified Technician - if anybody should ever need one of those in a hurry. My day job is keen on Red Hat and the firm paid for the course. My thanks go also to them for their patience with me over some years - and to the Red Hat instructor who knows me fairly well. I had to promise not to mention Debian for the week so as not to disconcert the other students :)

31 August 2009

Rapha&#235;l Hertzog: Interdependence in Debian, how to suffer less from it

Listening to Martin Krafft s talk at Debconf (related to his PhD) shed some new light on the idea that I expressed last year I wanted that each maintainer regularly answers a questionnaire so that he has to ask himself whether he does a good enough job with his packages. When thinking of this idea, I only saw the QA side of ensuring good maintenance on all packages, however I believe that the root problem lies further and this project would not be enough: we are interdependent but we are not equipped to deal with this reality. Martin s only merit has been to mention that we are interdependent, but it s worth analyzing a bit. Our organization is centered around individuals acting as package maintainers, and in theory each package maintainer can work on his corner and all goes well. We know that this model doesn t hold any more: transitions to testing require coordination of uploads and timely fixes of RC bugs, keeping up with the work frequently requires several volunteers that have to coordinate, etc. More and more of the work requires a level of availability that a single individual can t offer, yet in our day-to-day work we mainly interact with individuals. Wouldn t it be better if we could immediately know what we can expect from any Debian developer: All this information should be shared by all Debian maintainers (some of it is already available but either not publicly or not in any machine-parseable way) and we should actively use it. Here are some examples of use: for each RC bug report, you could look up if at least one maintainer is available and you could ping him explicitly if needed. When you plan an NMU, you could look up if the maintainer is likely to respond in the next day or not, and possibly adjust the number of days spent in the DELAYED queue. When organizing a large-scale transition, you could extract a list of packages whose maintainers are not available and arrange immediate NMUs. Furthermore there are many cases where the project s usual expectation exceed what the maintainer is ready to do. Documenting what part of the job is done (or not) by the maintainer makes it clear for volunteers whether their help is needed and whether they could/would be a better maintainer for a given package. Designing solutions to all these problems is going to be the scope of the DEP2 that I reserved some time ago. It s likely to be some sort of dedicated web interface. I would welcome supplementary drivers for this DEP, so if you re interested, get in touch with me. Partagez cet article / Share This

Neil Williams: Help needed for final libsoup2.4 fixes in drivel 3.0

Drivel 3.0.0 (current SVN trunk) is now ready for GTK+3.0. libegg has gone, there is one remaining issue with the GtkRecentChooser replacement. libgnome and libgnomeui are going away too and these have been dropped from drivel (therefore bonobo has gone too). gtksourceview has been migrated from 1.0 to 2.0. GtkSpell now correctly finds all supported dictionaries and a whole load of console messages about invalid casts etc. have been fixed. There is no libglade anymore, it's GtkBuilder throughout. Essentially, everything needed to bring drivel up to date with GTK+3 is in place.
Problems.
  1. The libsoup2.2 -> libsoup2.4 transition is a mess. Some of it works but the libsoup2.2 code that has been added to drivel needs to be dropped and a genuine 2.4 interface created. I'm not that familiar with this side of drivel - I'm hoping others have more expertise debugging the actual network / XMLRPC / Soup connections between drivel and sites like livejournal. Any libsoup migration experts out there?
    • MT support
      Current SVN trunk can use MovableType (MT, Wordpress, Serendipity) although a few niggles remain (categories work in some MT and not others). Serendipity cannot post. Invalid request payload: xmlrpc element PARAM cannot be child of PARAM, so that's libsoup too.

    • Blogger 1.0
      Support appears working, albeit with a few changes I've just made.

    • Advogato support
      Appears to work fine. http://www.advogato.org/person/codehelp/

    • Atom/Blogger 2.0 support
      Really not sure on this one:
      (drivel:32119): Drivel-WARNING **: parse_xml_journal_list: XML is not a
      <feed>
      - so libsoup again but it's quite possible that this error hides other errors too.

    • LiveJournal
      Here are the real problems. LJ didn't work with (the unreleased) 2.1.1 either and it fails in the same way with 3.0.0. "Could not understand server
      response."
      and lots of complaints about syntax errors on the console.

  2. Removing an account causes a crash - somehow the combo_box is not registering the item as active until reselected. I've got a fix that prevents the crash but that's going to be annoying. Watch for:
    Drivel-Message: login_name_active = -1

    (drivel:31084): Drivel-CRITICAL **: remove_username_cb: assertion
    login_name_active > 0' failed
    Any GTK+3.0 gurus who can help with that one - much appreciated.

  3. GtkRecentChooser is not updating itself when a draft is saved.



debcheckout still has the old GNOME details until 3.0 is uploaded, so the SVN details at SF are:
svn co https://drivel.svn.sourceforge.net/svnroot/drivel drivel
SF homepage:
http://drivel.sourceforge.net/
Dev mailing list (for bugs and patches)
http://mail.gnome.org/mailman/listinfo/drivel-list
Or just send me the patches direct (email details in the source files).
posted with 2.0.4

If you want to test all the various clients, you'll need wordpress, movabletype-opensource and serendipity installed as Debian packages (and configured) and accounts at advogato, livejournal and blogger.

So, dear lazyweb, anyone got some ideas?

Gunnar Wolf: Serverless and mailless

Oops. Yesterday (Sunday, 31/08/09) I far from any computer-like object for most of the day. When I got back home, of course, I promptly opened my laptop to check my mail who knows what destiny might have for me in a 24 hour period? Maybe I won yet another fortune I have to cash in Nigeria? Maybe there is (GASP!) a new RC bug on one of my packages? But no, my mail server didn't feel like answering to my ssh queries. The connection was established, but shut down before even sending the protocolary SSH-2.0-OpenSSH_5.1p1 string. Fearing an overload (after all, the little bugger is just a Mac Mini running in another room in my house), I tried to check (via Web) its Munin status Apache didn't want to listen either. It answered, but got only access denied. Things started worrying me But (silly me) not enough The machine runs headless1, so I just danced the boring raising elephants song2. Allowed for a couple of minutes for everything to settle, and tried to connect. Horror, now even pings didn't work! So I ran to fetch my old, bulky and trusty monitor. Went back to the machine, plugged it in, switched it off and back on. Everything worked fine this time At least appearingly. I opened up mutt and started happily reading mails, while trying to understand on another console what happened at 07:06 that didn't get logged anywhere and had the machine dead for basically all the day. And then, BRRRT-BRRRT-BRRRT, I started hearing the HDD seeking. I was able to send a couple of mails, but decided to let the machine rest and... Will reduce its disk usage to an absolute minimum. Fortunately, I have already the machine meant to replace it A much nicer, beefier iMac G5, waiting to be vacated from its data, task which has suddenly become prioritary. So, in short: If you need to get in touch with me in the next day or two, don't count on my usual @gwolf.org mail, as it is down. I hope to be able to get the data out of the poor little bugger painlessly after it rests a bit. And I hope not to drown in a sea of mails after I get the replacement back online :-/
  1. 1. for those not used to computerspeak: without a connected monitor
  2. 2. For those following at home who don't understand how Raising Elephants Is So Utterly Boring, this is a (silly, stupid but useful) mnemotecnic for as-properly-as-possible restarting hung Linux systems: Hold AltGr (right-Alt) + SysRq (in reduced/notebook keyboards, Fn+SysRq), and type R E I S U B (leaving a couple of seconds between key, ideally waiting for all disk activity to settle between each). That means:
    unRaw
    Take control of keyboard back from X,
    tErminate
    Send SIGTERM to all processes, allowing them to terminate gracefully,
    kIll
    send SIGKILL to all processes, forcing them to terminate immediately,
    Sync
    Flush data to disk),
    Unmount
    Remount all filesystems read-only,
    reBoot.
    Well... Reboot the system

Romain Beauxis: Some quick notes on netboot install

Since I recently got a new laptop, I wanted to install Debian on it, of course :) However, I really didn't feel like buying a new CDR and burning yet another single-use boot CD and did not have a USB key available. Hence, I looked at installing through netboot using the previous one as the boot server and the available documentation. Well it turned out to be much more easy than what I was expecting initially ! The quick notes around this are:
- First you need to setup iptables for ip forwarding and masquerading, in order to be able to connect the new laptop to the internet:
  • ifconfig eth0 192.168.1.1
  • echo 1 > /proc/sys/net/ipv4/ip_forward
  • iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

- Then you need to enable dhcp and bootp. This means simply:
  • apt-get install dhcp3-server
  • Copy configuration example in Section 4.5.2.1 of the documentation
  • Edit with your own values, in particular check the nameserver used by the laptop sharing the connection. Also the tftp server will be your laptop, so set its address to 192.168.1.1 (in our case). Eventually, you need the MAC address of the new laptop (check ifconfig on it for instance)

- Eventually, you have to enable the tftp server, which only means:
  • apt-get install tftpd-hpa
  • The server serves files located in /srv/tftp (check ps -Af). You have to download the netboot tarball and untar its content in this directory.
The only strange thing here is that for some reason, the ethernet card would loose its address when the new laptop was using the DHCP to obtain an address. I didn't check it, but setting it at a regular intervals solved the problem: while true; do sleep 0.1; ifconfig eth0 192.168.1.1; echo "done"; done. Yeah, that's hacky, but I wanted a quick solution :) After all of that, you boot the new laptop, select the network boot and... voila ! In conclusion, since it is not that difficult to setup, it would probably be nice to have some sort of standard script to enable PXE boot on a computer. Then we could claim that the new Debian release is committed to sustainable development and allows to install without wasting a CD :-D

30 August 2009

Aigars Mahinovs: Debconf9 photos and banter

A bit more than a week after Debconf9 ended here is a post summarising what I remember about it for myself to look back to later, for others that were there for a good memory, for those that were not there for insight and for organisers of future Debconfs to improve. Let s start with something most people know I took photos, a lot of photos. The main photo naturally was the Debconf9 group photo (also http://tr.im/dc9group and an annotated version). Please look for people that are missing their IRC nicknames. I have uploaded the best of my photos on Flickr and all good photos in full resolution on the Gallery site. All of these photos are licensed CC-BY 2.0 or 3.0 or GPL v2 or v3 (your choice). Now about the organisation. The place reasonably easy to get to but not particularly fast or cheap from airport to the venue it took 1 hour in metro, 3 hours in a bus or train and a half an hour walk (or 5 minutes in a taxi) for the sum of 22 and 4.5 hours or 27 and 4 hours one way. While we all accept the time waisted in airports, getting from the airport to the venue should be easier and cheaper than this. While it was crazy hot outside (38-40 C) there was great air conditioning everywhere, so we did not feel the heat most of the time (except if you walked from bus/train to the venue or did the climb during the day trip). Having air conditioning in the room was a godsend I do not think I would be able to sleep otherwise. Also free water from a drinking fountain where you could also refill your water bottle was a great touch. The rooms were great two beds, air conditioning, bathroom, shower, desks and closets where one could unpack their things. And we did not have to move to other rooms in the middle, it allowed us to unpack and feel comfortable instead of living out of the suitcase the whole time. I m not sure if it will be possible for future Debconfs to get rooms with only two beds, but I think that even with 4 people per room would have been fine, provided that there are enough bathrooms/showers, enough space to unpack everyone s clothes, enough sockets to charge some stuff overnight and enough WiFi coverage in rooms to get some late emails without going to the hacklab. Which brings me to Internet and hacklabs. I must say that Internet was great this year it was fast enough not be a major problem, it was almost everywhere (a bit more signal in the sleeping rooms would be better), it was up and running from day one of the Debcamp and it was stable through (I think there was one or two interruptions). It would be nice to see people write a blog entry about how exactly it was done. As far as I know it was very helpful to have several kilometres of CAT5 cable, several large switches and a huge amount of identical WiFi routers all flashed with OpenWRT (and then some more smaller routers also flashed with OpenWRT to plug some holes). I heard there were two Internet connections joined together and a complex firewall/transparent proxy/traffic shaper and also a local Debian mirror that was DNS-redirecting people to it from all the regular Debian mirrors people use at home. The hacklabs were also nice when the Debcamp started the second hacklab was lacking most tables and chairs, but when those arrived there was plenty of space. Other common issues such as access to a free switch port for people without wireless and access to power sockets were also handled well and fast. It was very nice that organisers always had a few spare power strips or a spare patch cable at hand. This year there was a siesta break in the proceedings. While it was in line with local traditions (take a several hour break during the hottest hours), it did not do much for the secondary stated reason to get out and see the surrounding, because half of the attraction of getting out (shops and bars) were all closed during the same siesta time. IMHO we should have used the great aircon of the venue and continued the talks from mid day to 18:00 (when the siesta ends) and then make a break until dinner so that we could go out and enjoy shops and bars and historic places during a cooler time of day. If there is a break in proceedings, then it should be at the time when people are most likely to enjoy the surroundings. I doun t know the schedules in NY, but if the museums close at 18:00, then there should be a break during the day to allow people to get to those museums. Food was there and it was there every day, but it was not particularly great. Aside from typical problems with vegetarians and vegans (even salads had pieces of meat in them), I did not find the food to be compelling most of the time. I do not like fish and there was a lot of fish. Mostly it was good fish and sometimes it was so well done that even I enjoyed eating it, but other times it was full of fish bones and/or tasteless. Too often the dinner consisted of a salad, a deep-fried piece of meat and spoonful of dry fries. It would not kill them to put more fries on the plate and have some kind of sauce for them. One thing that was great in food were the fruit deserts apples, oranges, peaches and nectarines were fresh and juicy and then there were melons! I typically hate melons because the ones I can get in shops in Latvia are dry and bitter, but the melons here were bursting with sweet juice heavenly stuff. In the future it would be nice if the food selection and amounts per portion could be checked and agreed upon with the caterer in advance. Also the timing should be adjusted it is too early to end breakfast at 10:00, especially with dinner starting at 21:30 there is way too little time to socialize with other people after dinner and then to get a decent sleep. Talks can start at 10:00, but breakfast should go up to 11! I did like the water bottles and wine jugs on the tables and the beer being served as part of the food that was a nice touch that many people enjoyed. The daytrip was a nice distraction in the middle of the conference a trip to a swimming pool made from a river bed blocked by a damn with an optional hike up a mountain to a spectacular cascade of natural water pools and slides that a river has carved in the solid rock or the mountain valley. Most people did the hike it was steep and hot and rocky, but the payout (the water fun) was there at the end, and it was great! Wonderful warm water and unexpectedly deep pools that both locals and us jumped into from rocks of differing heights. I am more of a climber than a jumper so instead of jumping off a cliff, I spidermanned up the cliff up from the water. I did not have any safety, but if I did fall I would have fallen into the water, so felt almost safe :) After the hike, the jumps and a hike back downhill we went into the buses and joined up with the people relaxing in the pool or in the bar right next to it. And after an hour or two later the day trip was over. While this was fun I would have preferred if after the hike we would have gone to some castle or other tourist attraction for more of a trip experience than sitting by a pool chatting. Formal dinner was another traditional thing that we did this year. We walked over to a restaurant overlooking the city, sat down at many different tables occupying most of the place and then the waiters brought us plates with bits of food. Each plate was basically a set of 4 snacks for 4 people a plate of cheese, a plate of ham cuts, a plate of steamed vegetables and a plate of grilled meat. After that was coffee and desert. In my opinion the grilled meat was overcooked, the vegetables were passable, 1 of 5 cheeses was great (the local soft speciality) while other were ok and the ham cuts were ok. Desert was average. In all I was neither impressed by the food nor filled by it. There was also entertainment a singer with two dancers. They ware way too loud, so loud in fact that police came and shut the performance down, I did get a few interesting photos but otherwise I did not like them. They came to our venue the next night to continue the performance, luckily it was in an isolated patio and did not disturb people sleeping. Wine and cheese party on the other hand was simply great this year there was a huge selection of wine and cheese as we were in the right part of the world for that. There were 7 tables full of cheese, wine and bread and also some extra stuff such as a barrel of peanuts and some great tea from Taiwan. People were walking around for hours eating cheese, cleaning the taste off with bread and wine, chatting and doing it all over again at another table. I left the patio at around 2am and there were still several dozen people around chatting, eating, drinking wine and tea. I m not sure how to get an event of similar size in NY as it is not allowed for travellers to bring cheese into US, only commercial import with an appropriate licence is allowed. I also have my praise for the video team, but I ll hold on to that and the feedback about the talks until I see the recordings of talks that I missed, so I can also recommend the must see recordings. All in all it was a great event meeting all the great Debian people again, coding some stuff, having fun and talking about the future of Debian in a more relaxed atmosphere than an IRC chat room. Debconf 9 was great, see you all next year at Debconf 10 in New York!

7 June 2009

Martin-&#201;ric Racine: When can we have a balanced and meaningful debate on immigration?

This question keeps on popping up in many recent newspaper articles, on discussion boards and in seminars debating immigration issues in Finland. At the core of the question is a general impression that, between the enthusiastic supporters of multiculturalism and the pessimistic nationalist rednecks, very little constructive discussion is possible in Finland. At one end, humanitarian help organizations, as well as politicians from the Green Party and the Swedish Folk Party, keep on taking excessively generous initiatives towards refugees and asylum seekers, all while labeling their detractors as racists. At the other end, nationalist candidates in the National Coalition Party and True Finns Party keep on painting every immigrant as a refugee who is abusing social security and label their detractors as turning Finland into the easiest country to abuse social security, at the Finnish taxpayer's expense. In between, candidates from the Christian Democrats and Center Party spread equally among these two camps. Meanwhile, while the Left is currently avoiding discussions on this topic, Social Democrats have previously shown that they tend to side with the nationalists in labeling all immigrants as social security abusing refugees. One interesting point is that, no matter at which end of the political spectrum one looks, the whole Finnish immigration debate keeps on focusing exclusively on refugees and asylum seekers, despite the fact that migrant workers and foreign spouses of Finnish nationals make up for a good 70% of the foreign population residing on Finnish soil. This recalcitrance to discuss immigration from any other perspective than refugees is rather painfully noticeable. Some recent examples: What's remarkable about all these examples is how public opinion is so persistently hardwired into thinking that all foreigners living in Finland came here as refugees from 3rd-world countries whose culture is radically different from Finland's and that they all became perpetually unemployed, forever living off social security, to the point that even politicians who ought to know better go along with it. When will we be able to have a balanced and meaningful debate on immigration, you ask? The day both multicultural hippies and nationalist rednecks will have been kicked off the podium. Of course, it would also help if the refugees themselves stopped monopolizing the podium, whenever the opinion of immigrants is solicited. Then again, perhaps these 3 groups benefit so much from the current status quo that they'd rather not see the day when others can participate in this debate on equal footing with them, so that a balanced and meaningful debate can finally take place?

Gunnar Wolf: Foldable Universo bike

Today I went to the La Merced area to finally buy a foldable bike. There were basically four options: Benotto's 20" Utopia, Alubike 16" Foldingbike, Alubike 24" and a custom-made bike at a smaller store, Bici Universo. In Mexico it is also possible to buy a Brompton, although they are not available in larger stores and their pricing is prohibitive. Sergio Mendoza advised me to look for the Dahon bikes at Benotto, but they have discontinued them in favor of their own making. I ended up buying the Bici Universo one. I must say this: I sincerely hope not to regret this option I got this bike because neither of the other ones satisfied me, and this one was at about two thirds the price (MX$1800, plus some extras I requested, MX$2100 That means, US$187 or 113). First of all, after thinking about it for a while, I decided I didn't want a larger, more normal wheel The Alubike 24 (which I'd have to build shopping piece by piece, as they had only the frame for sale Would be a good ocassion to learn more about the whole process!) is basically a great regular bike you can put in a regular car trunk, but is still too large for taking it into public transport or lugging along when travelling, by bus or by plane. Besides, the manubrium1 is not foldable. So it is basically as portable as this venerable Compaq. The Benotto's manubrium does fold, but the bike does not hold itself together when folded, it is not stable. You have to explicitly keep it folded. Not exactly comfortable. I had tested the smaller Alubike at another bike store closer to my home. It feels a bit freer than the Universo one (I'll get to it soon), but still feels a bit kludgy... And at a price about MX$1000 higher, I decided against it. Now, why am I wary with the Universo? Because after all... It is just a bike for kids age 4-7 and 7-12 (?) cut in half, and with a hinge soldered on: Bici Universo - 4 to 12 year old It is also a heavy bike (I have not weighed it yet, but comparative guesstimates puts it over the Alubikes), so it might be problematic when travelling... I'll see when in Nicaragua in a couple of weeks ;-) I have yet a couple of adjustments to make to it, but I am very looking forward to travelling with my bike on. I hope it turns out to be comfortable. And in any case, I can of course! donate it to my nephews... who are in the right age group. Some photos:
  1. 1. the word seems strange, but that's Google's suggestion The bar you take with your hands to steer the bike

Enrico Zini: Geocoding Unix timestamps

Geocoding Unix timestamps Geocoding EXIF tags in JPEG images is fun, but there is more that can benefit from interpolating timestamps over a GPX track. Enter gpxinterpolate:
$ ./gpxinterpolate --help
Usage: gpxinterpolate [options] gpxfile [gpxfile...]
Read one or more GPX files and a list of timestamps on standard input. Output
a GPX file with waypoints at the location of the GPX track at the given
timestamps.
Options:
  --version      show program's version number and exit
  -h, --help     show this help message and exit
  -v, --verbose  verbose mode
For example, you can create waypoints interpolating file modification times:
find . -printf "%Ts %p\n"   ./gpxinterpolate ~/tracks/*.gpx > myfiles.gpx
In case you wonder where you were when you modified or accessed a file, now you can find out.

6 June 2009

Wouter Verhelst: NBD, TRIM, and sparse files

Ever since I read about the ATA TRIM command, I've been thinking that something like that would make a lot of sense for things like NBD. Currently, it's possible to serve a sparse file using NBD. I often do this, for example, testing things like the fix for Bug #513568 (nbd-server choking on a >3 TB RAID device) which would otherwise require me to spend significant amounts of money so that I get enough disks to test. Obviously that's not going to happen. If we're using sparse files, that means we claim to export more than we actually do. This is obviously useful for testing, but there are other cases where this kind of behaviour could be useful; for instance, when exporting swapdevices to several diskless clients, it would be a rare case indeed where all those clients need all of their available swapspace; it might be safe to slightly overcommit the disk space on your hard disk, on the assumption that none of your clients is going to use all that space at the same time. Similarly, when a file is removed on a filesystem on an NBD device, the kernel might use the generic TRIM layer described by Ted in the article above to relay that removal to the nbd-server process, which could then make sure the diskspace is deallocated. However, unfortunately, there currently is no way for an nbd-server to tell the kernel to create a new hole in a sparse file. Creating sparse files is done at file creation time; if you later want to add more holes than you did when creating the file, you need to recreate the whole file from scratch in order to do so. Additionally, when we're talking about a large amount of data that needs to be removed, it's usually much faster to say 'remove this block of data' rather than 'overwrite several megabytes with zeroes here' not just in API, also in kernel-side implementation, provided the filesystem supports extents. I think it might be nice if there were a public (userspace) API to tell the kernel that particular bits of a file or a block device are no longer required, and that they may thus be removed. But then, I'm not very experienced with kernel code, and it might be that I'm just plainly missing something here. Anyone?

Russell Coker: Actually You Do Care

A reasonably common feature in Internet debates is that of one party claiming to not care about the issue. Statements such as I haven t got time to debate this or I m not interested are used to try and disclaim any interest in the topic. Such claims are silly and rather amusing. Outside the Internet it does make sense to say I don t care because interactions are between small numbers of people. Telling a tele-marketer that you don t care about their product is part of the process of getting them to stop calling you. But it doesn t make sense in interactions between large numbers of people. If there are 100 people on a mailing list then there will be a variety of opinions about any issue, but one thing you can count on is that the majority of people on the list are not interested in whether any individual cares about an issue. If there was a general desire to discover how many people cared about a topic of discussion then the way to determine this would be via an online poll. In almost every situation individuals saying I don t care in email just isn t a scalable solution. The only exception is when someone in a leadership position is asked for an opinion, in such a case a response is expected and if the leader actually doesn t care then saying so and letting other methods be used to resolve the dispute makes sense. One common case where an I don t care message is seen is at the end of a long and heated discussion. After a discussion has gone on for a while (well beyond the point where it was obvious that no-one was going to change their position) one party might claim to not care or not have the time to debate the issue. But of course if they didn t care at all or had no time then they wouldn t have written any messages on the topic. If they had a limit to their time or care factor then they would probably have stated their opinion once and maybe written a single follow-up post clarifying the first one. Anyone who has written 6+ messages or a total of 1000+ words on a topic obviously cares and obviously has time. In such cases it seems that claiming to not care or not have time is a final desperate attempt at getting the last post on a topic by someone who subscribes to the last post wins school of online debating. Another common case is when someone makes a point that is decisively refuted. The Internet is filled with people who can t handle criticism and who can never leave any critical email without a reply. In such a situation claiming to not care is a way that such a person can protect their fragile ego even if the point is indefensible. One of the variations on this theme is to claim to be an expert who doesn t care enough to educate people on mailing lists (or even provide a couple of URLs that reference what they need to know). As a hint, if you are going to claim to be an expert while making statements that disagree with notable experts in the field in question (professors at prestigious universities, Nobel laureates, or people who have demonstrated great practical success) then you really need to demonstrate your expertise and cite references. While generally it s the scope of the Internet that makes the I don t care argument silly, it also doesn t make sense in interactions via electronic media such as private email where a sender can be ignored. If you don t care about a private email in reply to one of your messages then what you will do is simply delete it. Replying and saying I don t care merely demonstrates that you do care, invites another reply, and shows that you have a fragile ego to protect. My general practice when dealing with such people is to send one reply to every message that they send me, such people typically demonstrate how much they care by sending me more than a dozen messages explaining in detail how much they don t care. Another variation on the theme of private correspondence is people who write blog comments that are obviously inappropriate and will not pass moderation. Someone who polls my blog to see if their comment has been approved and then writes an abusive comment when they discover that they fell well short of my comment quality standards obviously cares about having their comment published. To then claim to not care about whether their comment was approved is obviously a lie. Google is almost entirely filled with things that I don t care about. I demonstrate the fact that I don t care about them by not commenting.

5 June 2009

Cristian Mauricio Porras Duarte: Aptitude History Tracking progress report, Week 2


The first important task when one wants to carry out a historical study of the behavior of a system is to determine what information you want to store and how this is going to be saved, thinking of providing an easy way to access information when needed. In our case, we need to store the information of the packages status and the actions that have been made to them. For now I have confronted the aptitude state and the dpkg state. We use the state of dpkg to see the changes that other applications (Apt, Synaptic, Adept, etc..) can perform on the packets.
To see the changes we rely on the pkgstates file (which contains some information about the last state that was seen by aptitude) and the routine build_selection_list, comparing what is in the apt cache and what is stored in pkgstates. So the first task was to create routines to save in each member of the history the information that can be collected from pkgstates and the cache, which really is not much. This process is accompanied by the function to write in the text log and the binary database. I believe that work it s around 70-75%, missing optimization and definitions of some values.
I have been working this week on the aptitude state , creating a vector of entries which is storing the information collected from the state s changes through the functions cleanup_after_change, apply_solution and build_selection_list from aptitudeDepCache, calling on the last function to the routine that writes the whole vector of changes made so far in the text log and the database, I think this work is located at 50%. Plan for next weeks For the dpkg state, optimize the functions and add to the info of each package the date when it changed. Maybe based on /var/log/dpkg.log For the Aptitude state, finishing collecting the information about changes. For example the dep that trigger a change, groups of packets that share the same reason of change. Look at other relevant information that could be included for the trace of each package. Change the structure of the database to include information that is missing.
Open a separate branch in the repository of aptitude, looking for a more fluid feedback.
Pd. Hello Planet Debian!

Gunnar Wolf: RubyCamp Mexico

RubyCamp UNAM logo Today I attended RubyCamp (schedule available), organized by my friends at Instituto de F sica, at my University. I presented three plugins I made and regularly use. The organizers followed a short, more informal scheme than most conferences I am used to Talk slots range between 5 and 15 minutes, so we attended a whole day of semi-lightning talks. Of course, many people have run late, and although there was quite a bit of free space in the schedule, it has been practically non-stop I was thinking on also giving a talk on encodings (as many people really still don't understand what is UTF-8, what is Latin1, why all that mess People, please learn at least The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)), but the schedule is full by now. Interesting and successful experiment, I'd say. The talks are being taped, and the organizers say they will be soon made available online. There are many cultural details to note here. First of all, yes, the Rails Fanboys _are_ a cult/sect. I think we have ~90% of MacBooks... I still fail to understand why a coder feels at ease on MacOS. I deeply despise it! Also, most of this community have bitten the Twitter plague. This is also a community very much into businessspeak, speaking a word in English for each two words in Spanish (I try to be consistent, not mixing languages at least). Some conferences have been quite business- and enterpeneur-oriented. Although I should not complain too much about this, as it is an important aspect for many people But I still don't feel at ease having talks on how to run a business if we were asked for presentations on technical aspects! Anyway - I was quite happy to be here. This is the first real technical, code-oriented conference I have attended in a long time in Mexico. And we need more like this! We have too many entry-level, evangelization-oriented conferences, but very few like this one. [update]: Group photo!

Stefano Zacchiroli: turbogears 2 packaging - take 3

TurboGears 2 packaging - (another) status update Brief status update on TG2 packaging. As expected, this week has been very busy and I'm writing the update offline on a train, but nevertheless I've good news to share: ... the last item above would theoretically mean that TG2 is already usable, but it is not the case due to the infamous #507909 which breaks both TG2 and TG1 in unstable (the latter was working in Lenny, and I had to resort to a Lenny chroot for a recent course I've taught about web development). In short, turbojson is in unstable, in spite of the lack of several of its dependencies, making impossible any import of it. ..., stay tuned, keep faith, bear with me, almost there, ... etc.

Next.

Previous.