<?xml version="1.0" encoding="utf-8" ?>

<rss version="0.91" >
<channel>
<title>A River of Words</title>
<link>http://blog.joeysmith.com/</link>
<description>Drowning In Stupid</description>
<language>en</language>
<image>
        <url>http://blog.joeysmith.com/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: A River of Words - Drowning In Stupid</title>
        <link>http://blog.joeysmith.com/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>iWorlds</title>
    <link>http://blog.joeysmith.com/articles/117.html</link>

    <description>
        	&lt;p&gt;Saturday.&lt;/p&gt;

	&lt;p&gt;Map information is &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.thanksgivingpoint.org/plan/your_trip/maps.html&#039;);&quot;  href=&quot;http://www.thanksgivingpoint.org/plan/your_trip/maps.html&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

	&lt;p&gt;Be there at 1pm. If you can bring your $15 with you, that&amp;#8217;d be great.&lt;/p&gt;

	&lt;p&gt;This will not be a private session &amp;#8211; those cost like an extra $100. But when I spoke to them earlier this morning, they had no other groups lined up for this time slot, so maybe we&amp;#8217;ll get lucky.&lt;/p&gt; 
    </description>
</item>
<item>
    <title>A Person, a Painting and a Play</title>
    <link>http://blog.joeysmith.com/articles/116.html</link>

    <description>
        	&lt;p&gt;I had promised some time ago to post this, and am just now getting around to it &amp;#8211; unfortunately, some of the content has been lost in the interim. Below is the only version my review &amp;#8220;A Person, a Painting, and a Play&amp;#8221; from the &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/trekwest5.blogspot.com&#039;);&quot;  href=&quot;http://trekwest5.blogspot.com&quot;&gt;TrekWest5&lt;/a&gt; segment &amp;#8220;Joey&amp;#8217;s Culture Corner.&amp;#8221;&lt;/p&gt;

	&lt;p&gt;Taking it from the end, the play is Steven Sondheim&amp;#8217;s &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.amazon.com/Sunday-Park-George-Mandy-Patinkin/dp/630530209X&#039;);&quot;  href=&quot;http://www.amazon.com/Sunday-Park-George-Mandy-Patinkin/dp/630530209X&quot;&gt;Sunday in the Park with George&lt;/a&gt;, the Painting is &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/en.wikipedia.org/wiki/A_Sunday_Afternoon_on_the_Island_of_La_Grande_Jatte&#039;);&quot;  href=&quot;http://en.wikipedia.org/wiki/A_Sunday_Afternoon_on_the_Island_of_La_Grande_Jatte&quot;&gt;A Sunday Afternoon on the Island of La Grande Jatte&lt;/a&gt;, and the Person is the painter, the French Post-Impressionist and the father of Pointillism, &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/en.wikipedia.org/wiki/Georges_Seurat&#039;);&quot;  href=&quot;http://en.wikipedia.org/wiki/Georges_Seurat&quot;&gt;Georges Seurat&lt;/a&gt;.&lt;/p&gt;

	&lt;p&gt;On its surface, &amp;#8220;Sunday in the Park with George&amp;#8221; is a play about the birth of Pointillism &amp;#8211; specifically, about the painting of the &amp;#8220;A Sunday Afternoon on the Island of La Grande Jatte&amp;#8221; &amp;#8211; but I think that this is Sondheim&amp;#8217;s most deeply personal piece. It&amp;#8217;s all about the cost of dedication to an ideal, and about the trade-offs we make every day. &amp;#8220;Work is what you do for others &amp;#8211; art is what you do for yourself!&amp;#8221; decries one of the characters early in the play, and Seraut himself &amp;#8211; who is clearly a stand-in for Sondheim &amp;#8211; tells one of his critics &amp;#8220;I do not paint for your approval&amp;#8221;. Last year, Sondheim published the first of two volumes where he talks in depth about his musicals and their lyrics&amp;#8230;I think it&amp;#8217;s telling that the title he selected for &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.amazon.com/Finishing-Hat-Collected-1954-1981-Principles/dp/0679439072&#039;);&quot;  href=&quot;http://www.amazon.com/Finishing-Hat-Collected-1954-1981-Principles/dp/0679439072&quot;&gt;this book&lt;/a&gt; is &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.youtube.com/watch?v=ducG55pfCMQ#t=0m35&#039;);&quot;  href=&quot;http://www.youtube.com/watch?v=ducG55pfCMQ#t=0m35&quot;&gt;Finishing the Hat&lt;/a&gt;. While &amp;#8220;Sunday in the Park&amp;#8221; was not much of a critical success &amp;#8211; and was a financial failure &amp;#8211; it is one of only eight musicals to ever win the &amp;#8220;Pulitzer Prize for Drama&amp;#8221;. I give this musical the strongest possible positive recommendation. Probably my favorite thing about the musical is how Sondheim incorporated the musical technique of &amp;#8220;Pointillism&amp;#8221; &amp;#8211; see the musical number &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.youtube.com/watch?v=sgQJSomGwDc#t=0m33s&#039;);&quot;  href=&quot;http://www.youtube.com/watch?v=sgQJSomGwDc#t=0m33s&quot;&gt;Color and Light&lt;/a&gt; for an excellent example.&lt;/p&gt;

	&lt;p&gt;The painting,  &amp;#8220;A Sunday Afternoon on the Island of La Grande Jatte&amp;#8221; is probably my favorite painting &lt;span class=&quot;caps&quot;&gt;NOT&lt;/span&gt; by Monet, and is probably the most famous example of Pointillism. The painting is 6&amp;#8217;10&amp;#8221; x 10&amp;#8217;1&amp;#8221; &amp;#8211; a &lt;span class=&quot;caps&quot;&gt;MASSIVE&lt;/span&gt; work, it took more than two years to finish. An absolutely fascinating principal of Pointillism is that it uniquely engages the brain in a behaviour known as &amp;#8220;Neuroplasticity&amp;#8221;, which refers to the ability of the human brain to change as a result of one&amp;#8217;s experience. In his 2003 book &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/blogcritics.org/books/article/the-mind-and-the-brain/&#039;);&quot;  href=&quot;http://blogcritics.org/books/article/the-mind-and-the-brain/&quot;&gt;The Mind and the Brain: Neuroplasticity and the Power of Mental Force&lt;/a&gt;, Jeffrey Schwartz wrote:&lt;/p&gt;

