Search Results: "zed"

24 March 2010

John Goerzen: Review: Travel as a Political Act by Rick Steves

Rick Steves is known for writing books, and producing public TV shows, about travel to Europe. He encourages people to get out of their comfort zone, advocates staying in homes instead of hotels, and giving yourself permission to struggle to communicate in a land of unfamiliar language. That way, you get to experience not just the landmarks, but the culture and history. That was the approach we favored in our recent trip to Europe, and after being there (and seeing tour groups), I think Rick Steves is right on. On the plane to Europe, I read his Travel as a Political Act. This is not a guidebook, but more a book about the philosophy of travel. As usual with my book reviews, unless indicated otherwise, all quotes here come from the book. He starts out with this statement:
I ve taught people how to travel. I focus mostly on the logistics: finding the right hotel, avoiding long lines But that s not why we travel. We travel to have enlightening experiences, to meet inspirational people, to be stimulated, to learn, and to grow. Travel has taught me the fun in having my cultural furniture rearranged and my ethnocentric self-assuredness walloped.
I read this book mostly on the plane to Hamburg, or the week prior to leaving. I can credit Rick Steves directly for encouraging me to strike up a conversation with a random German on the bus from Hamburg to L beck, which I ll discuss here in a couple of days. Probably the biggest lament from Rick Steves is that the people that really ought to travel the ones that are so sure that their ways are correct and best are least likely to do so.
Make a decision that on any trip you take, you ll make a point to be open to new experiences, seek options that get you out of your comfort zone, and be a cultural chameleon trying on new ways of looking at things and striving to become a temporary local. My best vacations have been both fun and intensely educational Travel challenges truths that we were raised thinking were self-evident and God-given. Leaving home, we learn that other people find different truths to be self-evident. We realize that it just makes sense to give everyone a little wiggle room.
The book is set with an introductory encouragement to travel, followed by seven vignettes of different countries he s visited, and descriptions of how it s impacted him. He gave a lesson of the opening of the German Reichstag (parliament building), which he was present for in 1999. He was surrounded by teary-eyed Germans and a few tourists so preoccupied with trivialities forgotten camera batteries, needing a Coke, the lack of air-conditioning that they were missing out on this once-in-a-lifetime opportunity to celebrate a great moment with the German people. He comments that we can learn from other countries that no one country has a monopoly on good ideas, and it is plenty patriotic to insist what we adopt good ideas (such as drug policy) from other countries and adopt them for our own. Particularly touching to me was the description and photo of a memorial in El Salvador, very much looking like the American Vietnam memorial except that one remembering loved ones lost fighting the United States. How many Americans even know that we were involved in a damaging war in El Salvador? A large part of his book was, for me, preaching to the choir, as this comment illustrated:
In the European view, America is trapped in an inescapable cycle to feed its military-industrial complex: As we bulk up our military, we look for opportunities to make use of it. (When your only tool is a hammer, you treat every problem like a nail.) And then, when we employ our military unwisely, we create more enemies which makes us feel the need to grow our military even more. If an American diplomat complained to his European counterpart, America is doing all the heavly lifting when it comes to military, the European might respond, Well, you seem to be enjoying it. We re building roads and bridges instead.
That s a sentiment I ve agreed with for quite some time already, and as such, some parts of the book moved slowly for me though I imagine his target audience included people that had never seriously considered these arguments before. Then there were surprising facts:
by the end of World War I, an estimated half of all the men in France between the ages of 15 and 30 were casualties. When some Americans, frustrated at France s reluctance to follow us into a war, call the French surrender monkeys, I believe it shows their ignorance of history.
And again, I d agree with him on that point. The vignette on Iran was particularly interesting, as he described his experiences in person, they sounded far different than the picture we often get in the media. I have realized, incidentally, that I am terrible at writing book reviews. So rather than inflict more paragraphs upon you with this one, I ll summarize by saying that this is a touching, informative, and motivational book, which I highly recommend. I ll leave you with this quote:
Mark Twain wrote, Travel is fatal to prejudice, bigotry, and narrow-mindedness. These wise words can be a reallying cry for all travelers once comfortably back home. When courageous leaders in our community combat small-mindedness and ignorance travelers can stand with them in solidarity.
I didn t travel to make some sort of statement or as a political act. But I was enriched in many ways by travel of course the obvious ones of contemplating the history of a 900-year-old beautiful church, but also in seeing the different character of different cities, being with two families for a couple of days, and seeing different approaches to common problems. I am very glad I wasn t shut off from this behind a tinted window in a tour bus.

22 March 2010

Christian Perrier: Amazing week in Khon Kaen for Thailand MiniDebconf

