<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.foldl.org/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
<channel>
<title>the left fold</title>
<link>http://www.foldl.org/</link>
<description>weekly programming article digest</description>
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.foldl.org/foldl" /><feedburner:info uri="foldl" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>foldl</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.foldl.org/foldl" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.foldl.org%2Ffoldl" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.foldl.org%2Ffoldl" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><item>
	
	<title>the left fold: 2009-12-28</title>
	
	
	  <guid isPermaLink="false">http://www.foldl.org//issues/2009-12-28/</guid>
	
	<link>http://feeds.foldl.org/~r/foldl/~3/u8WX4-chn_0/</link>
	
	<pubDate>Mon, 28 Dec 2009 10:47:00 -0600</pubDate>
	<dcterms:modified>2009-12-28T16:47:00Z</dcterms:modified>
	
	<description>&lt;p&gt;Welcome to the tenth issue of The Left Fold, a weekly programming news and
article digest.&lt;/p&gt;

&lt;h1&gt;Programming Languages &amp;amp; Implementations&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2271.html"&gt;EASTL - Electronic Arts Standard Template
Library&lt;/a&gt;:
why and how EA's proprietary C++ STL differs from the standard.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://perl6advent.wordpress.com/2009/12/21/day-21-grammars-and-actions/"&gt;Grammars and Actions in Perl
6&lt;/a&gt;:
how to create a DSL in Perl 6.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://factor-language.blogspot.com/2009/12/freeing-factor-from-gccs-embrace-and.html"&gt;Freeing Factor from gcc's embrace-and-extend C language
extensions&lt;/a&gt;:
what global register variables and the regparm calling convention are, why
Factor used them, and why it no longer does.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://dobbscodetalk.com/index.php?option=com_myblog&amp;amp;show=Cs-Biggest-Mistake.html&amp;amp;Itemid=29"&gt;C's Biggest
Mistake&lt;/a&gt;:
argues that it's conflating arrays with pointers and offers small syntax
changes as a fix.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://haskellwebnews.wordpress.com/2009/12/20/the-year-in-haskell/"&gt;The Year In
Haskell&lt;/a&gt;:
collection of news items; see the "Compilers and Infrastructure" section.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://blogs.azulsystems.com/cliff/2009/12/touching-base.html"&gt;JVM
extensions&lt;/a&gt;:
collection of interesting ideas that OpenJDK has been extended with in a
proprietary codebase.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.method-combination.net/blog/archives/2009/12/22/clos-initialization-protocol.html"&gt;CLOS initialization
protocol&lt;/a&gt;:
features that reduce code duplication in Common Lisp.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://davidrobins.net/?idx=4305"&gt;Python 3: a dearth of modules, a need for
CPAN&lt;/a&gt;: critique of Python's package
infrastructure in comparison with Perl's.
(&lt;a href="http://www.reddit.com/r/Python/comments/aidea/python_3_a_dearth_of_modules_a_need_for_cpan/"&gt;reddit&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Experience Reports&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://antirez.com/post/one-year-of-redis.html"&gt;One year of Redis&lt;/a&gt;:
reflections on running an open-source project for the long term.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.hardcoded.net/articles/cross-toolkit-software.htm"&gt;Cross-Toolkit
Software&lt;/a&gt;:
reflections on reducing code reuse when using different graphics toolkits.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Game Mechanics&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.valvesoftware.com/publications/2009/ai_systems_of_l4d_mike_booth.pdf"&gt;The AI Systems of Left 4
Dead&lt;/a&gt;:
slideshow covering climbing, emotions, pacing, and zombies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://troygilbert.com/2006/10/the-movement-and-attack-mechanics-of-the-legend-of-zelda/"&gt;Movement Mechanics in “The Legend of
Zelda”&lt;/a&gt;: 
how a small movement detail makes the game more playable.
(&lt;a href="http://www.reddit.com/r/programming/comments/ai9pd/movement_mechanics_in_the_legend_of_zelda/"&gt;reddit&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Web Standards&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://daringfireball.net/2009/12/html5_video_unusable"&gt;Why the HTML5 ‘Video’ Element Is Effectively Unusable, Even in Browsers
Which Support It&lt;/a&gt;:
buffering.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://blogs.webtide.com/gregw/entry/how_to_improve_websocket"&gt;How to Improve
Websocket&lt;/a&gt;:
critique of the recently-released protocol for two-way communication from the
browser.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Miscellaneous&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://cacm.acm.org/magazines/2010/1/55760-what-should-we-teach-new-software-developers-why/fulltext"&gt;What Should We Teach New Software Developers?
Why?&lt;/a&gt;:
Stroustrup argues for licensing of developers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://coffeeghost.net/2009/12/22/just-let-basic-die/"&gt;Just Let BASIC Die&lt;/a&gt;:
argues that Python is an acceptable replacement for BASIC as a first language
for young people.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.gnome.org/~michael/blog/copyright-assignment.html"&gt;Some thoughts on Copyright
Assignment&lt;/a&gt;:
discussion of the practice, plus a set of licensing suggestions with
rationales.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/foldl/~4/u8WX4-chn_0" height="1" width="1"/&gt;</description>
	
	
<feedburner:origLink>http://www.foldl.org//issues/2009-12-28/</feedburner:origLink></item>
<item>
	
	<title>the left fold: 2009-12-21</title>
	
	
	  <guid isPermaLink="false">http://www.foldl.org//issues/2009-12-21/</guid>
	
	<link>http://feeds.foldl.org/~r/foldl/~3/UmukI0dPhak/</link>
	
	<pubDate>Mon, 21 Dec 2009 08:10:30 -0600</pubDate>
	<dcterms:modified>2009-12-21T14:10:30Z</dcterms:modified>
	
	<description>&lt;p&gt;Welcome to the ninth issue of The Left Fold, a weekly programming news and
article digest.&lt;/p&gt;

&lt;h1&gt;Development&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://cacm.acm.org/magazines/2009/5/24646-api-design-matters/fulltext"&gt;API Design
Matters&lt;/a&gt;:
critiques existing APIs and provides guidelines.
(&lt;a href="http://lambda-the-ultimate.org/node/3720"&gt;LtU&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://code.flickr.com/blog/2009/12/02/flipping-out/"&gt;Flickr Doesn't
Branch&lt;/a&gt;: how they do
continuous integration and develop new features without branching.
(&lt;a href="http://www.reddit.com/r/programming/comments/aehta/flickr_dont_branch/"&gt;reddit&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Programming Languages and Implementations&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://research.scee.net/files/presentations/gcapaustralia09/Pitfalls_of_Object_Oriented_Programming_GCAP_09.pdf"&gt;Pitfalls of Object-Oriented
Programming&lt;/a&gt;:
highlights the memory impact of OO techniques in the context of graphics
rendering.  Summary starts on page 108.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.infoq.com/news/2009/12/clojure-11-rc1-transients"&gt;Clojure 1.1 Transients and Chunked
Sequences&lt;/a&gt;:
details on the new optimizations.
(&lt;a href="http://www.reddit.com/r/programming/comments/afyav/clojure_11_rc1_out_cuts_some_overhead_of/"&gt;reddit&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.serpentine.com/blog/2009/12/17/making-ghcs-io-manager-more-scalable/"&gt;Making GHC's I/O Manager More
Scalable&lt;/a&gt;:
a quick look into how GHC supports lightweight threads that don't block when
performing I/O.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://code.google.com/p/unladen-swallow/wiki/ProjectPlan#Global_Interpreter_Lock"&gt;Unladen Swallow project no longer optimistic about removing the
GIL&lt;/a&gt;:
the project aiming to improve CPython's performance has recently updated its
plan with a pessimistic outlook on removing the lock that prevents threads
from executing simultaneously in the same process.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://wordaligned.org/articles/python-surprise-me"&gt;Python, Surprise Me!&lt;/a&gt;: a
series of inconsistencies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://kidbasic.sourceforge.net/en/why.html"&gt;Why BASIC is Still Relevant&lt;/a&gt;:
little explanation of the machinery necessary.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://blog.llvm.org/"&gt;LLVM Project Blog&lt;/a&gt;: newly-launched.  The introduction
to load elimination articles are interesting.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Theory&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://papersincomputerscience.org/2009/12/19/efficient-software-based-fault-isolation/"&gt;Efficient Software-Based Fault
Isolation&lt;/a&gt;:
summary and discussion of the paper introducing fault isolation within a
single address space.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://11011110.livejournal.com/135302.html"&gt;Reweighting a Graph for Faster Shortest
Paths&lt;/a&gt;: an introduction to A*
search.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Miscellaneous&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.bobhobbs.com/files/kr_lovecraft.html"&gt;The C Programming Language: 4.10
Recursion&lt;/a&gt;: a fun tale.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://clojure.org/funding"&gt;Funding Clojure&lt;/a&gt;: discussion of the different
funding models for free / open source software.
(&lt;a href="http://www.reddit.com/r/programming/comments/aeixf/funding_clojure/"&gt;reddit&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;The Left Fold&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;I expect the next two weeks to be lean on interesting news and articles due
to the holidays.  If there's not enough for an issue either week, there won't
be one.&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/foldl/~4/UmukI0dPhak" height="1" width="1"/&gt;</description>
	
	
<feedburner:origLink>http://www.foldl.org//issues/2009-12-21/</feedburner:origLink></item>
<item>
	
	<title>the left fold: 2009-12-14</title>
	
	
	  <guid isPermaLink="false">http://www.foldl.org//issues/2009-12-14/</guid>
	
	<link>http://feeds.foldl.org/~r/foldl/~3/ThHXRqi181Q/</link>
	
	<pubDate>Mon, 14 Dec 2009 07:40:20 -0600</pubDate>
	<dcterms:modified>2009-12-14T13:40:20Z</dcterms:modified>
	
	<description>&lt;p&gt;Welcome to the eighth issue of The Left Fold, a weekly programming news and
article digest.&lt;/p&gt;

&lt;h1&gt;Algorithms and Data Structures&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://swtch.com/~rsc/regexp/regexp2.html"&gt;Regular Expression Matching: the Virtual Machine
Approach&lt;/a&gt;: explores several
different ways to implement regular expressions using a virtual machine, with
code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://aigamedev.com/open/articles/sqlite-bot/"&gt;Winning the 2K Bot Prize with a Long-Term Memory Database using
SQLite&lt;/a&gt;: discusses several
parts of an AI first-person-shooter player.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.cforcoding.com/2009/12/programming-puzzles-chess-positions-and.html"&gt;Representing Chess
Positions&lt;/a&gt;:
options and the trade-offs.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Programming Languages&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Sun's "Project Lambda" to add first-class functions, function types, and
lambda expressions to Java kicked off this past week:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://cr.openjdk.java.net/~mr/lambda/straw-man/"&gt;The initial proposal&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://mail.openjdk.java.net/pipermail/lambda-dev/2009-December/000023.html"&gt;Detailed critique from author of a previous
proposal&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.foldl.org//feed/../issues/2009-11-23/"&gt;Previous coverage on the left fold&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The much-delayed ECMAScript 5 (JavaScript) specification was released:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.infoq.com/news/2009/12/ecmascript5"&gt;Summary of changes&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://news.ycombinator.com/item?id=990291"&gt;Why strict mode is interesting&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://developer.yahoo.com/yui/theater/video.php?v=crockford-yuiconf2009-state"&gt;Reflection on standard process, why some items weren't added, and the
future&lt;/a&gt;
(video with transcript)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://ruby-std.netlab.jp/"&gt;Ruby Draft Specification&lt;/a&gt;: to be submitted to
ISO for standardization.  This is an endeavor separate from
&lt;a href="http://rubyspec.org/"&gt;RubySpec&lt;/a&gt;. See also &lt;a href="http://www.ruby-forum.com/topic/169195"&gt;discussion on
ruby-core@&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Experience Reports and Advocacy&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Scaling to efficiently process large datasets: a high-level overview from
&lt;a href="http://idleprocess.wordpress.com/2009/11/24/presentation-summary-high-performance-at-massive-scale-lessons-learned-at-facebook/"&gt;Facebook&lt;/a&gt;
and another from
&lt;a href="http://www.cs.cornell.edu/projects/ladis2009/talks/dean-keynote-ladis2009.pdf"&gt;Google&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.tbray.org/ongoing/When/200x/2009/12/08/WF-Tuning-Clojure"&gt;Tuning Concurrent
Clojure&lt;/a&gt;:
finds it's not the algorithms, it's the JVM options and type hints.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://t-b-o-g.blogspot.com/2009/12/brians-brain-on-common-lisp-take-3.html"&gt;Optimizing Common
Lisp&lt;/a&gt;:
demonstrates how to annotate Common Lisp code for performance and how the
SBCL compiler helps.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://prog21.dadgum.com/53.html"&gt;How I Learned to Stop Worrying and Love Erlang's Process
Dictionary&lt;/a&gt;: using a mutable datastructure
in a purely functional context.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://timepedia.blogspot.com/2009/12/gwt-20-so-good-its-ridiculous.html"&gt;Google Web Toolkit 2.0: So good it's
ridiculous&lt;/a&gt;:
why one developer is excited about the new capabilities of the web
application framework.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Miscellaneous&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://vmware-svga.svn.sourceforge.net/viewvc/vmware-svga/trunk/doc/gpu-wiov.pdf?revision=1"&gt;GPU
Virtualization&lt;/a&gt;:
overview of the options and which approach VMWare has taken.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://timetobleed.com/hot-patching-inlined-functions-with-x86_64-asm-metaprogramming/"&gt;Hot patching inlined
functions&lt;/a&gt;:
part two on runtime-patching the Ruby VM for memory profiling.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/foldl/~4/ThHXRqi181Q" height="1" width="1"/&gt;</description>
	
	
<feedburner:origLink>http://www.foldl.org//issues/2009-12-14/</feedburner:origLink></item>
<item>
	
	<title>the left fold: 2009-12-07</title>
	
	
	  <guid isPermaLink="false">http://www.foldl.org//issues/2009-12-07/</guid>
	
	<link>http://feeds.foldl.org/~r/foldl/~3/_57lpCif1fE/</link>
	
	<pubDate>Sun, 06 Dec 2009 23:05:28 -0600</pubDate>
	<dcterms:modified>2009-12-07T05:05:28Z</dcterms:modified>
	
	<description>&lt;p&gt;Welcome to the seventh issue of The Left Fold, a weekly programming article
digest.  &lt;a href="http://www.foldl.org//feed/../submitting/"&gt;Submissions&lt;/a&gt; for future issues are solicited.&lt;/p&gt;

&lt;h1&gt;Craft&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=pQy22qPH7i4"&gt;Peter Seibel on &lt;em&gt;Coders at
Work&lt;/em&gt;&lt;/a&gt;: video of the author
discussing trends observed while interviewing for the book.  Topics include
how to read code, the importance of altering black box code in an era
dominated by libraries, and the surprising secret to becoming an expert
debugger (hint: 24:30).  Worth the hour running time.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Advocacy&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://blog.postabon.com/why-i-chose-common-lisp-over-python-ruby-and"&gt;Why I chose Common Lisp over Python, Ruby, and
Clojure&lt;/a&gt;:
language and libraries aren't changing too fast.
(&lt;a href="http://www.reddit.com/r/programming/comments/aa9zf/why_i_chose_common_lisp_over_python_ruby_and/"&gt;reddit&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.tbray.org/ongoing/When/200x/2009/12/01/Clojure-Theses"&gt;Eleven Theses on
Clojure&lt;/a&gt;:
takeaway from a few days with the language.
(&lt;a href="http://www.reddit.com/r/programming/comments/aa44a/eleven_theses_on_clojure/"&gt;reddit&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://programming-musings.org/2009/12/03/enjoying-haskell/"&gt;How a type system helps you write better
code&lt;/a&gt;: enforced
documentation and ease of refactoring.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://martin.drashkov.com/2009/11/why-perl-lost-it.html"&gt;Why Perl Lost It&lt;/a&gt;:
reflection on why Perl no longer enjoys the prominence it used to.
(&lt;a href="http://www.reddit.com/r/programming/comments/a9r6s/why_perl_lost_it/"&gt;reddit&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.engineyard.com/blog/2009/j-is-for-jvm-why-the-j-in-jruby/"&gt;Why the 'J' in
JRuby?&lt;/a&gt;:
reflection on using the JVM as a target for Ruby.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Programming Languages&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://papersincomputerscience.org/2009/12/05/on-understanding-data-abstraction-revisited/"&gt;On understanding data abstraction,
revisited&lt;/a&gt;:
the difference between abstract data types and objects, and why it's
important.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://projectfortress.sun.com/Projects/Community/blog/ObjectOrientedTailRecursion"&gt;Why Object-Oriented Languages Need Tail
Calls&lt;/a&gt;:
to preserve object-oriented abstractions.
(&lt;a href="http://lambda-the-ultimate.org/node/3702"&gt;LtU&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://jessenoller.com/2009/12/04/pythons-moratorium-lets-think-about-this/"&gt;Python's
Moratorium&lt;/a&gt;:
discussion by one of the authors of the proposal to freeze changes to
Python's syntax and semantics.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://blogs.sun.com/jrose/entry/tailcalls_meet_invokedynamic"&gt;JVM: tailcalls meet
invokedynamic&lt;/a&gt;:
discussion of the issues around implementing tail calls, especially with the
new invokedynamic.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Miscellaneous&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://robey.lag.net/2009/11/29/more-git.html"&gt;git: why you shouldn't
fast-forward&lt;/a&gt;: it loses
important information.
(&lt;a href="http://www.reddit.com/r/programming/comments/a9m2n/real_world_git_from_a_twitter_dev/"&gt;reddit&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.cxpartners.co.uk/thoughts/web_forms_design_guidelines_an_eyetracking_study.htm"&gt;Web form design guidelines: an eyetracking
study&lt;/a&gt;:
detailed look into the small details that make signup forms usable.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/foldl/~4/_57lpCif1fE" height="1" width="1"/&gt;</description>
	
	
<feedburner:origLink>http://www.foldl.org//issues/2009-12-07/</feedburner:origLink></item>
<item>
	
	<title>the left fold: 2009-11-29</title>
	
	
	  <guid isPermaLink="false">http://www.foldl.org//issues/2009-11-29/</guid>
	
	<link>http://feeds.foldl.org/~r/foldl/~3/n44J0FjcbZM/</link>
	
	<pubDate>Sun, 29 Nov 2009 22:12:00 -0600</pubDate>
	<dcterms:modified>2009-11-30T04:13:25Z</dcterms:modified>
	
	<description>&lt;p&gt;Welcome to the sixth issue of The Left Fold, a weekly programming article
digest.  &lt;a href="http://www.foldl.org//feed/../submitting/"&gt;Submissions&lt;/a&gt; for future issues are solicited.&lt;/p&gt;

&lt;p&gt;This week's issue is short, probably due to the Thanksgiving holiday in the US.&lt;/p&gt;

&lt;h1&gt;Programming Languages&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://code.joejag.com/2009/new-language-features-in-java-7/"&gt;New language features in Java
7&lt;/a&gt;: 
a summary with examples.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.haskell.org/pipermail/haskell/2009-November/021750.html"&gt;Announcing Haskell
2010&lt;/a&gt;: a
new revision of the language has been announced, codifying several existing
language extensions.  This is the first in an anticipated yearly set of
revisions to the language.
(&lt;a href="http://news.ycombinator.com/item?id=959511"&gt;shortlist of changes&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.reddit.com/r/haskell/comments/a8scj/optional_laziness_doesnt_quite_cut_it/"&gt;Optional laziness doesn't quite cut
it&lt;/a&gt;:
argues that strict languages with optional laziness lack modularity compared
to lazy languages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.cforcoding.com/2009/11/reviewing-project-lombok-or-right-way.html"&gt;Reviewing Project
Lombok&lt;/a&gt;:
an attempt at reducing Java boilerplate.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Experience Reports&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://practical-scheme.net/docs/ILC2002.html"&gt;Gluing Things Together - Scheme in the Real-time CG Content
Production&lt;/a&gt;: see in particular
section 6, which discusses pros/cons from experience of using Scheme in place
of C.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://naildrivin5.com/blog/2009/11/23/good-bad-ugly-scala-url-shortener.html"&gt;Writing a URL Shortener in
Scala&lt;/a&gt;:
likes the language, unhappy with build and deployment tools.
(&lt;a href="http://www.reddit.com/r/programming/comments/a7abw/writing_a_url_shortener_in_scala_the_good_the_bad/"&gt;reddit&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://blog.notdot.net/2009/11/Recursion-and-concurrency-with-Go"&gt;Recursion and concurrency with
Go&lt;/a&gt;:
introduction via a parallel search algorithm for Connect-4.  Likes the
concurrency constructs but finds the implementation lacking.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://timetobleed.com/rewrite-your-ruby-vm-at-runtime-to-hot-patch-useful-features/"&gt;Rewrite your Ruby VM at runtime to hot patch useful
features&lt;/a&gt;:
implementing memory profiling with trampolines.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://lbrandy.com/blog/2009/11/the-8-hour-journey-to-a-single-character/"&gt;The 8 hour journey to a single
character&lt;/a&gt;:
debugging story with a moral.
(&lt;a href="http://news.ycombinator.com/item?id=957593"&gt;news.yc&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/foldl/~4/n44J0FjcbZM" height="1" width="1"/&gt;</description>
	
	
<feedburner:origLink>http://www.foldl.org//issues/2009-11-29/</feedburner:origLink></item>

</channel>
</rss>
