<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3867112722793440446</id><updated>2011-07-30T12:19:35.906-07:00</updated><category term='monospace'/><category term='fonts'/><category term='rails named scopes chained'/><category term='comparison'/><category term='esoterica f#'/><title type='text'>Jes' Codex</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jessewolfe.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jessewolfe.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>jes5199</name><uri>http://www.blogger.com/profile/15375970038462787104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>18</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3867112722793440446.post-105381784832572908</id><published>2010-01-09T17:28:00.000-08:00</published><updated>2010-01-09T17:56:53.403-08:00</updated><title type='text'>tumble</title><content type='html'>I'm not happy with this blog, I'm not sure why I'm not happy with this blog, but I figure since it's 2010 I should get a tumblog.&lt;br /&gt;&lt;a href="http://jes5199.tumblr.com"&gt;http://jes5199.tumblr.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3867112722793440446-105381784832572908?l=jessewolfe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessewolfe.blogspot.com/feeds/105381784832572908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3867112722793440446&amp;postID=105381784832572908' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/105381784832572908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/105381784832572908'/><link rel='alternate' type='text/html' href='http://jessewolfe.blogspot.com/2010/01/tumble.html' title='tumble'/><author><name>jes5199</name><uri>http://www.blogger.com/profile/15375970038462787104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3867112722793440446.post-3192361238565028664</id><published>2009-08-17T16:35:00.000-07:00</published><updated>2009-08-17T16:49:27.303-07:00</updated><title type='text'>ruby's sprintf considered harmful</title><content type='html'>&lt;code&gt;irb(main):001:0&gt; sprintf("%d", "01")&lt;br /&gt;=&gt; "1"&lt;br /&gt;irb(main):002:0&gt; sprintf("%d", "02")&lt;br /&gt;=&gt; "2"&lt;br /&gt;irb(main):003:0&gt; sprintf("%d", "03")&lt;br /&gt;=&gt; "3"&lt;br /&gt;irb(main):004:0&gt; sprintf("%d", "04")&lt;br /&gt;=&gt; "4"&lt;br /&gt;irb(main):005:0&gt; sprintf("%d", "05")&lt;br /&gt;=&gt; "5"&lt;br /&gt;irb(main):006:0&gt; sprintf("%d", "06")&lt;br /&gt;=&gt; "6"&lt;br /&gt;irb(main):007:0&gt; sprintf("%d", "07")&lt;br /&gt;=&gt; "7"&lt;br /&gt;&lt;b&gt;irb(main):008:0&gt; sprintf("%d", "08")&lt;br /&gt;ArgumentError: invalid value for Integer: "08"&lt;br /&gt;from (irb):8:in `sprintf'&lt;br /&gt;from (irb):8&lt;br /&gt;irb(main):009:0&gt; sprintf("%d", "09")&lt;br /&gt;ArgumentError: invalid value for Integer: "09"&lt;br /&gt;from (irb):9:in `sprintf'&lt;br /&gt;from (irb):9&lt;/b&gt;&lt;br /&gt;irb(main):010:0&gt; sprintf("%d", "10")&lt;br /&gt;=&gt; "10"&lt;br /&gt;irb(main):011:0&gt; sprintf("%d", "11")&lt;br /&gt;=&gt; "11"&lt;br /&gt;irb(main):012:0&gt; sprintf("%d", "12")&lt;br /&gt;=&gt; "12"&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;a href="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/128416"&gt;Of course, this bug's been known for years.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3867112722793440446-3192361238565028664?l=jessewolfe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessewolfe.blogspot.com/feeds/3192361238565028664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3867112722793440446&amp;postID=3192361238565028664' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/3192361238565028664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/3192361238565028664'/><link rel='alternate' type='text/html' href='http://jessewolfe.blogspot.com/2009/08/rubys-sprintf-considered-harmful.html' title='ruby&apos;s sprintf considered harmful'/><author><name>jes5199</name><uri>http://www.blogger.com/profile/15375970038462787104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3867112722793440446.post-2626409733542415614</id><published>2009-05-06T13:23:00.000-07:00</published><updated>2009-05-06T13:29:18.039-07:00</updated><title type='text'>unexpectedly dangerous commands</title><content type='html'>rsync! unexpectedly dangerous!&lt;br /&gt;&lt;br /&gt;&lt;code&gt;rsync -a . root@pom:~&lt;/code&gt;&lt;br /&gt;&lt;code&gt;sending incremental file list&lt;br /&gt;./&lt;br /&gt;.acl&lt;br /&gt;README.txt&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;oops, I should have specified a sub-directory.&lt;br /&gt;and then...&lt;br /&gt;&lt;br /&gt;&lt;code&gt;ssh root@pom -i ~/.ssh/id-key &lt;br /&gt;root@pom's password: &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;ssh no longer accepts my key.&lt;br /&gt;because rsync's  "-a" flag changed the ownership of the target directory&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3867112722793440446-2626409733542415614?l=jessewolfe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessewolfe.blogspot.com/feeds/2626409733542415614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3867112722793440446&amp;postID=2626409733542415614' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/2626409733542415614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/2626409733542415614'/><link rel='alternate' type='text/html' href='http://jessewolfe.blogspot.com/2009/05/unexpectedly-dangerous-commands.html' title='unexpectedly dangerous commands'/><author><name>jes5199</name><uri>http://www.blogger.com/profile/15375970038462787104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3867112722793440446.post-2418365846657022709</id><published>2009-04-02T14:41:00.000-07:00</published><updated>2009-04-02T15:02:18.677-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails named scopes chained'/><title type='text'>(rails) naming chained named scopes</title><content type='html'>Is nobody doing this?&lt;br /&gt;&lt;br /&gt;Rails named scopes are chainable, right? Here's a traditional example:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;class Story &lt; ActiveRecord::Base&lt;br /&gt;  named_scope :hilarious, :conditions =&gt; ["type = ?","comedy"]&lt;br /&gt;  named_scope :popular, :conditions =&gt; ["popularity_level &gt; ?", 3]&lt;br /&gt;end&lt;br /&gt;&lt;code&gt;&lt;/pre&gt;&lt;br /&gt;and then you can ask for &lt;tt&gt;Story.popular.hilarious.all&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;But it didn't take much complexity for me to want to make a named scopes that represented a chain of named scopes.&lt;br /&gt;Here's my first draft of a solution:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;  named_scope :hilarious_and_popular, lambda{ self.hilarious.popular.scope(:find) }&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;It's a little ugly, but it seems to work.&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;Story.popular_and_hilarious.all.should == Story.popular.hilarious.all&lt;tt&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3867112722793440446-2418365846657022709?l=jessewolfe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessewolfe.blogspot.com/feeds/2418365846657022709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3867112722793440446&amp;postID=2418365846657022709' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/2418365846657022709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/2418365846657022709'/><link rel='alternate' type='text/html' href='http://jessewolfe.blogspot.com/2009/04/rails-naming-chained-named-scopes.html' title='(rails) naming chained named scopes'/><author><name>jes5199</name><uri>http://www.blogger.com/profile/15375970038462787104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3867112722793440446.post-6212966441473127462</id><published>2009-03-16T15:21:00.000-07:00</published><updated>2009-03-16T15:33:33.016-07:00</updated><title type='text'>TheSans</title><content type='html'>The guy who developed Inconsolata namechecked TheSans&lt;br /&gt;&lt;blockquote&gt;I was particularly struck by the beauty of Luc(as) de Groot's Consolas, which is his monospaced design for Microsoft's upcoming Vista release. This font, similar to his earlier TheSansMono, demonstrated clearly to me that monospaced fonts do not have to suck.&lt;a href="http://www.levien.com/type/myfonts/inconsolata.html"&gt;&amp;Dagger;&lt;/a&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;And that piqued my curiosity. After a few days of hunting, I found a source that could get me the font for less than the list price of $Ridiculous&lt;br /&gt;&lt;br /&gt;Even though it was explicitly designed for programming, it's a little funny looking. And the zeros aren't dotted or crossed.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;in VIM&lt;/strong&gt;&lt;br /&gt;&lt;img src="http://jes5199.com/fonts-thesansmono.png"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;in Gnome Terminal&lt;/strong&gt;&lt;br /&gt;&lt;img src="http://jes5199.com/fonts-thesansmono-terminal.png"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3867112722793440446-6212966441473127462?l=jessewolfe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessewolfe.blogspot.com/feeds/6212966441473127462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3867112722793440446&amp;postID=6212966441473127462' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/6212966441473127462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/6212966441473127462'/><link rel='alternate' type='text/html' href='http://jessewolfe.blogspot.com/2009/03/thesans.html' title='TheSans'/><author><name>jes5199</name><uri>http://www.blogger.com/profile/15375970038462787104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3867112722793440446.post-1673952392020247184</id><published>2009-03-16T14:57:00.000-07:00</published><updated>2009-03-17T18:43:47.215-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='comparison'/><category scheme='http://www.blogger.com/atom/ns#' term='monospace'/><category scheme='http://www.blogger.com/atom/ns#' term='fonts'/><title type='text'>anti-aliasing nightmare on debian</title><content type='html'>Debian mysteriously turned on font-anti-aliasing when I upgraded my laptop a few days ago. I guess that's fine, but suddenly my terminal got completely unreadable.&lt;br /&gt;&lt;strong&gt;before&lt;/strong&gt;&lt;br /&gt;&lt;img src="http://jes5199.com/fonts-before.png"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;after&lt;/strong&gt;&lt;br /&gt;&lt;img src="http://jes5199.com/fonts-after.png"&gt;&lt;br /&gt;&lt;br /&gt;I thought about turning it antialiasing off -- and I still may -- but it occurred to me that I could probably do better.&lt;br /&gt;I asked around, and I found a few shootouts, including &lt;a href="http://www.codinghorror.com/blog/archives/000969.html"&gt;Jeff Atwood's&lt;/a&gt;, but none for my exact setup.&lt;br /&gt;The problem is, Linux/X11's font renderer isn't really ClearType. Also, different applications seem to render the same font different ways: VIM and Gnome Terminal sometimes show the same character in the same font in a dramatically different way. &lt;br /&gt;&lt;br /&gt;Now I've got a handful of beautiful monospace fonts, but I can't seem to decide which to use. I'll post some examples here, as I get time to make screenshots.&lt;br /&gt;&lt;br /&gt;So far, I've got:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Andale Mono&lt;/li&gt;&lt;li&gt;Consolas&lt;/li&gt;&lt;li&gt;Consolas&lt;/li&gt;&lt;li&gt;DejaVu Sans&lt;/li&gt;&lt;li&gt;Inconsolata&lt;/li&gt;&lt;li&gt;&lt;a href="http://jessewolfe.blogspot.com/2009/03/thesans.html"&gt;TheSans Mono&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Bitstream Vera&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;I don't have Monoco or Pragmata, but maybe I'll find them later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3867112722793440446-1673952392020247184?l=jessewolfe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessewolfe.blogspot.com/feeds/1673952392020247184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3867112722793440446&amp;postID=1673952392020247184' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/1673952392020247184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/1673952392020247184'/><link rel='alternate' type='text/html' href='http://jessewolfe.blogspot.com/2009/03/anti-aliasing-nightmare-on-debian.html' title='anti-aliasing nightmare on debian'/><author><name>jes5199</name><uri>http://www.blogger.com/profile/15375970038462787104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3867112722793440446.post-4852142583080487677</id><published>2009-02-18T19:52:00.000-08:00</published><updated>2009-02-18T20:25:01.699-08:00</updated><title type='text'>Rails 2.2.2 is a lemon</title><content type='html'>There's &lt;i&gt;one bug&lt;/i&gt; that makes my life miserable in all sorts of ways. It's the Catch-22 that you often can't run rake tasks if any of your models fail to &lt;i&gt;compile&lt;/i&gt;.  &lt;br /&gt;It seems to be a bit of a heisenbug: &lt;br /&gt;&lt;a href="http://rails.lighthouseapp.com/projects/8994/tickets/1548-gem-tasks-fail-when-cache_classestrue"&gt;http://rails.lighthouseapp.com/projects/8994/tickets/1548-gem-tasks-fail-when-cache_classestrue&lt;/a&gt;&lt;br /&gt;&lt;a href="http://rails.lighthouseapp.com/projects/8994/tickets/802-eager-load-application-classes-can-block-migration"&gt;http://rails.lighthouseapp.com/projects/8994/tickets/802-eager-load-application-classes-can-block-migration&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.redmine.org/issues/show/2441"&gt;http://www.redmine.org/issues/show/2441&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I've seen it bite me:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;trying to migrate up fields in the database, while a model was trying to call "alias" on the field&lt;/li&gt;&lt;br /&gt;&lt;li&gt;trying to automatically install a gem dependency, including while a model was trying to mixin a module from that gem&lt;/li&gt;&lt;br /&gt;&lt;li&gt;trying to run specs in a &lt;i&gt;plugin&lt;/i&gt; when the app it was plugged into had syntax errors in a model&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Gaaah.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3867112722793440446-4852142583080487677?l=jessewolfe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessewolfe.blogspot.com/feeds/4852142583080487677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3867112722793440446&amp;postID=4852142583080487677' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/4852142583080487677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/4852142583080487677'/><link rel='alternate' type='text/html' href='http://jessewolfe.blogspot.com/2009/02/rails-222-is-lemon.html' title='Rails 2.2.2 is a lemon'/><author><name>jes5199</name><uri>http://www.blogger.com/profile/15375970038462787104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3867112722793440446.post-521560838464499920</id><published>2009-01-19T12:36:00.000-08:00</published><updated>2009-01-19T12:38:51.050-08:00</updated><title type='text'></title><content type='html'>programming languages that I &lt;i&gt;still&lt;/i&gt; can't read:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;LISP (and scheme)&lt;/li&gt;&lt;li&gt;C++ Templates&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;which suggests I need to take some time to really grok macros.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3867112722793440446-521560838464499920?l=jessewolfe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessewolfe.blogspot.com/feeds/521560838464499920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3867112722793440446&amp;postID=521560838464499920' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/521560838464499920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/521560838464499920'/><link rel='alternate' type='text/html' href='http://jessewolfe.blogspot.com/2009/01/programming-languages-that-i-still-cant.html' title=''/><author><name>jes5199</name><uri>http://www.blogger.com/profile/15375970038462787104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3867112722793440446.post-358369138308935995</id><published>2009-01-17T00:49:00.000-08:00</published><updated>2009-01-28T10:44:32.325-08:00</updated><title type='text'>debian linux: bigmem gives you highmem and you need it or you'll be missing memory</title><content type='html'>if you're running a debian system, make sure you have a bigmem kernel installed, like &lt;a href="http://packages.debian.org/lenny/linux-image-2.6-686-bigmem"&gt;this one&lt;/a&gt;, or memory above (somewhat less than) 1GB will be ignored.&lt;br /&gt;&lt;br /&gt;before&lt;br /&gt;&lt;tt&gt;sudo grep -i memory /var/log/dmesg&lt;br /&gt;[    0.004000] Memory: 899224k/917504k available (1693k kernel code, 17724k reserved, 746k data, 320k init, &lt;b&gt;0k highmem&lt;/b&gt;)&lt;br /&gt;&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;after&lt;br /&gt;&lt;tt&gt;sudo grep -i memory /var/log/dmesg&lt;br /&gt;[    0.004000] Memory: 2059204k/2087744k available (1834k kernel code, 27260k reserved, 788k data, 256k init, 1170240k highmem)&lt;br /&gt;&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;Now I can stop blaming firefox.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt;&lt;br /&gt;I've become convinced that this is a bug in Debian's 2.6.26 image. The previous version (2.6.24) had "highmem" (memory above 1GB) turned on even if "bigmem" (memory above 4GB) was turned off.&lt;br /&gt;(I think. Someone should confirm this.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3867112722793440446-358369138308935995?l=jessewolfe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessewolfe.blogspot.com/feeds/358369138308935995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3867112722793440446&amp;postID=358369138308935995' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/358369138308935995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/358369138308935995'/><link rel='alternate' type='text/html' href='http://jessewolfe.blogspot.com/2009/01/debian-linux-bigmem-gives-you-highmem.html' title='debian linux: bigmem gives you highmem and you need it or you&apos;ll be missing memory'/><author><name>jes5199</name><uri>http://www.blogger.com/profile/15375970038462787104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3867112722793440446.post-72915816821815040</id><published>2009-01-12T11:55:00.000-08:00</published><updated>2009-01-12T11:58:18.453-08:00</updated><title type='text'>mixed types</title><content type='html'>In scala, it's possible to mix parameterized types (e.g. &lt;code&gt;TypeOne[T]&lt;/code&gt;) with inheritance (e.g. &lt;code&gt;TypeOneTwo extends TypeOne[TypeTwo]&lt;/code&gt; )&lt;br /&gt;but it's &lt;i&gt;complicated&lt;/i&gt;.&lt;br /&gt;Lesson learned: if it's possible to just pick one or the other (pure inheritance or pure parametrization), do so.&lt;br /&gt;&lt;br /&gt;more on that later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3867112722793440446-72915816821815040?l=jessewolfe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessewolfe.blogspot.com/feeds/72915816821815040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3867112722793440446&amp;postID=72915816821815040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/72915816821815040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/72915816821815040'/><link rel='alternate' type='text/html' href='http://jessewolfe.blogspot.com/2009/01/mixed-types.html' title='mixed types'/><author><name>jes5199</name><uri>http://www.blogger.com/profile/15375970038462787104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3867112722793440446.post-14623075233837680</id><published>2009-01-07T12:22:00.000-08:00</published><updated>2009-01-07T12:30:34.841-08:00</updated><title type='text'>gij is a bad citizen</title><content type='html'>I think I've found what was going on with my scala interpreter. The debian scala package depends on &lt;i&gt;gij&lt;/i&gt;, the GNU Interpreter for Java. &lt;b&gt;THIS IS BAD&lt;/b&gt;. I didn't notice it get installed, but suddenly everything that called java on my system was filling up system memory, going into swap, filling up the entire swap, and crashing. I suspect that if I install a version of scala that uses the &lt;i&gt;real&lt;/i&gt; java interpreter, it won't use 1GB of RAM to call 'hello world'.&lt;br /&gt;Come &lt;i&gt;on&lt;/i&gt; debian. Java is GPL now. Let's get out of the ghetto.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3867112722793440446-14623075233837680?l=jessewolfe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessewolfe.blogspot.com/feeds/14623075233837680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3867112722793440446&amp;postID=14623075233837680' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/14623075233837680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/14623075233837680'/><link rel='alternate' type='text/html' href='http://jessewolfe.blogspot.com/2009/01/gij-is-bad-citizen.html' title='gij is a bad citizen'/><author><name>jes5199</name><uri>http://www.blogger.com/profile/15375970038462787104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3867112722793440446.post-2247337914661990640</id><published>2009-01-06T12:05:00.000-08:00</published><updated>2009-01-06T12:11:33.550-08:00</updated><title type='text'>TO: larry drebes &lt;ltd@janrain.com&gt;</title><content type='html'>Larry, I think it is despicable that the same company that was responsible for shepherding the OpenID 2.0 spec is now selling a proprietary product that capitalizes on the failures of that spec. I think it is obscene that the open source libraries that &lt;span style="font-style:italic;"&gt;your company maintains&lt;/span&gt;&lt;sup&gt;&lt;a href="http://www.openidenabled.com/"&gt;[1]&lt;/a&gt;&lt;/sup&gt; are now being pitched as &lt;span style="font-style:italic;"&gt;excessively complicated&lt;/span&gt;&lt;sup&gt;&lt;a href="http://www.janrain.com/products/rpx"&gt;[2]&lt;/a&gt;&lt;/sup&gt; so that you can sell a proprietary wrapper for them. This is a fundamental conflict of interest.&lt;br /&gt;&lt;br /&gt;~Jesse Wolfe&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3867112722793440446-2247337914661990640?l=jessewolfe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessewolfe.blogspot.com/feeds/2247337914661990640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3867112722793440446&amp;postID=2247337914661990640' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/2247337914661990640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/2247337914661990640'/><link rel='alternate' type='text/html' href='http://jessewolfe.blogspot.com/2009/01/to-larry-drebes.html' title='TO: larry drebes &amp;lt;ltd@janrain.com&amp;gt;'/><author><name>jes5199</name><uri>http://www.blogger.com/profile/15375970038462787104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3867112722793440446.post-4793326954223667256</id><published>2008-12-29T15:21:00.000-08:00</published><updated>2008-12-29T15:22:49.861-08:00</updated><title type='text'>this is going to be a problem</title><content type='html'>&lt;pre&gt;jes5199@electra:~/code/scala$ time scala hello.scala &lt;br /&gt;Hello, world! &lt;br /&gt;&lt;br /&gt;real 0m&lt;b&gt;24&lt;/b&gt;.380s&lt;br /&gt;user 0m0.564s&lt;br /&gt;sys 0m0.036s&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3867112722793440446-4793326954223667256?l=jessewolfe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessewolfe.blogspot.com/feeds/4793326954223667256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3867112722793440446&amp;postID=4793326954223667256' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/4793326954223667256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/4793326954223667256'/><link rel='alternate' type='text/html' href='http://jessewolfe.blogspot.com/2008/12/this-is-going-to-be-problem.html' title='this is going to be a problem'/><author><name>jes5199</name><uri>http://www.blogger.com/profile/15375970038462787104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3867112722793440446.post-2082575071898610142</id><published>2008-12-28T00:46:00.000-08:00</published><updated>2008-12-29T11:18:05.691-08:00</updated><title type='text'>Flickr reverse lookup bookmarklet</title><content type='html'>&lt;a href="javascript:document.location=('http://www.flickr.com/photo.gne?id='+(/\/([^/_]*)_/.exec(document.location)[1]));"&gt;flickr reverse lookup bookmarklet&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you're on a flickr jpg and you want to get to the photo's page, click this bookmarklet. It's that simple.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3867112722793440446-2082575071898610142?l=jessewolfe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessewolfe.blogspot.com/feeds/2082575071898610142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3867112722793440446&amp;postID=2082575071898610142' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/2082575071898610142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/2082575071898610142'/><link rel='alternate' type='text/html' href='http://jessewolfe.blogspot.com/2008/12/flickr-reverse-lookup-bookmarklet.html' title='Flickr reverse lookup bookmarklet'/><author><name>jes5199</name><uri>http://www.blogger.com/profile/15375970038462787104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3867112722793440446.post-5003471490611354450</id><published>2008-12-12T11:28:00.000-08:00</published><updated>2008-12-12T12:43:05.712-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='esoterica f#'/><title type='text'>semicolon semicolon</title><content type='html'>On wednesday, Kim Wallmark, Arlo Belshee, and I entered a quick little programming competition at Cubespace's Coder Social. We were encouraged to pick a programming language that we weren't terribly familiar with -- most of the teams seemed to be Ruby programmers trying Python or Python programmers trying Ruby. That didn't seem like a challenge to us, so we went with F# -- fortunately Kim already had an F# IDE installed, but otherwise none of us had ever used it.&lt;br /&gt;The problems were all from &lt;a href="http://projecteuler.net/index.php?section=problems"&gt;Project Euler&lt;/a&gt;, so they were the sorts of things that tend to have deeply recursive solutions. So, in that department, F# was an advantage.&lt;br /&gt;F# has some unpleasant quirks, though:&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Monomorphism by default&lt;/h3&gt;&lt;br /&gt;We had this function:&lt;br /&gt;&lt;code&gt;let fibStep (a,b) = (b,a+b)&lt;/code&gt;&lt;br /&gt;By default, it only works on ints! It should be valid for any numeric type! It's just addition! But no, we had to label the parameters:&lt;br /&gt;&lt;code&gt;let fibStep (a : BigInt ,b : BigInt) = (b,a+b)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Crippled type inference&lt;/h3&gt;&lt;br /&gt;Maybe I've been spoiled by Haskell, but I just assume that if I've got type inference, I've got Hindley–Milner over the entire program. In F#, types are only inferred within the boundaries of a single function. That means more type annotations.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Recursion requires annotation&lt;/h3&gt;&lt;br /&gt;And for some reason I don't understand, by default &lt;i&gt;recursion&lt;/i&gt; is forbidden in a function, unless you define it with the "let rec" keyword. I have no idea why.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Find the missing library&lt;/h3&gt;&lt;br /&gt;Since F# is on the CLR, it inherits some VM design smells. Where's the Bigint type? &lt;tt&gt;Microsoft.FSharp.Math&lt;/tt&gt; . You know, I would have expected the F# language to have implicit access to the FSharp namespaces. Nope.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Unusual punctuation&lt;/h3&gt;&lt;br /&gt;We knew about the confused usage of &lt;tt&gt;;;&lt;/tt&gt; for end of line and &lt;tt&gt;;&lt;/tt&gt; for comma, and &lt;tt&gt;,&lt;/tt&gt; for a different kind of comma. But we kept having to look up operators (for method names we had autocomplete in the IDE! but dingbats were Google's territory.) I know we got confused on: cons (&lt;tt&gt;::&lt;/tt&gt;), append (&lt;tt&gt;@&lt;/tt&gt;), exponent (&lt;tt&gt;**&lt;/tt&gt;), mod (&lt;tt&gt;%&lt;/tt&gt;).&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Cryptic error messages&lt;/h3&gt;&lt;br /&gt;And when you get it wrong, the interpreter is worthless. It had a tendency to entirely fail to parse our functions, and give us line/column numbers at the end of the code, rather than at the problem spot. I can't remember what the messages we were getting said, but it sure seemed like they just said "This is wrong"&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Hard to google&lt;/h3&gt;&lt;br /&gt;Several times we tried googling some common function names like "head" or "tail" or "append" and found that mixed with the keyword "F#" you get nothing but music results. Way to go, marketing wizards.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3867112722793440446-5003471490611354450?l=jessewolfe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessewolfe.blogspot.com/feeds/5003471490611354450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3867112722793440446&amp;postID=5003471490611354450' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/5003471490611354450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/5003471490611354450'/><link rel='alternate' type='text/html' href='http://jessewolfe.blogspot.com/2008/12/semicolon-semicolon.html' title='semicolon semicolon'/><author><name>jes5199</name><uri>http://www.blogger.com/profile/15375970038462787104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3867112722793440446.post-5714105609825952043</id><published>2008-12-03T15:44:00.000-08:00</published><updated>2008-12-03T16:09:15.849-08:00</updated><title type='text'>baby's first spammer</title><content type='html'>the wiki that I'm hosting ( &lt;a href="http://pdxipedia.jes5199.com/wiki/Main_Page"&gt;pdxipedia&lt;/a&gt; ) got a nice annoying spam infection. Mediawiki may be the world class software behind Wikipedia, but out of the box it's spambait. We're lucky only one got in (&lt;i&gt;Hi, 194.165.42.59 ! How are things in [consults GeoIP], uh, Saudi Arabia? How's the business of ... jeeze these spams seem to be total nonsense ... search engine disruption? &lt;/i&gt;)&lt;br /&gt;Today, I signed up for &lt;a href="http://www.projecthoneypot.org/"&gt;Project Honeypot&lt;/a&gt;, which keeps a blacklist of spammers. There's &lt;a href="http://www.mediawiki.org/wiki/Extension:Wiki-httpbl"&gt;a plugin&lt;/a&gt; for Mediawiki that redirects known spammers away, and it's also supposed to have invisible honeypot links to ensnare unknown robots. The link generation is buggy though, so I'm not brimming with confidence about the whole thing.&lt;br /&gt;So I wrote &lt;a href="http://github.com/jes5199/logblock/tree/master"&gt;a script&lt;/a&gt; that runs through my Lighttpd access.log files (it probably would work for apache, too), and checks IPs of all the recent visitors against the Project Honeypot blacklist. If there's a match, I use &lt;a href="http://en.wikipedia.org/wiki/Iptables"&gt;iptables&lt;/a&gt; to block that IP. I've got it running once a minute -- that's still enough time for a fast bot to do some damage -- so it's not really going to be a complete solution, but it could potentially prevent denial-of-service caused by a persistent bot.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3867112722793440446-5714105609825952043?l=jessewolfe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessewolfe.blogspot.com/feeds/5714105609825952043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3867112722793440446&amp;postID=5714105609825952043' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/5714105609825952043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/5714105609825952043'/><link rel='alternate' type='text/html' href='http://jessewolfe.blogspot.com/2008/12/babys-first-spammer.html' title='baby&apos;s first spammer'/><author><name>jes5199</name><uri>http://www.blogger.com/profile/15375970038462787104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3867112722793440446.post-2628608982357560706</id><published>2008-11-25T12:33:00.000-08:00</published><updated>2008-11-25T13:02:07.660-08:00</updated><title type='text'>I can't yet call it Jes' Law</title><content type='html'>Has this been said before?&lt;br /&gt;&lt;blockquote&gt;When you're working with more than one tool, the worst tool will use up the most of your time&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I've seen this both at work and on some personal projects lately.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;At work, we're adding an API to a PHP application so that we can control it from Ruby on Rails -- the API layer is supposed to be thin and clean, so we can do all of the complicated logic in Rails. Even so -- I've spent 90% of my time in PHP-land for the last &lt;i&gt;month&lt;/i&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;I just threw together a toy at &lt;a href="http://jes5199.com/sunrise/"&gt;http://jes5199.com/sunrise/&lt;/a&gt; . I needed a calculator that could predict sunrises, and the first thing I found was a CPAN module DateTime::Event::Sunrise. But suddenly my light little Sinatra and Javascript app includes a nightmarish perl script &lt;i&gt;and a patched version of the Sunrise library&lt;/i&gt;, since the package is abandoned and mildly broken. I spent easily &lt;i&gt;six hours&lt;/i&gt; in perl, compared to &lt;i&gt;two hours&lt;/i&gt; doing everything else. And I'm still not certain that there aren't edge cases where a sunrise gets skipped.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;Corollary:&lt;br /&gt;&lt;blockquote&gt;If a job has good parts and bad parts, the bad parts will dwarf the good.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3867112722793440446-2628608982357560706?l=jessewolfe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessewolfe.blogspot.com/feeds/2628608982357560706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3867112722793440446&amp;postID=2628608982357560706' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/2628608982357560706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/2628608982357560706'/><link rel='alternate' type='text/html' href='http://jessewolfe.blogspot.com/2008/11/i-cant-yet-call-it-jes-law.html' title='I can&apos;t yet call it Jes&apos; Law'/><author><name>jes5199</name><uri>http://www.blogger.com/profile/15375970038462787104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3867112722793440446.post-1200547499821144543</id><published>2008-11-19T14:35:00.000-08:00</published><updated>2008-11-19T15:42:45.688-08:00</updated><title type='text'>first post</title><content type='html'>I want to talk about&lt;br /&gt;&lt;ul&gt;&lt;li&gt;new programming languages&lt;/li&gt;&lt;br /&gt;&lt;li&gt;code tool practices&lt;/li&gt;&lt;br /&gt;&lt;li&gt;disposable software (software as performance art)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;general ranting&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3867112722793440446-1200547499821144543?l=jessewolfe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessewolfe.blogspot.com/feeds/1200547499821144543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3867112722793440446&amp;postID=1200547499821144543' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/1200547499821144543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3867112722793440446/posts/default/1200547499821144543'/><link rel='alternate' type='text/html' href='http://jessewolfe.blogspot.com/2008/11/first-post.html' title='first post'/><author><name>jes5199</name><uri>http://www.blogger.com/profile/15375970038462787104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
