<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments for The Limber Lambda</title>
	<atom:link href="http://thelimberlambda.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://thelimberlambda.com</link>
	<description>Eric Smith's technical musings</description>
	<lastBuildDate>Sun, 15 Aug 2010 22:50:59 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>Comment on Desperately Seeking Senior by Florencio</title>
		<link>http://thelimberlambda.com/2010/02/27/desperately-seeking-senior/#comment-148</link>
		<dc:creator>Florencio</dc:creator>
		<pubDate>Sun, 15 Aug 2010 22:50:59 +0000</pubDate>
		<guid isPermaLink="false">http://skepticabin.wordpress.com/2010/02/27/desperately-seeking-senior/#comment-148</guid>
		<description>I took a shot at &quot;University&quot;. My solution is, each &quot;Person&quot; has a list of courses they are attending along with their role in that course. They can have multiple roles in a single attended course. 

It was an interesting challenge.

public class Course
{
	public int room;
	public string name;
	public Course(int room, string name)
	{
		this.room = room;
		this.name = name;
	}
}
public interface Role
{
	string Name { get; }
}
public class StudentRole : Role
{
	public string Name {
		get { return &quot;Student&quot;; }
	}
}
public class LecturerRole : Role
{
	public string Name {
		get { return &quot;Lecturer&quot;; }
	}
}
public class JanitorRole : Role
{
	public string Name {
		get { return &quot;Janitor&quot;; }
	}
}


public class CourseAttending
{
	Course course;
	Role[] roles;
	public CourseAttending(Course course, Role[] roles)
	{
		this.course = course;
		this.roles = roles;
	}
}
public class Person
{
	public string name;
	public CourseAttending[] coursesAttending;
	public Person(string name)
	{
		this.name = name;
	}
}


