
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>No, Dave, it&#039;s just you</title>
	<atom:link href="http://www.leppik.net/david/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.leppik.net/david/blog</link>
	<description>Is it just me or...</description>
	<lastBuildDate>Thu, 05 Apr 2012 17:19:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Thoughts on recursion</title>
		<link>http://www.leppik.net/david/blog/?p=336</link>
		<comments>http://www.leppik.net/david/blog/?p=336#comments</comments>
		<pubDate>Thu, 05 Apr 2012 17:17:53 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.leppik.net/david/blog/?p=336</guid>
		<description><![CDATA[I was poking through Code Complete, 2nd Edition by Steve McConnell recently, after I&#8217;d handed the book to a computer science student.  The book is showing its age, as good object-oriented design is better understood than it used to be, but it remains the best book on how to program well.
One thing that struck [...]]]></description>
			<content:encoded><![CDATA[<p>I was poking through <a href="http://cc2e.com/">Code Complete, 2nd Edition by Steve McConnell</a> recently, after I&#8217;d handed the book to a computer science student.  The book is showing its age, as good object-oriented design is better understood than it used to be, but it remains the best book on how to program well.</p>
<p>One thing that struck me, though, was a particularly strong statement against recursion, on page 397 (2nd Edition):</p>
<blockquote><p>If a programmer who worked for me used recursion to compute a factorial, I&#8217;d hire someone else.</p></blockquote>
<p>To put this in context, McConnell had just presented a few appropriate uses for recursion (quicksort and maze solving [i.e. graph searching]), and is railing against the simple examples one typically learns in computer science classes.  He sees recursion as an advanced technique, which should be avoided unless it provides a clear advantage.</p>
<p>McConnell says recursive algorithms are harder to read.  I don&#8217;t buy that;  it depends on your audience.  But his biggest beef is with the stack.  When a function calls itself over and over again, the stack grows (keeping track of all the variables in all those function calls) and you can run out of memory, the dreaded stack overflow.</p>
<p>In many computer science departments, the first language you learn is Scheme, which doesn&#8217;t support iteration, so you can&#8217;t compute a factorial (or do any other kind of looping) without recursion.  Scheme handles this with <em>tail recursion elimination,</em> where if the last thing a function does is call itself (i.e. tail recursion), the Scheme interpreter overwrites the stack frame&#8211; essentially replacing recursion with a loop.</p>
<p>Since most languages don&#8217;t do tail recursion elimination, and since it can be harder to write a function as tail recursive, I mostly agree with McConnell&#8211; despite my initial reaction.  However, I was thinking about what makes some algorithms amenable to recursion while others are a bad idea.</p>
<p>McConnell&#8217;s examples of good recursion&#8211; quicksort and graph searching&#8211; both involve branching.  Most tree algorithms are recursive:  one might say a tree is a recursive data structure.  The recursive algorithm uses the stack to track the branching, which is cleaner than handling your own stack.  (A good programmer can replace any recursive algorithm with a stack-based one.)  What makes factorials different is that there&#8217;s no branching, so the stack is redundant.  So we have two classes of algorithms:</p>
<ul>
<li>Branching algorithms, which use recursion to track which branches have been visited.</li>
<li>Linear (non-branching) algorithms, which should be written in a tail-recursive manner to avoid stack overflows, or written with loops when the compiler/interpreter doesn&#8217;t support tail recursion elimination.</li>
</ul>
<p>I should add that branching algorithms are also susceptible to stack overflows, but since the stack is providing a necessary service, it can&#8217;t be avoided with a non-recursive algorithm.</p>
<p>So here&#8217;s why I end up agreeing with McConnell:  to properly write non-branching recursive algorithms, you must (1) write them in a tail-recursive manner, and (2) run them with tail call elimination.  After you write a tail-recursive function, it&#8217;s easy to accidentally modify it to no longer be tail-recursive, and the difference can be subtle.  That&#8217;s why Scala provides the <code>tailrec</code> annotation:  so a function that&#8217;s supposed to be tail recursive won&#8217;t compile unless Scala can apply the tail call elimination.  If you need the compiler&#8217;s help to safely apply a technique, it&#8217;s an advanced technique, and shouldn&#8217;t be done lightly.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leppik.net/david/blog/?feed=rss2&amp;p=336</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UCU: better than MVC</title>
		<link>http://www.leppik.net/david/blog/?p=330</link>
		<comments>http://www.leppik.net/david/blog/?p=330#comments</comments>
		<pubDate>Fri, 24 Feb 2012 16:21:03 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.leppik.net/david/blog/?p=330</guid>
		<description><![CDATA[I propose a replacement for the MVC (Model-View-Controller) model for software design.  The problem with MVC is primarily that View and Controller both address the same concern:  the user experience.  After well over a decade, software developers now know better.  My new model keeps the model, but all the words are [...]]]></description>
			<content:encoded><![CDATA[<p>I propose a replacement for the MVC (Model-View-Controller) model for software design.  The problem with MVC is primarily that View and Controller both address the same concern:  the user experience.  After well over a decade, software developers now know better.  My new model keeps the model, but all the words are changed to avoid confusion with MVC.</p>
<p><b>UCU:</b>  Utility — Connector — User Interface</p>
<ul>
<li>A <b>Utility</b> provides a well-defined service.  For example, accessing a file or storing a collection of items.  It has a contract which defines what it does, and its correctness is measured against the contract.  That contract is some combination of documentation, code (method signatures, interfaces, etc.), and a test suite.</li>
<li>A <b>Connector</b> is how components are discovered and constructed.  Thus this category includes constructors, factory methods, and dependency injection.  Connectors should be simple, since a program consists of a rat&#8217;s nest of interconnected components.  Bad connections are hard to test, and even harder to debug, so the only recourse is to make them hard to be buggy.  Constructors should do no extraneous work, except for checking for illegal arguments.  When there&#8217;s an illegal connection, the program should fail immediately.  For example, a constructor for a database utility which takes a database URL should check the syntax of the database URL, but it should not try to connect to the database.  (If the database is inaccessible, that&#8217;s a problem with the database, not with the program trying to access it.)</li>
<li>The <b>User Interface (UI)</b> is the part of the program that relates to how the user perceives and interacts with the program.  Its correctness is measured against the user&#8217;s experience.  (Many practitioners prefer the term UX, User eXperience.  In this case, because you can program an interface but not an experience, I am using UI to refer to the software.)  Humans have different perspectives, and their expectations may change over time.  As a result, UIs are developed using rapid prototyping techniques.  Like a Broadway stage, the UI should be designed for frequent and rapid changes.  UI components that get reused frequently are really utilities, thus classes tend to migrate from UI status to utility status.</li>
</ul>
<p>For more reading, here are <a href="http://www.leppik.net/david/blog/?p=193">my earlier thoughts, before UCU gelled.</a>  And here&#8217;s <a href="http://www.youtube.com/watch?v=XcT4yYu_TTs">a Google Tech Talk on writing clean, testable code</a> which influenced UCU.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leppik.net/david/blog/?feed=rss2&amp;p=330</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Education gaps</title>
		<link>http://www.leppik.net/david/blog/?p=318</link>
		<comments>http://www.leppik.net/david/blog/?p=318#comments</comments>
		<pubDate>Fri, 10 Feb 2012 21:00:21 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.leppik.net/david/blog/?p=318</guid>
		<description><![CDATA[A NY Times story on education disparities explains that the gap between lower income and higher income families has been increasing at an alarming rate.
There are a lot of things going on here.  Wealthier families are spending nine times as much on their kids as lower-income families, up from five times in 1972.  [...]]]></description>
			<content:encoded><![CDATA[<p>A <a href="http://www.nytimes.com/2012/02/10/education/education-gap-grows-between-rich-and-poor-studies-show.html">NY Times story on education disparities</a> explains that the gap between lower income and higher income families has been increasing at an alarming rate.</p>
<p>There are a lot of things going on here.  Wealthier families are spending nine times as much on their kids as lower-income families, up from five times in 1972.  They&#8217;re also spending more time with their kids, particularly before Kindergarten.  And I suspect that&#8217;s the crucial factor.</p>
<p>There are a lot of single-parent families out there where the parent is working multiple part-time jobs just trying to pay the bills.  Compare that with my family, where we have a stay-at-home mom and both parents read to kids every day.  It&#8217;s just not fair.  Don&#8217;t get me wrong:  I don&#8217;t feel guilty that I don&#8217;t deserve it.  I think <em>everyone</em> deserves to have the same opportunities.</p>
<p>The NY Times article says it&#8217;s not just about money, but I think that would be a fine place to start.  Labor protections have been eroding as full time jobs have given way to less regulated part time jobs.  And the free market isn&#8217;t going to fix that—not when the jobs can migrate to other countries.</p>
<p>The inequalities can be solved through services.  My family has benefited from parent training and pre-K services (ECFE, for Early Childhood and Family Education), which the school district provides at little or no cost.  (Not counting taxes.)  Studies have found negligible difference in education between stay-at-home parenting and high quality day care.  (What they&#8217;ve found is that good parents are better than bad day care, and good day care is better than bad parents.)  If parents work, they need affordable, high-quality day care that will prepare kids for Kindergarten.</p>
<p>Some people will call this Socialism, and claim that it will loose to capitalism in the long run.  Well, now we have long term data.  If you look at countries that do take care of their kids—such as the Scandinavian countries—they&#8217;re doing fine.  At best, they&#8217;re doing much better than the US;  at worst, it&#8217;s hard to argue that they&#8217;re being held back.</p>
<p>There are those who say we can&#8217;t afford this.  I say we can&#8217;t afford not to.  For every Steve Jobs or Bill Gates, there are thousands of micro-entrepeneurs who have the drive to build businesses that employ a few people, but collectively do just as much innovation.  We need both kinds of entrepreneur.  Both exist right now because of quality, affordable, available education.  We as a society need to stop penny-pinching away the investments that pay for themselves.  Parents understand this for their own kids.  Why can&#8217;t we agree on it for all kids?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leppik.net/david/blog/?feed=rss2&amp;p=318</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fire the job creators</title>
		<link>http://www.leppik.net/david/blog/?p=311</link>
		<comments>http://www.leppik.net/david/blog/?p=311#comments</comments>
		<pubDate>Fri, 09 Dec 2011 20:19:52 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.leppik.net/david/blog/?p=311</guid>
		<description><![CDATA[As we&#8217;ve all heard, the job of those high-income earners who benefit from Bush-era tax cuts is to create jobs.  But they seem to be slashing jobs more than creating them.  So why do the job creators still have jobs?
In all seriousness, it&#8217;s disingenuous to expect businesses to create jobs.  Whether a [...]]]></description>
			<content:encoded><![CDATA[<p>As we&#8217;ve all heard, the job of those high-income earners who benefit from Bush-era tax cuts is to <strong>create jobs.</strong>  But they seem to be slashing jobs more than creating them.  So why do the job creators still have jobs?</p>
<p>In all seriousness, it&#8217;s disingenuous to expect businesses to create jobs.  Whether a business sees itself as maximizing profit or maximizing value for a customer&#8217;s dollar, employees are expensive and therefore job creation needs to be avoided.</p>
<p>As a software developer, I&#8217;ve probably eliminated at least as many jobs as I&#8217;ve created.  Mostly I&#8217;ve eliminated work, which allows people to work on other things and changes the nature of the job.  That&#8217;s a productivity increase, but not one that gets measured in government statistics.  I think I&#8217;ve generally made life better for those who have used my software, and the same is true for computer programmers in general.  But there&#8217;s no guarantee that new jobs (e.g. webmaster) will outnumber the old ones (e.g. phone answering service.)  My sense is that most job-creating innovation comes from individuals making incremental improvements to their own jobs, or even inventing their own jobs.  And for that kind of innovation you need a middle class with enough of a safety net to take risks.</p>
<p>But it&#8217;s not just me.  Recently NPR interviewed <a href="http://www.npr.org/blogs/itsallpolitics/2011/12/09/143398685/gop-objects-to-millionaires-surtax-millionaires-we-found-not-so-much">millionaires affected by the latest tax proposal</a>, and they didn&#8217;t manage to find a single one whose hiring decisions would be significantly influenced by changes in the tax rate.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leppik.net/david/blog/?feed=rss2&amp;p=311</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recipe: Halloween Surprise Refried Beans</title>
		<link>http://www.leppik.net/david/blog/?p=306</link>
		<comments>http://www.leppik.net/david/blog/?p=306#comments</comments>
		<pubDate>Sat, 05 Nov 2011 03:46:27 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.leppik.net/david/blog/?p=306</guid>
		<description><![CDATA[A surprisingly good post-Halloween variation on my regular refried beans.
Make refried beans with black beans, using the following modifications to give it a rich mole flavor.

Add 0.5 tsp cinnamon when adding the oregano to the onion and cumin.
Chop 3 fun-sized chocolate candy bars in the food processor along with the rest of the refried beans.

Serve [...]]]></description>
			<content:encoded><![CDATA[<p>A surprisingly good post-Halloween variation on my regular refried beans.</p>
<p>Make <a href="http://www.leppik.net/david/blog/?p=84">refried beans</a> with black beans, using the following modifications to give it a rich mole flavor.</p>
<ol>
<li>Add <b>0.5 tsp cinnamon</b> when adding the oregano to the onion and cumin.</li>
<li>Chop <b>3 fun-sized chocolate candy bars</b> in the food processor along with the rest of the refried beans.</li>
</ol>
<p>Serve in soft-shelled tacos or as burritos.  This is rich enough that salsa and cheese shouldn&#8217;t be necessary, but fresh lettuce and tomatoes are a nice addition.  For chocolate, I used two Nestle Crunch bars and one Milky Way.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leppik.net/david/blog/?feed=rss2&amp;p=306</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dennis Richie, RIP</title>
		<link>http://www.leppik.net/david/blog/?p=304</link>
		<comments>http://www.leppik.net/david/blog/?p=304#comments</comments>
		<pubDate>Thu, 13 Oct 2011 18:48:47 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.leppik.net/david/blog/?p=304</guid>
		<description><![CDATA[Dennis Richie was one of the most important computer pioneers.  His language, C, is at the foundation of all operating systems in common use today. If you want some code to run on every smartphone, every desktop, and every server, you write it in C.  If you got rid of all the C [...]]]></description>
			<content:encoded><![CDATA[<p>Dennis Richie was one of the most important computer pioneers.  His language, C, is at the foundation of all operating systems in common use today. If you want some code to run on every smartphone, every desktop, and every server, you write it in C.  If you got rid of all the C compilers, Apple couldn&#8217;t build Mac OS or iOS, Microsoft couldn&#8217;t build Windows, and Google couldn&#8217;t build Android or their servers.  It is no exaggeration to say that all the most important software in the world is written in C.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leppik.net/david/blog/?feed=rss2&amp;p=304</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apple aims for the low end</title>
		<link>http://www.leppik.net/david/blog/?p=300</link>
		<comments>http://www.leppik.net/david/blog/?p=300#comments</comments>
		<pubDate>Mon, 10 Oct 2011 17:00:53 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.leppik.net/david/blog/?p=300</guid>
		<description><![CDATA[John Gruber writes:
Another new pattern: the expansion of the iPhone product line down to free-with-a-contract pricing. Apple did this not by creating a new “low-end” model, but by keeping the 3GS around for another year. This move seems so obvious that I’m disappointed in myself for not having predicted it. Operations wise, the 3GS doesn’t [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://daringfireball.net/2011/10/thoughts_and_observations_iphone_4s">John Gruber writes:</a></p>
<blockquote><p>Another new pattern: the expansion of the iPhone product line down to free-with-a-contract pricing. Apple did this not by creating a new “low-end” model, but by keeping the 3GS around for another year. This move seems so obvious that I’m disappointed in myself for not having predicted it. Operations wise, the 3GS doesn’t just use cheaper components, but because Apple has been making it for two and a half years, they’ve surely streamlined the manufacturing process.</p></blockquote>
<p>The most important cost savings is the value of simply keeping the factory doors open.  For technology components manufacturers, costs break down into two categories:  fixed and operational.  The fixed costs can be huge.  A new chip fab (factory) costs over a billion dollars.  Companies like Intel spend the first several years just paying for the R&#038;D and the factory.  An Intel processor doesn&#8217;t actually start making them any money until they have a newer high-end chip, and the &#8220;obsolete&#8221; chip gets sold at discount prices.  Without the fixed costs, the discount prices have a healthy profit margin.</p>
<p>Video game consoles are built around this model.  They keep roughly the same price and the same specs over their lifetime.  For the first few years, consoles are a huge bargain:  the manufacturers actually loose money on them.  Near the end of their lifetime, the components are laughably obsolete, but the price is justified by the huge library of video games they run.  This drives their design.  Hard disks were added only reluctantly, since their platters don&#8217;t get cheaper.  Chips are good.  And custom anything (processors, controllers, cases) is the best, as R&#038;D is a pure front-end cost which keeps the console distinctive in later years.</p>
<p>Apple knows streamlined manufacturing, and it shows in the iPhone 4&#8217;s design.  Using an antenna and two panes of glass for the case minimizes materials costs.  As does a small battery.  Small and thin, few buttons:  it&#8217;s not just for looks, it&#8217;s to maximize the factory&#8217;s lifetime.  The iPhone 4 was designed to be a third-world discount product.  But for now, it&#8217;s cheaper to keep making the 3GS in an old factory than to put old components in an iPhone 4.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leppik.net/david/blog/?feed=rss2&amp;p=300</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Steve Jobs: the Perfectionist who Shipped</title>
		<link>http://www.leppik.net/david/blog/?p=296</link>
		<comments>http://www.leppik.net/david/blog/?p=296#comments</comments>
		<pubDate>Mon, 10 Oct 2011 15:52:25 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.leppik.net/david/blog/?p=296</guid>
		<description><![CDATA[In thinking back on Steve Jobs, I remember an insight I had years ago, while he was at NeXT.  Most people in the computer industry are either perfectionists or pragmatists.  The perfectionists do well in academia, where it doesn&#8217;t matter that their big ideas take years to turn into practical products (think Donald [...]]]></description>
			<content:encoded><![CDATA[<p>In thinking back on Steve Jobs, I remember an insight I had years ago, while he was at NeXT.  Most people in the computer industry are either perfectionists or pragmatists.  The perfectionists do well in academia, where it doesn&#8217;t matter that their big ideas take years to turn into practical products (think Donald Knuth.)  The pragmatists do well in the private sector, where a steady stream of adequate hacks trump elegant designs.  Think Microsoft under Bill Gates:  they had a reputation for shipping a laughable 1.0, followed by a nearly respectable 2.0, and then kill the competition with 3.0.  Compare the Mozilla Foundation, which disappeared and left MS Internet Explorer with a monopoly while they perfected their browser.  Or think of well-designed but expensive SCSI disks, which got eaten alive by the inconvenient, cost-cutting ATA format.  Or BSD vs. Linux. (Or both vs. GNU Herd, which never shipped.)  And on and on.</p>
<p>Of all the paradoxes of Steve Jobs, this is perhaps the most important.  He was a perfectionist who didn&#8217;t miss deadlines.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leppik.net/david/blog/?feed=rss2&amp;p=296</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Letter to my grandchildren</title>
		<link>http://www.leppik.net/david/blog/?p=292</link>
		<comments>http://www.leppik.net/david/blog/?p=292#comments</comments>
		<pubDate>Sun, 09 Oct 2011 04:09:22 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Seventh Generation]]></category>

		<guid isPermaLink="false">http://www.leppik.net/david/blog/?p=292</guid>
		<description><![CDATA[Here is my letter to my grandchildren which I wrote this summer.  I&#8217;ve scrambled it to discourage you, dear reader, from reading it.  So why am I linking to it? So the Internet Archive and other spiders will find it and archive it permanently.  That way, once leppik.net is long gone, my [...]]]></description>
			<content:encoded><![CDATA[<p>Here is my <a href="http://www.leppik.net/david/7gen/1_OtherGrandchildren.html">letter to my grandchildren</a> which I wrote this summer.  I&#8217;ve scrambled it to discourage you, dear reader, from reading it.  So why am I linking to it? So the <a href="http://archive.org">Internet Archive</a> and other spiders will find it and archive it permanently.  That way, once leppik.net is long gone, my descendants will simply need to know that it was there, and that the URL was http://www.leppik.net/david/7gen/1_OtherGrandchildren.html in 2012. (I hope I&#8217;ll be able to entice the spider to archive it by 2012.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leppik.net/david/blog/?feed=rss2&amp;p=292</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IQ and genetics</title>
		<link>http://www.leppik.net/david/blog/?p=290</link>
		<comments>http://www.leppik.net/david/blog/?p=290#comments</comments>
		<pubDate>Fri, 30 Sep 2011 18:34:24 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.leppik.net/david/blog/?p=290</guid>
		<description><![CDATA[Just watched an interesting lecture on IQ and genomics which makes a number of interesting claims.  First, that IQ is as inheritable as height, which is to say that genes are 70% responsible.  Second, that it appears to be the result of many different genes, each of which contributes a little bit.  [...]]]></description>
			<content:encoded><![CDATA[<p>Just watched an interesting <a href="http://www.youtube.com/watch?v=62jZENi1ed8">lecture on IQ and genomics</a> which makes a number of interesting claims.  First, that IQ is as inheritable as height, which is to say that genes are 70% responsible.  Second, that it appears to be the result of many different genes, each of which contributes a little bit.  (With height, they&#8217;ve found 200 such genes.)  And third, that although no IQ genes have been discovered, we&#8217;ll likely have discovered many of them within the next decade.</p>
<p>This raises many interesting questions, but from an evolutionary standpoint, I see one big one.  If IQ is mostly genetic, and it is a major influence in life success (both of which are claimed), why isn&#8217;t everyone high-IQ?  Is there an evolutionary advantage to a lower IQ (e.g. lower caloric requirements, thus more likely to survive a famine;  or lower birthrate?)</p>
<p>This also raises some interesting quandaries.  It&#8217;s standard practice to do genetic testing on fetuses, to screen for particularly nasty disorders.  It&#8217;s possible to sequence the entire fetal genome.  By the time my kids are grown up, there&#8217;s a good chance they&#8217;ll be able to do prenatal IQ testing which won&#8217;t be as accurate as a real IQ test, but will have decent predictive power.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leppik.net/david/blog/?feed=rss2&amp;p=290</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

