Search Results: "zed"

1 November 2006

Benjamin Mako Hill: Revelation

Once, a friend of mine was cleaning a small tube and asked me to pass him a pipe cleaner. Immediately and simultaneously, I both realized that I had never questioned the name of my favorite craft supply and understood the answer to the question completely. Moments like this are like tiny tastes of enlightenment.

30 October 2006

Ian Murdock: Work Offline : What s the point?

I’ve long wondered what the point of the “Work Offline” option in Firefox is (it’s in the “File” menu). All it really seems to do is take you to a helpful (cough) error screen when you’re working offline that tells you you can’t view the page you’re trying to view till you’re online again. If the page is in the cache, it’ll display it, but that seems to happen only rarely. I jacked my cache up to 4GB, but much to my surprise, that doesn’t appear to result in a noticeably higher cache hit rate. IE has a similar option, but it actually does something. In fact, it’s quite slick. When you add a page as a favorite, you’re given a “Make available offline” option. Once that option is selected, you can click “Customize…”, which launches a wizard that allows you to mark other pages the favorite links to as available offline as well (useful for sites like Slashdot that primarily link to other sites). You can also specify when the page(s) should be synchronized (manually or on a predefined schedule, such as every day at 5am). The Blackberry browser has a similar option too, though I haven’t used it much (most of my offline time tends to be on airplanes, and I’d much rather view the web on my laptop). The Blackberry does have a neat feature IE doesn’t have though, which is if you try to load a page that isn’t available offline, it’ll offer to queue up the request and download it once you’re online again. As with everything on the Blackberry, the page will show up in the universal inbox along with email, SMS, missed calls, etc. No more trying to remember what pages you wanted to load when you were offline or resorting to tricks only a hacker could love. Imagining a feature like this integrated with a Gmail/Google Reader combo that supports offline operation makes my mouth water. As I said in the opening paragraph, I’ve been thinking about this for a long time, but I’ve never actually gotten around to writing about it. What inspired me to do that today? Scrybe, an amazing online productivity suite that has a variety of unique and killer features, including excellent use of AJAX to preserve context as you move around within the application, a novel approach to scheduling across timezones, full integration between the calendar and to-do lists (why don’t more calendar applications do this?), and more. Watch the video for yourself. The most interesting feature from my point of view, though, is the offline support: Simply select “Work Offline”, and everything works, well, offline, no browser extension required. It even appears that changes will be synchronized when you’re online again (i.e., it’s not just a read only copy). The beta isn’t publicly available yet, but I can’t wait to see how they did this. My prediction: If this works as well as it looks, all web applications will eventually work this way. And it’s good to see that some companies are thinking about the offline problem, rather than just assuming ubiquitous Internet connectivity makes the problem go away in the very near future.

29 October 2006

Jorge Salamero Sanz: Nokia770 and beers

Nokia770 and beers Sometimes you can have good nights like last thursday: a pub with free Internet connection, free software (as in freedom) and free beer (yes, as free beer is). With my friend Jaime we are working in some nice apps for the Nokia770 running Maemo. We have setup a debian repository with ported apps and a svn repository. I dislike the way that applications are been ported to Maemo because many people just put dotdebs that you can install, but you can't notice updates, you can't get source code and so on. Also most of the repositories don't follow the Debian way: dist/section and you end with a very dirt mixture. I'll try to keep the repository and the packages as clean as posible.

David Welton: Idle Ajax callback for Rails

