<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Lab Matrix</title>
	<atom:link href="http://lmws.net/feed" rel="self" type="application/rss+xml" />
	<link>http://lmws.net</link>
	<description></description>
	<lastBuildDate>Thu, 09 Feb 2012 22:18:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Making directory along with missing parents in Node.js</title>
		<link>http://lmws.net/making-directory-along-with-missing-parents-in-node-js</link>
		<comments>http://lmws.net/making-directory-along-with-missing-parents-in-node-js#comments</comments>
		<pubDate>Thu, 09 Feb 2012 22:18:14 +0000</pubDate>
		<dc:creator>Raymond</dc:creator>
				<category><![CDATA[Big Ball of Mud]]></category>

		<guid isPermaLink="false">http://lmws.net/?p=23</guid>
		<description><![CDATA[Note: By the time this post is written, the Node.js is on version 0.6.10. Therefore anything in this post may or may not valid in the newer versions. Node.js file system API provide a bunch of functions to read/write files. &#8230; <a href="http://lmws.net/making-directory-along-with-missing-parents-in-node-js">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Note: By the time this post is written, the Node.js is on version 0.6.10. Therefore anything in this post may or may not valid in the newer versions.</p>
<p>Node.js file system API provide a bunch of functions to read/write files. One of them is the fs.mkdir(path, [mode], [callback]). However, this function itself does not provide any option for you to create a directory if the parents folder is missing, it&#8217;ll trigger an exception if you trying to do so. In another word, you can&#8217;t do something like &#8220;mkdir -p DIR&#8221;.</p>
<p>However, the callback function is an extreamly useful feature to extend this function. In case the fs.mkdir failed, it passes an error object into the callback function. Like this:</p>
<pre>
var fs = require('fs');
fs.mkdir('parent/child', function(error) {
  console.log(error);
});
</pre>
<p>You&#8217;ll see it print an object looks like:</p>
<p>{ [Error: ENOENT, no such file or directory 'parent/child'] errno: 34, code: &#8216;ENOENT&#8217;, path: &#8216;parent/child&#8217; }</p>
<p>Good, now we know in the case of missing directory, we&#8217;ll get error code 34. What if we catch the error and try to recursively create it&#8217;s parent, then create the directory again? Everybody deserve a second chance, right?</p>
<pre>
var fs = require('fs');
var path = require('path');

fs.mkdirParent = function(dirPath, mode, callback) {
  //Call the standard fs.mkdir
  fs.mkdir(dirPath, mode, function(error) {
    //When it fail in this way, do the custom steps
    if (error &#038;&#038; error.errno === 34) {
      //Create all the parents recursively
      fs.mkdirParent(path.dirname(dirPath), mode, callback);
      //And then the directory
      fs.mkdirParent(dirPath, mode, callback);
    }
    //Manually run the callback since we used our own callback to do all these
    callback &#038;&#038; callback(error);
  });
};
</pre>
<p>Now you can run it like this;</p>
<pre>
fs.mkdirParent('a/b/c/d/e');
</pre>
]]></content:encoded>
			<wfw:commentRss>http://lmws.net/making-directory-along-with-missing-parents-in-node-js/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java is like English</title>
		<link>http://lmws.net/java-is-like-english</link>
		<comments>http://lmws.net/java-is-like-english#comments</comments>
		<pubDate>Tue, 06 Sep 2011 01:44:55 +0000</pubDate>
		<dc:creator>Raymond</dc:creator>
				<category><![CDATA[Big Ball of Mud]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://lmws.net/?p=20</guid>
		<description><![CDATA[Java is like English, even many people don&#8217;t use it, they might have learned some of it while they were in school. Java is like English, people built not only cultures but even industries upon it, then no one can &#8230; <a href="http://lmws.net/java-is-like-english">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<ul>
<li>Java is like English, even many people don&#8217;t use it, they might have learned some of it while they were in school.</li>
<li>Java is like English, people built not only cultures but even industries upon it, then no one can remove it no matter how bad it become.</li>
<li>Java is like English, the mainstreams sometimes surprised by the how do minorities use it.</li>
<li>Java is like English, you spend years to learn and think you knows a lot, but when you look at the percentage you know, it&#8217;s very small.</li>
<li>Java is like English, many ideas in it being wildly learned and become popular, but they are not originally from it.</li>
<li>Java is like English, you randomly pick someone on this planet and there is a high chance you get one knows about it.</li>
<li>Java is like English, it trying to adapt every awesome idea from others by getting bigger and bigger that no one really know all of it.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://lmws.net/java-is-like-english/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Our knowledge is like a circle</title>
		<link>http://lmws.net/our-knowledge-is-like-a-circle</link>
		<comments>http://lmws.net/our-knowledge-is-like-a-circle#comments</comments>
		<pubDate>Fri, 12 Aug 2011 21:44:03 +0000</pubDate>
		<dc:creator>Raymond</dc:creator>
				<category><![CDATA[Big Ball of Mud]]></category>

		<guid isPermaLink="false">http://lmws.net/?p=17</guid>
		<description><![CDATA[Our knowledge is like a circle. Inside the circle is the thing you know about, outside the circle is the thing you don&#8217;t know about. A the edge of the circle is the thing you know you don&#8217;t know about. &#8230; <a href="http://lmws.net/our-knowledge-is-like-a-circle">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Our knowledge is like a circle. Inside the circle is the thing you know about, outside the circle is the thing you don&#8217;t know about. A the edge of the circle is the thing you know you don&#8217;t know about.</p>
<p>The longer this circumference is, the more knowledge you have, the more you realize you don&#8217;t know about.</p>
<p>A person have a large circle knows a lot he/she don&#8217;t know, so one have to be humble. A person have a small circle knows a little, so one think the whole world is in one&#8217;s hands.</p>
]]></content:encoded>
			<wfw:commentRss>http://lmws.net/our-knowledge-is-like-a-circle/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Size is a fact, time is the result</title>
		<link>http://lmws.net/size-is-a-fact-time-is-the-result</link>
		<comments>http://lmws.net/size-is-a-fact-time-is-the-result#comments</comments>
		<pubDate>Sat, 02 Jul 2011 04:38:47 +0000</pubDate>
		<dc:creator>Raymond</dc:creator>
				<category><![CDATA[Big Ball of Mud]]></category>
		<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://lmws.net/?p=13</guid>
		<description><![CDATA[There has been FUD debates about story points estimation in Agile process cannot provide clear duration(time) information of a project. From what I&#8217;ve heard so far(which is limited amount of arguments, of course), I figure the people argue story points &#8230; <a href="http://lmws.net/size-is-a-fact-time-is-the-result">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>There has been FUD debates about story points estimation in Agile process cannot provide clear duration(time) information of a project. From what I&#8217;ve heard so far(which is limited amount of arguments, of course), I figure the people argue story points estimation doesn&#8217;t work or can&#8217;t provide duration information they needed are always put this practice into a non-Agile philosophy context. To me, this is the equivalent of I argue English grammar is ridiculous by putting it into Japanese language way of thinking and standard.</p>
<p>There are couples of things people either intentionally or mistakenly overlooked when they see story points estimation. Or maybe, they just misunderstood the the idea of story points estimation. I&#8217;ll try to explain the idea of story points from different perspectives based on my limited experience in Agile.</p>
<h2>1. Story points is about the EFFORT of your works</h2>
<p>Imagine you are working on a project moving goods from San Francisco to New York city. And you them an estimation about how long the project gonna take. What if I tell you by using different means of transportations, the duration of this project will turns out different? Yeah, you might say that&#8217;s bullshit, I know that. Right, and I think that&#8217;s also exactly what happen in software development process. <strong>The duration of a project you communicate with people should based on a fact that which way you are using to do it.</strong></p>
<p>It&#8217;s been over half century since software industry commercialized. And there is nothing wrong or surprise that people&#8217;s mind are set into a concept of software development is all about time, time is money. On the other hand however though, you can ignore but cannot eliminate a fact: <strong>The amount of resources and means of production you use is deeply impact the duration of your projects.</strong></p>
<p>The idea of using story points instead of days and hours to estimate a project is that <strong>story points are talking about the effort of the work, it&#8217;s a pure fact</strong>. And sometimes story points have something to do with complexity, because the complexity of a work affect the effort you need to put in, although story point is not exactly complexity itself. The story points in the previous example is the distance from San Francisco to New York city, and this fact does not change along with the means of transportation you use. BTW, You might argue the distances of using air or ground is absolutely different, but I&#8217;ll argue we all using air, there are still different airplanes and airports, now the game is fair. <strong>By preserving the original, raw, pure fact(in this case, distance) into your estimation, you can always CALCULATE the duration of your project with the distance divided by the velocity of your transportation.</strong></p>
<h2>2. Story points are RELATIVE numbers</h2>
<p>And so there is confusion about what is 1, 2, 3&#8230; story points actually means, how do they match back to the effort of the work. In my opinion, story points do not match to line of code, hours of work, nor complexity(well, OK, somehow related to complexity, but not exactly nor directly). <strong>Story points are relative to each others.</strong> To understand what 3 points means, a whole team must work together to come with a agreement about what 1 points means. Then 3 points story means it takes 3 times more effort to finish comparing to a 1 point story.</p>
<p>And each team should have their on sense of how big a work can means 1 point. Which makes the concept of story points is not universal consistent, it&#8217;s per-team and per-project. But that will not mess up the final duration calculation, because for each team on each project. You have your velocity information, and of course, this velocity is also per-team and per-project.</p>
<h2>3. Story points cannot and SHOULD NOT carry clear duration information by themselves. That is not the intention of story points. However, when calculate project duration, they are REQUIRED</h2>
<p>Using the example before, when you talk about the distance from San Francisco to New York city, you don&#8217;t explicitly saying any time, even though this distance might IMPLY a little information about timing. Such as if you deliver a from San Francisco to Los Angeles comparing to New York city with the same way, you can sort of figure out deliver to Los Angeles probably will take less time. But this timing information is fuzzy and talking about this timing issue, you must assume the transportation being used.</p>
<p>As I mentioned above, in order to figure out the duration estimation of a project, you must know the velocity, which is how many story points your team can consume in a period of time. Then use the total amount of story points out there divided by the your team&#8217;s velocity, then you get the estimated duration.</p>
<p>And the reason why I think story points should not carry timing information is because <strong>the the productivity of your team is bouncing ups and downs</strong>. People may out sick or vacation, they may leave the team and new people may join the team. Same as your truck moving goods from San Francisco to New York city, it&#8217;s not always at the same speed. To let your client know the most updated delivery time estimation, you MUST recalculate it frequently by using the rest of the distance you haven&#8217;t finished(the story points you left), divided by your current velocity. As what the title of this article says, <strong>in Agile process, the final estimated time is just a CALCULATED RESULT from the total amount of work and the velocity.</strong> For each little piece of work, they should be estimated using the concept of how big it is, which is story point.</p>
<p>I won&#8217;t getting into the detail of team&#8217;s velocity in this article, however, there are plenty of articles and books out there your can reference.</p>
<p>You know what? Before you thumbs down this formula, I believe it&#8217;s being used to calculate the duration in classical physic science, and most importantly, in WATER FALL. But instead of story points, they have a different name: man-month.</p>
<h2>4. Story points cannot and should not eliminate individual diversity in estimation, but encourage collaboration</h2>
<p>The way to come up with these points for user stories is to have sizing meeting. Each sizing meeting can have various number of people participate in, depends on the amount of the stories need to be sized, people&#8217;s expertise, and the number of people in the team. And in the meeting, people vote on each user story, of course diversity happen, then they discuss, and finally come up with an agreement, story points logged. I am not gonna describe how to run sizing meeting exactly, there are plenty of resources you may reference.</p>
<p>The idea of sizing meeting is the team work together to decide how large each story is, and put the story points into each story. Some people may argue that because each team member has different level of proficiency on different skills, therefore in the sizing meeting it&#8217;s hard to coming up with agreement about what the size is for each of the stories. Well, I think the cause is true, but the effect is a straw-man. Because if you estimation work in other non-Agile way, if you include more than 1 person in an estimation, diversity happen right away.</p>
<p>First we must look at the philosophy of Agile, is to encourage collaboration, which is the whole team work together as an single entity. It is true that each person is different, and they should functioning differently in a team depends on their expertises. <strong>However, these diversities should not drive your team work against each other, the diversities should drive your team WORK TOGETHER.</strong> Because no one can do everything by himself/herself.</p>
<p>So back to the practice, in a sizing meeting. Team members vote on the sizes should help each other figure out the truth. Let&#8217;s say the one voted a smaller number can say: Let me tell you a shortcut to do this you may not noticed. And the other one voted a larger number can reply: You maybe right, but let me tell you a complexity you don&#8217;t know about. And people should keep in mind giving up their own votes of on a couple of stories to agree with other people is not a individual failure, it&#8217;s the success of the team collaboration.</p>
<p>But not matter how hard we try to do things right, bad things happen sometimes. In the case people&#8217;s votes are too diverted and they are not willing to give up their votes to agree to each other, the lower bidder get the job. Same as construction. Because from the whole team standpoint, it&#8217;s more economy to have the people confidently insist the work is smaller to do it, because they might know the shortcut, have the expertise and know what are they talking about. A good example is if there is a graphical work the database architect insist is 3 points and the graphical designer insist it&#8217;s 1 point, then let the graphical designer take that 1 point and do it is making more sense than fighting forever. And BTW, if this sizing meeting is all about end users UI, you may consider don&#8217;t invite database architect, you don&#8217;t need to wasted his time.</p>
<h2>Further reading</h2>
<p>Mike Cohn’s blog posts about story point <a href="http://blog.mountaingoatsoftware.com/tag/story-points" target="_blank">http://blog.mountaingoatsoftware.com/tag/story-points</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lmws.net/size-is-a-fact-time-is-the-result/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software process is like condom</title>
		<link>http://lmws.net/software-process-is-like-condom</link>
		<comments>http://lmws.net/software-process-is-like-condom#comments</comments>
		<pubDate>Fri, 01 Jul 2011 02:38:29 +0000</pubDate>
		<dc:creator>Raymond</dc:creator>
				<category><![CDATA[Big Ball of Mud]]></category>
		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://lmws.net/?p=12</guid>
		<description><![CDATA[Software process is like condom, it&#8217;s not enjoyable but it protects you in large scale activity. Software process is like condom, no matter how you hate it, you can&#8217;t argue it actually protect you. Software process is like condom, there &#8230; <a href="http://lmws.net/software-process-is-like-condom">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<ul>
<li>Software process is like condom, it&#8217;s not enjoyable but it protects you in large scale activity.</li>
<li>Software process is like condom, no matter how you hate it, you can&#8217;t argue it actually protect you.</li>
<li>Software process is like condom, there are a lot of different flavors, but the fundamental purpose is the same.</li>
<li>Software process is like condom, when you regret you didn&#8217;t use it at first place, it&#8217;s too late.</li>
<li>Software process is like condom,use double will not double your protection, but it&#8217;ll decrease your enjoyment, in double.</li>
<li>Software process is like condom, using in a tiny scope of activity is a waste of resource.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://lmws.net/software-process-is-like-condom/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript is like socialism</title>
		<link>http://lmws.net/javascript-is-like-socialism</link>
		<comments>http://lmws.net/javascript-is-like-socialism#comments</comments>
		<pubDate>Fri, 06 May 2011 01:54:04 +0000</pubDate>
		<dc:creator>Raymond</dc:creator>
				<category><![CDATA[Big Ball of Mud]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://lmws.net/?p=11</guid>
		<description><![CDATA[JavaScript is like socialism, there are too many bad examples out there make this awesome idea unfairly blamed. JavaScript is like socialism, it has a lot of good things in it but they are hard to get. Whoever don&#8217;t get &#8230; <a href="http://lmws.net/javascript-is-like-socialism">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<ul>
<li>JavaScript is like socialism, there are too many bad examples out there make this awesome idea unfairly blamed.</li>
<li>JavaScript is like socialism, it has a lot of good things in it but they are hard to get. Whoever don&#8217;t get it blame it.</li>
<li>JavaScript is like socialism, the theory is always looks better those practices.</li>
<li>JavaScript is like socialism, if you get it right, it will gives you more benefits than you can imagine.</li>
<li>JavaScript is like socialism, it&#8217;s dark side is so easy to be abused to create evil.</li>
<li>JavaScript is like socialism, most of the people swear on it out loud are the people don&#8217;t really know about it.</li>
<li>JavaScript is like socialism, it&#8217;s hard to prove it will works well in large scale because we don&#8217;t have that productivity yet.</li>
<li>JavaScript is like socialism, the older generation think it&#8217;s awful while the younger think it&#8217;s cool.</li>
<li>JavaScript is like socialism, if you believe in it&#8217;s philosophy, you will think our current system sucks.</li>
<li>JavaScript is like socialism, it&#8217;s not a proud thing to admit you are a practitioner in a traditional system.</li>
<li>JavaScript is like socialism, whoever exercise it correctly are the hell smart geniuses.</li>
<li>JavaScript is like socialism, you can argue it is a religious, however,  there aren&#8217;t that much preachers, but hardcore practitioners.</li>
<li>JavaScript is like socialism, you can see almost everywhere use a little of it, but people don&#8217;t take the whole thing seriously.</li>
<li>JavaScript is like socialism, you may use it&#8217;s features to fix you system or rethink the fundamental of your system in it&#8217;s way.</li>
<li>JavaScript is like socialism, people won&#8217;t believe such an idea from so many years ago will works in the future.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://lmws.net/javascript-is-like-socialism/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The dark side of the software industry</title>
		<link>http://lmws.net/the-dark-side-of-the-software-industry</link>
		<comments>http://lmws.net/the-dark-side-of-the-software-industry#comments</comments>
		<pubDate>Fri, 29 Apr 2011 04:34:16 +0000</pubDate>
		<dc:creator>Raymond</dc:creator>
				<category><![CDATA[Big Ball of Mud]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://lmws.net/?p=10</guid>
		<description><![CDATA[Use complexities against complexities, add layers above layers Tools addict and don&#8217;t pay attention to enhance one&#8217;s skills Have customers to pay for our laziness Keep covering up failures and refuse to learn from them Neither learn from our own &#8230; <a href="http://lmws.net/the-dark-side-of-the-software-industry">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<ul>
<li>Use complexities against complexities, add layers above layers</li>
<li>Tools addict and don&#8217;t pay attention to enhance one&#8217;s skills</li>
<li>Have customers to pay for our laziness</li>
<li>Keep covering up failures and refuse to learn from them</li>
<li>Neither learn from our own history, nor someone else intellectual outputs</li>
<li>A bunch of people know nothing about software engineering claim themselves as software engineers</li>
</ul>
<p>To be continues&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://lmws.net/the-dark-side-of-the-software-industry/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>describe vs. context in rspec</title>
		<link>http://lmws.net/describe-vs-context-in-rspec</link>
		<comments>http://lmws.net/describe-vs-context-in-rspec#comments</comments>
		<pubDate>Mon, 25 Apr 2011 00:46:57 +0000</pubDate>
		<dc:creator>Raymond</dc:creator>
				<category><![CDATA[Big Ball of Mud]]></category>
		<category><![CDATA[RSpec]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://lmws.net/?p=6</guid>
		<description><![CDATA[In Rspec world, you often see people using both &#8220;describe&#8221; blocks and &#8220;context&#8221; blocks together, like this describe "launch the rocket" do context "all ready" do end context "not ready" do end end So what&#8217;s the difference between &#8220;describe&#8221; and &#8230; <a href="http://lmws.net/describe-vs-context-in-rspec">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In Rspec world, you often see people using both &#8220;<strong>describe</strong>&#8221; blocks and &#8220;<strong>context</strong>&#8221; blocks together, like this</p>
<pre>
describe "launch the rocket" do
  context "all ready" do
  end

  context "not ready" do
  end
end
</pre>
<p>So what&#8217;s the difference between &#8220;describe&#8221; and &#8220;context&#8221; really?</p>
<p>According to the <a href="https://github.com/rspec/rspec-core/blob/master/lib/rspec/core/example_group.rb">rspec source code</a>, &#8220;context&#8221; is just a alias method of &#8220;describe&#8221;, meaning that <strong>there is no functional difference</strong> between these two methods. However, <strong>there is a contextual difference</strong> that&#8217;ll help to make your tests more understandable by using both of them.</p>
<p>The purpose of &#8220;describe&#8221; is to wrap a set of <strong>tests against one functionality</strong> while &#8220;context&#8221; is to wrap a set of tests against one functionality <strong>under the same state</strong>. Here&#8217;s an example</p>
<pre>
describe "launch the rocket" do
  before(:each) do
    #prepare a rocket for all of the tests
    @rocket = Rocket.new
  end

  context "all ready" do
    before(:each) do
      #under the state of ready
      @rocket.ready = true
    end

    it "launch the rocket" do
      @rocket.launch().should be_true
    end
  end

  context "not ready" do
    before(:each) do
      #under the state of NOT ready
      @rocket.ready = false
    end

    it "does not launch the rocket" do
      @rocket.launch().should be_false
    end
  end
end
</pre>
<p>This code is more readable than wrapping all the stuffs with &#8220;describe&#8221; blocks. Because when you read the tests under &#8220;context&#8221;, you know they are all testing the same thing the &#8220;describe&#8221; talk about. And you know a &#8220;context&#8221; is to setup the state of your object, in this case @rocket.ready which will effects the behavior of @rocket.launch() that gives you a conclusion, right away, without scanning the code back and forth.</p>
]]></content:encoded>
			<wfw:commentRss>http://lmws.net/describe-vs-context-in-rspec/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Injet method into an Ruby object in run time</title>
		<link>http://lmws.net/injet-method-into-an-ruby-object-in-run-time</link>
		<comments>http://lmws.net/injet-method-into-an-ruby-object-in-run-time#comments</comments>
		<pubDate>Sat, 05 Mar 2011 19:03:55 +0000</pubDate>
		<dc:creator>Raymond</dc:creator>
				<category><![CDATA[Big Ball of Mud]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://lmws.net/?p=4</guid>
		<description><![CDATA[class Person end person = Person.new def person.talk puts "Hi" end person.talk]]></description>
			<content:encoded><![CDATA[<pre>
class Person
end

person = Person.new

def person.talk
  puts "Hi"
end

person.talk
</pre>
]]></content:encoded>
			<wfw:commentRss>http://lmws.net/injet-method-into-an-ruby-object-in-run-time/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello world!</title>
		<link>http://lmws.net/hello-world</link>
		<comments>http://lmws.net/hello-world#comments</comments>
		<pubDate>Thu, 23 Dec 2010 13:00:55 +0000</pubDate>
		<dc:creator>Raymond</dc:creator>
				<category><![CDATA[Big Ball of Mud]]></category>
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://lmws.net/?p=1</guid>
		<description><![CDATA[After a few years of back and forth, I deiced settle on WordPress to organize my personal website.]]></description>
			<content:encoded><![CDATA[<p>After a few years of back and forth, I deiced settle on WordPress to organize my personal website.</p>
]]></content:encoded>
			<wfw:commentRss>http://lmws.net/hello-world/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

