Search Results: "will"

24 January 2009

Norbert Tretkowski: Microblogging

Last week I finally decided to try out microblogging using Twitter. I am not going to post much personal stuff there (e.g. you will not find postings like "I am going to take a shower" there), but mostly technical (especially Debian and MySQL related) stuff, here are my updates.

Brice Goglin: Debian/X.org notes - Howto Input-hotplug?

I have been wondering for a while how to get X.org "input-hotplug" to work, but I never actually tried before today. It is actually fairly easy, once you know what to do. Requirements First, make sure you have the evdev X driver installed (xserver-xorg-input-evdev). You might want to use X packages from experimental since things are much more recent than in Lenny or Sid these days, and upstream improved input management in the meantime. Then, if you are not running a pre-packaged kernel, check the the evdev driver is enabled and loaded in your kernel (CONFIG_INPUT_EVDEV). Telling hal what to do with input devices Now, you need to tell hal how to configure your input devices. Actually, you do not have much to do since latest xserver-xorg-input-evdev packages bring what you need. hal reads all fdi files under /usr/share/hal/fdi/policy to find out how devices should be configured. If you run lshal and look for input, you should see that the evdev is planned to drive your input devices. However, if you look at keyboard devices in lshal (look for input.keys), you will see that the US layout is used. To switch to another layout, you can add some overriding rules as a new *.fdi file in /etc/hal/fdi/policy/. For instance, to get French layout:
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.keys">
      <-- Enforce XkbLayout=fr and XkbVariant empty -->
      <merge key="input.xkb.layout" type="string">fr</merge>
      <merge key="input.xkb.variant" type="string" />
    </match>
  </device>
</deviceinfo>
Thanks to this, you can enforce XkbLayout, XkbVariant and friends as usual in /etc/X11/xorg.conf. Don't forget to restart hal after modifying some fdi files. Then run lshal, and look for Xkb, you should find your setup there. Note that you can add some matching rules to configure some devices with different setups if needed. Just need to read the output of lshal and find something like a hardware identifier to match on. You can find some documentation about these rules by looking at the existing fdi files in /usr/share/hal/fdi/policy/20thirdparty/, and in the upstream x11-input.fdi (note that input.xkb.foo is the actual recommended syntax instead of input.x11_options.XkbFoo). Touchpads If you have a touchpad and want to use the synaptics driver, installing the xserver-xorg-input-synaptics will bring another fdi file. /usr/share/hal/fdi/policy/20thirdparty/11-x11-synaptics.fdi matches input.touchpad in the device capabilities in hal. Now the synaptics driver will be automagically loaded for your touchpad (instead of evdev for regular mice). Again, you can override this rule in /etc/hal/fdi/policy/ and you can add many configuration options for synaptics as well. See /usr/share/hal/fdi/policy/20thirdparty/11-x11-synaptics.fdi to get an example. Fortunately, you will not have to manually take care of the above /etc/hal/fdi/policy/ file for ever. The plan is to have hal look at the Debian console configuration and get at least the keyboard layout from there automatically. Telling the Xserver to talk to hal Now, you need to tell the Xserver to use what hal wants. Basically, you want to remove everything about keyboard, mouse and other input devices from your xorg.conf. Just drop all InputDevice sections and all references to them within other sections. With recent Xserver versions, options AllowEmptyInput and AutoAddDevices are enabled by default (otherwise, you might have to add them in the ServerFlags section). For more documentation, you want to read Peter Hutterer's blog, especially this post and this one. By the way, if you don't want this input-hotplug thing and you want to run a recent Xserver anyway, you should set AllowEmptyInput and AutoAddDevices to off in the ServerFlags section. Update: Fixed the way to manage fdi files, fixed the syntax of input.xkb.foo rules, added a paragraph about synaptics, and organized things in sections. Thanks to everybody's comment.
(Permanent link)

Brice Goglin: Debian/X.org notes - Xserver 1.6, Intel 2.6.1, ... what's up in XSF?

