Search Results: "cas"

16 May 2006

Wouter Verhelst: On huge ISPs and multi-level support requests.

Adam They just told you how to get past their front lines: Call their business support on the toll-free phone number she gave you. Here's my take at what happened: Really. Call them. You'll find that you will be talking to someone knowledgeable about what SMTP is, and who is able to put a request with SMTP administrators to fix this issue if that is required. Take it from someone who used to work at one of Belgium's largest ISP's (at least, it was that when I used to work there—they've lost some market share since).

Aigars Mahinovs: Debconf6 day 2: Java is non-free, at last!

The first session in the morning that I attended was the BOF about Python. After an introduction to the current state by the Python maintainer (Matthias Klose) and a few other people we run overtime and the BOF was extended into another time slot. Also the session was plagued by the room switch hanging which affected both the network and the recording. It really looks that that strange situation with a bunch of python-foo, python2.3-foo and python2.4-foo packages will be fixed. Later in the day guys from Intel gave a talk about some kind of data mining stuff they were doing with hardware database from Ubuntu. The tool was called Toppler (from Dilbert) and basically was a hardware database. They pondered about possibilities of getting some useful information from the huge pool of data, but the examples that they showed were just lame. For example they showed how you can get a list of 1234 reports relating to this wireless card, but that is not what I want to know - I want to know if it works and if it does not work, what can I do to fix it. The showed an example of an OEM entering his computers hardware configuration to see what distro works on that hardware - that is completely useless: as an OEM I at that point would already have chosen a distro and what I really would like to know is what will and what will not work from my hardware configuration in that distro, why it will not work and how to fix that. That would be approaching useful status - so far they only have a SQL DB with a simplistic web fronted. At the same time to give out that kind of information you would need much more datapoints to make a correlation - datapoints most of which can not be tested automatically and require user interaction on submitting. On the other hand the more user interaction they need, the less users will want to submit that data. They already have at least 10 times too many questions (there were 30 + options) if they really want this to be something that users will want to contribute to. Also there is no real direct motivation for users to contribute to that database - maybe OEM's have that kind of motivation, but they must decide to use Linux first. In short I only saw mountains of social and technical problems with this project and really little in terms of benefit. That's what you get when you have too much money to burn. After that there was a "yearly" Ubuntu report from Mark Shuttleworth. Most of what Mark said was already widely known if you followed Ubuntu's development a bit. Dapper will release on 1st of June and will be supported for 3 years on the desktop and 5 years on the servers. Edgy Eft will be a developer driven highly experimental release that will be done in 4 months and its planning will be done in Ubuntu conference in Paris (18th-23rd June). In Dapper KDE is given equal weight to Gnome and in Edgy the same will be done to XFCE. There is a graphical installer - Ubiquity and a graphical upgrader that works around strange things that APT has not been designed to handle. Mark can only guess what will be in Edgy as developers will decide this one, but most probably Xen and XGL will be integrated, startup will be reworked by adding paralel init scripts with dependencies and maybe even APT will be replaced by some kind of SMART tool. I have not heard anything about it before and Mark also gave no further detail. but in any case Edgy promises to be "the Ubuntu equivalent of a release of Debian experimental". Way to go not to stick into the enterprise stability. I am really looking forward to that. Another announcement came from Sun - thanks to hard work of many people the license of Sun Java was changed to allow it to be included in Debian non-free repository. FHS and Debian Policy compilant packages have been produced and are uploaded to Debian sid non-free. Congrats to all involved! Now we only to move it to main somehow. Unfortunately I missed two BOF that I wanted to see due to scheduling changes that I did not follow at the time: i18n BOF and Debian representation BOF. I have been doing quite a bit of both during last years, so I wanted to be there, but missed it. Doh. In the afternoon I was twice recruited by the organizers to do the group photo. Last year there was a huge collection of dSLR's around Debconf5, but this year either the dSLR owners did not come or did not want to lug their cameras across half the globe, so I with my Canon 350D and a few (cheap) lenses have become the de-fact photographer of the Debconf6. It was only natural that the group photo also had to be taken by the best camera around. I, naturally, am very honored by the opportunity even if that would mean that I myself am not on the group photo. I could just gimp myself into the corner of it after the fact :) In any case the place to take the picture had to be found. The amphitheater where the Debconf5 group photo was taken was a perfect place, but lacking that a trick all the way back from Debconf3 could be employed - standing at a high place and take the picture at a sharp angle down. The best place for this that I found around here is the 10m diving tower - there is a platform aprx. 8 meters from the ground where one can clearly see to the back area of the tower where a large grass area is located. I still need to confirm whether I can take the group photo from there with my best lens (Canon 50mm f/1.8 II) and what amount of light will we have on time point when we have the ability to actually take the picture (18:00). There will still be a bit of a chance with the weather, so an alternate group photo time should also be planned. There will be an announcement mail that will probably go public before this email will. Oh and later in the evening I found a guy (sorry, names escape me is seconds) who has a Canon 17-40mm f/4 L lens which I will borrow from him for the group photo. That will make the photo a lot sharper and make us much more flexible to the group size which is very helpful. Just before the dinner I want to see the saunas that i was told long ago. Basically it was a headed room 3x1 meter with a temperature control outside that was set to 0. Nobody uses the sauna here and that is no wonder - the whole place is like a large sauna. In the same club (just above the restaurant where we have all the meals now) there was a ping-pong table, two pool tables and a gym. In the gym I found a Mexican Gentoo spy who's mom was born in Riga, Latvia. The world is truly small. After the dinner I sent out the group photo announcement email and then took a look at the Joey Hess's BOF about debian-installer. I snook into the talk to take a few photos and watched the rest via the webcast. Unfortunately all the people spoke very quietly there, so it was hard to distinguish their voices from the background noise. Please, do not do that! Speak up, people! The tango practice took place between hacklabs tonight. Looked fun, but I would rather take a lot of pictures of it :) On a final note I witnessed a Mao game in Spanish. That was only a bit more disturbing then the same game in English. Even while I do not speak any Spanish. P.S. If you really like what I do with photos in this blog, it would be very nice if you would sponsor me a Pro account at Flickr. Otherwise my monthly traffic limit there (20 Mb) is nearly up with only select photos of two days of Debconf uploaded. I have now almost 2 Gb of photos stored on my laptop and the conference is only starting.

