<?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>Henrik Falck&#039;s blog &#187; software engineering</title>
	<atom:link href="http://henrikfalck.com/blog/tag/software-engineering/feed" rel="self" type="application/rss+xml" />
	<link>http://henrikfalck.com/blog</link>
	<description>reinventing web 3.0</description>
	<lastBuildDate>Mon, 12 Apr 2010 00:33:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Leaving Picsel</title>
		<link>http://henrikfalck.com/blog/2009/05/leaving-picsel.html</link>
		<comments>http://henrikfalck.com/blog/2009/05/leaving-picsel.html#comments</comments>
		<pubDate>Sun, 17 May 2009 04:05:00 +0000</pubDate>
		<dc:creator>Henrik Falck</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[reflection]]></category>
		<category><![CDATA[software engineering]]></category>

		<guid isPermaLink="false">http://henrikfalck.com/blog2/2009/05/leaving-picsel.html</guid>
		<description><![CDATA[Update: Since quite a lot of people find this post by searching for “picsel”, let me point you to the Ex-Picsel site, which answers many questions about Picsel Technologies, the new Picsel, and the new Picsel Office product.
So Friday was my last day in the office at Picsel Technologies. Not just because the office is [...]]]></description>
			<content:encoded><![CDATA[<div style="border: 1px solid green; -webkit-border-radius: 5px; border-radius: 5px; padding: 5px 5px 5px 5px;"><strong>Update</strong>: Since quite a lot of people find this post by searching for “picsel”, let me point you to the <a rel="nofollow" href="http://expicsel.ning.com/"  target="_blank">Ex-Picsel</a> site, which answers many questions about Picsel Technologies, the new Picsel, and the new Picsel Office product.</div>
<p>So Friday was my last day in the office at Picsel Technologies. Not just because the office is moving, but also because I&#8217;ve resigned. I now have two weeks to get some real programming done before starting my next job on June 1. What that is I&#8217;ll get back to later.</p>
<p>I&#8217;ve been at Picsel for a little over one and a half years. At many times I have for various reasons not thought that I&#8217;d make it to a year there, so I am satisfied with having endured for this long. <span style="font-weight: bold; font-style: italic;">I&#8217;ve learned a lot</span>, both some <span style="font-weight: bold;">good engineering practices</span> and also <span>how not to run a company</span>, which might come in handy some day. (Hint: if you&#8217;re going to run a company with authoritarian top-down management, it&#8217;s important to put smart people at the top.) Working with Picsel&#8217;s <span style="font-weight: bold;">excellent technology</span> has been a pleasure. I&#8217;ve seen things done that I wouldn&#8217;t have thought possible before. I hope the technology ends up somewhere where it can be put to good use.</p>
<p>I consider myself very fortunate to have worked at both Opera Software and Picsel Technologies. On the surface they look very similar (enough so for Opera&#8217;s lawyer to fedex me a very unfriendly letter when I was leaving) but they&#8217;re actually complete opposites. By working with <span style="font-weight: bold;">similar kinds of projects</span> (mobile applications for Japanese mobile operators and manufacturers) but with <span style="font-weight: bold;">completely different approaches</span>, I&#8217;ve gotten unique insights into what works and what doesn&#8217;t. Balancing the priorities between <span style="font-weight: bold;">technology</span>, <span style="font-weight: bold;">products</span>, <span style="font-weight: bold;">processes</span>, <span style="font-weight: bold;">customers</span>, and <span style="font-weight: bold;">employees</span> is essential. I&#8217;ll give it a little more time before I write about it though. I am going to utilize this knowledge in my future career.</p>
<p>Anyway, a company is just a shell with logo and a legal department. What matters are the <span style="font-weight: bold;">people</span> in it. And the people are what has been the best part of working at Picsel&#8217;s Tokyo office. I&#8217;ve met the most incredible, competent, and friendly people at the office. Most of them are not there anymore though, so it doesn&#8217;t make sense for me to stay either. But the connections I&#8217;ve made at Picsel Tokyo, both personal and professional, is what has really made the time there worth while. <span style="font-weight: bold; font-style: italic;">I consider myself lucky</span><span style="font-weight: bold; font-style: italic;"> to have worked at Picsel!</span></p>
]]></content:encoded>
			<wfw:commentRss>http://henrikfalck.com/blog/2009/05/leaving-picsel.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Software Architecture &#8211; What Is It? Down To The Monkey&#8217;s Balls</title>
		<link>http://henrikfalck.com/blog/2009/01/software-architecture-what-is-it-down.html</link>
		<comments>http://henrikfalck.com/blog/2009/01/software-architecture-what-is-it-down.html#comments</comments>
		<pubDate>Tue, 20 Jan 2009 14:08:00 +0000</pubDate>
		<dc:creator>Henrik Falck</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[bogus quotes]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software architecture]]></category>
		<category><![CDATA[software engineering]]></category>

		<guid isPermaLink="false">http://henrikfalck.com/blog2/2009/01/software-architecture-what-is-it-down-to-the-monkeys-balls.html</guid>
		<description><![CDATA[This morning just as I had left the house and turned left into one of the roads that make up the maze of narrow roads between the haphazardly built, tightly packed houses of Kami-meguro, from the far end of the road came flying, at full blast, a small budgerigar. I could feel the flapping of [...]]]></description>
			<content:encoded><![CDATA[<p>This morning just as I had left the house and turned left into one of the roads that make up the maze of narrow roads between the haphazardly built, tightly packed houses of Kami-meguro, from the far end of the road came flying, at full blast, a small budgerigar. I could feel the flapping of its wings as it swooshed above my left shoulder, just barely missing my head.</p>
<p>I don&#8217;t know what the little fellow was up to, but imagine the destruction, had it hit me in the face (I walk pretty fast too). I suppose it had escaped from one of the houses. It probably won&#8217;t survive very long, considering it won&#8217;t get warm for a while yet and the abundance of cats in the neighborhood. Not to mention its suicidal tendency of flying towards people on the street.</p>
<p>By the way, did you know there&#8217;s a population of <span style="font-weight: bold;">wild parrots in Tokyo</span>? Escaped parrots have taken up residence in the trees lining the south side of the French Formal Garden of <a href="http://www.env.go.jp/garden/shinjukugyoen/english/" >Shinjuku Gyoen</a>. Yes, they are very particular about where they live. They&#8217;re larger than budgerigars though, and manage to survive.</p>
<div style="text-align: center;"><a href="http://henrikfalck.com/blog/uploaded_images/budgerigar-blue-703193.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" ><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://henrikfalck.com/blog/uploaded_images/budgerigar-blue-703191.jpg" alt="" border="0" /></a><span style="font-size:78%;"><a href="http://www.mzephotos.com/gallery/birds/budgerigar-blue.html" >© MzePhotos.com, Some Rights Reserved</a></span></div>
<p>Anyway, I was going to write about <span style="font-weight: bold;">software architecture</span>, not parrots. The last couple of days I&#8217;ve been thinking about what software architecture is. The word gets thrown around a lot, and people even carry the title &#8220;software architect&#8221;.</p>
<p>In <a href="http://www.picsel.com/picselux/" >my work</a> there&#8217;s talk about architecture as well. We&#8217;re doing architecture.</p>
<p>Now, I&#8217;ve figured out that what gets called <span style="font-weight: bold;">software architecture</span> can, in down to the monkey&#8217;s balls practice, be classified as <span style="font-weight: bold; font-style: italic;">one out of five tangible things</span>. I might at some point come up with more, and if you have any suggestion then please leave a comment. Anyway, here they are:</p>
<ol>
<li><span style="font-weight: bold;">Build-time composition</span><br />Can be in the form of invasive composition done by a proper composition system, as outlined in the book <a href="http://www.ida.liu.se/%7Euweas/InvasiveSoftwareComposition/" >Invasive Software Composition</a>, written by my favorite professor Uwe Aßmann. But more often in the form of simple <span style="font-family:courier new;">#ifdef</span>s, or link-time selection of different libraries.<a href="http://henrikfalck.com/blog/uploaded_images/invasive-software-composition-727475.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" ><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 165px; height: 249px;" src="http://henrikfalck.com/blog/uploaded_images/invasive-software-composition-727473.jpg" alt="" border="0" /></a></p>
</li>
<li><span style="font-weight: bold;">Design patterns</span><br />This is probably my favorite one. Design patterns are powerful not primarily because the pattern in itself is clever, but because they communicate the intention of the programmer to others quickly. If someone knowledgable reads a piece of codes that says it&#8217;s doing a <a href="http://c2.com/cgi/wiki?VisitorPattern" >visitor pattern</a>, say, then you immediately know what to expect.
</li>
<li><span style="font-weight: bold;">Naming conventions</span><br />This might be the most common excuse for an architecture. And I&#8217;d count object oriented languages&#8217; attempts to hide things behind (often long) namespace and (often nested) class names as just another naming convention (often termed <span style="font-style: italic;">&#8220;object oriented design&#8221;</span>). Architecture often seems to take the meaning that things that belong to one part of the system starts with a certain prefix (such as a class name). It&#8217;s useful for finding things in the source tree, though.
</li>
<li><span style="font-weight: bold;">Function pointers</span><br />&#8230; in one form or another. All programmers use function pointers, often termed callbacks, handlers, functors, virtual methods, delegates, etc. Function pointers allows control of flow during runtime, but more often they seem to be used as a bad substitute for <span style="font-style: italic;">build-time composition</span>. At some point there seems to be a line where this common code monkey tool turns into architecture.
</li>
<li><span style="font-weight: bold;">Layers of indirection</span><br />It has been said, perhaps by Mark Twain, that <span style="font-style: italic;">any programming problem can be solved by adding another layer of indirection</span>. It is often implemented in the form of <span style="font-weight: bold;">function calls</span>, or by using <span style="font-style: italic;">function pointers</span>, often in combination with <span style="font-style: italic;">naming conventions</span>. Of course any code monkey can do function calls. But by doing small transformations of values and data types, and perhaps branching depending on the data, and letting the next layer do this in succession, one can seemingly achieve architecture.</li>
</ol>
<div style="text-align: center;">-</div>
<p>Barring further bird attacks, I will consider these five items to be the fundamental building blocks of software architecture. Next, I intend to write about how these can be used to create good architecture. Because one man&#8217;s architecture is another man&#8217;s code bloat.<br /><!-- inline --></p>
]]></content:encoded>
			<wfw:commentRss>http://henrikfalck.com/blog/2009/01/software-architecture-what-is-it-down.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Jumbo Jets vs Embedded Software</title>
		<link>http://henrikfalck.com/blog/2008/01/jumbo-jets-vs-embedded-software.html</link>
		<comments>http://henrikfalck.com/blog/2008/01/jumbo-jets-vs-embedded-software.html#comments</comments>
		<pubDate>Thu, 10 Jan 2008 12:26:00 +0000</pubDate>
		<dc:creator>Henrik Falck</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[engineering]]></category>
		<category><![CDATA[software engineering]]></category>

		<guid isPermaLink="false">http://henrikfalck.com/blog2/2008/01/jumbo-jets-vs-embedded-software.html</guid>
		<description><![CDATA[A while ago I bought a book called 747: Creating the World&#8217;s First Jumbo Jet and Other Adventures from a Life in Aviation by Joe Sutter. Actually I bought it at Hong Kong airport to read on the way home &#8211; ironically not by 747 (I don&#8217;t know what kind of plane it was &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.powells.com/cgi-bin/imageDB.cgi?isbn=9780060882419" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" ><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 123px; height: 174px;" src="http://www.powells.com/cgi-bin/imageDB.cgi?isbn=9780060882419" alt="" border="0" /></a>A while ago I bought a book called <a href="http://www.google.co.jp/search?hl=en&amp;q=747%3A+Creating+the+World%27s+First+Jumbo+Jet+and+Other+Adventures+from+a+Life+in+Aviation&amp;btnG=Google+Search" ><span style="font-weight: bold;">747: Creating the World&#8217;s First Jumbo Jet and Other Adventures from a Life in Aviation</span></a> by Joe Sutter. Actually I bought it at Hong Kong airport to read on the way home &#8211; <span style="font-style: italic;">ironically not by 747</span> (I don&#8217;t know what kind of plane it was &#8211; so <span style="font-weight: bold; font-style: italic;">no, I&#8217;m not an airplane geek</span>). I bought the book because I was curious to see if the reaction I&#8217;d get was <span style="font-style: italic;">&#8220;Oh, that&#8217;s <span style="font-weight: bold;">exactly</span> like in embedded software!&#8221;</span> or <span style="font-style: italic;">&#8220;Oh, so <span style="font-weight: bold;">that&#8217;</span>s how they do it in aeronautical engineering!&#8221;</span>. It turned out to be the former.</p>
<p><span style="font-weight: bold;">Joe Sutter</span>, the author of the book (although he probably had a lot of help writing it), lead the engineering effort to design the plane, which does seem like the most interesting point of view to me. Beside the main story of how the 747&#8217;s design came to be, he also tells some quite interesting tidbits from the history of aviation and from the aviation industry. These fit in nicely and makes the pages fly by. Unfortunately, there are a few too many autobiographical digressions that I didn&#8217;t like, and also the literary quality of the book is very poor, with many repetitions, and sometimes even contradictions. Anyway, not bad for an engineer.</p>
<p>So yes, <span style="font-weight: bold; font-style: italic;">designing and delivering jumbo jets seems to be very similar to designing and delivering embedded software</span>. The <span style="font-weight: bold;">scales</span> are, of course, <span style="font-weight: bold; font-style: italic;">completely different </span>though. Not only physical scales &#8211; where they measure time in months and years, we measure in hours and days &#8211; and costs are similarly <span style="font-weight: bold;">orders of magnitude</span> higher in aviation.</p>
<p>What struck me as the <span style="font-weight: bold;">biggest difference</span> though, when I was sitting on a modern airliner somewhere over the South China Sea while reading the book&#8217;s introductory chapters on aviation history, was that <span style="font-style: italic;">the jet airplanes he described in the early 1950s</span> (such as the Dash 80), <span style="font-style: italic;">are exactly the same as the jet airplanes now, <span style="font-weight: bold;">50 years later</span>!</span> They fly at the same speed, same altitude, and use basically the same engines. <span style="font-weight: bold; font-style: italic;">That&#8217;s really terrible!</span> Commercial aviation has surely come a long way since the Wright Brothers flew, but it did so in the first 50 years of its history. I&#8217;m glad I work with software.</p>
<p><a href="http://www.alexisparkinn.com/photogallery/twa-crew_b307.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" ><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://www.alexisparkinn.com/photogallery/twa-crew_b307.jpg" alt="" border="0" /></a><br />Even more sad is that even if you double the speed of an airplane, it would hardly make any difference today anyway. The Americans (I didn&#8217;t know that before reading the book), Europeans, and Russians all had their fun trying to make realistic supersonic commercial airplanes. But even if they had succeeded, <span style="font-style: italic;">how much of the total time spent traveling is really spent in the air</span>, at cruise speed, <span style="font-style: italic;">anyway</span>?</p>
<p>For example: from my home in central Tokyo to somewhere in central Hong Kong, which seems like a fairly typical scenario, the flight time is on average about 4 hours. Say you have to be at the airport 1.5 h before the flight, and it takes 1 h to get from the airplane out of the airport, 1.5 h for me to go to Narita airport, and 30 min to get to/from Hong Kong airport, and an extra 15 min in either end to go between stations/taxis etc &#8211; that&#8217;s 5 hours! <span style="font-style: italic;">So even if the <span style="font-weight: bold;">speed of the airplane doubled</span>, you&#8217;d only get between where you are and where you want to go <span style="font-weight: bold;">20% faster</span>.</span>  No, if anything close to aviation, I&#8217;d like to be an <span style="font-weight: bold;">airport architect</span>, <span style="font-weight: bold;">city planner</span>, and <span style="font-weight: bold;">anti-anti-terrorist consultant</span>. <span style="font-style: italic;"><span style="font-weight: bold;">That</span> would speed things up.</span></p>
<p>PS. I always thought of the Jumbo Jet as the airplane with two floors, but a significant part of the book is spent revealing how it came to be that the 747 ended up basically <span style="font-weight: bold;">not</span> having two floors! How strange.</p>
]]></content:encoded>
			<wfw:commentRss>http://henrikfalck.com/blog/2008/01/jumbo-jets-vs-embedded-software.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Me and The Gimp (and Four-Wheeled Cars)</title>
		<link>http://henrikfalck.com/blog/2007/07/me-and-gimp.html</link>
		<comments>http://henrikfalck.com/blog/2007/07/me-and-gimp.html#comments</comments>
		<pubDate>Fri, 13 Jul 2007 06:42:00 +0000</pubDate>
		<dc:creator>Henrik Falck</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[software engineering]]></category>

		<guid isPermaLink="false">http://henrikfalck.com/blog2/2007/07/me-and-the-gimp-and-four-wheeled-cars.html</guid>
		<description><![CDATA[I use The Gimp to create graphics for my projects. The main reason is because it&#8217;s free (as in beer) &#8211; I usually don&#8217;t warez software except old games that don&#8217;t sell any more anyway. That goes doubly for software I use to create software. So Photoshop is out of the question. And The Gimp [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://gimp.org/about/splash/splash-images/gimp-splash-1.4.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" ><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 185px; height: 212px;" src="http://gimp.org/about/splash/splash-images/gimp-splash-1.4.png" alt="" border="0" /></a>I use <a href="http://gimp.org/" style="font-weight: bold;" >The Gimp</a> to create graphics for my projects. The main reason is because it&#8217;s free (as in beer) &#8211; I usually don&#8217;t warez software except old games that don&#8217;t sell any more anyway. That goes doubly for software I use to create software. So <span style="font-weight: bold;">Photoshop</span> is out of the question. And <span style="font-weight: bold; font-style: italic;">The Gimp is a really good application</span>.</p>
<p>But as anyone who uses The Gimp can tell you, <span style="font-weight: bold; font-style: italic;">its interface sucks</span>. It has always sucked and continues to suck to this day. Interestingly, quite often some discussion pops up regarding this sucky interface, and whether anyone should do anything about it &#8211; or whether war is actually peace.</p>
<p>Just the other day there was this <a href="http://developers.slashdot.org/article.pl?sid=07/07/10/1817230" >article linked on Slashdot</a> about some academic-type dudes who have developed a modified gimp that collects usage data, to analyze how people use it and possible be able to improve the interface.</p>
<p>Ok, it&#8217;s done at a university so I realize it&#8217;s just someone&#8217;s waste of time and government money, but still&#8230; Anyone who&#8217;s ever used gimp can tell you that there&#8217;s just one simple, outstanding issue that accounts for roughly half of its suckiness: <span style="font-weight: bold;">The Windows</span> (imagine that in place of &#8220;The Horror&#8221; from <span style="font-weight: bold;">Apocalypse Now</span>!). The Gimp opens gazillions of windows &#8211; and they&#8217;re not contained in one parent window, <span style="font-weight: bold; font-style: italic;">like every other application in the world</span>, no &#8211; they behave like independent application windows. You don&#8217;t need academic studies to figure that out. So if you&#8217;re editing the graphics to a web app for instance, you switch to Firefox to see the result, and then back to The Gimp, and you have to open like 8 separate windows to get your UI back to the state it was before switching to another application. This gets deadly tedious.</p>
<p><span style="font-weight: bold; font-style: italic;">If I were tasked with designing a commercial car</span> &#8211; and I&#8217;m a software engineer, mind you &#8211; when I got to the matter of how many <span style="font-weight: bold;">wheels</span> to equip the vehicle with, <span style="font-weight: bold;">I would go with 4</span>. Just like that &#8211; it&#8217;s a no brainer. <span style="font-weight: bold; font-style: italic;">Every other car out there has 4 wheels</span>. I think it must make structural sense, and people are used to cars having 4 wheels. A mechanical engineer or a car marketing specialist could probably tell you more. <span style="font-style: italic;">The gods know how many wheels The Gimp&#8217;s designers would fit on their cars</span>.</p>
<p>Guys! Don&#8217;t go buying that Photoshop license just yet! <span style="font-weight: bold; font-style: italic;">I have a solution to the problem!</span> (If you run Linux you can skip the rest of this paragraph.) Just use a virtual desktop manager &#8211; like the *nix guys do. I use one called <span style="font-weight: bold;">Yod&#8217;m 3d</span>. Unfortunately it&#8217;s been bought up by some suspicious company and made commercial, but the last freeware version, 1.4, works good enough and can be downloaded (legally) for instance from <a href="http://thepiratebay.org/search/yod%5C%27m%203d/0/3/300,600" >The Pirate Bay</a>. <span style="font-weight: bold; font-style: italic;">Just run The Gimp on a virtual desktop of its own</span>. Linux people have been doing this for ages, but it&#8217;s never been habit in the real world, although I heard the next version of Mac OS will have virtual desktops. Anyway, <span style="font-style: italic;">you can have it today, in your Windows</span>. (I used to run only Linux for many years, so I got this habit of using virtual desktops extensively back then.)</p>
<p>There are still a few nuances to work out of The Gimp though. But it doesn&#8217;t require a Ph.D. to figure them out. If you, like me, never start using Photoshop, then at least you won&#8217;t be annoyed simply because The Gimp is different &#8211; <span style="font-weight: bold;">it should be</span>!</p>
<p>I wish it had a line drawing tool though.</p>
]]></content:encoded>
			<wfw:commentRss>http://henrikfalck.com/blog/2007/07/me-and-gimp.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A Note On PHP</title>
		<link>http://henrikfalck.com/blog/2007/06/note-on-php.html</link>
		<comments>http://henrikfalck.com/blog/2007/06/note-on-php.html#comments</comments>
		<pubDate>Mon, 25 Jun 2007 13:31:00 +0000</pubDate>
		<dc:creator>Henrik Falck</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[anecdote]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software engineering]]></category>

		<guid isPermaLink="false">http://henrikfalck.com/blog2/2007/06/a-note-on-php.html</guid>
		<description><![CDATA[Php is the most useful piece of crap ever shat on the face of the Earth. My old software engineering professor Uwe Aßmann (who held the by far best lectures I&#8217;ve ever had the pleasure to attend) used to call it Some Dude&#8217;s Law (I can&#8217;t remember whose) &#8211; that the ugly and worst designed [...]]]></description>
			<content:encoded><![CDATA[<p>Php is the most useful piece of crap ever shat on the face of the Earth. My old software engineering professor <a href="http://www.ida.liu.se/%7Euweas/" >Uwe Aßmann</a> (who held the by far best lectures I&#8217;ve ever had the pleasure to attend) used to call it Some Dude&#8217;s Law (I can&#8217;t remember whose) &#8211; that the ugly and worst designed software (Windows, PHP&#8230;) always win over the sexy and well designed (BeOS, Smalltalk&#8230;). Well, that&#8217;s how it is. Php makes me feel sick all the time, but I still use it. Because I have to (because that&#8217;s what&#8217;s installed) is only half the reason. The documentation is top notch, and I&#8217;m very productive using it. In Windows&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://henrikfalck.com/blog/2007/06/note-on-php.html/feed</wfw:commentRss>
		<slash:comments>70</slash:comments>
		</item>
	</channel>
</rss>