I'm working on an application that needs an idle callback (do something after the user has been idle for N seconds). It was pretty easy to hack up once I found some example javascript code (hopefully it works in IE too...):
def on_idle(timeout, options)
  timeout *= 1000
  remote = remote_function(options)
  javascript_tag("
var alarm =  
  remind: function()  
    # remote 
    delete this.timeoutID;
    this.setup(this.ms);
   ,
  setup: function(ms)  
    this.cancel();
    var self = this;
    self.ms = ms;
    this.timeoutID = window.setTimeout(function(msg)  self.remind(); , ms);
   ,
  cancel: function()  
    if(typeof this.timeoutID == \"number\")  
      window.clearTimeout(this.timeoutID);
      delete this.timeoutID;
     
   
 ;
alarm.setup(# timeout );
window.onblur = function()   alarm.setup(# timeout )  ;
window.onfocus = function()   alarm.setup(# timeout )  ;
window.onmousemove = function()   alarm.setup(# timeout )  ;
")
end
I use it like so, after putting it into my application_helper.rb file.
<%= on_idle 600, :url =>   :action => 'on_idle'   %>
It could probably improved by making it take some options to determine which events cause un-idleness and perhaps call a no-longer-idle hook. I'll update this page with those changes should I get around to them. I wonder if there's a good, centralized place to submit these kinds of little hacks to? The Rails trac system seems to be full of spam, indicating that people aren't triaging bugs at all.

27 October 2006

Scott James Remnant: Parallel Peer Programming

Here at Canonical Towers we have several staff who worship at the altar of Extreme Programming, and as such many of the methodologies and rituals prescribed by that religion find their way into our day-to-day working practices. A few of these came together in an interesting way a few weeks ago, and it was suggested by a cow-orker that I blog about it so he could give the URL to people. The first ritual is that of the sprint, I don’t think this is orthodox XP but rather something inspired from it that we picked up from the Python community. With all of the Canonical developers scattered across the globe mostly working from their own homes, it’s become a useful tool; particularly for the Launchpad team. The basic idea for those that haven’t heard of it is simple, and perhaps obvious; you get a selection of the team together in one place, sit them around the same table with particular goals to complete. In effect it’s highly compressed facetime and high bandwidth interaction to nail those tasks that need it, before you head off again and work at a more sedate pace. The second is directly from XP doctrine and is that peculiar observance known as pair programming, something that is often coupled with sprints. For anybody who hasn’t encountered this before, it’s something I’ve always found rather odd. You get two programmers together, both itching to code, and you take one of them’s laptop away; and you don’t just force them to fight over the keyboard either, the laptop-less soul isn’t allowed to touch it. The theory here is that it frees the deprived individual of the hassle of coding and allows them to direct the programmer in ways that may not be immediately obbious, or alternately think about the next bit of work that needs doing. Another interesting side-effect is it can be an interesting way to learn code you’ve not worked with before, if you’re the one doing the coding and you’re being guided what to do by a sage who already knows it. I have a funny story here, so I’m going to digress from the main stream for a moment to tell it. A few months ago I was working in the London office, Mark had been up all night coding and had then given me responsibility to get his changes landed onto the Launchpad mainline. I’m not that hot on quite a bit of Launchpad, and fade to utterly clueless the nearer the code gets to the web application itself; and when trying to merge the two there were conflicts which I needed Mark’s help to resolve. Now as anybody who’s met Mark knows, he’s a pretty good example of a Type-A personality, yet he suggested that we do a spot of pair programming to get the code in and I’d be the one with the laptop as it’d help me get to grips with the affected parts. This hilighted something I’ve always seen as a problem with pair programming, dealing with it when the a person with the keyboard has a totally different way of working to you. In particular, I’m an emacs user, whereas Mark is a die-hard vim user; but also right down to the working directory I would work from, how I test results, etc. When you’re the one without the laptop, this can be quite infuriating, as you know exactly how to solve a problem and the idiot with the keyboard is dithering about doing things you don’t understand just to get there. If you’re a Type-A personality, you generally snatch the laptop away at this point and do it yourself; or at least you would, if you could drive the strange editor the other person uses. I swear Mark was sulking as he gave the laptop back and let me do it. Anyway, there is some relevance to that and we’ll come to it in a moment. The third and final methodology is the concept of unit tests and more specifically test driven development. For anyone who hasn’t come across this before, I highly recommend it; I was suspicious too when Robert Collins took it upon himself to teach me the true way, but now I’m sold. Simply the idea is that if you have any code that doesn’t have another piece of code in a test suite that checks that it’s working correctly, that code is broken. More particularly unit testing involves checking just one feature or requirement at a time, and stacking them together to test all of the code paths. I’ve actually found that this improves the APIs I design, as I write the code in small blocks and functions to make them easier to test. Test driven development takes it even further, you write the unit tests first, before you write the code they’re supposed to test; usually one or two at a time. Obviously these tests will fail at first, it’s then your job to write as little code as possible to make them pass. If your code isn’t right, you add a unit test that will fail, and modify the code to make it pass. This really comes into its own when you’re fixing bugs later, once you’ve identified the bug you write a test case or two that cause the problem; these will of course fail. You can then modify the code to make them pass, and at the same time be sure you’ve not broken other functionality because of the existing test suite. I’ve also found it really useful for particularly complicated or tricky pieces of code, especially those intricate algorithms that do particularly heavy lifting. So onto the event itself, this was a sprint in our London office to indoctrinate Gustavo Niemeyer with the various projects he’d be working on. The goal for this sprint was decided to start the conversion of HCT to Bazaar-NG, and to do this Gustavo and I would pair program. Now my last experience of pair programming had been that story with Mark (see, it had some relevance) and I knew I’d be just as bad if I wasn’t allowed to have the keyboard. I was also acutely aware that if Gustavo was just sitting by and watching, he wouldn’t get much benefit from it either, so he needed to be actively involved in the coding so he could learn the things he’d be working on. I came to what I thought was a pretty neat, and obvious, solution to these problems. We set up my laptop with the code we’d be working on, and on my display were two side-by-side terminals both running screen sessions. Gustavo then set up two same-sized terminals on his, ssh’d into my laptop from both of them and joined the screen sessions. In the left-hand one he ran vi, and in the right-hand one I ran emacs. Thus we both had keyboards, and both had editors, yet could see each other working and even steal the keyboard without danger of violence. We didn’t just sit side-by-side and code on different things though, that’s not pair programming and is just ordinary programming with a bit of a voyeuristic twist. What we did was: in my terminal I started writing the test cases for the code we needed, it was Gustavo’s job to write the code that would make them pass. We actually added a third terminal in which we could run the test cases themselves; so I could run them when I’d added something that would fail, and Gustavo could run them when he thought he’d made them pass again. This turned out to be a rather fun way to work, and at one point I was almost able to try and convince myself that the code was writing itself to pass the test cases I was writing. It also got me thinking that it’d be really neat to use genetic algorithms to breed code to pass test cases.

Sven Mueller: Debian and Dunc-Tank

Well, this really is a controversal topic to say the least. While having the RMs get paid to get Etch out might be a good thing, the big problem I see with dunctank is that it is initiated by people very prominent inside Debian and moreover by people perceived as friends of th RMs in question. Though dunctank says that is distinct from Debian, due to the high profile the people involved have inside the Debian community, this distinction might not be recognized by less careful observers. The second problem is that the payment the RMs get is not connected to well specified tasks, but they are for “working on the release of Debian “Etch”. And finally, there is the problem that this is said to be an experiment. However, a good experiment has well defined objectives and well defined boundary conditions. In other words: Regarding Dunc-Tank, it is unclear to me what the experiment is trying to achieve. I admit I voted as much in favor of the experiment as the GR allowed, but in the meantime, I regret doing so. My vote was because my impression was that Dunc-Tank would pay just enough to pay rent, food and the other usual expenses (insurances, debts etc.). But now each of the two RMs is supposed to receive 6k$. This surely is less than they could earn working as IT freelancers, but it sure exceeds their pure living expenses. While just covering their living expenses would be OK for me (in the sense that I could live with it, not in the sense of being happy about it), paying substantially more isn’t, but that’s just me. A DPL collecting money to pay certain DDs is always going to ask for trouble. Or as Ben collins put it back in 2001:
… use Debian money to pay developers. It can never be done fairly, or in a way so as not to piss someone off. It will always be susceptible to political gains and/or favoritism. This subject caused a lot of hatred, and in my opinion, the experiment is a failure. Though it might help to get Etch out in time, it caused many DDs to cut down on the time they spend on Debian, among them people like the DWN editor, who used to invest a lot of time. And this effect will not go away when Etch is released and is thus hurting Debian in the long run. The whole thing might have been a lot different if some random, mostly unknown DD (or even better: non-DD) had started dunc-tank, collecting money and finally paying some DDs to work on some specific tasks. But the fact that the DPL started it makes it so controversial. But on the other hand, it would have been less likely that dunc-tank collected enough money to do so in that case. Honestly, if I were to decide, I would drop dunc-tank completely once Etch has been released (it’s too late to do it now, it would just deprive Debian of the benefits and still cause all the negative side effects). The people who thought (and think) dunc-tank was a good idea could then restart it later under some different name and without involvement of the DPL. There is only one position in Debian I could see reasons why the person occupying it should receive some sort of compensation: The DPL. The reason I see here is that this position requires a lot of time if taken seriously. This also means that many people can’t reasonably apply for it since they would need to resign from their “real world” job.

25 October 2006

Evan Prodromou: 3 Brumaire CCXV

I&aposve been dawdling and delaying writing about our trip to wt:Halifax (Nova Scotia) two weeks ago for some reason, but I&aposm bound and determined to get some info down on, uh, electrons about it right now.

Hella facts about Halifax We flew out of Trudeau airport eeeeearly on a Friday morning; I&aposd shopped a bit on the Air Canada site and got $99 each-way tickets from Montreal on their wp:Air Canada Tango program, but they required that we be on the 7:50AM flight. Air Canada used to be one of my favorite airlines, but they have been getting continuously disproportionately high prices and conversely worse amenities (pillows and blankets now cost extra, thank you very much). Discount flights in Canada are pretty sparse these days, with the collapse of Jetsgo in 2005 and the recent repositioning of CanJet for charters only. So, you just have to take what you can get. The flight to Halifax was quick and painless; Amita June slept most of the way there. The airport there is pretty small (yay small airports), so we buzzed through baggage claim. Cabs into town were a pricey flat-fee of $52, which got our hackles up, so instead we waited half an hour and took the Airporter shuttle ($16/person) into Halifax proper. We got to see a lot of the Nova Scotia countryside from the shuttle -- lots of leaves turning and conifer forests. We had reservations at the pretty and historic Lord Nelson Hotel, well away from the waterfront, but still in the downtown area, near Dalhousie University. The Lord Nelson is in the "Splurge" section of Halifax hotels on Wikitravel, but since this trip was for my birthday and our 2nd wedding anniversary I thought it&aposd be nice to stay there for one of the 4 nights we were in town. But when I called to make a reservation, I was able to get a very competitive rate, mostly due to a healthy 40% CAA discount, and I booked us for all 4 nights. I&aposd asked for early check-in, but our room wasn&apost ready at noon, so we tried the Lord Nelson Pub for lunch and a beer. The food was tasty and the atmosphere was, uh, pubby. We pawed through the stack of tourist-info documentation that we&aposd picked up at the info desk at the airport, then went up to our big and well-lit room for a mid-afternoon nap. Yes, all three of us. When we woke up, Maj and Amita June went for a walk across the street to the pretty wp:Halifax Public Gardens. It&aposs a very nice Victorian-era public park with disturbingly large geese roaming about. When they got back, the three of us headed down to the waterfront for an early dinner. Halifax&aposs streets are very steep -- they virtually plummet into the water. But we walked straight down to Water Street then meandered along looking at the sights. Our intention was to eat at the Privateer&aposs Warehouse, a building with a bar and two restaurants stacked on top of each other. It&aposs part of the Historic Properties on Upper Water Street, a collection of restored buildings with shopping and food. But the Warehouse turned out to be too rambunctious for us on a Friday night, so we instead went around the corner to Salty&aposs for a slightly more sedate meal on the water. We had good food; Maj had some very nice crab cakes and I took on a large seafood salad. Amita June chomped on really tasty fish and chips. The walk back up the hill was a bit tough, so we stopped in the Rogue&aposs Roost brewpub on the way home for a little strengthener. Unfortunately, as it was after 8:30PM, the baby wasn&apost allowed into the pub. So, we had to leave her tied to a parking meter while we had a... just kidding. We retired to bed after a long day, all three. tags:

California Dreamin&apos All the leaves are brown, red, orange, chartreuse and saffron here in Montreal, yet we&aposre off to wt:San Francisco tomorrow morning (early) to visit friends and family. I love going to see my parents and brothers and sister-in-law and nieces, but I also like going back to see the wt:Bay Area (California). It hasn&apost always been like this. It used to be that when I went back, it felt like I&aposd never left, and that the life that we&aposve made here in Quebec was just a story I told myself. San Francisco seemed real; Montreal seemed distant. San Francisco was where I was supposed to be; Montreal was where I stubbornly and irrationally insisted on staying. (The fact that I stayed in a room in my parents&apos house didn&apost help with the stepping-backwards feeling.) But it&aposs been a few years, and Maj and I have been married here, had a baby, and made a business for ourselves. Even though we don&apost own a house (yet), we&aposre putting down roots. Now when I return to California, it feels like a visit -- like traveling to just another destination. And you know what? California is a fabulous place to visit. Northern California even more so. San Francisco is a spectacular place on the edge of the ocean with music, art, redwood trees, organic food, and a sense of humor about itself that no other town quite has. It will be good to get back to SF for a while. It will be nice to take the baby around to see people and things that she hasn&apost ever seen before. We&aposll be in wt:Palo Alto to stay with my folks, visit my brothers in wt:San Francisco, up to wt:Petaluma and wt:Oakland to visit friends, and maybe even down to wt:Big Sur for a campout next weekend. I&aposve got the Web 2.0 Conference that I&aposm covering for LinuxWorld. And I&aposm sure there&aposll be more in there; we need ot dip the baby&aposs toes in the Pacific sometime soon. tags:

Benjamin Mako Hill: PyBlosxom Hacks Page

Since my weblog catastrophe a few months ago, I've been spending a little more time getting my PyBlosxom setup on copyrighteous into shape. Initially, my efforts were focused on a series of patches to PyBlosxom and to several important plugins. As I became a little more familiar with the code base, I realized that in an evening or a little bit of downtime, I can pretty easily create my own plugins. I've already managed to accumulate a few of them. I've created a page on my website to hosts these and have put what I've got publishable so far up there. I've got two more that I'm still in the process of vetting on the PyBlosxom mailing list but that I'll post there (and announce on this blog) soon. The first plugin that I've published there is a very simple plugin I wrote to display ads (I am experimenting with Google ads but it should work with other ad providers or even for non-ads) but only to those who get to my old blog entries by searching for them. My thinking was inspired by an old post by my friend Evan where he described setting up Google advertisements in a way that would not affect his core readership but might allow him to use blogging to make his activism financially sustainable. While I suspect (and hope!) that most my own readership's Internet experience is mediated by Adblock and Filterset.G, the plugin will spare even those that don't while showing ads to those I don't know yet.

24 October 2006

Lars Wirzenius: Random thought: Web design, typography, small screens...

Even people with good intentions can get things wrong. This article talks about the importance of typography and information design in web design, but I can't read it without making my browser window larger... I don't wish to rant specifically on the above page. Actually, I think it's author has a properly positioned heart. It is, however, a poignant reminder of a common problem I have. My laptop has a 10.6 inch screen. It's very small (and cute!), and it's never a problem, except for one thing: web pages that think they know better than I do how wide they should be, how big the font should be, and just blindly assume that I'm fine with either resizing the window or getting a bigger screen. Of course, this was a problem with the 14 inch screen of my previous laptop, too. And it was often a problem with the 20 inch screen I had when I used a desktop, unless I allocated an entire virtual desktop for a maximized browser. So perhaps it's not dependent on the screen size, after all. (I'd be happy to do experiments, if anyone wants to send me a couple of 30 inch TFT screens, though.)

Ian Murdock: LSB Developer Network launched

Last week, the Free Standards Group launched the LSB Developer Network, a community resource for developers building portable Linux applications via the LSB (read the press release and the introduction from LDN editor Martin Streicher). The LSB Developer Network (or LDN for short) aims to provide a well known starting point for developers looking to target the variety of Linux distributions available today without requiring a separate version for each distribution. It is the perfect complement to the LSB, which already provides a “highest common denominator” across the major distributions; and LSB Certification, which allows ISVs to indicate that their products will work with LSB Certified distributions. The big themes of LDN are “decentralized” and “bottom up”—to paraphrase Darrin Thompson, it’s a developer network that’s actually a network. In other words, we’re not taking the usual path of hiring a bunch of people to construct a centralized “network” from the top down—after all, Linux is a fundamentally decentralized phenomenon so shouldn’t a developer network for Linux be decentralized as well? Like the LSB, we see LDN as essential to the ultimate success of the Linux platform, an answer to similar programs for the centralized, proprietary platforms Linux competes with but built using the very techniques that make Linux what it is. Our fundamental belief is that “decentralized” doesn’t have to mean “fragmented”, and LSB and LDN are both key steps toward that end goal. We’re off to a good start too: LDN has the backing of a broad range of Linux platform stakeholders ranging from distribution vendors (Novell, Red Hat, Ubuntu) to OEMs (HP, IBM) and ISVs (MySQL, RealNetworks) to tools and content providers (O’Reilly, SlickEdit). One upcoming feature I’m particularly excited about is the integration of Safari Books Online. Soon, you’ll be able to type, for example, a function name into the LDN search box and get not just results from the link directory but also results from O’Reilly titles and others you know and love. We’re moving rapidly to add community content as well, including man pages and canonical reference documentation; and we’ll be hooking LDN into the LSB database, so you’ll be able to query the status of interfaces too, including whether or not those interfaces are in the LSB and what their status is in each of the major Linux distributions, to help make your applications as portable as possible. If you’re a Linux developer, and particularly if you use del.icio.us to bookmark resources on the web related to software development on Linux, I urge you to contribute to the LSB Developer Network. It’s easy: Simply create an account and link your account to your del.icio.us account (you don’t need to provide your del.icio.us password, just your username), and as you bookmark, tag, and annotate pages, your bookmarks, tags, and annotations will be pulled into the LDN directory. Help us build a developer network for Linux, bottom-up style!

John Goerzen: Managing Software

Recently I mentioned that I hate releasing software. It's true, and I've decided that the first part of fixing it is to tackle the presentation of software to the world.

My current scheme of darcs.complete.org for repositories plus bare directories on my gopher (yes, that gopher) site leaves a lot to be desired. There is no bug tracker, there are few screenshots, there is no consistency. It is also not easy to empower others to work on them directly.

At the same time, I am the sole or primary contributor to most of them. These are not huge kernel-sized projects. These are smaller, bite-size projects. So I don't want or need a lot of overhead. I've been thinking about my options.



Is anyone else thinking about this? What are your thoughts?

23 October 2006

John Goerzen: We need to follow the Amish example

Just a few weeks ago, the world heard the news of the tragic school shooting at an Amish school in rural Pennsylvania. A deranged man entered the schoolhouse, bound and gagged female hostages, brought along torture equipment, and shot 10 of them. 5 died, and the remaining 5 are believed to still be hospitalized.

Back in 1990, a deranged man committed a series of murders near the University of Florida campus in Gainesville. The story mentions 5 people that were killed.

Both were tragic situations. Both men killed people that had their whole lives in front of them. Both shook an entire community.

But look at how the communities responded. The Amish responded like this:

CNN reported a grandfather of one of the murdered Amish girls said of the killer on the day of the murder: "We must not think evil of this man."

Jack Meyer, a member of the Brethren community living near the Amish in Lancaster County, explained: "I don't think there's anybody here that wants to do anything but forgive and not only reach out to those who have suffered a loss in that way but to reach out to the family of the man who committed these acts," he told CNN.

The Amish have reached out to Roberts' family. Dwight Lefever, a Roberts family spokesman said an Amish neighbor comforted the Roberts family hours after the shooting and extended forgiveness to them.

An article in a Canadian newspaper the National Post stated that the Amish have set up a charitable fund for the family of the shooter. (Wikipedia)


In addition, the Amish invited the Roberts family to attend the funerals for the Amish girls he killed.

Gainesville reacted this way:

Dianna Hoyt, Christa Hoyt's stepmother, said Rolling's execution has been eagerly awaited by the victims' families. Some will be inside the prison to witness it. . .

Sadie Darnell, who was the police department's media spokeswoman at the time and developed enduring friendships with the victims' families, said Rolling's execution still matters, even if it also provides him more of the notoriety he sought.

"Retribution . . . is important because it represents that our society is holding that person accountable," said Darnell, now a candidate for Alachua County sheriff. (CNN)


We've all heard of murders that have taken place lately. Usually they are accompanied by calls by politicians, victim's family, and sometimes even clergy to kill the perpetrator. In the days after 9/11, there were reports of anybody that looked Middle Eastern being attacked in several different places around the country.

I have never understood this great desire for revenge. How does that help anyone?

What the Amish did was right religiously and morally. They truly followed the New Testament call to love your enemies and forgive. It is not easy to follow all of Jesus' teachings, and nobody said it would be. But they are doing it, and they have already begun healing. Reports are that the Roberts family has become friends with several of the Amish in the area, and they are working to help each other out after this horrible tragedy.

Even putting religion aside for a moment, the Amish actions are quite simply the right thing to do. By spreading love instead of hate, and friendship instead of revenge, they have succeeded in making sure that no cycle of violence starts there.

In contrast, 16 years later, the families of the victims in Florida still aren't healing. They are still angry and bitter. They are still seeking revenge. They hope that their lives will get back to normal after the murderer is killed. But after 16 years of stewing about it, will they really? And what about the family of the murderer, whose lives certainly must have been a mess for the past 16 years? They will now lose a family member. Does anyone care about them, or will they now turn angry at society and possibly spread the pain more?

Imagine what would happen if so many more people around the world took the Amish perspective -- to forgive those that wronged us. How long must it be before we can forgive? How far back do we spread our hate? Do we still hate those that were involved in 9/11, or can we forgive them? Do we still hate the Germans for what their ancestors did in World War II, or can we forgive them? Do we hate politicians with whom we strongly disagree, or think are liars? Do we still hate all those that have wronged us personally -- someone that stole something from us or the sadistic boss?

Knives, electric chairs, and bombs do not buy reconciliation. They can not "win over" the hearts of others. They do not make our lives easier. Hate brings more hate, and more resentment.

Forgiveness is not easy. We all hope that we will never be involved in such a tragedies as these. But let us follow the example the Amish have shown -- forgive for all things, big or small, important or not, painful or not.

Only then will we be at peace with ourselves, and only then will we have the chance to be at peace with our neighbors.

Wouter Verhelst: Rock migration finished

This weekend, I started modifying the way I use disk space on rock, my home desktop and server. rock used to be a PentiumIII running at 650Mhz, until I received an SMP box from Osamu Aoki when he moved back to Japan and couldn't take it with him. So rock is now a dual Celeron 433Mhz, and the machine that originally served as my desktop went on to replace pop, my parent's box. A little while later, rock's hard disk died, and I was left with a single 13G hard disk (or so I thought). At that point, I used the sarge installer to install rock on an LVM system, so that I could easily enlarge the volumes in the installation later on, without having to start copying files for no good reason. When I later on bought a second-hand 80G hard disk to add to the LVM system, I found that there were in fact two more hard disks inside rock, which simply hadn't been connected to the IDE controllers; one was 20G large, the other 40G. So I added them all, and enlarged all the volumes that could use some extra space. A while later, I started worrying. What if one of the disks would die? Reading the documentation, I found that I would lose all the LVM volumes that were on the dead disk, even if only partially. Obviously there's also an option to get LVM to mount partial volumes to get at the data that's still available, but it didn't sound too hopeful. In short, I became convinced that what I was doing wasn't all that sure for my data. Obviously I have backups of the important stuff, but avoiding failure is always preferable over having to use recovery procedures, even if they're good recovery procedures. So I decided that I would migrate to a setup that would use at least some redundancy; that way, I could stop worrying as much. And since I had four disks, there should've been a way to do that. I started partitioning, and found that I had overlooked a second 40G hard disk that rock was using; so rather than creating a RAID5 array on top of two 33G partitions (on the 40G and 80G disks) and one RAID0 array or something similar (combining the 13G and 20G disks), I decided to create a 40G RAID5 array composed of two 40G disks and one 40G partition on an 80G disk. All other disk space (the other 40G on the 80G disk, and the 20G and 13G disks) would be combined into an LVM volume group for less important data (such as the squid cache and other large parts of /var, swap space, and a bunch of digitized CD's of which I still have the originals). Also, the RAID5 array wouldn't just be one large volume or so; instead, I created another LVM volume group in the RAID array. Theoretically I could of course combine everything in one volume group and use pvmove and/or the right options on lvcreate to force important volumes on the RAID array, but then having separate volume groups for RAID/no RAID would force me to think carefully before managing volumes, which is never a bad idea. So on Friday I started moving data. This would involve running pvmove on a particular physical volume until all data would be removed from it; then run vgreduce -a <vgname> to remove the physical volume from it; use the just-freed drive to create new partitions on it to hold the live data; copy the live data over; and start doing pvmove again. Rinse, repeat, until all data is copied over and/or you've freed enough disks to create the RAID array. Luckily one can create a RAID array in degraded mode, or the procedure would've involved updating my backups, verifying them, wiping the hard disks, and reinstalling. As it is, I could get away with creating partitions that were just large enough to hold all data, and hoping people wouldn't try creating more data. I started working on this on Friday, and am just now, over 48 hours later, finishing up. It should've been possible to do all this in far less time; but rather than explaining what went wrong, let me just say, for the record, that I hate hardware. And that I should plan better. Anyway. The last stumbling block was the fact that the system simply wouldn't boot from the new root device. The reason was fairly obvious; the initrd was generated when mdadm was not installed yet, so had to be regenerated. But after calling yaird with the right options, it still wouldn't work. It took me a while to figure it out; but eventually, I found that yaird will read your /etc/fstab to find out about your root device; that it will see how it can get at that root device (where it's smart enough to know about md devices and LVM devices etc); and that it will then add the right software to the initrd based on that. Sure enough, my temporary root device that I had put outside of any LVM thing on /dev/hdb3 did have /dev/hdb3 as its root partition. So yaird didn't think mdadm was necessary. Heh. Quick edit fixed that. So now I have my important data on an LVM system on RAID5, and my less important data still on LVM. Me happy.

22 October 2006

Kenshi Muto: Tokyo Debian monthly meeting, October 2006

Yesterday, I had a chance to talk about Extremadura i18n meeting at Tokyo Debian monthly meeting. This meeting was organized by Junichi Uekawa and wonderfully 20 or more people came and filled the meeting room (awesome!), thanks! My paper is included in this PDF [in Japanese]. I picked up and spoke some themes from what we discussed at Extremadura; i18n task force, Pootle system, and language-pack/tdeb. PO-based translation has an advantage and a disadvantage. The tools support PO are mature and PO is very useful for the short messages. But using it for documents, such as manuals or Web pages is not so useful. Especially translating to Japanese sometimes add/delete/reform sentences. Some attendees suggested that we would always use the original XML (or something) format for translating/reviewing and have PO format in the central database. Masayuki Hatta pointed the license of translation. For example, Japanese is completely different from English, both words aren't always correspond 1 on 1... Translators use their creativity power. He said translators would have a copyright for their translation instead of original author. When I talked with Warren Togami was Fedora US leader last month at Tokyo, he said his project asked to agree "translation license agreement" to all translators. If we Debian or Debian-JP apply a central translation system like Pootle and use its translation memories, it's time to consider making similar license. Although current idea of Tdeb is still under the development, most attendees loved that idea rather than language-pack. For me, the goal of this meeting was not only speaking my experience report but recruiting more people for i18n/l10n working also. I'd like to recommend Nabetaro-san for next i18n meeting attendee instead of me, and Noritada Kobayashi for next of next. I strongly suggested attending next Debconf to them also. They are hardly working for Debian i18n/l10n in Japan. I hope attending such meetings expands their personal connections and motivations. There were two other sessions at the meeting. Matsuyama-san demonstrated creating Flash on Debian by using ming, and Junichi talked about profiling apt-get by oprofile tool. Both topics were interesting for me.

21 October 2006

Andreas Schuldei: Light at the end of the tunnel!

This seems to be a happy day for Debian. It certainly gave me the warm fuzzies when I read people's reactions to the Slashdot item, the steering committee, Madduck's and Joeyh's reflections on how things can work and some comments on IRC. It pleased me enough to get some new bloging infrastructure going in order to be able to chipe in.

There definitely is hope for Debian and change for the better is possible (and actually happens), as seen in the improved climate on IRC.

As with every change for the better, there is need of "positive crisis awareness" in order to reflect on possible changes, build momentum to overcome the status quo and implement changes in order to improve the situation step by step.

Crisis awareness is the awareness that there is a problem that needs solving. In contrast to negative crisis awareness, where one is paralyzed and unable to act on the danger and basically rolls over and dies, positive crisis awareness motivates to initiate change in order to avoid the crash and burn point and turn it into an opportunity of improvement, perhaps.

And exactly this is what I see emerge more and more: People who are no longer satisfied with the current situation and formulate thoughts on how to achieve improvement. A year ago we saw this with the hostile climate on mailing lists and IRC, now people realize that Debian has a lack of leadership, and that this is actually a problem.

We are still not the welcoming and friendly project we ought to be, but we are less hostile already and people know in what direction they want to move in the future (the more friendly one, thankfully). People have realized that hostility and pissing contests are evil and not a sign of l33tness, as some might have thought some time ago. But a culture change is happening, and if we stay on top of the issue we have a very good chance to not only omit the negative, hostile things we used to do but also come up with actively inviting and friendly things we can do.

The same is happening now (on a lesser scale so far) with the leadership area. The great thing is that if Debian takes up its issues and continuously improves there is hardly a limit to its potential. Not the first and strongest, but be the most persistent and patient will win in the end. And if we have incentive and urge to change we might just manage to keep up a continuous improvement process.

I think *that* incentive is the greatest thing we have to thank Ubuntu for.

Steve Langasek: Gotta make the donuts

Hmm, let's see if we can turn britney hint file comments into a blog entry... The apache 2.2 transition is coming along rather well. This is good news, giving us a shot at including a version of apache2 in etch with support for files > 2GB in size. Even though pervasive LFS support has been a goal in Debian since before sarge, when a big part of the interface your library exports to users deals with files it gets tricky to switch on LFS support because of ABI changes. After tagging for removal a number of apache2 modules with unrelated build problems, that leaves us with these issues blocking the transition: Nothing that a medium-sized hammer can't take care of... The release managers have also issued a statement about where we stand now for non-free firmware in etch. I'm sure this isn't anything close to the last word on the subject, but hopefully it will be enough to let us begin moving forward again instead of spinning our wheels on vote discussions.

20 October 2006

Biella Coleman: The Law in Shambles

Many moons ago, when I started my project on F/OSS I imagined that it would stay within the purview of anthropology, hacking, science and technology studies to bleed only a little bit into legal studies and only because I was dealing with the fraught politics of intellectual property law. As it turned out, the Law, with a capital L, as on object of analysis and site for the production of cultural value, turned out not to be peripheral but utterly central… And since, I have pretty much stayed within the territory of legal studies, vastly interested in the more invisible cultural and political effects of the law. Recent obsessing on this topic has led to a nascent thesis about law, discrimination, politics , and civil rights that I am looking to substantiate (so if anyone has any citations or helpful hints, do pass along) and it is this: When there are positive changes made in the law, it can come with various political costs. And the one I am interested in, is how, given other conducive conditions, legal changes that look awesome on paper, can work to undermine its potential by breeding a type of complacency of (in)action, largely because it seems as if the worst of the problems have been fixed. So if we look to the American legal context of 1960s and 1970s as a prime example, it is clear there was a heck of a lot of turmoil in the arena of civil rights, much of which, many liberals and progressives would say, led to positive legal transformation. During this period the content of many laws were purged of overt discrimination that, for example, which led a lethal blow to segregation and started to dismantle some of the worst pieces of scaffolding of mental health law (just to cite a few examples). At one level while we may easily recognize these changes as laudable and even perhaps “progressive,” the effects of it may be less so. Once legal content is purged of the ugly, this can breed an ugly form of complacency, in which the problem seems (re)solved, so people no longer feel guilt and attention is diverted away from any number of things, like: 1) new problems not necessarily addressed in the law 2) the rise of new laws or 3) the fact that the law is empty unless actively applied. I have yet to read anything directly related to this theory or apply it myself but it is something that has been on my mind for a couple of years now. But after talking about this topic from a friend, I decided to finally take crack at The Law in Shambles a Prickly Paradigm Press pamphlet by Thomas Geogheghan, a labor lawyer from Chicago. While it did not specifically address the issue I am raising (though it got pretty close in a number of places) I got more than I had bargained for; it is truly incisive (though frighteningly depressing) look at the current state of the law, and also, like so many of the PPP’s, much more fun to read than any most academic book or articles. For those who don’t know the PPP publish a series of short pamphlets and it was started by the legendary anthropologist, Marshal Sahlins, who is also known to be a little prickly himself (but it softened by his humor). They are often written by academics on contemporary topics of political interest (read: very biased) in a manner that is a lot looser and free wheeling than any article or book that would come out of an academic journal or publishing house. The PPP allows its authors to unbuckle a few notches off the sometimes uptight, constraining academic belt of writing and the result is often impassioned, funny, and yet remarkably astute essays. If Montaigne were around today, he would surely be proud of his essayistic legacy. The title of the book sums up the the topic at hand. His explanation as to why the (American) law is in disarray has not to do with the law in the abstract but with the total disintegration of a certain class of institutions and a specific class of law (namely unions , the law of trusts etc.). As institutional supports from the New Deal have been thrown out the door, it is the individual, largely through tort law, who has had to wield the fury of the law, in defense of a slew of individual rights and to defend themselves against new forms of attack (the worst being lawsuits brought forth by “charitable institutions” like hospitals). While the law is conceived as something we are all equal under, of course, it is access to the law, which makes all the difference in terms of making it a viable (or not) as social tool. With the demise of the unions, he argues, came the death of certain type of contract law in employment, and the stellar rise of tort law, which conceives of wrongful acts not as breaches of contract (which would apply to all persons under the contract) but as matters of personal injury. Whereas in the past unions would arbitrate contract law, wielding the power of numbers so that individuals were not burdened and burned with the expense (of time and money) of the law, with tort the law becomes formalized, conceived, and imagined in highly individual terms (even when grouped into class actions, it becomes a matter of proving personal injury), the effect of which, he argues is meaner and more complex than contract for four reasons 1) The name of the legal game is to discover motive, which is about as confusing as it can get and thus more arbitrary 2) It is more expensive than old contract law 3) Cases rarely go to trial (didn’t really get the importance of this point) 4) Because its focus is on motive and intense and subjective states, everything is open to scrutiny, so that I can force you to tell me everything what is in your secret heart. Not to mention in your tax returns. The result is torts produced a bitter, dog-eats-dog Hobbesian, legal world, which in turn makes for experiencing the law as an arbitrary force. This individualization of the law through tort also intersects with many other changes such as the demise of regulatory power that add more fire to the disintegration of the law and the subsequent experience of law and life as arbitrary. And it is this chapter (From Administrative Law to No Law, The Rise of the Whistleblower and Trail Lawyer) which got me a little closer to my own point that I brought up above. For example, he writes:
Once, when I filed suite to get the Labor Department to enforce the child labor laws for 16- and 17-year olds, kids whom they do not even pretend to protect, I got nowhere. I met with the Solicitor who told me: Look, suppose I agree with you. How would I ever get the money to enforce it? He was right. If I had won and they had issued regulations, it would have only been worse. In Labor, as in agency after agency, we have a vast complex body of law which would take mandarin to learn that no one enforces.. The law is there. On paper. Indeed, it is a lot of paper. How much paper? Fifty volumes, in paperback in total. I know because I counted. But as to big chunks in these volumes, there is no one there to enforce it. p. 48
Lots of paper I think can make people comfortable in thinking that famous Virginia Slims Slogan, We’ve come a long way, Baby, when it fact, it can often just means what it literally looks like, “Damn, that’s a buttload of paper.” There is a lot more packed into this tiny book, covering the deep gulf between left and right, the stagnation of an old constitution that is impossible to revise, the loss of accountability in all branches of government, the redrawing of districts, and the slight expansion and curbing of of majoritarian voting in the last hundred years. It gets a little shrilly by the end, but you know, it is all pretty upsetting stuff and it is good to shrill from time to time. Though he never refers to neoliberalism, capitalism, or postmodernism, this book is also a great companion to a class of this literature on the rise of fragmentation and instability in social and cultural life brought forth by changes in the economic system (thinking here of David Harvey, Fredric Jameson, etc). In fact, I think it does a much better job than at relaying how it is that vast sectors of society experience fragmentation, instability, and frustration.