It has been a while since my last post here. Not because nothing happened, but mostly because I did not have time to do much for X. Fortunately, Julien is taking good care of X in Debian so we are still close to latest upstream bits. Obviously, due to Lenny's freeze, everything is happening in experimental these days. Xserver 1.6 The release Xserver 1.6 is expected in the near future. 1.6-rc1 (1.5.99.901) entered experimental recently. Both video and input driver ABIs changed and very few drivers have been rebuilt so far. So if you're not running Intel or Radeon, you might not be able to upgrade yet. Please be patient :) You might have heard that many things are happening in X.org these days: DRI2, kernel-modesetting (KMS), RandR 1.3, ... Everything is not ready yet, but it's getting close for real. Radeon 6.10.0 and Intel 2.6.1 Radeon driver 6.10.0 was released in early 2009. As usual, it brings many fixes, and improvements for modern boards (see Alex Deucher's blog for details). However, Radeon is not ready for above DRI2 and KMS yet. Most of the development for these new features is first done in the Intel driver, which got recently bumped to 2.6.1 as well. DRI2 DRI2 is the new Direct Rendering Infrastructure. The most noticeable change from the user point of view is support for Redirect Direct Rendering, which basically means that your 3D application can be wobbly/transparent in Compiz. See Kristian H gsberg's blog for details. If you want to try DRI2 on Intel, you have to enable UXA as the acceleration architecture in xorg.conf (Option "AccelMethod" "UXA" in the Device section). DRI2 will then be enabled automatically. Then, it may or may not work, depending for instance on the hardware. I get a black screen at startup on i865 while i945 works fine until I start Compiz (the server suddenly exits for some reason then). Note that you probably want to upgrade your Mesa packages to experimental as well here (7.3 has been released recently). Of course, running git snapshot of various components (Mesa, libdrm, kernel drm, Intel driver, ...) may help since the released versions seem to not be entirely ready yet. But, things should may be ready to use for everybody in the near future. Kernel Modesetting The other nice feature that makes a lot of noise in X.org these days is Kernel modesetting (KMS). It moves the management of mode (aka resolution+rate) into the kernel. It helps support for switching between different users' sessions, enables reporting of kernel messages (oops, panics, ...) while X is running, and reduces the need to blank the screen during boot (since the kernel can setup the display early and X doesn't have to change it later independently). KMS testing requires a bleeding-edge kernel (2.6.29). Using a git snapshot of the drm stack is probably a good idea as well since I couldn't get KMS to work on 2.6.29-rc2 here. Again only Intel will support KMS soon, but other drivers will follow. Panning is back (aka RandR 1.3) Xserver 1.6 brings support for the 1.3 version of the RandR X extension. Among other improvements, it reintroduces one feature that many users miss since it was removed back in Xserver 1.3 or so. "Panning" (often referred to as "Virtual Desktop") gives the ability to move the display within a larger screen when the mouse approaches from the border. Instead of being configured with the Virtual option in xorg.conf (this option means something else nowadays), it may now be enabled/tuned with xrandr --panning. You'll need the latest libxrandr2 and xrandr utilities to do so (the latter is not uploaded yet).
(Permanent link)

Uwe Hermann: Recovering from a dead disk in a Linux software-RAID5 system using mdadm

RAID5 failure As I wrote quite a while ago, I set up a RAID5 with three
IDE disks at home, which I'm using as backup (yes, I know that
RAID != backup) and storage space. A few days ago, the RAID was put to a real-life test for the first time, as one of the disks died. Here's what that looks like in dmesg:
raid5: raid level 5 set md1 active with 3 out of 3 devices, algorithm 2
RAID5 conf printout:
 --- rd:3 wd:3
 disk 0, o:1, dev:hda2
 disk 1, o:1, dev:hdg2
 disk 2, o:1, dev:hde2
[...]
hdg: dma_timer_expiry: dma status == 0x21
hdg: DMA timeout error
hdg: 4 bytes in FIFO
hdg: dma timeout error: status=0x50   DriveReady SeekComplete  
ide: failed opcode was: unknown
hdg: dma_timer_expiry: dma status == 0x21
hdg: DMA timeout error
hdg: 252 bytes in FIFO
hdg: dma timeout error: status=0x50   DriveReady SeekComplete  
ide: failed opcode was: unknown
hdg: dma_timer_expiry: dma status == 0x21
hdg: DMA timeout error
hdg: 252 bytes in FIFO
hdg: dma timeout error: status=0x58   DriveReady SeekComplete DataRequest  
ide: failed opcode was: unknown
hdg: DMA disabled
ide3: reset: success
hdg: dma_timer_expiry: dma status == 0x21
hdg: DMA timeout error
hdg: 252 bytes in FIFO
hdg: dma timeout error: status=0x58   DriveReady SeekComplete DataRequest  
ide: failed opcode was: unknown
hdg: DMA disabled
ide3: reset: success
hdg: status timeout: status=0x80   Busy  
ide: failed opcode was: 0xea
hdg: drive not ready for command
hdg: lost interrupt
hdg: task_out_intr: status=0x50   DriveReady SeekComplete  
ide: failed opcode was: unknown
hdg: lost interrupt
hdg: task_out_intr: status=0x50   DriveReady SeekComplete  
ide: failed opcode was: unknown
That's when I realized that something was horribly wrong. Not long after that, these messages appeared in dmesg. As you can see the software-RAID automatically realized that a drive died and removed the faulty disk from the array. I did not lose any data, and the system did not freeze up; I could continue working as if nothing happened (as it should be).
 md: super_written gets error=-5, uptodate=0
 raid5: Disk failure on hdg2, disabling device.
 raid5: Operation continuing on 2 devices.
 RAID5 conf printout:
  --- rd:3 wd:2
  disk 0, o:1, dev:hda2
  disk 1, o:0, dev:hdg2
  disk 2, o:1, dev:hde2
 RAID5 conf printout:
  --- rd:3 wd:2
  disk 0, o:1, dev:hda2
  disk 2, o:1, dev:hde2