I'm now on my way back from The first miniDebCamp and miniDebconf that happened from March 13th to March 19th in Khon Kaen, Thailand. This even was organized locally by a team of very motivated Thai Debian enthusiasts and contributors, such as Theppitak Karoonboonyanan (*the* Thai DD), Neutron Soutmun, Kitt Tientanopajai, and all those whose name I'm not remembering as of now (I hope they won't mind). The even had kinda the structure of DebConfs, with a few days of "Debcamp" to begin. See the full schedule. We were hosted in Khon Kaen University (KKU), one one the most famous universities in Thailand, a small "town in town" in a city with a few hundred thousand inhabitants (dunno exactly). Lodging was done in a hotel located inside the university. Interestingly, the hotel was also hosting youg students participating to "Summer Camps" (apparently training systems to get good school results) gving to all this a very young atmosphere. The hacking lab and talks location was a 30-seat room in the university library, and meals were brought in there very efficiently, with the very specific way that Thai people have to transport each and every kind of meal (in small plastic bags closed by rubber). I arrived only in the 3rd day because I had commitments at home that made it impossible to me to come for the first day. During these days, people have been very busy hacking and participating to the Bug Squashing Party. During that BSP, about 50 bugs have been touched, without about 15 or so closed. Other non Thai attendees were Andrew Lee from TW, Paul Wise from AU, Daiki Ueno and Yukiharu Yabuki from JP. Organizers were expecting some attendees from neighbouring countries such as Laos, Vietnam or Cambodia. Unfortunately, none of them could come, including Anousak Soupavanh, leader of Lao free software localization efforts, who I was very impatient to meet. Transport difficulties, or visa problems, do not make things easy in that part of the world. On Wednesday we had a "DayTrip" as it is common for such event. We went abotu 50 km away from Khon Kaen, to visit a nice place, close to a dam lake, and climbed a hill surrounded by a big temple and a giant Buddha statue. Then we had a wonderful lunch in a fish restaurant in the very specific Thai way to share stuff: everything is on the table and you pick your food here and there, at you rconvenience. Of course, local advice before trying apparently innocent food is always worth it because the fire might be hidden anywhere (for instance in that soja plate which I tried and that set my mouth as a burning hell for 20 minutes). The journey ended by a visit of a great temple in Khon Kaen and, very noticeably by a dinner in a very popular barbecue restaurant in "all you can eat" style for...100Bath (so, about 2.5 euros). Maybe only vegetarian people had more trouble enjoying the meal as it was mostly made of various meat (and sea food). The talk days were very intense, at least in my opinion. Probably because I ended up giving four talks, some of them completely improvised (about IP-over-DNS, which I was using at the hotel and about which many wanted to learn a little bit more, and GPG keysigning processes). It turned out that the GPG talk was well received and, discussing with Paul later on, we agreed that such a talk, mostly meant to explain the DOs and DON'Ts For good GPG keys signing, could be a good idea even for Debconfs. There were also a few talks about local initiatives and efforts to develop (and not only promote) free software. We have no recordings of these talks as we were infortunately missing some video recording installation (maybe next time, Thep) just like the miniConf that was happening in Panama at about the same time was having. Due to local regulation on the university network, we had some limitations with Internet access (some firewalling that for instance was preventing SIP to work properly, which made a video-conference with a japanese user group fail, unfurtunately). The event ended in a round table discussion about ideas to organize something bigger in the future. The local community in Thailand has apparently the energy, maybe ressources and local support to be able to organize a slightly bigger event as first try (somethign like an Asian DebConf or something similar, targeting mostly Asian contributors and about 50-100 people. Thailand seems to be a good target to host such event, with many things being relatively inexpensive (and not only beer!). And they even think about possibly hosting a Debconf at some time in the future (actually, Martin Krafft should also be credited for bringing this idea). That isn't as crazy as it seems and, provided that potential organizers start involving themselves in the current Debconfs, everything seems to be possible. After all, if we look back to 2005, only one person (hello, Safir) was seriously thinking that Debconf could really happen in Bosnia and Herzegovina, right? After this week (followed by 2.5 days of sightseeing in Bangkok for me, plus a small meeting today with local Thai Linux corporate users and IT company owners), I feel like the mood in Asia about Debian development is high and full of potential. The miniconf last year in Taiwan was already a good success, by establishing a good connection between people.....we need to keep that alive and, hopefully, there will be other miniconfs in this part of the world. And, well, if I can be there, I'll be there.

19 March 2010

Julien Blache: pommed v1.32: maintenance release

I ve just released pommed v1.32, a minor maintenance release for the 12 PowerBook G4. I ve just realized that I did not post an announce for pommed v1.31 a while back, which was also a maintenance release, adding support for the MacBookPro5,4 (15 June 2009) and the latest wireless keyboard.

18 March 2010

Andrew Pollock: [life/americania] We've officially left our mark on the US

We received our US census form the other day. Sarah's already filled it out, but I wanted to look at it before we mailed it back, just out of curiosity. I'm astounded at how incredibly basic it is. Literally all it asks is name, age, date of birth and race. It's somewhat laughable how you're either "white", or one of a bazillion other racial ethnicities. They don't seem to be interested that I'm Australian. Or if I were a white Samoan, for example. I can only remember having filled out one Australian census since I moved out of home, which was the 2001 census. I missed the 2006 census since I was living in the US. The US census seems to be a 10 year affair, compared to Australia's 5 years. "Census night" was always a big deal in Australia. You were supposed to fill out the form on that particular date, for whoever was in that particular dwelling. So you really didn't want to be out visiting friends that night. The US census form claims to care about the state of affairs on April 1, but it also says to mail it back immediately. It seems to only care about "full-time residents", so the whole visitor problem doesn't seem to exist over here. Wikipedia tells me that the 2006 Australia Census had 60 questions, all compulsory, except for the questions about religion. I'm still gobsmacked by how small an amount of data the US tries to collect. I just quickly reviewed the 2001 Australia Census form, and I'm rather amazed at how many questions it asked. I remember there being a meme at the time of the 2001 census to put down "Jedi" as your religion, with the word on the street being that if enough people said that was their religion, it would become officially recognised as one.

13 March 2010

Joerg Jaspert: Vacation fun

As some people know, I had a vacation in February. Only very few knew that I was heading down to Taiwan. I was leaving Germany at the 8th and back here on the 24th of February. Yes, that neatly fit this years Chinese New Years parties. Was at home for four days (and at work for one), after which I went off to this years Cebit. Until the day I arrived in Taiwan it looked like we do not have a booth there, but then everything changed while I was having a nice vacation. I really have to thank Alex here. Cebit was actually my task, but he jumped in and did all the preparatory work that was needed right in the time I started my vacation. Without that either my vacation would have been much different and less nice or we wouldn t have had a booth. I am back home since some days now, without any travel plans for the next few weeks/months to come. Though I wish I had a job (and private life) that would allow me to just go off again, ie. something I could do everywhere where there is net. Meh. Of course I did take some pictures (more than 2500) and also some notes during the trip. And having a blog that one or two people read, I think I should bore you all with it. But hey, you can skip it if you want. :) Yes, I should really take some time and work a bit on the pictures I took. Right now I only selected around seven hundred which I show off to people (and to link to from here), but they are basically just copies. While some are great in itself, many can need a bit of work here and there (cut out unimportant, blurry, colors, the usual stuff). And I also prepared multiple shots for HDR processing or to make a panorama view from, but thats something that takes time and has to wait. Just for the record, I think that this, this and this are very nice ones.
This is a public version of this text, so names and also various events and days have been cut out. Yes, people who know those in my pictures will know names, but thats no reason to feed the evil $searchengine caches more with hits for their names. Flight down, 8 Feb. Flight down from Frankfurt, using KLM so it went via Amsterdam and Bangkok (short Transit stop) to Taipei. The days before we had lots of snow and cold and all that stuff which tends to get flights cancelled, but I was lucky, none of that for me. The only slightly annoying thing was in Taipei, where KLM demonstrated how much a Business class Priority luggage sign is worth for them sometimes. We came in half an hour before schedule, but then had to wait an hour for our luggage (while all of economy luggage passed by). I think the business class Priority sign actually meant Priority to wait . The food on the flight from AMS to BGK was good, having a No Lactose Meal actually tasting well. Can t remember what it was, but better than the fish I got from BGK to TPE. Catering from Thai Airways, they do not know anything besides Fish when preparing No lactose meal and then they also manage to prepare it in the most boring way possible. Sad thing, but happened four times now, all the times I had catering prepared by them. Other than those points, no trouble at all. Immigration was done in about 20 seconds, customs didn t want to look at me, just the asians in front and behind me, all fine. Met my Travel Companion outside and off we got. First to the Taipei Main Station, where we got some food. Some rice (with a bit of meat) and red sauce, together with a soup. And a glass of tea, but that had an oily surface. Umm. Guess the cup wasn t all that clean, we both skipped that. Then I tried to get money from an ATM. First had to find one that actually wants my european credit card. And then, as usual when I travel offroad, I managed to forget my pin. Bah. Well, found an HSBC somewhere that actually takes my Maestro card, so at some point I got money (a pretty helpful thing, that is).
Wednesday, 10 Feb. First night in a new Timezone which is 7 hours before my normal one. Makes my body think I should not be allowed to sleep much. So it only allowed me some two hours before I woke up again. It didn t listen to any argument and didn t care that it was all dark and night, so I couldn t sleep more. Wellwell, got up at the same time as $TC then, we got some breakfast, egg/ham sandwich and tea. From there I set off and juggled my way through Taipei MRT over to YuanShan Station.
Confucius Temple
It is good for a visit of the Confucius Temple and also the Dalongdong Baoan Temple which is right beside it. Later on I got told there are much more impressive Confucius temples elsewhere, but it is still a good place to start off. And it just means I have one more reason for another visit. After those two temples I moved over to the Taipei Fine Arts Museum. Took about an hour to go through that museum, which again made it pretty clear to me: Some people just have too much time and money. I do not even get the setup in the entry hall, even though it looks nice, and let s not start about the rest they show there. Definitely not my thing, Fine Arts , nothing worth to waste money on, at least for me.
Having fun
So I left there after just about an hour and fought the MRT again. This time it spit me out at the Taipei Zoo station and I went through that. Appearently the nice sunny weather let some animals have fun, and that all in public. Tssk. Won t someone please think of the children?! :) Otherwise it is a pretty big area with lots of animals. Not all of them seem to be in areas that (I think) are big enough for them, though I m no expert in that. But it looked small for them. Also, while I thought it pretty well visited, many people there, I bet for Taiwanese standards the zoo was nearly empty. At least looking at their preparations for queues, like in front of the koala house, they are used to deal with like 20 times the amount of people. I count me lucky that there haven t been that many, else I would have needed to wait everywhere, which I hate. Queues are bad, mmmmmkay? As I already mentioned, the weather that day was pretty nice. Mostly sunny, only few clouds and some 25 til 29 degrees. No rain. Now that s a nice winter day.
HotPot
Dinner was scheduled for 1800h, a Hot Pot session. 5 people in total. Appears you order the meat for the hot pots from the waiter and let them bring it, but all the additional stuff you get yourself. They have a big selection of vegetables, seafood, bread/cake like stuff and whatnot you can take. I first also went there and got a small dish with stuff. But stopped right then and let the Taiwanese do the rest. Better that way, they know it. And hey, we had been 5 and they got stuff for like 35 people. :) It was a nice 2 hour session, in which we had lots of different kinds of additions to the hotpot (two pots actually, one spicy and one not spicy). I know of some meats, some vegetables, but then there also was said to be duck bladder and some other organs which they couldn t (or didn t want to? :) ) name in english. Now, db sounds worse than it is, it doesn t have a special taste and is mostly boring, I think. Of course, not liking seafood, I skipped on that, but about all the rest was nice. I like Hot Pot :) After this session the other 3 left for various reasons and $TC and me had a nice walk around/through the University, before going back to $TCs place.
Thursday, 11 Feb Had another short night as I only got to bed around 2AM, just to get up around 9AM. Additional fun that my body again insisted in being elsewhere, not accustomed to the timezone in Taiwan yet, waking me up a few times during the night.
Fishermans Wharf
Got an easypass for the MRT as that is a little better than buying a chip for every single trip and battled with MRT again, finally emerging at Danshui station. Sat a bit at the beach eating breakfast before finally starting a walk out to the Fisherman s Wharf . It is some 4 kilometers to it, made out as a bicycle path, but I just walked. Visited Fort San Domingo on the way and then went all the way up in that Wharf area, another kilometer. Got me a nice peppermint ice tea, though it was a funny process to it. The salesperson didn t speak english and my chinese is - well, limited is a too soft word to describe it. But it worked pretty well, with us pointing around on the menu and then the salesman showing me various additions, if I would want them. Like showing a milk bottle Want milk in tea? , showing sugar,
Spongebob
At the bridge in that Wharf I was approached by some Asian people, asking me to take a picture of them in front of the bridge. Fine, did it, did it again in another setting and then, when done, they asked me where I am from. When I said Germany they thanked me in German which surprised me a little. :) That is something funny anyways. Wherever I go, people look. They aren t much used to someone my size. Kids are usually more direct with pointing, grinning and sometimes crossing my way on purpose, just saying hi (some kind of test of courage, I bet). Every now and then I also get asked if they can take a picture with me. Right now there are like 20 pictures of me (that I know of) all over Taiwan that I didn t take, nor have. :) Now, who here loves Spongebob? This is the country for you! The picture only shows one small table, you can find much much more. Same goes for Hello Kitty and other such stuff.
Food!
Dinner this day was initially planned to be at some place called Maokong, but then plans changed, as $TC and others that we should meet there needed to pack for the next day. So $TC and me just went to the Shilin Night Market. Right beside it is a big food plaza. Like a thousand square meters (or probably a few more, what do I know, I haven t measured it, but it wasn t all too big) having some hundred or more little kitchens where you can get a very broad mix of things. We had cold noodles with some slightly spicy sauce and then some fresh guava juice. Tasty tasty. Though noodles with chopsticks was something new, but it worked out well enough. Later I had a noodle soup, that was something more tricky, but in the end you just need to find the right trick.
Little crowded
After food we went through the night market. Well. Parts of it. It s big. And its crowded. About the most crowded place I ve been to. Heck, half of Taiwan was in that street area. :) Didn t buy anything. The only stuff I thought interesting was a T-Shirt with a Taiwan map on it, but do try getting some in my size. Ha. Small asians. They say they have big sizes, but then its XL only (or a totally ugly color, brrr). We finished early here, as the packing for the trip starting Friday right in the middle of the night still needed to be done, and getting up at 6AM you do not want to stay up too late. But it was nice there anyways.
Friday, 12 Feb Got up early. I mean, early. 6 AM. ARGS. Not really my favorite thing to do, but as our plan said we have to get the HighSpeedRail to Kaohsiung at 7:42AM there wasn t much else to do. Pretty nice train, lots of room to sit, even in second class. Don t know business, but probably even more. And it looks fast, if I can trust the display it had we where going near 300km/h. After arrival in Kaohsiung we went out to $TC s place to get our luggage away, as it is annoying to move around with all the stuff. I got another easypass here, this time a lent one from $TC s Mother. It s fun, there are two MRT systems in Taiwan using the same technics, basically the one in Kaohsiung is built like the one in Taipei, using the same style of RFID cards (and chips for single trips). But they made them incompatible. One can not use a pass from Taipei in Kaohsiung and vice versa, for whatever reason. It s not like the two cities are very far away from each other, it would actually make sense to be compatible, but that is probably what stops them doing it. We took this Friday and also the Saturday to get around Kaohsiung, visiting several places. As the MRT in Kaohsiung has a different station design at every of its stations we did look at some of those too. Especially Formosa Boulevard , a station that has two points describing it best:
one part of the dome of light
Right outside one of the exits is a funny little cosmetic surgery. I only remember it thanks to the english name of the Doc, but somehow I don t think it was chosen wisely: Dr. Luck . . Aiik, you need be lucky to get out there looking better? Dr. Unlucky might not be good for you taking a wrong cut? :) (Yes, I know, I m crazy, don t tell me. Ok, if you really want, queue up, you aren t the first.) At one point we went out to Sizihwan, where we walked to a ferry. Actually we tried renting bikes, but this little bike shop wasn t prepared for a small german like me, not having bikes my size. (And no safe way to get the saddle of the smaller ones into a height I could start using the bike). So walk it was, not nice bike trip. Still ok, got to the ferry, got over to the other side and had a nice walk there to the/along the coast.
one more temple
We bypassed multiple temples there, at one of which a great cite came up: Temples in Taiwan are something like 7-eleven. They are everywhere. I love it. And somehow it s true, you can find one around each other corner, a little like those churches in Puebla, Mexico. In the evening we had been out for a night market. The first one was pretty boring. While having been announced in the MRT station near it to be a night market for New Years things, we found it to be about empty and very boring, so we went over to another one nearby. Wasn t as crowded as the Shilin one, and not as large, but nice. At the end of it had been a small game stand, where one could shoot balloons to get some price. I ended up getting the biggest available, as this isn t really a challenge. How anyone can miss hitting a balloon there I don t know. They are only like 3m away, not moving, you have clear view, and if you really need it even get a laser pointer on your gun. Anyways, was fun enough, I repeated shooting enough times to get the biggest available Patrick doll they had (a meter). Hrhr. Who likes Spongebob, eh? Speak up! :) I got a few nice shots of the night skyline of Kaohsiung late one of those evenings, where we went to the Dream Mall and up into the big wheel . Also had some game spots there, but turns out I m not as good throwing things at a target than I am shooting at them. We also went out to a historical sugar refinery, looking around. Of course, this being Chinese New Years eve, there haven t been that much people moving around, it was pretty empty. And the people working there all just waiting for their shift to end. But still got some pretty nice pictures from and around it. Also tasted a new kind of icecream (new for me that is), which actually has a kind of sand like feel. I like it. Like I actually liked most of the food, pretty much all the time. Of course everyone has things one does not like, but in general the food is great. Especially the largely different style compared to the european way of cooking. I ate lots of things I won t ever touch here in Germany.
Sunday, 14 Feb; Monday 15 Feb A nice two days some way out of Kaohsiung. Found out I am pretty good at losing various things: I got a bag full of (Li n w ; Syzygium samarangense; wax apple, love apple, java apple, bellfruit, see the wikipedia page for more on it) and about an hour later I totally had lost track where it ended up. The same happened with a big bag of tissues I had bought. Somehow both of the bags got feet and ended up elsewhere without telling me.
ocean place
That one evening we went out for Dinner, a big party of people. Was a place right beside the ocean, so yes, seafood. Oh yay, I don t like that too much. Happy enough there must have been a conversation going on like Hey people, this silly german doesn t like seafood much, lets get one other option too . So we had a plate with some cold chicken on. But I tried various of the seafood dishes too and liked some of them. Actually some I had tried in Germany at some point where I learned to hate them and now I liked them as I got them in Taiwan. People also seemed to think I am good at using chopsticks, though I think I am just fiddling around and be lucky when I get my stuff. But maybe it just means Hey, it looks funny what you are doing. Keep going, we like to laugh. :) ). We actually had been around this place a little earlier that day, taking a walk around it, drinking some tea, that type of thing. And got a set of nice bottles of fresh coconut juice. My first time i got it fresh, I think. But I also managed to lose track of it. I bet somewhere there is a party consisting of tissues, (Li n w ) and a bottle of coconut juice, singing classic songs like Strike, we escaped the german Lunch the other day happened to be a big family meetup. Lots of people, lots of chatting, lots of fun (I think :) ). When we arrived it started out by about all of them trying to get me to sit down somewhere. And me bad impolite german not wanting to. But there was no way to escape, so finally they won and I sat, with a number of people around me, trying to chat with me. Which is actually hard work for both sides, but every now and then gets a good laugh. But my chinese is far far away from being useful for even a small meaningful sentence, so they had to activate their english knowledge, especially for the times $TC had been elsewhere and couldn t help out translating. Somehow the job got done, they asked their questions and I hope they mostly understood my replies. Bad me, speaking too fast english sometimes. We had a nice lunch there, with the most notable part being the way I got called to it. It s interesting how much you can say by just using body language and pointing. (Oh, of course food was very good too, but that fact is one you can take as a given, even if I don t mention it again). Later on a dice game started, and after a short explanation of the rules I joined in. Took only a little, but then I got the rules, its easy. I didn t get any of the chatting that happened during the whole game, but it was very much fun and really insane (so would also fit DebConf very well) and nearly no times you do need words to understand what is going on. I like this game and they gave me a set of dices, so I can train it and come back to play again. Ha. A bit after that dice game people unpacked some of the sweets I brought from Germany. One of them being spicy. Really nicely spicy, at least for the average Taiwanese. If you happen to have been at DebConf9 and also had the luck to be one of those I offered some chocolate or wine gum to, you know what I write about. The stuff here was slightly less spicy, but still more than enough to leave a nice impression. They had lots of - well - fun trying them out, gave a good set of laughter. And ordered more for next time. Uhoh, I already know which I will take with me, but then there have to be special preparations before testing. :) I ve also got invited to come back next year. Might be I haven t made the worst impression. Well, lets see if I can take this up and if they still want me in a years time. At least my chinese should be much better by then, given another year of training. (Even if I find it actually hard to learn. For some reason its not easy for me to memorize language things, at least not chinese. Oh my, one year, I should have some 3 words more, I hope :) ). In the evening, back in Kaohsiung, $TC also told me rules of a second dice game that I had seen some people playing. Also seems like fun if played with enough people.
Tuesday, 16th Feb
35mins delay
We started the trip by taking the train from Kaohsiung to Taitung. We had been a little late for it, had to run from the MRT to the train station. Silly me took that as an opportunity to fall down a set of stairs. Only to discover, when getting to the platform, that the Taiwan Railway wanted to give me a feeling of home, delaying the train. First by 31 minutes, later it got up to 43 minutes. Somehow felt like Deutsche Bahn, being late is also their best quality. When the train finally got in we saw that we had been lucky to have seats reserved, this train was full, lots of people moving around within Taiwan that day. We got to Taitung all fine and had the Hotel send someone to pick us up at the train station, as it is a long way from the train station over to the Hotel. Got our room and left it pretty soon again to look around.
Hello Kitty
Spotted a funny little Hello Kitty car and got some food for lunch followed by a walk along the beach. Found some sculptures made of wood, where one of it seems to have some bad stomach problems
Wooden figure with stomach problems
Later on we had a nice and long walk through Taitung Forest Park. Took some time, got some nice pictures. It was getting dark when we got back into town, time for Dinner already. Yay, food. Next day a train trip to Hualien was set, but only for the afternoon, so we had time to look around. We first went through the Peinan Cultural Park, but unfortunately
Park your dog
we had no dog to park there. After that we rented a scooter to get a little farther away from the train station. After getting some fuel for it we headed to National Museum of Prehistory (which was much more interesting than the Fine Arts one earlier) and later on just drove around some time. Just looking around, without a clear direction, simply for the look around. Was fun, but too short actually. But we had to head back at some point to catch our train over to Hualien. In Hualien we again got a Taxi to the Hotel. We left that soon after arriving, Hotel rooms are boring, and it was food time again anyways. Only a little annoying, one of the few days we had rain and I can imagine something nicer than rain when I am outside. But somehow this damn weather doesn t bother to stop raining when I go out.
Thursday, 18th Feb A full day stay in Hualien, no Hotel change. Just a trip over to the Taroko Gorge.
Taroko Gorge
Which is a very nice and impressive place to visit, sure too much for a single day, I definitely have to come back here. (Well, I have to come back for multiple other reasons, but this sure is one). We took the bus to the first stop in that park, somewhere around the Leader Village Taroko. Probably a nice place for a night or ten.
Nice place?
There was a short trail we followed, getting some more pictures and impressions, but it didn t take us long until we where back in a queue for a bus, this one going all the way up to the furthest away spot a bus goes to. There we had some lunch before we wanted to start walking around. Unfortunately (for my nose) we then passed by a place selling Stinking Tofu . Other customers there said that this is not the best available, but I got a taste of it. Don t really need that version more often, even though its not as bad as it smells or the name suggests. We walked a little there and I got some more pictures before we set off to climb the stairs to the Hsiang-Te Temple of Taroko .
Hsiang-Te Temple of Taroko
Looking down from there we saw a lot of buses which was our sign to get back to the bus station, as the last bus was scheduled to get off somewhere at 3 in the afternoon. And as we didn t have a Hotel place here it is pretty helpful to catch the bus. So we queued up once more and had a bus ride back to the train station. Next time there should definitely be a night or more in some Hotel somewhere there. On the way back we took a slight detour, having another time at the beach, not enjoying the weather which insisted on a little rain and lots of wind.
Friday, 19th Feb This day saw us moving to Luodong, another place with a day of rain. Still, my gps log tells me we where moving around a lot, even though I do not have a single picture from the whole day. And as pictures are the main source of my memory ups. Well, I remember the rain, of course. I also remember that I got a steak at some place and that we bought various kinds of food (and tea and juice! :) ) on one of those markets, eating it in our Hotel room. (Rain is bad, mmmmmmmkay?!). And there was some kind of park too, in which I got a funny little game. Oh well.
Saturday, 20th Feb
Way to go
There is nothing nicer than starting a day with a fun bus trip in the morning. Going high up into the mountains. On a day where the clouds reach down to some level underground, more or less. Using very narrow streets and the usual mountain like narrow curves. While not being able to see far. We got up to Taipingshan all fine but once there we had to wait for our room to be ready. So we took a walk around. Actually not a walk. More a climb. Being a mountain place, and those mountains never having heard of those nice invention called elevator or that other named escalator, people setup stairs. Millions of them.
atmosphere
Besides the stairs it is a very nice place to walk around. We took various of the trails through the area and besides me sometimes nearly falling down (damn slippery grounds) it was great. At some point in the afternoon we got our room and also ate some instant noodles before taking another trail, one that took us some 2 hours. You should really take a look at all the pictures I took, as the few I link directly sure do not present this area right. Taipingshan starts at Picture 434 and continues up to Picture 634, but a good number of them is from the second day too.
Sunday, 21st Feb Contrary to the day before there wasn t a single cloud to spot. Ok, ok, there have been some, pictures proof it, but it was a nice sunny day. Nice start of the end of the trip through Taiwan (still one and a half day in Taipei to follow, but the trip around country is over). Of course that meant taking a lot of pictures again,
a sunny morning
and soon after breakfast we took the BongBong Train over over to the Maosing station. There are again a few prepared trails, most of which we took. We only skipped on the one going to the waterfalls, as it wouldn t have fit into our schedule. Got compensated with a pretty adventurous track with lots of nice sights following the old train tracks. Thanks to a number of landslides there is no train going anymore and thus it is a nice way to walk.
rails
It is a 1500m long walk and sometimes you really have to be careful, but it provides many great views and is a really nice trail. Got a few hundred pictures, yay. Including a proof I ve really been there. I hate pictures with me, really, they are just shit by default (maybe I shouldn t be in them?), but in total I got 11 pictures that proof I was really there and not only sent a camera (four of those are included in that gallery I always link to). We got back to the main place around noon and after Lunch we took the Bus back down to Ylan. The bus was scheduled to go at 15:30h, so we went to it fifteen minutes earlier. While we had a sunny day, clouds had started coming in at 15:00h, and at the time the bus started it was all white and there wasn t much too see for the driver again.
me was there
But it turned out that this makes no difference. The driver must have a very prominent wish to die while taking his passengers with him. Or he is insane. Or has a very important appointment somewhere else. Whatever it is, he drove down, on narrow streets, very tight curves, not too much sight and all that with a speed thats incredible. Several times a part of our bus was out over the abyss. I found it pretty fun and all that, especially as it made for a set of very nice views all over the area, and appearently another passenger thought similar, but $TC did have quite the opposite of thoughts and did not feel all that great. We arrived in Ylan one hour before schedule, which, on a 70km trip through mountain area should give a hint how it was. Took a minute off to regenerate and then we wanted to look around a bit. Having our luggage with us that is annoying so we tried to leave that at the train stations baggage service counter. Turns out the personell there is a bunch of crackmonkeys not following their own advertised opening times. Probably wanted to go home early, those lazy dolts. Fortunately the people at the ticket counter were better and exchanged our tickets and we took the Train back to Taipei a little earlier than initially planned.
Monday, 22nd Feb Bad day for all those people who had a nice vacation during Chinese New Year, they had to get back to work. I didn t have that problem and so went around Taipei a bit. Initially I had plans of going to some tourist spots, like the National Palace Museum or others, but then just skipped them all and just took a walk through various spots of Taipei. Basically just Get out of MRT station XY, walk around . The GPS track later told me that I actually covered about 15 km that way, and my feet agreed to that. At some point I did bypass a German Cuisine restaurant, called Zum Fass . Don t ask me how the food is there, I wasn t in, but still had to grin a little when reading the menu. In the evening we went out to get me some Tea to bring back to Germany. Well, some is some kind of understatement, it was lots, as much as I could pack. But good stuff, some of it is steaming right now right besides the keyboard here. Yummy.
Tuesday, 23rd Feb
lantern
As always, the worst day of any vacation. The day you have to leave and go back home. My flight was scheduled for 20:00h, so I took another half a day just looking around Taipei. Which made me even more jealous of those not having to get away, as I happened to pass by some preparations for the Lantern festival. Which happened only a few days after I got away. Next year I have to plan better and stay longer, what I saw on preparations, and that only at the Sun Yat-sen Memorial Hall definitely makes it worth it. Timing in the afternoon was very tight, I actually got the last bus that was in time for my flight. Just one later would have created some trouble, my total time on the airport was something around 30 minutes before boarding started. Just enough to get the minimum needed amount of postcards written and off to boarding. The flight back was boring. Food from TPE to BGK was a pretty good variation on No lactose , some noodles with stuff. Of course from BGK over to AMS it was fish again, same boring Thai Catering as usual. I was unable to sleep well on the flight. Somehow I woke up very often despite earplugs and eye mask. With all that I turned out to be half asleep when we arrived in Amsterdam and so I accidently took an opened half litre bottle of water with me through security. Funny, they didn t spot it. Instead they decided to make a big fuss about my camera bag, asking me in detail what I have in there, supposedly trying to check if I know what I carry. And made an even bigger show of scanning it again. And that bad liquid that those idiotic stupid laws written by brainless monkeys from our governments forbid got no notice at all. Imagine what I could have done to air safety with it! Oh my. Back in Germany my luggage got out first, so no waiting at all. I passed by work to leave some weight there (Hello boss, want some tea?) and went back home. This was also my first trip where I had a noticable jetlag after coming back. For nearly a week my damn body insisted on being in Taiwans timezone, waking me up at times I should sleep, feeling tired when I should be awake. Tssk. Conclusion of this trip: I will be back in Taiwan for sure. I don t care if you take this as a promise or threat, but I will be back! :)