14 May 2006

Aigars Mahinovs: Debconf6 day 0: Debian Day

While most DD's continued hacking in the hacklab, some of the Spanish speaking Debian people joined in with approximately 50-70 Mexican people for a set of Spanish language presentations about something. I have no idea what they were about as I do not speak Spanish (except manyana). The Debian Day was also the first thing that was webcasted live. The video team tested the software, tested the equipment and judging from the IRC responses at in the #debconf channel everything worked just fine. The video team also had a BOF session in the evening talking about how to improve the experience even better both for people watching the webcast and for people watching (and making) the recordings. I especially loved the exhibition from the pixelchica - wonderful pictures. A lot more people arrived today - many new faces, lots of social interaction happening even when the Internet is here. In the evening several crates of beer were acquired by the shadow beer team and the celebrations continued well into the night.

Adam Rosi-Kessel: Comcast: Human or Automaton?

I’m not the first person with a story about the sad state of Comcast. Since I’m certain I’m never actually going to get a True Human to read my email at Comcast, I’ll just post my brief exchange regarding Comcast’s SMTP servers here. Maybe some future archaeologist of the Internet will point to this exchange as early evidence of the End of Email: I posted the following to Comcast’s website feedback form — apparently there is no publicly advertised email address for communicating with Comcast:
Please forward this email to an engineer responsible for Comcast’s SMTP service. I run an ISP. Email to @comcast.net addresses often bounces with a “556 null byte in data” rejection connecting to gateway-s.comcast. I use postfix from Debian Sarge. This is not a problem on my end. There are numerous reports of this problem in newsgroups (just google ‘556 null byte in data’ ‘comcast’). The problem is independent of mail user agent and ISP. Note that this is *not* an issue of my users attempting to connect to the Comcast SMTP server themselves—I understand there is some issue where Comcast only accepts SMTP/SSL/TLS now for its users. This is a *delivery* problem. I have seen some speculation that Comcast’s SMTP servers are rejecting email with this error because of either large attachments or attachments with long filenames. I have seen the problem occur where the attachments are very small (on the order of 10K), but I haven’t ruled out the latter explanation. Please let me know if there is anything I can do to fix this problem. My users would like to be able to email Comcast customers.
Comcast’s response:
Dear Adam KESSEL, Thank you for taking the time to write us. Comcast is aggressive about protecting its’ subscribers from unwanted and unauthorized emails. In keeping with industry standards and best practices some recent changes to our filters have been made.If you are attempting to send emails to legitimate recipients in the Comcast.net domain, and receive an error message there are 3 likely reasons: 1. Your mail server has been identified as a source of Spam. Our mail filters have been updated to reject all mail from your server until the administrator of your mail server contacts us to request the server be removed. 2. The source of your message has a dynamic email address. Anyone attempting to email into the Comcast domain directly from a Dynamic IP address will receive the following error message: Comcast does not support the direct connection to its mail servers from residential IPs. Your mail should be sent to comcast.net users through your ISP. Please contact your ISP or mail administrator for more information. 3. Your mail server has an invalid rDNS value. What this means is that our mail filters authenticate each message by checking the rDNS value to ensure its’ a legitimate domain and yours wasnot. The error or “bounce” message you receive will indicate which reason the message was rejected. Youwill either be given the address to request Blacklist removal or you will be directed to our rDNS FAQpage. If a domain administrator feels that their IP range has been blocked in error or they would like information on required steps to be removed from our black list, they can contact us at: blacklist_comcastnet@cable.comcast.com If you need assistance setting up email through your ISP?s mail servers please visit their support pages or contact their support group. If you need information on the rDNS block, please visit: http://www.comcast.net/help/faq/index.jsp?faq=Email118405 Thank you for the opportunity to assist you. If you need further assistance with any of your Comcast services please reply to this email and we will be happy to assist you. Thank you again for choosing Comcast we appreciate your business. To visit our local support page including links to contact us via Live Chat, as well as many downloadable forms,and FAQ pages, please visit: http://www.comcast.com/nesupport/ Did you know that Comcast offers its customers a variety of free benefits? These include McAfee Antivirus, Firewall and Privacy software as well the Comcast tool bar that lets you take Comcast.net with you while you surf, and the Desktop Doctor to help you restore lost settings…plus much more, please visit http://www.comcast.net/downloads/ to see all of the extras that we provide. Sincerely,
Irene Comcast Electronic Customer Care - New England You can email us anytime by replying to this email or by clicking the “Contact Comcast” link found on the bottom of all www.Comcast.net and www.Comcast.com webpages. Our Electronic Customer Support teams are available to assist you 24 hours a day 7 days a week. **************************************************
The response contained in this message is intended for the addressee only and may vary from other ponses depending on geography, promotional campaigns or other factors. If you are not the intended recipient of this response, please delete this message. Any unauthorized use or dissemination of the information contained in this message is prohibited.
**************************************************
The last bit about “unauthorized use” is a nice touch. My follow-up:
The 556 null byte SMTP error is *not* a spam or blocking related rejection. My mail server is (1) not a source of spam (2) does not have a dynamic IP address (I assume below whenyou wrote “dynamic email address” you meant “dynamic IP address”); it is not a residential IP but rather a commercial ISP that I run; and (3) the mail server has a valid reverse DNS lookup. To clarify: not every email is being rejected from the ISP’s IP address. In fact, the same sender can send from my ISP multiple times to a Comcast subscriber, and most messages will get through. There appears to be a bug in your SMTP delivery server whereby certain triggering events cause a 556 null byte error. There is at least some evidence that one such triggering event is an email with an attachment with a long filename. This is not a spam filter issue. This is a Comcast SMTP configuration issue. As you will see if you google “‘556 null byte in data’ comcast” this is awidespread problem that is entirely unrelated to Comcast’s zealous efforts to block unsolicited email. Please forward my email to an engineer or technician. Thanks,
Adam
Finally, Comcast’s witty retort:
Dear Adam Rosi-Kessel, Thank you for taking the time to write us. Commercial Email Accounts We have to apologize, but at this time you must contact our Commercial Business support team by calling one of the following toll free numbers 888-824-8105 or 888-824-8155, 1-888-737-8361 Thank you for the opportunity to assist you. If you need further assistance with any of your Comcastservices please reply to this email and we will be happy to assist you. Thank you again for choosingComcast we appreciate your business. To visit our local support page including links to contact us via Live Chat, as well as many downloadable forms,and FAQ pages, please visit: http://www.comcast.com/nesupport/ Did you know that Comcast offers its customers a variety of free benefits? These include McAfee Antivirus, Firewall and Privacy software as well the Comcast tool bar that lets you take Comcast.net with you while you surf, and the Desktop Doctor to help you restore lost settings…plus much more, please visit http://www.comcast.net/downloads/ to see all of the extras that we provide. Sincerely,
Ivonne Comcast Electronic Customer Care - New England You can email us anytime by replying to this email or by clicking the “Contact Comcast” link found onthe bottom of all www.Comcast.net and www.Comcast.com webpages. Our Electronic Customer Support teams are available to assist you 24 hours a day 7 days a week. **************************************************
The response contained in this message is intended for the addressee only and may vary from other responses depending on geography, promotional campaigns or other factors. If you are not the intended recipient of this response, please delete this message. Any unauthorized use or dissemination of the information contained in this message is prohibited.
**************************************************
If anyone has interesting ideas about how to get past Comcast’s front lines, I would like to know.

