RE: Face Detection and other Vision Processing (and some sample code) were you testing  on a machine or in an emulator?  the olpc must have some wicked python optimizations to get that don to .25seconds how much data were you working with? <br>
<br><div class="gmail_quote">2008/3/20  <<a href="mailto:devel-request@lists.laptop.org">devel-request@lists.laptop.org</a>>:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Send Devel mailing list submissions to<br>
        <a href="mailto:devel@lists.laptop.org">devel@lists.laptop.org</a><br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
        <a href="http://lists.laptop.org/listinfo/devel" target="_blank">http://lists.laptop.org/listinfo/devel</a><br>
or, via email, send a message with subject or body 'help' to<br>
        <a href="mailto:devel-request@lists.laptop.org">devel-request@lists.laptop.org</a><br>
<br>
You can reach the person managing the list at<br>
        <a href="mailto:devel-owner@lists.laptop.org">devel-owner@lists.laptop.org</a><br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than "Re: Contents of Devel digest..."<br>
<br>Today's Topics:<br>
<br>
   1. Face Detection and other Vision Processing (and some sample<br>
      code) (Nirav Patel)<br>
   2. SoC:  Language Learning Activity (Steven Mohr)<br>
   3. Assorted Data on the Quality of our Networking, Presence, and<br>
      Read      Sharing Capabilities (Michael Stone)<br>
   4. New joyride build 1784 (Build Announcer v2)<br>
   5. python programming assist. (Aaron Konstam)<br>
   6. Re: Face Detection and other Vision Processing (and some<br>
      sample code) (karl)<br>
   7. New faster build 1785 (Build Announcer v2)<br>
   8. Re: Face Detection and other Vision Processing (and some<br>
      sample code) (Chris Hager)<br>
   9. Re: Face Detection and other Vision Processing (and some<br>
      sample code) (Nirav Patel)<br>
<br><br>---------- Forwarded message ----------<br>From: "Nirav Patel" <<a href="mailto:olpc@spongezone.net">olpc@spongezone.net</a>><br>To: <a href="mailto:devel@lists.laptop.org">devel@lists.laptop.org</a><br>
Date: Thu, 20 Mar 2008 12:18:39 -0400<br>Subject: Face Detection and other Vision Processing (and some sample code)<br>I've been playing with vision processing stuff for the XO, mostly<br>
using OpenCV.  I have some sample code up at<br>
<a href="http://eclecti.cc/code/face-detection-on-the-olpc-xo" target="_blank">http://eclecti.cc/code/face-detection-on-the-olpc-xo</a> that does face<br>
detection surprisingly quickly.  It seems that the bottleneck isn't<br>
even the OpenCV Haar Cascade algorithm, but the time it takes to<br>
initialize the v4l2 drivers.<br>
<br>
The code I wrote is just basic proof of concept stuff, but there are<br>
some amazing possibilities involved in vision processing, like<br>
recognizing sign language and gestures, drawing in air, playing motion<br>
based games, and even identifying plants and wildlife.<br>
<br>
If anyone is interested, I'd like to start developing an Activity that<br>
uses face/object detection for something more fun or useful.  I'm new<br>
to Python and OLPC development, so I could use some help.<br>
Alternately, I am a student, so if anyone is interested in mentoring<br>
this as a possible Summer of Code project, that would be great.<br>
<br>
<br><br>---------- Forwarded message ----------<br>From: "Steven Mohr" <<a href="mailto:steven.mohr@gmx.de">steven.mohr@gmx.de</a>><br>To: <<a href="mailto:devel@lists.laptop.org">devel@lists.laptop.org</a>><br>
Date: Thu, 20 Mar 2008 17:20:56 +0100<br>Subject: SoC:  Language Learning Activity<br>