Bernd Zeimetz: assimilated

At the Chemnitzer Linux Tage the fedora project was assimilated by the Debian project as fedora realized that rpm is crap ;)

Bernd Zeimetz: language based rewrites with lighttpd and mod magnet

lighttpd is web server with a fast growing user base. This howto shows how redirects can be done based on the language of the user's browser. While migrating http://blog.credativ.com from Wordpress to Movable Type we decided to show the blog's welcome message in English or German depending on the language setting of the user's browser. Since one of the reasons for the switch to the new blog engine was that Movable Type creates static html pages we avoided cgi scripts or similar workarounds. As we are using Lighttpd to serve all pages, the use of the mighty mod_magnet module was obviously the way to go for this task. It allows to control the request handling within Lighttpd by running Lua scripts which are allowed to modify most aspects of the way how a request is handled. So now http://blog.credativ.com/ is rewritten to the file with the proper language by using the help of the following Lua snippet:
lighty.env["uri.path"] = "/en/index.html"
lang = lighty.request['Accept-Language']
if (lang) then
        if (string.sub(lang,1,2) == 'de') then
                lighty.env["uri.path"] = "/de/index.html"
        end
end
lighty.env["physical.rel-path"] = lighty.env["uri.path"]
lighty.env["physical.path"] = lighty.env["physical.doc-root"] .. lighty.env["physical.rel-path"]
Of course, the Lighttpd configuration must include mod_magnet. To actually rewrite any request to "/" the configuration must also include the following snippet:
$HTTP["url"] =~ "^/$"  
    magnet.attract-physical-path-to = ( "/path/to/your/script.lua" )
 