Ben Hutchings: Debconf video streaming: bugs and fixes

Yesterday we found some problems with our streaming set-up that hadn't appeared in the short time we had to test it beforehand. Firstly, due to a misconfiguration, the 10 Mbps link from the Parliamentary Tower to our network became congested with broadcast traffic. This seems to have been fixed, though I don't know the details. Secondly, at times when the picture kept changing, the encoding machine was unable to encode it in real time. We believe we've fixed this by using libtheora-mmx in place of the standard libtheora. Finally, we weren't able to set up both internal and external Icecast servers, and to save bandwidth we had to stop people at Debconf from streaming from the external servers. We have fixed this with the aid of some new NAT and firewall rules. If you're at Debconf you can use http://video:8000/hacklab.ogg or http://video:8000/tower.ogg. If you're outside, carry on using video.debconf.org. One of the servers has gone down due to a disk failure, but should be back later. In the mean time we should be able to add more relay servers.

Andree Leidenfrost: Mondo Rescue RAID Support at Last

CeBIT Australia ate substantial amounts of my time for the last two weeks (and almost killed both my feet and my voice but was still interesting and fun), so things took a little longer in Mondo Rescue land. But at last, here it is: mindi-1.07-3 and mondo-2.07-2 are in incoming and add the much overdue RAID support for Debian!

What it does (from the shiny new NEWS.Debian file):
This is the first release supporting RAID via mdadm. It is supposed to work with all RAID levels/varieties supported by mdadm and the kernel.

The following limitations and oddities apply:
  • All information about existing RAID arrays is drawn from /proc/mdstat, the contents of an mdadm.conf file is ignored.
  • Using RAID for the boot device is currently untested. The system will likely be unbootable after a restore.
  • Using LVM in conjunction with RAID is currently untested. Restore will likely fail.
  • Building a RAID5 array may appear to hang the system because of extended screen inactivity. However, disk activity should be high and eventually the restore will continue.
  • The synchronisation progress bar and the formatting progress bar may overwrite each other leaving the screen somewhat garbled. Not nice but harmless.
