<?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'><id>tag:blogger.com,1999:blog-7531579925401443405</id><updated>2009-09-23T08:27:58.315-07:00</updated><title type='text'>Nerd For Sale</title><subtitle type='html'>A random walk through my topics of interest.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://nerd-for-sale.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531579925401443405/posts/default'/><link rel='alternate' type='text/html' href='http://nerd-for-sale.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>masonium</name><uri>http://www.blogger.com/profile/07489097754293692528</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7531579925401443405.post-3915106437761267684</id><published>2008-03-31T11:11:00.001-07:00</published><updated>2008-03-31T11:37:57.632-07:00</updated><title type='text'>project idea</title><content type='html'>Once I get my new blog up and running, I'll need some projects to work on. I just thought of one decent idea:&lt;br /&gt;&lt;br /&gt;A collaborative wiki with a focus on exchanging notes. &lt;br /&gt;&lt;br /&gt;Feature-wise, it shouldn't require more than what's available in most other wikis. The significant additions will be in the organizational structure of the wiki.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531579925401443405-3915106437761267684?l=nerd-for-sale.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerd-for-sale.blogspot.com/feeds/3915106437761267684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7531579925401443405&amp;postID=3915106437761267684' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531579925401443405/posts/default/3915106437761267684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531579925401443405/posts/default/3915106437761267684'/><link rel='alternate' type='text/html' href='http://nerd-for-sale.blogspot.com/2008/03/project-idea.html' title='project idea'/><author><name>masonium</name><uri>http://www.blogger.com/profile/07489097754293692528</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14198331171889980231'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531579925401443405.post-5230756504865561971</id><published>2008-03-12T05:29:00.000-07:00</published><updated>2008-03-12T05:32:14.638-07:00</updated><title type='text'>Too Many Languages</title><content type='html'>There are way too many programming languages out there. Even if I narrow them down to one or two in a given paradigm there are too many. &lt;br /&gt;&lt;br /&gt;Array-based: J&lt;br /&gt;Graphics-based: Processing&lt;br /&gt;Dynamic Scripting: Python&lt;br /&gt;Functional: Haskell / O'Caml&lt;br /&gt;Concurrent: Erlang (or maybe LFE?)&lt;br /&gt;Web: PHP&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531579925401443405-5230756504865561971?l=nerd-for-sale.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerd-for-sale.blogspot.com/feeds/5230756504865561971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7531579925401443405&amp;postID=5230756504865561971' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531579925401443405/posts/default/5230756504865561971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531579925401443405/posts/default/5230756504865561971'/><link rel='alternate' type='text/html' href='http://nerd-for-sale.blogspot.com/2008/03/too-many-languages.html' title='Too Many Languages'/><author><name>masonium</name><uri>http://www.blogger.com/profile/07489097754293692528</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14198331171889980231'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531579925401443405.post-4932138999435943243</id><published>2007-07-26T09:09:00.000-07:00</published><updated>2007-07-26T10:53:56.340-07:00</updated><title type='text'>Korn Shell</title><content type='html'>So I was looking at the Facebook  programming puzzles the other day.  For those of you who haven't &lt;a href="http://www.facebook.com/jobs_puzzles/"&gt;stumbled upon them&lt;/a&gt;, the puzzles are meant to be completed by would-be applicants in one or more  of the suggested languages (those used by Facebook, according another article).  In most puzzles, additional solutions in other languages are encouraged, and in some puzzles partial or probabilistic solutions are also accepted.&lt;br /&gt;&lt;br /&gt;&lt;hints id="hah_hints"&gt;&lt;/hints&gt;One problem I thought was interesting was the &lt;a href="http://www.facebook.com/jobs_puzzles/?puzzle_id=7"&gt;Korn Shell&lt;/a&gt; problem. Go ahead and read it now, otherwise this post is pretty pointless :-P&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When I first read the puzzle, I don't think I quite understood it, so here's a quick example. Say we're working in a six letter alphabet (A-F). The keyboard could've been swapped in many ways, but I'll give 2 of them:&lt;br /&gt;&lt;br /&gt;Keyboard 1&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;A-&gt;F&lt;br /&gt;B-&gt;E&lt;br /&gt;C-&gt;B&lt;br /&gt;D-&gt;D&lt;br /&gt;E-&gt;C&lt;br /&gt;F-&gt;A&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Keyboard 2&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;A-&gt;F&lt;br /&gt;B-&gt;E&lt;br /&gt;C-&gt;D&lt;br /&gt;D-&gt;C&lt;br /&gt;E-&gt;B&lt;br /&gt;F-&gt;A&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;A -&gt; F means that typing A on the keyboard yields F on the screen, as you would expect. So if we take the word "FACE", we get these iterations&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;th&gt;Keyboard 1&lt;/th&gt;&lt;th&gt;Keyboard 2&lt;/th&gt;&lt;br /&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;AFBC&lt;/td&gt;&lt;td&gt;AFDB&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;FAEB&lt;/td&gt;&lt;td&gt;FACE&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;AFCE&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;FABC&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;AFEB&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;FACE&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;So the first keyboard yields many more iterations than the second, with a total of 6. In fact, in an alphabet of 6, the maximum number of iterations you can have for any word is 6, but I'm getting ahead of myself.&lt;br /&gt;&lt;br /&gt;The first thing you may notice is that a keyboard is really just a permutation. One thing you might quickly notice after that is, for any given keyboard, repeats of a character are irrelevant. Finally, even thought the characters of a word matter in a given keyboard, there is always another keyboard that will take the same number of steps for a transformed version of the word. For instance, since there are keyboards that transform "FACE" in six and two steps, there are also keyboards that transform "AFCE" and "DBCA" in six and two steps. Thus, for any given word, the only determining factor is the number of unique characters.&lt;br /&gt;&lt;br /&gt;Now let's look at the keyboards more carefully. In mathematics, the permutation group S&lt;sub&gt;n&lt;/sub&gt; is the... group of all permutations of n elements. These elements are often written as disjoint cycles. For instance, (a b c)(d e) is a permutation with two disjoint cycles. The first cycle imposes that a -&gt; b, b -&gt; c, and c -&gt; a, and the second that d -&gt; e and e -&gt; d. If there are other elements are . So, our keyboards can be written as (A F)(B E C) and (A F)(B E)(C D).&lt;br /&gt;&lt;br /&gt;For any k-cycle, it takes k iterations to get back to the starting point. Of course, we also restart after 2k iterations, or 3k, or j*k for that matter. So, if we have a permutation made up of m cycles, of sizes k&lt;sub&gt;1&lt;/sub&gt; .. k&lt;sub&gt;m&lt;/sub&gt;, then the permutation will take L = lcm(k&lt;sub&gt;1&lt;/sub&gt;, .., k&lt;sub&gt;m&lt;/sub&gt;) iterations to restart, where lcm is the least common multiple.&lt;br /&gt;&lt;br /&gt;So, our keyboard problem is strictly a number theory problem! For a given number of unique characters C, we need to find m, and k&lt;sub&gt;1&lt;/sub&gt;, ..., k&lt;sub&gt;m&lt;/sub&gt; &gt; 0 so that L&lt;sub&gt;C&lt;/sub&gt; is maximized, subject to some constraints. Specifically, we can't have more cycles than we have unique letters, but multiple letters can belong to the same cycle, so m &lt;= C. Also, if our keyboard only has K letters, k&lt;sub&gt;1&lt;/sub&gt; + .. + k&lt;sub&gt;m&lt;/sub&gt; &lt;= K.&lt;br /&gt;&lt;br /&gt;(Equivalently, we could specify that k&lt;sub&gt;1&lt;/sub&gt;, .., k&lt;sub&gt;m&lt;/sub&gt; &gt;= 0, and that m = C. The previous way seems more intuitive, but this way might be more tractable).&lt;br /&gt;&lt;br /&gt;For small values of K, this problem is pretty easy. Like I said before (and you can verify this pretty easily), for K = 6, L&lt;sub&gt;4&lt;/sub&gt; = 6. As a matter of fact, L&lt;sub&gt;C&lt;/sub&gt; = 6 for all valid C. (C = 1 can use a full 6-cycle, and C &gt; 1 can use 2-cycle and a 3-cycle). Of course, the Korn Shell problem is for K = 26. I've yet to come up with any insightful (read: non-brute force) way of computing it, though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531579925401443405-4932138999435943243?l=nerd-for-sale.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerd-for-sale.blogspot.com/feeds/4932138999435943243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7531579925401443405&amp;postID=4932138999435943243' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531579925401443405/posts/default/4932138999435943243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531579925401443405/posts/default/4932138999435943243'/><link rel='alternate' type='text/html' href='http://nerd-for-sale.blogspot.com/2007/07/korn-shell.html' title='Korn Shell'/><author><name>masonium</name><uri>http://www.blogger.com/profile/07489097754293692528</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14198331171889980231'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531579925401443405.post-2965376528698752995</id><published>2007-06-28T15:33:00.000-07:00</published><updated>2007-06-28T18:00:53.596-07:00</updated><title type='text'>Game Project Update</title><content type='html'>Lots of progress on the game front, sort of.  We have a name for the project, finally: &lt;span style="font-weight: bold;"&gt;Y.M.F.A.S&lt;/span&gt;. Or &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Ymfas&lt;/span&gt;, or &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;ymfas&lt;/span&gt;... not sure of the format, but that's definitely  what it's called.&lt;br /&gt;&lt;br /&gt;About two days after the last post on the subject, we scrapped the "roll your own" route and decided to go with &lt;a href="http://irrlicht.sourceforge.net/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Irrlicht&lt;/span&gt; &lt;/a&gt;for rendering and &lt;a href="http://www.ode.org/"&gt;ODE &lt;/a&gt;for graphics. Both are C/C++ native, so we used &lt;a href="http://irrlichtnetcp.sourceforge.net/index.php/Main_Page"&gt;IrrlichtNETCP&lt;/a&gt; and &lt;a href="http://www.taoframework.com/project/ode"&gt;Tao.Ode&lt;/a&gt;, respectively, as .NET wrappers. IrrlichtNETCP is pretty solid, but Tao.Ode had some issues.&lt;br /&gt;&lt;br /&gt;For one, ODE is fairly low-level. This isn't all that bad for C/C++, but Tao.Ode is (I believe) one big PInvoke, so you end up with something fairly unusable in C#. For instance, the math types do not have overloaded operators in C# (though they do with C++). Furthermore, all of the ODE resources are translated into IntPtr's, which screams of type safety for any large-scale use. I even started building a wrapper on top of all this to cover up the gritty non-managed details, but that'll have to wait a little bit.&lt;br /&gt;&lt;br /&gt;I later learned that &lt;a href="http://www.monodevelop.com/Main_Page"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;MonoDevelop&lt;/span&gt; &lt;/a&gt;also sucks. Well, that's not quite true.  Mono is great, and MonoDevelop is decent. However, it's a long way from &lt;a href="http://www.icsharpcode.net/OpenSource/SD/"&gt;SharpDevelop&lt;/a&gt;, the IDE that it was orignally a port of.  OTOH, SharpDevelop is a long way from VS 2005, which I also get for free. So, with this in mind, I decided to scrap the lofty goal of cross-platform goodness.&lt;br /&gt;&lt;br /&gt;So now that development is officially Windows-only, our options open a little bit (not as much as they would if we were using C++, but still...). So, after looking at the other side of the fence, we're tentatively using &lt;a href="http://www.ogre3d.org/wiki/index.php/MOGRE"&gt;MOGRE &lt;/a&gt;and &lt;a href="http://www.ogre3d.org/wiki/index.php/MogreNewt"&gt;MogreNewt&lt;/a&gt;,  .NET wrappers for &lt;a href="http://www.ogre3d.org/"&gt;Ogre3D &lt;/a&gt;and &lt;a href="http://www.newtondynamics.com/"&gt;Newton Game Dynamics&lt;/a&gt;. This has the unfortunate downside that most of the code that I've already written pretty much goes to waste. Oh well. Let's see where it goes.  &lt;hints id="hah_hints"&gt;&lt;/hints&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531579925401443405-2965376528698752995?l=nerd-for-sale.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerd-for-sale.blogspot.com/feeds/2965376528698752995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7531579925401443405&amp;postID=2965376528698752995' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531579925401443405/posts/default/2965376528698752995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531579925401443405/posts/default/2965376528698752995'/><link rel='alternate' type='text/html' href='http://nerd-for-sale.blogspot.com/2007/06/game-project-update.html' title='Game Project Update'/><author><name>masonium</name><uri>http://www.blogger.com/profile/07489097754293692528</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14198331171889980231'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531579925401443405.post-3826392390852442207</id><published>2007-06-28T12:38:00.000-07:00</published><updated>2007-06-28T13:01:34.224-07:00</updated><title type='text'>The 'Next Big Language' sucks</title><content type='html'>So there's lots of talk about how&lt;a href="http://steve-yegge.blogspot.com/"&gt; Steve Yegge&lt;/a&gt; considers &lt;a href="http://en.wikipedia.org/wiki/JavaScript"&gt;Javascript &lt;/a&gt;to be the "&lt;a href="http://steve-yegge.blogspot.com/2007/02/next-big-language.html"&gt;Next Big Language&lt;/a&gt;". God I hope not. &lt;br /&gt;&lt;br /&gt;For one,  has you ever seen a nice-looking piece of JS code? Seriously,  maybe it's just because so many non-programmers use it, but a lot of Javascript code out that is utter garbage (even compared to other languages  IMHO). With enough discipline, you can make as structured as other languages, I suppose. Well, almost. There is no module or packaging system, for instance.&lt;br /&gt;&lt;br /&gt;Javascript is an absolute pain to develop for, moreover.  As great as &lt;a href="http://www.getfirebug.com/"&gt;Firebug &lt;/a&gt;is, it is nowhere near  &lt;a href="http://www.eclipse.org/"&gt;Eclipse &lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/en-us/vstudio/aa973782.aspx"&gt;VS 2005&lt;/a&gt;, or &lt;a href="http://www.gnu.org/software/emacs/"&gt;emacs&lt;/a&gt; even.&lt;br /&gt;&lt;br /&gt;I don't even think Javascript satisfies Steve's bare minimum for the NBL. For instance, it doesn't have operator overloading (yet). It doesn't have quantifiers either, and those seem much less likely to be added.&lt;br /&gt;&lt;br /&gt;Of course, nit-picking aside, it probably is. Or at least, it probably is according to Steve Yegge. And, given how many people are paying attention to his predictions, it may end up that whether it was going to before or not. So it goes.&lt;br /&gt;&lt;hints id="hah_hints"&gt;&lt;/hints&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531579925401443405-3826392390852442207?l=nerd-for-sale.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerd-for-sale.blogspot.com/feeds/3826392390852442207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7531579925401443405&amp;postID=3826392390852442207' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531579925401443405/posts/default/3826392390852442207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531579925401443405/posts/default/3826392390852442207'/><link rel='alternate' type='text/html' href='http://nerd-for-sale.blogspot.com/2007/06/next-big-language-sucks.html' title='The &apos;Next Big Language&apos; sucks'/><author><name>masonium</name><uri>http://www.blogger.com/profile/07489097754293692528</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14198331171889980231'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531579925401443405.post-6401643923764270147</id><published>2007-06-10T18:39:00.001-07:00</published><updated>2007-06-10T19:01:48.703-07:00</updated><title type='text'>plans for summer</title><content type='html'>So this summer  I'm working as an intern at &lt;a href="http://techempower.com"&gt;TechEmpower&lt;/a&gt;. It's a fairly small software company, but it seems like a pretty cool place to work. At the very least, I'll learn a lot about webdev.&lt;br /&gt;&lt;br /&gt;I'm also working on a game for the summer with a fellow Techer. We're trying to make not too ambitious so we can actually get something playable in three months. Details are a little skimpy, but for now, suffice it to say that it's a 3d fast-paced multiplayer space shooter. We're building it with OpenGL + SDL (my idea) in C# (his idea). We'll probably use as much pre-built stuff as possible (including but not limited to DevIL, lidgren, OpenAL, and ODE) since it has such a short schedule. I should actually propose the idea of using Ogre3D, but we can try reinventing the wheel a little bit ourselves :-P. Seriously though, I imagine Ogre3D would have a steeper learning curve, since I already know some OGL.&lt;br /&gt;&lt;br /&gt;Who's to say for now how it's going to turn out, but I have high hopes.&lt;br /&gt;&lt;br /&gt;So with those to, as well as learning Erlang and Chinese, I have a pretty busy summer. sigh. (Yes, I know one's a foreign language and the other's a computer language. So it goes.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531579925401443405-6401643923764270147?l=nerd-for-sale.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerd-for-sale.blogspot.com/feeds/6401643923764270147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7531579925401443405&amp;postID=6401643923764270147' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531579925401443405/posts/default/6401643923764270147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531579925401443405/posts/default/6401643923764270147'/><link rel='alternate' type='text/html' href='http://nerd-for-sale.blogspot.com/2007/06/plans-for-summer.html' title='plans for summer'/><author><name>masonium</name><uri>http://www.blogger.com/profile/07489097754293692528</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14198331171889980231'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7531579925401443405.post-2120680231604723448</id><published>2007-05-23T05:13:00.000-07:00</published><updated>2007-05-23T05:14:42.838-07:00</updated><title type='text'>Test post</title><content type='html'>Not sure while I always do one of these. I don't really expect blogger.com to shut down unexpectedly or anything. On an unrelated note, I didn't know that it was bought by Google. They have their hands in a bit everything now, don't they? &lt;hints id="hah_hints"&gt;&lt;/hints&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7531579925401443405-2120680231604723448?l=nerd-for-sale.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerd-for-sale.blogspot.com/feeds/2120680231604723448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7531579925401443405&amp;postID=2120680231604723448' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7531579925401443405/posts/default/2120680231604723448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7531579925401443405/posts/default/2120680231604723448'/><link rel='alternate' type='text/html' href='http://nerd-for-sale.blogspot.com/2007/05/test-post.html' title='Test post'/><author><name>masonium</name><uri>http://www.blogger.com/profile/07489097754293692528</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14198331171889980231'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>