<?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/  -->
<rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/' xmlns:media='http://search.yahoo.com/mrss/' xmlns:atom10='http://www.w3.org/2005/Atom'>
<channel>
  <title>Elbeno</title>
  <link>http://elbeno.livejournal.com/</link>
  <description>Elbeno - LiveJournal.com</description>
  <lastBuildDate>Sun, 29 Jul 2007 04:19:31 GMT</lastBuildDate>
  <generator>LiveJournal / LiveJournal.com</generator>
  <lj:journal>elbeno</lj:journal>
  <lj:journalid>773804</lj:journalid>
  <lj:journaltype>personal</lj:journaltype>
  <atom10:link rel='hub' href='http://pubsubhubbub.appspot.com/' />
  <image>
    <url>http://l-userpic.livejournal.com/25729367/773804</url>
    <title>Elbeno</title>
    <link>http://elbeno.livejournal.com/</link>
    <width>90</width>
    <height>90</height>
  </image>

<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/88761.html</guid>
  <pubDate>Sun, 29 Jul 2007 04:19:31 GMT</pubDate>
  <title>I&apos;m syndicated</title>
  <link>http://elbeno.livejournal.com/88761.html</link>
  <description>&lt;a href=&quot;http://www.livejournal.com/friends/add.bml?user=elbenoblog&quot;&gt;Add elbenoblog&lt;/a&gt; to your friends list to get my distal wibblings in your friends page. Thanks to &lt;span class=&apos;ljuser ljuser-name_greatbiggary&apos; lj:user=&apos;greatbiggary&apos; style=&apos;white-space: nowrap;&apos;&gt;&lt;a href=&apos;http://greatbiggary.livejournal.com/profile&apos;&gt;&lt;img src=&apos;http://l-stat.livejournal.com/img/userinfo.gif&apos; alt=&apos;[info]&apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;http://greatbiggary.livejournal.com/&apos;&gt;&lt;b&gt;greatbiggary&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;.</description>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/88415.html</guid>
  <pubDate>Sat, 28 Jul 2007 07:20:19 GMT</pubDate>
  <title>Bye LJ</title>
  <link>http://elbeno.livejournal.com/88415.html</link>
  <description>&lt;a href=&quot;http://www.elbeno.com/blog/&quot;&gt;Hello Wordpress&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This journal has moved. I&apos;ve had enough of LJ - increasingly it&apos;s looking like last century&apos;s tech in terms of what I need. I&apos;ll keep the free account just to aggregate my friends pages. So I&apos;ll still be commenting on your LJs!&lt;br /&gt;&lt;br /&gt;From now on, you can find me at www.elbeno.com/blog. I&apos;m sure Wordpress will have its foibles, but at least I&apos;ll be able to do something about them. I won&apos;t be on your LJ friends pages any more. You can figure your own solution to reading/aggregating my blog, if you still want to.</description>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/88086.html</guid>
  <pubDate>Fri, 27 Jul 2007 18:10:07 GMT</pubDate>
  <title>Sgt Pepper Mashup</title>
  <link>http://elbeno.livejournal.com/88086.html</link>
  <description>&lt;a href=&quot;http://www.cracked-pepper.blogspot.com/&quot;&gt;This&lt;/a&gt; is great. &quot;Lucy at the River&quot; is particularly inspired, I thought (also &lt;a href=&quot;http://memethief.com/2007/07/26/mashup-cracked-pepper/&quot;&gt;mirrored&lt;/a&gt;).</description>
  <comments>http://elbeno.livejournal.com/88086.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/87856.html</guid>
  <pubDate>Thu, 26 Jul 2007 06:33:51 GMT</pubDate>
  <title>Thinking about ditching LJ</title>
  <link>http://elbeno.livejournal.com/87856.html</link>
  <description>And moving to Wordpress. I already have hosting. LJ isn&apos;t too reliable, actually, and it&apos;s not nearly as flexible as Wordpress would be. So... if I switch, I could still access friends pages here, but LJ denizens wouldn&apos;t get me in their auto-aggregated friends pages.</description>
  <comments>http://elbeno.livejournal.com/87856.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/87667.html</guid>
  <pubDate>Sun, 22 Jul 2007 06:56:39 GMT</pubDate>
  <title>Harry Potter and the Deathly Hallows</title>
  <link>http://elbeno.livejournal.com/87667.html</link>
  <description>I&apos;ve just finished it, so I can now return to the Internet. Sorry for the delay - I&apos;m in a late timezone to start with, and had to look after mini-Elbeno this morning.</description>
  <comments>http://elbeno.livejournal.com/87667.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/87320.html</guid>
  <pubDate>Wed, 18 Jul 2007 00:38:30 GMT</pubDate>
  <title>Bye Bye Internet</title>
  <link>http://elbeno.livejournal.com/87320.html</link>
  <description>Apparently scans of Harry Potter and the Deathly Hallows have been leaked to Bittorrent. So I&apos;m boycotting the Internet until I&apos;ve read it.</description>
  <comments>http://elbeno.livejournal.com/87320.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/87169.html</guid>
  <pubDate>Tue, 17 Jul 2007 03:36:24 GMT</pubDate>
  <title>More on Tree Folds</title>
  <link>http://elbeno.livejournal.com/87169.html</link>
  <description>After some thought, I think I have the definitions for left and right fold on a tree:&lt;br /&gt;&lt;pre&gt;foldrTree :: (a -&amp;gt; b -&amp;gt; b) -&amp;gt; b -&amp;gt; InternalTree a -&amp;gt; b
