<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
<title>Daniel&apos;s Blog</title>
<link rel="alternate" type="text/html" href="http://www.clanspum.net/~fusion/blog/" />
<modified>2005-08-22T04:57:10Z</modified>
<tagline>get dan&apos;d</tagline>
<id>tag:www.clanspum.net,2005:/~fusion/blog/1</id>
<generator url="http://www.movabletype.org/" version="3.15">Movable Type</generator>
<copyright>Copyright (c) 2005, FusionGyro</copyright>
<entry>
<title>Did you hear? Daniel actually posted for a change! (And it only took a few months of pestering!)</title>
<link rel="alternate" type="text/html" href="http://www.clanspum.net/~fusion/blog/archives/2005/08/did_you_hear_da.html" />
<modified>2005-08-22T04:57:10Z</modified>
<issued>2005-08-22T04:23:51Z</issued>
<id>tag:www.clanspum.net,2005:/~fusion/blog/1.150</id>
<created>2005-08-22T04:23:51Z</created>
<summary type="text/plain">Things are good. Alex and I had some troubles recently, but things are back to being awesome again. :) She&amp;#8217;s gotten me many birthday gifts and actually kept a few of them secret. Last week she gave me the Herzog/Kinski...</summary>
<author>
<name>FusionGyro</name>