I have intensely tested this with various RAID levels, chunk sizes, parity algorithms, with and without spare disks and so forth. In particular, I've done successful full archive and restore runs using NFS as storage media for the following:
  • amd64, RAID1, kernel 2.6.16-1-amd64-k8 (2.6.16-12)
  • amd64, RAID5, kernel 2.6.16-1-amd64-k8 (2.6.16-12)
  • amd64, RAID10, kernel 2.6.16-1-amd64-k8 (2.6.16-12)
  • i386, no RAID, kernel 2.6.16-1-k7-smp (2.6.16-10)
I'll post the patch to #325877 for reference purposes and will also commit to upstream SVN shortly. Bruno was kind enough to review that patch and likes it, so there shouldn't be a problem (other than some fiddling because I have worked off the Debian 2.07-1 package and not tracked upstream).

Apart from fixing issues with the above, I plan the next steps to be:
  • support for RAID boot partitions
  • getting LVM to work
However, I think I'll do a fresh install of Sid AMD64 before that, to ensure that d-i created systems work with Mondo Rescue.
.

Also, I am experiencing a strange behaviour with busybox on AMD64 in that I get the following message on virtual terminals (and no prompt):

./sh: Cannot set tty process group (Operation not permitted)

when I run:

./openvt 8 ./sh

(where ./openvt and ./sh are both links to ./busybox)

This happens with 1.00 as well but in either case only on amd64, i386 is fine. Also, it only happens if NFS support is enabled for busybox mount.

13 May 2006

Meike Reichle: Finally!

After announcing it for ages I've finally managed to move almost everything I have online to my own (v)server. It's being hosted by Ganneff (Thanks! :)) and already hosts my webpage and my blog which has also gotten a full redesign. The horrible table mess has been replaced with css and clean html, Sartre and Nirvana gave way to Johnny Cash. There might still be some changes on the blog, since I am still fiddling with it, but the rough layout stands.
Big thanks to youam and aba who hosted the sites in the meantime. If you have any bookmarks or feeds pointing to the old blog url at youam.de please change them to point to blog.alphascorpii.net instead, since the old blog will probably be taken down soon.

12 May 2006

Alexander Schmehl: [OSDL-DAM-II] In case you wonder:

The last blogs came via a borrowed network cable. Two cables for a room of sixteen. That's the portland group.

Erich Schubert: A bug in the UML 2.0 OCL spec?

I think I've found a bug in the UML 2.0 OCL spec. It's actually a well-known issue for C++, documented e.g. in the C++ FAQ. It's not so obvious in Java, since Java didn't have Templates for a long time. The UML 2.0 OCL spec says on page A-22, Definition A.27 (Type Hierarchy)
If t' ≤ t then Set(t') ≤ Set(t)
With ≤ having the meaning "conforms to" for types.
[Update: newer UML 2.0 OCL document, the latest I could find, page 38 still says the same] Any good C++ programmer should know that this doesn't work. From the C++ FAQ "Is a parking-lot-of-Car a kind-of parking-lot-of-Vehicle?":
"A Bag-of-Apple is not a kind-of Bag-of-Fruit." If a Bag-of-Apple could be passed as a Bag-of-Fruit, someone could put a Banana into the Bag, even though it is supposed to only contain Apples!
Note that the converse, Set(t) ≤ Set(t'), also doesn't hold. While you can put Apples into a Bag-of-Fruit just fine, you may still find a Banana in there. This has an obvious reason: when passing data to the object it can be "downcasted", and when retrieving data it can be "downcasted", too. But it can never be upcasted. This should occur in OCL, too. A "Set(Apple)" doesn't conform to "Set(Fruit)" by the usual interpretations that I can call "put(Banana)" on any "Set(Fruit)"! Can anyone enlight me, if this really is a bug in the OCL spec, maybe has already been corrected, or if there is some magic in OCLs definition of "conforms to" or interfaces that solves this problem? (Yes, I think there might be something in OCL that solves this problem, for example if this hierarchy is only used in condition checking, then in fact all operations are "get" operations... but I've just started reading on OCL, I don't know much about its expressiveness yet...) [Update: Onne Gorter has some good thoughts on this. He basically notes that this is not a problem if you don't have any references to the "uncasted" list. For example if the cast is a function like in a functional language that actually returns a new set. I'll have to consider this for OCL, but given that OCL and UML are somewhat designed for Java - and Java suffers from this problem, too - I'm not so sure about it.]

Barry Hawkins: Debian Women s youngest recruit

Caslin in her Debian onesie This is my daughter, Caslin. We finally managed to get a picture of her in her Debian onesie before it has spit-up on it. This’ll be a great photo to hold on to in case she grows up and works for Microsoft or something equally ironic. Saturday I am scheduled to leave for DebConf, to be gone for 10 days. This will be the first time I have travelled away from home since she was born. At only 4.5 months, lots can happen in 10 days. That just hit me in the last couple of days. This reminds me once more why I took measures to change my work situation to all but eliminate travel. I look forward to meeting so many of those whom I only know via email, IRC, and DebConf5 videos.

11 May 2006

Wouter Verhelst: NBD 2.9.0-test2