foldrTree f z ILeaf = z
foldrTree f z (IBranch a x y) = foldrTree f (f a (foldrTree f z y)) x

foldlTree :: (a -&amp;gt; b -&amp;gt; a) -&amp;gt; a -&amp;gt; InternalTree b -&amp;gt; a
foldlTree f z ILeaf = z
foldlTree f z (IBranch a x y) = foldlTree f (f (foldlTree f z x) a) y&lt;/pre&gt;&lt;br /&gt;Of course, these folds are simplified: they don&apos;t have a separate function for dealing with leaves and branches. This leads to things like &lt;tt&gt;flatten&lt;/tt&gt; only working one way, i.e.&lt;br /&gt;&lt;tt&gt;foldrTree (:) [] t&lt;/tt&gt;&lt;br /&gt;works because &lt;tt&gt;(:)&lt;/tt&gt; will accumulate values onto a list properly from the right, but&lt;br /&gt;&lt;tt&gt;foldlTree (:) [] t&lt;/tt&gt;&lt;br /&gt;gives a type error (because &lt;tt&gt;(:)&lt;/tt&gt; cannot append a value onto a list working from the left).</description>
  <comments>http://elbeno.livejournal.com/87169.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/86926.html</guid>
  <pubDate>Mon, 16 Jul 2007 03:10:15 GMT</pubDate>
  <title>Arboreal Haskell</title>
  <link>http://elbeno.livejournal.com/86926.html</link>
  <description>(Chapter 7 of &lt;i&gt;The Haskell School of Expression&lt;/i&gt; is about trees.)&lt;br /&gt;&lt;br /&gt;The first definition is of a tree with values stored only at the leaves, i.e.&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;data Tree a = Leaf a | Branch (Tree a) (Tree a)&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;It then gives a &lt;tt&gt;mapTree&lt;/tt&gt; function (equivalent to &lt;tt&gt;map&lt;/tt&gt; on a list), which is trivial, and functions &lt;tt&gt;fringe&lt;/tt&gt;, &lt;tt&gt;treeSize&lt;/tt&gt; and &lt;tt&gt;treeHeight&lt;/tt&gt;, which return respectively the list of the leaf values, the number of leaves, and the max depth. In the text, these are defined in the usual recursive way. An exercise is to write a &lt;tt&gt;Tree&lt;/tt&gt; equivalent of the &lt;tt&gt;fold&lt;/tt&gt; function for lists. Which I think I managed:&lt;br /&gt;&lt;pre&gt;foldTree :: (a -&amp;gt; b -&amp;gt; b) -&amp;gt; (b -&amp;gt; b -&amp;gt; b) -&amp;gt; b -&amp;gt; Tree a -&amp;gt; b