This is how you can check the current RAID status:
 $ cat /proc/mdstat
 Personalities : [raid6] [raid5] [raid4] 
 md1 : active raid5 hda2[0] hde2[2] hdg2[3](F)
       584107136 blocks level 5, 64k chunk, algorithm 2 [3/2] [U_U]
The "U_U" means two of the disks are OK, and one is faulty/removed. The desired state is "UUU", which means all three disks are OK. The next steps are to replace the dead drive with a new one, but first you should know exactly which disk you need to remove (in my case: hda, hde, or hdg). If you remove the wrong one, you're screwed. The RAID will be dead and all your data will be lost (RAID5 can survive only one dead disk at a time). The safest way (IMHO) to know which disk to remove is to write down the serial number of the disk, e.g. using smartctl, and then check the back side of each disk for the matching serial number.
 $ smartctl -i /dev/hda   grep Serial
 $ smartctl -i /dev/hde   grep Serial
 $ smartctl -i /dev/hdg   grep Serial
(ideally you should get the serial numbers before one of the disks dies) Now power down the PC and remove the correct drive. Get a new drive which is at least as big as the one you removed. As this is software-RAID you have quite a lot of flexibility; the new drive doesn't have to be from the same vendor / series, it doesn't even have to be of the same type (e.g. I got a SATA disk instead of another IDE one). Insert the drive into some other PC in order to partition it correctly (e.g. using fdisk or cfdisk). In my case I needed a 1 GB /boot partition for GRUB, and the rest of the drive is another partition of the type "Linux RAID auto", which the software-RAID will then recognize. Then, put the drive into the RAID PC and power it up. After a successful boot (remember, 2 out of 3 disks in RAID5 are sufficient for a working system) you'll have to hook-up the new drive into the RAID:
 $ mdadm --manage /dev/md1 --add /dev/sda2
 mdadm: added /dev/sda2
My new SATA drive ended up being /dev/sda2, which I added using mdadm. The RAID immediately starts restoring/resyncing all data on that drive, which may take a while (2-3 hours, depends on the RAID size and some other factors). You can check the current progress with:
 $ cat /proc/mdstat 
 Personalities : [raid6] [raid5] [raid4] 
 md1 : active raid5 sda2[3] hda2[0] hde2[2]
       584107136 blocks level 5, 64k chunk, algorithm 2 [3/2] [U_U]
       [>....................]  recovery =  0.1% (473692/292053568) finish=92.3min speed=52632K/sec
As soon as this process is finished you'll see this in dmesg:
 md: md1: recovery done.
 RAID5 conf printout:
  --- rd:3 wd:3
  disk 0, o:1, dev:hda2
  disk 1, o:1, dev:sda2
  disk 2, o:1, dev:hde2
In /proc/mdstat you'll see "UUU" again, which means your RAID is fully functional and redundant (with three disks) again. Yay.
 $ cat /proc/mdstat
 Personalities : [raid6] [raid5] [raid4] 
 md1 : active raid5 sda2[1] hda2[0] hde2[2]
       584107136 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]
Btw, another nice utility you might find useful is hddtemp, which can check the temperature of the drives. You should take care that they don't get too hot, especially so if the RAID runs 24/7.
 $ hddtemp /dev/hda
 dev/hda: SAMSUNG HD300LD: 38  C
 $ hddtemp /dev/hde
 dev/hde: SAMSUNG HD300LD: 44  C
 $ hddtemp /dev/sda
 dev/sda: SAMSUNG HD322HJ: 32  C

23 January 2009

Josselin Mouette: On the good use of compiler warning flags

The gnome-power-manager developers like clean code. Actually, more than clean code: code that will not generate a single nitpicking warning. The package builds with the following C compiler flags:
-Werror -Wcast-align -Wno-uninitialized -Wall -Wformat-security
Sometimes the compiler is more clever than the coder On the SPARC architecture, -Wcast-align really starts to mean something. Unlike most other architectures, any alignment error on here will leave you gather your teeth spread on the floor after you ve been hit by a SIGBUS. It tries to catch at build time alignment errors resulting from a cast between pointers to different types. Together with -Werror, it triggered a first FTBFS bug. The error occured on the following code:
        if (XRRGetOutputProperty (brightness->priv->dpy, output, brightness->priv->backlight,
                                  0, 4, False, False, None,
                                  &actual_type, &actual_format,
                                  &nitems, &bytes_after,  ) != Success)  
                egg_debug ("failed to get property");
                return FALSE;
         
        if (actual_type == XA_INTEGER && nitems == 1 && actual_format == 32)  
                *cur = *((int *) prop);
                ret = TRUE;
         
        XFree (prop);
        return ret;