mod_magnet caches the compiled script and executes it within the core of Lighttpd so it shouldn't introduce any noticeable delay in the delivery of your webpages.

12 March 2010

Matt Brubeck: Discovering Urbit: Functional programming from scratch

C. Guy Yarvin is a good friend of Mencius Moldbug, a pseudonymous blogger known for iconoclastic novella-length essays on politics and history (and occasionally computer science). Guy recently published under his own name a novel project in language and systems design. His own writing about his work is entertaining but verbose (as Moldbug's readers might expect), so I will attempt to summarize it here. Nock, Urbit, Watt First there is Nock, a tool for defining higher-level languages comparable to the lambda calculus, but meant as foundational system software rather than foundational meta mathe matics. Its primitives include positive integers with equality and increment operators, cons cells with car/cdr/cadr/etc., and a macro for convenient branching. Nock uses trees of integers to represent both code and data. Next, Guy provides the rationale for Nock. In short, he asks how a planet-wide computing infrastructure (OS, networking, and languages) would look if designed from first priniciples for robustness and interoperability. The answer he proposes is Urbit: a URI-like name space distributed globally via content-centric networking, with a feudal structure for top-level names and cryptographic identities. Urbit is a static functional name space: it is both referentially transparent and monotonic (a name, once bound to a value, cannot be un- or re-bound). Why does this require a new formal logic and a new programming language? In Urbit, all data and code are distributed via the global namespace. For interoperability, the code must have a standard format. Nock's minimal spec is meant to be an un ambiguous, unchanging, totally standardized basis for computation in Urbit. Above it will be Watt, a self-hosting language that compiles to Nock. Urbit itself will be implemented in Watt, so Nock and Watt are designed to treat data as code using metacircular evaluation. The code A prototype implementation of Watt is on GitHub. It is not yet self-hosting; the current compiler is written in C. Watt is a functional language with static types called molds and a mechanism for explicit lazy evaluation. (I was suprised to find I had accidentally created an in com patible lazy dialect of Nock despite its goal of unambiguous semantics just by implementing it in Haskell.) The code is not fully documented, but the repository contains draft specs for both Watt and Urbit. Beware: the syntax and terminology are a bit unconventional. Guy has offered a few exercises to help get started with Nock and Watt:
The Nock challenge:
Write a decrement operator in Nock, and an interpreter that can evaluate it.
Basic Watt:
Write an integer square root function in Watt.
Advanced Watt:
How would you write a function that tests whether molds A and B are orthogonal (no noun is in both A and B)? Or compatible (any noun in A is also in B)? Are these functions NP-complete? If so, how might one work around this in practice?
If you want to learn more, start with these problems. You can email your solutions to Guy. Will it work? I find Urbit intellectually appealing; it is a simple and clean architecture that could potentially replace a lot of complex system software. But can we get there from here? Guy imagines Urbit as the product of an ages-old Martian civilization:
Since Earth code is fifty years old, and Martian code is fifty million years old, Martian code has been evolving into a big ball of mud for a million times longer than Earth software. (And two million times longer than Windows.) Therefore, at some point in Martian history, some abject fsck of a Martian code-monkey must have said: fsck this entire fscking ball of mud. For lo, its defects cannot be summarized; for they exceed the global supply of bullet points; for numerous as the fishes in the sea, like the fishes in the sea they fsck, making more little fscking fishes. For lo, it is fscked, and a big ball of mud. And there is only one thing to do with it: obliterate the trunk, fire the developers, and hire a whole new fscking army of Martian code-monkeys to rewrite the entire fscking thing. This is the crucial inference we can draw about Mars: since the Martians had 50 million years to try, in the end they must have succeeded. The result: Martian code, as we know it today. Not enormous and horrible tiny and diamond-perfect. Moreover, because it is tiny and diamond-perfect, it is perfectly stable and never changes or decays. It neither is a big ball of mud, nor tends to become one. It has achieved its final, permanent and excellent state.
Do Earthlings have the will to throw out the whole ball of mud and start from scratch? I doubt it. We can build Urbit but no one will come, unless it solves some problem radically better than current software. Moldbug thinks feudalism will produce better online reputation, but feudal reputation does not require feudal identity; it is not that much harder to build Moldbug's reputation system on Earth than on Mars. I still have not figured out the killer app that will get early adopters to switch to Urbit.

11 March 2010

Sam Hartman: Kerberos 1.8: Anonymous and the Cloud

The Kerberos team recently released Kerberos 5 1.8. This is the first of a couple of posts talking about features in the new release and how they significantly enhance what you can do with Kerberos. Before I get to that though, I d like to wax excited for a moment on the development process. There is much more of a community actively involved in the development process. As with the last release, MIT, Painless Security and PADL Software made contributions along with a number of others.. However the biggest change is the number of parties actively working with each other on designs, design reviews, testing and debugging. There was also a lot more real-time collaboration. It was great to see people from Sun, Debian and Redhat all actively bringing their prospectives to the discussion. My thanks to the Kerberos Consortium for pulling everyone together and for livening up the development process. Kerberos 1.8 testing releases are already available in Debian Squeeze and Ubuntu Lucid. I will be updating Debian to the final release soon, but everything discussed here should already work in both Debian and Ubuntu. I don t know about the state of other distributions, although given how heavily Redhat was involved in the process, I m sure they have 1.8 internally. One of the frustrating problems with previous versions of Kerberos was the need to key hosts before they could run Kerberized services. An administrator needed to set up a keytab and securely get it on the machine. That creates problems for automated installs of services, virtual services in the cloud, and environments where people installing servers are not the same as those running the Kerberos realm. Kerberos 1.8 still requires servers be keyed, but the need for the administrator is removed. Anonymous Kerberos provides a way for a machine to authenticate to Kerberos without an existing account. That page shows how the Kerberos administration server can be configured to permit machines to create their own keytabs. Anonymous Kerberos does require pkinit be configured and that the client know the public key of the KDC. However it is easy to build the KDC public key into an auto installer image or place it onto a USB key. I think it would be really neat to build a Debian image for Amazon EC2 that would show how easy it is to boot a virtual machine, have it register itself with a Kerberos realm, use something like remctl to request a work load and then begin serving that work load. The work load could include both clients for distributed computation or even services provided to the world, all secured by Kerberos with automatic bootstrapping. I don t know if I ll have time to put this together, but if someone were interested in helping or paying for the work it would be much more likely to happen. I believe the links above are enough that you should be able to get Anonymous Kerberos working and minimally configured. If not, feel free to send questions; I ll focus more on updating the public instructions than on providing individual help, but I m definitely interested in making this easy to use.

10 March 2010

Peter Eisentraut: Looking for Free Hosting

I'm looking for a way to do free hosting. But I mean free as in freedom, not free as in beer. Let me explain.

When I'm using a piece of free and open-source software such as OpenOffice.org, Evolution, or anything else, I have certain possibilities, freedoms if you will, of interacting with the software beyond just consuming it. I can look at the source code to study how it works. I can rebuild it to have a higher degree of confidence that I'm actually running that code. I can fix a bug or create an enhancement. I can send the patch upstream and wait for the next release, or in important cases I can create a local build. With the emerge of new project hosting sites such as GitHub, it's getting even easier to share one's modifications so others can use them. And so on.

As a lot of software moves to the web, how will this work in the future? There are those that say that it won't, and that it will be a big problem, and that's why you shouldn't use such services. Which is what probably a lot of free-software conscious users are doing right now. But I think that in the longer run, resisting isn't going to win over the masses to free software.

First of all, of course, the software would need to be written. So a free web office suite, a free web mail suite that matches the capabilities of the leading nonfree provider, and so on. We have good starts with Identi.ca and OpenStreetMap, for example, but we'd need a lot more. Then you throw it on a machine, and people can use it. Now as a user of this service, how do I get the source code? Of course you could offer a tarball for download, and that is the approach that the AGPL license takes. One problem with that is, if you are used to apt-get source or something similar for getting the source, everyone putting a tarball on their web site in a different place isn't going to make you happy. A standardized packaging-type thing ought to be wrapped around that. Another problem is that even if you trust the site's operator that that's the source code that's actually running on your site (even without malice, it could for example be outdated against the deployed version), it probably won't contain the local configuration files and setup scripts that would allow me to duplicate the service. And if I just want to study how the program is running in actuality, there is not much I can do.

Giving everyone SSH access to the box is probably not a good idea, and won't really solve all the issues anyway. In the future, when virtualization is standardized, ubiquitous, and awesome, one might imagine that a packaging of a web service won't be "put these files on the file system and reload a daemon" but instead "put these files and this configuration on that machine and activate it". This might give rise to a new generation of Linux "distributors". Getting the source tarball or "source package" might then involve getting a snapshot of that image, which you can examine, modify, and redeploy elsewhere. That could work for OpenStreetMap, for example, modulo the space and time required for their massive database. (But you might chose to fork only the code, not the data.) But it won't be easy to do the right thing in many cases, because with a web service, there is usually other people's data on the machine as well, which would need to be masked out or something. Maybe this really can't be done correctly, and the future will be more distributed, like in the way Jabber attempted to supplant centralized services such as ICQ. Distributed web mail makes sense, distributed OpenStreetMap perhaps less so.

Ideas anyone? Does anyone perhaps have experiences with running a web service that attempts to give users the freedoms and practical benefits that are usually associated with locally installed software?

Biella Coleman: A Cultural Alibi of Sorts

There is an interesting conversation over at about the nature of peer production, and crowd based production over at PBS. Thankfully folks right off the bat noted that the types of activities they are addressing that range from 4chan to open source are so freaken distinct that perhaps it is not all that useful to use one moniker for them. The comments I am most fascinated by are danah s who notes:
We assume that the collective voice will be populist and, more importantly, that it will reflect the diversity of the populous. Yet, as we ve seen time and time again, certain values and attitudes and voices are over-represented in crowd-sourced activities. Who is looking out for those who aren t represented? In what ways are we reinforcing structural inequalities? What are the implications of this?
And then Clay s response:
So, to re-ask your question in a non-rhetorical way, under what
circumstances would we want to make the population of Deviant Art,
say, less white, or Linux less male, and if we wanted to do so, what
would need to happen?
What I find interesting about this discussion (and will be talking about this topic here, next week) is there not enough recognition of two related things: 1) the efforts are there (more on this soon) 2) that perhaps hacking and F/OSS in particular are not fully accessible to all and everyone because they are full-fledged, full-bodied, cultural worlds and all cultural worlds are to some degree not fully accessible and transparent for there are built on particularities, often invisible and unarticulated, forms of value. That is, just as some norms and values of Indo-Guyanese to take one random example, are not of my world, so too is hacking partially inaccessible for the fact that it is culturally configured. But I am starting to suspect that the culture-ness of these domains are often overlooked because they are overwhelmingly white, male, and chock full of computers (and so economically lucrative). All three, I suspect are (incorrectly) seen as lacking culture, as domains of rationality. (I stand rightly corrected and also forget this very fact, though I know it well from all the Brazil/Latin America Debconfs, as this diversity gets a bit lost from a pure US-European perspective, which I was assuming). Other historical factors have also produced certain distortions that don t allow us to see (easily at least) these worlds as culture-full. First is the fact that so many folks outside of this world lobbed onto F/OSS for being radical (and this is partially right in so far as its challenge to intellectual property can be seen as radical). But the portrayal or mere suggestion of these worlds as uber-democratic and populist, made people expect these groups to behave as radical egalitarian collectives. For the most part, they don t and yet never portrayed their own politics and forms of organization as such (openness comes in the form of code and technical merit). But this vision stuck and when some folks realized that larger projects, for example are very organized (which many people addressed only very late), have hierarchies (which are flexible and also allow them to function, which is I think is a good thing), and are not as diverse, there was deep disappointment that they did not conform to the sense that there was something extremely radical going on as opposed to a cultural group really into producing free software. But if I am offering a cultural alibi of sorts in which barriers to participation are to some degree a function of culture, one of the great things about the norms, values, ideas that compose culture is that there are dynamic and changing. They are alive and historical. They are pushed and pulled upon by insiders and outsiders based on wider social values. And there is an answer to these questions about diversity for there has been a dramatic, noticeable, and noteworthy push within this world, one that really started to coalesce I would say in the last year or so, to address these issues and it ranges from Python s mammoth efforts at addressing diversity (and I have been told that there was a great speech on the topic at Pycon recently), the geek feminism wiki, and smaller but increasingly common efforts such as Libre Planet s women s caucus and their funding of women to participate. So while I do think that culture goes at least part of the way to explain why these worlds are not fully open for culture limits this very domain has grown dissatisfied with its representational make-up and are leading some efforts for cultural change.

