<?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"
	>
<channel>
	<title>Comments for jenkz.org</title>
	<atom:link href="http://www.jenkz.org/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jenkz.org</link>
	<description>touching people with his noodly appendage</description>
	<pubDate>Fri, 30 Jul 2010 09:54:52 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
		<item>
		<title>Comment on C# Dictionary to F# Map by grahamsw</title>
		<link>http://www.jenkz.org/2008/07/18/c-dictionary-to-f-map/#comment-26</link>
		<dc:creator>grahamsw</dc:creator>
		<pubDate>Mon, 22 Dec 2008 17:41:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.jenkz.org/?p=13#comment-26</guid>
		<description>Tim, a quick hello from someone following much the same path, moving in a functional direction after many years in C/C++/C# land.

I've found the process slow, and the learning curve painfully steep, but completely fascinating, and rewarding. There's a dearth of good books, but if you have a solid grasp of the basics "F# for Scientists" is pretty good. 

A dictionary enumerates as a sequence of KeyValuePairs, so if d is the same Dictionary as above

d &#124;&#62; Seq.fold_left (fun acc kvp -&#62; acc.add kvp.Key kvp.Value) Map.empty

is all you need.

I'm translating "Programming Collective Intelligence", a pretty damn interesting book on data analysis - something I'm sure you MMO guys are all over - into F# over at http://code.google.com/p/dataviz 

I don't have much to show for it yet, but it's powerful stuff. Take a look if your interested.

