<?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/"
		>
<channel>
	<title>Comments for nklein software</title>
	<atom:link href="http://nklein.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://nklein.com</link>
	<description>software development and consulting</description>
	<lastBuildDate>Thu, 17 May 2012 02:41:06 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>Comment on Making Fun Algebra Problems Funner by Jeff</title>
		<link>http://nklein.com/2010/10/making-fun-algebra-problems-funner/comment-page-1/#comment-2930</link>
		<dc:creator>Jeff</dc:creator>
		<pubDate>Thu, 17 May 2012 02:41:06 +0000</pubDate>
		<guid isPermaLink="false">http://nklein.com/?p=1481#comment-2930</guid>
		<description>Thanks for this. I figured out the problem with 6 soon enough, but it is inelegant, as you say. It took me a few to catch on to what you were doing with the matching triangles--I thought you were saying it was true still with a 6:1 ratio--but now I see. Quite lovely. Yes, the problem should have been stated with a distance of 7.</description>
		<content:encoded><![CDATA[<p>Thanks for this. I figured out the problem with 6 soon enough, but it is inelegant, as you say. It took me a few to catch on to what you were doing with the matching triangles&#8211;I thought you were saying it was true still with a 6:1 ratio&#8211;but now I see. Quite lovely. Yes, the problem should have been stated with a distance of 7.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on NeHe Tutorials for CL-OpenGL by Luka Ramishvili</title>
		<link>http://nklein.com/2010/06/nehe-tutorials-for-cl-opengl/comment-page-1/#comment-2929</link>
		<dc:creator>Luka Ramishvili</dc:creator>
		<pubDate>Tue, 15 May 2012 11:22:25 +0000</pubDate>
		<guid isPermaLink="false">http://nklein.com/?p=1407#comment-2929</guid>
		<description>I don&#039;t understand the people who commented. I don&#039;t understand their ungratefulness.

One thing is to note that the tutorial is outdated, but why insult the author? He has taken his personal time to write these tutorials if someone needed it.

And if it&#039;s wrong, why don&#039;t any one of you point out to a better tutorial or example?

And I didn&#039;t find the tutorial useless. That&#039;s how I&#039;d write an OpenGL tutorial, albeit in C. He has explained simple things that a starter needs to understand.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t understand the people who commented. I don&#8217;t understand their ungratefulness.</p>
<p>One thing is to note that the tutorial is outdated, but why insult the author? He has taken his personal time to write these tutorials if someone needed it.</p>
<p>And if it&#8217;s wrong, why don&#8217;t any one of you point out to a better tutorial or example?</p>
<p>And I didn&#8217;t find the tutorial useless. That&#8217;s how I&#8217;d write an OpenGL tutorial, albeit in C. He has explained simple things that a starter needs to understand.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Quaternions for Rotating, Scaling, and Translating Space by Peter L. Griffiths</title>
		<link>http://nklein.com/2009/06/quaternions-for-rotating-scaling-and-translating-space/comment-page-1/#comment-2925</link>
		<dc:creator>Peter L. Griffiths</dc:creator>
		<pubDate>Mon, 30 Apr 2012 16:16:07 +0000</pubDate>
		<guid isPermaLink="false">http://nklein.com/?p=544#comment-2925</guid>
		<description>There is careless error in my comments of 29 April 2012.  The third sentence should be A further clockwise 90 degree rotation can be achieved by making x=-5 and y=-2 which really is the negative of the first point on the complex plane, apologies.</description>
		<content:encoded><![CDATA[<p>There is careless error in my comments of 29 April 2012.  The third sentence should be A further clockwise 90 degree rotation can be achieved by making x=-5 and y=-2 which really is the negative of the first point on the complex plane, apologies.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Quaternions for Rotating, Scaling, and Translating Space by Peter L. Griffiths</title>
		<link>http://nklein.com/2009/06/quaternions-for-rotating-scaling-and-translating-space/comment-page-1/#comment-2924</link>
		<dc:creator>Peter L. Griffiths</dc:creator>
		<pubDate>Sun, 29 Apr 2012 16:36:26 +0000</pubDate>
		<guid isPermaLink="false">http://nklein.com/?p=544#comment-2924</guid>
		<description>Further to my comments of 19 April 2012, 90 degrees rotation of the complex plane is fairly easy if the correct procedure is followed.  If the point on the complex plane is say x=+5 and y=+2 then a 90 degree clockwise rotation can be achieved by making x=2 and y=-5. A further clockwise 90 degree rotation can be achieved by making y=-5 and x=-2 which is the negative of the first point on the complex plane and is the same result as 180 degree angle of the Cotes format of the complex numbers.  However this similarity is not shared by smaller angle rotations. Curiously enough this 90 degree rotation can also be achieved on a three dimensional solid such as a sphere where we have three coordinates say x=+5 y=+2 and z=+9.  We also have 8 quadrants. Each 90 degree rotation involves one change of sign and one change of position of the coordinates.  It seems that this cannot be achieved by smaller angle rotations.</description>
		<content:encoded><![CDATA[<p>Further to my comments of 19 April 2012, 90 degrees rotation of the complex plane is fairly easy if the correct procedure is followed.  If the point on the complex plane is say x=+5 and y=+2 then a 90 degree clockwise rotation can be achieved by making x=2 and y=-5. A further clockwise 90 degree rotation can be achieved by making y=-5 and x=-2 which is the negative of the first point on the complex plane and is the same result as 180 degree angle of the Cotes format of the complex numbers.  However this similarity is not shared by smaller angle rotations. Curiously enough this 90 degree rotation can also be achieved on a three dimensional solid such as a sphere where we have three coordinates say x=+5 y=+2 and z=+9.  We also have 8 quadrants. Each 90 degree rotation involves one change of sign and one change of position of the coordinates.  It seems that this cannot be achieved by smaller angle rotations.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Quaternions for Rotating, Scaling, and Translating Space by Peter L. Griffiths</title>
		<link>http://nklein.com/2009/06/quaternions-for-rotating-scaling-and-translating-space/comment-page-1/#comment-2920</link>
		<dc:creator>Peter L. Griffiths</dc:creator>
		<pubDate>Thu, 19 Apr 2012 16:34:01 +0000</pubDate>
		<guid isPermaLink="false">http://nklein.com/?p=544#comment-2920</guid>
		<description>The purpose of the angles is not for rotating but to identify the n roots of the complex number. These angles are only obtained by finding the arcotangent of the complex ratio.  The example of costheta  and sintheta which you mention works with theta equalling  90 degrees but this results in the same axes not a 90 degree rotation of the axes.</description>
		<content:encoded><![CDATA[<p>The purpose of the angles is not for rotating but to identify the n roots of the complex number. These angles are only obtained by finding the arcotangent of the complex ratio.  The example of costheta  and sintheta which you mention works with theta equalling  90 degrees but this results in the same axes not a 90 degree rotation of the axes.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on HTML + JS + LISP.  Oh My. by pat</title>
		<link>http://nklein.com/2012/03/html-js-lisp-oh-my/comment-page-1/#comment-2825</link>
		<dc:creator>pat</dc:creator>
		<pubDate>Fri, 23 Mar 2012 22:14:16 +0000</pubDate>
		<guid isPermaLink="false">http://nklein.com/?p=1812#comment-2825</guid>
		<description>It seems possible to patch it through as a rudimentary REPL, but it would take a bit of work on both ends.

For my web application, I don&#039;t expect it to be incredibly deep.  So, the penalty for having to start over should be small.  I suspect one of two things will happen:
&lt;ol&gt;&lt;li&gt;I will find myself occasionally wishing I had already put in the effort to make a Parenscript-to-Browser REPL, but never feeling like now is the right time to make it happen, or&lt;/li&gt;
&lt;li&gt;I will find myself obsessed with getting it to work to the exclusion of working on my app until I&#039;ve written it, github-ed it, blogged it, and ILC-papered it.&lt;/li&gt;&lt;/ol&gt;

Now accepting bets (or bribes).

Aw, heck.  I&#039;m already hooked.  I&#039;ll still take bribes, but it&#039;s gonna be number 2.</description>
		<content:encoded><![CDATA[<p>It seems possible to patch it through as a rudimentary REPL, but it would take a bit of work on both ends.</p>
<p>For my web application, I don&#8217;t expect it to be incredibly deep.  So, the penalty for having to start over should be small.  I suspect one of two things will happen:</p>
<ol>
<li>I will find myself occasionally wishing I had already put in the effort to make a Parenscript-to-Browser REPL, but never feeling like now is the right time to make it happen, or</li>
<li>I will find myself obsessed with getting it to work to the exclusion of working on my app until I&#8217;ve written it, github-ed it, blogged it, and ILC-papered it.</li>
</ol>
<p>Now accepting bets (or bribes).</p>
<p>Aw, heck.  I&#8217;m already hooked.  I&#8217;ll still take bribes, but it&#8217;s gonna be number 2.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on HTML + JS + LISP.  Oh My. by pat</title>
		<link>http://nklein.com/2012/03/html-js-lisp-oh-my/comment-page-1/#comment-2824</link>
		<dc:creator>pat</dc:creator>
		<pubDate>Fri, 23 Mar 2012 22:03:42 +0000</pubDate>
		<guid isPermaLink="false">http://nklein.com/?p=1812#comment-2824</guid>
		<description>I mentally discarded HTML-TEMPLATES off the top because I expect to have a bunch of DIV&#039;s that have similar but not identical content and it just felt easier to do in Lisp than in TEMPLATE loops.

The CL-Interpol idea is interesting.  I&#039;ll keep that in mind.

Thanks.</description>
		<content:encoded><![CDATA[<p>I mentally discarded HTML-TEMPLATES off the top because I expect to have a bunch of DIV&#8217;s that have similar but not identical content and it just felt easier to do in Lisp than in TEMPLATE loops.</p>
<p>The CL-Interpol idea is interesting.  I&#8217;ll keep that in mind.</p>
<p>Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on HTML + JS + LISP.  Oh My. by Robert Goldman</title>
		<link>http://nklein.com/2012/03/html-js-lisp-oh-my/comment-page-1/#comment-2822</link>
		<dc:creator>Robert Goldman</dc:creator>
		<pubDate>Fri, 23 Mar 2012 20:41:38 +0000</pubDate>
		<guid isPermaLink="false">http://nklein.com/?p=1812#comment-2822</guid>
		<description>One thing I have never had a good sense about is &quot;what if my parenscript doesn&#039;t work?&quot;  How do I debug parenscript-generated javascript?  How do I patch it?  Do I have to keep crashing my web app and starting over?  Am I back to a variant of the old write-compile-test loop?

I know how to get a rudimentary REPL for developing in ordinary JavaScript -- do I have to give it up to use Parenscript?

If you get this all figured out, give a talk about it at TC Lispers!</description>
		<content:encoded><![CDATA[<p>One thing I have never had a good sense about is &#8220;what if my parenscript doesn&#8217;t work?&#8221;  How do I debug parenscript-generated javascript?  How do I patch it?  Do I have to keep crashing my web app and starting over?  Am I back to a variant of the old write-compile-test loop?</p>
<p>I know how to get a rudimentary REPL for developing in ordinary JavaScript &#8212; do I have to give it up to use Parenscript?</p>
<p>If you get this all figured out, give a talk about it at TC Lispers!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on HTML + JS + LISP.  Oh My. by Vladimir Sedach</title>
		<link>http://nklein.com/2012/03/html-js-lisp-oh-my/comment-page-1/#comment-2793</link>
		<dc:creator>Vladimir Sedach</dc:creator>
		<pubDate>Wed, 21 Mar 2012 20:24:42 +0000</pubDate>
		<guid isPermaLink="false">http://nklein.com/?p=1812#comment-2793</guid>
		<description>this.myarray.push is read in as one symbol, so if push is a macro, it won&#039;t get macro expanded, and if myrarray is a symbol macro, it won&#039;t be expanded either. That might be why your macros are not expanding, and why I made the &quot;.&quot; syntax unsupported (Parenscript should issue a warning every time it sees such a symbol). It&#039;s possible to modify the readtable to treat &quot;.&quot; dots properly, but the dot character is already used for dotted lists in the standard CL readtable. I might provide that as an optional readtable that people can use with their code.

About CL-WHO, I just recommend going with straight HTML templates. It&#039;s easier to work with and more flexible (you can have your templates writing out to a stream or returning strings in any way you want). And no more confusion about exactly what the output should look like. CL-Interpol actually makes a good solution: http://paste.lisp.org/display/118522

The only problem with that approach is that there is no mode for emacs that will indent HTML mixed with s-expression properly (yet).</description>
		<content:encoded><![CDATA[<p>this.myarray.push is read in as one symbol, so if push is a macro, it won&#8217;t get macro expanded, and if myrarray is a symbol macro, it won&#8217;t be expanded either. That might be why your macros are not expanding, and why I made the &#8220;.&#8221; syntax unsupported (Parenscript should issue a warning every time it sees such a symbol). It&#8217;s possible to modify the readtable to treat &#8220;.&#8221; dots properly, but the dot character is already used for dotted lists in the standard CL readtable. I might provide that as an optional readtable that people can use with their code.</p>
<p>About CL-WHO, I just recommend going with straight HTML templates. It&#8217;s easier to work with and more flexible (you can have your templates writing out to a stream or returning strings in any way you want). And no more confusion about exactly what the output should look like. CL-Interpol actually makes a good solution: <a href="http://paste.lisp.org/display/118522" rel="nofollow">http://paste.lisp.org/display/118522</a></p>
<p>The only problem with that approach is that there is no mode for emacs that will indent HTML mixed with s-expression properly (yet).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Complex Numbers for Rotating, Translating, and Scaling the Plane by pat</title>
		<link>http://nklein.com/2009/06/complex-numbers-for-rotating-translating-and-scaling-the-plane/comment-page-1/#comment-2665</link>
		<dc:creator>pat</dc:creator>
		<pubDate>Tue, 06 Mar 2012 17:36:46 +0000</pubDate>
		<guid isPermaLink="false">http://nklein.com/?p=511#comment-2665</guid>
		<description>I agree with you if we are talking about arithmetic for real numbers and complex numbers.  We are not though.  We are talking about something altogether different.

This is not a statement about arithmetic.  It is a statement about geometry formalized with notation that makes it look like arithmetic.  If it helps, think of them just as 4-dimensional vectors: $$(a,b,c,d)$$ that add just like vectors add: $$(a,b,c,d) + (w,x,y,z) = (a+w,b+x,c+y,z+d)$$.  But, unlike vectors, they can also be multiplied to create new vectors.  The multiplication is such that: 

$$(s,0,0,0) \cdot (a,b,c,d) = (sa,sb,sc,sd) = (a,b,c,d) \cdot (s,0,0,0)$$

$$(0,s,0,0) \cdot (a,b,c,d) = (-sb,sa,-sd,sc)$$

$$(a,b,c,d) \cdot (0,s,0,0) = (-sb,sa,sc,-sd)$$

$$(0,0,s,0) \cdot (a,b,c,d) = (-sc,sd,sa,-sb)$$

$$(a,b,c,d) \cdot (0,0,s,0) = (-sc,-sd,sa,sb)$$

$$(0,0,0,s) \cdot (a,b,c,d) = (-sd,-sc,sb,sa)$$

$$(a,b,c,d) \cdot (0,0,0,s) = (-sd,sc,-sb,sa)$$

And, any other product can be determined if we agree that this multiplication distributes over addition just like we&#039;re used to.  So,

$$(s,t,u,v) \cdot (a,b,c,d) = \left[(s,0,0,0) + (0,t,0,0) + (0,0,u,0) + (0,0,0,v)\right] \cdot (a,b,c,d)$$</description>
		<content:encoded><![CDATA[<p>I agree with you if we are talking about arithmetic for real numbers and complex numbers.  We are not though.  We are talking about something altogether different.</p>
<p>This is not a statement about arithmetic.  It is a statement about geometry formalized with notation that makes it look like arithmetic.  If it helps, think of them just as 4-dimensional vectors: <img src="http://l.wordpress.com/latex.php?latex=%28a%2Cb%2Cc%2Cd%29&#038;bg=FFFFCC&#038;fg=000000&#038;s=0" title="(a,b,c,d)" style="vertical-align:-20%;" class="tex" alt="(a,b,c,d)" /> that add just like vectors add: <img src="http://l.wordpress.com/latex.php?latex=%28a%2Cb%2Cc%2Cd%29%20%2B%20%28w%2Cx%2Cy%2Cz%29%20%3D%20%28a%2Bw%2Cb%2Bx%2Cc%2By%2Cz%2Bd%29&#038;bg=FFFFCC&#038;fg=000000&#038;s=0" title="(a,b,c,d) + (w,x,y,z) = (a+w,b+x,c+y,z+d)" style="vertical-align:-20%;" class="tex" alt="(a,b,c,d) + (w,x,y,z) = (a+w,b+x,c+y,z+d)" />.  But, unlike vectors, they can also be multiplied to create new vectors.  The multiplication is such that: </p>
<p><img src="http://l.wordpress.com/latex.php?latex=%28s%2C0%2C0%2C0%29%20%5Ccdot%20%28a%2Cb%2Cc%2Cd%29%20%3D%20%28sa%2Csb%2Csc%2Csd%29%20%3D%20%28a%2Cb%2Cc%2Cd%29%20%5Ccdot%20%28s%2C0%2C0%2C0%29&#038;bg=FFFFCC&#038;fg=000000&#038;s=0" title="(s,0,0,0) \cdot (a,b,c,d) = (sa,sb,sc,sd) = (a,b,c,d) \cdot (s,0,0,0)" style="vertical-align:-20%;" class="tex" alt="(s,0,0,0) \cdot (a,b,c,d) = (sa,sb,sc,sd) = (a,b,c,d) \cdot (s,0,0,0)" /></p>
<p><img src="http://l.wordpress.com/latex.php?latex=%280%2Cs%2C0%2C0%29%20%5Ccdot%20%28a%2Cb%2Cc%2Cd%29%20%3D%20%28-sb%2Csa%2C-sd%2Csc%29&#038;bg=FFFFCC&#038;fg=000000&#038;s=0" title="(0,s,0,0) \cdot (a,b,c,d) = (-sb,sa,-sd,sc)" style="vertical-align:-20%;" class="tex" alt="(0,s,0,0) \cdot (a,b,c,d) = (-sb,sa,-sd,sc)" /></p>
<p><img src="http://l.wordpress.com/latex.php?latex=%28a%2Cb%2Cc%2Cd%29%20%5Ccdot%20%280%2Cs%2C0%2C0%29%20%3D%20%28-sb%2Csa%2Csc%2C-sd%29&#038;bg=FFFFCC&#038;fg=000000&#038;s=0" title="(a,b,c,d) \cdot (0,s,0,0) = (-sb,sa,sc,-sd)" style="vertical-align:-20%;" class="tex" alt="(a,b,c,d) \cdot (0,s,0,0) = (-sb,sa,sc,-sd)" /></p>
<p><img src="http://l.wordpress.com/latex.php?latex=%280%2C0%2Cs%2C0%29%20%5Ccdot%20%28a%2Cb%2Cc%2Cd%29%20%3D%20%28-sc%2Csd%2Csa%2C-sb%29&#038;bg=FFFFCC&#038;fg=000000&#038;s=0" title="(0,0,s,0) \cdot (a,b,c,d) = (-sc,sd,sa,-sb)" style="vertical-align:-20%;" class="tex" alt="(0,0,s,0) \cdot (a,b,c,d) = (-sc,sd,sa,-sb)" /></p>
<p><img src="http://l.wordpress.com/latex.php?latex=%28a%2Cb%2Cc%2Cd%29%20%5Ccdot%20%280%2C0%2Cs%2C0%29%20%3D%20%28-sc%2C-sd%2Csa%2Csb%29&#038;bg=FFFFCC&#038;fg=000000&#038;s=0" title="(a,b,c,d) \cdot (0,0,s,0) = (-sc,-sd,sa,sb)" style="vertical-align:-20%;" class="tex" alt="(a,b,c,d) \cdot (0,0,s,0) = (-sc,-sd,sa,sb)" /></p>
<p><img src="http://l.wordpress.com/latex.php?latex=%280%2C0%2C0%2Cs%29%20%5Ccdot%20%28a%2Cb%2Cc%2Cd%29%20%3D%20%28-sd%2C-sc%2Csb%2Csa%29&#038;bg=FFFFCC&#038;fg=000000&#038;s=0" title="(0,0,0,s) \cdot (a,b,c,d) = (-sd,-sc,sb,sa)" style="vertical-align:-20%;" class="tex" alt="(0,0,0,s) \cdot (a,b,c,d) = (-sd,-sc,sb,sa)" /></p>
<p><img src="http://l.wordpress.com/latex.php?latex=%28a%2Cb%2Cc%2Cd%29%20%5Ccdot%20%280%2C0%2C0%2Cs%29%20%3D%20%28-sd%2Csc%2C-sb%2Csa%29&#038;bg=FFFFCC&#038;fg=000000&#038;s=0" title="(a,b,c,d) \cdot (0,0,0,s) = (-sd,sc,-sb,sa)" style="vertical-align:-20%;" class="tex" alt="(a,b,c,d) \cdot (0,0,0,s) = (-sd,sc,-sb,sa)" /></p>
<p>And, any other product can be determined if we agree that this multiplication distributes over addition just like we&#8217;re used to.  So,</p>
<p><img src="http://l.wordpress.com/latex.php?latex=%28s%2Ct%2Cu%2Cv%29%20%5Ccdot%20%28a%2Cb%2Cc%2Cd%29%20%3D%20%5Cleft%5B%28s%2C0%2C0%2C0%29%20%2B%20%280%2Ct%2C0%2C0%29%20%2B%20%280%2C0%2Cu%2C0%29%20%2B%20%280%2C0%2C0%2Cv%29%5Cright%5D%20%5Ccdot%20%28a%2Cb%2Cc%2Cd%29&#038;bg=FFFFCC&#038;fg=000000&#038;s=0" title="(s,t,u,v) \cdot (a,b,c,d) = \left[(s,0,0,0) + (0,t,0,0) + (0,0,u,0) + (0,0,0,v)\right] \cdot (a,b,c,d)" style="vertical-align:-20%;" class="tex" alt="(s,t,u,v) \cdot (a,b,c,d) = \left[(s,0,0,0) + (0,t,0,0) + (0,0,u,0) + (0,0,0,v)\right] \cdot (a,b,c,d)" /></p>
]]></content:encoded>
	</item>
</channel>
</rss>