More precisely, the error occurs when casting prop (which is an array of pointers) into an int *. The compiler is clearly right. The alignment requirements are different for a pointer and an integer; therefore, casting a pointer to a pointer into a pointer to an integer will always work, but dereferencing the pointer later will possibly cause a crash. Turning this expression into a memcpy leads to code that should always work. Lesson learned: do not design APIs where an array of pointers can actually store integers. Have you ever heard of opaque structures? and sometimes it is not This was not enough and a second FTBFS bug showed up. Here, the error happens in the following code:
static inline GstBuffer *
gst_buffer_ref (GstBuffer * buf)
 
  /* not using a macro here because gcc-4.1 will complain
   * if the return value isn't used (because of the cast) */
  return (GstBuffer *) gst_mini_object_ref (GST_MINI_OBJECT_CAST (buf));
 
GstBuffer is a structure which contains a GstMiniObject at the beginning. Therefore, you conduct operations on the GstMiniObject through a mere cast. The first cast (GstBuffer GstMiniObject) is fine, but in the second cast (GstMiniObject GstBuffer), the compiler suspects a problem, since the alignment requirements on GstBuffer are stronger than those on GstMiniObject. The compiler is wrong because it didn t read the API documentation; otherwise, it would have known that gst_mini_object_ref can only return NULL or its argument, which means there can t be any loss of alignment. Since there are no function attributes to express such complex things, we are still forced to rely on the developer having correctly read the documentation. Way to go, compiler. Lesson learned: there are good reasons why some warnings are not part of -Wall. Especially, it is dubious to use them with -Werror. Does anyone know whether it is possible to apply -Werror only to some of the warnings and not to all of them? It would sound like a useful improvement.

Ingo Juergensmann: Seagate Firmware Problems

Some time ago I've blogged about the downside of large disks being long the huge amount of time that it needs to check them with badblocks for medium errors.

As I told there, I bought two Seagate Barracuda ES.2 ST31000340NS and most of you might have heard about the firmware problems of those disks from Seagate. Seagate writes:

*Please email discsupport@seagate.com to request a firmware upgrade if your drive is on a release earlier than SN06.

Please include "ES.2" in the subject line of your email request for proper routing.


Well, I did write last week already, but haven't got any reply yet. This morning I mailed Seagate again, but no reaction so far until afternoon. Not even an automated "We got your mail and will answer it!" mail.
So, if you're in a similar situation you might ask yourself: "How can I get those firmware updates for my ES.2 drives then?"

Well, for me this trick worked quite fast:

  1. Go to the Seagate Contact Page
  2. Choose your region and country of Technical Support
  3. Click on "Chat" and wait...
  4. ... and wait...
  5. ... and wait...
  6. ... and wait...
  7. Request your firmware update from the friendly support staff that appeared somewhen
  8. Check your emails
  9. Follow the instructions in that mail



Yes, I've had to wait nearly one hour until someone showed up in that chat window, but then it worked quite nicely: I've got my email, downloaded that ZIP file and ... no! I didn't updat the firmware yet. I think I'll wait some more days, maybe until next week, and see if this firmware update is now working properly for others.
Maybe some will call me a coward, but I'm just following those friendly letters on that specific book you all know:

Don't Panic!

My disks are still working and my UPS does so as well. So, no need to hurry... But it's good to know that I could upgrade if I would like to... :->

Sylvain Le Gall: OCaml meeting 2009, subscription about to end

The subscription will end on January the 25th, for people willing to come to this unique OCaml event, this is your last chance !!!! We have 40 participants for now. I am quite happy with this number because it is almost the same as last year -- except that we do it in Grenoble rather than Paris. Anyway, I see that a lot of people who were there last year, will come back to this year events. There is also a few more people, in particular more from CAML consortium members. I have stepped down from the first talk about OCamlCore.org in favor of Stefano Zacchiroli. Zack has really helped me on this project since the begin (with Pietro Abate and Romain Beauxis). I am very happy that he can do the talk. I will do myself, a talk about my last project for Talend. This was a great project targeting to be as fast as a standard C application but in OCaml. The point is that OCaml helped me to do quickly a working prototype and then optimize it for speed. All in all, after 6 months I was able to deliver Talend with a working and fast application. This kind of release cycle is harder to achieve in other programming language. OCaml compile time verification helped me a lot. I hope that in the last remaining 2 days, some more people will subscribe. Wiki Subscription

Andrew McMillan: LCA2010 in Wellington, New Zealand

The news is out now, that Wellington will be hosting LCA 2010. As someone on the core team for that (potential sponsors please contact me sooner rather than later :-) I really hope we can do something as awesome as the current week we've had here in Hobart. Thanks to all of the Hobart team for doing a great job.

Robert McQueen: Auctions, Beards, Conferences and Devils