A few days ago, I released nbd 2.9.0-test2 to sourceforge.net, and a bit later, to Debian's experimental distribution, too—which, occasionally, means I'll have to skip the 2.9.0 release, because I don't feel like increasing my epoch. The new release contains a few new things, most notably support for a configuration file and, coupled with that, the ability to run multiple nbd exports from one nbd-server instance. This is an experimental version in that it hasn't been tested much outside my artificial testing environments, and in that the configuration file format is a first proposal, on which I'm hoping to get feedback, so that it can be improved before it's finalized. Unfortunately, the latter hasn't happened as of yet. I'd love to see that change. Anyone?

Wouter Verhelst: 2.40: Bug found.

A long time ago, I reported about how I couldn't compile belpic 2.40 on Debian. At the time, I'd assumed it had something to do with my (mis)understanding of SCons, a make/automake/autoconf/... replacement written in python that upstream had migrated to. As it turns out, that isn't the case.
Script started on do 11 mei 2006 11:28:01 CEST
 wouter@country:~/Desktop/bel-eid-nl-linux/_stap_2/src/pkcs11/src/include/opensc$ 
ls -l
totaal 4
-rw-r--r-- 1 wouter wouter    0 2005-12-01 10:14 asn1.h
-rw-r--r-- 1 wouter wouter    0 2005-12-01 10:14 cardctl.h
-rw-r--r-- 1 wouter wouter    0 2005-12-01 10:14 emv.h
-rw-r--r-- 1 wouter wouter    0 2005-12-01 10:14 errors.h
-rw-r--r-- 1 wouter wouter    0 2005-12-01 10:14 log.h
-rw-r--r-- 1 wouter wouter    0 2005-12-01 10:14 opensc.h
-rw-r--r-- 1 wouter wouter    0 2005-12-01 10:14 pkcs11.h
-rw-r--r-- 1 wouter wouter    0 2005-12-01 10:14 pkcs15.h
-rw-r--r-- 1 wouter wouter    0 2005-12-01 10:14 pkcs15-init.h
drwxr-xr-x 2 wouter wouter 4096 2005-12-01 10:14 ;34mrsaref
-rw-r--r-- 1 wouter wouter    0 2005-12-01 10:14 scconf.h
-rw-r--r-- 1 wouter wouter    0 2005-12-01 10:14 scdl.h
-rw-r--r-- 1 wouter wouter    0 2005-12-01 10:14 scldap.h
-rw-r--r-- 1 wouter wouter    0 2005-12-01 10:14 scrandom.h
-rw-r--r-- 1 wouter wouter    0 2005-12-01 10:14 types.h
wouter@country:~/Desktop/bel-eid-nl-linux/_stap_2/src/pkcs11/src/include/opensc$ 
Script done on do 11 mei 2006 11:28:05 CEST
AAAAARGh!

Matthew Palmer: The Pain of CFEngine

