<?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>Lispian</title>
	<atom:link href="http://lispian.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://lispian.net</link>
	<description>Random meanderings on whatever catches my fancy</description>
	<lastBuildDate>Thu, 29 Dec 2011 19:32:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>The insanity of &#8220;shareholder value&#8221;</title>
		<link>http://lispian.net/2011/12/29/the-insanity-of-shareholder-value/</link>
		<comments>http://lispian.net/2011/12/29/the-insanity-of-shareholder-value/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 19:32:06 +0000</pubDate>
		<dc:creator>lispian</dc:creator>
				<category><![CDATA[Aggravations]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Entrepreneurship]]></category>
		<category><![CDATA[Stupidity]]></category>

		<guid isPermaLink="false">http://lispian.net/?p=910</guid>
		<description><![CDATA[I&#8217;ve been saying this for years. Many times those with &#8220;MBAs&#8221; have told me I&#8217;m wrong. Yet, deep down, I knew something was remiss. Something was just absolutely, 100% wrong. Why? Because it made no sense to have a company focus on guessing what their balance sheet was going to look like a year from now when every person I know would not be able to hit a personal target within 1% if they tried. Life just has too many variables. And the total focus on guessing is detrimental, as I&#8217;ve personally experienced in certain large firms where senior executives run around &#8220;managing expectations&#8221; as opposed to pleasing the customer. The irony is that there&#8217;s this insane hire/fire mentality that goes with it, removing talent and thus impacting long-term viability. It&#8217;s simply maddening. One of the things I liked about Steve Jobs was his total disregard for Wall Street. He focused on pleasing his customers and proved that an insane focus on the consumer was all that really mattered. The pity is that so few have comprehended this fact even while they try to &#8220;replicate&#8221; Jobs&#8217; success. I&#8217;m hoping well abandon the &#8220;dumbest idea in the world&#8221;, as Welch puts [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.forbes.com/sites/stevedenning/2011/11/28/maximizing-shareholder-value-the-dumbest-idea-in-the-world/">I&#8217;ve been saying this for years.</a> Many times those with &#8220;MBAs&#8221; have told me I&#8217;m wrong. Yet, deep down, I knew something was remiss. Something was just absolutely, 100% wrong. Why? Because it made no sense to have a company focus on guessing what their balance sheet was going to look like a year from now when every person I know would not be able to hit a personal target within 1% if they tried. Life just has too many variables. And the total focus on guessing is detrimental, as I&#8217;ve personally experienced in certain large firms where senior executives run around &#8220;managing expectations&#8221; as opposed to pleasing the customer. The irony is that there&#8217;s this insane hire/fire mentality that goes with it, removing talent and thus impacting long-term viability. It&#8217;s simply maddening. </p>
<p>One of the things I liked about Steve Jobs was his total disregard for Wall Street. He focused on pleasing his customers and proved that an insane focus on the consumer was all that really mattered. The pity is that so few have comprehended this fact even while they try to &#8220;replicate&#8221; Jobs&#8217; success. </p>
<p>I&#8217;m hoping well abandon the &#8220;dumbest idea in the world&#8221;, as Welch puts it. It&#8217;s time. In fact, it&#8217;s past due for CEOs and others in senior management to focus on the needs of their customers. The hijacking of corporate America by Wall Street needs to end so that the very fabric of the West &#8212; the middle class &#8212; isn&#8217;t utterly destroyed.</p>
]]></content:encoded>
			<wfw:commentRss>http://lispian.net/2011/12/29/the-insanity-of-shareholder-value/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stupid found between chair and keyboard</title>
		<link>http://lispian.net/2011/12/21/stupid-found-between-chair-and-keyboard/</link>
		<comments>http://lispian.net/2011/12/21/stupid-found-between-chair-and-keyboard/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 18:19:08 +0000</pubDate>
		<dc:creator>lispian</dc:creator>
				<category><![CDATA[Aggravations]]></category>
		<category><![CDATA[Pity of It All]]></category>
		<category><![CDATA[Stupidity]]></category>

		<guid isPermaLink="false">http://lispian.net/?p=907</guid>
		<description><![CDATA[It seems there&#8217;s a lot of &#8220;stupid&#8221; going about nowadays. No idea if it&#8217;s the internet that&#8217;s just giving people more voice or if stupid is just becoming more common. Like many people I get a lot of my news online. Thus, I get to read it at my computer and, if something is interesting, save it. I read from various sources, conservative, liberal and neutral alike. It&#8217;s best to stay as best informed as possible so as to minimize the likelihood of exacerbating any given bias. But it seems some people are just incapable of doing that. They cling to sites that expound their personal biases. Some of the beliefs are mistaken but harmless, but others are harmful. And the problem is that people with a similar attitude then read the associated articles, sometimes purported to be &#8220;news&#8221;, thus reinforcing their prejudices or non-scientific beliefs. And because of some of these misguided beliefs people have died &#8212; such as those unwilling to take common vaccines, for example. Again, I don&#8217;t know the cause &#8212; poor education, the long-standing glorification of the idiot, the hate for anyone intelligent, &#8230; who knows. But what I do see is that these idiots [...]]]></description>
			<content:encoded><![CDATA[<p>It seems there&#8217;s a lot of &#8220;stupid&#8221; going about nowadays. No idea if it&#8217;s the internet that&#8217;s just giving people more voice or if stupid is just becoming more common.</p>
<p>Like many people I get a lot of my news online. Thus, I get to read it at my computer and, if something is interesting, save it. I read from various sources, conservative, liberal and neutral alike. It&#8217;s best to stay as best informed as possible so as to minimize the likelihood of exacerbating any given bias. But it seems some people are just incapable of doing that. They cling to sites that expound their personal biases. Some of the beliefs are mistaken but harmless, but others are harmful. And the problem is that people with a similar attitude then read the associated articles, sometimes purported to be &#8220;news&#8221;, thus reinforcing their prejudices or non-scientific beliefs. And because of some of these misguided beliefs people have died &#8212; such as those unwilling to take common vaccines, for example.</p>
<p>Again, I don&#8217;t know the cause &#8212; poor education, the long-standing glorification of the idiot, the hate for anyone intelligent, &#8230; who knows. But what I do see is that these idiots congregate and then use their congress to espouse stupid things. Because they tend to vote in blocks, stupid things get enacted by governments. This is all not good. And yet, the irony is the very systems these people are using to congregate and push their various stupid ideas was created by the very type of people they loathe. For if it were up to those that seem to hate anything advanced or intelligent we&#8217;d still be swinging from trees.</p>
]]></content:encoded>
			<wfw:commentRss>http://lispian.net/2011/12/21/stupid-found-between-chair-and-keyboard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Wonder&#8230;</title>
		<link>http://lispian.net/2011/12/12/i-wonder/</link>
		<comments>http://lispian.net/2011/12/12/i-wonder/#comments</comments>
		<pubDate>Tue, 13 Dec 2011 01:24:40 +0000</pubDate>
		<dc:creator>lispian</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Philosophy]]></category>

		<guid isPermaLink="false">http://lispian.net/?p=904</guid>
		<description><![CDATA[If the cost associated with complaining is eliminated does that mean that negative reviews become worthless?]]></description>
			<content:encoded><![CDATA[<p>If the cost associated with complaining is eliminated does that mean that negative reviews become worthless?</p>
]]></content:encoded>
			<wfw:commentRss>http://lispian.net/2011/12/12/i-wonder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Red Fife and Loaves</title>
		<link>http://lispian.net/2011/12/12/red-fife-and-loaves/</link>
		<comments>http://lispian.net/2011/12/12/red-fife-and-loaves/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 05:04:13 +0000</pubDate>
		<dc:creator>lispian</dc:creator>
				<category><![CDATA[Cooking and Baking]]></category>
		<category><![CDATA[Food & Drink]]></category>
		<category><![CDATA[Recipes]]></category>

		<guid isPermaLink="false">http://lispian.net/?p=901</guid>
		<description><![CDATA[My wife has had a persistent skin condition that no amount of attention by dermatologists seems to have helped. After reading Wheat Belly I wondered if the problem wasn&#8217;t modern wheat. In way of experimentation, and because our family loves bread so much, I decided to try to create a loaf with a heritage variety of wheat and see what happens. It took a bit of trying, about a month, to get a perfect loaf, but I can now create loaves using Red Fife flour that closely mimic the taste and texture of white loaves, albeit with more nuanced flavours courtesy of the Red Fife. Everyone agrees the Red Fife loaves are, in fact, superior to plain white loaves and also are more filling. A slice or two fills you up nicely. I&#8217;ve never found that to be true with white flour based loaves, like baguettes. And my wife&#8217;s skin condition? After a month of not eating modern wheat it cleared up. Perhaps Dr. Davis has a point. For the curious, here&#8217;s the recipe. The trick is using beer and spelt to morph the loaf into something that has the right taste and a beautiful crumb. Note that the loaf [...]]]></description>
			<content:encoded><![CDATA[<p>My wife has had a persistent skin condition that no amount of attention by dermatologists seems to have helped. After reading <a href="http://www.amazon.ca/Wheat-Belly-Lose-Weight-Health/dp/1609611543">Wheat Belly</a> I wondered if the problem wasn&#8217;t modern wheat. In way of experimentation, and because our family loves bread so much, I decided to try to create a loaf with a heritage variety of wheat and see what happens. It took a bit of trying, about a month, to get a perfect loaf, but I can now create loaves using Red Fife flour that closely mimic the taste and texture of white loaves, albeit with more nuanced flavours courtesy of the Red Fife. Everyone agrees the Red Fife loaves are, in fact, superior to plain white loaves and also are more filling. A slice or two fills you up nicely. I&#8217;ve never found that to be true with white flour based loaves, like baguettes.</p>
<p>And my wife&#8217;s skin condition? After a month of not eating modern wheat it cleared up. Perhaps Dr. Davis has a point.</p>
<p>For the curious, here&#8217;s the recipe. The trick is using beer and spelt to morph the loaf into something that has the right taste and a beautiful crumb. Note that the loaf looks like whole wheat bread when done but has none of that overly &#8220;whole wheatish&#8221;, metallic flavour. Instead, it bursts with nutty flavours and other subtleties that benefit anyone who likes a good loaf of bread.</p>
<p><strong>Poolish</strong></p>
<ul>
<li>1 bottle Ricards Dark (320g)</li>
<li>320g spelt flour</li>
<li>5 g instant yeast</li>
</ul>
<p>Mix together and let rise for 1 &#8211; 4 hours on your counter or up to 30 hours refrigerated.</p>
<p><strong>Bread</strong></p>
<ul>
<li>All the poolish</li>
<li>700g red fife flour</li>
<li>300g water</li>
<li>60g maple syrup</li>
<li>7g instant yeast</li>
<li>20g salt</li>
</ul>
<p>Place all the ingredients into the bowl of a heavy duty mixer and mix for 6 &#8211; 8 minutes until the dough comes together nicely. Add a bit more water if necessary.</p>
<p>Form into a ball and place in a lightly floured bowl and let rise until doubled.</p>
<p>Punch down and let rise again.</p>
<p>Preset oven to 425F. Place a small pan on the lowest rack with 5 ice cubes so as to create steam.</p>
<p>Form dough into loaves, place on sheet pan and let rise for 20 minutes. You should be able to create 4 baguettes or 2 large loaves.</p>
<p>Slash tops of loaves and place in oven for 20 &#8211; 30 minutes, depending on type of loaf (20 minutes for baguettes, 30 for large loaves). Bake until done.</p>
<p><strong>Note</strong>: For large loaves I recommend long, lengthwise slashes as the dough is not strong enough to hold the spring the bread will experience in the oven. It may crack the sides. Thus, on a typical large loaf 3 long slashes is optimal. When I remember, the loaves don&#8217;t burst unexpectedly. When I don&#8217;t, they usually crack on the side. Still edible, but not as aesthetically pleasing.</p>
<p> </p>
<p><strong>Variations</strong></p>
<p>Note that the same recipe can be used to make sandwich loaves by adding 60g of unsalted butter to the mixing bowl along with the other ingredients. Proof only once inside of the bowl and then immediately form into loaves and proof in bread pans. Prior to baking, slash the top 1/4&#8243; deep lengthwise and bake at 385F for 30 &#8211; 45 minutes, or until the interior registers 200F.</p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://lispian.net/2011/12/12/red-fife-and-loaves/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stupidity Truly Knows No Bounds</title>
		<link>http://lispian.net/2011/12/05/stupidity-truly-knows-no-bounds/</link>
		<comments>http://lispian.net/2011/12/05/stupidity-truly-knows-no-bounds/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 23:09:29 +0000</pubDate>
		<dc:creator>lispian</dc:creator>
				<category><![CDATA[Aggravations]]></category>
		<category><![CDATA[Cars]]></category>
		<category><![CDATA[Pity of It All]]></category>
		<category><![CDATA[Stupidity]]></category>

		<guid isPermaLink="false">http://lispian.net/?p=897</guid>
		<description><![CDATA[I&#8217;ve been reading about the Chevrolet Volt fire risk the last few days. It seems to me to be the perfect arbiter of intelligence. If you figure the Volt&#8217;s risk is high and you&#8217;re utterly panicked by the potential of the battery catching fire, you&#8217;re an utter moron. The rest of you can continue on with your day. Why do I claim those worrying about the battery are morons? Simple, really. Each test done wherein a fire, sparking or smoke emerged from the battery pack happened many hours, days or even weeks after the crash. The most recent tests performed by the NHTSA and GM have been done on the battery packs by themselves, wherein they have done some very serious damage to them and then waited to see if something amiss happens. It took months of testing before they could replicate a scenario wherein hours, days or weeks later the pack would ignite. To appreciate the type of damage that is being applied to the packs you must read the original NHTSA report wherein they say the car must suffer a serious side impact followed by an impact into a low diameter object, like a rigid pole, followed by [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been reading about the Chevrolet Volt fire risk the last few days. It seems to me to be the perfect arbiter of intelligence. If you figure the Volt&#8217;s risk is high and you&#8217;re utterly panicked by the potential of the battery catching fire, you&#8217;re an utter moron. The rest of you can continue on with your day.</p>
<p>Why do I claim those worrying about the battery are morons? Simple, really. Each test done wherein a fire, sparking or smoke emerged from the battery pack happened many hours, days or even weeks after the crash. The most recent tests performed by the NHTSA and GM have been done on the battery packs by themselves, wherein they have done some very serious damage to them and then waited to see if something amiss happens. It took months of testing before they could replicate a scenario wherein hours, days or weeks later the pack would ignite.</p>
<p>To appreciate the type of damage that is being applied to the packs you must read the original NHTSA report wherein they say the car must suffer a serious side impact followed by an impact into a low diameter object, like a rigid pole, followed by the car flipping over. After all that, maybe a few hours or days or weeks later, maybe, the pack might catch fire if it&#8217;s not discharged and just left in a junkyard. Honestly, talk about an edge case!</p>
<p>But, aha, some of you might claim. The packs do catch fire. Yeah, but so do gasoline powered cars. The difference is that if you smash a gasoline powered car with sufficient severity you may well rupture the tank or fuel lines and an errand spark can set the vehicle on fire. This happens tens of thousands of times per year in the US alone. 25,000 car fires result in injuries. Those fires are <strong>immediate</strong>. Not weeks later.</p>
<p>If you&#8217;re not extricated from your car immediately after a crash of sufficient severity to damage the Volt&#8217;s battery, <em>which is in the middle of the car</em>, you will most probably bleed out or have died on impact. And if the car has been in such an accident that the battery pack is damaged, that means the car has been written off and thus won&#8217;t be in your garage. And much as with gasoline powered cars, electric cars should have their energy source removed. In the case of an electric car, that means discharging the battery.</p>
<p>It totally amazes me that so many people are going on and on about this when gasoline powered cars are not put to the same test. When the NHTSA or the IIHS or any other institution crashes a gasoline powered car they do so with the fuel tanks empty, so as to ensure there is no fire. That would be especially bad within a test facility. But the Volt&#8217;s batteries were charged. To what level is unknown &#8212; the NHTSA isn&#8217;t saying &#8212; but if they got the car from GM it was most probably at least 1/2 charged.</p>
<p>And it&#8217;s not just this that drives me nuts. It&#8217;s all the idiots for so many things. From creationists, to conspiracy nuts, to left/right/whatever wing nuts. They all seem incapable of applying logic and reason to a situation. The internet isn&#8217;t helping here, allowing morons to collude and congregate lowering their collective intelligence more than anyone could imagine. It&#8217;s why I&#8217;ve listened to people in university tell me about conspiracy upon conspiracy upon conspiracy. You&#8217;d have to wonder how any work gets done anywhere when everyone seems to be in on a conspiracy. Except me. Somehow I was left out of the conspiracies.</p>
<p>The only good that will come out of the NHTSA is that there will be protocols put in place to handle the batteries of electric cars. There will be a document forthcoming in the next few months that will indicate that the Volt is safe and that a danger may exist, but that the danger is so far post accident as to be immaterial. After all, millions of people the world over get into gas powered cars without a worry. In other words, people will have to be told that they will have to accept the risk. Much as they do when they get into their own cars at the moment. And if they are, God forbid, in an accident, to get out of the car if possible. Never stay within a damaged car. Why take a chance yours might be one of those 300,000 that opt to ignite.</p>
]]></content:encoded>
			<wfw:commentRss>http://lispian.net/2011/12/05/stupidity-truly-knows-no-bounds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thoughts&#8230; on plans</title>
		<link>http://lispian.net/2011/11/30/thoughts-on-plans/</link>
		<comments>http://lispian.net/2011/11/30/thoughts-on-plans/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 01:22:19 +0000</pubDate>
		<dc:creator>lispian</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Entrepreneurship]]></category>
		<category><![CDATA[Philosophy]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Quotes]]></category>

		<guid isPermaLink="false">http://lispian.net/?p=894</guid>
		<description><![CDATA[I&#8217;ve been having discussion regarding plans with some folks recently. It got me thinking and I&#8217;ve come to the conclusion that you should keep Eisenhower and Powell&#8217;s Axioms in mind, namely: Eisenhower&#8217;s Axiom: “In preparing for battle I have always found that plans are useless, but planning is indispensable.” Powell&#8217;s Axiom: &#8220;No battle plan survives contact with the enemy.&#8221; To this I&#8217;d like to add my own: Eugen&#8217;s Axiom: &#8220;The foundation of a good plan is to rely on those you trust.&#8221; It makes the planning quite useful if you know that when the plan becomes obsolete you can move forward with conviction.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been having discussion regarding plans with some folks recently. It got me thinking and I&#8217;ve come to the conclusion that you should keep Eisenhower and Powell&#8217;s Axioms in mind, namely:</p>
<p style="padding-left: 30px;"><strong>Eisenhower&#8217;s Axiom:</strong> “In preparing for battle I have always found that plans are useless, but planning is indispensable.”</p>
<p style="padding-left: 30px;"><strong>Powell&#8217;s Axiom</strong>: &#8220;No battle plan survives contact with the enemy.&#8221;</p>
<p>To this I&#8217;d like to add my own:</p>
<p style="padding-left: 30px;"><strong>Eugen&#8217;s Axiom:</strong> &#8220;The foundation of a good plan is to rely on those you trust.&#8221;</p>
<p>It makes the planning quite useful if you know that when the plan becomes obsolete you can move forward with conviction.</p>
]]></content:encoded>
			<wfw:commentRss>http://lispian.net/2011/11/30/thoughts-on-plans/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lasagna Code: Redux</title>
		<link>http://lispian.net/2011/11/25/lasagna-code-redux/</link>
		<comments>http://lispian.net/2011/11/25/lasagna-code-redux/#comments</comments>
		<pubDate>Fri, 25 Nov 2011 04:22:12 +0000</pubDate>
		<dc:creator>lispian</dc:creator>
				<category><![CDATA[Aggravations]]></category>
		<category><![CDATA[Computer Languages]]></category>
		<category><![CDATA[Computers]]></category>
		<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://lispian.net/?p=892</guid>
		<description><![CDATA[I write here as sort of a pressure release valve. It seems that my little rant on Lasagna Code got some attention. I read through the comments. It seems most get what I&#8217;m on about. But I figure I might as well be a bit clearer, in case any of those posters revisit. Yes, I&#8217;m against object oriented programming. I&#8217;ve been against it for years. I find it an obtuse and bloated way to code. And beyond Smalltalk, I&#8217;ve really not found another decent object-oriented language within which to code. This obsession language designers have of wedging an object system into a language &#8220;just because&#8221; is rather stupid. After all, all objects are is formalized data structures. It&#8217;s really that simple. For those that are about to jump up and down and scream they aren&#8217;t, I won&#8217;t argue because it&#8217;s pointless. I&#8217;ve used OO since the early 80s, initially in Smalltalk. Later, much to my horror, C++, and then for a brief period with Java &#8212; but I refuse to ever touch Java again. Too horrible and, happily, I&#8217;m sufficiently old enough to not have to do what I don&#8217;t want to do. Python, as I said, is a very [...]]]></description>
			<content:encoded><![CDATA[<p>I write here as sort of a pressure release valve. It seems that my little rant on Lasagna Code <a href="http://forums.thedailywtf.com/forums/t/25260.aspx">got some attention</a>.</p>
<p>I read through the comments. It seems most get what I&#8217;m on about. But I figure I might as well be a bit clearer, in case any of those posters revisit.</p>
<p>Yes, I&#8217;m against object oriented programming. I&#8217;ve been against it for years. I find it an obtuse and bloated way to code. And beyond Smalltalk, I&#8217;ve really not found another decent object-oriented language within which to code. This obsession language designers have of wedging an object system into a language &#8220;just because&#8221; is rather stupid. After all, all objects are is formalized data structures. It&#8217;s really that simple.</p>
<p>For those that are about to jump up and down and scream they aren&#8217;t, I won&#8217;t argue because it&#8217;s pointless. I&#8217;ve used OO since the early 80s, initially in Smalltalk. Later, much to my horror, C++, and then for a brief period with Java &#8212; but I refuse to ever touch Java again. Too horrible and, happily, I&#8217;m sufficiently old enough to not have to do what I don&#8217;t want to do.</p>
<p>Python, as I said, is a very elegant language. I like some aspects especially, such as the forced indentation rules &#8212; but mostly because so many people seem incapable of comprehending how to use the tab key and keep their code blocks indented correctly. After 30+ years in this business I have grown weary of staring at unindented, improperly indented, uncommented, single-character variable name code that was probably comprehensible to the person who wrote it, but to anyone else it&#8217;s utter and complete gibberish.</p>
<p>I&#8217;m also not against JavaScript. JavaScript, for those that haven&#8217;t followed its history, is very much an Algol-like interpretation of Scheme</p>
<p>http://en.wikipedia.org/wiki/Javascript</p>
<p>&#8211; which is a Lisp variant. Obviously, tacking on &#8220;Java&#8221; onto the name was brilliant marketing but it&#8217;s not Java. And you can write some pretty nifgy code with it. Although it has an object model embedded, it seems you can ignore it pretty much all the time. I do have problems with JavaScript but that would require a longer rant than I&#8217;m prepared for at this time. But linked with HTML5 JavaScript provides the ability to view the browser as a platform, and that is a game changer. A complete reset, akin to what the PC did to programming back in the 70s and 80s.</p>
<p>As may be gathered from the languages I like I&#8217;m a functional guy. The reason is that over the past 30+ years I&#8217;ve noticed that functional programming is just way easier for a novice to pick up. I&#8217;ve seen that recently where students were given a pure functional language and immediately were productive. On the other hand, other students forced into using C++ or Java were hopelessly lost constantly searching for objects and abstractions that would save them time. It was a difference of applying the necessary math vs. fighting with a system that seems more intent on arguing with you than helping you get the job done.</p>
<p>Some results may be instrumental here. In the functional language we were using, which is effectively a Scheme derivative, we were able to code up a page caching system in about 30 lines of code, including comments. In Java, it was 800. And that was after a couple of senior, very good Java blokes were finished with it. Similarly, I wrote a tokenizer for a DSL effort we also have underway. The first version I wrote was in C. I have 30+ years of C experience. And I wanted something against which to compare, plus do testing against. That tokenizer is 1200 lines long. The one in the functional language? 80, again including comments.</p>
<p>Since bugs are and have always been measured in terms of bugs per lines of code, it should be painfully obvious that the fewer lines of code you hammer out the fewer bugs you&#8217;ll have. It&#8217;s just common sense. Thus, any system that can give you a density of 10:1 or more will mean at least an order of magnitude fewer bugs per system coded. For those who prefer metrics, Steve McConnell stated that the industry average is 15 &#8211; 20 errors per 1000 lines of code. Thus, if you have a system that is 100,000 lines of code you&#8217;re looking at 1500 &#8211; 2000 bugs. However, if you can code that same system in 10,000 lines you&#8217;d be looking at 150 &#8211; 200 bugs. If it can be done in 1000 lines, you&#8217;d be better off still.</p>
<p>And smaller is less complex, in the sense that it&#8217;s easier to comprehend since you&#8217;re probably more focused on the language&#8217;s capability as opposed to some class library. And the brighter bulbs can keep the code and concepts in their heads. And the more code you can keep in your head the more likely you&#8217;ll see something stupid. If you&#8217;re staring at hundreds of thousands of lines of code, you&#8217;re just lost in the morass.</p>
<p>The notion of OOP was that you could leverage other people&#8217;s code and get those advantages. But that&#8217;s not the case. Instead you find code that &#8220;almost&#8221; does what you want, and then tweak and adjust it. And most of the time, it&#8217;d have been faster to simply rewrite it &#8212; and the code base would have been smaller.</p>
<p>Thus, if a person starts with a richer, more capable language and programmers actually utilize intelligence instead of code grazing to develop software we&#8217;d all be better off. We&#8217;d have better programmers and better code. Instead we have irritated, bored programmers and horrible code. Worse still, I see many very talented computer scientists simply up and leaving the profession because of the &#8220;productivity tools&#8221; they&#8217;re saddled with.</p>
<p>As might be obvious by now my problem is that we&#8217;ve gone from people who knew how to program on small machines and who comprehended those machines to folks being spoiled by using large, complex systems with lots of resources understanding neither the environment, the language, nor the underlying machine. In other words, the former comprehended the language-machine interconnection. They knew what clock cycles were. They comprehended that bad code would impact performance. Much of that has been lost. There&#8217;s this utter disconnect.</p>
<p>It&#8217;s so bad that we&#8217;ve gotten used to how badly systems perform. Instead of wondering why is this computer, that is infinitely more powerful than the one I used 30 years ago &#8212; running nothing more than a variant of an OS I used then (UNIX) &#8212; so much slower? You can&#8217;t blame the pretty colours. There&#8217;s more going on. There&#8217;s just way too much sloppy code.</p>
<p>Some may figure I&#8217;m just getting old and now worry about what it&#8217;s going to be like when they get old. I think it&#8217;ll get better. Why? Mostly because there seems to be an awakening that what we&#8217;ve been doing for the past 20 years has been wrong. Even some of the Fathers of OOP are coming to the conclusion that functional is the way to go. For those that prefer more proof than my blathering, <a href="http://channel9.msdn.com/Blogs/Charles/SPLASH-2011-Dave-Thomas-On-Modern-Application-Development">watch Dave Thomas discuss OOP and functional languages and offer similar laments at SPLASH recently</a>. And for those unfamiliar with Dave, let me just point out that he is the godfather of OOP. And as he says, OOP is a huge commercial success, too bad it&#8217;s an utter practical disaster.</p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://lispian.net/2011/11/25/lasagna-code-redux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Baking Adventures: Lemon Tart Cheesecake</title>
		<link>http://lispian.net/2011/11/22/baking-adventures/</link>
		<comments>http://lispian.net/2011/11/22/baking-adventures/#comments</comments>
		<pubDate>Wed, 23 Nov 2011 01:33:58 +0000</pubDate>
		<dc:creator>lispian</dc:creator>
				<category><![CDATA[Cooking and Baking]]></category>
		<category><![CDATA[Food & Drink]]></category>
		<category><![CDATA[Recipes]]></category>

		<guid isPermaLink="false">http://lispian.net/?p=887</guid>
		<description><![CDATA[Everyone has their own way of relaxing. Some fish, some golf, some play hockey and I, well, I bake. Recently I baked a cheesecake for friends. It seems to have gone over well. They want the recipe. I figure someone else might be interested in it as well, so here it is. It&#8217;s actually a combination of two of my favourite desserts: cheesecake and lemon tart. Enjoy.   Lemon Tart Cheesecake Ingredients Crust 250g     Arrowroot cookies (no gluten is fine)1/3 cup    melted, unsalted butter Lemon Custard 7                egg yolks2                whole eggs1 cup         sugar2/3 cup    freshly squeezed lemon juice (use no substitute)1/4 cup    freshly grated lemon zestpinch       salt1/4 cup    unsalted butter (cut into pieces)1/4 cup    heavy cream Filling 1/4 cup    lemon zest750g        softened cream cheese1/2 cup   sugar3              eggs1 tsp        vanilla extract Method Preheat oven to 325F. Prepare a 12&#8243; springform cheesecake pan (preferably non-stick, if not then grease well). Crust In the bowl of a food processor process the cookies until they become crumbs. Place into a bowl and mix with the melted butter. Press into bottom of 12&#8243; cheesecake pan [...]]]></description>
			<content:encoded><![CDATA[<p>Everyone has their own way of relaxing. Some fish, some golf, some play hockey and I, well, I bake.</p>
<p>Recently I baked a cheesecake for friends. It seems to have gone over well. They want the recipe. I figure someone else might be interested in it as well, so here it is. It&#8217;s actually a combination of two of my favourite desserts: cheesecake and lemon tart. Enjoy.</p>
<p> </p>
<h2>Lemon Tart Cheesecake</h2>
<h3>Ingredients</h3>
<h4>Crust</h4>
<p style="padding-left: 30px;">250g     Arrowroot cookies (no gluten is fine)<br />1/3 cup    melted, unsalted butter</p>
<h4>Lemon Custard</h4>
<p style="padding-left: 30px;">7                egg yolks<br />2                whole eggs<br />1 cup         sugar<br />2/3 cup    freshly squeezed lemon juice (use no substitute)<br />1/4 cup    freshly grated lemon zest<br />pinch       salt<br />1/4 cup    unsalted butter (cut into pieces)<br />1/4 cup    heavy cream</p>
<h4>Filling</h4>
<p style="padding-left: 30px;">1/4 cup    lemon zest<br />750g        softened cream cheese<br />1/2 cup   sugar<br />3              eggs<br />1 tsp        vanilla extract</p>
<h3>Method</h3>
<ul>
<li>Preheat oven to 325F.</li>
<li>Prepare a 12&#8243; springform cheesecake pan (preferably non-stick, if not then grease well).</li>
</ul>
<h4>Crust</h4>
<ol>
<li>In the bowl of a food processor process the cookies until they become crumbs.</li>
<li>Place into a bowl and mix with the melted butter.</li>
<li>Press into bottom of 12&#8243; cheesecake pan and refrigerate.</li>
</ol>
<p> </p>
<h4>Lemon Custard</h4>
<ol>
<li>In a medium sized sauce pot, whisk yolks and eggs together until combined (about 10 seconds).</li>
<li>Add sugar and whisk until sugar is incorporated, about 10 seconds.</li>
<li>Add lemon juice, zest, and salt and mix until combined.</li>
<li>Place pot on medium heat, add butter pieces, and mix until the custard reaches a temperature of 165F &#8211; 170F. Immediately remove from heat, add heavy cream, and set aside.</li>
</ol>
<p> </p>
<h4>Filling</h4>
<ol>
<li>Beat cream cheese and sugar on medium-high until very smooth and creamy (about 3 minutes).</li>
<li>Add eggs, one at a time, until each is well incorporated.</li>
<li>Add the lemon zest and vanilla and beat for 2 more minutes.</li>
<li>Take half the custard and fold into the cream cheese by hand.</li>
<li>Pour filling into the cheesecake pan.</li>
<li>Bake for 50 minutes to 60 minutes until centre jiggles like jello.</li>
<li>Let cool 1 hour.</li>
<li>Pour remaining custard on top of cake.</li>
<li>Refrigerate at least 5 hours, preferably overnight.</li>
</ol>
<p> </p>
<h3>Notes:</h3>
<ul>
<li>
<p><em> </em>A 9&#8243; springform pan can be used, but it must have 3&#8243; sides  at least and the filling should not reach the top but be at least 1/2&#8243;  from the top.</p>
</li>
<li>This is a very dense cake. It&#8217;s best to slice on the thinner side.</li>
</ul>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://lispian.net/2011/11/22/baking-adventures/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lasagna Code</title>
		<link>http://lispian.net/2011/11/01/lasagna-code/</link>
		<comments>http://lispian.net/2011/11/01/lasagna-code/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 23:33:25 +0000</pubDate>
		<dc:creator>lispian</dc:creator>
				<category><![CDATA[Aggravations]]></category>
		<category><![CDATA[Computer Languages]]></category>
		<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://lispian.net/?p=884</guid>
		<description><![CDATA[Anyone who claims to be even remotely versed in computer science knows what &#8220;spaghetti code&#8221; is. That type of code still sadly exists. But today we also have, for lack of a better term &#8212; and sticking to the pasta metaphor &#8212; &#8220;lasagna code&#8221;. Lasagna Code is layer upon layer of abstractions, objects and other meaningless misdirections that result in bloated, hard to maintain code all in the name of &#8220;clarity&#8221;. It drives me nuts to see how badly some code today is. And then you come across how small Turbo Pascal v3 was, and after comprehending it was a full-blown Pascal compiler, one wonders why applications and compilers today are all so massive. Turbo Pascal v3 was less than 40k. That&#8217;s right, 40 thousand bytes. Try to get anything useful today in that small a footprint. Most people can&#8217;t even compile &#8220;Hello World&#8221; in less than a few megabytes courtesy of our object-oriented obsessed programming styles which seem to demand &#8220;lines of code&#8221; over clarity and &#8220;abstractions and objects&#8221; over simplicity and elegance. Back when I was starting out in computer science I thought by today we&#8217;d be writing a few lines of code to accomplish much. Instead, we [...]]]></description>
			<content:encoded><![CDATA[<p>Anyone who claims to be even remotely versed in computer science knows what &#8220;spaghetti code&#8221; is. That type of code still sadly exists. But today we also have, for lack of a better term &#8212; and sticking to the pasta metaphor &#8212; &#8220;lasagna code&#8221;.</p>
<p>Lasagna Code is layer upon layer of abstractions, objects and other meaningless misdirections that result in bloated, hard to maintain code all in the name of &#8220;clarity&#8221;. It drives me nuts to see how badly some code today is. And then you come across <a href="http://prog21.dadgum.com/116.html">how small Turbo Pascal v3 was</a>, and after comprehending it was a full-blown Pascal compiler, one wonders why applications and compilers today are all so massive.</p>
<p>Turbo Pascal v3 was less than 40k. That&#8217;s right, 40 thousand bytes. Try to get anything useful today in that small a footprint. Most people can&#8217;t even compile &#8220;Hello World&#8221; in less than a few megabytes courtesy of our object-oriented obsessed programming styles which seem to demand &#8220;lines of code&#8221; over clarity and &#8220;abstractions and objects&#8221; over simplicity and elegance.</p>
<p>Back when I was starting out in computer science I thought by today we&#8217;d be writing a few lines of code to accomplish much. Instead, we write hundreds of thousands of lines of code to accomplish little. It&#8217;s so sad it&#8217;s enough to make one cry, or just throw your hands in the air in disgust and walk away.</p>
<p>There are bright spots. There are people out there that code small and beautifully. But they&#8217;re becoming rarer, especially when someone who seemed to have thrived on writing elegant, small, beautiful code recently passed away. Dennis Ritchie understood you could write small programs that did a lot. He comprehended that the algorithm is at the core of what you&#8217;re trying to accomplish. Create something beautiful and well thought out and people will examine it forever, such as <a href="http://swtch.com/~rsc/regexp/regexp2.html">Thompson&#8217;s version of Regular Expressions</a>!</p>
<p>Maybe it&#8217;s just my age and curmudgeonly nature shining through, but it pains me to write code for many systems. It&#8217;s just so ugly, so poorly thought out. There are bright spots, but they&#8217;re rarer by the year. No wonder so many kids decide not to go into computer science. Where it was once applied mathematics with all its intrinsic beauty it&#8217;s now been reduced to slapping at the keyboard, entering thousands of lines hoping the compiler will allow your code to compile. Where&#8217;s the elegance that was Lisp or Smalltalk or APL? Hell, even Fortran was more elegant than a lot of the crap programming languages being touted today. Why hasn&#8217;t someone gone back to Algol and pushed that forward.</p>
<p>As I mentioned to my kids the other day, it&#8217;s sad when one of the best programming languages remains C. Sure, there are some beautiful small languages out there that do niche work, but mainstream? Nothing. It&#8217;s just a catastrophe. Something like Python may have been great if they&#8217;d not embedded an object model into its guts. Sigh.</p>
]]></content:encoded>
			<wfw:commentRss>http://lispian.net/2011/11/01/lasagna-code/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>RIP John McCarthy</title>
		<link>http://lispian.net/2011/10/24/rip-john-mccarthy/</link>
		<comments>http://lispian.net/2011/10/24/rip-john-mccarthy/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 23:38:08 +0000</pubDate>
		<dc:creator>lispian</dc:creator>
				<category><![CDATA[Computer Languages]]></category>
		<category><![CDATA[Computers]]></category>
		<category><![CDATA[History]]></category>
		<category><![CDATA[In Memoriam]]></category>
		<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://lispian.net/?p=881</guid>
		<description><![CDATA[The creator of my favourite programming language passed away yesterday. Lisp is, in my view, the best language ever devised. Sadly, too few in the computer industry realize or comprehend this fact. Lisp, and its descendants such as Scheme, are beautifully consistent programming languages wherein the programs and the data are defined identically and as such can be manipulated similarly. This allows one to generate code easily that can then be executed. Most people stare at Lisp-like languages and can&#8217;t get past the parentheses. Ironically, most every language uses parentheses of one sort or another. If one does a quick comparison with C, for example, one will quickly realize that Lisp doesn&#8217;t have that many more parentheses than does C. And with C, you can&#8217;t work in a fully interactive environment wherein you develop your code and test it all in a fully integrated way. Instead, you&#8217;re still stuck with the stupid edit-compile-run-debug cycle that made sense when we used punch cards but doesn&#8217;t today. Even &#8220;modern&#8221; languages such as Java are really only prettied up C, though truth be told, I&#8217;d rather code in C because it&#8217;s powerful and puts the onus on the programmer to do things right [...]]]></description>
			<content:encoded><![CDATA[<p>The creator of my favourite programming language passed away yesterday. Lisp is, in my view, the best language ever devised. Sadly, too few in the computer industry realize or comprehend this fact.</p>
<p>Lisp, and its descendants such as Scheme, are beautifully consistent programming languages wherein the programs and the data are defined identically and as such can be manipulated similarly. This allows one to generate code easily that can then be executed.</p>
<p>Most people stare at Lisp-like languages and can&#8217;t get past the parentheses. Ironically, most every language uses parentheses of one sort or another. If one does a quick comparison with C, for example, one will quickly realize that Lisp doesn&#8217;t have that many more parentheses than does C. And with C, you can&#8217;t work in a fully interactive environment wherein you develop your code and test it all in a fully integrated way. Instead, you&#8217;re still stuck with the stupid edit-compile-run-debug cycle that made sense when we used punch cards but doesn&#8217;t today. Even &#8220;modern&#8221; languages such as Java are really only prettied up C, though truth be told, I&#8217;d rather code in C because it&#8217;s powerful and puts the onus on the programmer to do things right instead of having the stupid language compiler argue with you.</p>
<p>So the month of October has been a sad one. Ritchie passed away, who gave us Unix and now McCarthy whose language is used in more places than most people realize. There&#8217;s an old quote that says that any sufficiently complex program has a Lisp interpreter embedded within it. And I can say that that&#8217;s probably pretty much the truth, though most are horribly defined.</p>
<p>As I look at my bookshelf and all the names of what to me are famous computer scientists I&#8217;m coming to a realization that they were all young men in the 1960s and thus are in their latter years now. That means more sad news will be forthcoming in the coming years and a true sea-change will occur since I&#8217;ve also noticed that the younger CS guys and gals aren&#8217;t as aware of where all the stuff they use came from nor do they appreciate the beauty of conciseness in computer science. One only needs look at the size of some programs &#8212; such as Android &#8212; to wonder if we haven&#8217;t all gone off the rails somewhere in the past decade or two. But that rant is something that will await me being in a better mood.</p>
]]></content:encoded>
			<wfw:commentRss>http://lispian.net/2011/10/24/rip-john-mccarthy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