19 October 2006

Jordi Mallach: Silent home servers

The computer which hosts this host is a venerable Pentium 150Mhz, with 64Mb of physical memory and two decently sized disks. It has been running non-stop mostly without hiccups for several years, and I'm quite happy with it, even if the processing power is so scarce I've been having to tune down some services as Debian has gotten more resource hungry, dist-upgrade after dist-upgrade. Natura is my 2nd oldest Debian install, coming back from Ham, and after a while it became a home server when it was replaced by an Athlon 700Mhz at my father's house. The only hardware incidents are all related to blackouts or storms: two dead disks and one power supply. The CPU died years ago, but I discovered that many months later. I guess it wasn't so necessary. :) It is time to replace natura, though. The components are aging and they have become quite noisy, despite my attempts to cleanup the dust. Lately it is so loud that I can't understand how my dad can actually get work done with that persistent noise in the room. Besides, it'd be good to get just a little bit more of CPU power to do a few things that have been postponed for a while now. I have been looking for offerings in the embedded devices market. I am looking for a device with the following characteristics: I've found that the Thecus YES Box N2100 is one of the most interesting offerings: 2 Gigabit ethernet ports, two internal SATA HD bays, 3 USB ports... but is a bit too expensive: 350 (without disks). tbm also told me to look at some cheaper PowerPC devices, but I forgot the name right now. So, dear Lazyweb, what would you recommend as a natura replacement for a home server?