So it seems that Steve Kemp is finding out that, whilst being a brilliant idea in theory, CFEngine is just plain weird in practice. I was the person who originally encouraged Steve to look at Puppet when he was originally talking about this stuff about a month ago. I was arguing from a position of weakness then, as I'd never tried Puppet then (although I was already eminently familiar with CFEngine and it's issues). Since then, I have started using Puppet on a project for a client, and let me just say that it is "all that and a bag of potato chips". Luke Kanies, the main man behind Puppet, is immensely supportive, quick to work up new features when suggested (< 24 hour turn around, in some cases) and really knows his systems-management stuff. The configuration language itself is quite easy to learn, it's wonderfully extensible, and the system as a whole doesn't have nearly the same number of "WTF?" moments as CFEngine (and Luke has already, in the week or so I've been using Puppet, fixed up two of them based on my suggestions). There's only one thing in CFEngine that I use that Puppet doesn't have, and that's editfiles. This is by design, apparently -- there is no consensus, even within the CFEngine diehards, that editfiles is a good thing, and Luke isn't really keen on implementing it (it's a big feature, and there's known better ways of solving most of the problems that editfiles solves anyway). I still feel that it's useful to use editfiles in some circumstances, but not having it certainly hasn't cramped my Puppet style excessively so far. Oh, Steve -- about Ruby being "un-perl" -- that's not a bug, it's a feature!

10 May 2006

David Welton: Consistency vs Convenience

We have a decision to make in the Hecl project that highlights how much computer programming is really an art, rather than a science. Namely, how to name a series of string handling commands. Tcl has a series of string commands like
string first string1 string2 ?startIndex?
string equal ?-nocase? ?-length int? string1 string2
string index string charIndex
which are mostly consistent. At times, they're also just a bit more unwieldy than I might like. For instance;
set somechar [string index "the nth char is" 4]
is just not as quick to write as
somechar = "the nth char is"[4]
For something that you need to use frequently like 'string equals', a shorter, quicker version is really a must - infact, Tcl's expressions recognize the 'eq' operator. Hecl has 'eq' and 'ne' as commands, which makes things a bit less consistent, sure, but a lot more convenient. The decision we need to make, though, is where to draw the line? String equality is so common that it doesn't take much thought to opt for convenience. How about string index? string length? The artistry involved is to make something that's appealing to people, but also practical. Elegant, but not so much that it remains unsullied by use in real work.

Ben Hutchings: DebCamp!

Nattie ([info]tea_cantata) and I arrived safely in Mexico and have been fairly busy since then, while not blocked by lack of network access. The Debian archive mirror prepared by Steve made it here safely and is now attached to our main server. Yay for USB2. Video team preparations are a bit behind schedule but we are just about to do a smoke test with cameras and computers (but no audio mixer yet). I have backported Icecast 2.3 and Ffmpeg2Theora to sarge, and written a "dvtail" program to read the DV recordings for streaming, so that problems with our Internet link won't break recording or result in a huge lag in the streams. I have also had to make and lay out a 100m power extension cable for a switch in the middle of a 200m stretch of network cable. This requiring fixing the crappy extension socket shut with a hammer, jumping^Wclimbing from rooftop to rooftop with cable, and then untangling it under a baking sun. I'm loving the spicy food here, though I think I can do without jelly as a "vegetarian" dessert (I think this mistake will not be repeated) and may have to ask for refritos sin queso (without cheese). The heat is bearable and my hat and sun cream have so far protected me from sun burn. The insects are horribly noisy, but one eventually tunes them out, like the noise of fans.

Jesus Climent: Please, flush your toilets.

This is a message sent to debconf-announce, pretending to be a small introduction of how you are to behave in MX, to avoid problems interacting with other people. The hacklab closes at 9:00 during debcamp and at 00:00 during debconf (although it might change now that food is served in the restaurant close to the hacklab). After that the only places that can be occupied are the pool area during the week and the backyard of the hotel buildings, where the backet fields are. Swimming after 6 is absolutelly forbidden, so dont even try to do it naked (you face being expelled from the whole debconf by the hotel). This place being a vacacional centre is occupied by families during the weekends (mostly) so we have to interact with non-geeks and non-grownups. Avoiding the just-learnt swear word in Spanish while having lunch has a bonus glass of water for breakfast. Talking about breakfast... Is not included in the food, so everybody has to find its way out. The same restaurant offers a set of 4 combinations which include juice, cafe, fried mashed beans and a selection of 4 differenf dishes on each (scrambled eggs mexican style; fried tortilla chips with tomato sauce, cream and chicken; ... The restaurant also permits ordering a la carte things. Please, ask a Spanish speaking person to help you if in trouble. For the more adventurous, there is a small market outside the Oaxtepec complex where you can have an incredible breakfast with local food and delicacies for some 40/50 pesos (3euro). Keep in mind that they use local ingredients and ways to prepare the food, which includes the use of tap water to wash the dishes, and frying the tortillas and gorditas in the same "plancha" (heated metal plate) where they cook the beef and other animal meat. Avoid getting into arguments about those details with the locals, since it cannot be changed. After few bad experiences we have been informed by the hotel staff that the toilet paper has to be dispossed in the plastic bins you will find beside the toilet bowls. Otherwise they will get stuck and you dont want 6 people on a room not to have a toilet to use, do you? It is hot and sunny, so do NOT forget sun protection creams. We have few cases of skin burns. Finally, remember that waiters expect and live of tips, so dont forget to leave a 10% of the total cost on the table when you leave.

Wouter Verhelst: Kerberos II

So about two weeks ago I started playing with Kerberos. And I'm still not finished with it, kerberizing one service after the other. Really fun, that. Kerberizing a network protocol involves somehow sending the Kerberos ticket in-band with the rest of the conversation. This is not entirely defined by the Kerberos protocol, and indeed, different network protocols have come up with different ways of sending the Kerberos ticket to the service. So far, I've encountered SPNEGO for HTTP, GSSAPI for IMAP and SSH, and SASL for LDAP. It sounds like a complex mess, but it really isn't; in general, kerberizing a service involves three steps:
  1. Installing the Kerberos plugin (if any) for both the server and the client;
  2. Generating the service principal, and adding it to a/the keytab;
  3. Configuring the service so that it knows it can do Kerberos, and so that it knows how to act when a Kerberos request is sent
Yes, in the cases I've seen it's really that simple. Although I'm skipping step 0 here–reading the documentation. But I've done that for you already ;-) The hardest part is the initial setup. But even that isn't very hard, because the process is very well documented. For starters, install the krb5-doc package, and read the excellent /usr/share/doc/krb5-doc/README.KDC which explains just enough of the system to get you started. The rest will be explained to you through debconf and the like; and if you want more, the krb5-doc package also contains three info files which explain concepts and usage very well. There's an alternative implentation called heimdal, which I presume works similar; but I haven't tried it, so I don't have much details on that one. The process of installing krb5 is very straightforward; the only thing I'll let you know is that you should ensure that any host you're going to kerberize should have reverse name lookups configured and working correctly; otherwise, you're going to run into a bunch of serious problems. After the initial setup, you'll have a Kerberos realm, usually your domain name in upper case (GREP.BE in my case). You'll now want to set up principals for your users and principals for your hosts. Now, let me show you how to configure Kerberos for LDAP, PAM, HTTP, IMAP, and SSH:
PAM
By installing and using the libpam-krb5 package, you'll log in to kerberos and receive your TGT immediately at login time; the alternative would be having to use kinit (in the krb5-user package) afterwards. pam_krb5.so also takes care of destroying your tickets when you log out, so that you don't have to worry about that. This is very handy, but not really required; you could just use kinit all the time. Of course, using pam_krb5.so also means you have only one password for everything—and that is a very good argument to use it.
Anyway; our three steps:
  1. Installing the plugin
  2. As you've guessed, libpam-krb5 is the package you'll need. That, or the heimdal implementation.
  3. Generating and installing the service principal
  4. In the case of any service such as PAM that will give you a shell (thus, as we'll see later on, also SSH), the principal is supposed to be host/<hostname>@<REALM>. For instance, on rock.grep.be, the principal PAM will use is host/rock.grep.be@GREP.BE. We'll create it with kadmin (which can be done on any kerberized host):
    wouter@rock:~$ sudo kadmin
    Password for root/admin@GREP.BE:
    kadmin:  addprinc -randkey host/rock.grep.be@GREP.BE
    WARNING: no policy specified for host/rock.grep.be@GREP.BE; defaulting to no policy
    Principal "host/rock.grep.be@GREP.BE" created.
    kadmin:  ktadd host/rock.grep.be@GREP.BE
    Entry for principal host/rock.grep.be@GREP.BE with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab.
    Entry for principal host/rock.grep.be@GREP.BE with kvno 3, encryption type DES cbc mode with CRC-32 added to keytab WRFILE:/etc/krb5.keytab.
    kadmin:  q
    
    Generating the principal can really be done as any /admin user; but as the same isn't true for writing the keytab, I'm using sudo in the above example to become root.
  5. Configuring
  6. account	required	pam_krb5.so ignore_root
    auth	sufficient	pam_krb5.so ignore_root forwardable
    password optional	pam_krb5.so ignore_root
    session	optional	pam_krb5.so ignore_root
    
    After adding the above lines to the relevant files in /etc/pam.d, you should log off, then log on again, run 'klist', and marvel. If you add the lines to your passwd file as shown above, and don't remove the pam_unix.so lines, then local passwd-based authentication will still work. This can be nice if, for example, the Kerberos server is down, or you're working on a laptop that isn't always within reach of the Kerberos server. It doesn't do any harm; the worst that can happen is that at some point you happen to be on a network where there's a firewall which drops packets on the floor rather than sending you an ICMP port unreachable; in that case, you need to wait for the Kerberos login to time out, which takes half a minute or so (I haven't timed).
SSH
  1. Installation
  2. If you're running unstable, you don't need to do anything. The OpenSSH packages in unstable are all set to understand Kerberos. If, however, you're running stable, you'll want to replace your ssh package by the ssh-krb5 package, which is the regular SSH package plus some patches to enable GSSAPI (read: Kerberos) authentication.
  3. Service principal
  4. If you've done the PAM setup above, you're all set; SSH, being a service which gives you a shell, also uses the host/ service principal.
  5. Configuration
  6. Make sure both the server and the client have the GSSAPIAuthentication option enabled. After you've done so, restart the server.
IMAP
I'm using dovecot as my IMAP server, which has builtin support for GSSAPI authentication (at least in unstable; haven't checked stable in this regard).
  1. Installation
  2. As dovecot comes with everything compiled in, there is no need for installing extra packages.
  3. Service principal
  4. You'll need the imap/ principal (e.g., imap/rock.grep.be@GREP.BE). Note that the host name which is found by doing a reverse lookup on the ip of the server is what counts, not the name of the server as you're using it (so not, e.g., imap/imap.grep.be@GREP.BE)
  5. Configuration
  6. Edit your dovecot.conf, and find the line that starts with "mechanisms" in the auth default stanza. Make sure it contains at least the word gssapi. Restart dovecot. I haven't found a Free (as in speech) IMAP client that supports GSSAPI authentication. My client of choice, offlineimap, doesn't seem to support it; mutt doesn't either (unless I'm missing something); and while thunderbird in unstable is supposed to support it, I haven't been able to configure it correctly yet. Probably me. I have, however, been able to verify that it works by using a non-free software package. Obviously, this isn't good enough. In addition, I found that horde and imp don't like an IMAP server that has GSSAPI enabled if they don't, while enabling GSSAPI in horde requires a PHP extension that isn't packaged in Debian. So I've disabled it for the time being. Stay tuned.