public void Main()
{
	Person person = new Person(&quot;John&quot;);
	Course course = new Course(101, &quot;WWW&quot;);
	person.coursesAttending = new CourseAttending[] { new CourseAttending(course, new Role[] {
		new StudentRole(),
		new LecturerRole()
	}) };
}</description>
		<content:encoded><![CDATA[<p>I took a shot at &#8220;University&#8221;. My solution is, each &#8220;Person&#8221; has a list of courses they are attending along with their role in that course. They can have multiple roles in a single attended course. </p>
<p>It was an interesting challenge.</p>
<p>public class Course<br />
{<br />
	public int room;<br />
	public string name;<br />
	public Course(int room, string name)<br />
	{<br />
		this.room = room;<br />
		this.name = name;<br />
	}<br />
}<br />
public interface Role<br />
{<br />
	string Name { get; }<br />
}<br />
public class StudentRole : Role<br />
{<br />
	public string Name {<br />
		get { return &#8220;Student&#8221;; }<br />
	}<br />
}<br />
public class LecturerRole : Role<br />
{<br />
	public string Name {<br />
		get { return &#8220;Lecturer&#8221;; }<br />
	}<br />
}<br />
public class JanitorRole : Role<br />
{<br />
	public string Name {<br />
		get { return &#8220;Janitor&#8221;; }<br />
	}<br />
}</p>
<p>public class CourseAttending<br />
{<br />
	Course course;<br />
	Role[] roles;<br />
	public CourseAttending(Course course, Role[] roles)<br />
	{<br />
		this.course = course;<br />
		this.roles = roles;<br />
	}<br />
}<br />
public class Person<br />
{<br />
	public string name;<br />
	public CourseAttending[] coursesAttending;<br />
	public Person(string name)<br />
	{<br />
		this.name = name;<br />
	}<br />
}</p>
<p>public void Main()<br />
{<br />
	Person person = new Person(&#8220;John&#8221;);<br />
	Course course = new Course(101, &#8220;WWW&#8221;);<br />
	person.coursesAttending = new CourseAttending[] { new CourseAttending(course, new Role[] {<br />
		new StudentRole(),<br />
		new LecturerRole()<br />
	}) };<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on One for the hidden gems department by frankclaassens</title>
		<link>http://thelimberlambda.com/2008/07/29/one-for-the-hidden-gems-department/#comment-146</link>
		<dc:creator>frankclaassens</dc:creator>
		<pubDate>Wed, 07 Jul 2010 04:49:25 +0000</pubDate>
		<guid isPermaLink="false">http://skepticabin.wordpress.com/?p=6#comment-146</guid>
		<description>Ahh, was hoping on finding this article :)

Can&#039;t develop without it... Thanks</description>
		<content:encoded><![CDATA[<p>Ahh, was hoping on finding this article :)</p>
<p>Can&#8217;t develop without it&#8230; Thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Senior Developer Assessment Revisited by Tim</title>
		<link>http://thelimberlambda.com/2010/02/20/senior-developer-assessment-revisited/#comment-145</link>
		<dc:creator>Tim</dc:creator>
		<pubDate>Fri, 02 Jul 2010 17:25:53 +0000</pubDate>
		<guid isPermaLink="false">http://skepticabin.wordpress.com/?p=263#comment-145</guid>
		<description>Funny, I was thinking the same thing about the solver problem.  I have a degree in Math, straight out of university I could have coded the solution to that no problem.  Now I would really have to think about it and go through the links provided.

The problem with these tests is that it&#039;s treating the process backwards.  If you want someone who is really good at what they do, no matter what discipline you&#039;re hiring, they have to choose to work for you.  You want it to be as easy as possible for them to find you and get through the interview process while still filtering out the people you don&#039;t want.  Good people do not need a job, they already have one.  The more hoops you make them jump through the less likely they&#039;ll bother to keep going.  This is why tests like &#039;reverse a string&#039; or fizzbuzz are great.  They&#039;re easy to understand, fast to implement, and shouldn&#039;t require any outside resources if you allow the interviewee to use whatever language they want.  Then you give them a complex problem and have them work through some general design and implementation ideas without talking about code to make sure they can manage some high-level design.  Between these 2 types of tests you should be able to filter out the non-programmers while not putting up too many roadblocks to deter someone who needs to choose to work for you.</description>
		<content:encoded><![CDATA[<p>Funny, I was thinking the same thing about the solver problem.  I have a degree in Math, straight out of university I could have coded the solution to that no problem.  Now I would really have to think about it and go through the links provided.</p>
<p>The problem with these tests is that it&#8217;s treating the process backwards.  If you want someone who is really good at what they do, no matter what discipline you&#8217;re hiring, they have to choose to work for you.  You want it to be as easy as possible for them to find you and get through the interview process while still filtering out the people you don&#8217;t want.  Good people do not need a job, they already have one.  The more hoops you make them jump through the less likely they&#8217;ll bother to keep going.  This is why tests like &#8216;reverse a string&#8217; or fizzbuzz are great.  They&#8217;re easy to understand, fast to implement, and shouldn&#8217;t require any outside resources if you allow the interviewee to use whatever language they want.  Then you give them a complex problem and have them work through some general design and implementation ideas without talking about code to make sure they can manage some high-level design.  Between these 2 types of tests you should be able to filter out the non-programmers while not putting up too many roadblocks to deter someone who needs to choose to work for you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Exposing your Applications Guts using IronPython by Andrew</title>
		<link>http://thelimberlambda.com/2010/02/14/exposing-your-applications-guts-using-ironpython/#comment-143</link>
		<dc:creator>Andrew</dc:creator>
		<pubDate>Wed, 16 Jun 2010 03:03:53 +0000</pubDate>
		<guid isPermaLink="false">http://skepticabin.wordpress.com/?p=245#comment-143</guid>
		<description>IoC containers mostly work on type level, but the name bindings has to be done on object/instance level. After all it&#039;s particular variables that you are most interested in monitoring. How do you envisage the IoC integration?

Also if IoC is configuration driven, then you&#039;ll have to cycle your process anyway, to make your configuration changes active. How would you resolve this?

In a scripting language environment where all the objects live in some sort of global container this makes a lot of sense - you don&#039;t even need to have name bindings in such a setup. Unfortunately in .NET this is not the case. And unless you explicitly expose the gut pieces you would be interested to look from the start you are in trouble. There is no good way of saying &quot;give me variable at the state it is now&quot; unless you somehow collected/referenced this variable beforehand for the purpose of exposing it via your backdoor. And then you have all sort of problems with garbage not being collected (weak references, anyone?) memory leaks, and concurrency issues if you modify any values on the fly and locking issues if any synchronization is involved.

Imagine and asp.net application where all the state is quire short-lived (as long as a request is being processed) what then?

Overall it is an interesting idea, but I&#039;d love to hear how the problems above can be addressed to make the idea practical.</description>
		<content:encoded><![CDATA[<p>IoC containers mostly work on type level, but the name bindings has to be done on object/instance level. After all it&#8217;s particular variables that you are most interested in monitoring. How do you envisage the IoC integration?</p>
<p>Also if IoC is configuration driven, then you&#8217;ll have to cycle your process anyway, to make your configuration changes active. How would you resolve this?</p>
<p>In a scripting language environment where all the objects live in some sort of global container this makes a lot of sense &#8211; you don&#8217;t even need to have name bindings in such a setup. Unfortunately in .NET this is not the case. And unless you explicitly expose the gut pieces you would be interested to look from the start you are in trouble. There is no good way of saying &#8220;give me variable at the state it is now&#8221; unless you somehow collected/referenced this variable beforehand for the purpose of exposing it via your backdoor. And then you have all sort of problems with garbage not being collected (weak references, anyone?) memory leaks, and concurrency issues if you modify any values on the fly and locking issues if any synchronization is involved.</p>
<p>Imagine and asp.net application where all the state is quire short-lived (as long as a request is being processed) what then?</p>
<p>Overall it is an interesting idea, but I&#8217;d love to hear how the problems above can be addressed to make the idea practical.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Skill to Learn by Programming pragmatically &#171; Third Shelf</title>
		<link>http://thelimberlambda.com/2010/05/25/the-skill-to-learn/#comment-142</link>
		<dc:creator>Programming pragmatically &#171; Third Shelf</dc:creator>
		<pubDate>Sun, 13 Jun 2010 16:30:20 +0000</pubDate>
		<guid isPermaLink="false">https://skepticabin.wordpress.com/2010/05/25/the-skill-to-learn/#comment-142</guid>
		<description>[...] or fast adapter, being inquisitive and thinking critically. It also means being realistic and being anything-ready. And to be anything -ready one must learn [...]</description>
		<content:encoded><![CDATA[<p>[...] or fast adapter, being inquisitive and thinking critically. It also means being realistic and being anything-ready. And to be anything -ready one must learn [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Senior Developer Assessment Revisited by bwc</title>
		<link>http://thelimberlambda.com/2010/02/20/senior-developer-assessment-revisited/#comment-140</link>
		<dc:creator>bwc</dc:creator>
		<pubDate>Sun, 23 May 2010 17:00:22 +0000</pubDate>
		<guid isPermaLink="false">http://skepticabin.wordpress.com/?p=263#comment-140</guid>
		<description>Actually, I realized the problem is this.  It&#039;s because I don&#039;t know much about the details of Quicksort (although heard of it and it&#039;s fast) and therefore just using the problem explanation and example above, it wasn&#039;t as clear as I want it to be.

I was thinking what happens when you have Aaron on the left of Carol (I mean everything in the example seems so orderly and simple without loopholes).  A better example detail explanation for me at least is the bigger set of array of numbers and not as orderly initial set like the one found in 

http://www.algolist.net/Algorithms/Sorting/Quicksort

It&#039;s the partitioning that I was confuse about.</description>
		<content:encoded><![CDATA[<p>Actually, I realized the problem is this.  It&#8217;s because I don&#8217;t know much about the details of Quicksort (although heard of it and it&#8217;s fast) and therefore just using the problem explanation and example above, it wasn&#8217;t as clear as I want it to be.</p>
<p>I was thinking what happens when you have Aaron on the left of Carol (I mean everything in the example seems so orderly and simple without loopholes).  A better example detail explanation for me at least is the bigger set of array of numbers and not as orderly initial set like the one found in </p>
<p><a href="http://www.algolist.net/Algorithms/Sorting/Quicksort" rel="nofollow">http://www.algolist.net/Algorithms/Sorting/Quicksort</a></p>
<p>It&#8217;s the partitioning that I was confuse about.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Senior Developer Assessment Revisited by bwc</title>
		<link>http://thelimberlambda.com/2010/02/20/senior-developer-assessment-revisited/#comment-139</link>
		<dc:creator>bwc</dc:creator>
		<pubDate>Sun, 23 May 2010 16:26:33 +0000</pubDate>
		<guid isPermaLink="false">http://skepticabin.wordpress.com/?p=263#comment-139</guid>
		<description>I don&#039;t know about you guys. But I found the Solver problem to be easier than this Quick Sort.  Maybe I haven&#039;t code recursion that much or that I don&#039;t have a CS degree. ( I can code simple recursions like fib or string reverse ). Or maybe I&#039;m overthinking this problem..and this is in the comfort of my home!</description>
		<content:encoded><![CDATA[<p>I don&#8217;t know about you guys. But I found the Solver problem to be easier than this Quick Sort.  Maybe I haven&#8217;t code recursion that much or that I don&#8217;t have a CS degree. ( I can code simple recursions like fib or string reverse ). Or maybe I&#8217;m overthinking this problem..and this is in the comfort of my home!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on What is a Senior Developer? by Henning Makholm</title>
		<link>http://thelimberlambda.com/2010/02/09/what-is-a-senior-developer/#comment-137</link>
		<dc:creator>Henning Makholm</dc:creator>
		<pubDate>Wed, 12 May 2010 03:41:57 +0000</pubDate>
		<guid isPermaLink="false">http://skepticabin.wordpress.com/?p=236#comment-137</guid>
		<description>My first instinct would be to simply try for all relevant N whether the sign of the difference reverses between N*0.01-0.005 and (N+1)*0.01-0.005. This was prompted directly by the &quot;rounding not truncating&quot; comment, which tells me that correct rounding is of particular importance for this customer.

I would avoid the standard floating-point based algorithms because they might yield a result whose uncertainty happened to straddle a x.xx5 boundary, which I&#039;d need to correct and/or check for explicitly, complicating things beyond what a quick test of basic programming ability ought to require.

If a linear search were deemed too inefficient, I&#039;d probably escalate to integer bisection to find the right N in N*0.01-0.005.

(No, actually my FIRST first instinct would be
  10 PRINT &quot;2.16&quot;
given that the program takes no input anyway and I already know the correct output).</description>
		<content:encoded><![CDATA[<p>My first instinct would be to simply try for all relevant N whether the sign of the difference reverses between N*0.01-0.005 and (N+1)*0.01-0.005. This was prompted directly by the &#8220;rounding not truncating&#8221; comment, which tells me that correct rounding is of particular importance for this customer.</p>
<p>I would avoid the standard floating-point based algorithms because they might yield a result whose uncertainty happened to straddle a x.xx5 boundary, which I&#8217;d need to correct and/or check for explicitly, complicating things beyond what a quick test of basic programming ability ought to require.</p>
<p>If a linear search were deemed too inefficient, I&#8217;d probably escalate to integer bisection to find the right N in N*0.01-0.005.</p>
<p>(No, actually my FIRST first instinct would be<br />
  10 PRINT &#8220;2.16&#8243;<br />
given that the program takes no input anyway and I already know the correct output).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on What is a Senior Developer? by Anhar</title>
		<link>http://thelimberlambda.com/2010/02/09/what-is-a-senior-developer/#comment-136</link>
		<dc:creator>Anhar</dc:creator>
		<pubDate>Wed, 28 Apr 2010 20:52:53 +0000</pubDate>
		<guid isPermaLink="false">http://skepticabin.wordpress.com/?p=236#comment-136</guid>
		<description>Continued.. 

Another difference is &#039;learnt&#039; vs &#039;understanding&#039;, I remember for one of my Engineering Degree examinations, I had a brain freeze and forgot all the important equations (Mathematical Modelling and Analysis of Mechanical Systems). Lucky for me I understood the topic enough to derive the equations from first principles.

Further, to add being a &#039;Girl&#039; is logically irrelevant!

PS apologies about my grammar, English is only my third language. I only learnt to read/write English in two weeks.</description>
		<content:encoded><![CDATA[<p>Continued.. </p>
<p>Another difference is &#8216;learnt&#8217; vs &#8216;understanding&#8217;, I remember for one of my Engineering Degree examinations, I had a brain freeze and forgot all the important equations (Mathematical Modelling and Analysis of Mechanical Systems). Lucky for me I understood the topic enough to derive the equations from first principles.</p>
<p>Further, to add being a &#8216;Girl&#8217; is logically irrelevant!</p>
<p>PS apologies about my grammar, English is only my third language. I only learnt to read/write English in two weeks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on What is a Senior Developer? by Anhar</title>
		<link>http://thelimberlambda.com/2010/02/09/what-is-a-senior-developer/#comment-135</link>
		<dc:creator>Anhar</dc:creator>
		<pubDate>Wed, 28 Apr 2010 20:43:15 +0000</pubDate>
		<guid isPermaLink="false">http://skepticabin.wordpress.com/?p=236#comment-135</guid>
		<description>There is a difference between knowing how to solve a problem and solving a problem. 

Sure I learnt about LASER theory and built radio&#039;s when I was only seven BUT I thats only because I had learnt to do that.

So the real question is not what you how to solve, its how you solve what you don&#039;t know.</description>
		<content:encoded><![CDATA[<p>There is a difference between knowing how to solve a problem and solving a problem. </p>
<p>Sure I learnt about LASER theory and built radio&#8217;s when I was only seven BUT I thats only because I had learnt to do that.</p>
<p>So the real question is not what you how to solve, its how you solve what you don&#8217;t know.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
