Search Results: "ana"

8 June 2006

Matthew Palmer: [Ruby] Blocks as Resource Management

One of the really neat things about Ruby is the extensive use of blocks (closures, I think the rest of the world calls them) in the standard library to control the allocation and deallocation of resources. Take the following snippet:
 File.open('something.txt') do  fd 
   # Manipulate the file through 'fd'
 end
 # File handle is now closed
There's no way that you can escape from that block without the file being closed (well, in theory, you could lose the file handle if there was an exception thrown in the block, but the File::open method can take care of that internally by catching, closing, then rethrowing). I've loved this feature since I first saw it -- "holy crap!" I thought to myself, "I never have to call close again!". And I was pretty well right -- I think I can count (in unary, not binary!) on one hand (well, I'd use grep wc) the number of times I've used IO#close in my Ruby code. The funny thing is, though, that I don't think I've used this pattern in my own code enough. But I just had an epiphany whilst waiting for a train home -- and I think I'm cured. Take this hideous piece of test code I had laying around in an app I'm working on at the moment:
 def test_something_funny
   faux_path_on
   d = Domain.new('127.0.0.1', 'somethingfunny.com')
   faux_path_off
   
   # assert writ large
 end
Domain::new calls out to a shell command (dig(1) to be precise -- take a guess at what I'm writing <grin>, and yes, it will be released shortly) but for test purposes I can't run dig (because I'm not guaranteed to have all the infrastructure available for a real dig to succeed). So I have a flimsy mock of dig in a directory in my test suite, which is where faux_path_on sets ENV['PATH'] to look at. This is, of course, pretty untidy, because when (not if!) I forget to call faux_path_off, everything goes to complete poop, and my children will have two heads or something. The much cleaner version is like this:
 def test_something_funny
   d = faux_path   Domain.new  
 
   # Assert ahoy!
 end
And my faux_path method (I've even saved a method!) is as simple as simple can be:
 def faux_path
   realpath = ENV['PATH']
   ENV['PATH'] = my_fake_path
   rv = yield
   ENV['PATH'] = realpath
   return rv
 end
I also have a trickier faux_* method, which sets a couple of environment variables which tell my mock nsupdate(8) where to write the data it gets sent from my application -- again, it's a block-taking method that sets the environment, yields, reads in the data from the temporary file, cleans it up, and returns the contents of the aforementioned file. The power of the Ruby is growing within me, I can feel it. And I like it.

7 June 2006

Christoph Berg: Post-DebConf Woes

After getting back from DebConf and the 1-week trip afterwards, it took me a full week to get out of most of the chaos travelling usually leaves behind. I still haven't unpacked all stuff from the suitcase, but at least managed to wash the dirty clothes. Oh, and I've signed all keys from the KSP - including madduck's, he showed me his proper German ID card when I asked what this funny Transnational Republic was. (Oh, and if you were listed at the KSP, didn't show up, but I've signed your key anyway, that's because we met before and you have a new UID, in case you are wondering.) The pictures I took are still scatered over several home dirs on different hosts, I'll try to sort/rotate/rename them over the next days. (Oh, and DebConf was great, the trip afterwards likewise - I'll try to write a separate blog post on that later...) At the moment I'm slowly starting to get into frontdesk work. I have some notes from Neil's and Enrico's AM BoF and the discussion BoF round around my "NM process future" proposal that I still have to write down once I'm finished with answering my own NMs' mails. Both BoFs went pretty well, the major outcome being that we should discuss much more among AMs on -newmaint and IRC, have older AM reports available for reference by other AMs, and have some sort of "AM report template" that lists the points the DAMs want to see in the report. About the propsal, my feeling is that we shouldn't implement any major NM changes (like the DM idea) until we really understand what the problem with the current process is. (It takes too long, but that can be fixed by throwing out the not-ready applicants more aggressively.) Thanks to all the people who provided very valuable feedback during the BoFs and in the private conversations afterwards. So far, I've assigned a few applicants to AMs, added comments to the database on the level of prior contribution of the new applicants, and worked a bit on the web pages. The major visible change is that the NM graphs are now included on nm.d.o. The 'big' thing I'd like to implement next is to let the applicants write some application email where they list what they've done for Debian so far before the AM assignment, so we can match NM-AM better, and also improve our judgement of the level of prior contribution. Also, we will probably require 2 advocates per applicant in the future, to make sure people have worked with more than a single DD before. Of course, all this must not get excessive, we don't want to make joining Debian harder than it already is. Then there's also the usual 2k+ message backlog waiting in the Debian mailbox...

Evan Prodromou: 19 Prairial CCXIV

I'm really excited; I lucked out today and got a new computer. I'd tried to buy a Toshiba Libretto U100 over the weekend, but I had problems with my credit card -- Toshiba Canada wouldn't accept a card issued from a US bank. By the time I had figured out what the problem was, it was too late for an online purchase. So Amita June and I made the rounds of electronics stores in the March Central in Montreal, looking for ultraportable laptops (machines <1.5kg).

David Pashley: Oracle 10.2.0.1 Instant Client hanging?

Does your Oracle client hang when connecting? Are you using Oracle 10.2.0.1? Do you get the following if you strace the process?
gettimeofday( 1129717666, 622797 , NULL) = 0
access("/etc/sqlnet.ora", F_OK) = -1 ENOENT (No such file or directory)
access("./network/admin/sqlnet.ora", F_OK) = -1 ENOENT (No such file or directory)
access("/etc/sqlnet.ora", F_OK) = -1 ENOENT (No such file or directory)
access("./network/admin/sqlnet.ora", F_OK) = -1 ENOENT (No such file or directory)
fcntl64(155815832, F_SETFD, FD_CLOEXEC) = -1 EBADF (Bad file descriptor)
times(NULL) = -1808543702
times(NULL) = -1808543702
times(NULL) = -1808543702
times(NULL) = -1808543702
times(NULL) = -1808543702
times(NULL) = -1808543702
times(NULL) = -1808543702
.
.
.
Has your client been up for more that 180 days? Well done; you've just come across the same bug that has bitten two of our customers in the last week. Back in the days of Oracle 8, there was a fairly imfamous bug in the Oracle client where new connections would fail if the client had been up for 248 days or more. This got fixed, and wasn't a problem with Oracle 9i at all. Now Oracle have managed to introduce a similar bug in 10.2.0.1, although in my experience the number of days appears to be shorter (180+). Thankfully, this has been fixed in the 10.2.0.2 Instant Client. More information can be found on forums.oracle.com and www.redhat.com.

Baruch Even: Head is up

My graphical skills are known to be poor but I still managed to use the gimp to create a hackergotchi for myself out of the ugly image from my student web page. The hackergotchi was quickly added to the Debian Planet, before I regret that move. I probably should raid my digital photos for a better picture, if a skilled hackergotchi maker is interested in making something more palatable I'd be happy to privately offer some other possible pictures for the conversion.

Antti-Juhani Kaijanaho: My new studio apartment

I got fed up with living with flatmates, and with the certainty of having to move out after I finish the PhD degree. So I went out and found a cheap and small studio apartment about 100 meters away from my old place. [image] That’s the building, though when I took the picture, I did not know on which side the apartment would be, and it turned out this is not the side. Would have been nice, though: a view to a small patch of forest, beyond which I could have seen (barely) the old building. Instead, my view from the windows is toward the yard-cum-parking-lot, though it is possible to vary this a lot by choosing the angle (one angle gives a view toward another forest patch). [image] [image] [image] The first picture is from the kitchenette, the others are from the single room, which I call the living room. I also have a kitchenette — [image] — and an alcove (which I call the bedroom). [image] The bathroom hopefully doesn’t have a mold problem, but probably does. It’s of the older design that frequently didn’t take moisture and water protection seriously enough. Well, at least there are no outward signs of such a problem, and the air circulation system definitely works. I apologise for the poor quality of this picture: [image] I got the keys on the first of this month, and promptly moved in a spring mattress. The next day I walked nearly the recommended 10,000 steps in handling all kinds of issues, including buying a very nice lamp and a barstool to the kitchenette. [image] [image] I got cable service on Monday and am now writing this on my laptop in the kitchenette sitting on the barstool, over a wireless network that is connected to the cable modem.

John Goerzen: Usenix

Well, we're back from the Usenix '06 Annual Technical Conference. Overall, a very nice conference. This is the first Linux/Unix conference I've been to since the old LinuxExpo (NOT LinuxWorld) events in the late 90s.

I must say it was quite fun to be around so many intelligent *nix folks. I learned quite a bit, and learned how much I had in common with some (and how little with others). A very nice social at the New England Aquarium Friday night.

Some very interesting speakers, too, with lots of experience to share. I'm glad I was there.

I have only one main complaint about Usenix -- they tried to cram too much into too few days. The conference sessions ran till as late at 6:45PM, with BoFs after that. That left almost no time to see anything of Boston and meant that very few people could actually stick around for all the BoFs. Next year, they should use more days and schedule fewer things in the evenings.

The highlight of the trip, though, wasn't Usenix at all, but instead getting to meet some Boston-area Debian folks Saturday night. Lots of fun, and Mako is as crazy in person as he looks online :-)

Our train trip in each direction was nice, too.

More to come...

6 June 2006

Erich Schubert: Why I use (well, wrote) my firewall tool

Wouter Verhelst wonders why you would use a firewall config tool (apart from a GUI) instead of writing iptables rules directly. While I do just use a couple of iptables statements in a shell script here on my laptop, this is not manageable for larger networks IMHO. In fact, I wrote my Pyroman firewall admin tool for the very reason that it replaced an existing iptables script which was a pain to maintain. I'm talking 300-400 lines here. Four networks, two failover firewalls, a dozen of servers in the DMZ network some of which with extra access rights into the internal network (such as accessing the LDAP directory). And no full-time admin to take care of them. So I needed a firewall script that everybody can edit and that won't fail miserably when they make a mistake. A script with extensive error checking and that prevents people from locking themselves out. With an easy syntax. The first approach was in Perl, and already worked quite good. The rewrite then was in Python, and the users (read: fellow volunteer "admins", that don't know the firewall by heart as I do) liked it a lot. They now could add new hosts and services without depending on me to update the firewall. This is a configuration file they'll immedeately understand:
# add the web server
add_host(
        name="web",
        ip="10.100.1.2",
        iface="dmz"
)
# offering, well, web service.
allow(
        server="web",
        client="ANY DMZ INT",
        service="www ssh ping"
)
In contrast to any pure iptables script. It also helps to require them to commit their changes to a SVN repository (for getting the changes synched to the failover firewall) - that way you have version control and undo.

Aigars Mahinovs: The curse of Montesuma - a British Internet manjana

A couple of days before going off to Debconf6 the wireless access to the Internet stopped working for me in the network of my university. I went to the network guys and they told me that I was using too much of it, so they blocked my IP address and now need to check my laptop for anything that could be of a copyright violation. When they found out that the laptop in question only has Linux installed and that the "high traffic" was mostly bunch of podcast downloads and some CD's of Linux distros (including some Dapper beta CDs), they decided to not look at my laptop (they would not know how anyway) and assured me that my laptop would be connected back the next day. I still could access the net by tethering myself to an Ethernet socked, so I was not worried. The next day the wireless was still non-functional and so it was the day after that. I was working on with Ethernet and then left for Debconf. Almost three weeks later I come back to the university only to find out that my wireless is still blocked. I go to computer guys again and they again assure me that it will be enabled the next day ... or at least on Monday. During the weekend I do all I can to get my Debconf6 photos out to somewhere you could see them and do it in proper format and quality. In the end I get them uploaded to http://koyanet.lv/~aigarius/ as zip files (no compression). "aday" is the day of my arrival, "cday*" are the DebCamp days and "day*" are the main conference days with "day0" being the Debian Day. I go home satisfied only to come back next morning and find that now _both_ wireless and Ethernet access is blocked for my laptop. Apparently my interactions with the photos and catching up on some audio and video podcasts have generated around 14 Gb of traffic (both ways summed together) and that looks to be a big NO-NO in this university. After long and heated negotiations between my boss and the IT department the best we could agree on was that my laptop will be reconnected tomorrow, but if I use more then 2 Gb of traffic (both ways) in one month again, the laptop will be removed from the network permanently. Wonderful studying conditions, right? The only solution anyone could offer me is to get a ADSL connection in the place I am renting. That will cost me 12 pounds per month for "line rental" and 25 pounds per month for 8 Mbit down / 512 Kbit down ADSL connection with 40 Gb monthly traffic cap. And that is the best deal that I could find, because if I do exceed that cap for two months in a row they will not charge me per Gb as other will, but will only downgrade priority of my traffic until the end of the month. And the traffic cap in this service only applies to peak time and I can use it all I want during the night. But still the prices are just crazy and there still is a traffic limit. Encouraging the use and discovery of new Internet technologies, right? (.... sarcasm-o-meter overload ....)

Evan Prodromou: 17 Prairial CCXIV

The Oxford English Dictionary's Word of the Day feature has once again improved my vocabulary. Today's word is "motorkhana", a portmanteau from Australia and New Zealand for a driving competition testing various skills. It's combined from "motor-" plus the back half of "gymkhana". I thought to myself, "Isn't gymkhana some kind of fusion martial arts technique that they made a movie about in the 80s?" Turns out my memory was mistaken; that's Gymkata ("The skill of gymnastics, the kill of karate"), which apparently hits some people's lists as one of the worst movies ever. A "wp:gymkhana", on the other hand, in India and Pakistan is a general gymnasium or sports club; in British English it is an equestrian event that tests various riding skills. Aha! Thus the equivalence with "motorkhana". Thanks again, Oxford English Dictionary!

5 June 2006

Julien Danjou: My buildd

Ok, after some hours, I managed to set up my first buildd (on i386 :( ). That was not so hard after all, but I would have loved a few more documentation.
Anyway, I plan to run a buildd on another sparc box, so I'll write some documentation at this moment. Yesterday eveni^Wnight, I filled up the wanna-build database with all Debian source packages. buildd But... Doh! It seems it found its first FTBFS! What a lovely buildd!

Mike Hommey: Targetted Spam

This morning, I got one of these standard cialis/viagra/xanax/valium/whatever spam you get numerous times in a day, but with a “test xul” subject. Well, that’s targetted.

Erich Schubert: Upgrading unstable notes

From the "using unstable on my desktop" department: Just two things to point out: liferea-mozilla has been superseded by liferea-xulrunner; so if liferea is held back at your upgrade, do an apt-get install liferea-xulrunner. The old file manager of XFCE has been replaced with "thunar". Just do an apt-get install xfce4 to get the latest xfce4 suite. You might want to install the recommends, too. And remember, don't just blindly run dist-upgrade. This is meant for upgrading e.g. from woody to sarge. For daily use, upgrade is much better, since it's less aggressive at uninstalling applications you might miss afterwards. Aptitude may also offer you alternatives in conflict situations.

4 June 2006

Enrico Zini: Dapper on XEN (part 1/1, unfinished)

I need to do some work on a Dapper system, so it's time to try out xen:
apt-get install linux-image-2.6-xen-686 xen-hypervisor-3.0-i386 xen-utils-3.0 xen-tools
xen-tools tries to recommend xen, which is old and has been requested to be removed from the archive. The recommends needs to be ignored, which is not that trivial to do with aptitude. The linux-image doesn't happen to have an initrd. The bug has already been reported. One can recreate one using:
mkinitrd -o/boot/initrd-2.6.16-2-xen-686.img  2.6.16-2-xen-686
Then one adds this to /boot/grub/menu.lst:
title Xen
root (hd0,0)
kernel /boot/xen-3.0-i386.gz
module /boot/vmlinuz-2.6.16-2-xen-686 root=/dev/hda1
module /boot/initrd.img-2.6.16-2-xen-smp
And it boots lovely:
# xm list
Name                              ID Mem(MiB) VCPUs State  Time(s)
Domain-0                           0      939     2 r-----  4677.9
Now xen-tools provides xen-create-image. I'll try to create the Dapper image (deboostrap in my system has already been changed to be able to install dapper):
xen-create-image --size=4G --swap=128M --dhcp --volume=marvin \
                 --hostname=cavazza --dist=dapper --fs=xfs
But I get:
[...]
Creating swapfile : /dev/marvin/cavazza-swap
Done
Creating disk image: /dev/marvin/cavazza-root
Done
Creating xfs filesystem
Done
Installing the base system.   This will take a while!
Copying files from host to image.
Finished
Something went wrong with the debootstrap installation
Aborting
I love detailed error messages. This one is not. So I'll have to do by hand. The documentation says:
Before you can start an additional domain, you must create a configuration file. We provide two example files which you can use as a starting point:
  • /etc/xen/xmexample1 is a simple template configuration file for describing a single VM.
  • /etc/xen/xmexample2 file is a template description that is intended to be reused for multiple virtual machines. Setting the value of the vmid variable on the xm command line fills in parts of this template.
But in Debian there's no trace of the two example files. I've reported to Guido Trotter. Then I googled for the two files and found them. Now, on to adapt Dapper to run under Xen. The good Ubuntu wiki has an HOWTO which crudely makes you install the Tarballed Pre-built installations of Xen 3.0. It's sad that xen-enabled kernels didn't make it into Dapper roper. I can make this:
kernel = "/boot/vmlinuz-xen-domu"
memory = 128
name = "Dapper"
disk = [ 'phy:marvin/dapper,hda1,w' ]
dhcp="dhcp"
root = "/dev/hda1 ro"
I used the pre-built kernel as a domU, but:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(3,1)
Sigh. I'll try with the Debian Xen-enabled kernels. Installing yaird and linux-image-2.6.16-2-xen-686_2.6.16-14_i386.deb and linux-modules-2.6.16-2-xen-686. It WORKS! Now, that's not Dapper: that's a debootstrap install of it. No user, no root password, no desktop, no shiny Ubuntu custom config. How to finish the installation? No idea. In the past, I could run base-config, but now it doesn't exist anymore. It seems that the best bet is not to use debootstrap, but to install the CD in the LVM partition using QEMU and then chroot into it and then install the debian xen kernel to boot it. A QEMU install will take ages, and I expect some trouble, like getting partman to see LVM. Maybe I better install on a disk image file and then use tar and netcat to bring the ubuntu installation out of the disk image and into the LVM image. For today, I didn't make it. This job slips another day. Frustration. I hope that at least this description of my efforts so far can be helpful to someone trying similar things. One suggestion I got was to boot the Dapper CD and install from there. I can't: this computer has no bootable CD. Update: I found out http://xensource.com/summerofcode.html and it says:
Project Idea 3: Xen Desktop Outside of Domain 0 This project would deliver a Xen desktop to the user of a client system that presents an abstraction of a virtual desktop to the user in which multiple guests share the virtual desktop, each with a subset of the desktop resources (pixels, etc). Smart management of the sound drivers would allow mixing of sound from multiple guests to the single device used for output. Microphone input could be broadcast to all guests. Technologies such as ALSA already emulate playback settings by downsampling for the hardware etc. so its not hard to imagine a xen-snd-front device munging the data to a common format used for the internal sound card. Issues: synchronization of playback.
So, what I'm trying to do has been proposed as a SoC project and (I guess) is something that can't be done overnight. Although I was planning to run a diskless gdm accessed with XDMCMP from domain0's X server, and to just hand out the audio card to the domU using pciback, so my task would have been easier. Thus I give up using Xen for this one. I'll work around the lack-of-bootable-cd limitation of this computer by installing Ubuntu using QEMU. Which I found out requires using the "Alternate install" CD. The desktop install CD is a live CD installing with Ubuntu Expresso, and the live CD doesn't seem to work in QEMU. Or, I'll install in a LVM partition in the laptop and then move it around using the network. This one's probably faster. Could this experience be an interesting use case for Edgy Eft?

Erich Schubert: How to avoid locking yourself out via iptables...

Martin F. Krafft blogged about how to rollback firewall changes in the case you managed to lock yourself out from the box It's even easier if you use my Pyroman firewall config tool. (apt-get install pyroman). If you run pyroman safe it will execute the new firewall rules - and if you don't type OK within 30 seconds, it will undo all changes. Note that it can also restore to a configuration set by a different firewall app. (It just restores the old iptables state and feeds it back to iptables - it will support anything your iptables version does.) Oh, and it's much faster than the other firewall scripts I've tested so far, since it doesn't spawn hundreds of iptables processes, but only one iptables-restore for setting the new rules in one transaction. Check the web page for other benefits; should just work on any Linux distribution with iptables and python (read: every). [Update: Martin, I was referring to the instructions you gave, to adding an at job and then running atrm to accept the changes. Yeah, what you script does is basically the same what mine does for rollback.]

Martin F. Krafft: A safer way to apply a new iptables ruleset

You probably now the feeling, that cold and hot rush of adrenaline after you've typed iptables-restore < new-ruleset and didn't get to see the shell prompt again: you've just locked yourself out of a machine that's potentially far away, and you feel like vanadlism, or screaming on the top of your lungs, or whatever. In my series "scripts to the rescue" (uh, which doesn't exist as a series actually), here's a new one: iptables-apply (and docbook manpage), which will make things easier for you. It applies the new ruleset and then prompts whether you like it. If you've locked yourself out, you cannot answer the prompt, and if you don't, the script rolls back the ruleset. Nice and simple. And surely beats my previous approach, which was:
echo 'iptables-restore < /etc/network/iptables'   at now + 2 min
iptables-restore < /etc/network/iptables.new
[...]
atrm ...
mv /etc/network/iptables .new, 
Now I hope the iptables maintainer feels inclined to put the script in with the package (see #370292).

Dirk Eddelbuettel: Sunburst Races Marathon 2006

Went to South Bend, Indiana, on Friday for the 2006 Sunburst Marathon yesterday morning. This is a smallish marathon with 600 runners, embedded in a half-marathon, 10k and 5k all of which start at the College Football Hall of Fame and end in the Notre Dame football stadium. Early 6:00am start, made worse by the fact that it is one time zone earlier too so I got up at 3:30am 'my time. Ouch. The race almost didn't start as a hazardous materials spill was announced right at start time. Luckily, that got taken care of and we were off and running at 6:15am. The first ten to twelve miles went pretty well and fast, and I slowed down a little afterwards. I started to pay for the fast first half with some oncoming cramps starting around mile 18. Somehow I managed to suppress the cramps with a combination of walking water stops, gatorade, gu (handed out by the race organisers a four or five water stops -- nice!) and sheer stubbornness and some more walking when needed. I had aimed to beat my Boston qualifying time of 3:20 -- and I did with a chip time of 3:17:48, which is also another PR and a nice improvement over the previous three marathons. So on to Boston for the one hundred eleventh Boston Marathon next April!

3 June 2006

Erich Schubert: SELinux support is a release goal for etch

SELinux is an official release goal for etch. However, we're currently far from that. So far, very few developers are actually using SELinux (if any), or even testing it. I won't be doing anything on SELinux for the next 6 weeks at least, more likely 6 months. So currently I don't see how we can manage this goal, unless more DDs (and of course users; you don't need to be allowed to upload packages) help getting SELinux properly integrated. (You can run SELinux on etch without having to recompile any software I think, but you'll have to do quite a bit of customizing yourself right now.) For a coordinated effort to get SELinux into shape for etch, there are Debian SELinux mailing lists, but so far they're basically unused. [Update: yes, one option is to remove SELinux from the etch release goals. I was in fact rather surprised to see SELinux listed there.] [Update #2: It was pointed out, that the first occurence of "release goals" in that mail is prefixed by "pet". Don't ask me what the difference between a release goal and a pet release goal is, though. I guess something like being in an official wishlist...]

David Moreno Garza: World Cup just around the corner

Well, Mexico played three preparation games in Europe on their way to start the World Cup. They played against France and the Netherlands on their territories and well, I think Mexico was not ready enough, it is not solid and the manager was making lots of crazy movements. They ended 1-0 and 2-1, respectively. Obviously those were difficult matches against f tbol potences on their home, but still Mexico has plenty of capacity to beat any of those countries. The third game was against a German university, Gottingen, which was more a diplomatic match (the manager and players didn’t want to play it, but it was because of the chief managers of Mexico, trying to make a good relationship with the city and/or Germany, itself). We won 0-3. Next week, on Friday, the World Cup will begin. The Mexican team will be playing firstly, against Iran, then Angola and finally Portugal, on group D. I don’t see Mexico solid and trustable enough yet, but we’ll see how it goes against Iran, which have been playing widely good (they won Costa Rica 3-2, back in March; drew 2-2 with Croatia and won 5-2 against Bosnia-Herzegovina; these last two in the last couple of days). Iran is not at all, an easy enemy. We’ll see how it goes. I’ll be reporting more World Cup news on the next weeks :)

2 June 2006

DebConf6 Blog: DebConf6 Over - Thanks to all and pictures for the gallery (Posted by The DebConf6 Orga Team)

As you probably know by now: DebConf6 is over! It was an excellent event at a nice location with some amazing network details - such as 1.8km of cable to get all our areas linked into the local network, and having a fiber link into the tower - with 10mbit hubs. We would like to say thank you to all the people who helped to run and organize this conference, taking on tasks such as Additional thanks go to all the people who lent us their hardware, our sponsors for making the event possible in the first place (see the full list at debconf6.debconf.org), and to all the attendees who managed to keep on smiling even when things didn’t always turn out as expected.
While we are at it: There is a central gallery for DebConf6 behind gallery.debconf.org. As it is open for everyone, just create a user there and send a little mail to gallery-admins@debconf.org to get your account activated. We would like to have this as a central point for all pictures taken at DebConf6 (and all prior / following DebConf-Events), so we would really appreciate if you can (in addition to your own gallery) upload the pictures from DebConf6 or all prior events you attended there.

Next.

Previous.