Tuz, coming soon to a Linux kernel near you
It s the last day of the most awesome linux.conf.au 2009 conference in Hobart, Tasmania. I ve just witnessed the a room full of 500 people sit with baited breath as Linus wielded a set of clippers to shave Bdale Garbee s beard, followed by Bdale (with a razor with 3 more blades than last time he shaved, a tiny bowl of water and a hand-mirror) trying to make it look neater. The LCA twitter feed was up on the projector, and someone rightly observed this whole event was actually pretty weird. There are already pictures on flickr too. However, well done to Bdale for being such a good sport, but it looks like his wife Karen will accompany him next year to make sure he doesn t agree to anything else like this, and supervise the waxing of Rusty s chest :) What s this all in aid of? After the incredible auction for this beautiful picture from Karen, and generous donations at the Penguin Dinner on Wednesday night, the conference has now raised between AU$ 35k and 40k towards the Save the Tasmanian Devil appeal. Around AU$ 1.3k of the nonsensical winning consortium s AU $10.6k bid came from the Collabora folks who were at the dinner, and AU$ 1.2k from Collabora and Collabora Multimedia directly. We were all set to place a winning AU$ 3k bid but then Matthew and Daniel came up with the Bdale shaving scheme, and then things really picked up. I m glad we took part - the lead scientist from the project was really grateful, and I hope the money can make a real difference to their great work.
Telepathy
On more mundane matters, I also gave my talk this morning, and my slides (Telepathy slides v2.0 thanks to Marco) are online. I also made a few demos of new awesome stuff you can do with Telepathy (most of the patches are already merged upstream or well on the way): On that note, these were just the five that I picked to try and fit into my talk. There are a load more demos in the pipeline from the other guys in Collabora of doing stuff with Telepathy, so keep a close look on Planet Collabora for the next cool thing.

22 January 2009

Benjamin Mako Hill: Annual Free Software Foundation Fundraiser

When I explain the importance of free software, I often use some variation of the following example:
Suppose I see a beautiful sunset and I want to describe it to a loved one on the other side of the world. Today's communication technology makes this possible. In the process, however, the technology in question puts constraints on message communicated. For example, if I pick up my cellphone, my description of the sunset will be limited to words and sounds that can be transmitted by phone. If I happen to have a camera phone and the ability to send a picture message, I will be able to communicate a very different type of description. If I'm limited to 150 characters in an SMS message, my message will be constrained differently again.
The point of the example is this: the technology I use to communicate puts limits and constraints on my communication. Technology defines what I can say, how I can say it, when I can say it, and even who I can say it to. This is neither good nor bad. It is simply the nature of technology. But it means that those who control our technology control us, to some degree. As information technology becomes increasingly central to our lives, the way we experience, understand, and act in the world is increasingly controlled by technology and, by extension, by those who control technology. I believe that the single most important struggle for freedom in the twenty first century is over the question of who will set these terms. Who will control the technology that controls our lives? Free software can be understood as an answer to this question: An answer in the form of an unambiguous statement that technology must be under the control of its users. When free software triumphs, we will live in a world where users control their technological destiny. We simply cannot afford to fail. The Free Software Foundation is the most important organization fighting for the rights of users in this struggle. Here are some of the ways that I plan to direct the FSF to support software freedom in the coming year:
Network Services Last year, the FSF organized a meeting on software freedom and network services that lead to the creation of the Autonomo.us group and the release of the Franklin Street Statement on Freedom and Network Services. As network services --- like those built by Facebook, Google, and others --- continue rise in popularity, progress in this conversation is of increasing importance. This year, I will direct the FSF to build on the work of Autonomo.us to launch the first of what I hope will be several FSF position statements on software freedom and network services. More importantly, the FSF will begin to provide support and planning for solutions --- technologies, social campaigns, and legal steps --- that will protect computer users whose freedom is currently threatened by network services. Enforcing free software licenses Early on, people who decided to work on free software did so because they agreed with --- or, at the very least, were willing to abide by --- the principles and rules laid out in our licenses. In our push for software freedom, we have created software of immense value and attracted companies and individuals to our community who are less willing, or simply less interested, in protecting users' freedom. In December 2008, the FSF went to court for the first time in the organization's history to force Cisco to uphold the freedom of the users of FSF copyrighted software. This lawsuit asks Cisco to live up to its obligations under the GPL and to ensure that it does so in the future. The FSF needs the support of its community in this and in future enforcement actions. The FSF has operated a compliance lab for several years and has ensured software freedom for countless users. As free software becomes more successful in the next year, the FSF will be playing an increased role in protecting software freedom from those who do not share its principles. Continuing the fight against software patents As I said last year, one cannot write non-trivial software today without running a serious risk of infringing patents. The software patent minefield we've found ourselves in is a very fundamental threat to the success of free software and we've already begun to see the first casualties and costs. We must eliminate software patents. Now. The FSF will continue its work toward this end. The FSF's End Software Patents project's major contribution this year was a brief submitted in the In Re Bilski case at the U.S. Court of Appeals for the Federal Circuit. Recently, an opinion was issued which seems to mark an important shift away from broad protection for software patents. With this victory, now is the time to keep up this momentum. The FSF is drawing up a strategy to do just this and will be announcing the relaunch of its campaign on February 9,2009 led by Ciaran O'Riordan.
Every recent fundraising appeal seems to mention the difficult economic climate and it seems to cliche to do so here. That said, the effect of a bad economy is, in fact, felt most strongly in non-profits dependent on donations. The FSF is not immune. The FSF's work is essential for success on the issues I've described here and on all of its other campaigns and projects. Although the cost of a membership or donation may be less easy to afford this year for many of you, the free software movement cannot afford a weakened FSF at this important moment. If you are not an FSF associate member, now is the time to become one. If you are already a member, please join me in giving generously through a tax-deductible donation. The FSF is a very lean, very humble organization of passionate and dedicated individuals working tirelessly for software freedom. Every single gift makes a difference.