Biella Coleman: A Cultural Alibi of Sorts

There is an interesting conversation over at about the nature of peer production, and crowd based production over at PBS. Thankfully folks right off the bat noted that the types of activities they are addressing that range from 4chan to open source are so freaken distinct that perhaps it is not all that useful to use one moniker for them. The comments I am most fascinated by are danah s who notes:
We assume that the collective voice will be populist and, more importantly, that it will reflect the diversity of the populous. Yet, as we ve seen time and time again, certain values and attitudes and voices are over-represented in crowd-sourced activities. Who is looking out for those who aren t represented? In what ways are we reinforcing structural inequalities? What are the implications of this?
And then Clay s response:
So, to re-ask your question in a non-rhetorical way, under what
circumstances would we want to make the population of Deviant Art,
say, less white, or Linux less male, and if we wanted to do so, what
would need to happen?
What I find interesting about this discussion (and will be talking about this topic here, next week) is there not enough recognition of two related things: 1) the efforts are there (more on this soon) 2) that perhaps hacking and F/OSS in particular are not fully accessible to all and everyone because they are full-fledged, full-bodied, cultural worlds and all cultural worlds are to some degree not fully accessible and transparent for there are built on particularities, often invisible and unarticulated, forms of value. That is, just as some norms and values of Indo-Guyanese to take one random example, are not of my world, so too is hacking partially inaccessible for the fact that it is culturally configured. But I am starting to suspect that the culture-ness of these domains are often overlooked because they are overwhelmingly white, male, and chock full of computers (and so economically lucrative). All three, I suspect are (incorrectly) seen as lacking culture, as domains of rationality. (I stand rightly corrected and also forget this very fact, though I know it well from all the Brazil/Latin America Debconfs, as this diversity gets a bit lost from a pure US-European perspective, which I was assuming). Other historical factors have also produced certain distortions that don t allow us to see (easily at least) these worlds as culture-full. First is the fact that so many folks outside of this world lobbed onto F/OSS for being radical (and this is partially right in so far as its challenge to intellectual property can be seen as radical). But the portrayal or mere suggestion of these worlds as uber-democratic and populist, made people expect these groups to behave as radical egalitarian collectives. For the most part, they don t and yet never portrayed their own politics and forms of organization as such (openness comes in the form of code and technical merit). But this vision stuck and when some folks realized that larger projects, for example are very organized (which many people addressed only very late), have hierarchies (which are flexible and also allow them to function, which is I think is a good thing), and are not as diverse, there was deep disappointment that they did not conform to the sense that there was something extremely radical going on as opposed to a cultural group really into producing free software. But if I am offering a cultural alibi of sorts in which barriers to participation are to some degree a function of culture, one of the great things about the norms, values, ideas that compose culture is that there are dynamic and changing. They are alive and historical. They are pushed and pulled upon by insiders and outsiders based on wider social values. And there is an answer to these questions about diversity for there has been a dramatic, noticeable, and noteworthy push within this world, one that really started to coalesce I would say in the last year or so, to address these issues and it ranges from Python s mammoth efforts at addressing diversity (and I have been told that there was a great speech on the topic at Pycon recently), the geek feminism wiki, and smaller but increasingly common efforts such as Libre Planet s women s caucus and their funding of women to participate. So while I do think that culture goes at least part of the way to explain why these worlds are not fully open for culture limits this very domain has grown dissatisfied with its representational make-up and are leading some efforts for cultural change.