http://cs.hubfs.net/ is also worth looking at if you haven't already.</description>
		<content:encoded><![CDATA[<p>Tim, a quick hello from someone following much the same path, moving in a functional direction after many years in C/C++/C# land.</p>
<p>I&#8217;ve found the process slow, and the learning curve painfully steep, but completely fascinating, and rewarding. There&#8217;s a dearth of good books, but if you have a solid grasp of the basics &#8220;F# for Scientists&#8221; is pretty good. </p>
<p>A dictionary enumerates as a sequence of KeyValuePairs, so if d is the same Dictionary as above</p>
<p>d |&gt; Seq.fold_left (fun acc kvp -&gt; acc.add kvp.Key kvp.Value) Map.empty</p>
<p>is all you need.</p>
<p>I&#8217;m translating &#8220;Programming Collective Intelligence&#8221;, a pretty damn interesting book on data analysis - something I&#8217;m sure you MMO guys are all over - into F# over at <a href="http://code.google.com/p/dataviz" rel="nofollow">http://code.google.com/p/dataviz</a> </p>
<p>I don&#8217;t have much to show for it yet, but it&#8217;s powerful stuff. Take a look if your interested.</p>
<p><a href="http://cs.hubfs.net/" rel="nofollow">http://cs.hubfs.net/</a> is also worth looking at if you haven&#8217;t already.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Visual C# 2008 Express by BadImageFormatException auf Vista x64 (.NET) &#124; xscDevBlog - LastSharp &#38; Co.</title>
		<link>http://www.jenkz.org/2008/05/10/visual-c-2008-express/#comment-25</link>
		<dc:creator>BadImageFormatException auf Vista x64 (.NET) &#124; xscDevBlog - LastSharp &#38; Co.</dc:creator>
		<pubDate>Thu, 18 Dec 2008 01:10:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.jenkz.org/?p=11#comment-25</guid>
		<description>[...] folge dem Vorgehen von jenkz.org und editiere meine Projektdatei von Hand, indem ich in den zweiten PropertyGroup-Abschnitt die [...]</description>
		<content:encoded><![CDATA[<p>[...] folge dem Vorgehen von jenkz.org und editiere meine Projektdatei von Hand, indem ich in den zweiten PropertyGroup-Abschnitt die [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on How not to launch a beta for a WoW-Killer MMO by the blogoholic &#187; Blog Archive &#187; How not to launch an MMORPG</title>
		<link>http://www.jenkz.org/2008/09/09/how-not-to-launch-a-beta-for-a-wow-killer-mmo/#comment-18</link>
		<dc:creator>the blogoholic &#187; Blog Archive &#187; How not to launch an MMORPG</dc:creator>
		<pubDate>Mon, 29 Sep 2008 15:07:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.jenkz.org/?p=45#comment-18</guid>
		<description>[...] were bad decisions, yet GOA still went full steam ahead.  Tim Jenks has listed some of them in his How not to launch a beta for a WoW-Killer MMO, I&#8217;m going to a list a few of the things which have annoyed me about the entire [...]</description>
		<content:encoded><![CDATA[<p>[...] were bad decisions, yet GOA still went full steam ahead.  Tim Jenks has listed some of them in his How not to launch a beta for a WoW-Killer MMO, I&#8217;m going to a list a few of the things which have annoyed me about the entire [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on How not to launch a beta for a WoW-Killer MMO by Frust oder Lust mit WAR &#124; Ninjalooter.de</title>
		<link>http://www.jenkz.org/2008/09/09/how-not-to-launch-a-beta-for-a-wow-killer-mmo/#comment-17</link>
		<dc:creator>Frust oder Lust mit WAR &#124; Ninjalooter.de</dc:creator>
		<pubDate>Mon, 29 Sep 2008 10:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.jenkz.org/?p=45#comment-17</guid>
		<description>[...] sehr dürftigen Support und die wirklich nervige Flash basierte europäische WAR Seite hat sich dieser Beitrag beschäftigt. Er spricht wirklich unzähligen Spielern aus der Seele und nimmt so einige Sachen [...]</description>
		<content:encoded><![CDATA[<p>[...] sehr dürftigen Support und die wirklich nervige Flash basierte europäische WAR Seite hat sich dieser Beitrag beschäftigt. Er spricht wirklich unzähligen Spielern aus der Seele und nimmt so einige Sachen [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Visual C# 2008 Express by Michael Summers</title>
		<link>http://www.jenkz.org/2008/05/10/visual-c-2008-express/#comment-16</link>
		<dc:creator>Michael Summers</dc:creator>
		<pubDate>Sat, 27 Sep 2008 12:43:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.jenkz.org/?p=11#comment-16</guid>
		<description>A bit late but seeing that this article is still on the front page I thought I'd link a way of fixing the problem using the IDE instead of modifying the project files.

http://wfrobozz.blogspot.com/2008/09/visual-c-2008-express-and-3264-bit.html</description>
		<content:encoded><![CDATA[<p>A bit late but seeing that this article is still on the front page I thought I&#8217;d link a way of fixing the problem using the IDE instead of modifying the project files.</p>
<p><a href="http://wfrobozz.blogspot.com/2008/09/visual-c-2008-express-and-3264-bit.html" rel="nofollow">http://wfrobozz.blogspot.com/2008/09/visual-c-2008-express-and-3264-bit.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on C# Dictionary to F# Map by Brian McNamara</title>
		<link>http://www.jenkz.org/2008/07/18/c-dictionary-to-f-map/#comment-11</link>
		<dc:creator>Brian McNamara</dc:creator>
		<pubDate>Sat, 19 Jul 2008 19:49:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.jenkz.org/?p=13#comment-11</guid>
		<description>Looks like angle brackets were swallowed... trying again


#light

open System.Collections.Generic 
let d = new Dictionary&#60;string,int&#62;()
d.["one"] &#60;- 1
d.["two"] &#60;- 2
d.["three"] &#60;- 3
let keyValuePairs = (d :&#62; seq&#60;_&#62;)
let m = keyValuePairs &#124;&#62; Seq.map (fun kvp -&#62; (kvp.Key, kvp.Value)) &#124;&#62; Map.of_seq 
for kvp in m do
    printfn "%s -&#62; %d" kvp.Key kvp.Value</description>
		<content:encoded><![CDATA[<p>Looks like angle brackets were swallowed&#8230; trying again</p>
<p>#light</p>
<p>open System.Collections.Generic<br />
let d = new Dictionary&lt;string,int&gt;()<br />
d.["one"] &lt;- 1<br />
d.["two"] &lt;- 2<br />
d.["three"] &lt;- 3<br />
let keyValuePairs = (d :&gt; seq&lt;_&gt;)<br />
let m = keyValuePairs |&gt; Seq.map (fun kvp -&gt; (kvp.Key, kvp.Value)) |&gt; Map.of_seq<br />
for kvp in m do<br />
    printfn &#8220;%s -&gt; %d&#8221; kvp.Key kvp.Value</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on C# Dictionary to F# Map by Brian McNamara</title>
		<link>http://www.jenkz.org/2008/07/18/c-dictionary-to-f-map/#comment-10</link>
		<dc:creator>Brian McNamara</dc:creator>
		<pubDate>Sat, 19 Jul 2008 19:47:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.jenkz.org/?p=13#comment-10</guid>
		<description>Looks like many angle brackets were swallowed... trying again

#light

open System.Collections.Generic 
let d = new Dictionary&#60;string,int&#62;()
d.["one"] &#60;- 1
d.["two"]  seq&#60;_&#62;)
let m = keyValuePairs &#124;&#62; Seq.map (fun kvp -&#62; (kvp.Key, kvp.Value)) &#124;&#62; Map.of_seq 
for kvp in m do
    printfn "%s -&#62; %d" kvp.Key kvp.Value
</description>
		<content:encoded><![CDATA[<p>Looks like many angle brackets were swallowed&#8230; trying again</p>
<p>#light</p>
<p>open System.Collections.Generic<br />
let d = new Dictionary&lt;string,int&gt;()<br />
d.["one"] &lt;- 1<br />
d.["two"]  seq&lt;_&gt;)<br />
let m = keyValuePairs |&gt; Seq.map (fun kvp -&gt; (kvp.Key, kvp.Value)) |&gt; Map.of_seq<br />
for kvp in m do<br />
    printfn &#8220;%s -&gt; %d&#8221; kvp.Key kvp.Value</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on C# Dictionary to F# Map by Brian McNamara</title>
		<link>http://www.jenkz.org/2008/07/18/c-dictionary-to-f-map/#comment-9</link>
		<dc:creator>Brian McNamara</dc:creator>
		<pubDate>Sat, 19 Jul 2008 18:27:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.jenkz.org/?p=13#comment-9</guid>
		<description>I think Map.of_seq is the simplest way to do the conversion; consider:

#light

open System.Collections.Generic 
let d = new Dictionary()
d.["one"] &#60;- 1
d.["two"] &#60;- 2
d.["three"]  seq)
let m = keyValuePairs &#124;&#62; Seq.map (fun kvp -&#62; (kvp.Key, kvp.Value)) &#124;&#62; Map.of_seq 
for kvp in m do
    printfn "%s -&#62; %d" kvp.Key kvp.Value</description>
		<content:encoded><![CDATA[<p>I think Map.of_seq is the simplest way to do the conversion; consider:</p>
<p>#light</p>
<p>open System.Collections.Generic<br />
let d = new Dictionary()<br />
d.["one"] &lt;- 1<br />
d.["two"] &lt;- 2<br />
d.["three"]  seq)<br />
let m = keyValuePairs |&gt; Seq.map (fun kvp -&gt; (kvp.Key, kvp.Value)) |&gt; Map.of_seq<br />
for kvp in m do<br />
    printfn &#8220;%s -&gt; %d&#8221; kvp.Key kvp.Value</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The crusade for effective parallelism by Jon Harrop</title>
		<link>http://www.jenkz.org/2008/07/01/the-crusade-for-effective-parallelism/#comment-8</link>
		<dc:creator>Jon Harrop</dc:creator>
		<pubDate>Sat, 19 Jul 2008 12:45:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.jenkz.org/?p=12#comment-8</guid>
		<description>You must distinguish between concurrency and parallelism. Concurrency is about overlapping tasks to improve latency whereas parallelism is about executing code simultaneously to improve throughput. In particular, concurrency is rarely CPU limited but parallelism is always CPU limited.

As you have noted, immutable data structures are often 10x slower than their mutable counterparts and, consequently, their elegant style can be great for making concurrent programming easier but it is virtually useless for parallelism because computational efficiency is critical there.

However, you will find that F# is enormously beneficial for both concurrent and parallel programming. Concurrent programming is greatly simplified in F# thanks to its Erlang-style support via asynchronous workflows. Parallelism is greatly aided in F# thanks to improved code factoring via first-class functions and the Task Parallel Library.

High performance parallelism has already been covered in one of our F#.NET Journal articles and concurrency will be covered soon.

Regards,
Jon Harrop.</description>
		<content:encoded><![CDATA[<p>You must distinguish between concurrency and parallelism. Concurrency is about overlapping tasks to improve latency whereas parallelism is about executing code simultaneously to improve throughput. In particular, concurrency is rarely CPU limited but parallelism is always CPU limited.</p>
<p>As you have noted, immutable data structures are often 10x slower than their mutable counterparts and, consequently, their elegant style can be great for making concurrent programming easier but it is virtually useless for parallelism because computational efficiency is critical there.</p>
<p>However, you will find that F# is enormously beneficial for both concurrent and parallel programming. Concurrent programming is greatly simplified in F# thanks to its Erlang-style support via asynchronous workflows. Parallelism is greatly aided in F# thanks to improved code factoring via first-class functions and the Task Parallel Library.</p>
<p>High performance parallelism has already been covered in one of our F#.NET Journal articles and concurrency will be covered soon.</p>
<p>Regards,<br />
Jon Harrop.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Visual C# 2008 Express by Chen Lee</title>
		<link>http://www.jenkz.org/2008/05/10/visual-c-2008-express/#comment-7</link>
		<dc:creator>Chen Lee</dc:creator>
		<pubDate>Wed, 14 May 2008 13:54:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.jenkz.org/?p=11#comment-7</guid>
		<description>It might be worth looking into NAnt (a port of Java's Ant).  You can use the platform attribute on the CSC task to define what target you wish to use (x86, x64, etc.), it could save you a lot of time with large solutions containing many projects.</description>
		<content:encoded><![CDATA[<p>It might be worth looking into NAnt (a port of Java&#8217;s Ant).  You can use the platform attribute on the CSC task to define what target you wish to use (x86, x64, etc.), it could save you a lot of time with large solutions containing many projects.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