David Welton: Github Part III

Since this seems to be fairly constructive, I'll keep going. Those not interested in Github, or the dynamics of open source code creation can safely tune out. Chris, the Github dude, has some more to say: http://ozmm.org/posts/forking_continued.html
I mentioned the Network Graph and Fork Queue but David mentioned neither. I think he doesn t know what they are, probably because I didn t explain what they are :)
I had had a look at them, and they're handy tools (I would never accuse Github of not doing good work, that's not the issue at all), but I would respectfully submit that perhaps Chris is looking at things from a very Github-centric perspective, in which it's second nature to go look at those. They aren't obvious, and certainly don't jump out at the user to say "hey, maybe this code your looking out isn't the latest and greatest!". For someone just cruising around, perhaps it should be more evident who's the 'top dog'? Chris then goes on with a very helpful and illustrative demo of how things work at Github, which is good stuff. However, at the end, he says something that I don't agree with:
It may seem strange, and perhaps even like a lot of work. Why should I have to check to see which is the most current? In the old model, there s always a canonical repository.
That's precisely the problem. It does seem like a lot of work, especially when your search space is not limited to Github, but may include other places like Sourceforge, RubyForge, Google Code, project specific sites, and so on.
In the old model, actionwebservice wouldn t have made it past 1.2.6. Welcome to distributed version control.
Plenty of 'old style' projects have survived beyond their founders' interest in the project. What happens is that you ask for permission to work on the project, and either :
  1. It's given to you, in which case you can keep working on the canonical code. For instance, someone could have asked DHH to work on the RubyForge version of actionwebservice. Did they? Did he say no? At the very least, he could have been asked to point the RubyForge actionwebservice page at some other site with a more current version of the code.
  2. You have to fork the project, and in that case, sure, you might as well have been using the Github model.
I've often found that people are happy to let you contribute to their projects, though, and part of my original point with all of this is that if people just go spitting out forks willy-nilly, it creates a "paradox of choice" type problem, and perhaps takes something away from the community aspect of open source projects. As people are fond of saying at the Apache Software Foundation, it's about the people, not necessarily about the code. I'm not saying that forks are always bad and that everything should be centrally done, but there's a balance to be struck between people just working on their own, and some sort of onerous, bureaucratic Central Project Authority. It's nice that people who want to improve the code make themselves heard on a mailing list/forum/whatever, and thus cover the "people" part of merging in new code and new ideas. More often than not, help and contributions are more than welcome. Design decisions and conversations recorded on mailing lists are available for people to peruse in the future when they have questions. Just to repeat something that bears repeating: I am not claiming that Github will lead to social disintegration of open source projects or anything drastic like that. However, I'm a bit wary of certain patterns I've seen. It's certainly possible that I'm wrong - as I mentioned, one error I might be making is that people are dumping code they simply wouldn't have shared on Github, because Github makes it so easy. I do hope my worries are unfounded, and in any case, it's a good thing that the Github guys are interested in the problem too, and will hopefully do things to alleviate it where possible.

David Welton: Github Part III

Since this seems to be fairly constructive, I'll keep going. Those not interested in Github, or the dynamics of open source code creation can safely tune out. Chris, the Github dude, has some more to say: http://ozmm.org/posts/forking_continued.html
I mentioned the Network Graph and Fork Queue but David mentioned neither. I think he doesn???t know what they are, probably because I didn???t explain what they are :)
I had had a look at them, and they're handy tools (I would never accuse Github of not doing good work, that's not the issue at all), but I would respectfully submit that perhaps Chris is looking at things from a very Github-centric perspective, in which it's second nature to go look at those. They aren't obvious, and certainly don't jump out at the user to say "hey, maybe this code your looking out isn't the latest and greatest!". For someone just cruising around, perhaps it should be more evident who's the 'top dog'? Chris then goes on with a very helpful and illustrative demo of how things work at Github, which is good stuff. However, at the end, he says something that I don't agree with:
It may seem strange, and perhaps even like a lot of work. ???Why should I have to check to see which is the most current? In the old model, there???s always a canonical repository.???
That's precisely the problem. It does seem like a lot of work, especially when your search space is not limited to Github, but may include other places like Sourceforge, RubyForge, Google Code, project specific sites, and so on.
In the old model, actionwebservice wouldn???t have made it past 1.2.6. Welcome to distributed version control.
Plenty of 'old style' projects have survived beyond their founders' interest in the project. What happens is that you ask for permission to work on the project, and either :
  1. It's given to you, in which case you can keep working on the canonical code. For instance, someone could have asked DHH to work on the RubyForge version of actionwebservice. Did they? Did he say no? At the very least, he could have been asked to point the RubyForge actionwebservice page at some other site with a more current version of the code.
  2. You have to fork the project, and in that case, sure, you might as well have been using the Github model.