8 March 2010

Nicolas Valc rcel: Ubuntu awesome tools

Last week I was having a conversation with a friend, and while we were discussing some things I mentioned some Ubuntu tools that were completely natural for me since I use them every day in Ubuntu development and for my work, but he was completely amazed by them, so I decided to blog on the subject so more people can know about them. I m going to start with the one that impressed him the most: qa-regression-testing branch The QA and security team maintain a test suite to check for regressions in packages they are updating. These tests are written with python unittest. Most of this test suite can be a little harmful for a production system, so it s recommended to run it using a chroot environment or a virtual machine and to help with that there is a make-test-tarball script. From the script:
export HOSTS= sec-intrepid-amd64 sec-hardy-amd64 sec-dapper-amd64
export TEST=test-glibc-security
./make-test-tarball $TEST.py
for i in $HOSTS; do
scp /tmp/qrt-$TEST.tar.gz $i.local:
done
for i in $HOSTS; do
ssh -t $i.local hostname; rm -rf qrt-$TEST; tar zxf qrt-$TEST.tar.gz; cd qrt-$TEST && ./$TEST.py -v
done
As you can imagine HOSTS are the hostnames of the virtual machines where the tests are going to run. Writing those test isn t rocket science, you just need a little knowledge of the package and the functionality you want to test and python unittesting, there is even a skeleton script that can help you start writing your test. Hope this information is useful for you! And as usual, patches are welcome!

Marco Túlio Gontijo e Silva: Micro BSP

I and Rafael Cunha de Almeida got together today with the purpose of closing as much RC-bugs in Debian as we could. I must say it was better than what I d expect. We started with #570348 . This bug was introduce with an upload that tried to fix #569586 which, in turn, was related to a change in libc6. It would be easy to introduce an ifdef in the code but, as we tried to read and understand the code, we didn t see the need of the function that was causing the problem. It seems to make the same thing as alphasort from dirent.h, with the disadavantage that it was not locale-sensitive. So we removed the customized alphasort and made it use the library one. Then we headed to the strange #504947. As the maintainer didn t seem satisfied with the new patch system introduced by the last NMU, we simply made a patch that removes the patch system and applies the patch directly in .diff.gz. Hope it helps. Searching for another thing to work, we noticed that #571791 was not happening in my box, and asked if anyone could reproduce it. So we found #571748. The first thing about this bug we noticed is that its package causes a division by 0 error in popcon, which made us report a bug about it. We thought that this was a sign that the package was not widely used. Anyway, we decided to fix this bug, which was very fun indeed! After a lot of trials, some succesful, some not, we got to a very simple and nice patch, which was submitted. We also submited other bugs to the same package, that we found while using it. It s a cool package, you should try it out to avoid that division by 0 in popcon.

7 March 2010

Daniel Burrows: Installing OpenWRT on a Linksys WRT54GL v1.1

I finally got a few hours free this morning to check an item off my home system administration checklist: upgrading the wireless router's firmware to OpenWRT. There were a couple motivations for this, including the fact that my SoundBridge Radio couldn't maintain a connection to my firefly server using the built-in firmware, and I had read that OpenWRT would work better. Since this is posted on Planet Debian, I should mention why I didn't use DebianWRT. The basic answer is this text at the top of the DebianWRT homepage:
Currently the most common methods used to run Debian on these systems is to install OpenWRT or a similar firmware, add disk space either by USB storage or NFS, create a debian chroot by either running cdebootstrap from inside OpenWRT or debootstrap --foreign on a PC, and running Debian from this chroot. For example, instructions for the WLHDD.
I'm not sure whether this is because DebianWRT is experimental, or because its goal is to use routers as cheap general computers. Either way, it sounds way too complicated and/or fragile for what I'm interested in (i.e., a wireless router with better software). The goal here is to get something that does a better job than the built-in WRT firmware, but doesn't require too much tinkering to get working or to maintain. I have plenty of outlets for my tinkering urges already. Nothing here was exactly difficult, but it was hard to find all the information I needed to get things working. Hopefully documenting the steps I went through here will save someone else some time. Step 1: acquire the firmware This was trickier than you might think. If you click on the download link at the OpenWRT web site, you end up at the top of an FTP server populated with a vast quantity of stuff. Worse, when you find the actual firmware images, you'll quickly discover that there are piles and piles of them divided between sixteen directories, and no guidance as to which one to pick. And picking the wrong one will turn your beautiful router into a doorstop. Luckily, the OpenWRT documentation contains a section called "Getting Started". Unluckily, that section consists of the following text:
1.1 Getting started 1.1.1 Installation 1.1.2 Initial configuration 1.1.3 Failsafe mode
Whoops, someone forgot to execute on a TODO. :-) Undeterred, I consulted the usual fallback reference, Google. It pointed me at several references, some of which were hidden on other parts of the OpenWRT site. Armed with these, I was able to determine that:
  1. My WRT54GL v1.1 probably uses a Broadcom 5352 chipset.
  2. The correct firmware, according to multiple sources, is probably in the kamikaze top-level director, the latest version's subdirectory, and the bcrm-2.4 directory under the version (the link is to 8.09.2, which is current as of March 6, 2010). Apparently the bcrm47xx directory doesn't have wireless support; it helpfully contains a file called NO-BROADCOM-WIRELESS to warn you off, but unhelpfully doesn't include any additional information in that file (like what exactly is broken or that you can find a working firmware in a sibling directory) ... oh well.
  3. The firmware file that you want is openwrt-wrt54g-squashfs.bin, even though it doesn't match the model number of the router. This directory could use a README file explaining which hardware is supported by each of the dozen or so firmware files it contains.