LDAP
  1. Installation
  2. LDAP requires uses SASL for authentication, which doesn't have GSSAPI modules in the default package; for those, you need the libsasl2-modules-gssapi-heimdal package. Attentive readers will have noticed that this package contains the string heimdal in it, rather than krb5, and that this is not the same implementation that I've been using previously. Yes, true. But since there's no libsasl2-modules-gssapi-krb5, and since Kerberos is, after all, a well-defined protocol, this is not an issue—except in that you need a bit more diskspace for the additional libraries. Note that the modules have to be installed on both the client and the server.
  3. Service principal
  4. You need a service principal that starts with ldap/, obviously followed by the hostname and the realm.
  5. Configuration
  6. For those people whom you want to allow to authenticate themselves using Kerberos, make sure they have ' SASL <principal>' in their userPassword attribute set (e.g., I have userPassword: SASL wouter@GREP.BE). You can have that in addition to a regular encrypted password; the userPassword attribute is a multi-value attribute. Now if you use ldapsearch or anything similar, it will try to negotiate GSSAPI authentication as the SASL mechanism. If it doesn't do so, you can force it by adding -Y GSSAPI to the command line.
HTTP
  1. Installation
  2. You need the libapache-mod-auth-kerb or libapache2-mod-auth-kerb modules on the server. For the client, you need a browser which has SPNEGO support; Konqueror and Firefox are two examples of browsers that do.
  3. Service principal.
  4. The prefix here should be HTTP/. That's right, in upper case, contrary to previous examples where this wasn't the case. HTTP is also different in that apache usually isn't running as root. This is a good thing; however, it does mean that the kerberos authentication module is unable to read /etc/krb5.keytab. You'll have to write the service principal to a different keytab for apache; I've used the -k option to the ktadd command in kadmin to specify the keytab as /etc/apache2/keytab; I'll assume you do the same.
  5. Configuration
  6. Something like this, on the server:
    <Location /some/URL>
    	AuthType Kerberos
    	KrbMethodNegotiate on
    	Require valid-user
    	Krb5Keytab /etc/apache2/keytab
    </Location>
    
    This will enable SPNEGO authentication; and if SPNEGO authentication fails for some reason (for example, because the used browser doesn't support SPNEGO, or because the user isn't logged in to Kerberos), it will fall back to Basic Authentication. While the latter is usually a good idea, it's less of a good idea if you're not using SSL, since then your password would be sent over the wire in cleartext. Luckily, the basic authentication can be switched off, by using KrbMethodK5Passwd off. If you go to my webserver logs, you'll see that you'll get a 401 right away, while the HTTPS version of the same allows you to try to log in by using basic authentication. On the client side, if you're using Firefox, you need to go to about:config, and set the option network.negotiate-auth.trusted-uris to a string that will identify the servers that may do SPNEGO authentication in your realm. In my case, I've set it to grep.be. For konqueror, doing something similar is not required—it'll do SPNEGO authentication out of the box.