Jordi Mallach: Silent home servers

The computer which hosts this host is a venerable Pentium 150Mhz, with 64Mb of physical memory and two decently sized disks. It has been running non-stop mostly without hiccups for several years, and I'm quite happy with it, even if the processing power is so scarce I've been having to tune down some services as Debian has gotten more resource hungry, dist-upgrade after dist-upgrade. Natura is my 2nd oldest Debian install, coming back from Ham, and after a while it became a home server when it was replaced by an Athlon 700Mhz at my father's house. The only hardware incidents are all related to blackouts or storms: two dead disks and one power supply. The CPU died years ago, but I discovered that many months later. I guess it wasn't so necessary. :) It is time to replace natura, though. The components are aging and they have become quite noisy, despite my attempts to cleanup the dust. Lately it is so loud that I can't understand how my dad can actually get work done with that persistent noise in the room. Besides, it'd be good to get just a little bit more of CPU power to do a few things that have been postponed for a while now. I have been looking for offerings in the embedded devices market. I am looking for a device with the following characteristics: I've found that the Thecus YES Box N2100 is one of the most interesting offerings: 2 Gigabit ethernet ports, two internal SATA HD bays, 3 USB ports... but is a bit too expensive: 350 (without disks). tbm also told me to look at some cheaper PowerPC devices, but I forgot the name right now. So, dear Lazyweb, what would you recommend as a natura replacement for a home server?

18 October 2006

Axel Beckert: Nice Shell Bloomer

While looking for users which still have “.” in their path, I found the following nice bloomer:
PATH= $PATH:.:$HOME/bin''
It’s obvious what the user tried to do. But why the fuck does this (more or less man or info page alike) quoting syntax work? It took me a moment to realise that this kind of “quoting” works in nearly all Unix shells: The two backquotes as well as the two single quotes become an empty string and are therefor completely useless in this case. The user probably read some uglily localized man or info page (like the German ones in Debian Sarge) and did some copy and paste to his .bashrc. And since it “worked” he didn’t see any reason to change it again.

Next.

Previous.