Step 2: install the firmware After Step 1, this was a real relief. I just used the built-in Linksys firmware installer, pointed it at the .bin file, and it went. Step 3: configure the router The installation guide I followed was pretty much silent about what to do after I got the firmware on. Luckily, this is just a software problem, meaning it's much more familiar territory for me.
  1. First things first: I checked that I could still get a DHCP lease. It worked.
  2. Armed with that, I tried telneting to the router. I used the resulting root prompt to set a password on the root account.
  3. I logged out and tried telneting in. Apparently the router is configured to disallow root logins over telnet if you don't have a password. Good for them (although why allow telnet at all?); oops for me.
  4. Luckily, an ssh server was installed by default. I like using keys to log in, so I tracked down the documentation on configuring the server to use public-key authentication; it turns out there's a single global key file named /etc/dropbear/authorized_keys that's exactly like OpenSSH's per-user authorized_keys file. No idea what would happen if I had multiple users, but I won't.
  5. The next obstacle: I didn't have an Internet connection. For some reason, my cable modem didn't want to give the router a DHCP lease. On the off-chance that it was remembering too much, I rebooted it and ran ifup wan. That fixed the problem. I still don't know why.
  6. Not a step, but a useful note: in the process of figuring the above out, I found readlog. It's basically dmesg for syslog files; it shows the most recent lines written to syslog. This is useful because there isn't a real syslog file, due to the fact that there would be no room to store it on the 54GL.
  7. Finally, I had to get wireless working. The documentation is very helpful when it comes to describing the syntax of the wireless configuration. Unfortunately, I read the list of encryption options and missed the section right below where their meanings are explained (although, to be honest, I might not have understood the implications of the explanation without the research I did anyway).
    option encryption none, wep, psk, psk2, wpa, wpa2
    I wanted WPA2 encryption, so I entered wpa2. And nothing worked. After a good hour of trying different options on the client, swapping software components in and out on the router, experimenting with the encryption key syntax, and crawling Google, I finally found my answer. If you just want WPA2 encryption, you must not use wpa2 as the encryption type. Instead, use psk2. It turns out out that wpa2 actually means use WPA2 and also use an external RADIUS server for authentication. psk2 is the system you're familiar with from a typical consumer wireless router.