&lt;blockquote style=&quot;color: #770000&quot;&gt;If your mind has been primed with the theory of pointillism&amp;#8230;then you will see a Seurat painting in a very different way than if you are ignorant of his technique. Yet the photons of light reflecting off the Seurat&amp;#8230;are identical to the photons striking the retina of a less knowledgeable viewer.&lt;/blockquote&gt;

	&lt;p&gt;Seurat himself, and his impact on the world at large, is nothing less than astounding. There are very few places in this world today we can turn without seeing the influences of the theory behind divisionism and pointillism &amp;#8211; film and photos, televisions and computer monitors, airbrushes and spray paint, digital cameras and cell phone screens &amp;#8211; these all operate on the same basic principles of pointillism. The theories of color and vision that were explored in the work of Seurat and his contemporaries have had a profound effect on every part of our modern world.&lt;/p&gt;

	&lt;p&gt;So &amp;#8211; Georges Seurat, &amp;#8220;A Sunday Afternoon on the Island of La Grande Jatte&amp;#8221;, and Sondheim&amp;#8217;s &amp;#8220;Sunday in the Park with George&amp;#8221; &amp;#8211; I heartily endorse them all.&lt;/p&gt; 
    </description>
</item>
<item>
    <title>Pylons &quot;Classic&quot; (pre-pyramid) and LDAP Auth</title>
    <link>http://blog.joeysmith.com/articles/114.html</link>

    <description>
        	&lt;p&gt;It took me a long time to figure this out, I didn&amp;#8217;t want it to end up locked in my head, so here&amp;#8217;s a rough guide on how I managed to get a pylons 0.9.7 project to do &lt;span class=&quot;caps&quot;&gt;LDAP&lt;/span&gt; authentication. All of the below is done in config/middleware.py.&lt;/p&gt;

	&lt;p&gt;The key points are:
	&lt;ol&gt;
		&lt;li&gt;&amp;#8220;import ldap&amp;#8221; (for the obvious reason) and &amp;#8220;from paste.auth.basic import AuthBasicHandler&amp;#8221;&lt;/li&gt;
		&lt;li&gt;Wrap the stacked &lt;span class=&quot;caps&quot;&gt;WSGI&lt;/span&gt; &amp;#8216;app&amp;#8217; object in the AuthBasicHandler you just imported: &lt;code&gt;app = AuthBasicHandler(app, &amp;#39;The value you want to appear on the browser dialog box&amp;#39;, yourAuthFunctionHere)&lt;/code&gt;&lt;/li&gt;
		&lt;li&gt;Define an auth function &amp;#8220;yourAuthFunctionHere(requestEnvironment, username, password)&amp;#8221;. Some tricky bits:
	&lt;ol&gt;
		&lt;li&gt;If this function returns &amp;#8220;True&amp;#8221;, the request will proceed and there will be a new key in the Request object named &amp;#8216;REMOTE_USER&amp;#8217; that contains the passed username.&lt;/li&gt;
		&lt;li&gt;If this function returns &amp;#8220;False&amp;#8221;, the user will be prompted again until it succeeds. (I should probably find a way to limit these so people cannot just keep guessing.)&lt;/li&gt;
		&lt;li&gt;&lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/pypi.python.org/pypi/python-ldap/2.4.1&#039;);&quot;  href=&quot;http://pypi.python.org/pypi/python-ldap/2.4.1&quot;&gt;Python&amp;#8217;s LDAP&lt;/a&gt; has some strange behaviours:&lt;/li&gt;
	&lt;ul&gt;
		&lt;li&gt;Do ldap.initialize outside the auth function or you will swamp the &lt;span class=&quot;caps&quot;&gt;LDAP&lt;/span&gt; server with bind requests&lt;/li&gt;
		&lt;li&gt;Use synchronous bind (&amp;#8216;bind_s&amp;#8217; as opposed to &amp;#8216;bind&amp;#8217;) &amp;#8211; asynchronous bind in the &lt;span class=&quot;caps&quot;&gt;WSGI&lt;/span&gt; middleware layer caused some really bizarre behaviour here, including segfaults&lt;/li&gt;
		&lt;li&gt;Trap ldap.INVALID_CREDENTIALS and return False when it is raised, or watch all invalid logins crash the server process&lt;/li&gt;
		&lt;li&gt;bind (and bind_s) return a tuple, if the first item in the tuple is int(97), the bind worked &amp;#8211; otherwise, they might have bound but as an anonymous user, and we need to fail&lt;/li&gt;
		&lt;li&gt;the second item in that tuple is a list of messages from the server &amp;#8211; I&amp;#8217;m not handling those at all today, becuase in the sole case we&amp;#8217;re interested in (97, or &amp;#8220;auth&amp;#8221;),  the messages appear to be blank in our environment &amp;#8211; there&amp;#8217;s no reason to believe this is consistent, and I should probably research this further at some point to provide meaningful feedback to the user on failed auth.&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
		&lt;li&gt;You can&amp;#8217;t touch the session from within the &lt;span class=&quot;caps&quot;&gt;WSGI&lt;/span&gt; middleware layer&lt;/li&gt;
	&lt;/ol&gt;&lt;/p&gt;

	&lt;p&gt;All of this was done because a new server in our datacenter doesn&amp;#8217;t have packages for the old build of Apache that we used to configure our &lt;span class=&quot;caps&quot;&gt;LDAP&lt;/span&gt; auth back in the day. I&amp;#8217;m actually quite pleased at how the new system works, and am glad to be rid of that Apache+&lt;span class=&quot;caps&quot;&gt;PHP&lt;/span&gt; millstone that&amp;#8217;s been lurking as a dependancy in all of our Pylons projects simply for the &lt;span class=&quot;caps&quot;&gt;LDAP&lt;/span&gt; authentication solution.&lt;/p&gt; 
    </description>
</item>
<item>
    <title>Watchmen: A Response to Radar</title>
    <link>http://blog.joeysmith.com/articles/93.html</link>

    <description>
        	&lt;p&gt;[Edited on 2009-07-13 to include link to Radar&amp;#8217;s original article, as I just noticed I never linked to it directly]&lt;/p&gt;

	&lt;p&gt;[If you don&amp;#8217;t know how Watchmen ends, stop reading now. This is a good rule of thumb for my blog: I have no qualms about &amp;#8220;spoiling&amp;#8221; &amp;#8211; if you&amp;#8217;re reading an article discussing a subject, you&amp;#8217;d darn well better be familiar with the material.]&lt;/p&gt;

	&lt;p&gt;Let me start here by pointing out something I don&amp;#8217;t know that I&amp;#8217;ve ever mentioned. I owe &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.thehomestarmy.com/s9y/index.php?/authors/1-The-Mad-Giggler&#039;);&quot;  href=&quot;http://www.thehomestarmy.com/s9y/index.php?/authors/1-The-Mad-Giggler&quot;&gt;The Mad Giggler&lt;/a&gt; a deep debt &amp;#8211; back when The Homestarmy looked like &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/thehomestarmy.com/andy_andco_index.php&#039;);&quot;  href=&quot;http://thehomestarmy.com/andy_andco_index.php&quot;&gt;this&lt;/a&gt;, asked me if I would be interested in writing a &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/thehomestarmy.com/article_viewer.php?article=170804_joey&#039;);&quot;  href=&quot;http://thehomestarmy.com/article_viewer.php?article=170804_joey&quot;&gt;Guest Post&lt;/a&gt; on his blog/web site, thehomestarmy.com. To that point, I didn&amp;#8217;t get it &amp;#8211; the whole concept of blogs escaped me &amp;#8211; and frankly, pissed me off a little bit. (Hmm&amp;#8230;sort like Facebook and Twitter do today &amp;#8211; no, no; don&amp;#8217;t chase that particular dragon right now, Joey, you&amp;#8217;re going somewhere with this post&amp;#8230;). If it weren&amp;#8217;t for him encouraging me, I might have missed out on a number of incredible things, including the two blogs I write on, as well as my podcast with The One Named Peter. Thank you, MG.&lt;/p&gt;

	&lt;p&gt;Last night, or early this morning, over at &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.thehomestarmy.com/s9y&#039;);&quot;  href=&quot;http://www.thehomestarmy.com/s9y&quot;&gt;The Homestarmy&lt;/a&gt; (as it is &lt;span class=&quot;caps&quot;&gt;TODAY&lt;/span&gt;), &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.thehomestarmy.com/s9y/index.php?/archives/1565-The-Watchmen-Novel-or-just-Graphic.html&#039;);&quot;  href=&quot;http://www.thehomestarmy.com/s9y/index.php?/archives/1565-The-Watchmen-Novel-or-just-Graphic.html&quot;&gt;Radar posted what I believe is his longest entry to date&lt;/a&gt; &lt;/p&gt;

	&lt;p&gt;[&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;wait, let&amp;#8217;s just check that&amp;#8230;&lt;pre&gt;
    select title from blog_entries where authorid = 8 order by length(body)+length(extended) desc;
    16305: Where I Boldly Went
    11273: The Watchmen: Novel or just Graphic?&lt;/pre&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Nope, turns out &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/thehomestarmy.com/s9y/index.php?/archives/1424-Where-I-Boldly-Went.html&#039;);&quot;  href=&quot;http://thehomestarmy.com/s9y/index.php?/archives/1424-Where-I-Boldly-Went.html&quot;&gt;this&lt;/a&gt; has that honor &amp;#8211; dangit, Joey, stay on topic!&lt;br /&gt;
]&lt;/p&gt;

	&lt;p&gt;...discussing graphic novels in general, but focused mostly on Watchmen. Radar made a lot of apologies for the quality of his writing (which turned out to be entirely unnecessary, man), so I&amp;#8217;ll follow his pattern &amp;#8211; the main body of this article was written between the time Radar posted his article (around 01:00 on Thursday) and the time I went to bed. In between putting my thoughts down here, I was also working, and so wasn&amp;#8217;t giving the care I usually prefer to give to my writing. However, at this point, I&amp;#8217;m so late in publishing this response, I&amp;#8217;m more interested in getting it out than in quality-checking it, so I&amp;#8217;m sorry if there&amp;#8217;s anything wrong, rude, offensive, or dumb.&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://blog.joeysmith.com/articles/93.html#extended&quot;&gt;Continue reading &quot;Watchmen: A Response to Radar&quot;&lt;/a&gt;
    </description>
</item>
<item>
    <title>Peter Nash Day</title>
    <link>http://blog.joeysmith.com/articles/113.html</link>

    <description>
        	&lt;p&gt;As most of you know, December 2nd is Peter Nash Day. I thought I&amp;#8217;d share some of the photos that are pouring in from around the world demonstrating how Peter Nash Day is celebrated &amp;#8211; feel free to add a link to your own Peter Nash Day celebration photojournal in the comments! More will be added as they come in, so keep watching this space.&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://blog.joeysmith.com/articles/113.html#extended&quot;&gt;Continue reading &quot;Peter Nash Day&quot;&lt;/a&gt;
    </description>
</item>
<item>
    <title>AlivePDF and Pylons</title>
    <link>http://blog.joeysmith.com/articles/111.html</link>

    <description>
        	&lt;p&gt;I have a project at work where we are using Pylons/paster as the web service provider. One of the &amp;#8220;clients&amp;#8221; of this service is written in Flex/Flash, and had as a component the &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/alivepdf.bytearray.org/&#039;);&quot;  href=&quot;http://alivepdf.bytearray.org/&quot;&gt;AlivePDF&lt;/a&gt; AS3 library for generating a static &lt;span class=&quot;caps&quot;&gt;PDF&lt;/span&gt; of the Flash content. &lt;/p&gt;

	&lt;p&gt;Unfortunately, because Flash cannot save content locally, in order to actually &lt;span class=&quot;caps&quot;&gt;GET&lt;/span&gt; this &lt;span class=&quot;caps&quot;&gt;PDF&lt;/span&gt; content back to the user, AlivePDF posts a byte array to the service and expects the service to bundle that as a &lt;span class=&quot;caps&quot;&gt;PDF&lt;/span&gt; and send it back. They provide a &amp;#8220;content.php&amp;#8221; file as an example &amp;#8211; which, frankly, is some pretty inscrutable code until you manage to figure out what it&amp;#8217;s working around. So when one of my employees (the one who selected AlivePDF in the first place) sent me the &lt;span class=&quot;caps&quot;&gt;PHP&lt;/span&gt; file, it took as long to understand what he wanted as it did to come up with a Pylons solution. You can find the latter bit below &amp;#8211; replace ${service} and ${controller} with your actual values through-out, and trim the ellipses (they are there to indicate there may be additional context on either side of the line I&amp;#8217;m giving you):&lt;/p&gt;

	&lt;p&gt;&lt;code style=&quot;white-space: pre&quot;&gt;&lt;br /&gt;
${service}/config/routing.py:&lt;br /&gt;
def make_map():&lt;br /&gt;
...
	map.connect(&amp;#8217;/${controller}/create.php&amp;#8217;, controller=&amp;#8217;${controller}&amp;#8217;, action=&amp;#8216;pdf&amp;#8217;)     # put this before the default routes, if you have any&lt;br /&gt;
...&lt;/p&gt;

	&lt;p&gt;${service}/controllers/${controller}.py:&lt;br /&gt;
Class ${controller}(BaseController):&lt;br /&gt;
...
    def pdf(self):
        response.headers[&amp;#8216;Content-Type&amp;#8217;] = request.environ[&amp;#8216;CONTENT_TYPE&amp;#8217;]
        response.headers[&amp;#8216;Content-Disposition&amp;#8217;] = &amp;#8216;inline; filename=&amp;#8221;%s&amp;#8221;&amp;#8217; % request.GET[&amp;#8216;name&amp;#8217;]
        return request.environ[&amp;#8216;wsgi.input&amp;#8217;].read(int(request.environ[&amp;#8216;CONTENT_LENGTH&amp;#8217;]))&lt;br /&gt;
...&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt; 
    </description>
</item>
<item>
    <title>SSL Certificate and SSH Key Updated</title>
    <link>http://blog.joeysmith.com/articles/110.html</link>

    <description>
        	&lt;p&gt;If you have been using &lt;span class=&quot;caps&quot;&gt;SSL&lt;/span&gt; or &lt;span class=&quot;caps&quot;&gt;SSH&lt;/span&gt; to access any of your joeysmith.com, hashphp.org, or homestarmy.com services, please be aware that our previous certificates and keys have expired. I have generated a new one, and your software should prompt you on connect to approve the certificate/key.&lt;/p&gt;

	&lt;p&gt;&lt;span class=&quot;caps&quot;&gt;SSL&lt;/span&gt; information:&lt;br /&gt;
SHA1 Fingerprint: 3261 57CE 794D 216D 7411 AB45 19EC F2CE 254A FD9B&lt;br /&gt;
MD5 Fingerprint: 850A 6195 5B5D EA5D 9D0F 36B4 9FC1 F819&lt;/p&gt;

	&lt;p&gt;&lt;span class=&quot;caps&quot;&gt;SSH&lt;/span&gt; Fingerprint:&lt;br /&gt;
4e:6d:6f:6b:53:1c:50:f7:1b:dc:98:9c:c8:49:8b:cf&lt;/p&gt;

	&lt;p&gt;If you feel you need to contact me to verify this post, please don&amp;#8217;t hesitate to use my Google Voice information or my personal cell phone. &lt;/p&gt; 
    </description>
</item>
<item>
    <title>Day 09: On Lisp and Ender's Game</title>
    <link>http://blog.joeysmith.com/articles/60.html</link>

    <description>
        	&lt;p&gt;I first came across Paul Graham when I read his &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.paulgraham.com/onlisptext.html&#039;);&quot;  href=&quot;http://www.paulgraham.com/onlisptext.html&quot;&gt;On Lisp&lt;/a&gt; &amp;#8211; however, I found many of his other writings very interesting. If you haven&amp;#8217;t read it, I&amp;#8217;d like to recommend &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.paulgraham.com/nerds.html&#039;);&quot;  href=&quot;http://www.paulgraham.com/nerds.html&quot;&gt;Why Nerds are Unpopular&lt;/a&gt; as a starting point.&lt;/p&gt;

	&lt;p&gt;The first Orson Scott Card I ever read was almost certainly the original 1978 &amp;#8220;Novelette&amp;#8221; version of &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.incwell.com/ipulp/endersGAME/index.html&#039;);&quot;  href=&quot;http://www.incwell.com/ipulp/endersGAME/index.html&quot;&gt;Ender&amp;#8217;s Game&lt;/a&gt;&lt;/p&gt; 
    </description>
</item>
<item>
    <title>C.J. Date's SQL and Relational Theory Master Class</title>
    <link>http://blog.joeysmith.com/articles/109.html</link>

    <description>
        	&lt;p&gt;I&amp;#8217;ve recently been reading through &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/oreilly.com/catalog/9780596523060/&#039;);&quot;  href=&quot;http://oreilly.com/catalog/9780596523060/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;SQL&lt;/span&gt; and Relational Theory&lt;/a&gt; by &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/en.wikipedia.org/wiki/Christopher_J._Date&#039;);&quot;  href=&quot;http://en.wikipedia.org/wiki/Christopher_J._Date&quot;&gt;C.J. Date&lt;/a&gt;, who was deeply involved in the original formulation of &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/en.wikipedia.org/wiki/Relational_model&#039;);&quot;  href=&quot;http://en.wikipedia.org/wiki/Relational_model&quot;&gt;relational model&lt;/a&gt;. Working my way through the book, I discovered that O&amp;#8217;Reilly and Associates have also produced a series of videos where Date lectures on the content of the book, and I&amp;#8217;ve really been enjoying it. You can purchase them outright for about $300 &lt;span class=&quot;caps&quot;&gt;USD&lt;/span&gt;, or you can subscribe to one month of &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/ssl.safaribooksonline.com/subscribe&#039;);&quot;  href=&quot;https://ssl.safaribooksonline.com/subscribe&quot;&gt;Safari&lt;/a&gt; via their &amp;#8220;Library&amp;#8221; plan for ~$43 and stream them from there. All together, the videos run just over 16.5 hours &amp;#8211; here&amp;#8217;s a breakdown of the topics and the durations.&lt;/p&gt;

	&lt;p&gt;1:19:07 Setting the Scene&lt;br /&gt;
1:18:08 Types and domains&lt;br /&gt;
0:57:28 Tuples and Relations, Rows and Tables&lt;br /&gt;
0:50:47 No Duplicates, No Nulls&lt;br /&gt;
1:04:56 Base Relvars, Base Tables&lt;br /&gt;
3:15:15 &lt;span class=&quot;caps&quot;&gt;SQL&lt;/span&gt; and Relational Algebra I: The Original Operators&lt;br /&gt;
1:19:06 &lt;span class=&quot;caps&quot;&gt;SQL&lt;/span&gt; and Constraints&lt;br /&gt;
0:56:26 &lt;span class=&quot;caps&quot;&gt;SQL&lt;/span&gt; and Views&lt;br /&gt;
2:04:04 &lt;span class=&quot;caps&quot;&gt;SQL&lt;/span&gt; and logic I: Relational Calculus Part 1&lt;br /&gt;
0:46:39 &lt;span class=&quot;caps&quot;&gt;SQL&lt;/span&gt; and Logic II: Using Logic to Write &lt;span class=&quot;caps&quot;&gt;SQL&lt;/span&gt; Code &lt;br /&gt;
0:20:56 Further &lt;span class=&quot;caps&quot;&gt;SQL&lt;/span&gt; Topics&lt;br /&gt;
0:38:53 The Relational Model&lt;br /&gt;
0:32:21 A Relational Approach to Missing Information&lt;br /&gt;
1:08:31 Database Design Theory&lt;/p&gt;

	&lt;p&gt;If you work with databases for a living, I really think it would be worth your time to sit through these.&lt;/p&gt; 
    </description>
</item>

</channel>
</rss>

