<?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 on: Software Technologies that I MUST Learn</title>
	<atom:link href="http://danweinreb.org/blog/software-technologies-that-i-must-learn/feed" rel="self" type="application/rss+xml" />
	<link>http://danweinreb.org/blog/software-technologies-that-i-must-learn</link>
	<description>Software and Innovation</description>
	<lastBuildDate>Fri, 10 Sep 2010 18:23:49 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: ac</title>
		<link>http://danweinreb.org/blog/software-technologies-that-i-must-learn/comment-page-1#comment-27426</link>
		<dc:creator>ac</dc:creator>
		<pubDate>Wed, 20 May 2009 08:20:26 +0000</pubDate>
		<guid isPermaLink="false">http://danweinreb.org/blog/?p=69#comment-27426</guid>
		<description>JavaScript + JQuery</description>
		<content:encoded><![CDATA[<p>JavaScript + JQuery</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: -= Yegge, Clojure, Arc, and Lolita: or Days of Future Past =-</title>
		<link>http://danweinreb.org/blog/software-technologies-that-i-must-learn/comment-page-1#comment-8466</link>
		<dc:creator>-= Yegge, Clojure, Arc, and Lolita: or Days of Future Past =-</dc:creator>
		<pubDate>Fri, 06 Feb 2009 19:55:17 +0000</pubDate>
		<guid isPermaLink="false">http://danweinreb.org/blog/?p=69#comment-8466</guid>
		<description>[...] in order to observe any low-frequency mummers disparaging Rich Hickey. In any case, Clojure has garnered a lot of excitement from some highly credible LISP hackers. If Mr. Kenny Tilton would come around, then the coup would [...]</description>
		<content:encoded><![CDATA[<p>[...] in order to observe any low-frequency mummers disparaging Rich Hickey. In any case, Clojure has garnered a lot of excitement from some highly credible LISP hackers. If Mr. Kenny Tilton would come around, then the coup would [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan Weinreb</title>
		<link>http://danweinreb.org/blog/software-technologies-that-i-must-learn/comment-page-1#comment-2368</link>
		<dc:creator>Dan Weinreb</dc:creator>
		<pubDate>Wed, 24 Dec 2008 14:19:09 +0000</pubDate>
		<guid isPermaLink="false">http://danweinreb.org/blog/?p=69#comment-2368</guid>
		<description>Dave, regarding CUDA: Have you been looking at OpenCL?  Some recent info is in &lt;a href=&quot;http://www.hpcwire.com/features/OpenCL-To-GPGPU-and-Beyond-36016144.html&quot; rel=&quot;nofollow&quot;&gt;this&lt;/a&gt; article.  It mentions that any card that supports CUDA will support OpenCL, although it also sounds like it&#039;s lower-level than CUDA.  Part of the claim here is that by using this technology, you&#039;ll be able to retroactively change whether your code runs on the GPU or on your multi-core CPU, and so you need not pre-commit to which of those strategies is going to be looking better, years down the road.  It looks like the language makes C look rich and powerful in comparison, but I guess for the kinds of things people want to do at this level, that might be OK.  Are people using this kind of technology in real products yet, or is that still to come?</description>
		<content:encoded><![CDATA[<p>Dave, regarding CUDA: Have you been looking at OpenCL?  Some recent info is in <a href="http://www.hpcwire.com/features/OpenCL-To-GPGPU-and-Beyond-36016144.html" rel="nofollow">this</a> article.  It mentions that any card that supports CUDA will support OpenCL, although it also sounds like it&#8217;s lower-level than CUDA.  Part of the claim here is that by using this technology, you&#8217;ll be able to retroactively change whether your code runs on the GPU or on your multi-core CPU, and so you need not pre-commit to which of those strategies is going to be looking better, years down the road.  It looks like the language makes C look rich and powerful in comparison, but I guess for the kinds of things people want to do at this level, that might be OK.  Are people using this kind of technology in real products yet, or is that still to come?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dave Baggett</title>
		<link>http://danweinreb.org/blog/software-technologies-that-i-must-learn/comment-page-1#comment-2351</link>
		<dc:creator>Dave Baggett</dc:creator>
		<pubDate>Wed, 24 Dec 2008 02:06:12 +0000</pubDate>
		<guid isPermaLink="false">http://danweinreb.org/blog/?p=69#comment-2351</guid>
		<description>Regarding Henry&#039;s comment about JavaScript: the things I dislike about JavaScript are the looseness of the type-checking and the aggressiveness of the type coercion. While dynamic typing is nice for scripting, JavaScript really takes it a bit too far. For example, I was recently writing some code to return a Java byte array to JavaScript (using an obscure Netscape technology called LiveConnect -- don&#039;t ask), and JavaScript interpreted each byte as a sequence of digits, composed a huge bignum, and the converted the whole thing to float, without me asking it to do any of that, and without any warning. The result: &quot;Inf&quot;. :)</description>
		<content:encoded><![CDATA[<p>Regarding Henry&#8217;s comment about JavaScript: the things I dislike about JavaScript are the looseness of the type-checking and the aggressiveness of the type coercion. While dynamic typing is nice for scripting, JavaScript really takes it a bit too far. For example, I was recently writing some code to return a Java byte array to JavaScript (using an obscure Netscape technology called LiveConnect &#8212; don&#8217;t ask), and JavaScript interpreted each byte as a sequence of digits, composed a huge bignum, and the converted the whole thing to float, without me asking it to do any of that, and without any warning. The result: &#8220;Inf&#8221;. <img src='http://danweinreb.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dave Baggett</title>
		<link>http://danweinreb.org/blog/software-technologies-that-i-must-learn/comment-page-1#comment-2350</link>
		<dc:creator>Dave Baggett</dc:creator>
		<pubDate>Wed, 24 Dec 2008 02:02:31 +0000</pubDate>
		<guid isPermaLink="false">http://danweinreb.org/blog/?p=69#comment-2350</guid>
		<description>It&#039;s nothing to do with fancy functional programming, but you should also look at CUDA. This is NVidia&#039;s framework for &quot;GPGPU&quot; -- general-purpose GPU computing. While CUDA itself is merely nifty -- C-like syntax compiled to shader language, and NVidia-proprietary -- the general concept of moving computation to the GPU is incredibly compelling, and has produced 1-200X speedups vs state-of-the-art CPUs for certain problems.

What I find even more exciting about this is that, in general, *any* dynamic programming algorithm can be re-implemented on the GPU to take advantage of the 64-256 parallel threads of execution the GPU offers, as long as it requires less than the 1GB of RAM that these cards now offer.

There are a few books in the graphics gems series called &quot;GPU Gems&quot; that are worth getting.</description>
		<content:encoded><![CDATA[<p>It&#8217;s nothing to do with fancy functional programming, but you should also look at CUDA. This is NVidia&#8217;s framework for &#8220;GPGPU&#8221; &#8212; general-purpose GPU computing. While CUDA itself is merely nifty &#8212; C-like syntax compiled to shader language, and NVidia-proprietary &#8212; the general concept of moving computation to the GPU is incredibly compelling, and has produced 1-200X speedups vs state-of-the-art CPUs for certain problems.</p>
<p>What I find even more exciting about this is that, in general, *any* dynamic programming algorithm can be re-implemented on the GPU to take advantage of the 64-256 parallel threads of execution the GPU offers, as long as it requires less than the 1GB of RAM that these cards now offer.</p>
<p>There are a few books in the graphics gems series called &#8220;GPU Gems&#8221; that are worth getting.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Henry Minsky</title>
		<link>http://danweinreb.org/blog/software-technologies-that-i-must-learn/comment-page-1#comment-2316</link>
		<dc:creator>Henry Minsky</dc:creator>
		<pubDate>Sun, 21 Dec 2008 19:28:13 +0000</pubDate>
		<guid isPermaLink="false">http://danweinreb.org/blog/?p=69#comment-2316</guid>
		<description>One thing to add to the list ( :-) ) is Erlang, I was looking at it the other day because someone recommended doing so, and it had this really cool concept of parallel execution, which seems to be simply enough that you queue up messages, and the process does its computation with no shared state, and returns a value. So there&#039;s no hair from threads and synchronization and locks and semaphores and deadlocks and all that crud. 

I&#039;ve been programming a lot in Javascript lately, in a non-threaded environment, and it is really a luxury to not have to use threads and concurrency. I could get used to that...</description>
		<content:encoded><![CDATA[<p>One thing to add to the list ( <img src='http://danweinreb.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ) is Erlang, I was looking at it the other day because someone recommended doing so, and it had this really cool concept of parallel execution, which seems to be simply enough that you queue up messages, and the process does its computation with no shared state, and returns a value. So there&#8217;s no hair from threads and synchronization and locks and semaphores and deadlocks and all that crud. </p>
<p>I&#8217;ve been programming a lot in Javascript lately, in a non-threaded environment, and it is really a luxury to not have to use threads and concurrency. I could get used to that&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Martin Heller</title>
		<link>http://danweinreb.org/blog/software-technologies-that-i-must-learn/comment-page-1#comment-2315</link>
		<dc:creator>Martin Heller</dc:creator>
		<pubDate>Sun, 21 Dec 2008 19:21:54 +0000</pubDate>
		<guid isPermaLink="false">http://danweinreb.org/blog/?p=69#comment-2315</guid>
		<description>My sympathies: I&#039;m basically in the same boat. So many &quot;must-learn&quot; computer languages, so little time.

F# is OCaML + .NET Framework; OCaML is ML + objects. The documentation for OCaML is pretty good.

Microsoft Virtual PC is free, and will let you run almost any Linux you want from your Windows XP or Vista machine. There are some tricks to setting up Linux in a VPC: the key trick is to make sure you select a supported video mode during installation. Some Linux distros try to run the virtualized video in 24-bit mode by default, which doesn&#039;t work.

If you figure out Haskell monads, please explain them to me. Others have tried, and I thought I understood the explanation, but 10 minutes later it didn&#039;t make sense.</description>
		<content:encoded><![CDATA[<p>My sympathies: I&#8217;m basically in the same boat. So many &#8220;must-learn&#8221; computer languages, so little time.</p>
<p>F# is OCaML + .NET Framework; OCaML is ML + objects. The documentation for OCaML is pretty good.</p>
<p>Microsoft Virtual PC is free, and will let you run almost any Linux you want from your Windows XP or Vista machine. There are some tricks to setting up Linux in a VPC: the key trick is to make sure you select a supported video mode during installation. Some Linux distros try to run the virtualized video in 24-bit mode by default, which doesn&#8217;t work.</p>
<p>If you figure out Haskell monads, please explain them to me. Others have tried, and I thought I understood the explanation, but 10 minutes later it didn&#8217;t make sense.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alan Bawden</title>
		<link>http://danweinreb.org/blog/software-technologies-that-i-must-learn/comment-page-1#comment-1770</link>
		<dc:creator>Alan Bawden</dc:creator>
		<pubDate>Sun, 23 Nov 2008 06:04:10 +0000</pubDate>
		<guid isPermaLink="false">http://danweinreb.org/blog/?p=69#comment-1770</guid>
		<description>Okasaki’s book is fantastic.  Dan should definitely add reading it to his growing list of things to do!</description>
		<content:encoded><![CDATA[<p>Okasaki’s book is fantastic.  Dan should definitely add reading it to his growing list of things to do!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ralph Hyre</title>
		<link>http://danweinreb.org/blog/software-technologies-that-i-must-learn/comment-page-1#comment-1616</link>
		<dc:creator>Ralph Hyre</dc:creator>
		<pubDate>Wed, 19 Nov 2008 01:00:21 +0000</pubDate>
		<guid isPermaLink="false">http://danweinreb.org/blog/?p=69#comment-1616</guid>
		<description>I learned language the &quot;old fashioned&quot; way, as I needed them for projects or classes.
So my path was BASIC, Pascal, LOGO, Lisp (Scheme), CLU , and finally C/C++.

CLU made it easier to ultimately pick up Java applications, but I&#039;m curious where Java
or VM technologies (like Squeak) fall on the list.</description>
		<content:encoded><![CDATA[<p>I learned language the &#8220;old fashioned&#8221; way, as I needed them for projects or classes.<br />
So my path was BASIC, Pascal, LOGO, Lisp (Scheme), CLU , and finally C/C++.</p>
<p>CLU made it easier to ultimately pick up Java applications, but I&#8217;m curious where Java<br />
or VM technologies (like Squeak) fall on the list.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matthias Hertel</title>
		<link>http://danweinreb.org/blog/software-technologies-that-i-must-learn/comment-page-1#comment-1351</link>
		<dc:creator>Matthias Hertel</dc:creator>
		<pubDate>Tue, 04 Nov 2008 14:43:32 +0000</pubDate>
		<guid isPermaLink="false">http://danweinreb.org/blog/?p=69#comment-1351</guid>
		<description>For persistent data structures, I liked Chris Okasaki&#039;s book &quot;Purely functional data structures&quot; from 1998 (uses SML with lazy extensions; Haskell code is provided in an appendix).
I read it when I was an undergrad, and for me, it was worth it for its explanation of amortization alone.</description>
		<content:encoded><![CDATA[<p>For persistent data structures, I liked Chris Okasaki&#8217;s book &#8220;Purely functional data structures&#8221; from 1998 (uses SML with lazy extensions; Haskell code is provided in an appendix).<br />
I read it when I was an undergrad, and for me, it was worth it for its explanation of amortization alone.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