foldTree fLeaf _ init (Leaf x) = fLeaf x init
foldTree fLeaf fBranch init (Branch x y) = fBranch x&apos; y&apos;
    where x&apos; = foldTree fLeaf fBranch init x
          y&apos; = foldTree fLeaf fBranch init y&lt;/pre&gt;&lt;br /&gt;The trick was in recognising that I needed two functions, one for dealing with leaves and the other for dealing with branches (because &lt;tt&gt;(:)&lt;/tt&gt; is a different type from &lt;tt&gt;(++)&lt;/tt&gt; and both are used in &lt;tt&gt;fringe&lt;/tt&gt;). Of course, the performance implication of all those list appends makes me think that in the real world, I&apos;d write &lt;tt&gt;fringe&lt;/tt&gt; using only &lt;tt&gt;(:)&lt;/tt&gt;:&lt;br /&gt;&lt;pre&gt;fastFringe :: Tree a -&amp;gt; [a]
fastFringe t = acc t []
    where acc (Leaf x) l = x : l
          acc (Branch x y) l = acc x (acc y l)&lt;/pre&gt;&lt;br /&gt;(It also occurs to me that &lt;tt&gt;fringe&lt;/tt&gt; is more usually called &lt;tt&gt;flatten&lt;/tt&gt; IME). The next exercises involved trees with internal values (not at the leaves), i.e.&lt;br /&gt;&lt;pre&gt;data InternalTree a = ILeaf
                    | IBranch a (InternalTree a) (InternalTree a)&lt;/pre&gt;&lt;br /&gt;This is a bit more like way I&apos;m used to trees working, and the exercises were easier. &lt;tt&gt;InternalTree&lt;/tt&gt; versions of &lt;tt&gt;zipWith&lt;/tt&gt; and &lt;tt&gt;zip&lt;/tt&gt; (defined in terms of &lt;tt&gt;zipWith&lt;/tt&gt; of course) were easy, as were versions of &lt;tt&gt;take&lt;/tt&gt; and &lt;tt&gt;takeWhile&lt;/tt&gt;. I was impressed with the &quot;magic&quot; of the &lt;tt&gt;InternalTree&lt;/tt&gt; version of &lt;tt&gt;repeat&lt;/tt&gt;:&lt;br /&gt;&lt;pre&gt;repeatInternalTree :: a -&amp;gt; InternalTree a