<email>fusion@storytotell.org</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.clanspum.net/~fusion/blog/">
<![CDATA[<p>Things are good. Alex and I had some troubles recently, but things are back to being awesome again. :) She&#8217;s gotten me many birthday gifts and actually kept a few of them secret. Last week she gave me the Herzog/Kinski boxed set, so I&#8217;ve been tormenting her with wonderful German cinema. :) She&#8217;s going to be taking a cake decorating class soon.</p>

<p>Things at work are also awesome. We&#8217;ve just released another product and have a couple more in development as I write this.</p>

<p>You may have heard that, after a great deal of thought, I&#8217;ve decided to convert to Judaism. I&#8217;ve been thinking about it for about 5 years, though my curiosity goes back even farther. The classes start the first week of September.</p>

<p>Faust gave me his old PC laptop when he got his new one. I put Gentoo on it and have been having fun playing with Linux again after my hiatus. <span class="caps">KDE </span>and apps. I even got Io installed and started to mess with it again.</p>

<p>I&#8217;ve been wanting to upgrade my blog software for some time. I installed Typo, but having four instances on the work server brought the machine&#8217;s load average to ~80, so I decided maybe not. I installed Drupal and really like it, but was going to wait until I had time to theme it and migrate everything. And of course, I haven&#8217;t had time to do that. I think it&#8217;ll be worth it, but it&#8217;s going to have to wait until I really get fed up. I&#8217;m sort of wondering whether it&#8217;s worth it to bother running my own crap. I&#8217;m also sort of wondering if I should just get Rails hosting somewhere, or some other form of hosting, but that almost always sucks a lot. I haven&#8217;t been posting, because I&#8217;ve been running over these problems in my head instead. How stupid.</p>

<p>I&#8217;ve been listening to a lot of Ayreon, Andrew <span class="caps">W.K.,</span> Modest Mouse and John Brown&#8217;s Body. Nathan gave me Twisted Sister&#8217;s greatest hits, and I&#8217;ve been getting a lot of mileage out of it. Cathy and Eric kindly gave me a copy of Misantropical Painforest and a Hail album, which I have listened to a bit on the road. It&#8217;s good stuff, definitely better with friends in front of a big stereo. I need more reggae. More music in general would be good too. When Eric was in town, I hung out with him and Cathy quite a bit, which was very nice.</p>

<p>I ate with Allan, Bill, Heather, Jarrod, Mattax and Tim at Fuddrucker&#8217;s last Friday. We mostly talked about Jarrod&#8217;s calamity and the student association. It was good to be with the Clan again. My how things change.</p>]]>

</content>
</entry>
<entry>
<title>Six Favorite Songs (of the moment)</title>
<link rel="alternate" type="text/html" href="http://www.clanspum.net/~fusion/blog/archives/2005/06/six_favorite_so.html" />
<modified>2005-06-06T03:10:39Z</modified>
<issued>2005-06-06T04:00:56Z</issued>
<id>tag:www.clanspum.net,2005:/~fusion/blog/1.149</id>
<created>2005-06-06T04:00:56Z</created>
<summary type="text/plain"> &amp;#8220;The Jester&amp;#8221; - Mekong Delta My favorite Mekong Delta song, apparently, considering how often I play it. Strangely, it&amp;#8217;s one of their simpler songs, but it has a great feel. Also strange that it comes from their oft-maligned The...</summary>
<author>
<name>FusionGyro</name>

<email>fusion@storytotell.org</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.clanspum.net/~fusion/blog/">
<![CDATA[<ol>
  <li><p>&#8220;The Jester&#8221; - Mekong Delta</p>
         <p>My favorite Mekong Delta song, apparently, considering how often I play it. Strangely, it&#8217;s one of their simpler songs, but it has a great feel. Also strange that it comes from their oft-maligned <em>The Principle of Doubt</em> album. I should really write a review of that album already.</p></li>
  <li><p>&#8220;I Get Wet&#8221; - Andrew WK</p>
         <p>Damn, it was a tough call between this one and &#8220;Ready to Die.&#8221; I finally chose this one because of the length. I really can&#8217;t compare the two songs.</p>
         <p>I was a pretty furious fan of <em>The Wolf</em> but now I have to admit I listen to <em>I Get Wet</em> more often, even though it&#8217;s a simpler album.</p></li>
  <li><p>&#8220;The Mind&#8217;s Eye&#8221; - Archetype</p>
         <p>A beautiful instrumental. If you&#8217;ve heard Metallica&#8217;s &#8220;Orion&#8221; you&#8217;ll have some idea what a metal instrumental is capable of; this song is <i>much</i> better. (Though there was a time when &#8220;Orion&#8221; would have been on this list).</p></li>
  <li><p>&#8220;Beyond the Last Horizon&#8221; - Ayreon</p>
         <p>A beautiful song, period.</p></li>
  <li><p>&#8220;Forsaken Love&#8221; + &#8220;Your Diary&#8221; - Destiny</p>
         <p>A really nice melodic hardcore piece from a band that seems to have virtually nothing written about them on the internet. They beat Misery Signals handily, but I really like both bands quite a bit.</p></li>
  <li><p>&#8220;Scape Goat&#8221; - The Agony Scene</p>
         <p>Probably the angriest band in my collection right now, they even manage to out-hate Children of Bodom and Arch Enemy. Very therapeutic when dealing with assholes and morons at work, it&#8217;s some pretty damn good metalcore. Very catchy, headbangy, and morbid fun.</p></li>
</ol>

<h2>Sick</h2>

<p>I&#8217;m recovering from a pretty bad case of food poisoning right now. Alex and I are about to go watch a movie. I would recommend not eating anything at Saigon Cafe in Santa Fe that contains cilantro.</p>]]>

</content>
</entry>
<entry>
<title>About Politics</title>
<link rel="alternate" type="text/html" href="http://www.clanspum.net/~fusion/blog/archives/2005/05/about_politics.html" />
<modified>2005-05-27T06:01:43Z</modified>
<issued>2005-05-27T05:57:53Z</issued>
<id>tag:www.clanspum.net,2005:/~fusion/blog/1.148</id>
<created>2005-05-27T05:57:53Z</created>
<summary type="text/plain">In response to Alex&amp;#8217;s poll: What would you change about the government given any means that you desire, outside of murder&amp;#8230; What about your government truly offends you? There are three things about our American government that really, really offend...</summary>
<author>
<name>FusionGyro</name>

<email>fusion@storytotell.org</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.clanspum.net/~fusion/blog/">
<![CDATA[<p>In response to <a href="http://www.livejournal.com/users/firenize/222211.html?mode=reply">Alex&#8217;s poll</a>:</p>

<p><i>What would you change about the government given any means that you desire, outside of murder&#8230; What about your government truly offends you?</i></p>

<p>There are three things about our American government that really, really offend me. The first is just the sheer size. I don&#8217;t know anything that&#8217;s as huge and poorly-structured as our government that works well, and as a programmer, I think I have some notion of size. Big things are usually worse than small things, unless they&#8217;re built up slowly and deliberately on top of smaller things that are complete. That&#8217;s not what happened with our goverment: it started out very small, and then it just grew and grew in a messy, non-evolutionary sort of way. Nobody in our country knows all the laws. We are probably breaking them all the time, and we have no idea.</p>

<p>The second thing is the level of enforcement. I think we have too many laws, and I think they&#8217;re enforced too much. They&#8217;re so many laws, there must be decisions being made as to which laws are going to get push, and I&#8217;m certain that decision is made by two groups: lazy cops, and evil lawyers and corporations. This is why the little guy keeps getting fucked: it&#8217;s more important that you not speed than that you not cheat on your taxes, because it&#8217;s so much easier to give someone a speeding ticket than to figure out who&#8217;s committing fraud. And everyone wants to fuck the government, because of how huge it is and because of the little man who pulled &#8216;em over. The system&#8217;s so huge, every cop comes with this attitude built-in. They&#8217;re probably humans when they&#8217;re not at work, but who&#8217;s watching them?</p>

<p>The third thing is I think the most important thing. Our government doesn&#8217;t have a philosophy, so we create laws left and right with different aims trying to fix the same problems in conflicting ways. In this way, we wind up with all the downsides of both capitalism and communism. The people would at least eat and have land if they were serfs, or be slaves to each other under the thumb of a dictator. Instead, we get to be fucked in the mind, slaves to piddly corporations in every aspect of our lives, and forced to pay a giddily war-like government for the privilege of being here to be fucked by it. Every potentially meaningful change in any direction gets hopelessly diluted into nonsense by the time it gets implemented. The net effect is that we&#8217;re fucked harder than any other people.</p>

<p>Oh I have a fourth thing. We have the lowest representation ratio of any first-world country, meaning we have less of a say in our government than any other free nation. I hate that too.</p>

<p>What would I change? I&#8217;m not sure where to begin. I&#8217;ve basically come to the conclusion that meaningful change is impossible in America for the foreseeable future. The most meaningful thing any of us can do is leave. The difficulty of leaving in comparison to &#8220;makin&#8217; a diff&#8217;rence&#8221; here is also indicative of just how powerful a statement it is, not to mention how much good it will do.</p>

<p><i>What was the first sign of government decline that kicked you in the teeth?</i></p>

<p>I can&#8217;t recall specifically one thing. I remember being astonished to learn that nobody had trusted the government since <span class="caps">JFK </span>when I was younger, and then later on being astonished to learn that nobody had trusted the government before him either.</p>

<p>I remember being astonished when I realized the solution to the problem was direct democracy. I remember being astonished to learn that nobody had really been thinking in those terms (later I found the anarchist thinkers and found them). I remember feeling like I had all the answers. Then I remember talking to various fuckholes about this problem&#8212;to which anarchism is <i>obviously right</i>&#8212;and getting blank stares and confusion. That may have been the clincher.</p>

<p><i>What political figure (if any) has represented your views the best?</i></p>

<p>The political figure who represents my views the best is me.</p>

<p>After me, Mikhail Bakunin comes close, to the best of my knowledge. Though I rather liked Howard Dean.</p>

<p><i>Where is a place on Earth that you believe you would be safe?</i></p>

<p>This is all my opinion. I&#8217;ve researched some (as you know ;) but it&#8217;s too big a question to be really correct on all of it.</p>

<p>I think that New Zealand is probably quite safe. Anywhere that is small and friendly is probably safe. I have a strong suspicion that Europe is safe, specifically the Scandinavian countries. Any place that&#8217;s neutral is probably also safe. I bet France is safe. America seems to hate it, yet it&#8217;s first-world, so they must be doing something right.</p>

<p>I bet Canada isn&#8217;t safe, because of proximity. Third-world countries probably aren&#8217;t safe, with the exception of Vanuatu which is probably extremely safe albeit not at a Western quality of life. Great Britain is probably either extremely safe or extremely unsafe (due to political ties, overpopulation, and general paranoia). Germany is probably safe.</p>

<p>I bet any arctic/subarctic country is safe. Greenland is way safe. Iceland is probably rather safe. Most of South America is probably not safe, excepting maybe Brazil (I really don&#8217;t know). Most of Africa is not safe, excepting for Gabon, but due to proximity I probably still wouldn&#8217;t live there.</p>

<p>Israel might actually be safe. Most of the near east is not safe, excepting maybe for Armenia, which rocks. Saudi Arabia might even be safe, if you can stand a monarchy and state religion. China is definitely safe, but also almost definitely closed. Siberian Russia is probably very safe still, and very intolerable. Russia itself is not very safe.</p>

<p>America is so worried about safety, it&#8217;s becoming unsafe.</p>]]>

</content>
</entry>
<entry>
<title>Thought Experiment for AI People</title>
<link rel="alternate" type="text/html" href="http://www.clanspum.net/~fusion/blog/archives/2005/05/thought_experim.html" />
<modified>2005-05-14T05:24:51Z</modified>
<issued>2005-05-14T05:16:43Z</issued>
<id>tag:www.clanspum.net,2005:/~fusion/blog/1.147</id>
<created>2005-05-14T05:16:43Z</created>
<summary type="text/plain">Thought experiment from Michael: Any algorithm that can be executed by a machine can be executed by a person, on paper. (It will just take a lot longer). AI algorithms are not exempt from the above If a person &amp;#8220;runs&amp;#8221;...</summary>
<author>
<name>FusionGyro</name>

<email>fusion@storytotell.org</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.clanspum.net/~fusion/blog/">
<![CDATA[<p>Thought experiment from Michael:</p>


<ol>
<li>Any algorithm that can be executed by a machine can be executed by a person, on paper. (It will just take a lot longer).</li>
<li>AI algorithms are not exempt from the above</li>
<li>If a person &#8220;runs&#8221; an AI algorithm, on paper, then it is clear that an intelligence has not come into being.</li>
<li>Therefore, &#8220;AI&#8221; will never achieve &#8220;sentience,&#8221; whatever that means.</li>
</ol>

]]>

</content>
</entry>
<entry>
<title>Algorithms</title>
<link rel="alternate" type="text/html" href="http://www.clanspum.net/~fusion/blog/archives/2005/04/algorithms.html" />
<modified>2005-04-29T20:11:06Z</modified>
<issued>2005-04-29T21:04:00Z</issued>
<id>tag:www.clanspum.net,2005:/~fusion/blog/1.146</id>
<created>2005-04-29T21:04:00Z</created>
<summary type="text/plain">It&amp;#8217;s nice that Bill is talking about retaking Algorithms after incompleting it. I have to say, Mazumdar was completely right: most days, you don&amp;#8217;t use it at all, but on some days, it&amp;#8217;s the difference between night and day. I...</summary>
<author>
<name>FusionGyro</name>

<email>fusion@storytotell.org</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.clanspum.net/~fusion/blog/">
<![CDATA[<p>It&#8217;s nice that Bill is talking about retaking Algorithms after incompleting it. I have to say, Mazumdar was completely right: most days, you don&#8217;t use it at all, but on some days, it&#8217;s the difference between night and day. I think he said algorithm analysis will never get you a job, but you may lose your job if you don&#8217;t know about it. It hasn&#8217;t been that way at Matterform, but there are times when we go, &#8220;Why is this so slow?&#8221; And usually, there are two possible answers:</p>


<ol>
<li>The <span class="caps">SQL </span>statement we&#8217;re using is really bad. 9 times out of ten, this is the problem. (SQL is very fast! You just need to know how to tweak it.)</li>
<li>Somebody did something really stupid</li>
</ol>



<p>Last week, we discovered that there was a priority queue in the middle of our <span class="caps">POP3 </span>code. The guy who wrote it had used the na&iuml;ve implementation&#8212;put all the elements into an array, and sort the array by priority after each insert. So, if I have N items, it&#8217;s going to take what, 1/2N * NlogN, just to insert all the items? So that makes it what, about O(N**2 log N)? Of course, popping is a snap, because they&#8217;re all sorted. Popping is O(1).</p>

<p>Then I recalled priority queues. Couldn&#8217;t recall a fucking thing about them. Pulled out my copy of &#8220;Algorithms in C++&#8221;, which really is a great book even though it&#8217;s in C++, and wrote an array-based priority queue in about an hour. This one has the property O(log N) for insertion and removal (although it maintains O(1) if you just want to look at the top item). So here are the rough numbers:</p>

<blockquote><p>Na&iuml;ve implementation: in 6 seconds, 100 items<br />
Heap-in-array implementation: in 7 seconds, 20,000 items</p></blockquote>

<p>I think we have a winner. :)</p>

<p>Sadly, I think what I mostly got out of the class is that I can recognize runtime behavior (more-or-less ;), recall the names of alternatives that we should be using, and code up an alternative and be able to tell that it&#8217;s right. But even this is a big edge over the competition (apparently).</p>]]>

</content>
</entry>
<entry>
<title>Observational Injunction</title>
<link rel="alternate" type="text/html" href="http://www.clanspum.net/~fusion/blog/archives/2005/04/observational_i.html" />
<modified>2005-04-22T02:55:00Z</modified>
<issued>2005-04-22T02:53:34Z</issued>
<id>tag:www.clanspum.net,2005:/~fusion/blog/1.145</id>
<created>2005-04-22T02:53:34Z</created>
<summary type="text/plain"> Ebony pukes Lllama eats it Lllama grows hair Ebody eats it Goto 1...</summary>
<author>
<name>FusionGyro</name>

<email>fusion@storytotell.org</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.clanspum.net/~fusion/blog/">
<![CDATA[
<ol>
<li>Ebony pukes</li>
<li>Lllama eats it</li>
<li>Lllama grows hair</li>
<li>Ebody eats it</li>
<li>Goto 1</li>
</ol>

]]>

</content>
</entry>
<entry>
<title>Towards the East</title>
<link rel="alternate" type="text/html" href="http://www.clanspum.net/~fusion/blog/archives/2005/04/towards_the_eas.html" />
<modified>2005-04-19T06:17:34Z</modified>
<issued>2005-04-19T05:29:07Z</issued>
<id>tag:www.clanspum.net,2005:/~fusion/blog/1.143</id>
<created>2005-04-19T05:29:07Z</created>
<summary type="text/plain">Alex has been generally unhappy since she got an IUD on last Thursday. The doctor, this hairy, acne-laden hagdyke from another dimension, has a number of flaws, not the least of which are her appearance and demeanor. Anyway, she decided...</summary>
<author>
<name>FusionGyro</name>

<email>fusion@storytotell.org</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.clanspum.net/~fusion/blog/">
<![CDATA[<p>Alex has been generally unhappy since she got an <span class="caps">IUD </span>on last Thursday. The doctor, this hairy, acne-laden hagdyke from another dimension, has a number of flaws, not the least of which are her appearance and demeanor. Anyway, she decided to take a time/pain tradeoff during the procedure which has left Alex with pain since it happened. To save about 10-15 minutes of wriggling time. I think it&#8217;s pathetic that this person spent nine or twelve or however many years getting trained to be a doctor, and won&#8217;t spend 10 minutes to do something the nice way for a patient. Telling.</p>

<p>Michael was telling me about this doctor in Albuquerque who doesn&#8217;t take insurance or medicare or medicaid, only money, and does house calls at any time of day. We both really like this idea. The doctors seem to like it too&#8212;more money, more personable customers, better life for everyone involved. And all because they factored out the things that make it inhumane: paperwork, waiting, rushed doctors, etc. This doctor had a quote which I&#8217;ll paraphrase: when doctors could do nothing but pat you on the hand and tell you when you might get better, they were revered. Now that they can treat more things than any other time in history, they are disliked and considered an inconvenience. Wish I had a link to this guy&#8217;s site or something.</p>

<p>Last week was go-live for Spamfire 2, though in reality we&#8217;d been selling it to existing customers for a while. It&#8217;s been really exhausting, very difficult to get or stay motivated for anything at home. I&#8217;ve been sleeping a lot. When I get to work I have 2 hours of tech support to look forward to, usually with nothing to say except wish you&#8217;d read the documentation and not freaked out, or wait for the next version, it&#8217;ll be out soon. It&#8217;s hard for me to imagine grown men getting so angry and mean about something, but not having the courage or the wisdom to read the fucking manual. But I guess this is true of anything. As Michael said, &#8220;even iShit will require customer service.&#8221; We often talk about iShit, a hypothetical program that does nothing but has a really nice UI and lots of people need for keeping track of their shit. In practice, it&#8217;s probably a lot like <a href="http://www.delicious-monster.com/">Delicious Library</a>. This leads to the other thing we talk about a lot, the &#8220;it&#8217;s like <span class="caps">XXX, </span>but worse&#8221; phenomenon. A lot of people seem bent on poor imitation. A friend of mine is about to embark on a project to recreate Civ 2, but &#8220;with shorter games.&#8221; A guy at <span class="caps">REAL</span>world was talking about his RB Design Award contender, &#8220;it&#8217;s like Delicious Library, but written in <span class="caps">REAL</span>basic.&#8221;</p>

<p>I&#8217;m glad for all the time I spent not interacting with customers at Matterform prior to two weeks ago. I was even more glad at <span class="caps">ARSC, </span>because Jeff and Derek even hid from me that they were demoing the software. But now, we have people writing to us saying, drop the language you use, this is alpha, this is blah. You would say, they&#8217;re just users, it won&#8217;t affect you. But it does. And these people assume they&#8217;re going to get a sub-human who doesn&#8217;t care about the product, because the other companies they deal with are big and staffed with sub-humans who don&#8217;t care about the product, so they pick harsher words. Still, I&#8217;m surprised that grown men are so harsh. It&#8217;s just a program. Programs have bugs. They get fixed. It&#8217;s not the end of the world. $17.95 is not a fraud-worthy sum.</p>

<p>Anyway.</p>

<p>I&#8217;ve been somewhat programmatically impotent lately. By the time we get around to the coding, it&#8217;s in <span class="caps">PHP </span>for Nina or whatever, I&#8217;m distracted by what all these people have said. I get home, and I don&#8217;t have it in me to continue on any of the grandiose plans I&#8217;ve started. I&#8217;ve got four projects on the back burner. I start more all the time. Somedays I just wish I were really profoundly interested in just one of these old things, and could work on it all night. But I don&#8217;t have it in me these weeks. I&#8217;ve got nothing but exhaustion.</p>

<p>Last week, out of the blue, I got the MFbonus. :) I&#8217;m really happy about it. Then Michael insisted I take off some time this month, to recouperate, so I&#8217;ve got the next two Friday&#8217;s off. I&#8217;m not sure what I&#8217;m going to do with the time. I&#8217;m thinking about just sleeping. I&#8217;ve got to go see Eric before he goes on his trip though. I blew off everyone in Socorro this weekend, mostly because of Alex not feeling well, and partly because of the exhaustion.</p>

<p>We blew the money this weekend on a new used washer and dryer. Alex has been pestering me about these for a long time. So now all we need is a sofa, a couple dressers and a new laptop for me, and our material questing will be essentially taken care of for a while. I&#8217;m content with what we have. The only things I feel like I need right now are a faster better Mac and a home in New Zealand. But those both seem incredibly distant right now.</p>

<p>We also got a wunder-crapper for the cats. Michael called it a shit palace. I guess the vulgarian is rubbing off on him, though I try and hold it in. I&#8217;ve been more captivated with wrecking people with blunt, G-rated sentences for while. There&#8217;s something really beautiful about saying something like &#8220;No, we only want to offend you&#8221; and watching someone get all pissed and hurt about it. &#8220;No, we just want to exclude you. Your kind.&#8221; Anyway, the litter box has basically got a filter on the side, and a collector above it. You rotate the box onto the side and the dirt slides into the filter side, then you rotate the other way and all the clumps fall into a removable container. I&#8217;m skeptical, but I&#8217;m willing to like it.</p>

<p>This has been the week of home improvements. Last Tuesday or whenever Faust came over, we installed my first set of CD holding shelves. We needed to get a stud finder. Now we&#8217;ve removed the door from the bathroom closet and removed a board to put the litterbox in there. It&#8217;s strange, working on the house.</p>

<p>Anyway, it&#8217;s 12:10 and this is long enough. Time to call it a night I think. I&#8217;m hanging out in the Io chatroom for a change. It&#8217;s kind of nice. I hope it doesn&#8217;t become a habit. :)</p>]]>

</content>
</entry>
<entry>
<title>Wow That Sucked</title>
<link rel="alternate" type="text/html" href="http://www.clanspum.net/~fusion/blog/archives/2005/04/wow_that_sucked.html" />
<modified>2005-04-09T05:30:55Z</modified>
<issued>2005-04-09T05:16:17Z</issued>
<id>tag:www.clanspum.net,2005:/~fusion/blog/1.142</id>
<created>2005-04-09T05:16:17Z</created>
<summary type="text/plain">On Sunday Night, Alex and I stayed up all night scared shitless because we thought we heard tapping on our windows. We still don&amp;#8217;t know what or who it was. Monday rolled around, and since we just started selling Spamfire...</summary>
<author>
<name>FusionGyro</name>

<email>fusion@storytotell.org</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.clanspum.net/~fusion/blog/">
<![CDATA[<p>On Sunday Night, Alex and I stayed up all night scared shitless because we thought we heard tapping on our windows. We still don&#8217;t know what or who it was.</p>

<p>Monday rolled around, and since we just started selling Spamfire 2 to some old customers over the weekend, I of course had to come in (but came in late). We worked on a few problems.</p>

<p>On Tuesday, I spent the whole day doing nothing but tech support. Which is fine, but doesn&#8217;t feed the soul.</p>

<p>On Wednesday, we were both too exhausted to do anything and Alex was randomly pissed off and tired. At work we spent the whole day trying to fix a newly emerged problem with Emal.</p>

<p>On Thursday, the cat woke me up by scratching my face in four places. But Michael bought lunch, which was nice, and we talked about Matterform some more. For dinner, we went to Asian Star, where they kindly gave me crab which I didn&#8217;t notice until after I&#8217;d taken a bite and reflected on how un-salmony it was. Then we went to Wal-Mart where we had the worst check-out experience imaginable after being pretty quick&#8212;the dumb bitch was a horrible bagger, took forever (45 minutes to handle three carts, of which ours was about 4x bigger). Additionally, she made many mistakes and was just generally intolerable, chatting with everyone instead of being worthy. Alex called to complain about her, then we went home and I was ill. We also were up late because of trying to do both those things.</p>

<p>Today wasn&#8217;t that bad. I&#8217;m looking forward to a weekend of lots of sleep.</p>

<p>On the programming front, I&#8217;m working on yet another little project for a friend which I think will turn out to be really cool. It&#8217;s a Rails project and it&#8217;s quite fun I have to say. I wish there were some more comprehensive non-API documentation, maybe even documentation that gets updated regularly? :) But the system is still emerging so I guess it&#8217;s not fair to expect too much of it. Definitely a high learning curve. For right now, the motto is the same as Cocoa: if something&#8217;s not working, you&#8217;re probably trying too hard.</p>

<p>I&#8217;m trying to decide whether I should go to Socorro next weekend or the weekend after. I&#8217;m leaning towards the weekend after. Comments?</p>]]>

</content>
</entry>
<entry>
<title>More Credit</title>
<link rel="alternate" type="text/html" href="http://www.clanspum.net/~fusion/blog/archives/2005/03/more_credit.html" />
<modified>2005-03-31T07:29:27Z</modified>
<issued>2005-03-31T07:18:47Z</issued>
<id>tag:www.clanspum.net,2005:/~fusion/blog/1.141</id>
<created>2005-03-31T07:18:47Z</created>
<summary type="text/plain">On the subject of credit, thanks to everyone who posted with your tips. Basically, I want to be able to buy a house in New Zealand sometime around age 30-33 when I&amp;#8217;m a legal permanent resident there. This is going...</summary>
<author>
<name>FusionGyro</name>

<email>fusion@storytotell.org</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.clanspum.net/~fusion/blog/">
<![CDATA[<p>On the subject of credit, thanks to everyone who posted with your tips.</p>

<p>Basically, I want to be able to buy a house in New Zealand sometime around age 30-33 when I&#8217;m a legal permanent resident there. This is going to take credit.</p>

<p>In the mean time, there isn&#8217;t much of anything I need (though Cathy&#8217;s remark about using it as health insurance is extremely well taken). I wouldn&#8217;t mind buying a CD or two or a program each month on it and paying it off rapidly. I also wouldn&#8217;t mind buying some furniture up here (a sofa, for one thing) and Michael suggested buying things in that price range on credit, dinking with it on the card for 4 months or so and then killing it off. The one thing I think I would really like to have is a new PowerBook but Apple roundly rejected the idea of giving me their credit card. Allan suggested a loan with the laptop as collatoral, which seems like a brilliant idea, but which Michael doesn&#8217;t think the bank will go for because it&#8217;s hard to appraise computer equipment.</p>

<p>So, my plan is basically this:</p>


<ol>
<li>Go ask McBank for whatever credit card they&#8217;ll give me.</li>
<li>Go ask McBank for a loan for a PowerBook when the <span class="caps">G5&#8217;</span>s come out.</li>
</ol>



<p>As much as I like the latter, it seems too good to be true. But in the land of credit, &#8220;too good to be true&#8221; seems to be the way it works (i.e. the way you get fucked). So we&#8217;ll see.</p>]]>

</content>
</entry>
<entry>
<title>Credit</title>
<link rel="alternate" type="text/html" href="http://www.clanspum.net/~fusion/blog/archives/2005/03/credit.html" />
<modified>2005-03-29T05:38:36Z</modified>
<issued>2005-03-29T05:37:09Z</issued>
<id>tag:www.clanspum.net,2005:/~fusion/blog/1.140</id>
<created>2005-03-29T05:37:09Z</created>
<summary type="text/plain">Alex wants us to get a credit card so that we can get a positive credit rating. What do you guys think? How important is having credit and/or a good credit rating?...</summary>
<author>
<name>FusionGyro</name>

<email>fusion@storytotell.org</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.clanspum.net/~fusion/blog/">
<![CDATA[<p>Alex wants us to get a credit card so that we can get a positive credit rating. What do you guys think? How important is having credit and/or a good credit rating?</p>]]>

</content>
</entry>
<entry>
<title>REALWorld</title>
<link rel="alternate" type="text/html" href="http://www.clanspum.net/~fusion/blog/archives/2005/03/realworld.html" />
<modified>2005-03-27T21:35:37Z</modified>
<issued>2005-03-27T21:26:15Z</issued>
<id>tag:www.clanspum.net,2005:/~fusion/blog/1.139</id>
<created>2005-03-27T21:26:15Z</created>
<summary type="text/plain">Bill asked what talks I attended. Here&amp;#8217;s what I remember: Getting the Most from REALBasic 2005 Understanding Text Encoding Demystifying Declares Mac OS X User Interface Design Powerful yet Underutilized Features Debugging Techniques Getting the Most out of RBScript Managing...</summary>
<author>
<name>FusionGyro</name>

<email>fusion@storytotell.org</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.clanspum.net/~fusion/blog/">
<![CDATA[<p>Bill asked what talks I attended. Here&#8217;s what I remember:</p>


<ul>
<li>Getting the Most from <span class="caps">REALB</span>asic 2005</li>
<li>Understanding Text Encoding</li>
<li>Demystifying Declares</li>
<li>Mac OS X User Interface Design</li>
<li>Powerful yet Underutilized Features</li>
<li>Debugging Techniques</li>
<li>Getting the Most out of <span class="caps">RBS</span>cript</li>
<li>Managing a Common Framework</li>
<li>Developing Web Apps with Swordfish</li>
</ul>



<p>Of these, I think I got the most out of the text encoding and the declares sessions. Text encoding is something interesting to me (somehow) and declares are how we call into C libraries from RB&#8212;something I always wanted to know more about. Now I think I have a handle on both (we&#8217;ll see). Of the other sessions, there were lots of interesting tidbits but not huge shots of concentrated knowledge. We appear to be in a league of about 3 or 4 other companies that exclusively use <span class="caps">RB, </span>so we have an edge over most of the rest of the community (apparently). The Swordfish and 2005 sessions were cool, just seeing what we&#8217;re going to be able to use in the not-too-distant future. The Mac OS X UI guy pissed me off because he had too much material and seemed to have no idea what his audience was.</p>

<p>I was also surprised at how anti-Open Source the whole group was. It was also interesting to me that the average age of RB developers seems to be higher than other developer communities: mid-thirties to forties seems to be average.</p>

<p>All in all, it was pretty cool stuff. I&#8217;m socially exhausted from it.</p>]]>

</content>
</entry>
<entry>
<title>Going to REALWorld</title>
<link rel="alternate" type="text/html" href="http://www.clanspum.net/~fusion/blog/archives/2005/03/going_to_realwo.html" />
<modified>2005-03-23T07:03:07Z</modified>
<issued>2005-03-23T06:58:36Z</issued>
<id>tag:www.clanspum.net,2005:/~fusion/blog/1.138</id>
<created>2005-03-23T06:58:36Z</created>
<summary type="text/plain">I&amp;#8217;m in Albuquerque at Joe&amp;#8217;s. Tomorrow Michael and I are flying out to REALWorld. My business cards came in today, and I have a few hundred in the backpack to take to the conference. Michael&amp;#8217;s lending me his spare powerbook&amp;#8212;so...</summary>
<author>
<name>FusionGyro</name>

<email>fusion@storytotell.org</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.clanspum.net/~fusion/blog/">
<![CDATA[<p>I&#8217;m in Albuquerque at Joe&#8217;s. Tomorrow Michael and I are flying out to <a href="http://www.realsoftware.com/realworld/"><span class="caps">REALW</span>orld</a>. My business cards came in today, and I have a few hundred in the backpack to take to the conference. Michael&#8217;s lending me his spare powerbook&#8212;so I won&#8217;t be out of place with my shitty iBook and Alex can keep it with her and the cats in Albuquerque.</p>

<p>I once observed that the musical opinion of anyone who dislikes Symphony X should be discarded. I&#8217;d like to amend that statement: anyone who dislikes Andrew <span class="caps">W.K. </span>can go get fucked.</p>

<p>We pushed out b9 today, and I finished the coupon system for Nina&#8217;s site. I need to get a blog on the Matterform site, because I talk about work too much.</p>]]>

</content>
</entry>
<entry>
<title>Some Quotes</title>
<link rel="alternate" type="text/html" href="http://www.clanspum.net/~fusion/blog/archives/2005/03/some_quotes.html" />
<modified>2005-03-20T09:04:47Z</modified>
<issued>2005-03-20T08:58:09Z</issued>
<id>tag:www.clanspum.net,2005:/~fusion/blog/1.137</id>
<created>2005-03-20T08:58:09Z</created>
<summary type="text/plain">Paul Graham, Summer Founders FAQ: &amp;#8220;Getting rich is hard but doable. Getting a fun job is hard but doable. Trying to solve both problems simultaneously approaches impossible.&amp;#8221; Schlake: &amp;#8220;Um, you only have to sort something once in Python to hate...</summary>
<author>
<name>FusionGyro</name>

<email>fusion@storytotell.org</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.clanspum.net/~fusion/blog/">
<![CDATA[<p>Paul Graham, <a href="http://paulgraham.com/summerfounder.html">Summer Founders <span class="caps">FAQ</span></a>: &#8220;Getting rich is hard but doable. Getting a fun job is hard but doable. Trying to solve both problems simultaneously approaches impossible.&#8221;</p>

<p>Schlake: &#8220;Um, you only have to sort something once in Python to hate it. There isn&#8217;t really any growing. The hatred of sort springs fully formed from the eyebrow of Guido.&#8221;</p>

<p>Finally, a biggie from my new hero, Dr. Jacob Bronowski, whose book <em>The Ascent of Man</em> I finished last night:</p>

<blockquote><p>&#8230; Round about midnight I had his answer. Well, John von Neumann always slept very late, so I was kind and I did not wake him until well after ten in the morning. When I called his hotel in London, he answered the phone in bed, and I said, &#8216;Johnny, you&#8217;re quite right.&#8217; And he said to me, &#8216;You wake me up early in the morning to tell me that I&#8217;m right? Please wait until I&#8217;m wrong.&#8217;</p>

<p>If that sounds very vain, it was not. It was a real statement of how he lived his life. And yet it has something in it which reminds me that he wasted the last years of his life. He never finished the great work that has been very difficult to carry on since his death. And he did not, really, because he gave up asking himself how other <em>people</em> see things. He became more and more engaged in work for private firms, for industry, for government. They were enterprises which brought him to the centre of power, but which did not advance eithr his knowledge or his intimacy with people&#8212;who to this day have not yet got the message of what he was trying to do about the human mathematics of life and mind.</p>

<p>Johnny von Neumann was in love with the aristocracy of intellect. And that is a belief which can only destroy the civilsation that we know. If we are anything, we must be a democracy of the intellect. We must not perish by the distance between people and government, between people and power, by which Babylon and Egypt and Rome failed. And that distance can only be conflated, can only be closed, if knowledge sits in the homes and heads of people with no ambition to control others, and not up in the isolated seats of power.</p></blockquote>

<p>Later on, he also said this: &#8220;We are nature&#8217;s unique experiment to make the rational intelligence prove itself sounder than reflex.&#8221;</p>

<p>It&#8217;s hard, after finishing that book, not to agree with the &#8220;Great Men&#8221; theory of progress.</p>]]>

</content>
</entry>
<entry>
<title>Cleaning</title>
<link rel="alternate" type="text/html" href="http://www.clanspum.net/~fusion/blog/archives/2005/03/cleaning.html" />
<modified>2005-03-20T05:35:07Z</modified>
<issued>2005-03-20T05:29:25Z</issued>
<id>tag:www.clanspum.net,2005:/~fusion/blog/1.136</id>
<created>2005-03-20T05:29:25Z</created>
<summary type="text/plain">Alex and I did some cleaning today around the house. I attacked the cat bathroom and now it&amp;#8217;s a lot less skanky, the bathtub drains, I mopped, and we took a bunch of trash out to the dumpster which had...</summary>
<author>
<name>FusionGyro</name>

<email>fusion@storytotell.org</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.clanspum.net/~fusion/blog/">
<![CDATA[<p>Alex and I did some cleaning today around the house. I attacked the cat bathroom and now it&#8217;s a lot less skanky, the bathtub drains, I mopped, and we took a bunch of trash out to the dumpster which had been gathering on our rather pointless balcony-type thing. We bought new garbage cans to forestall bug invasions on Thursday and today we implemented them.</p>

<p>I wrote a program for randomizing our Netflix queue, and then a program to circumvent the security a friend set up for his website (I guess that makes me an asshole). Then I tidied up the blog a bit; fixed a <span class="caps">CSS </span>error, added a sidebar section for what&#8217;s in my Netflix queue and a section for the weather (yeah, great). I was going to go get a few more plugins for doing things like colorizing source code that I type up in here; not sure what the ramifications will be for LJ people but I haven&#8217;t gotten around to it yet. Unfortunately, I think the two new sidebars are going to be static for whenever I last posted, but they&#8217;re not very important anyway, so fuck it.</p>]]>

</content>
</entry>
<entry>
<title>Ruby Advocacy</title>
<link rel="alternate" type="text/html" href="http://www.clanspum.net/~fusion/blog/archives/2005/03/ruby_advocacy.html" />
<modified>2005-03-19T06:18:54Z</modified>
<issued>2005-03-19T06:10:41Z</issued>
<id>tag:www.clanspum.net,2005:/~fusion/blog/1.135</id>
<created>2005-03-19T06:10:41Z</created>
<summary type="text/plain">This is a conversation between Justin Dressel and myself, about Ruby and Python. I thought it had some value, so here it is. in particular, list comprehensions work well with the functional techniques like anonymous functions mapped across a list...</summary>
<author>
<name>FusionGyro</name>

<email>fusion@storytotell.org</email>
</author>
<dc:subject>Languages</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.clanspum.net/~fusion/blog/">
<![CDATA[<p>This is a conversation between Justin Dressel and myself, about Ruby and Python. I thought it had some value, so here it is.</p>

<p><i>in particular, list comprehensions work well with the functional techniques like anonymous functions mapped across a list - I don&#8217;t see Ruby supporting anything like that offhand.</i></p>

<p>Far from correct! Ruby supports a block-passing style inherited from Smalltalk, so it&#8217;s common to work with lots of different data structures by passing effectively blocks. For example:</p>

<blockquote>

<pre><code>
[1, 2, 3, 4].collect { |x| x * x }
=&gt; [1, 4, 9, 16]

(1..10).select { |x| x % 3 == 0 }
=&gt; [3, 6, 9]
</code></pre>

</blockquote>

<p>The bummer is that you can&#8217;t do the <code>[f(x) for x in l if cond(x)]</code> in a single block. But it can still be done:</p>

<blockquote>

<pre><code>
((1..10).select { |x| x % 3 == 0}).collect {|x| x * x }
=&gt; [9, 36, 81]
</code></pre>

</blockquote>

<p>The advantage of the block-passing style is that generators are a lot more built-in to the language. For example, these are equivalent:</p>

<blockquote>

<pre><code>
1.upto(100000).each {|x| puts x}

for i in 1..100000
  puts i
end
</code></pre>

</blockquote>

<p>And in neither of those cases is an array instantiated with all members of the range (which is what a <code>X..Y</code> is, and that is an object, and you can add methods to it).</p>

<p><i>Also what is the difference between multiple inheritance and Ruby&#8217;s &#8216;mixins&#8217;?</i></p>

<p>It&#8217;s really an academic difference. The class heirarchy answers the &#8220;is-a&#8221; question. You also can only mix in a module, not a full class, but it&#8217;s kind of moot because a module can have all the benefits of a class, it just can&#8217;t be instantiated. You can design a module to be included with a class though, and in so doing create new instance variables and rename other methods and so forth, just like you normally can, so that difference is pretty minor too&#8212;you just have to be accustomed to the idea that the module doesn&#8217;t get instantiated.</p>

<p>In practice, it rarely turns out that you have a class that wants to be two or more things, partly because in Ruby it&#8217;s so easy to decorate a class with these mixins, and partly because Ruby&#8217;s built-in mixins take care of a lot of the things you would want to handle on your own. For example, if you implement the comparsion operator, &lt;=&gt;, and the generic iteration method, each, then you can mix in Enumerable and get all these methods &#8220;for free&#8221;:</p>

<blockquote>
<code>collect</code> &#8212; return a list containing everything you returned in each, with a block applied to it (or the item, if no block is supplied)<br />
<code>detect</code> &#8212; return the first item that satisfies the supplied block<br />
<code>each_with_index</code> &#8212; apply the block to each item along with the sequence number of its occurance<br />
<code>entries</code> &#8212; return an array of everything contained in your object<br />
<code>find_all</code> &#8212; return an array containing everything in your object that the applied block returns true for<br />
<code>grep</code> &#8212; apply a regex to everything within and return what is detected<br />
<code>include?</code> &#8212; return true if the supplied object exists within your object<br />
<code>map</code> &#8212; just like <code>collect</code><br />
<code>max</code> &#8212; return the &#8220;largest&#8221; item, as defined by the <code>&lt;=&gt;</code> method or an optional block taking two items as arguments<br />
<code>member?</code> &#8212; synonym for <code>include?</code><br />
<code>min</code> &#8212; like <code>max</code>, but smallest<br />
<code>reject</code> &#8212; like <code>find_all</code>, but for which the block returns false<br />
<code>select</code> &#8212; synonym for <code>find_all</code><br />
<code>sort</code> &#8212; return an array containing the sorted stuff within, according to <code>&lt;=&gt;</code> or a supplied block<br />
<code>to_a</code> &#8212; return an array representing the contents<br />
</blockquote>

<p>And this is widely used in the standard library. Lots of things will also implement more than one <code>each</code> method. Using the object-specific class capability, you could change the behavior of just one instance, by carefully renaming those methods.</p>

<p><i>Also what about generators, a feature I love in Python?</i></p>

<p>The idea is so ingrained in Ruby, it doesn&#8217;t have a name. Things take blocks. It&#8217;s very normal. The syntax is actually rather nice, and because it isn&#8217;t tied to the for-loop concept, it is used in other places as well. For example, the file-open method will optionally take a block and pass the file object to it. This way, it takes care of closing it when the block is done. Database connections also can work the same way. This is similar to <code>unwind-protect</code> in Lisp.</p>

<p>There is a syntax other than what I&#8217;ve shown you, which is what I recommend for blocks longer than one line:</p>

<blockquote>

<pre><code>
1..100000.each {|i| puts i }

1..100000.each do |i|
  puts i
end
</code></pre>

</blockquote>

<p>And of course, there is a Kernel method which you can use to create a block if you just want to have one: <code>lambda { |parm1, parm2, ...| ... }</code>  This will give you a Proc object, which can be passed around or invoked by calling the <code>Proc#call</code> method. The distinction is necessary because Ruby supports the principle of uniform access: if a method takes no arguments, it needs no parentheses. This also has a few important results: your code will look cleaner, always, and you cannot access a member variable from outside the class.</p>

<p>The second thing sounds like a bummer, but there is this syntax:</p>

<blockquote>

<pre><code>
class MyFoo
  attr_accessor :myVar, :myOtherVar

  def initialize
    @myVar = 10
  end
end
</code></pre>

</blockquote>

<p>The <code>attr_accessor</code> thing creates two methods for you: <code>MyFoo#myVar</code> and <code>MyFoo#myVar=</code>. The <tt>:</tt> syntax means, this symbol, and it is used pretty frequently. Anyway, back to those methods, the first one is called whenever you call <code>MyFoo#myVar</code>, and the second is called whenever you assign to myVar on the class (<code>m.myVar = 23</code> is fine, the = just has to be bumped up there for the definition).</p>

<p>This is good, and Python is getting this capability now with the property() function. But there is another reason I bring it up: <code>attr_accessor</code> is <em>not</em> syntax. <code>attr_accessor</code> is a function on the Class class. You can add your own, for creating useful methods automatically or in general changing the behavior of the language from within the language. The Pickaxe 2 shows a sample Class method <code>once</code> which enables you to mark some methods as having to be called only once, thereafter reading out of a cache. It looks the same way:</p>

<blockquote>

<pre><code>
class MyClass
  once :myMethod

  def myMethod
    ...
  end
end
</code></pre>

</blockquote>

<p>Python certainly doesn&#8217;t support many of the functional techniques (i.e. pattern matching), but it does have a basic suite of functions</p>

<p>I&#8217;m not convinced pattern matching is a functional technique, because it&#8217;s absent from Lisp and Scheme, and present in Prolog which is technically a logic language.</p>

<p>I don&#8217;t miss it much, since as Mercury points out, you can always use &#8220;or&#8221; instead, but there are times when it just looks cleaner. And I know it speeds things up in Prolog when you have a bodiless head (a fact) as part of your predicate.</p>

<p>Using Ruby will point out things that piss you off in Python. You&#8217;ll grow to hate <code>&quot;&quot;.join(...)</code>.  You&#8217;ll grow to hate all those builtin functions. To get a list of methods on a Ruby object, you call &#8220;methods.&#8221; You get back a list, you can call <code>sort</code>:</p>

<blockquote>

<pre><code>
238.methods.sort
=&gt; [&quot;%&quot;, &quot;&amp;&quot;, &quot;*&quot;, &quot;**&quot;, &quot;+&quot;, &quot;+@&quot;, &quot;-&quot;, &quot;-@&quot;, &quot;/&quot;, 
    &quot;&lt;&quot;, &quot;&lt;&lt;&quot;, &quot;&lt;=&quot;, &quot;&lt;=&gt;&quot;, &quot;==&quot;, &quot;===&quot;, 
    &quot;=~&quot;, &quot;&gt;&quot;, &quot;&gt;=&quot;, &quot;&gt;&gt;&quot;, &quot;[]&quot;, &quot;^&quot;, &quot;__id__&quot;, 
    &quot;__send__&quot;, &quot;abs&quot;, &quot;between?&quot;, &quot;ceil&quot;, &quot;chr&quot;, 
    &quot;class&quot;, &quot;clone&quot;, &quot;coerce&quot;, &quot;display&quot;, 
    &quot;divmod&quot;, &quot;downto&quot;, &quot;dup&quot;, &quot;eql?&quot;, &quot;equal?&quot;, 
    &quot;extend&quot;, &quot;floor&quot;, &quot;freeze&quot;, &quot;frozen?&quot;, 
    &quot;hash&quot;, &quot;id&quot;, &quot;id2name&quot;, &quot;inspect&quot;, 
    &quot;instance_eval&quot;, &quot;instance_of?&quot;, 
    &quot;instance_variables&quot;, &quot;integer?&quot;, &quot;is_a?&quot;, 
    &quot;kind_of?&quot;, &quot;method&quot;, &quot;methods&quot;, &quot;modulo&quot;, 
    &quot;next&quot;, &quot;nil?&quot;, &quot;nonzero?&quot;, &quot;prec&quot;, &quot;prec_f&quot;, 
    &quot;prec_i&quot;, &quot;private_methods&quot;, 
    &quot;protected_methods&quot;, &quot;public_methods&quot;, 
    &quot;remainder&quot;, &quot;respond_to?&quot;, &quot;round&quot;, &quot;send&quot;, 
    &quot;singleton_methods&quot;, &quot;size&quot;, &quot;step&quot;, &quot;succ&quot;, 
    &quot;taint&quot;, &quot;tainted?&quot;, &quot;times&quot;, &quot;to_a&quot;, &quot;to_f&quot;, 
    &quot;to_i&quot;, &quot;to_int&quot;, &quot;to_s&quot;, &quot;truncate&quot;, &quot;type&quot;, 
    &quot;untaint&quot;, &quot;upto&quot;, &quot;zero?&quot;, &quot;|&quot;, &quot;~&quot;]
</code></pre>

</blockquote>

<p>You&#8217;ll grow to hate the fact that Python&#8217;s sort is in-place (Ruby provides <code>Array#sort!</code> if you really have to). You&#8217;ll grow to appreciate that Ruby allows &#8220;?&#8221; and &#8220;!&#8221; on the end of methods.</p>

<p>It&#8217;s just a really good language. Too bad about the <code>end end end</code> but that&#8217;s really the only blight.</p>]]>

</content>
</entry>

</feed>