I've often found that people are happy to let you contribute to their projects, though, and part of my original point with all of this is that if people just go spitting out forks willy-nilly, it creates a "paradox of choice" type problem, and perhaps takes something away from the community aspect of open source projects. As people are fond of saying at the Apache Software Foundation, it's about the people, not necessarily about the code. I'm not saying that forks are always bad and that everything should be centrally done, but there's a balance to be struck between people just working on their own, and some sort of onerous, bureaucratic Central Project Authority. It's nice that people who want to improve the code make themselves heard on a mailing list/forum/whatever, and thus cover the "people" part of merging in new code and new ideas. More often than not, help and contributions are more than welcome. Design decisions and conversations recorded on mailing lists are available for people to peruse in the future when they have questions. Just to repeat something that bears repeating: I am not claiming that Github will lead to social disintegration of open source projects or anything drastic like that. However, I'm a bit wary of certain patterns I've seen. It's certainly possible that I'm wrong - as I mentioned, one error I might be making is that people are dumping code they simply wouldn't have shared on Github, because Github makes it so easy. I do hope my worries are unfounded, and in any case, it's a good thing that the Github guys are interested in the problem too, and will hopefully do things to alleviate it where possible.

Daniel Kahn Gillmor: Trancendental Nonsense and the Functional Approach

Poking around the web site for Law in Contemporary Society, a class taught this semester by Eben Moglen, (who is counsel for the Free Software Foundation and founder of the Software Freedom Law Center), i found Felix Cohen's Trancendental Nonsense and the Functional Approach, which (according to wikipedia) is one of "the most-cited law review articles ever written". I haven't read the whole thing yet (and i'm neither a lawyer nor a philosopher) but it's fascinating reading. And from what i've read so far, it's a strong push toward directly addressing the values that lie hidden beneath our technical or mechanical decisions, and to avoid mistaking technical success or skill with a worthwhile outcome and clear goals at a societal level. This is something we software developers and system administrators struggle with as well (or at least i think we should). It's neat to get my head around these concepts from a different intellectual sphere, and a different era (74 years ago!) when the technical and mechanical tools i work with didn't exist in anything like their present form. This kind of reading makes me wonder what works from Computer Science or Systems Engineering or Information Technology will have this kind of exhortative power and social relevance so far into the future. Do you have a favorite (or abhorred?) text from your field that offers the kind of moral and technical challenges that Cohen's work does?Tags: law, moglen, philosophy

John Goerzen: Hope

Our power alone cannot protect us, nor does it entitle us to do as we please. . . Our security emanates from the justness of our cause; the force of our example; the tempering qualities of humility and restraint. - Barack Obama, inaugural speech, Jan. 20, 2009
This, right here, is why, for the first time in my life, I actually feel good about an American president. Why I have hope about our government for the first time in years. Why I m glad I used a vacation day to sit on the couch and watch TV yesterday. On the occasion, once every 4 or 8 years, that is a celebration of American strength, power, and pride, we see our new president speaking of humility, of peace, of moral leadership, this is something remarkable. Past presidents have used occasions such as these to speak of crushing our enemies, of wanting people dead or alive, of grand government promises that turned out to triple the national debt. Obama spoke of extending the hand of friendship to anyone that would unclench their fist. He spoke that we had kicked the can down the road too far, and now we ve reached the end of the road. We have to stop thinking that we can have everything: low taxes, expensive programs, and a large military, simply by mortgaging our future. And he leveled with us: we all are in this together, and all have to work to make it better. Conventional politicians assumed it would be political suicide to say even half of what Obama has said. Yet he went out there and did it. He was blasted during the campaign by people on both sides of the political spectrum for being just words . He s the first presidential candidate that meant what he said about bringing Americans, and their representatives, together. The shock in Washington has he invited gasp! both an openly gay bishop and an anti-gay evangelical minister to give prayers was telling. It s as if people were saying, Wait, he really MEANT that? Yes, he did. Let s hope he can pull it off. And as Rev. Lowry concluded with his benediction:
With your hands of power and your heart of love, help us then, now, Lord, to work for that day when nations shall not lift up sword against nation, when tanks will be beaten into tractors, when every man and every woman shall sit under his or her own vine and fig tree and none shall be afraid, when justice will roll down like waters and righteousness as a mighty stream. . . Let all those who do justice and love mercy say Amen. (amen) Say Amen! (Amen!) Say Amen! (AMEN!)

Andrew McMillan: Seeing my photo

Today in Anton Hughes talk at LCA 2009 I saw my photo of Eben Moglen up on the big screen. Woohoo! :-) As with most of the photos I have put on Wikimedia Commons it is released under PD-Self, so it will be interesting whether he chooses to credit me or not. He seems to have a pretty good argument, and I hope that this gets visibility and acceptance in the legal community over time. The free software audience is pretty sympathetic, of course.