repeatInternalTree a = t
    where t = (IBranch a (t) (t))&lt;/pre&gt;&lt;br /&gt;There are two bits of magic here. First, this is an infinitely recursive definition. Haskell uses lazy evaluation, so this is designed to be used with &lt;tt&gt;takeTree&lt;/tt&gt; or &lt;tt&gt;takeTreeWhile&lt;/tt&gt;. The second piece of magic: where is the base case constructor (&lt;tt&gt;ILeaf&lt;/tt&gt;) specified? It isn&apos;t! Yet&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;takeTree 2 (repeatInternalTree 5)&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;returns&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;IBranch 5 (IBranch 5 ILeaf ILeaf) (IBranch 5 ILeaf ILeaf)&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;as hoped for, if not quite expected. The only thing I&apos;m not really grokking right now are the &lt;tt&gt;InternalTree&lt;/tt&gt; versions of &lt;tt&gt;foldr&lt;/tt&gt; and possibly &lt;tt&gt;foldl&lt;/tt&gt; (and possibly a third type of fold). I&apos;ve got a feeling there is some higher-order function extractable that controls pre-, post-, or in-order node traversal on &lt;tt&gt;InternalTree&lt;/tt&gt;, but I&apos;m unsure of the structural differences of &lt;tt&gt;foldl&lt;/tt&gt; and &lt;tt&gt;foldr&lt;/tt&gt; when applied to trees. I am also puzzling a bit over the semantics of &lt;tt&gt;zipWith&lt;/tt&gt; and &lt;tt&gt;zip&lt;/tt&gt; when applied to trees with only leaf-node values.&lt;br /&gt;&lt;br /&gt;PS. Gleep = glorp.</description>
  <comments>http://elbeno.livejournal.com/86926.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/86726.html</guid>
  <pubDate>Sat, 14 Jul 2007 20:51:28 GMT</pubDate>
  <title>Book Sale Haul</title>
  <link>http://elbeno.livejournal.com/86726.html</link>
  <description>Today was the quarterly book sale at the Culver City library. The haul:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;16 Hardy Boys books&lt;br /&gt;&lt;li&gt;&lt;i&gt;The Past Through Tomorrow&lt;/i&gt; - Robert A Heinlein&lt;br /&gt;&lt;li&gt;&lt;i&gt;River Out of Eden&lt;/i&gt; - Richard Dawkins&lt;br /&gt;&lt;li&gt;&lt;i&gt;Operating Systems Design and Implementation&lt;/i&gt; - Andrew Tanenbaum&lt;br /&gt;&lt;li&gt;&lt;i&gt;The Design of the Unix Operating System&lt;/i&gt; - Maurice Bach&lt;br /&gt;&lt;li&gt;&lt;i&gt;Introduction to Automata Theory, Languages and Computation&lt;/i&gt; - Hopcroft &amp; Ullman&lt;br /&gt;&lt;li&gt;&lt;i&gt;Mathematics for Dynamic Modeling&lt;/i&gt; - Edward Beltrami&lt;br /&gt;&lt;li&gt;&lt;i&gt;Introduction to Parallel Computing: Design and Analysis of Algorithms&lt;/i&gt; - Kumar, Grama, Gupta &amp; Karypis&lt;/ul&gt;</description>
  <comments>http://elbeno.livejournal.com/86726.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/86286.html</guid>
  <pubDate>Wed, 11 Jul 2007 16:32:15 GMT</pubDate>
  <title>Harry Potter and the Order of the Phoenix</title>
  <link>http://elbeno.livejournal.com/86286.html</link>
  <description>Probably the best of the lot so far, even though it did cut a lot from the book. Mind you, the book had a lot of cuttable stuff, so that&apos;s not a bad thing. The film stuck to the plot well. A criticism perhaps is that the adult characters weren&apos;t really explored much, and perhaps it suffered from there being a bit too much that had to be cut out. Daniel, Rupert and Emma have really matured as actors. Other notable turns, I thought, were Evanna Lynch as Luna Lovegood and Helena Bonham Carter as Bellatrix Lestrange.&lt;br /&gt;&lt;br /&gt;Also, The Golden Compass (Philip Pullman tie-in due out around Xmas) looks like one to watch out for.</description>
  <comments>http://elbeno.livejournal.com/86286.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/86236.html</guid>
  <pubDate>Tue, 10 Jul 2007 05:28:39 GMT</pubDate>
  <title>Another Haskell question</title>
  <link>http://elbeno.livejournal.com/86236.html</link>
  <description>Which pattern is more efficient?&lt;br /&gt;&lt;br /&gt;Pattern a:&lt;br /&gt;&lt;pre&gt;circleSumA :: [Int] -&amp;gt; Int
circleSumA (i1 : is) = aux i1 is
    where aux i [] = i + i1
          aux i is = i + aux (head is) (tail is)&lt;/pre&gt;&lt;br /&gt;Pattern b:&lt;br /&gt;&lt;pre&gt;circleSumB :: [Int] -&amp;gt; Int
circleSumB is = sum (is ++ [head is])&lt;/pre&gt;&lt;br /&gt;Is the Haskell compiler/interpreter able to make pattern b as efficient as pattern a? What about in the more general case where the operation is operating on more than 2 list elements? e.g. Folding a dot product over a list of points (obviously taking three points at a time to compute the dot product of the two vectors formed). In this case, Pattern b would have to perform 2 list appends (&lt;tt&gt;is ++ [head is] ++ [head (tail is)]&lt;/tt&gt;). Would these get optimised?</description>
  <comments>http://elbeno.livejournal.com/86236.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>4</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/85901.html</guid>
  <pubDate>Tue, 10 Jul 2007 05:00:10 GMT</pubDate>
  <title>Haskell problem followup</title>
  <link>http://elbeno.livejournal.com/85901.html</link>
  <description>Having read a bit of the next chapter and discovered the &lt;tt&gt;zipWith&lt;/tt&gt; function, I now have a higher-order non-recursive solution to the &lt;tt&gt;makeChange&lt;/tt&gt; problem, &lt;i&gt;viz.&lt;/i&gt;&lt;br /&gt;&lt;pre&gt;makeChange1 :: Int -&amp;gt; [Int] -&amp;gt; [Int]