Step 4: enjoy And with that, it works. Unfortunately, contrary to what I wrote here originally, my Roku still doesn't work. On the other hand, having a real Linux installation is helpful for debugging it. Currently my suspicion is that the router isn't passing multicast packets between the wired and wireless interfaces (broadcast works fine, multicast doesn't). That said, it seems like if I restart Firefly just before I start playing music, I can play reasonably reliably -- as long as I don't stop, because if I do, the Roku forgets that the music server is there. Either way, I've spent about as much time fighting this as I can afford. :-/ One lingering worry I have is security; unlike Debian, which has both a security mailing list and tools to inform me when I need to install a security update, the OpenWRT firmware doesn't seem to have any mechanism for distributing security notices. True, there is an openwrt-security-announce list, but it appears to be entirely unused, as is openwrt-announce. Something to keep an eye on, then. Also (file under note to self), I need to remember to verify that the router isn't exposing services to the outside world. The default iptables configuration is hideously complex; with just a quick glance, it could be setting up a floral shop for all I can tell. I'll need to test this empirically and maybe analyze the rules in more depth.

2 March 2010

Matt Brubeck: The network is the human being

Nathanael Boehm wrote a nice essay last month called The Future of Employment?, about a disconnect between workers' and employers' views of social networks. (This post is based partly on my comment in the ensuing Hacker News thread.) Boehm wrote:
When I need help with a challenge at work or need to run some ideas past people I don t turn to my co-workers, I look to my network of colleagues beyond the walls of my workplace. Whilst my co-workers might be competent at their job they can t hope to compete with the hundreds of people I have access to through my social networks...
The late Sun Microsystems taught us that the network is the computer. It's true: we still use non-networked computers for specialized tasks, but nobody wants one on their desk it's just so useless compared to one that talks to the entire world. Boehm could have titled his essay The Network is the Employee. There are still tasks that people do in isolation, but the ability to contact a network of peers and experts makes the difference in my job, and many others. Alone together The lone computer programmer in a small business has thousands of colleagues on Stack Overflow, Reddit, and so on. It's a chaotic and messy way to find answers, but it's better than the days when your only choice was to call tech support or smack the box with your fist, whichever seemed more useful. I can't begin to list all the problems I've solved and things I've learned by Googling for others with relevant experiences, and getting help from a different expert for every problem. Decades before the web, computer geeks had virtual communities for on mailing lists, Usenet, and IRC. Now any job in the world has an online forum. Even the night clerk at the gas station has Not Always Right. Teaching has long been a solitary profession. Despite working in a crowded classroom, teachers are isolated; they rarely have colleagues observing or participating directly in their work. This has such an impact that teacher education sometimes includes training in meditation or reflection, to compensate for lack of external feedback. So I'm really curious what happens when teachers start to work together remotely the way programmers do. You will be assimilated Boehm's essay reminded me of a vague sci-fi-like idea I've been kicking around: the first group minds will evolve from the intersection of Mechanical Turk, virtual assistants, social networking, and augmented reality. Starting around the 1990s, it was possible to instantly "know" any fact that was published online. Since then, we've increased the amount of content online, our tools for searching it, and ways of connecting to the network. Today we have instant access to almost any published knowledge, anywhere. The number of people on the net has grown too, and the number of ways to find and talk to them. Most of us can contact dozens of friends at any given moment, plus friends-of-friends, co-workers, fellow members of communites like Hacker News or MetaFilter, and also complete strangers. Along with raw facts, we now have access to vast amounts of human judgement, experience, and skill. One result of this is the "virtual assistant," who provides a service that was once available only to high-powered executives. The new personal assistant can work remotely (often overseas), spread costs by serving many masters, and leverage the internet superpowers listed above. Today their services are targeted at small business owners and the Tim Ferriss crowd, but I'm sure someone soon will start marketing virtual personal assistance to all sorts of other creative workers, teachers, even stay-at-home parents. So, how long before I can simply touch a button to let a remote assistant see what I'm seeing in real-time and help me make transportation plans, translate foreign signs and speech, look up emails related to whatever I'm doing or thinking, or even advise me on what to say? Some of these queries will go to my circle of friends, others to the general public, and some to a personal assistant who is paid well to keep up with my specific needs. And that assistant of course will sub-contract out portions of each job as needed to computer programs, legions of cheap anonymous Turkers, or to his or her own network of assistants. At that point, I'm augmenting my own perception, memory, and judgement with a whole network of brains that I carry around ready to engage with any situation I meet. If nothing else, I hope someone writes a good sci-fi thriller story in which a rogue virtual assistant subtly manipulates the actions of unknowing clients, leading them to some unseen end.

1 March 2010

Erich Schubert: Database streaming API

For my research at the university, I've become a lead developer for ELKI, a framework for developing data mining algorithms along with index structures, to be able to one one hand quickly implement new algorithms (by being able to reuse a lot of code, in particular index structures, parsers, ...), but also on the other hand to evaluate the interaction of index structures with different algorithms, distance functions, and so on. The new version 0.3 which adds a lot of new outlier detection methods will be published beginning of April at DASFAA 2010. (Note that this is designed for research and teaching use; code extensibility, readability etc. instead of maximized performance. You might want to do a rewrite in C for maximum performance, since Java does give you quite a memory and performance overhead in these setups.)After this release, we will be doing a major redesign of the database and index layer, to allow better comparison of different index structures in parallel; right now it's hard to use more than one at a time, and building e.g. a combined index structure is a larger effort than we'd like it to be. During the process of redesigning the database layer, I'll also be improving the database update or "streaming" API.If you know of a nice API for streaming databases, please send me an Email to erich -at- debian -dot- org.Note that I'm looking for a programming API, i.e. "interfaces". Not for random data sources such as Twitter. Also I really need an API able to model data changes, not just "events" aka "instances". So please don't point me to what Twitter calls a "streaming API". What I'm looking for is a nicely-designed API to allow programmers to react to Database changes, such as insertions, deletions, updates, bulk operations etc. and update their index structures and algorithm results accordingly. An example would be the "oracle streams" API I believe; MySQL probably has a logging (used in their replication hacks) which can also be seen as a database stream. But these are designed around a RDBMS view, and not so much for data mining. Weka/MOA Streams seems to be just event/instance streams, where there is no such thing as a bulk insert or even a deletion. Of course there are many use cases where you will be happy with working on just the previous n instances. The more general case however handles arbitrary inserts and deletes, instead of having just inserts (and implicit delitions by an expiry strategy). And yes, of course you can in turn wrap database events as instances into an event stream (with "insert", "update", "delete" events) ...Yes, I'm aware that this kind of setup was abandoned for what is called a "stream processing engine" (SPE) in many use cases, that do not care about "old" data or deletions in general. We'd like to be able to support both approaches, also to be able to do fair comparisons.Of course you can also point me to badly done APIs, and explain me where they fall short for you. We're not so much interested in copying some API, but we'd just like to design a good API for people to do research on stream processing in a database context (e.g. index support for streaming data, online algorithms, ...) Or you can write me a mock-up API that you would deem useful.

28 February 2010

Siegfried Gevatter: Zeitgeist Data-Source Registry

This post is about an upcoming feature in Zeitgeist 0.3.3 and is so far only available in checkouts from trunk or our PPA. It is expected to be released within the next weeks. Some weeks ago I implemented a new feature in Zeitgeist and I figured I d drop some lines about it. I m talking about a data-source registry. You may be wondering, what the hell is that even, a data-source? . So Zeitgeist is a database, a global event log, but it doesn t do any magic indexing or monitoring by itself; the information it logs needs to come from somewhere be it applications sending it to Zeitgeist themselves, daemons, plugins for applications, etc. Any such entity is called a data-source . Having a register of all data-sources interacting with Zeitgeist provides some benefits, like for example:
Screenshot of tools/gtk/zeitgeist-data-sources-gtk.py

Prototype of a data-source management user-interface

More details When they register, data-sources will need to provide the following information: an unique ID, a name (may be localized), a description (may be localized) and optionally a template specifying what sort of events it logs. Additionally, the last timestamp the data-source was seen by Zeitgeist, whether it is running right now and whether it is enabled will also be available. It is important to note that registration is not compulsory; while it is highly encouraged for data-sources to use it, is it still possible to anonymously insert information into Zeitgeist (for example from a shell script). The event template is also only informational, and will not be enforced by Zeitgeist at this time. Avoiding duplicates from GTK Recently Used You may know that zeitgeist-datahub provides basic support for applications which have no direct Zeitgeist support but do use GTK s RecentManager, which is not as detailed as we would like, but it is better than nothing. However, until now we had a problem: when applications had support for both, GTK s Recently Used and Zeitgeist (be it native or as an extension), it was possible for duplicate events to be inserted or other sorts of conflicts between both data-sources. Now that we have the information from the registry available, we ve been able to solve this modifying our Recently Used data-source to ignore any events concerning applications which already have another data-source logging the same types of events.

In case you don t care at all about what I m talking here and you just want to see fancy interfaces, go check this out. Related posts:
  1. Zeitgeist is out!
  2. Introduction to Zeitgeist 0.2 s API
  3. Zeitgeist Hackfest (II)

No comments
Siegfried-Angel Gevatter Pujals, 2010. Permalink License Post tags: , ,

Russ Allbery: Review: Coders at Work

Review: Coders at Work, by Peter Seibel
Publisher: Apress
Copyright: 2009
ISBN: 1-4302-1948-3
Format: Trade paperback
Pages: 601
Coders at Work is a collection of edited interviews by Peter Seibel (probably best known previously for his book Practical Common Lisp) of an eclectic and excellent collection of fifteen programmers. It opens with an interview with Jamie Zawinski (one of the original Netscape developers) and closes with Donald Knuth. In between, the interview subjects range in programmer generations from Fran Allen (who started at IBM in 1957) and Bernie Cosell (one of the original ARPANET developers) to Brad Fitzpatrick (LiveJournal founder and original developer). Techniques and preferences also range widely, including two people involved in JavaScript development and standardization (Brendan Eich and Douglas Crockford), a functional programming language designer and developer (Simon Peyton Jones), language designers and standardizers such as Guy Steele, and people like Dan Ingalls who have a different experimental approach to programming than the normal application development focus. All of the interviewees are asked roughly the same basic questions, but each discussion goes in different directions. Seibel does an excellent job letting the interview subjects shape the discussion. Two things immediately stood out for me about this book. First, it's huge, and that's not padding. There are just over 600 pages of content here, much of it fascinating. The discussions Seibel has are broad-ranging, covering topics from the best way to learn programming to history and anecdotes of the field. There's some discussion of technique, but primarily at the level of basic approaches and mindset. One typical question is how each programmer organizes their approach to reading code that isn't familiar with them. Each interviewee is also asked for book recommendations, for their debugging techniques, for their opinions on proving code correct, and how they design code. The participants are so different in their backgrounds and approaches that these conversations go in fifteen different directions. This is one of the most compelling and engrossing non-fiction books I've read. Second, the selection of interview subjects, while full of well-known names in the field, is not the usual suspects. While I'm interested in the opinions of people like Larry Wall and Guido van Rossum, I've already heard quite a lot about how they think about programming. That's material that Coders at Work doesn't need to cover, and it doesn't. Many of the interview subjects here are people I'd heard of only vaguely or not at all prior to this book, often because they work in an area of programming that I'm not yet personally familiar with. Those who I had heard of, such as L. Peter Deutsch, I often knew in only one context (Ghostscript in that case) and was unfamiliar with the rest of their work. This gives the book a great exploratory feel and a lot of originality. There is so much good material here that it's hard to give a capsule review. This is a book I'm highly likely to re-read, taking more detailed notes. There's entertaining snarking from Jamie Zawinski and Brendan Eich, fascinating history of the field (including in gender balance) from Fran Allen, and an intriguing interview with Joe Armstrong (creator of Erlang), who seems to have a far different attitude towards languages and libraries than the other interviewees. Every interview is full of gems, bits of insight that I now want to research or play with. A couple of examples come to mind, just to provide a feel of the sort of insights I took out of the book. In the interview with Joshua Bloch, who does a lot of work on library APIs, he mentions that empathy is one of the most important skills for designing an API. You have to be able to put yourself in the shoes of the programmer who's going to use the API and understand how it will feel to them. This came up in the context of a discussion about different types of programmers, and how programmers can be good at different things; the one who can do low-level deep optimization may not have that sense of empathy. Another example: Bernie Cosell talked about how he did debugging, and how he got a reputation for being a fantastic debugger who was able to fix just about anything. He confessed that he often reached a portion of the code that he didn't understand, that seemed too complex and tricky for what it was attempting to accomplish, and rather than trace through it and try to understand it, he just rewrote it. And after rewriting, the bug was often gone. It wasn't really debugging, but at the same time it's close to the more recent concept of refactoring. Several of the interview subjects commented on a subjective feeling of complexity and how when it gets too high that's a warning sign that code may need to be rethought and rewritten. A third example: I was fascinated by the number of interviewees who said that they used printf, assert, and eyeballs to debug rather than using any more advanced debugging tools. The former Lisp developers would often bemoan the primitiveness of tools like gdb, but many of them found that print statements and thinking hard about the code were usually all that's needed. (There was also a lot of discussion about test suites and test-driven development.) The general consensus was that concurrency problems were the hardest to debug; they made up a disproportional number of the responses to Seibel's question about the hardest bug the programmer ever had to track down. I could go on giving similar examples at great length, but apart from the specific bits of wisdom, the strongest impact this book made on me was emotional. Coders at Work is full of people who love programming and love software, and that enthusiasm, both in general and for specific tools and ideas, comes through very clearly. I found it inspiring. I realized while reading this book, and I suspect I'm not alone among programmers in this, that I largely stopped learning how to program a few years back and have been reusing skills that I already have. Reading Coders at Work gave me a strong push towards finding ways to start learning, experimenting, and trying new techniques again. It also filled me with enthusiasm for the process of programming, which immediately helped my productivity on my own coding projects. This is obviously a book whose primary target audience is practicing programmers, and while it doesn't go too far into language theory, I was relying on remembered terms and structure from my master's degree for a few of the interviews. I think it's approachable for anyone who has a working background in programming and a few languages or a CS degree, but it might be a stretch for someone new to the field. But even someone without any programming knowledge at all would get a lot out of the anecdotes and snapshots of the history of software development. Coders at Work is also full of jumping-off points for some additional research on Google or additional reading in other recommended books. I only have one complaint, which I have to mention in passing: for such a large book full of interesting ideas and book recommendations, the index is wholly inadequate. I tried looking up five or six things in it, including the source of some of the book recommendations that are collected in an appendix, and I struck out every time. It's very hard to find something again in 600 pages, and more attention paid to the index would have been greatly appreciated. But, despite that, for people within the target audience, I cannot recommend this book too highly. Not only was it full of useful information, at the level of programming above the code details that's often the hardest to talk about, but it's consistently entertaining and emotionally invigorating and inspiring. It made the rounds of tech blogs when it was first released, to nearly universal approval, and I can only echo that. If you're a practicing programmer, I don't think you'll regret spending a few weeks reading and thinking about this book. Rating: 10 out of 10

25 February 2010

Uwe Hermann: How to setup an encrypted USB-disk software-RAID-1 on Debian GNU/Linux using mdadm and cryptsetup

This is what I set up for backups recently using a cheap USB-enclosure which can house 2 SATA disks and shows them as 2 USB mass-storage devices to my system (using only one USB cable). Without any further introduction, here goes the HOWTO: First, create one big partition on each of the two disks (/dev/sdc and /dev/sdd in my case) of the exact same size. The cfdisk details are omitted here.
  $ cfdisk /dev/sdc
  $ cfdisk /dev/sdd
Then, create a new RAID array using the mdadm utility:
  $ mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdc1 /dev/sdd1
The array is named md0, consists of the two devices (--raid-devices=2) /dev/sdc1 and /dev/sdd1, and it's a RAID-1 array, i.e. data is simply mirrored on both disks so if one of them fails you don't lose data (--level=1). After this has been done the array will be synchronized so that both disks contain the same data (this process will take a long time). You can watch the current status via:
  $ cat /proc/mdstat
  Personalities : [raid1]
  md0 : active raid1 sdd1[1] sdc1[0]
        1465135869 blocks super 1.1 [2/2] [UU]
        [>....................]  resync =  0.0% (70016/1465135869) finish=2440.6min speed=10002K/sec
  unused devices: 
Some more info is also available from mdadm:
  $ mdadm --detail --scan
  ARRAY /dev/md0 metadata=1.01 name=foobar:0 UUID=1234578:1234578:1234578:1234578
  $ mdadm --detail /dev/md0
  /dev/md0:
          Version : 1.01
    Creation Time : Sat Feb  6 23:58:51 2010
       Raid Level : raid1
       Array Size : 1465135869 (1397.26 GiB 1500.30 GB)
    Used Dev Size : 1465135869 (1397.26 GiB 1500.30 GB)
     Raid Devices : 2
    Total Devices : 2
      Persistence : Superblock is persistent
      Update Time : Sun Feb  7 00:03:21 2010
            State : active, resyncing
   Active Devices : 2
  Working Devices : 2
   Failed Devices : 0
    Spare Devices : 0
   Rebuild Status : 0% complete
             Name : foobar:0  (local to host foobar)
             UUID : 1234578:1234578:1234578:1234578
           Events : 1
      Number   Major   Minor   RaidDevice State
         0       8       33        0      active sync   /dev/sdc1
         1       8       49        1      active sync   /dev/sdd1
Next, you'll want to create a big partition on the RAID device (cfdisk details omitted)...
  $ cfdisk /dev/md0
...and then encrypt all the (future) data on the device using dm-crypt+LUKS and cryptsetup:
  $ cryptsetup --verbose --verify-passphrase luksFormat /dev/md0p1
  Enter your desired pasphrase here (twice)
  $ cryptsetup luksOpen /dev/md0p1 myraid
After opening the encrypted container with cryptsetup luksOpen you can create a filesystem on it (ext3 in my case):
  $ mkfs.ext3 -j -m 0 /dev/mapper/myraid
That's about it. In future you can access the RAID data by using the steps below. Starting the RAID and mouting the drive:
  $ mdadm --assemble /dev/md0 /dev/sdc1 /dev/sdd1
  $ cryptsetup luksOpen /dev/md0p1 myraid
  $ mount -t ext3 /dev/mapper/myraid /mnt
Shutting down the RAID:
  $ umount /mnt
  $ cryptsetup luksClose myraid
  $ mdadm --stop /dev/md0
That's all. Performance is shitty due to all the data being shoved out over one USB cable (and USB itself being too slow for these amounts of data), but I don't care too much about that as this setup is meant for backups, not performance-critical stuff.

Next.

Previous.