21 January 2009

Joachim Breitner: darcswatch uploaded to hackage

I just made my first upload to hackage (not counting uploads I did during my work in Dresden). Don Steward repeatedly told me to package and upload darcswatch, so I just did that. Thanks to Gwern Branwen to contribute the first cabal file.There is little documentation on how to set up darcswatch yourself, so if you actually want to try it out, you most likely will have to get in touch with me. Note that you can just use the installation on http://darcswatch.nomeata.de/.If you, for some reason, feel like hacking on darcswatch, I d be interested in memory reduction. I currently process 916 mails containing 1867 patches and 47MB, as well as 13 repositories, some of which are rather large, and the numbers are increasing.

Miriam Ruiz: In support of Patio Maravillas

Patio Maravillas is a self-managed government-independent social center in Madrid, placed in a squatted building that long ago belonged to school. The place currently belongs to a Real Estate company, Grupo 2 Reunidos. According to the law, the place has to be used for providing services to the community, which hasn t happened for 10 years. Nobody knows what plans they do have for the building, but there are suspicions that it might be related to property speculation. Nothing new on the horizon. The police are throwing them out of the building tomorrow morning, incidentally coinciding with the opening of the Foro Social Mundial (World Social Forum), for which Patio Maravillas was going to be one of the hosting buildings. Madrid isn t really known for supporting social movements in general, and has a conservative government, so feel free to think that the coincidence is not random. Patio Maravillas has been giving courses and workshops to the community since July 2007, and is very well considered and supported by different organizations. Supposedly whatever happens tomorrow will be without violence, but knowing how the Spanish Police behaves in this situations that is not very likely. The event will be streamed and probably recorded, and information will be twittered, so hopefully nothing serious will happen. I really hope the best for them. I d love to be able to be there with them, but as it is really not possible for me, I m giving them all my support from here. Good luck! Keep up the good work!

MJ Ray: SPI January 2009

The monthly board meeting of SPI will take place on irc.oftc.net #spi tonight (Wed 21 Jan) at 20:00 UTC. Members may have seen that the meeting announcement is delayed because the secretary has been ill and it seems that none of the other board members has stepped in to take over. I think the only new associated project currently under discussion is waiting for a legal opinion, so your guess about the meeting contents is probably as good as mine. My guesses: there will probably be a treasurer s report; Martin Zobel-Helas has been filling in the gaps in the 2007-8 minutes, so there ll be two or three sets for approval; the secretary may report on website redevelopment progress; Privoxy might have taken up the offer of associated project status from the SPI December 2008 meeting; and there might be a report on Tux4Kids trademarks. Watch the comments below this article for a link to the summary when posted.

Robert McQueen: Quitclock

(Apologies in advance for the shameless plug.) It s possibly a little late to talk about new year s resolutions, but if anyone is a Facebook user and has given up smoking (or plans to), you might be interested in Quitclock. My brother Alastair is a health editor for the Bupa private health insurance company, and thought of this neat project which was implemented by my housemate Martin Kleppman, and announced at new year. It helps you keep track of how long since you ve smoked, how much money you ve saved, lets you and your friends know how you re doing, and has health tips about the improvements that you can expect from your new-found abstinence. I m not a smoker but hopefully someone will find it useful.

20 January 2009

Jon Dowland: obama

Portrait of myself today, on the day the United States of America inaugurate their first black president. This post will probably be more valuable to me in years to come than anyone else right now, but never mind... I'm tired tonight. I mean physically tired, not mentally. Reading this back to myself if I just wrote "I'm tired" I'd assume mentally fatigued, as that seems to be my ground state. I'm suffering a mild cold but it's nothing serious. I'm unseasonably upbeat about work; for anyone looking forward, predictably but conciously disorganised, but improving. Tomorrow I have my annual review. I ate Quorn Korma tonight, one of my (very few) signature meals. I'm about to make the mistake of leaving the dishes until the morning. I'm in my third year occupying the NM queue and currently making a concious effort to get through it. On sunday I spent several hours on the effort; first, beating some of my packages into shape; then, looking at my outstanding questions. Tellingly I found the latter much more rewarding than the former. I'm also going through one of my seasonal "why do I do this" moments with Debian, perhaps not coincidentally whilst we are mired in a freeze for an overdue release. More on that in another post. I had a flat viewing this morning, one last night and another scheduled for thursday night. I'm living in "cosy" a one-bedroom flat with a nice view and terrible heating. I'm about to go to bed and pick up my current novel, "the Family Trade" by Charles Stross. As it's a fantasy novel, I can kid myself that I've broken out of the habit of reading Science Fiction novels (this after finishing Crichton's "State of Fear", an undeniably SF novel that sits in the mainstream literature shelves of just about every book shop). I shall probably write and publish book reviews for "State of Fear", "The Family Trade" and "Accelerando" (another Stross, thank you AJ) at some point.

Next.

Previous.