<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:ephemient</id>
  <title>ephemient</title>
  <subtitle>ephemient</subtitle>
  <author>
    <name>ephemient</name>
  </author>
  <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/"/>
  <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom"/>
  <updated>2009-11-12T04:47:23Z</updated>
  <lj:journal userid="9966988" username="ephemient" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://ephemient.livejournal.com/data/atom" title="ephemient"/>
  <link rel="hub" href="http://pubsubhubbub.appspot.com/"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:52216</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/52216.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=52216"/>
    <title>Another bad sort</title>
    <published>2009-11-12T04:47:23Z</published>
    <updated>2009-11-12T04:47:23Z</updated>
    <content type="html">Oops, I fell inactive on LJ again.&amp;nbsp; At least &lt;a href="http://stackoverflow.com/users/20713/ephemient"&gt;I&lt;/a&gt;&amp;rsquo;m still pretty active on &lt;a href="http://stackoverflow.com/"&gt;Stack Overflow&lt;/a&gt; regardless of what you see here.&lt;br /&gt;&lt;br /&gt;Recently a &lt;a href="http://stackoverflow.com/questions/1712606/insertion-sort-code-challenge"&gt;whimsical question&lt;/a&gt; there asked for &lt;a href="http://en.wikipedia.org/wiki/Insertion_sort"&gt;insertion sort&lt;/a&gt; in various languages.&amp;nbsp; Pretty easy stuff, but I chose to &lt;a href="http://stackoverflow.com/questions/1712606/insertion-sort-code-challenge/1713206#1713206"&gt;answer&lt;/a&gt; with &lt;a href="http://www.jsoftware.com/"&gt;J&lt;/a&gt; again because my other favorite languages (&lt;a href="http://www.haskell.org/"&gt;Haskell&lt;/a&gt;, &lt;a href="http://www.perl.org/"&gt;Perl&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/C_(programming_language)"&gt;C&lt;/a&gt;) were already implemented.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;(([&amp;lt;.{.@]),}.@]$:~[&amp;gt;.{.@])`[@.(0=#@])/&lt;/code&gt;&amp;nbsp; (Yes, it&amp;rsquo;s actually &lt;em&gt;longer&lt;/em&gt; than the quicksort I &lt;a href="http://ephemient.livejournal.com/51387.html"&gt;mentioned&lt;/a&gt; a little while ago.)&lt;br /&gt;&lt;br /&gt;Breakdown:&lt;br /&gt;&lt;blockquote&gt;&lt;tt&gt;NB. &lt;em&gt;given two arguments, return the left argument&lt;/em&gt;&lt;br /&gt;insert0 =: 4 : 'x'&lt;br /&gt;insert0 =: [&lt;br /&gt;NB. &lt;em&gt;given two arguments, return the lesser of left and head of right&lt;/em&gt;&lt;br /&gt;insert1min =: 4 : 'x &amp;lt;. {. y'&lt;br /&gt;insert1min =: [ &amp;lt;. {.@]&lt;br /&gt;NB. &lt;em&gt;given two arguments, return the greater of left and head of right&lt;/em&gt;&lt;br /&gt;insert1max =: [ &amp;gt;. {.@]&lt;br /&gt;NB. &lt;em&gt;recurse with insert1max and tail of right, and prepend insert1min&lt;/em&gt;&lt;br /&gt;insert1 =: 4 : 'x insert1min y , (x insert1max y) insert }. y'&lt;br /&gt;insert1 =: insert1min , insert1max insert }.@]&lt;br /&gt;insert1 =: insert1min , }.@] insert~ insert1max&lt;br /&gt;NB. &lt;em&gt;if right has zero length,&lt;/em&gt; insert0&lt;em&gt;, else&lt;/em&gt; insert1&lt;br /&gt;NB. &lt;em&gt;the recursive reference to&lt;/em&gt; insert &lt;em&gt;in&lt;/em&gt; insert1 &lt;em&gt;can be replaced by&lt;/em&gt; $:&lt;br /&gt;insert =: insert1 ` insert0 @. (0 = #@])&lt;br /&gt;NB. &lt;em&gt;apply&lt;/em&gt; insert &lt;em&gt;between all elements of argument&lt;/em&gt;&lt;br /&gt;sort =: insert/&lt;br /&gt;&lt;/tt&gt;&lt;/blockquote&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:51870</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/51870.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=51870"/>
    <title>Paludis crossbuilding</title>
    <published>2009-10-16T04:24:32Z</published>
    <updated>2009-10-16T15:10:28Z</updated>
    <content type="html">&lt;a href="http://www.gentoo.org/"&gt;Gentoo&lt;/a&gt; has this terrific tool named &lt;a href="http://packages.gentoo.org/package/sys-devel/crossdev"&gt;crossdev&lt;/a&gt;.&lt;br /&gt;&lt;blockquote style="font-family:monospace"&gt;&lt;div style="max-height:50em;min-width:76ex;overflow:auto;white-space:nowrap"&gt;&lt;strong style="color:green"&gt;dtlin@burnup&lt;/strong&gt;:&lt;strong style="color:blue"&gt;~&lt;/strong&gt;$ su -c 'emerge crossdev'&lt;br /&gt;… … …&lt;br /&gt;&lt;strong style="color:green"&gt;dtlin@burnup&lt;/strong&gt;:&lt;strong style="color:blue"&gt;~&lt;/strong&gt;$ crossdev&lt;br /&gt;Usage: &lt;strong style="color:aqua"&gt;crossdev&lt;/strong&gt; &lt;strong style="color:green"&gt;[options]&lt;/strong&gt; &lt;strong style="color:blue"&gt;--target TARGET&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Options:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong style="color:green"&gt;--b, --binutils&lt;/strong&gt; ver&amp;nbsp;&amp;nbsp; Specify version of binutils to use&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong style="color:green"&gt;--g, --gcc&lt;/strong&gt; ver&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Specify version of gcc to use&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong style="color:green"&gt;--k, --kernel&lt;/strong&gt; ver&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Specify version of kernel headers to use&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong style="color:green"&gt;--l, --libc&lt;/strong&gt; ver&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Specify version of libc to use&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong style="color:green"&gt;-S, --stable&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Use latest stable versions as default&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong style="color:green"&gt;-C, --clean&lt;/strong&gt; target&amp;nbsp;&amp;nbsp;&amp;nbsp; Uninstall specified target&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong style="color:green"&gt;-P, --portage&lt;/strong&gt; opts&amp;nbsp;&amp;nbsp;&amp;nbsp; Options to pass to emerge (see emerge(1))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong style="color:green"&gt;--with[out]-headers&lt;/strong&gt;&amp;nbsp;&amp;nbsp; Build C library headers before C compiler?&lt;br /&gt;Stage Options:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong style="color:green"&gt;-s0, --stage0&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Build just binutils&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong style="color:green"&gt;-s1, --stage1&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Also build a C compiler (no libc/C++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong style="color:green"&gt;-s2, --stage2&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Also build kernel headers&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong style="color:green"&gt;-s3, --stage3&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Also build the C library (no C++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong style="color:green"&gt;-s4, --stage4&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Also build a C++ compiler [default]&lt;br /&gt;Extra Fun (must be run after above stages):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong style="color:green"&gt;--ex-only&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Skip the stage steps above&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong style="color:green"&gt;--ex-gcc&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Build extra gcc targets (gcj/ada/etc...)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong style="color:green"&gt;--ex-gdb&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Build a cross gdb&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong style="color:green"&gt;--ex-insight&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Build a cross insight&lt;br /&gt;&lt;strong style="color:blue"&gt;Target (-t)&lt;/strong&gt; takes a tuple &lt;strong style="color:blue"&gt;ARCH-VENDOR-OS-LIBC&lt;/strong&gt;; see 'crossdev -t help'&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;(Yes, Gentoo can be a bit too… happy with colored terminals sometimes.)&lt;br /&gt;&lt;br /&gt;If I want a cross-compiler targeting Windows, all I have to do is ensure a valid &lt;code&gt;$PORTDIR_OVERLAY&lt;/code&gt; in &lt;tt&gt;/etc/make.conf&lt;/tt&gt;, which all developers will have already, and run &lt;code&gt;crossdev -t i586-mingw32msvc&lt;/code&gt;.  Et voilà, a &lt;tt&gt;i586-mingw32msvc-gcc&lt;/tt&gt; appears!&lt;br /&gt;&lt;br /&gt;Except it only works with Gentoo’s default package manager, &lt;a href="http://www.gentoo.org/proj/en/portage/"&gt;Portage&lt;/a&gt;.&amp;nbsp; On my system, it’s been replaced by &lt;a href="http://paludis.pioto.org/"&gt;Paludis&lt;/a&gt;, “the other package mangler”.&amp;nbsp; And there doesn’t seem to be documentation on how to manually take advantage of the ebuilds’ cross-building features manually.&amp;nbsp; Well, I think I can remedy that.&lt;br /&gt;&lt;br /&gt;First, set up the Paludis equivalent of &lt;code&gt;$PORTDIR_OVERLAY&lt;/code&gt; and fill it.&lt;br /&gt;&lt;blockquote style="font-family:monospace"&gt;&lt;div style="max-height:24em;min-width:76ex;overflow:auto;white-space:nowrap"&gt;&lt;strong style="color:green"&gt;dtlin@burnup&lt;/strong&gt;:&lt;strong style="color:blue"&gt;~&lt;/strong&gt;$ su -&lt;br /&gt;&lt;strong style="color:red"&gt;burnup&lt;/strong&gt; &lt;strong style="color:blue"&gt;~ #&lt;/strong&gt; cat &amp;gt;/etc/paludis/repositories/local.conf&lt;br /&gt;location = /var/paludis/repositories/local&lt;br /&gt;master_repository = gentoo&lt;br /&gt;format = ebuild&lt;br /&gt;^D&lt;br /&gt;&lt;strong style="color:red"&gt;burnup&lt;/strong&gt; &lt;strong style="color:blue"&gt;~ #&lt;/strong&gt; mkdir -p /var/paludis/repositories/local/profiles&lt;br /&gt;&lt;strong style="color:red"&gt;burnup&lt;/strong&gt; &lt;strong style="color:blue"&gt;~ #&lt;/strong&gt; cd /var/paludis/repositories/local&lt;br /&gt;&lt;strong style="color:red"&gt;burnup&lt;/strong&gt; &lt;strong style="color:blue"&gt;local #&lt;/strong&gt; mkdir cross-i586-mingw32msvc&lt;br /&gt;&lt;strong style="color:red"&gt;burnup&lt;/strong&gt; &lt;strong style="color:blue"&gt;local #&lt;/strong&gt; ls -d *-* &amp;gt;profiles/categories&lt;br /&gt;&lt;strong style="color:red"&gt;burnup&lt;/strong&gt; &lt;strong style="color:blue"&gt;local #&lt;/strong&gt; ln -fns ../../gentoo-portage/{sys-devel/{binutils,gcc,gdb},dev-util/{mingw-runtime,w32api}} cross-i586-mingwmsvc/&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;Next, build the stages in order.&lt;br /&gt;&lt;blockquote style="font-family:monospace"&gt;&lt;div style="max-height:24em;min-width:76ex;overflow:auto;white-space:nowrap"&gt;&lt;strong style="color:red"&gt;burnup&lt;/strong&gt; &lt;strong style="color:blue"&gt;local #&lt;/strong&gt; echo 'cross-i586-mingw32msvc/* crosscompile_opts: headers-only' &amp;gt;&amp;gt;/etc/paludis/use.conf&lt;br /&gt;&lt;strong style="color:red"&gt;burnup&lt;/strong&gt; &lt;strong style="color:blue"&gt;local #&lt;/strong&gt; echo 'cross-i586-mingw32msvc/* -* nocxx' &amp;gt;&amp;gt;/etc/paludis/use.conf&lt;br /&gt;&lt;strong style="color:red"&gt;burnup&lt;/strong&gt; &lt;strong style="color:blue"&gt;local #&lt;/strong&gt; paludis -i cross-i586-mingw32msvc/{w32api,mingw-runtime,gcc}&lt;br /&gt;&lt;strong style="color:red"&gt;burnup&lt;/strong&gt; &lt;strong style="color:blue"&gt;local #&lt;/strong&gt; sed -i '$d' /etc/paludis/use.conf&lt;br /&gt;&lt;strong style="color:red"&gt;burnup&lt;/strong&gt; &lt;strong style="color:blue"&gt;local #&lt;/strong&gt; sed -i '$d' /etc/paludis/use.conf&lt;br /&gt;&lt;strong style="color:red"&gt;burnup&lt;/strong&gt; &lt;strong style="color:blue"&gt;local #&lt;/strong&gt; paludis -i cross-i586-mingw32msvc/{w32api,mingw-runtime,gcc}&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;Most targets will use &lt;tt&gt;linux-headers&lt;/tt&gt; instead of &lt;tt&gt;w32api&lt;/tt&gt; and &lt;tt&gt;glibc&lt;/tt&gt;/&lt;tt&gt;dietlibc&lt;/tt&gt;/&lt;tt&gt;uclibc&lt;/tt&gt;/&lt;tt&gt;klibc&lt;/tt&gt; instead of &lt;tt&gt;mingw-runtime&lt;/tt&gt;, but that’s the general idea.&lt;br /&gt;&lt;hr /&gt;Ah, I forgot…&lt;br /&gt;&lt;blockquote style="font-family:monospace"&gt;&lt;div style="max-height:24em;min-width:76ex;overflow:auto;white-space:nowrap"&gt;&lt;strong style="color:red"&gt;burnup&lt;/strong&gt; &lt;strong style="color:blue"&gt;local #&lt;/strong&gt; cat &amp;gt;&amp;gt;/etc/paludis/bashrc&lt;br /&gt;case "${CATEGORY}/${PN}" in&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # cross-build&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cross-*/binutils|cross-*/gcc|cross-*/gdb)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CBUILD="${CHOST}" CTARGET="${CATEGORY#cross-}"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cross-*/*)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CBUILD="${CHOST}" CTARGET="${CATEGORY#cross-}"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CC="${CTARGET}-gcc" CXX="${CTARGET}-g++" LD="${CTARGET}-ld"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;;&lt;br /&gt;esac&lt;br /&gt;^D&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;This may be necessary after stage 2 (but will probably fail before).</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:51510</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/51510.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=51510"/>
    <title>Dynamic programming to the rescue</title>
    <published>2009-10-13T05:12:46Z</published>
    <updated>2009-10-13T05:33:38Z</updated>
    <content type="html">Project Euler, problem 76: &amp;ldquo;How many different ways can one hundred be written as a sum of at least two positive integers?&amp;rdquo;&lt;br /&gt;&lt;br /&gt;Well, hmm.&amp;nbsp; There are &lt;img alt="$\sum_{i=1}^{99}\begin{pmatrix}99\\i\end{pmatrix}$" src="http://texify.com/img/%5Cnormalsize%5C%21%5Csum_%7Bi%3D1%7D%5E%7B99%7D%5Cbegin%7Bpmatrix%7D99%5C%5Ci%5Cend%7Bpmatrix%7D.gif" style="vertical-align:middle"&gt;=2&lt;sup&gt;99&lt;/sup&gt;-1=633825300114114700748351602687 ways of partitioning 100.&amp;nbsp; Eliminate duplicates (1+2=2+1) and we&amp;rsquo;ll have the answer&amp;hellip; in a trillion years or so.&amp;nbsp; That&amp;rsquo;s not really a good solution.&lt;br /&gt;&lt;br /&gt;A better solution would use a better method.&amp;nbsp; Does &lt;em&gt;f&lt;/em&gt;(&lt;em&gt;n&lt;/em&gt;,&lt;em&gt;m&lt;/em&gt;)=&lt;img alt="$\left{\begin{matrix}0&amp;amp;,&amp;amp;n&amp;lt;0\\1&amp;amp;,&amp;amp;n=0\\\sum_{i=1}^{m}f(n-i,i)&amp;amp;,&amp;amp;\text{otherwise}\end{matrix}\right.$" src="http://www.texify.com/img/%5Cnormalsize%5C%21%5Cleft%7B%5Cbegin%7Bmatrix%7D0%26%2C%26n%3C0%5C%5C1%26%2C%26n%3D0%5C%5C%5Csum_%7Bi%3D1%7D%5E%7Bm%7Df%28n-i%2Ci%29%26%2C%26%5Ctext%7Botherwise%7D%5Cend%7Bmatrix%7D%5Cright..gif" style="vertical-align:middle"&gt;, &lt;em&gt;g&lt;/em&gt;(&lt;em&gt;n&lt;/em&gt;)=&lt;em&gt;f&lt;/em&gt;(&lt;em&gt;n&lt;/em&gt;,&lt;em&gt;n&lt;/em&gt;)-1 look usable?&amp;nbsp; &lt;em&gt;g&lt;/em&gt;(&lt;em&gt;n&lt;/em&gt;) will take us through a &lt;em&gt;n&lt;/em&gt;-depth call stack, forking out into O(2&lt;sup&gt;&lt;em&gt;n&lt;/em&gt;&lt;/sup&gt;) different function calls &amp;ndash; just like before, the complexity is still too high to fit within Project Euler&amp;rsquo;s suggested "one-minute" maximum compute time.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Really?&lt;/em&gt;&lt;br /&gt;&lt;blockquote style="font-family:monospace"&gt;&lt;div style="max-height:24em;min-width:76ex;overflow:auto;white-space:nowrap"&gt;&amp;lt;:+/@:([(-$:"0])&amp;gt;:@i.@])`(0=[)@.(0&amp;gt;:[)M.100&lt;/div&gt;&lt;/blockquote&gt;&lt;blockquote style="font-family:monospace"&gt;&lt;div style="max-height:24em;min-width:76ex;overflow:auto;white-space:nowrap"&gt;p&lt;font color="#a52a2a"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt;repeat&amp;nbsp;&lt;font color="#ff00ff"&gt;1&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt;[[sum[p&lt;font color="#a52a2a"&gt;&lt;b&gt;!!&lt;/b&gt;&lt;/font&gt;(n&lt;font color="#a52a2a"&gt;&lt;b&gt;-&lt;/b&gt;&lt;/font&gt;i)&lt;font color="#a52a2a"&gt;&lt;b&gt;!!&lt;/b&gt;&lt;/font&gt;i&lt;font color="#a52a2a"&gt;&lt;b&gt;|&lt;/b&gt;&lt;/font&gt;i&lt;font color="#a52a2a"&gt;&lt;b&gt;&amp;lt;-&lt;/b&gt;&lt;/font&gt;[&lt;font color="#ff00ff"&gt;1&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;..&lt;/b&gt;&lt;/font&gt;min&amp;nbsp;m&amp;nbsp;n]]&lt;font color="#a52a2a"&gt;&lt;b&gt;|&lt;/b&gt;&lt;/font&gt;m&lt;font color="#a52a2a"&gt;&lt;b&gt;&amp;lt;-&lt;/b&gt;&lt;/font&gt;[&lt;font color="#ff00ff"&gt;0&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;..&lt;/b&gt;&lt;/font&gt;]]&lt;font color="#a52a2a"&gt;&lt;b&gt;|&lt;/b&gt;&lt;/font&gt;n&lt;font color="#a52a2a"&gt;&lt;b&gt;&amp;lt;-&lt;/b&gt;&lt;/font&gt;[&lt;font color="#ff00ff"&gt;1&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;..&lt;/b&gt;&lt;/font&gt;]]&lt;br /&gt;main&lt;font color="#a52a2a"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt;print&lt;font color="#a52a2a"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/font&gt;pred&lt;font color="#a52a2a"&gt;&lt;b&gt;$&lt;/b&gt;&lt;/font&gt;p&lt;font color="#a52a2a"&gt;&lt;b&gt;!!&lt;/b&gt;&lt;/font&gt;&lt;font color="#ff00ff"&gt;100&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;!!&lt;/b&gt;&lt;/font&gt;&lt;font color="#ff00ff"&gt;100&lt;/font&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;blockquote style="font-family:monospace"&gt;&lt;div style="max-height:24em;min-width:76ex;overflow:auto;white-space:nowrap"&gt;&lt;font color="#a020f0"&gt;#include &lt;/font&gt;&lt;font color="#ff00ff"&gt;&amp;lt;stdio.h&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#a020f0"&gt;#define TOP &lt;/font&gt;&lt;font color="#ff00ff"&gt;100&lt;/font&gt;&lt;br /&gt;&lt;font color="#2e8b57"&gt;&lt;b&gt;static&lt;/b&gt;&lt;/font&gt;&amp;nbsp;&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;ways[TOP];&lt;br /&gt;&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;main() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;i, j;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(i = &lt;font color="#ff00ff"&gt;1&lt;/font&gt;; i &amp;lt; TOP; i++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ways[i - &lt;font color="#ff00ff"&gt;1&lt;/font&gt;]++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(j = &lt;font color="#ff00ff"&gt;0&lt;/font&gt;; i + j &amp;lt; TOP; j++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ways[j + i] += ways[j];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf(&lt;font color="#ff00ff"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#6a5acd"&gt;%d&lt;/font&gt;&lt;font color="#6a5acd"&gt;\n&lt;/font&gt;&lt;font color="#ff00ff"&gt;&amp;quot;&lt;/font&gt;, ways[TOP - &lt;font color="#ff00ff"&gt;1&lt;/font&gt;]);&lt;br /&gt;}&lt;/div&gt;&lt;/blockquote&gt;&lt;a href="http://www.jsoftware.com/"&gt;J&lt;/a&gt;, &lt;a href="http://www.haskell.org/"&gt;Haskell&lt;/a&gt;, and &lt;a href="http://en.wikipedia.org/wiki/C_(programming_language)"&gt;C&lt;/a&gt; respectively, all running in under one second.&lt;br /&gt;&lt;br /&gt;Both Haskell and C have been memoized manually, while J takes advantage of &lt;code&gt;M.&lt;/code&gt;, the auto-memoizer.&amp;nbsp; Now, ain&amp;rsquo;t that a handy language built-in?</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:51387</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/51387.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=51387"/>
    <title>Project Euler</title>
    <published>2009-10-10T05:53:14Z</published>
    <updated>2009-10-10T05:53:53Z</updated>
    <content type="html">&lt;a href="http://projecteuler.net/"&gt;Project Euler&lt;/a&gt; is a countable collection of problems, requiring a mix of mathematical reasoning and machine computation to solve.&amp;nbsp; Every once in a while, I get the urge to try to grow the subset of problems I’ve completed.&lt;br /&gt;&lt;br /&gt;At only 85 solved, I’m still solidly within Level 2, which is not enough to make it into their permanent rankings yet.&lt;br /&gt;&lt;br /&gt;For the most part, I write my calculations in Haskell, falling back to C when I’m unable to express an algorithm in anything but imperative form.&lt;br /&gt;&lt;br /&gt;However, there is this very interesting language out there going by the un-Google-able name of &lt;a href="http://www.jsoftware.com/"&gt;&lt;strong&gt;J&lt;/strong&gt;&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-family:monospace"&gt;&lt;div style="max-height:24em;min-width:76ex;overflow:auto;white-space:nowrap"&gt;{:q:600851475143&lt;br /&gt;+/p:i.p:^:_1[2000000&lt;br /&gt;999999 A. '0123456789'&lt;br /&gt;#~.,^/~2+i.99&lt;br /&gt;+/1000000&amp;lt;,!/~i.101&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;5 solutions to 5 problems in 5 lines, much more succinctly stated than would be possible in any other language.&amp;nbsp; (Largest prime factor of 600851475143; sum of primes under two milion; millionth permutation of 10 digits by lexical sort; how many distinct numbers &lt;em&gt;n&lt;/em&gt; of the form &lt;em&gt;x&lt;sup&gt;y&lt;/sup&gt;&lt;/em&gt; where 1&amp;lt;&lt;em&gt;x&lt;/em&gt;,&lt;em&gt;y&lt;/em&gt;&amp;le;100; sum of the first hundred rows of Pascal’s triangle.)&lt;br /&gt;&lt;br /&gt;The title of last week’s post, &lt;code&gt;A.~(1:I.~([:*./}:&amp;lt;:}.)"_1)@(i.@!@#A.])&lt;/code&gt;, is an implementation of &lt;a href="http://en.wikipedia.org/wiki/Bogosort"&gt;bogosort&lt;/a&gt;, which is very much not recommended for actual use.&lt;br /&gt;&lt;br /&gt;However, quicksort can be written as &lt;code&gt;(($:@(&amp;lt;#[),(=#[),$:@(&amp;gt;#[)){.)^:(1&amp;lt;#)&lt;/code&gt;; this reads as “when count greater than 1, recurse on items less than and greater than head, joined by items equal in the middle”.&lt;br /&gt;&lt;br /&gt;Not that you’d should use that either; &lt;code&gt;/:~&lt;/code&gt; is the built-in sort.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:50983</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/50983.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=50983"/>
    <title>Sorting factoid #1</title>
    <published>2009-10-03T22:48:00Z</published>
    <updated>2009-10-04T23:56:55Z</updated>
    <category term="code"/>
    <content type="html">Anyone who has gone through any introductory-level computer science course has probably been exposed to a few common sorting algorithms.&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-family:monospace"&gt;&lt;div style="max-height:24em;min-width:76ex;overflow:auto;white-space:nowrap"&gt;&lt;font color="#a020f0"&gt;#include &lt;/font&gt;&lt;font color="#ff00ff"&gt;&amp;lt;stdlib.h&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#a020f0"&gt;#include &lt;/font&gt;&lt;font color="#ff00ff"&gt;&amp;lt;string.h&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#2e8b57"&gt;&lt;b&gt;static&lt;/b&gt;&lt;/font&gt;&amp;nbsp;&lt;font color="#008b8b"&gt;void&lt;/font&gt;&amp;nbsp;swap(&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;*a, &lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;*b) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(a != b) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;c = *a;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*a = *b;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*b = c;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;font color="#008b8b"&gt;void&lt;/font&gt;&amp;nbsp;bubblesort(&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;*a, &lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;l) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;i, j;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(i = l - &lt;font color="#ff00ff"&gt;2&lt;/font&gt;; i &amp;gt;= &lt;font color="#ff00ff"&gt;0&lt;/font&gt;; i--)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(j = i; j &amp;lt; l - &lt;font color="#ff00ff"&gt;1&lt;/font&gt;&amp;nbsp;&amp;amp;&amp;amp; a[j] &amp;gt; a[j + &lt;font color="#ff00ff"&gt;1&lt;/font&gt;]; j++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;swap(a + j, a + j + &lt;font color="#ff00ff"&gt;1&lt;/font&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;font color="#008b8b"&gt;void&lt;/font&gt;&amp;nbsp;selectionsort(&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;*a, &lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;l) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;i, j, k;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(i = &lt;font color="#ff00ff"&gt;0&lt;/font&gt;; i &amp;lt; l; i++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(j = (k = i) + &lt;font color="#ff00ff"&gt;1&lt;/font&gt;; j &amp;lt; l; j++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(a[j] &amp;lt; a[k])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;k = j;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;swap(a + i, a + k);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;font color="#2e8b57"&gt;&lt;b&gt;static&lt;/b&gt;&lt;/font&gt;&amp;nbsp;&lt;font color="#008b8b"&gt;void&lt;/font&gt;&amp;nbsp;hsort_helper(&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;*a, &lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;i, &lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;l) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;j;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(j = &lt;font color="#ff00ff"&gt;2&lt;/font&gt;&amp;nbsp;* i + &lt;font color="#ff00ff"&gt;1&lt;/font&gt;; j &amp;lt; l; i = j, j = &lt;font color="#ff00ff"&gt;2&lt;/font&gt;&amp;nbsp;* j + &lt;font color="#ff00ff"&gt;1&lt;/font&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(a[i] &amp;lt; a[j])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(j + &lt;font color="#ff00ff"&gt;1&lt;/font&gt;&amp;nbsp;&amp;lt; l &amp;amp;&amp;amp; a[j] &amp;lt; a[j + &lt;font color="#ff00ff"&gt;1&lt;/font&gt;])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;swap(a + i, a + ++j);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;else&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;swap(a + i, a + j);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;else&lt;/b&gt;&lt;/font&gt;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(j + &lt;font color="#ff00ff"&gt;1&lt;/font&gt;&amp;nbsp;&amp;lt; l &amp;amp;&amp;amp; a[i] &amp;lt; a[j + &lt;font color="#ff00ff"&gt;1&lt;/font&gt;])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;swap(a + i, a + ++j);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;else&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;break&lt;/b&gt;&lt;/font&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;font color="#008b8b"&gt;void&lt;/font&gt;&amp;nbsp;heapsort(&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;*a, &lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;l) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;i;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(i = (l - &lt;font color="#ff00ff"&gt;2&lt;/font&gt;) / &lt;font color="#ff00ff"&gt;2&lt;/font&gt;; i &amp;gt;= &lt;font color="#ff00ff"&gt;0&lt;/font&gt;; i--)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hsort_helper(a, i, l);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;while&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(l-- &amp;gt; &lt;font color="#ff00ff"&gt;0&lt;/font&gt;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;swap(a, a + l);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hsort_helper(a, &lt;font color="#ff00ff"&gt;0&lt;/font&gt;, l);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;font color="#2e8b57"&gt;&lt;b&gt;static&lt;/b&gt;&lt;/font&gt;&amp;nbsp;&lt;font color="#008b8b"&gt;void&lt;/font&gt;&amp;nbsp;msort_helper(&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;*a, &lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;*b, &lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;l) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;i, j, k, m;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;switch&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(l) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;case&lt;/b&gt;&lt;/font&gt;&amp;nbsp;&lt;font color="#ff00ff"&gt;1&lt;/font&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a[&lt;font color="#ff00ff"&gt;0&lt;/font&gt;] = b[&lt;font color="#ff00ff"&gt;0&lt;/font&gt;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;case&lt;/b&gt;&lt;/font&gt;&amp;nbsp;&lt;font color="#ff00ff"&gt;0&lt;/font&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m = l / &lt;font color="#ff00ff"&gt;2&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;msort_helper(b, a, m);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;msort_helper(b + m, a + m, l - m);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(i = &lt;font color="#ff00ff"&gt;0&lt;/font&gt;, j = &lt;font color="#ff00ff"&gt;0&lt;/font&gt;, k = m; i &amp;lt; l; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a[i] = b[j &amp;lt; m &amp;amp;&amp;amp; !(k &amp;lt; l &amp;amp;&amp;amp; b[j] &amp;gt; b[k]) ? j++ : k++];&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;font color="#008b8b"&gt;void&lt;/font&gt;&amp;nbsp;mergesort(&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;*a, &lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;l) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;*b;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(l &amp;lt; &lt;font color="#ff00ff"&gt;0&lt;/font&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/font&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;b = malloc(l * &lt;font color="#a52a2a"&gt;&lt;b&gt;sizeof&lt;/b&gt;&lt;/font&gt;(&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;memcpy(b, a, l * &lt;font color="#a52a2a"&gt;&lt;b&gt;sizeof&lt;/b&gt;&lt;/font&gt;(&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;msort_helper(a, b, l);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;free(b);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;font color="#2e8b57"&gt;&lt;b&gt;static&lt;/b&gt;&lt;/font&gt;&amp;nbsp;&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;pivot(&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;*a, &lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;l) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;i, j;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(i = j = &lt;font color="#ff00ff"&gt;1&lt;/font&gt;; i &amp;lt; l; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(a[i] &amp;lt;= a[&lt;font color="#ff00ff"&gt;0&lt;/font&gt;])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;swap(a + i, a + j++);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;swap(a, a + j - &lt;font color="#ff00ff"&gt;1&lt;/font&gt;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/font&gt;&amp;nbsp;j;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;font color="#008b8b"&gt;void&lt;/font&gt;&amp;nbsp;quicksort(&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;*a, &lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;l) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;m;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(l &amp;lt;= &lt;font color="#ff00ff"&gt;1&lt;/font&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/font&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m = pivot(a, l);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;quicksort(a, m - &lt;font color="#ff00ff"&gt;1&lt;/font&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;quicksort(a + m, l - m);&lt;br /&gt;}&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;Sadly, unless you were paying a modicum of attention during algorithms, the equivalence between quicksort and binary search trees may have escaped you.&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-family:monospace"&gt;&lt;div style="max-height:20em;min-width:76ex;overflow:auto;white-space:nowrap"&gt;&lt;font color="#2e8b57"&gt;&lt;b&gt;struct&lt;/b&gt;&lt;/font&gt;&amp;nbsp;node {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;value;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#2e8b57"&gt;&lt;b&gt;struct&lt;/b&gt;&lt;/font&gt;&amp;nbsp;node *left, *right;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;font color="#008b8b"&gt;void&lt;/font&gt;&amp;nbsp;btreesort(&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;*a, &lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;l) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#2e8b57"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;&amp;nbsp;i;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#2e8b57"&gt;&lt;b&gt;struct&lt;/b&gt;&lt;/font&gt;&amp;nbsp;node *root = &lt;font color="#ff00ff"&gt;NULL&lt;/font&gt;, **ptr;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(i = &lt;font color="#ff00ff"&gt;0&lt;/font&gt;; i &amp;lt; l; i++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(ptr = &amp;amp;root; *ptr;)&lt;br /&gt;&lt;span style="letter-spacing:-0.1em"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ptr = a[i] &amp;lt; (*ptr)-&amp;gt;value ? &amp;amp;(*ptr)-&amp;gt;left : &amp;amp;(*ptr)-&amp;gt;right;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*ptr = malloc(&lt;font color="#a52a2a"&gt;&lt;b&gt;sizeof&lt;/b&gt;&lt;/font&gt;(&lt;font color="#2e8b57"&gt;&lt;b&gt;struct&lt;/b&gt;&lt;/font&gt;&amp;nbsp;node));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;**ptr = (&lt;font color="#2e8b57"&gt;&lt;b&gt;struct&lt;/b&gt;&lt;/font&gt;&amp;nbsp;node){.value = a[i]};&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(i = &lt;font color="#ff00ff"&gt;0&lt;/font&gt;; i &amp;lt; l; i++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#2e8b57"&gt;&lt;b&gt;struct&lt;/b&gt;&lt;/font&gt;&amp;nbsp;node *node;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(ptr = &amp;amp;root; (*ptr)-&amp;gt;left; ptr = &amp;amp;(*ptr)-&amp;gt;left);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a[i] = (*ptr)-&amp;gt;value;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node = (*ptr)-&amp;gt;right;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;free(*ptr);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(*ptr) = node;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;Well, it’s true: the two are simply slightly different views of the same idea.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;table&gt;&lt;thead style="font-style:oblique;text-align:center"&gt;&lt;tr&gt;&lt;td&gt;Quicksort&lt;/td&gt;&lt;td&gt;Binary tree&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Choose a pivot, &lt;em&gt;x&lt;/em&gt;.&lt;/td&gt;&lt;td&gt;Insert a node, &lt;em&gt;x&lt;/em&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;If &lt;em&gt;y&lt;/em&gt; is less than &lt;em&gt;x&lt;/em&gt;, move it to the left of &lt;em&gt;x&lt;/em&gt;.&lt;/td&gt;&lt;td&gt;If &lt;em&gt;y&lt;/em&gt; is less than &lt;em&gt;x&lt;/em&gt;, put it in the left subtree of &lt;em&gt;x&lt;/em&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;If &lt;em&gt;y&lt;/em&gt; is greater than &lt;em&gt;x&lt;/em&gt;, move it to the right of &lt;em&gt;x&lt;/em&gt;.&lt;/td&gt;&lt;td&gt;If &lt;em&gt;y&lt;/em&gt; is greater than &lt;em&gt;x&lt;/em&gt;, put it in the right subtree of &lt;em&gt;x&lt;/em&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sort left of &lt;em&gt;x&lt;/em&gt;, sort right of &lt;em&gt;x&lt;/em&gt;.&lt;/td&gt;&lt;td&gt;Left and right of &lt;em&gt;x&lt;/em&gt; are binary search trees.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;The resulting array is in sorted order.&lt;/td&gt;&lt;td&gt;Follow an in-order traversal of the tree.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/center&gt;&lt;br /&gt;And now you, too, know.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:50737</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/50737.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=50737"/>
    <title>Everyone loves music, even those who can’t play</title>
    <published>2009-10-03T17:17:56Z</published>
    <updated>2009-10-03T21:50:44Z</updated>
    <category term="video"/>
    <content type="html">&lt;center&gt;&lt;a href="http://www.flickr.com/photos/toysworkz/3906237203/"&gt;&lt;img src="http://farm3.static.flickr.com/2610/3906237203_fdebb49d86.jpg" title="&amp;quot;K-On!&amp;quot; Sakurako Keionbu Official Band Yarouyo!! Includes sheet music" width="500" height="333"&gt;&lt;/a&gt;&lt;div xmlns:cc="http://creativecommons.org/ns#" about="http://www.flickr.com/photos/toysworkz/3906237203/"&gt;&lt;a rel="cc:attributionURL" href="http://www.flickr.com/photos/toysworkz/"&gt;http://www.flickr.com/photos/toysworkz/&lt;/a&gt; / &lt;a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/"&gt;CC BY-NC-ND 2.0&lt;/a&gt;&lt;/div&gt;&lt;/center&gt;&lt;br /&gt;Having recently “&lt;a href="http://losslessone.wordpress.com/"&gt;acquired&lt;/a&gt;” the K-ON! music collections, I’m quite disappointed to be missing &lt;small&gt;(scans of)&lt;/small&gt; the official score book with sheet music… it &lt;a href="http://www.animenewsnetwork.com/news/2009-08-03/k-on-album-to-feature-new-manga-strips-sheet-music"&gt;sounds quite amazing&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Ah well.&amp;nbsp; As I’m not a paying customer, I don’t have much room to complain.&amp;nbsp; Besides, I can still enjoy videos which some talented netizens have chosen to share:&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://www.youtube.com/watch?v=9oum8yLQU6Y"&gt;けいおん！K-ON！OP Cagayake! GIRLS　叩いてみた&lt;/a&gt;&lt;br /&gt;&lt;lj-embed id="16" /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=70fMQ_V2Y7Q"&gt;けいおん！K-ON！ED Don't say "lazy"　叩いてみた&lt;/a&gt;&lt;br /&gt;&lt;lj-embed id="17" /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=12aLC0azql4"&gt;けいおん！K-ON！ふわふわ時間　叩いてみた&lt;/a&gt;&lt;br /&gt;&lt;lj-embed id="18" /&gt;&lt;/center&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://www.youtube.com/watch?v=RxXwhAIbtIs"&gt;【ギター】Cagayake!GIRLS【教えてみる】&lt;/a&gt;&lt;br /&gt;&lt;lj-embed id="19" /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=j9XZZmPlZII"&gt;【ギター】Don't say "lazy"【教えてみる】&lt;/a&gt;&lt;br /&gt;&lt;lj-embed id="20" /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=Q6wQBpJMP1M"&gt;【ギター】ふわふわ時間【教えてみる】&lt;/a&gt;&lt;br /&gt;&lt;lj-embed id="21" /&gt;&lt;/center&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:50492</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/50492.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=50492"/>
    <title>A.~(1:I.~([:*./}:&amp;lt;:}.)&amp;quot;_1)@(i.@!@#A.])</title>
    <published>2009-10-03T04:11:02Z</published>
    <updated>2009-10-03T04:11:02Z</updated>
    <content type="html">&lt;a href="http://forums.verizon.com/t5/Verizon-at-Home/Northeast-Router-Failure/ba-p/87001"&gt;Verizon Northeast Router Failure&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Our household switched over to FiOS® some while ago, for both TV and Internet.&amp;nbsp; The router hung a few times early on, but that was rare, and despite the lack of certain functionality &lt;small&gt;(why does it answer BOOTP without being able to configure clients?)&lt;/small&gt; the Actiontec MI424-WR has been pretty nice.&amp;nbsp; &lt;small&gt;(Hint: enable administration over port 992, &lt;tt&gt;apt-get install &lt;a href="http://packages.debian.org/sid/telnet-ssl"&gt;telnet-ssl&lt;/a&gt;&lt;/tt&gt;, and you can dive right into the system internals, including a BusyBox shell environment.&amp;nbsp; The vendor has GPL-mandated sources &lt;a href="http://opensource.actiontec.com/"&gt;reasonably accessible&lt;/a&gt;; unfortunately the management bits are tucked away inside a monolithic &lt;a href="http://www.jungo.com/openrg/"&gt;OpenRG&lt;/a&gt; binary.)&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;Today held the first real disappointment in their service for me.&amp;nbsp; Some major peering node went down, and &lt;strong&gt;bam&lt;/strong&gt; half the Internet is inaccessible for over an hour, and horribly slow thereafter.&amp;nbsp; I’m still unable to create a stable connection to my corporate VPN even now.&lt;br /&gt;&lt;br /&gt;Not that it explains my ¾years-long absence, but even a bad excuse is a good excuse to start back up again, isn’t it?</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:50288</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/50288.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=50288"/>
    <title>What kind of a first-world country relies on overhead power lines?</title>
    <published>2008-12-14T20:57:16Z</published>
    <updated>2008-12-14T20:57:16Z</updated>
    <content type="html">&lt;p&gt;One year ago, &lt;a href="http://abcnews.go.com/US/wireStory?id=4009566"&gt;Storm Leaves Northeast Buried in Snow&lt;/a&gt;:&lt;blockquote&gt;&lt;p&gt;A pre-winter blend of snow, sleet and freezing rain cut visibility and iced over highways from the Great Lakes to New England, dumping up to a foot-and-a-half of snow, stranding air and road travelers and causing an airliner to skid off a runway.&lt;p&gt;&amp;hellip;&lt;p&gt;The storm knocked out power to thousands of homes and businesses Sunday, including 137,000 in Pennsylvania, at least 10,000 in northern New England and 20,000 in eastern Canada, authorities reported.&lt;/blockquote&gt;&lt;p&gt;I’d take snow over ice any day, though.&amp;nbsp; This past week, &lt;a href="http://news.bbc.co.uk/2/hi/americas/7782145.stm"&gt;Ice storm cripples north-east US&lt;/a&gt;:&lt;blockquote&gt;&lt;p&gt;As many as 1m people have been left without power in the north-eastern US after one of the worst ice storms in a decade crippled the electricity grid.&lt;p&gt;States of emergency have been declared in Massachusetts, New Hampshire and in parts of Maine and New York state.&lt;p&gt;&amp;hellip;&lt;p&gt;About 1.4 million homes and businesses across the four affected states were left without electricity on Friday morning after a widespread overnight ice storm coated power lines, pylons and trees.&lt;/blockquote&gt;&lt;p&gt;&lt;tt&gt;&amp;lt;title/&amp;gt;&lt;/tt&gt; is an overheard line from a conversation between people forced to temporarily relocate due to the icy storm.&lt;p&gt;I’ve actually returned home just now; power has finally been restored to my neighborhood (although reports are warning that as the ice melts, trees snapping back to their original positions could cause further outages).&amp;nbsp; Our house’s heat and running water relies on electricity, so my family grabbed our stuff and escaped to a hotel in Waltham.&amp;nbsp; Boston and its nearby surroundings were lucky enough to escape most of the damage.&amp;nbsp; Not so much for other population centers like Worchester, Fitchburg, and Lowell, nor the little town where we live.&lt;p&gt;At least we’re not in New Hampshire.&amp;nbsp; Their power grid might not be back in service until Thursday or Friday &amp;ndash; one whole week later.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:50158</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/50158.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=50158"/>
    <title>Wow, I suck.</title>
    <published>2008-12-12T05:12:44Z</published>
    <updated>2008-12-12T05:14:02Z</updated>
    <content type="html">I can't say that I'll post more often, because I probably still won’t.&amp;nbsp; Sorry.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/reader/shared/01996494869760558336"&gt;Google Reader - chibiryuu's shared items&lt;/a&gt; does get updated frequently, with stuff I find interesting, so check there for updates if you want to poll for my aliveness.&amp;nbsp; Also, if you publish a public RSS feed, thank you for making it easy to &lt;s&gt;stalk&lt;/s&gt; keep in touch; if you don’t, shame on you for being anti-social.&lt;br /&gt;&lt;br /&gt;Anyhow, I was pretty happy to find &lt;a href="http://www.vtec.net/articles/article-image?image=398939/06civsi_sig.gif"&gt;a graph of RPM over MPH for various gears of a 2006 Civic Si&lt;/a&gt; while randomly browsing: its data corroborates my experiences driving my car.&lt;br /&gt;&lt;br /&gt;No, I don’t drive up to max RPMs.&amp;nbsp; (Okay, I did that sometimes, but not very often.&amp;nbsp; Besides, I’ve never brought 4th gear to max rev: that’s over 100mph!)&amp;nbsp; It means that I now have numeric quantification for an interesting pattern I’ve noticed:&lt;br /&gt;&lt;pre&gt;gear         2000 rpm                3000 rpm
----  -----------------------  ---------------------
1st   14 km/h = 10 km/h + 43%  13 mph = 10 mph + 34%
2nd   22 km/h = 20 km/h + 12%  20 mph = 20 mph +  5%
3rd   31 km/h = 30 km/h +  5%  29 mph = 30 mph -  2%
4th   41 km/h = 40 km/h +  4%  38 mph = 40 mph -  3%
5th   51 km/h = 50 km/h +  4%  48 mph = 50 mph -  3%
6th   73 km/h = 70 km/h +  5%  68 mph = 70 mph -  2%&lt;/pre&gt;Rev-matching anything outside of 1st gear is so very simple.&amp;nbsp; It seemed far too coincidental when I discovered it experimentally, but the numbers back it up.&lt;br /&gt;&lt;br /&gt;Notice how the gear ratios get tigher and tigher packed from 1st to 5th, and then there’s that big jump from 5th to 6th?&amp;nbsp; When I shift by ear (RPM is correlated to pitch of engine noise), that always throws me off.&amp;nbsp; Basically, shifting by a single gear usually involves a nice-sounding change in pitch &amp;mdash; a major third or perfect fifth interval &amp;mdash; except for that 5/6 transition, which is a dissonant tritone.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:49848</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/49848.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=49848"/>
    <title>Assembly review, part 1 of 3</title>
    <published>2008-09-23T04:09:02Z</published>
    <updated>2008-09-23T13:52:28Z</updated>
    <content type="html">None of this will be new to most of my readers&amp;hellip; because I&amp;rsquo;m pretty sure I have 3 at most, and 2 of them should know this stuff already.&amp;nbsp; But!&amp;nbsp; This is for the sake of the third.&lt;br /&gt;&lt;br /&gt;Say you&amp;rsquo;re given a disassembly.&amp;nbsp; For example, here&amp;rsquo;s some that might be outputted by &lt;code&gt;objdump -d fun.o&lt;/code&gt;:&lt;br /&gt;&lt;blockquote style="white-space:nowrap"&gt;&lt;tt&gt;fun.o:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file format elf32-i386&lt;br /&gt;&lt;br /&gt;Disassembly of section .text:&lt;br /&gt;&lt;br /&gt;00000000 &amp;lt;fun&amp;gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;0:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 55&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; push&amp;nbsp;&amp;nbsp; %ebp&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 89 e5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp; %esp,%ebp&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 53&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; push&amp;nbsp;&amp;nbsp; %ebx&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;4:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 83 ec 08&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sub&amp;nbsp;&amp;nbsp;&amp;nbsp; $0x8,%esp&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;7:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 83 7d 08 01&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmpl&amp;nbsp;&amp;nbsp; $0x1,0x8(%ebp)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;b:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 77 08&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ja&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 15 &amp;lt;fun+0x15&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;d:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8b 45 08&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x8(%ebp),%eax&lt;br /&gt;&amp;nbsp;&amp;nbsp;10:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 89 45 f8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp; %eax,-0x8(%ebp)&lt;br /&gt;&amp;nbsp;&amp;nbsp;13:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; eb 23&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jmp&amp;nbsp;&amp;nbsp;&amp;nbsp; 38 &amp;lt;fun+0x38&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;15:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8b 45 08&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x8(%ebp),%eax&lt;br /&gt;&amp;nbsp;&amp;nbsp;18:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 83 e8 02&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sub&amp;nbsp;&amp;nbsp;&amp;nbsp; $0x2,%eax&lt;br /&gt;&amp;nbsp;&amp;nbsp;1b:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 89 04 24&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp; %eax,(%esp)&lt;br /&gt;&amp;nbsp;&amp;nbsp;1e:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e8 fc ff ff ff&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call&amp;nbsp;&amp;nbsp; 1f &amp;lt;fun+0x1f&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;23:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 89 c3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp; %eax,%ebx&lt;br /&gt;&amp;nbsp;&amp;nbsp;25:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8b 45 08&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x8(%ebp),%eax&lt;br /&gt;&amp;nbsp;&amp;nbsp;28:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 83 e8 01&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sub&amp;nbsp;&amp;nbsp;&amp;nbsp; $0x1,%eax&lt;br /&gt;&amp;nbsp;&amp;nbsp;2b:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 89 04 24&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp; %eax,(%esp)&lt;br /&gt;&amp;nbsp;&amp;nbsp;2e:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e8 fc ff ff ff&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call&amp;nbsp;&amp;nbsp; 2f &amp;lt;fun+0x2f&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;33:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 01 c3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; add&amp;nbsp;&amp;nbsp;&amp;nbsp; %eax,%ebx&lt;br /&gt;&amp;nbsp;&amp;nbsp;35:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 89 5d f8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp; %ebx,-0x8(%ebp)&lt;br /&gt;&amp;nbsp;&amp;nbsp;38:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8b 45 f8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp; -0x8(%ebp),%eax&lt;br /&gt;&amp;nbsp;&amp;nbsp;3b:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 83 c4 08&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; add&amp;nbsp;&amp;nbsp;&amp;nbsp; $0x8,%esp&lt;br /&gt;&amp;nbsp;&amp;nbsp;3e:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pop&amp;nbsp;&amp;nbsp;&amp;nbsp; %ebx&lt;br /&gt;&amp;nbsp;&amp;nbsp;3f:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pop&amp;nbsp;&amp;nbsp;&amp;nbsp; %ebp&lt;br /&gt;&amp;nbsp;&amp;nbsp;40:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;/tt&gt;&lt;/blockquote&gt;Let&amp;rsquo;s work step-by-step to figure out what this is.&lt;br /&gt;&lt;br /&gt;Assumption: &lt;a href="http://en.wikipedia.org/wiki/X86_calling_conventions#cdecl"&gt;cdecl&lt;/a&gt; calling convention.&lt;br /&gt;&lt;br /&gt;Assumption: &lt;code&gt;fun&lt;/code&gt; is a function.&amp;nbsp; Stuff other than functions can and do end up in the &lt;code&gt;.text&lt;/code&gt; section, but this seems to disassemble just fine, so it&amp;rsquo;s probably executable code.&amp;nbsp; So let&amp;rsquo;s start with a skeleton:&lt;br /&gt;&lt;tt&gt;&amp;hellip; fun(&amp;hellip;);&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;Bytes 0-6 are the function prelude: saving the old &lt;code&gt;%ebp&lt;/code&gt;, setting &lt;code&gt;%ebp&lt;/code&gt; to the top of our frame, and growing our stack by &lt;code&gt;0x8&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;Quick, what does the stack look like?&lt;br /&gt;&lt;blockquote&gt;&lt;tt&gt;....&lt;br /&gt;....^-- arguments are above the return address&lt;br /&gt;....&amp;lt;-- return address&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;v-- top of our frame -- %ebp now points here&lt;br /&gt;....&amp;lt;-- the eight bytes of our frame&lt;br /&gt;....&amp;lt;-- that we just reserved...&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;^-- bottom of our frame -- %esp now points here&lt;br /&gt;&lt;/tt&gt;&lt;/blockquote&gt;&lt;br /&gt;Bytes 7-c compare the literal value &lt;code&gt;1&lt;/code&gt; to the 4-byte value at an address 8 bytes above &lt;code&gt;%ebp&lt;/code&gt; &amp;mdash; in other words, the first argument &amp;mdash; then if &lt;code&gt;(unsigned)arg1 &amp;gt; 1&lt;/code&gt;, we jump to byte 15 (&lt;code&gt;ja&lt;/code&gt; is the unsigned version of &lt;code&gt;jg&lt;/code&gt;, jump-if-greater.)&amp;nbsp; Now we know that &lt;code&gt;fun&lt;/code&gt; takes at least one argument, the first of which is an unsigned 4-byte value, so:&lt;br /&gt;&lt;tt&gt;&amp;hellip; fun(unsigned arg1, &amp;hellip;);&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;Suppose we didn&amp;rsquo;t take the jump, meaning that &lt;code&gt;(unsigned)arg1 &amp;le; 1&lt;/code&gt;.&amp;nbsp; Bytes d-14 copy &lt;code&gt;arg1&lt;/code&gt; to &lt;code&gt;%eax&lt;/code&gt;, then &lt;code&gt;%eax&lt;/code&gt; to the bottom of our frame &amp;mdash; that&amp;rsquo;s a local variable.&lt;br /&gt;&lt;tt&gt;&amp;hellip; fun(unsigned arg1, &amp;hellip;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;unsigned local1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (arg1 &amp;lt;= 1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;local1 = arg1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;hellip;&lt;br /&gt;}&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;Alright, so suppose that bytes b-c &lt;em&gt;do&lt;/em&gt; jump us to 15.&amp;nbsp; Bytes 15-24 copy &lt;code&gt;arg1&lt;/code&gt; to &lt;code&gt;%eax&lt;/code&gt;, subtract 2, push it on the stack, recursively call &lt;code&gt;fun&lt;/code&gt;, then save the return value in &lt;code&gt;%ebx&lt;/code&gt;.&amp;nbsp; Bytes 25-33 copy &lt;code&gt;arg1&lt;/code&gt; to &lt;code&gt;%eax&lt;/code&gt;, subtract 1, push it on the stack, recursively call &lt;code&gt;fun&lt;/code&gt;, then add the return value to &lt;code&gt;%ebx&lt;/code&gt;.&amp;nbsp; Bytes 35-37 then take &lt;code&gt;%ebx&lt;/code&gt;, the sum, and saves it to what we decided to call &lt;code&gt;local1&lt;/code&gt;.&amp;nbsp; From this, we can gather that &lt;code&gt;fun&lt;/code&gt; takes a single argument, since that&amp;rsquo;s all we push onto the stack before calling it, and returns a 4-byte value, since we treat &lt;code&gt;%eax&lt;/code&gt; as one:&lt;br /&gt;&lt;tt&gt;unsigned fun(unsigned arg1) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;unsigned local1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (arg1 &amp;lt;= 1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;local1 = arg1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;local1 = fun(arg1 - 2) + fun(arg1 - 1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;hellip;&lt;br /&gt;}&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;Bytes 38-40 copy &lt;code&gt;local1&lt;/code&gt; to &lt;code&gt;%eax&lt;/code&gt; &amp;mdash; the return register &amp;mdash; then go through the standard teardown of our frame and return.&amp;nbsp; We&amp;rsquo;ve completed analyzing this function:&lt;br /&gt;&lt;tt&gt;unsigned fun(unsigned arg1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;unsigned local1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (arg1 &amp;lt;= 1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;local1 = arg1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;local1 = fun(arg1 - 2) + fun(arg1 - 1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return local1;&lt;br /&gt;}&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;That looks very familiar&amp;hellip; almost like a naïve Fibonacci number generator!&amp;nbsp; In fact, if we write this:&lt;br /&gt;&lt;blockquote style="white-space:nowrap"&gt;&lt;tt&gt;&lt;font color="#2e8b57"&gt;&lt;b&gt;unsigned&lt;/b&gt;&lt;/font&gt;&amp;nbsp;fib(&lt;font color="#2e8b57"&gt;&lt;b&gt;unsigned&lt;/b&gt;&lt;/font&gt;&amp;nbsp;n) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/font&gt;&amp;nbsp;(n &amp;lt;= &lt;font color="#ff00ff"&gt;1&lt;/font&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/font&gt;&amp;nbsp;n;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/font&gt;&amp;nbsp;fib(n - &lt;font color="#ff00ff"&gt;2&lt;/font&gt;) + fib(n - &lt;font color="#ff00ff"&gt;1&lt;/font&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;/tt&gt;&lt;/blockquote&gt;and pass it through &lt;code&gt;gcc -S&lt;/code&gt;, it outputs this:&lt;br /&gt;&lt;blockquote style="white-space:nowrap"&gt;&lt;tt&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;.file&lt;/b&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;quot;&lt;font color="#008b8b"&gt;fib&lt;/font&gt;.&lt;font color="#008b8b"&gt;c&lt;/font&gt;&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;.text&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;.globl&lt;/b&gt;&lt;/font&gt;&amp;nbsp;&lt;font color="#008b8b"&gt;fib&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;.type&lt;/b&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;fib&lt;/font&gt;, @&lt;font color="#008b8b"&gt;function&lt;/font&gt;&lt;br /&gt;&lt;font color="#008b8b"&gt;fib&lt;/font&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;pushl&lt;/font&gt;&amp;nbsp;&amp;nbsp;%&lt;font color="#008b8b"&gt;ebp&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;movl&lt;/font&gt;&amp;nbsp;&amp;nbsp; %&lt;font color="#008b8b"&gt;esp&lt;/font&gt;, %&lt;font color="#008b8b"&gt;ebp&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;pushl&lt;/font&gt;&amp;nbsp;&amp;nbsp;%&lt;font color="#008b8b"&gt;ebx&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;subl&lt;/font&gt;&amp;nbsp;&amp;nbsp; $&lt;font color="#ff00ff"&gt;8&lt;/font&gt;, %&lt;font color="#008b8b"&gt;esp&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;cmpl&lt;/font&gt;&amp;nbsp;&amp;nbsp; $&lt;font color="#ff00ff"&gt;1&lt;/font&gt;, &lt;font color="#ff00ff"&gt;8&lt;/font&gt;(%&lt;font color="#008b8b"&gt;ebp&lt;/font&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;ja&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;font color="#008b8b"&gt;L2&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;movl&lt;/font&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#ff00ff"&gt;8&lt;/font&gt;(%&lt;font color="#008b8b"&gt;ebp&lt;/font&gt;), %&lt;font color="#008b8b"&gt;eax&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;movl&lt;/font&gt;&amp;nbsp;&amp;nbsp; %&lt;font color="#008b8b"&gt;eax&lt;/font&gt;, -&lt;font color="#ff00ff"&gt;8&lt;/font&gt;(%&lt;font color="#008b8b"&gt;ebp&lt;/font&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;jmp&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.&lt;font color="#008b8b"&gt;L4&lt;/font&gt;&lt;br /&gt;.&lt;font color="#008b8b"&gt;L2&lt;/font&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;movl&lt;/font&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#ff00ff"&gt;8&lt;/font&gt;(%&lt;font color="#008b8b"&gt;ebp&lt;/font&gt;), %&lt;font color="#008b8b"&gt;eax&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;subl&lt;/font&gt;&amp;nbsp;&amp;nbsp; $&lt;font color="#ff00ff"&gt;2&lt;/font&gt;, %&lt;font color="#008b8b"&gt;eax&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;movl&lt;/font&gt;&amp;nbsp;&amp;nbsp; %&lt;font color="#008b8b"&gt;eax&lt;/font&gt;, (%&lt;font color="#008b8b"&gt;esp&lt;/font&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;call&lt;/font&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#008b8b"&gt;fib&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;movl&lt;/font&gt;&amp;nbsp;&amp;nbsp; %&lt;font color="#008b8b"&gt;eax&lt;/font&gt;, %&lt;font color="#008b8b"&gt;ebx&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;movl&lt;/font&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#ff00ff"&gt;8&lt;/font&gt;(%&lt;font color="#008b8b"&gt;ebp&lt;/font&gt;), %&lt;font color="#008b8b"&gt;eax&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;subl&lt;/font&gt;&amp;nbsp;&amp;nbsp; $&lt;font color="#ff00ff"&gt;1&lt;/font&gt;, %&lt;font color="#008b8b"&gt;eax&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;movl&lt;/font&gt;&amp;nbsp;&amp;nbsp; %&lt;font color="#008b8b"&gt;eax&lt;/font&gt;, (%&lt;font color="#008b8b"&gt;esp&lt;/font&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;call&lt;/font&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#008b8b"&gt;fib&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;addl&lt;/font&gt;&amp;nbsp;&amp;nbsp; %&lt;font color="#008b8b"&gt;eax&lt;/font&gt;, %&lt;font color="#008b8b"&gt;ebx&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;movl&lt;/font&gt;&amp;nbsp;&amp;nbsp; %&lt;font color="#008b8b"&gt;ebx&lt;/font&gt;, -&lt;font color="#ff00ff"&gt;8&lt;/font&gt;(%&lt;font color="#008b8b"&gt;ebp&lt;/font&gt;)&lt;br /&gt;.&lt;font color="#008b8b"&gt;L4&lt;/font&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;movl&lt;/font&gt;&amp;nbsp;&amp;nbsp; -&lt;font color="#ff00ff"&gt;8&lt;/font&gt;(%&lt;font color="#008b8b"&gt;ebp&lt;/font&gt;), %&lt;font color="#008b8b"&gt;eax&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;addl&lt;/font&gt;&amp;nbsp;&amp;nbsp; $&lt;font color="#ff00ff"&gt;8&lt;/font&gt;, %&lt;font color="#008b8b"&gt;esp&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;popl&lt;/font&gt;&amp;nbsp;&amp;nbsp; %&lt;font color="#008b8b"&gt;ebx&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;popl&lt;/font&gt;&amp;nbsp;&amp;nbsp; %&lt;font color="#008b8b"&gt;ebp&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;ret&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;.size&lt;/b&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&lt;font color="#008b8b"&gt;fib&lt;/font&gt;, .-&lt;font color="#008b8b"&gt;fib&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;.ident&lt;/b&gt;&lt;/font&gt;&amp;nbsp;&amp;quot;&lt;font color="#008b8b"&gt;GCC&lt;/font&gt;: (&lt;font color="#008b8b"&gt;GNU&lt;/font&gt;) &lt;font color="#ff00ff"&gt;4&lt;/font&gt;.&lt;font color="#ff00ff"&gt;2&lt;/font&gt;.&lt;font color="#ff00ff"&gt;4&lt;/font&gt;&amp;nbsp;(&lt;font color="#008b8b"&gt;Gentoo&lt;/font&gt;&amp;nbsp;&lt;font color="#ff00ff"&gt;4&lt;/font&gt;.&lt;font color="#ff00ff"&gt;2&lt;/font&gt;.&lt;font color="#ff00ff"&gt;4&lt;/font&gt;&amp;nbsp;&lt;font color="#008b8b"&gt;p1&lt;/font&gt;.0)&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#a52a2a"&gt;&lt;b&gt;.section&lt;/b&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#a52a2a"&gt;&lt;b&gt;.note.GNU&lt;/b&gt;&lt;/font&gt;-&lt;font color="#008b8b"&gt;stack&lt;/font&gt;,&amp;quot;&amp;quot;,@&lt;font color="#008b8b"&gt;progbits&lt;/font&gt;&lt;br /&gt;&lt;/tt&gt;&lt;/blockquote&gt;So we pretty much nailed it on the head.&amp;nbsp; (As to be expected from a simple example like this.)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:49557</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/49557.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=49557"/>
    <title>Bleh</title>
    <published>2008-06-27T02:10:48Z</published>
    <updated>2008-06-27T02:10:48Z</updated>
    <content type="html">So I'm driving home from work today, and being distracted because the cold engine's autochoke makes the shift points feel funny.  As I exit the parking lot and get onto the road, BOOM.  I've hit the curb.&lt;br /&gt;W. T. F.  I drive this way *every single (week)day* and never does this happen.&lt;br /&gt;Half a mile down the road, I realize, "oh %$#@, the tire's flat".  So I pull off onto some random driveway and change to the spare, but GYAAARGH it sucks.&lt;br /&gt;&lt;br /&gt;Last night I tried beating Metroid Prime 3 again.  I've been stuck on the final boss for months now.  After another series of failed attempts, I went upstairs to beat on the walls instead.  Much less painful.&lt;br /&gt;&lt;br /&gt;Dear old laptop, you're supposed to be high-quality hardware.  Why are you breaking?  The keyboard has been on the fritz for the past week or so, and is now totally dead.&lt;br /&gt;&lt;br /&gt;Other shoddy hardware: the LCD hooked up to my desktop started dying last year, unable to sync the video signal, and it's gotten worse to the point where it will no longer display an image.&lt;br /&gt;&lt;br /&gt;However, unlike the above complaints, this last one has actually been resolved: today I have a new &lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16824009124"&gt;Acer P223Wwd&lt;/a&gt;, veeery nice.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:49182</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/49182.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=49182"/>
    <title>Birth of a new in-joke</title>
    <published>2008-04-29T00:13:45Z</published>
    <updated>2008-04-29T00:13:45Z</updated>
    <content type="html">&lt;h1&gt;貓&lt;br /&gt;&lt;/h1&gt;rotfl.&lt;br /&gt;&lt;br /&gt;I feel like if I don’t explain, those who weren’t there will be utterly confused by this post.&amp;nbsp; But it’s not funny enough to warrant an explanation&amp;hellip;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;So I once again missed my weekly post, oops.&amp;nbsp; Some past events:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.ubuntu.com/products/whatisubuntu/804features/"&gt;Ubuntu 8.04 Hardy Heron&lt;/a&gt; is released.&amp;nbsp; &lt;a href="http://fedoraproject.org/wiki/Releases/9"&gt;Fedora 9&lt;/a&gt; is delayed by two weeks.&lt;br /&gt;That being said, I’ve dropped both Ubuntu and Fedora for my own personal use, as both have demoted PowerPC support.&amp;nbsp; Now going Debian and Gentoo all the way!&amp;nbsp; Even if releases are slow, at least they’re still well-maintained.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A couple weeks ago, I bought a new car.&amp;nbsp; Vroom vroom.&amp;nbsp; For those of you who want to borrow it to learn how to drive a standard: &lt;span style="font-variant:small-caps"&gt;get ’yer own!&lt;/span&gt;&amp;nbsp; ;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Current soundtrack in my car: &lt;a href="http://www.metroidmetal.com/"&gt;Metroid Metal&lt;/a&gt;.&amp;nbsp; This marks the first music I’ve actually paid for in&amp;hellip; a long time.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I am 90% through Gitaroo Man for PS2 on normal mode.&amp;nbsp; So hard.&amp;nbsp; Somebody needs to help me beat that un-frigging-believably impossible last level.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The end.&amp;nbsp; Well, there’s probably other interesting things that have happened, but nothing immediately recallable.&amp;nbsp; Hurray for having a sieve-like memory.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:48898</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/48898.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=48898"/>
    <title>Upon exiting “Forbidden Kingdom”</title>
    <published>2008-04-19T03:58:49Z</published>
    <updated>2008-04-19T03:58:49Z</updated>
    <content type="html">me: What did we learn about mythology?&lt;br /&gt;poo-chan: Nothing.&lt;br /&gt;khan: It’s freely interchangable.&lt;br /&gt;&lt;br /&gt;(correct me if I got your lines backwards&amp;hellip;)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:48852</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/48852.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=48852"/>
    <title>Awesome misconceptions</title>
    <published>2008-04-13T12:07:56Z</published>
    <updated>2008-04-13T12:07:56Z</updated>
    <content type="html">No, &lt;a href="http://www.distilled-dreams.com/"&gt;Poodle&lt;/a&gt;, you don’t need a special license to drive a stick shift.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:48479</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/48479.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=48479"/>
    <title>Linkage</title>
    <published>2008-04-08T00:56:29Z</published>
    <updated>2008-04-08T00:56:29Z</updated>
    <content type="html">Via &lt;a href="http://lemonodor.com/archives/2008/04/watch_out_for_the_hindley_milner_type_checker.html"&gt;Lemonodor&lt;/a&gt;:&lt;br /&gt;&lt;a href="http://lisperati.com/landoflisp/"&gt;&lt;img src="http://lemonodor.com/images/functional-programming-is-beautiful-s.jpg" alt="what&amp;#39;s south of the Land of Lisp?" title="what&amp;#39;s south of the Land of Lisp?" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Via &lt;a href="http://elfs.livejournal.com/806897.html"&gt;elfs&lt;/a&gt;:&amp;nbsp; &lt;a href="http://www.ncbi.nlm.nih.gov/sites/entrez?cmd=Retrieve&amp;amp;db=pubmed&amp;amp;dopt=AbstractPlus&amp;amp;list_uids=8772014"&gt;Is homophobia associated with homosexual arousal?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On that note, via &lt;a href="http://healthhacker.org/satoroams/?p=888"&gt;Biella Coleman&lt;/a&gt;:&amp;nbsp; &lt;a href="http://scienceblogs.com/pharyngula/2008/03/major_breakthrough_in_christia.php"&gt;Major breakthrough in Christian genetics&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Okay, enough of that.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;Back in the day, I used to visit a bunch of websites regularly.&amp;nbsp; This list of websites went through several revisions.&lt;br /&gt;&lt;br /&gt;Version 0:&amp;nbsp; Whatever I remembered.&amp;nbsp; Unfortunately, I have a very porous memory.&lt;br /&gt;Version 1:&amp;nbsp; I kept a master list of “interesting stuff” in a HTML file in my homedir.&amp;nbsp; This kinda worked, but would get out of sync between my different computers, and occasionally was lost when I accidentally deleted it or when a hard disk crashed.&lt;br /&gt;Version 2:&amp;nbsp; &lt;a href="http://del.icio.us/"&gt;del.icio.us&lt;/a&gt;.&amp;nbsp; It was pretty good; I still use it for keeping up with &lt;a href="http://del.icio.us/dtlin/webcomics"&gt;webcomics&lt;/a&gt; which don’t all have feeds.&lt;br /&gt;Version 3:&amp;nbsp; &lt;a href="http://akregator.kde.org/"&gt;Akregator&lt;/a&gt;, a news feed reader for KDE.&amp;nbsp; It still had the problem of being out-of-sync between different machines and being lost in hard disk crashes.&lt;br /&gt;Version 4:&amp;nbsp; &lt;a href="http://www.google.com/reader/"&gt;Google Reader&lt;/a&gt;.&amp;nbsp; Not only is it a wonderful interface I can access from anywhere, from almost any browser (not very compatible with Opera and Konqui, but works fine on my n810), but also it’s got better keyboard shortcuts than most desktop feed readers!&amp;nbsp; Soon, &lt;a href="http://commit-digest.org/issues/101/"&gt;Akregator synchronization with Google Reader&lt;/a&gt; will make life even more awesome.&lt;br /&gt;&lt;br /&gt;As a side-effect of moving to news feed readers, though, I’ve been dropping any blog or site which lacks public RSS/Atom feeds.&amp;nbsp; Any former friend on Xanga/LJ who doesn’t have a public feed: dropped.&amp;nbsp; Any news site which doesn’t have a public feed: dropped.&amp;nbsp; Any &amp;hellip; well, you get the point.&amp;nbsp; Webcomics are an exception, because too many that I don’t want to give up quite yet are feedless.&lt;br /&gt;&lt;br /&gt;(BTW, &lt;a href="http://www.distilled-dreams.com/"&gt;Poodle&lt;/a&gt;!&amp;nbsp; Write a RSS/Atom generator for your blog already!)&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;So what do I follow nowadays?&amp;nbsp; Lots of math and CS blogs; development of Linux, KDE, Gnome, Haskell, Lisp, Perl, Ruby, etc., tech news like ars and Phoronix, and&amp;hellip;&lt;br /&gt;&lt;br /&gt;In the “cute” folder: &lt;a href="http://mfrost.typepad.com/cute_overload/"&gt;Cute Overload&lt;/a&gt;, &lt;a href="http://icanhascheezburger.com/"&gt;I CAN HAS CHEEZBURGER?&lt;/a&gt;, &lt;a href="http://arcanux.org/lambdacats.html"&gt;Lambdacats&lt;/a&gt;, &lt;a href="http://letsbefriends.blogspot.com/"&gt;Let’s be friends&lt;/a&gt; (hasn’t updated in a while), &lt;a href="http://dropline.net/cats"&gt;Meme Cats&lt;/a&gt; (hasn’t updated in a while), &lt;a href="http://www.stuffonmycat.com/"&gt;Stuff On My Cat&lt;/a&gt;, and &lt;a href="http://failblog.wordpress.com/"&gt;The FAIL Blog&lt;/a&gt;, which isn’t cute, but falls into the general category of &lt;a href="http://en.wikipedia.org/wiki/Image_macro"&gt;image macro&lt;/a&gt;s, and is horribly amusing.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:48306</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/48306.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=48306"/>
    <title>Seriously, I do not consume caffeine</title>
    <published>2008-04-02T00:54:17Z</published>
    <updated>2008-04-02T00:54:17Z</updated>
    <content type="html">&lt;a href="http://www.oneplusyou.com/q/v/caffeine"&gt;&lt;img border="0" src="http://img.photobucket.com/albums/v120/dtlin/shots/whoa.png" width="643" height="746"&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:47994</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/47994.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=47994"/>
    <title>I’m back?</title>
    <published>2008-03-31T01:33:15Z</published>
    <updated>2008-03-31T02:59:31Z</updated>
    <content type="html">I missed the &lt;a href="http://beckyzoole.livejournal.com/tag/content+strike"&gt;LiveJournal content strike&lt;/a&gt;.&amp;nbsp; Or maybe I participated in it, since I was too busy to be using LJ&amp;hellip;&lt;br /&gt;&lt;br /&gt;On Wednesday I went to a piano recital held by &lt;a href="http://www.facebook.com/profile.php?id=2400169"&gt;an acquiantance&lt;/a&gt; I haven’t seen since high school; there were lots of other people there that I haven’t seen in ages, mostly former classmates, but I ran into my old boss from a previous job too.&amp;nbsp; Needless to say, there were lots of people whose faces or names (or both) I’d forgotten in the intervening years&amp;hellip; sigh.&amp;nbsp; At least the music was wonderful and amazing.&lt;br /&gt;&lt;br /&gt;I found a &lt;a href="http://thepiratebay.org/tor/3934693/Pro-Pack_(Songs_for_ITG_and_Stepmania)"&gt;pack of simfiles&lt;/a&gt; that turned out to be a lot of fun.&lt;br /&gt;&lt;a href="http://img.photobucket.com/albums/v120/dtlin/shots/caramelldansen-fc.png"&gt;&lt;img src="http://smg.photobucket.com/albums/v120/dtlin/shots/th_caramelldansen-fc.png" width="160" height="120"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A couple weekends ago, Khan got Smash Bros. Brawl and invited Poodle, ’baasan, and I to come over and play.&amp;nbsp; We ended up playing all night, it was pretty awesome.&amp;nbsp; Last weekend J and I raided Khan’s for the Wii (Smash) and PS2 (Katamari Damacy), that was great too.&amp;nbsp; On the downside, it means that I’ve been missing my weekly dose of Metroid Prime 3 and Hayate no Gotoku for a while now&amp;hellip;&lt;br /&gt;&lt;br /&gt;This weekend, I drove down to J’s place to replace a computer fan that had died a horrible screechy death.&amp;nbsp; We dragged Poodle along and attended the local &lt;a href="http://sophia.smith.edu/conbust/index.html"&gt;sci-fi/fantasy/anime/gaming convention&lt;/a&gt;.&amp;nbsp; I came back with a wallet about $100 lighter (in exchange for manga; GSC Revised 1-4 and Translucent 2-3) and a few sticks of Pocky from winning at the 2-hour “Name That [Anime/J-Pop/Game] Tune” panel.&amp;nbsp; (Not to brag, but I won quite overwhelmingly.&amp;nbsp; It was great fun.)&amp;nbsp; Most &lt;s&gt;important&lt;/s&gt;awesomest of all, though, we attended a panel by the artists/writers of &lt;a href="http://www.thedevilspanties.com/"&gt;The Devil’s Panties&lt;/a&gt;, &lt;a href="http://questionablecontent.net/"&gt;Questionable Content&lt;/a&gt;, &lt;a href="http://www.paranoiddreams.com/"&gt;Minimalist Stick Figure Theatre&lt;/a&gt;, and &lt;a href="http://xkcd.com/"&gt;xkcd&lt;/a&gt;, and I got to play some DDR.&amp;nbsp; I got A’s and B’s on &lt;a href="http://www.ddrfreak.com/stepcharts/stepchart.php?song=321stars&amp;amp;mode=Single&amp;amp;difficulty=Maniac&amp;amp;code=Normal&amp;amp;Submit=Submit"&gt;1&lt;/a&gt;&lt;a href="http://www.ddrfreak.com/stepcharts/stepchart.php?song=damdariram&amp;amp;mode=Single&amp;amp;difficulty=Maniac&amp;amp;code=Normal&amp;amp;Submit=Submit"&gt;2&lt;/a&gt;&lt;a href="http://www.ddrfreak.com/stepcharts/stepchart.php?song=v&amp;amp;mode=Single&amp;amp;difficulty=Maniac2&amp;amp;code=Normal&amp;amp;Submit=Submit"&gt;3&lt;/a&gt;&lt;a href="http://www.ddrfreak.com/stepcharts/stepchart.php?song=rhythm&amp;amp;mode=Single&amp;amp;difficulty=Maniac&amp;amp;code=Normal&amp;amp;Submit=Submit"&gt;4&lt;/a&gt; while J and Poodle switched off.&amp;nbsp; Lazy slackers :P</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:47717</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/47717.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=47717"/>
    <title>Smorgasbord</title>
    <published>2008-03-12T00:28:53Z</published>
    <updated>2008-03-12T00:29:49Z</updated>
    <content type="html">&lt;blockquote&gt;&lt;dl&gt;&lt;dt&gt;ephemient&lt;/dt&gt;&lt;dd&gt;&lt;a href="http://maria-sama.rightstuf.com/"&gt;http://maria-sama.rightstuf.com/&lt;/a&gt;&lt;br /&gt;wow&lt;br /&gt;add up the prices for the preorders, comes to about $100 for all three seasons&lt;br /&gt;&lt;/dd&gt;&lt;dt&gt;khan32k1&lt;/dt&gt;&lt;dd&gt;whoa&lt;br /&gt;rightstuf has marimite?&lt;br /&gt;&lt;/dd&gt;&lt;dt&gt;ephemient&lt;/dt&gt;&lt;dd&gt;they do now&lt;br /&gt;&lt;/dd&gt;&lt;dt&gt;khan32k1&lt;/dt&gt;&lt;dd&gt;hmm&lt;br /&gt;i'll have to preorder sometime in june&lt;br /&gt;&lt;/dd&gt;&lt;dt&gt;ephemient&lt;/dt&gt;&lt;dd&gt;why in june?&lt;br /&gt;&lt;/dd&gt;&lt;dt&gt;khan32k1&lt;/dt&gt;&lt;dd&gt;comes out in july&lt;br /&gt;&lt;/dd&gt;&lt;hr align="left" width="80"&gt;&lt;dt&gt;khan32k1&lt;/dt&gt;&lt;dd&gt;man&lt;br /&gt;I want marimite&lt;br /&gt;&lt;/dd&gt;&lt;dt&gt;ephemient&lt;/dt&gt;&lt;dd&gt;hehe&lt;br /&gt;judging by the responses on AoD, ANN, ALC ML, /u/, etc... I think RightStuf got like thousands of preorders as soon as it was announced&lt;br /&gt;&lt;/dd&gt;&lt;dt&gt;khan32k1&lt;/dt&gt;&lt;dd&gt;marimite is a really popular series&lt;br /&gt;&lt;/dd&gt;&lt;dt&gt;ephemient&lt;/dt&gt;&lt;dd&gt;for a series with no action and fairly low-key humor and other lacks of common exciting features, it's pretty darn popular&lt;br /&gt;I mean, it's really just a (good) slow character drama, right?&lt;br /&gt;&lt;/dd&gt;&lt;dt&gt;khan32k1&lt;/dt&gt;&lt;dd&gt;heh&lt;br /&gt;yeah&lt;br /&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/blockquote&gt;&lt;p align="center"&gt;&lt;lj-embed id="15" /&gt;&lt;br /&gt;&lt;small&gt;[ &lt;a href="http://www.youtube.com/watch?v=f4EHgF2seC0"&gt;ｳｯｰｳｯｰｳﾏｳﾏ(ﾟ∀ﾟ)&lt;/a&gt; a.k.a. &lt;a href="http://en.wikipedia.org/wiki/Caramelldansen"&gt;Caramelldansen&lt;/a&gt; is eating my brain.&lt;/small&gt;]&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;I’m considering buying a VPS from &lt;a href="http://us.layershift.com/"&gt;Layershift&lt;/a&gt; or &lt;a href="http://www.linode.com/"&gt;Linode&lt;/a&gt;.&amp;nbsp; Not having a school UNIX account means that the number of Linux machines I can play around in is limited to the number of machines in my home, and these guys have way more bandwidth than I do.&lt;br /&gt;&lt;br /&gt;Also stole dad’s &lt;a href="http://isbn.nu/9780201409932/"&gt;PCI System Architecture&lt;/a&gt; and &lt;a href="http://isbn.nu/9780596005658/"&gt;Understanding the Linux Kernel&lt;/a&gt; books while he’s on a &lt;s&gt;vacation&lt;/s&gt; business trip.&amp;nbsp; (His car, too.)&lt;br /&gt;&lt;br /&gt;Aside from the fact that they presently make up at least a quarter of my real-life manga collection, what do these series have in common?&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Hana-Kimi"&gt;Hana-Kimi&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Kashimashi"&gt;Kashimashi&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Ouran_High_School_Host_Club"&gt;Ouran High School Host Club&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Pretty_Face"&gt;Pretty Face&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/W_Juliet"&gt;W Juliet&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Yubisaki_Milk_Tea"&gt;Yubisaki Milk Tea&lt;/a&gt;&lt;br /&gt;(Heck, a couple pages in the first volumes of &lt;a href="http://en.wikipedia.org/wiki/Hayate_the_Combat_Butler"&gt;Hayate the Combat Butler&lt;/a&gt; and &lt;a href="http://oyceter.livejournal.com/662458.html"&gt;One Thousand and One Nights&lt;/a&gt; (the manhwa) qualify too.)&lt;br /&gt;Man, can I pick ’em or what?</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:47440</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/47440.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=47440"/>
    <title>Epic</title>
    <published>2008-03-04T03:11:20Z</published>
    <updated>2008-03-04T03:11:20Z</updated>
    <content type="html">Watching &lt;a href="http://en.wikipedia.org/wiki/Moyashimon"&gt;Moyashimon&lt;/a&gt; right now.&amp;nbsp; Up to episode 10.&lt;br /&gt;ROTFL.&amp;nbsp; Kei pulls it off even better than &lt;a href="http://en.wikipedia.org/wiki/Shion_no_%C5%8C"&gt;Ayumi Saitō&lt;/a&gt;.&lt;br /&gt;(Spoiler warnings if you click through to the Wikipedia links, of course.)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:47135</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/47135.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=47135"/>
    <title>It’s easier to post videos than to think of stuff to write</title>
    <published>2008-02-29T02:24:03Z</published>
    <updated>2008-02-29T02:24:03Z</updated>
    <content type="html">&lt;a href="http://www.youtube.com/watch?v=FkKKmqGniJ4"&gt;Taking down a cabbage with a tennis ball cannon&lt;/a&gt;:&lt;br /&gt;&lt;lj-embed id="13" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=QC8jnSaCqxY"&gt;Taking down a tree with a gatling gun&lt;/a&gt;:&lt;br /&gt;&lt;lj-embed id="14" /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:47001</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/47001.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=47001"/>
    <title>ephemient @ 2008-02-22T20:43:00</title>
    <published>2008-02-23T01:44:24Z</published>
    <updated>2008-02-23T01:44:24Z</updated>
    <content type="html">Oops, missed my self-inflicted &amp;ldquo;post at least once a week&amp;rdquo; schedule.&lt;br /&gt;&lt;br /&gt;To make up for it, here is a &lt;a href="http://www.youtube.com/watch?v=6sIB2kL-BWc"&gt;video&lt;/a&gt;:&lt;br /&gt;&lt;lj-embed id="12" /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:46674</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/46674.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=46674"/>
    <title>ephemient @ 2008-02-14T15:36:00</title>
    <published>2008-02-14T20:37:11Z</published>
    <updated>2008-02-14T20:37:11Z</updated>
    <content type="html">&lt;img src="http://img.photobucket.com/albums/v120/dtlin/cute/tachi-valentines.jpg" width="779" height="900"&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:46448</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/46448.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=46448"/>
    <title>Living in a material world</title>
    <published>2008-02-14T03:17:09Z</published>
    <updated>2008-02-14T03:17:09Z</updated>
    <content type="html">Being a full-time employee is weird.&amp;nbsp; I get semi-weekly paychecks, health insurance, retirement funds, and daily snail-mail offers for pre-approved credit cards.&lt;br /&gt;&lt;br /&gt;20% of my income goes to taxes.&lt;br /&gt;25% of my income goes to savings.&lt;br /&gt;A small portion goes towards student loans.&amp;nbsp; This proportion will rise as the grace periods on various loans expire.&lt;br /&gt;A majority of the remainder goes to household expenses.&lt;br /&gt;&lt;br /&gt;I have a new &lt;a href="http://www.nokiausa.com/n810"&gt;Nokia n810&lt;/a&gt;.&amp;nbsp; I&amp;rsquo;m not sure how much Verizon is charging me for GPRS usage, but most of the time I use WiFi.&amp;nbsp; Works awesomely well.&lt;br /&gt;&lt;br /&gt;As it is no longer practical for Dad and I to carpool to work, I need to procure some means of personal transportation.&amp;nbsp; Sadly, nobody makes good, cute cars anymore.&amp;nbsp; The VW Bug is too unreliable, the Cooper is too expensive, the Miata is too small.&amp;nbsp; The RAV4 was cute for one generation, but then they steroid-ized it.&amp;nbsp; I am strongly considering the Civic, though I&amp;rsquo;m disappointed by how it got fatter in 2001 and restyled in 2006.&lt;br /&gt;&lt;br /&gt;Relatedly, planned tasks for the house are a garage expansion, driveway repavement, media center, repainting, re-roofing, &amp;hellip;&lt;br /&gt;&lt;br /&gt;And I want to upgrade my desktop, since I bought UT3 but am unable to play due to system specs.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:46326</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/46326.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=46326"/>
    <title>Infrequently Asked Questions</title>
    <published>2008-02-14T02:34:31Z</published>
    <updated>2008-02-14T02:34:31Z</updated>
    <content type="html">There are many &lt;abbr title="frequently asked questions"&gt;FAQ&lt;/abbr&gt;s but not many &lt;abbr title="infrequently asked questions"&gt;IAQ&lt;/abbr&gt;s.&lt;br /&gt;&lt;br /&gt;Sometimes they are &lt;a href="http://norvig.com/python-iaq.html"&gt;sincerely helpful&lt;/a&gt;.&amp;nbsp; Actually, this is a list of &amp;rdquo;infrequently answered questions&amp;rdquo;, not &amp;ldquo;infrequently asked questions&amp;rdquo;.&lt;br /&gt;Sometimes they are &lt;a href="http://perl.plover.com/IAQ/IAQlist.html"&gt;playful misdirections&lt;/a&gt;.&amp;nbsp; Regardless of experience, anybody can tell at a glance not to trust its advice at face value.&lt;br /&gt;And sometimes they are &lt;a href="http://www.seebs.net/faqs/c-iaq.html"&gt;genuinely deleterious&lt;/a&gt;.&amp;nbsp; Those who know better will laugh their heads off, and those who don&amp;rsquo;t, will be completely confused.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ephemient:45942</id>
    <link rel="alternate" type="text/html" href="http://ephemient.livejournal.com/45942.html"/>
    <link rel="self" type="text/xml" href="http://ephemient.livejournal.com/data/atom/?itemid=45942"/>
    <title>Happy New Year!</title>
    <published>2008-02-07T03:33:25Z</published>
    <updated>2008-02-07T03:33:25Z</updated>
    <content type="html">Oh, my poor neglected blog.&lt;br /&gt;&lt;br /&gt;[Chinese] New Year resolutions aren&amp;rsquo;t part of tradition, are they?&amp;nbsp; Ah well.&lt;br /&gt;&lt;br /&gt;I resolve to post something interesting (to me, anyhow) at least once a week.&amp;nbsp; This week&amp;rsquo;s:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://img.photobucket.com/albums/v120/dtlin/anim/laffuer-curve.png" alt="Laffer Curve" /&gt;&lt;br /&gt;&lt;i&gt;&lt;a href="http://en.wikipedia.org/wiki/Martin_Gardner"&gt;Martin Gardner's&lt;/a&gt; Rendition of the Laffer Curve, licensed &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;cc-by&lt;/a&gt;&lt;/i&gt;</content>
  </entry>
</feed>