So, that's what I've got set up on my network currently. Next on the list: NFS4 kerberos auth (requires updated nfs utilities, which aren't in Debian yet because of issues with NFS2, IIRC), PostgreSQL (it does seem to support it), and finding out if or how I can create principals can't be used for one authentication scheme or the other. Phew, that was a long post. I'll stop now.

9 May 2006

Gerfried Fuchs: Arrived in Oaxtepec

... and already liking it. Though, first things first, some notes about the trip so far: The plane from vienna took off 50 minutes late due to weather reasons. It was quite nice, though, and I hope that some of the night pictures of town lightnings are usable. At least the delay reduced my waiting time at the madrid airport quite a bit. Which brings me to that airport. It's... HUGE! I mean... erm, it has signs telling people that it will take 25 minutes to the gate that the plane to mexico will be leaving. And that is including the trip on some underground train they have that it doesn't take you much longer than that... But appart from that, I arrived on the gate area before midnight so I was able to order some drink at the starbucks. At least some shop that knows how to let people enjoy the waiting time. :) The plane to mexico left on schedule at 1:50, so it was completely dark outside when we started. And almost the whole trip, up until about the last 20 minutes or so of the 13 hour flight, it was completely dark outside, because we were travelling ahead of the sun. So it wasn't too bad, being able to get some good sleep, at least as good as possible on a plane. Having arrived in mexio airport with a short delay and waiting a bit for my suitcase I finally met up with Frans Pop, because I was too scared of getting lost without any sense for the spanish language yet. We took one of the prepaid official taxis to the bus that will take us the rest of the trip. The taxi drive was really... well, interesting. It was the fastest trip I've ever seen in any car in city area, but the bad thing: I can't even tell you how fast we were at times because the speedometer was b0rked and displayed only zero all of the time. I guess taxi drivers are most the same all around the world, but this one definitely mastered the art. The bustrip wasn't anything notable, besides a bit tiresome due to the air in the bus, the partly monotonous vegetation outside and that I was sure to not be able to watch the movie to the end, besides that the sound was too silent. :) Finally arrived at Oaxtepec, which turned out that our hotel seems to be in some sort of recreation area, maybe even a bit of themepark... At least it has some rollercoasters, at least they showed them on the video. We'll see. I at least tried out the pool already, it's not even feeling cold for me. Not have met all the people yet that are rumoured to be around already, but I guess it might happen at lunch, which is expected soonish. Due to network not working though this blog post will have to wait until afterwards.

8 May 2006

Uwe Hermann: Vim 7 released!

A new major version of our favorite text editor vim [1] has been released! Yes, that's that awesome text-mode editor your geeky friends keep telling you about, the one that many people use since many years and still haven't explored more than 20% of its features [2]. I'm well aware that if you're a vim user you probably have already heard about it, but I'm blogging the news here one more time, just in case ;-) I think the most interesting new features for me will be tabs, omni-completion, and "browsing remote directories, zip and tar archives" from within vim (no need to fire up mc anymore). A more complete list of new features is available in the release announcement. [1] Emacs users are allowed to start flaming now...
[2] Now, this may sound like I'm talking about Emacs here, but I'm actually not ;-)

7 May 2006

Dirk Eddelbuettel: Dee Dee Bridgewater

A few weeks ago we went to see Dee Dee Bridgewater at the Jazz Showcase downtown. She performed material from her recent Grammy-nominated album J'ai deux amours covering, well, French material. The show was ok, but somewhat uninspired.

Next.

Previous.