<div>
<div><font face="Arial" size="2"><span>Hi,</span></font></div>
<div><font face="Arial" size="2"><span>my name is Steven 
Mohr. I study computer science dual at the BA Mannheim 
(<a href="http://www3.ba-mannheim.de" target="_blank">www3.ba-mannheim.de</a>) in Mannheim, Germany. This is a 1:1 combination 
of "normal" studies and working in a company. Instead of having 
vacation I'm working at the German Aerospace Center (DLR) in the department 
for software and simulation technology (<a href="http://www.dlr.de/sc/en/desktopdefault.aspx" target="_blank">http://www.dlr.de/sc/en/desktopdefault.aspx</a>). 
I've already have at bit experience in an open source projects. I 
participated for the DLR in an open source project called catacomb (<a href="http://catacomb.tigris.org/" target="_blank">http://catacomb.tigris.org/</a>). </span></font></div>
<div><font face="Arial" size="2"><span>I would like to work 
at the Language Learning Activity. I've looked at the Lingoteach 
app and it seems to be a good basic for a port to XO. Lingoteach has 
already language files and even spoken examples. I would like to port 
it to Python. There's a C library which implements access to the 
language files so what we could reuse them. So my question is: Who is mentoring 
this task that I can talk about details?</span></font></div>
<div><font face="Arial" size="2"><span></span></font> </div>
<div><font face="Arial" size="2"><span>Steven</span></font></div></div>
<br><br>---------- Forwarded message ----------<br>From: Michael Stone <<a href="mailto:michael@laptop.org">michael@laptop.org</a>><br>To: <a href="mailto:devel@lists.laptop.org">devel@lists.laptop.org</a><br>Date: Thu, 20 Mar 2008 13:41:42 -0400<br>
Subject: Assorted Data on the Quality of our Networking, Presence, and Read Sharing Capabilities<br>Friends,<br>
<br>
Chris Ball and I spend several hours last night measuring the behavior<br>
of Read sharing. The data we collected are reproduced below.<br>
<br>
Michael<br>
<br>
<br>
<br>
<br>
<br>
A Fragment of the Critical Path for Successful Read Sharing<br>
----------------------------------------------------------------<br>
<br>
<br>
This chart was created based on general knowledge of the Telepathy, Sugar<br>
Presence Service, Sugar python libraries, and the Read source code at<br>
<br>
<a href="http://dev.laptop.org/git?p=projects/read-activity;a=blob;f=readactivity.py;hb=HEAD" target="_blank">http://dev.laptop.org/git?p=projects/read-activity;a=blob;f=readactivity.py;hb=HEAD</a><br>
<br>
<br>
                          *<br>
                          |<br>
XOs join the network      |<br>
                          |<br>
                          |<br>
                          *<br>
                          |<br>
Read is started on        |<br>
the "sharer"              |<br>
                          |<br>
                   /------*------\<br>
                  /               \<br>
invitations      /                 \   the "sharer" is<br>
are sent        |                   |  marked "public"<br>
                 \                 /<br>
                  \               /<br>
                   \------*------/<br>
                          |<br>
Joiners recognize the     |<br>
presence of the shared    |<br>
activity                  |<br>
                          *<br>
                          |<br>
Join commands are issued  |<br>
to Sugar                  |<br>
                          |<br>
                          *<br>
Read instances look for   |<br>
Tubes, register callbacks |<br>
for new Tubes             |<br>
                          |<br>
                          *<br>
                          |<br>
...                       |<br>
                          |<br>
                          |<br>
                          *<br>
                          |<br>
After accepting a new     |<br>
tube, the joining act.    |<br>
issues an HTTP request    |<br>
                          *<br>
                          |<br>
...                       |<br>
                          |<br>
                          |<br>
                    ------*-------<br>
                   /      |       \<br>
Results           /       |        \<br>
                 /        |         \<br>
                /         |          \<br>
            success   divergence   failure<br>
<br>
<br>
<br>
<br>
<br>
Experimental Setup<br>
----------------------------------------------------------------<br>
<br>
A Log of our measurements follows.<br>
<br>
All experiments were conducted with four B4s (MS1, MS2, MS3, MS4)<br>
running update.1-699 and Read-44.xo. The build log for 699 is here:<br>
<br>
  <a href="http://pilgrim.laptop.org/%7Epilgrim/xo-1/streams/update.1/build699/devel_jffs2/build.log" target="_blank">http://pilgrim.laptop.org/~pilgrim/xo-1/streams/update.1/build699/devel_jffs2/build.log</a><br>
<br>
if you need to see what software is in the build.<br>
<br>
<br>
<br>
<br>
<br>
Simple Mesh, Sequential Invitations<br>
----------------------------------------------------------------<br>
<br>
We created a simple mesh on Channel 11 and extended invitations to<br>
join a Phyla.pdf (under Library > Biology; ~2.5 MB) session from<br>
<br>
                    MS1 -I> (MS3, MS4).<br>
<br>
The invitations were received on both MS3 and MS4.<br>
<br>
First, we caused MS3 to accept the invitation. MS3 successfully<br>
displayed the shared PDF. Then we caused MS4 to accept the invitation.<br>
MS4 displayed the shared PDF.<br>
<br>
<br>
<br>
<br>
<br>
Simple Mesh, Simultaneous Invitations<br>
----------------------------------------------------------------<br>
<br>
Still on Channel 11, simple mesh; we closed all open instances of Read<br>
and reopened Phyla.pdf on MS1. We extended invitations from<br>
<br>
                    MS1 -I> (MS3, MS4)<br>
<br>
The invitations were received on both MS3 and MS4.<br>
<br>
We caused MS3 and MS4 to accept their invitations simultaneously. Both<br>
MS3 and MS4 displayed the shared PDF after about 5-10 seconds of data<br>
transfer.<br>
<br>
  NB: Joining Read instances do not save the actual PDFs they receive to<br>
  the DS. There is a comment in the source code stating this fact but<br>
  there is no explanation of _why_ this decision was made. If you know<br>
  why, please let us know.<br>
<br>
<br>
<br>
Connecting to an AP<br>
----------------------------------------------------------------<br>
<br>
Next we connected MS1, MS2, MS3, and MS4 to the channel 6 "media<br>
802.11" AP.<br>
<br>
MS1, MS2, and MS4 all connected successfully on the first try and<br>
received presence updates.<br>
<br>
MS3's connection icon changed to indicate that it was connected to the<br>
AP but it received no presence information.<br>
<br>
  'olpc-netstatus' on MS3 reported that Salut was running but the<br>
  "Config" field was blank. [On the other XOs, the "Config" field read<br>
  "Access point".]<br>
<br>
After five disconnect/reconnect attempts, MS3 made a successful<br>
connection to the AP and presence information was exchanged.<br>
<br>
<br>
<br>
<br>
<br>
Making Friends<br>
----------------------------------------------------------------<br>
<br>
In order to speed up the process of issuing invitations in the future,<br>
we added each of MS[1,2,3,4] as a friend of each of MS[1,2,3,4]. All<br>
XOs saw their three friends as being available.<br>
<br>
Unfortunately, in the mesh views on MS1, MS2, and MS4, the MS4 mesh<br>
icon representing MS1 had a palette offering a "Remove friend" option.<br>
All the other representing icons had palettes with the "Add friend"<br>
option, even on the Friends View.<br>
<br>
<br>
<br>
<br>
<br>
Dynamics of maintaining connections<br>
----------------------------------------------------------------<br>
<br>
MS2, which had initial difficulty connecting to the AP had a network<br>
status display on the Home screen containing both a mesh icon and an<br>
AP icon. The AP icon remained steady; its status did not change.<br>
<br>
The mesh icon, however, (which was not present on the other XOs)<br>
sometimes grayed out. Hovering over the icon reported<br>
<br>
  "Buscando un portal malla en una escuela"<br>
  However, there were no unexpected differences between the output of<br>
  olpc-netstatus on MS1 and MS2.<br>
<br>
<br>
<br>
<br>
<br>
Quality of the Connection<br>
----------------------------------------------------------------<br>
<br>
We opened Phyla.pdf on MS1 and sent invitations to MS2 and MS4.<br>
The invitations were not received within a period of 5 minutes.<br>
<br>
We marked the Read instance on MS1 as publicly shared (i.e. "Share<br>
with my neighborhood"). This presence update was not communicated to<br>
MS2 or to MS4 within 5 minutes.<br>
<br>
We examined the forwarding table of the msh0 interface on MS1 and were<br>
surprised to discover that it contained entries with the MAC address<br>
of MS4 but not MS2.<br>
<br>
  NB: olpc-netlog could be profitably extended to capture all<br>
  available routing informatio.<br>
<br>
When trying to send pings from MS1 -> MS2 msh0, we received "destination<br>
host unreachable" errors. When trying to send pings from MS1 -> MS4<br>
msh0, we had 100% packet loss but no errors.<br>
<br>
All three laptops's msh0 interfaces had IP addresses on the same<br>
subnet. The routing table on MS1 contained an entry covering this<br>
subnet.<br>
<br>
<br>
<br>
<br>
<br>
Try, Try Again<br>
----------------------------------------------------------------<br>
<br>
In desperation, we restarted sugar on MS1, MS2, and MS4. According to<br>
the mesh status icons on the home view, all 3 XOs came up with their<br>
connection to the AP intact.<br>
<br>
All the palettes on all the machines had "Remove friend" options where<br>
they formerly had "Add friend" options.<br>
<br>
We opend Phyla.pdf on MS2 and sent invitations from<br>
<br>
                   MS2 -I> (MS1, MS4).<br>
<br>
None were received.<br>
<br>
<br>
<br>
<br>
<br>
Try, Try Again (2)<br>
----------------------------------------------------------------<br>
<br>
Next, we rebooted MS1, MS2, and MS4. After the boot sequence quiesced,<br>
we connected all three to the same AP as before.<br>
<br>
        MS1 and MS4 can see MS1, MS3, and MS4.<br>
        MS2 is invisible and can't see anyone.<br>
        olpc-netstatus reports similar results on all 3 machines.<br>
<br>
A Browse invitation was successfully sent from MS1 -> MS4.<br>
<br>
A Read invitation was successfully sent from MS1 -> MS4. It was<br>
accepted, but the join attempt failed. Logs were captured and have<br>
been attached to<br>
<br>
   <a href="http://dev.laptop.org/ticket/6483" target="_blank">http://dev.laptop.org/ticket/6483</a><br>
   <a href="http://dev.laptop.org/attachment/ticket/6483/logs.SHF725003A0.2008-03-19.23-56-27.tar.bz2" target="_blank">http://dev.laptop.org/attachment/ticket/6483/logs.SHF725003A0.2008-03-19.23-56-27.tar.bz2</a><br>
<br>
<br>
<br><br>---------- Forwarded message ----------<br>From: Build Announcer v2 <<a href="mailto:reinier@heeres.eu">reinier@heeres.eu</a>><br>To: <a href="mailto:devel@laptop.org">devel@laptop.org</a><br>Date: Thu, 20 Mar 2008 14:28:22 -0400 (EDT)<br>
Subject: New joyride build 1784<br><a href="http://xs-dev.laptop.org/%7Ecscott/olpc/streams/joyride/build1784" target="_blank">http://xs-dev.laptop.org/~cscott/olpc/streams/joyride/build1784</a><br>
<br>
Changes in build 1784 from build: 1783<br>
<br>
Size delta: 0.00M<br>
<br>
-telepathy-salut 0.2.2-5.olpc2<br>
+telepathy-salut 0.2.3-1.olpc2<br>
<br>
--- Changes for telepathy-salut 0.2.3-1.olpc2 from 0.2.2-5.olpc2 ---<br>
  + Upstream release 0.2.3<br>
  + <a href="http://dev.laptop.org" target="_blank">dev.laptop.org</a> #6575: muc receives message but can't send anymore<br>
<br>
------<br>
This mail was automatically generated<br>
See <a href="http://dev.laptop.org/%7Erwh/announcer/joyride-pkgs.html" target="_blank">http://dev.laptop.org/~rwh/announcer/joyride-pkgs.html</a> for aggregate logs<br>
See <a href="http://dev.laptop.org/%7Erwh/announcer/joyride_vs_update1.html" target="_blank">http://dev.laptop.org/~rwh/announcer/joyride_vs_update1.html</a> for a comparison<br>
<br>
<br><br>---------- Forwarded message ----------<br>From: Aaron Konstam <<a href="mailto:akonstam@sbcglobal.net">akonstam@sbcglobal.net</a>><br>To: <a href="mailto:devel@lists.laptop.org">devel@lists.laptop.org</a><br>
Date: Thu, 20 Mar 2008 14:23:19 -0600<br>Subject: python programming assist.<br>Recently someone mentioned they were trying to improve their python<br>
programming skills.<br>
<br>
Attached is a python program than might help. It is called:<br>
create_module_list<br>
<br>
If create_module_list<br>
is executed for example like so:<br>
create_module_list string<br>
it will produce a file called:<br>
string_modules<br>
<br>
which contains a list of all the functions in string.py together with<br>
the documentation of each function.<br>
<br>
It will not work properly on packages.<br>
<br>
--<br>
=======================================================================<br>
A mathematician is a device for turning coffee into theorems. -- P.<br>
Erdos<br>
=======================================================================<br>
Aaron Konstam telephone: (210) 656-0355 e-mail: <a href="mailto:akonstam@sbcglobal.net">akonstam@sbcglobal.net</a><br>
<br><br>---------- Forwarded message ----------<br>From: karl <<a href="mailto:karl.ramberg@comhem.se">karl.ramberg@comhem.se</a>><br>To: Nirav Patel <<a href="mailto:olpc@spongezone.net">olpc@spongezone.net</a>><br>
Date: Thu, 20 Mar 2008 22:27:54 +0100<br>Subject: Re: Face Detection and other Vision Processing (and some sample code)<br>Nirav Patel wrote:<br>
> I've been playing with vision processing stuff for the XO, mostly<br>
> using OpenCV.  I have some sample code up at<br>
> <a href="http://eclecti.cc/code/face-detection-on-the-olpc-xo" target="_blank">http://eclecti.cc/code/face-detection-on-the-olpc-xo</a> that does face<br>
> detection surprisingly quickly.  It seems that the bottleneck isn't<br>
> even the OpenCV Haar Cascade algorithm, but the time it takes to<br>
> initialize the v4l2 drivers.<br>
><br>
> The code I wrote is just basic proof of concept stuff, but there are<br>
> some amazing possibilities involved in vision processing, like<br>
> recognizing sign language and gestures, drawing in air, playing motion<br>
> based games, and even identifying plants and wildlife.<br>
><br>
> If anyone is interested, I'd like to start developing an Activity that<br>
> uses face/object detection for something more fun or useful.  I'm new<br>
> to Python and OLPC development, so I could use some help.<br>
> Alternately, I am a student, so if anyone is interested in mentoring<br>
> this as a possible Summer of Code project, that would be great.<br>
> _______________________________________________<br>
> Devel mailing list<br>
> <a href="mailto:Devel@lists.laptop.org">Devel@lists.laptop.org</a><br>
> <a href="http://lists.laptop.org/listinfo/devel" target="_blank">http://lists.laptop.org/listinfo/devel</a><br>
><br>
><br>
I made a demo in Etoys for color tracking objects with the camera:<br>
<br>
<a href="http://dev.laptop.org/%7Ebert/camTrack.pr" target="_blank">http://dev.laptop.org/~bert/camTrack.pr</a><br>
<br>
Have good lighting and a distinctly  colored object.<br>
Pick the color from the object with the color picker and a yellow<br>
ellipse on screen will track relative how you move the object.<br>
<br>
This is just a demo , more to come later...<br>
Karl<br>
<br>
<br><br>---------- Forwarded message ----------<br>From: Build Announcer v2 <<a href="mailto:reinier@heeres.eu">reinier@heeres.eu</a>><br>To: <a href="mailto:devel@laptop.org">devel@laptop.org</a><br>Date: Thu, 20 Mar 2008 18:14:01 -0400 (EDT)<br>
Subject: New faster build 1785<br><a href="http://xs-dev.laptop.org/%7Ecscott/olpc/streams/faster/build1785" target="_blank">http://xs-dev.laptop.org/~cscott/olpc/streams/faster/build1785</a><br>
<br>
Changes in build 1785 from build: 1778<br>
<br>
Size delta: 0.00M<br>
<br>
-telepathy-salut 0.2.2-5.olpc2<br>
+telepathy-salut 0.2.3-1.olpc2<br>
-Memorize 25<br>
+Memorize 26<br>
<br>
--- Changes for telepathy-salut 0.2.3-1.olpc2 from 0.2.2-5.olpc2 ---<br>
  + Upstream release 0.2.3<br>
  + <a href="http://dev.laptop.org" target="_blank">dev.laptop.org</a> #6575: muc receives message but can't send anymore<br>
<br>
--- Changes for Memorize 26 from 25 ---<br>
  + Fix sound issue when using Memorize with non-US language<br>
<br>
------<br>
This mail was automatically generated<br>
See <a href="http://dev.laptop.org/%7Erwh/announcer/faster-pkgs.html" target="_blank">http://dev.laptop.org/~rwh/announcer/faster-pkgs.html</a> for aggregate logs<br>
See <a href="http://dev.laptop.org/%7Erwh/announcer/joyride_vs_update1.html" target="_blank">http://dev.laptop.org/~rwh/announcer/joyride_vs_update1.html</a> for a comparison<br>
<br>
<br><br>---------- Forwarded message ----------<br>From: Chris Hager <<a href="mailto:chris@linuxuser.at">chris@linuxuser.at</a>><br>To: Nirav Patel <<a href="mailto:olpc@spongezone.net">olpc@spongezone.net</a>><br>
Date: Thu, 20 Mar 2008 23:47:54 +0100<br>Subject: Re: Face Detection and other Vision Processing (and some sample code)<br>Nirav Patel wrote:<br>
> I've been playing with vision processing stuff for the XO, mostly<br>
> using OpenCV.  I have some sample code up at<br>
> <a href="http://eclecti.cc/code/face-detection-on-the-olpc-xo" target="_blank">http://eclecti.cc/code/face-detection-on-the-olpc-xo</a> that does face<br>
> detection surprisingly quickly.  It seems that the bottleneck isn't<br>
> even the OpenCV Haar Cascade algorithm, but the time it takes to<br>
> initialize the v4l2 drivers.<br>
<br>
Wow - this is amazing! And especially with this speed of ~0.25 seconds<br>
for finding a face! How are you accessing OpenCV - via SWIG or CTypes?<br>
<br>
I'd suggest to create [[OpenCV]] and start linking to infos, howto's and<br>
examples. That will make life much easier for all who want to play<br>
around with image recognition on the xo in the future.<br>
<br>
- Chris<br>
<br>
<br>
<br>
<br><br>---------- Forwarded message ----------<br>From: "Nirav Patel" <<a href="mailto:olpc@spongezone.net">olpc@spongezone.net</a>><br>To: "Chris Hager" <<a href="mailto:chris@linuxuser.at">chris@linuxuser.at</a>><br>
Date: Thu, 20 Mar 2008 19:12:54 -0400<br>Subject: Re: Face Detection and other Vision Processing (and some sample code)<br>OpenCV has a Python API that uses SWIG.  It's in the default fedoro<br>
repo as opencv-python.<br>
<br>
Good idea, I'll add it to the wiki momentarily.<br>
<br>
On Thu, Mar 20, 2008 at 6:47 PM, Chris Hager <<a href="mailto:chris@linuxuser.at">chris@linuxuser.at</a>> wrote:<br>
> Nirav Patel wrote:<br>
>  > I've been playing with vision processing stuff for the XO, mostly<br>
>  > using OpenCV.  I have some sample code up at<br>
>  > <a href="http://eclecti.cc/code/face-detection-on-the-olpc-xo" target="_blank">http://eclecti.cc/code/face-detection-on-the-olpc-xo</a> that does face<br>
>  > detection surprisingly quickly.  It seems that the bottleneck isn't<br>
>  > even the OpenCV Haar Cascade algorithm, but the time it takes to<br>
>  > initialize the v4l2 drivers.<br>
><br>
>  Wow - this is amazing! And especially with this speed of ~0.25 seconds<br>
>  for finding a face! How are you accessing OpenCV - via SWIG or CTypes?<br>
><br>
>  I'd suggest to create [[OpenCV]] and start linking to infos, howto's and<br>
>  examples. That will make life much easier for all who want to play<br>
>  around with image recognition on the xo in the future.<br>
><br>
>  - Chris<br>
><br>
><br>
><br>
<br>
<br>_______________________________________________<br>
Devel mailing list<br>
<a href="mailto:Devel@lists.laptop.org">Devel@lists.laptop.org</a><br>
<a href="http://lists.laptop.org/listinfo/devel" target="_blank">http://lists.laptop.org/listinfo/devel</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><br>"lalalalala! it's not broken because I can use it"<br><br><a href="http://linux.slashdot.org/comments.pl?sid=194281&threshold=1&commentsort=0&mode=thread&cid=15927703">http://linux.slashdot.org/comments.pl?sid=194281&threshold=1&commentsort=0&mode=thread&cid=15927703</a>