makeChange1 amt vs = zipWith div modvs vs
    where modvs = scanl mod amt vs&lt;/pre&gt;</description>
  <comments>http://elbeno.livejournal.com/85901.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/85622.html</guid>
  <pubDate>Sun, 08 Jul 2007 05:55:18 GMT</pubDate>
  <title>Haskell problem</title>
  <link>http://elbeno.livejournal.com/85622.html</link>
  <description>Define a function &lt;tt&gt;makeChange&lt;/tt&gt; that, given a nonnegative integer amount and a list of coin denominations, returns a list of the number of coins of each denomination required to make up the amount. For example:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;makeChange 99 [5,1] =&amp;gt; [19,4]&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;i.e. 19 nickels and 4 pennies equals 99 cents. To make life easier, you may assume that the list of denominations is in descending order, and that the penny is always included.&lt;br /&gt;&lt;br /&gt;I have the following, which works:&lt;br /&gt;&lt;pre&gt;makeChange :: Int -&amp;gt; [Int] -&amp;gt; [Int]
makeChange _ [] = []
makeChange amt (v:vs) = n : (makeChange newamt vs)
    where n = amt `div` v
          newamt = amt - n * v&lt;/pre&gt;&lt;br /&gt;However, the problem is at the end of a chapter about using higher order functions like &lt;tt&gt;map&lt;/tt&gt;, &lt;tt&gt;foldl&lt;/tt&gt;, &lt;tt&gt;foldr&lt;/tt&gt;, &lt;tt&gt;zip&lt;/tt&gt;, etc. I have a feeling there&apos;s a way to do this problem that way too. But it&apos;s late and Mrs Elbeno is calling me to bed. AOAP.</description>
  <comments>http://elbeno.livejournal.com/85622.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>7</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/85308.html</guid>
  <pubDate>Sat, 07 Jul 2007 23:03:38 GMT</pubDate>
  <title>building a mame cabinet 7</title>
  <link>http://elbeno.livejournal.com/85308.html</link>
  <description>Just come back from a trip to Home Depot. I used the truck hire, which was easy. Now I also have 3 sheets of 4&apos;x8&apos; 3/4&quot; oak ply in my basement, and I picked up a few 2&quot;x3&quot;x8&apos; studs too for cutting supports.</description>
  <comments>http://elbeno.livejournal.com/85308.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/85247.html</guid>
  <pubDate>Sat, 07 Jul 2007 19:44:49 GMT</pubDate>
  <title>More wikihowery</title>
  <link>http://elbeno.livejournal.com/85247.html</link>
  <description>Especially for &lt;span class=&apos;ljuser ljuser-name_greatbiggary&apos; lj:user=&apos;greatbiggary&apos; style=&apos;white-space: nowrap;&apos;&gt;&lt;a href=&apos;http://greatbiggary.livejournal.com/profile&apos;&gt;&lt;img src=&apos;http://l-stat.livejournal.com/img/userinfo.gif&apos; alt=&apos;[info]&apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;http://greatbiggary.livejournal.com/&apos;&gt;&lt;b&gt;greatbiggary&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;. &lt;a href=&quot;http://www.wikihow.com/Find-Headers-and-Libraries-for-C/C%2B%2B-Programs-Using-Pkg-Config&quot;&gt;How to Find Headers and Libraries for C/C++ Pograms Using pkg-config&lt;/a&gt;.</description>
  <comments>http://elbeno.livejournal.com/85247.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/84856.html</guid>
  <pubDate>Mon, 02 Jul 2007 19:56:56 GMT</pubDate>
  <title>I made a wikihow entry</title>
  <link>http://elbeno.livejournal.com/84856.html</link>
  <description>&lt;a href=&quot;http://www.wikihow.com/Play-Tiddlywinks&quot;&gt;How to Play Tiddlywinks&lt;/a&gt;.</description>
  <comments>http://elbeno.livejournal.com/84856.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/84564.html</guid>
  <pubDate>Sun, 01 Jul 2007 05:03:42 GMT</pubDate>
  <title>building a mame cabinet 6</title>
  <link>http://elbeno.livejournal.com/84564.html</link>
  <description>Today I was given some dedicated time by Mrs Elbeno to start the project. It being 2pm on a Saturday, I didn&apos;t fancy my chances at getting a Home Depot truck hire (my local HD has 2 trucks and it&apos;s first come, first served). Anyway, I headed down there and picked up:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;2x 8&apos; 2x4s&lt;br /&gt;&lt;li&gt;2&apos;x4&apos; 3/4&quot; MDF panel&lt;br /&gt;&lt;li&gt;2 3&apos; lengths of 3/4&quot; pipe (for clamps)&lt;br /&gt;&lt;li&gt;2 sawhorses&lt;br /&gt;&lt;li&gt;A t-square&lt;br /&gt;&lt;li&gt;A respirator (apparently MDF is hazardous to one&apos;s health if inhaled)&lt;/ul&gt;&lt;br /&gt;Having loaded up the car, I headed home to make a start. I decided to make a &lt;a href=&quot;http://members.aol.com/woodmiser1/sawbd.htm&quot;&gt;sawboard&lt;/a&gt; as a mini-project which would be useful to familiarise myself with the power tools.&lt;br /&gt;The inevitable &lt;a href=&quot;http://www.flickr.com/photos/88319047@N00/sets/72157600579076190/&quot;&gt;flickr set&lt;/a&gt; has started.</description>
  <comments>http://elbeno.livejournal.com/84564.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/84232.html</guid>
  <pubDate>Fri, 29 Jun 2007 17:12:16 GMT</pubDate>
  <title>building a mame cabinet 5</title>
  <link>http://elbeno.livejournal.com/84232.html</link>
  <description>Another stop at Home Depot this morning.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;DeWalt &lt;a href=&quot;http://www.amazon.com/DEWALT-DW2535-3-Piece-Countersink-Set/dp/B0000BYE0F/ref=pd_bbs_sr_1/102-9290240-0313717?ie=UTF8&amp;amp;s=hi&amp;amp;qid=1183136869&amp;amp;sr=8-1&quot;&gt;countersink bits&lt;/a&gt;&lt;br /&gt;&lt;li&gt;Mallet (for knocking in the t-molding)&lt;br /&gt;&lt;li&gt;Gloves&lt;br /&gt;&lt;li&gt;Masking tape (for anti-splinter on the top side of ply cuts, and for painting)&lt;br /&gt;&lt;li&gt;4 x 2-1/2&quot; hinges (two for the top, two for the front)&lt;ul&gt;&lt;br /&gt;I&apos;m now at the point where I can pick up some wood and sawhorses this weekend and get started.&lt;/ul&gt;&lt;/ul&gt;</description>
  <comments>http://elbeno.livejournal.com/84232.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/84013.html</guid>
  <pubDate>Wed, 27 Jun 2007 16:24:03 GMT</pubDate>
  <title>building a mame cabinet 4</title>
  <link>http://elbeno.livejournal.com/84013.html</link>
  <description>I ordered the &lt;a href=&quot;http://www.emdkay.net/marquees_mame.html&quot;&gt;Retro Mame Marquee&lt;/a&gt; (third one down). With the Lexan sandwich. Since the Home Depot Lexan is 3/32&quot; rather than 1/8&quot;, I decided I can&apos;t use it. I need to make the control panel from 1/8&quot; Lexan and 5/8&quot; MDF/Ply, so that the 3/4&quot; t-molding will fit properly.&lt;br /&gt;&lt;br /&gt;So what I&apos;m going to do is get going with building the rest of it, and order the Lexan for the control panel from somewhere like &lt;a href=&quot;http://www.professionalplastics.com/cgi-bin/pp.pl?pgm=co_disp&amp;amp;func=displ&amp;amp;prrfnbr=85461&amp;amp;strfnbr=3&amp;amp;prname=Polycarbonate-GP-Sheet---Glazing-Grade&quot;&gt;Professional Plastics&lt;/a&gt; when I have the CP size finalised. I&apos;ll need to make sure I put the wood the right way up since the t-molding slot won&apos;t be symmetric, and my plan is to clamp the polycarbonate and wood together and drill them as a sandwich to ensure alignment.</description>
  <comments>http://elbeno.livejournal.com/84013.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/83855.html</guid>
  <pubDate>Tue, 26 Jun 2007 17:51:14 GMT</pubDate>
  <title>building a mame cabinet 3</title>
  <link>http://elbeno.livejournal.com/83855.html</link>
  <description>I&apos;ve been stopping off at Home Depot on my way to work and slowly getting together more parts. I now have:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Jigsaw and router bit set (borrowed from a colleague)&lt;br /&gt;&lt;li&gt;4 x 2&quot; industrial casters&lt;br /&gt;&lt;li&gt;1/2&quot; wood chisel&lt;br /&gt;&lt;li&gt;18&quot; drawer runner set&lt;br /&gt;&lt;li&gt;Coin door! (&lt;i&gt;free&lt;/i&gt; from a colleague)&lt;br /&gt;&lt;li&gt;140-tooth 7-1/4&quot; ply/laminate saw blade&lt;br /&gt;&lt;li&gt;1lb 1&quot; coarse thread drywall screws&lt;/ul&gt;&lt;br /&gt;I have also discovered that Home Depot stocks Lexan, which will save me having to order online and pay shipping etc. Unfortunately my spacious control panel design means that 18&quot;x24&quot; is a bit small one way. I have to bump to the next size, i.e. 48&quot;x24&quot;. More expensive, but I can probably get a marquee sandwich out of that size as well as a CP cover.&lt;br /&gt;&lt;br /&gt;I also have a &lt;a href=&quot;http://routerbitworld.com/Freud_63_100_1_16_Height_Slot_Cutting_Set_with_1_p/freud%2063-100.htm&quot;&gt;1/16&quot; slot cutting bit&lt;/a&gt; on the way. The router bit set does not include one; however, it does include a flush cutter.</description>
  <comments>http://elbeno.livejournal.com/83855.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/83682.html</guid>
  <pubDate>Thu, 21 Jun 2007 16:19:10 GMT</pubDate>
  <title>Happy Solstice</title>
  <link>http://elbeno.livejournal.com/83682.html</link>
  <description>Enjoy the longest (or shortest, depending on your hemisphere) day.</description>
  <comments>http://elbeno.livejournal.com/83682.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/83323.html</guid>
  <pubDate>Wed, 20 Jun 2007 05:17:35 GMT</pubDate>
  <title>building a mame cabinet 2</title>
  <link>http://elbeno.livejournal.com/83323.html</link>
  <description>The project progresses. I&apos;m working from &lt;a href=&quot;http://www.arcadecab.com/CabinetPlans2/CabinetPlans2_Background.html&quot;&gt;arcadecab.com&lt;/a&gt; as my main source for information.&lt;br /&gt;&lt;br /&gt;So far I have amassed the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.amazon.com/gp/product/B000IEFIBY/103-7750823-2851039&quot;&gt;Circular saw&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://www.amazon.com/gp/product/B000IEFIBO/103-7750823-2851039&quot;&gt;Router&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://www.amazon.com/gp/product/B000B8JV88/103-7750823-2851039&quot;&gt;Sander&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://www.amazon.com/gp/product/B0009RLLY8/103-7750823-2851039&quot;&gt;Clamps&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://www.homedepot.com/webapp/wcs/stores/servlet/ProductDisplay?storeId=10051&amp;amp;langId=-1&amp;amp;catalogId=10053&amp;amp;productId=100152392&amp;amp;N=10000003+90048&amp;amp;marketID=48&amp;amp;locStoreNum=6611&quot;&gt;1lb 1-1/4&quot; coarse drywall screws&lt;/a&gt;&lt;br /&gt;&lt;li&gt;25&apos; extension cable&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://www.homedepot.com/webapp/wcs/stores/servlet/ProductDisplay?storeId=10051&amp;amp;langId=-1&amp;amp;catalogId=10053&amp;amp;productId=100352499&amp;amp;N=10000003+90048+997&amp;amp;marketID=48&amp;amp;locStoreNum=6611&quot;&gt;1-1/8&quot; spade bit&lt;/a&gt;&lt;br /&gt;&lt;li&gt;2 x &lt;a href=&quot;http://www.happ.com/joysticks/50608300.htm&quot;&gt;Perfect 360 joysticks&lt;/a&gt;&lt;br /&gt;&lt;li&gt;1P and 2P &lt;a href=&quot;http://www.happ.com/pushbuttons/589111l1ply.htm&quot;&gt;start buttons&lt;/a&gt;&lt;br /&gt;&lt;li&gt;20 &lt;a href=&quot;http://www.happ.com/pushbuttons/5891xxl.htm&quot;&gt;horizontal microswitch pushbuttons&lt;/a&gt; (5 black, 13 red, 2 white)&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://www.ultimarc.com/ipac1.html&quot;&gt;I-PAC&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt; USB interface&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://www.ultimarc.com/optipac1.html&quot;&gt;Opti-PAC&lt;/a&gt; USB interface&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://www.happ.com/trackballs/560100xx.htm&quot;&gt;3&quot; trackball (red)&lt;/a&gt; and &lt;a href=&quot;http://www.happ.com/trackballs/55110100.htm&quot;&gt;mounting kit&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://www.smarthomeusa.com/ShopByManufacturer/Bits-Ltd./Item/SCG3/&quot;&gt;Smart power strip&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://www.neoseeker.com/Hardware/Products/MicroMedia/&quot;&gt;2.1 speaker set&lt;/a&gt;&lt;/ul&gt;</description>
  <comments>http://elbeno.livejournal.com/83323.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/83154.html</guid>
  <pubDate>Mon, 18 Jun 2007 05:18:04 GMT</pubDate>
  <title>building a mame cabinet</title>
  <link>http://elbeno.livejournal.com/83154.html</link>
  <description>I&apos;ve been wanting to build one for years and now I am starting the project. So I have been reading all about it online, of course, and now I have a shopping list of parts and an idea of how to proceed. An hour or so&apos;s fiddling produced this plan:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/elbeno/563058780/&quot; title=&quot;Photo Sharing&quot;&gt;&lt;img src=&quot;http://farm2.static.flickr.com/1180/563058780_c63812d5d8.jpg&quot; width=&quot;313&quot; height=&quot;500&quot; alt=&quot;cabinet_plans&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;...which I think is reasonable. (Dimensions of the angled sections are rounded up to the nearest inch). This will give me a cabinet that is 3 feet deep at its deepest point, 6 feet tall, and I&apos;m thinking 28&quot; for the width - which would give it a square base. The control panel has a slight rake, and is 39&quot; off the floor, which puts it comfortably at about my belt height.&lt;br /&gt;&lt;br /&gt;This plan also reveals that I&apos;ll need at least 32&apos; of t-molding (to fit along all top and front edges of both sides, and also on the front of the control panel, the top and speaker panels, and the top of the display base). I plan to install a hinge at the joint of the 25&quot; and 13&quot; sections to allow the angled section to fold down and reveal the keyboard/mouse tray.</description>
  <comments>http://elbeno.livejournal.com/83154.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/82895.html</guid>
  <pubDate>Thu, 14 Jun 2007 03:48:43 GMT</pubDate>
  <title>the scanner works</title>
  <link>http://elbeno.livejournal.com/82895.html</link>
  <description>Score one for Ubuntu. Plug in scanner, fire up xsane, everything&apos;s happy.</description>
  <comments>http://elbeno.livejournal.com/82895.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://elbeno.livejournal.com/82449.html</guid>
  <pubDate>Wed, 13 Jun 2007 04:33:47 GMT</pubDate>
  <title>score!</title>
  <link>http://elbeno.livejournal.com/82449.html</link>
  <description>Recently I joined a mailgroup at work called &quot;Stuff&quot; designed for off-topic dicussions and want-ads. Today I got a couple of great deals.&lt;br /&gt;&lt;br /&gt;First, &lt;a href=&quot;http://www.neoseeker.com/Hardware/Products/MicroMedia/&quot;&gt;a 2.1 speaker set&lt;/a&gt; for $10. The seller said they didn&apos;t work the last time he tried them. They didn&apos;t work for me at first. So I checked them independently and found the tweeters worked. So that was something. But the subwoofer didn&apos;t. I unscrewed it and poked around. Nothing really to see - the speaker itself seemed fine, while the input/amp section was sealed. Then I noticed that the input said &quot;12V&quot; and the power supply said &quot;Output: 30V&quot;. So when I got home, I dug around in the basement and found a 12V supply with a plug that fitted. Everything worked just fine. Result!&lt;br /&gt;&lt;br /&gt;Second, the same person was selling a &lt;a href=&quot;http://h10025.www1.hp.com/ewfrf/wc/product?lc=en&amp;amp;cc=us&amp;amp;dlc=da&amp;amp;product=60120&amp;amp;&quot;&gt;HP Scanjet 6200C&lt;/a&gt;, sans drivers and leads. After &lt;a href=&quot;http://www.sane-project.org/sane-mfgs.html&quot;&gt;a quick check&lt;/a&gt;, I said I&apos;d have it for $10. The scanner part of my printerily-challenged all-in-one technically still works, but is too bulky to keep on my desk, so the 6200C will make a good replacement scanner for general use.</description>
  <comments>http://elbeno.livejournal.com/82449.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
</channel>
</rss>
