<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:georss="http://www.georss.org/georss" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"><id>tag:blogger.com,1999:blog-16929505</id><updated>2009-05-15T15:55:27.175+02:00</updated><title type="text">Qualiteers Blog</title><subtitle type="html">Disclaimer: You are about to embark on a journey to the Grey Area* between the Public and the Private. Not all issues discussed in the blog are professional, nor are they even professionally discussed most of the time. You will, however, also find professional topics discussed there. 
&lt;br&gt;
Beware: This blog might either bore you or take you too deep in the life of Qualiteers.
&lt;br&gt;
* Grey Area produced by Grey Matter. You cannot govern creativity.</subtitle><link rel="alternate" type="text/html" href="http://qualiteers.com/blogger.html" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default?start-index=26&amp;max-results=25" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://qualiteers.com/atom.xml" /><author><name>Miska</name><uri>http://www.blogger.com/profile/08774503287162214364</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>286</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><link rel="self" href="http://feeds.feedburner.com/QualiteersBlog" type="application/atom+xml" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><entry><id>tag:blogger.com,1999:blog-16929505.post-5108072258931230580</id><published>2009-05-15T15:07:00.004+02:00</published><updated>2009-05-15T15:55:27.183+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Tried to come up with a witty film-related title without success" /><title type="text">Wet of Clothing in Sophia Antipolis</title><content type="html">My web-titan send me a link to this webpage about &lt;a href="http://makinggoodsoftware.com/2009/05/12/hdd/"&gt;Hope-Driven Development&lt;/a&gt;. There's a lot of truth to the story and it is no wonder that checking incoming variable values is a part of &lt;a href="http://www.tick-the-code.com/"&gt;Tick-the-Code&lt;/a&gt; method. As a matter of fact, there are two relevant rules in the method; NEVERNULL and CHECK-IN.&lt;br /&gt;NEVERNULL asks checkers to &lt;span style="font-weight:bold;"&gt;tick the first statement&lt;/span&gt; in a function to dereference a pointer without first validating it isn't NULL. Otherwise all hell breaks loose, when the system is executed. And that is the &lt;span style="font-weight:bold;"&gt;best case scenario&lt;/span&gt;.  In a much worse situation, the system doesn't crash and seems to work fine. It does, however, hot work quite correctly and the longer it takes for the developers to notice, the harder it is for them to figure out what exactly is broken.&lt;br /&gt;Pointers are special, because their side-effects and symptoms can be extremely insidious, but there are other components and values in source code, too. Variables of other types can also assume wrong values and if the developers assume that that never happens, chaos will ensue. &lt;blockquote&gt;Assuming makes an ass out of you and me.&lt;/blockquote&gt; Rule CHECK-IN makes checkers in code review locate all places where a variable is used without first checking its sanity. Once again, not all variable values can be even roughly checked, but a conscious risk is preferable to ignorance every time.&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;The day started in Sophia Antipolis with a downpour of such intensity that cats and dogs are far too little and few in number to describe the dawning waterfall. Walking to a nearby bus stop with an umbrella was still enough to melt the creases off my trousers. The sloshing sound in my shoes became more of a squeak once I entered the customer's building, where I managed to perform a test ticking regardless. I had &lt;span style="font-weight:bold;"&gt;a strong sense of déjà vu&lt;/span&gt; - only appropriate, what with me being in France - that &lt;a href="http://qualiteers.com/2009/04/french-cuisine-despair-and-hope.html"&gt;just two weeks ago I had wondered dripping wet the unknown streets of Sophia Antipolis&lt;/a&gt;, having stepped out of the bus six stops too early, without a map or an idea which way to go. The flu that had started to bother me the day before, didn't improve my situation. So much for first impressions, now was my last day in Sophia Antipolis, for now, and it was showing me its fluidier side.&lt;br /&gt;It doesn't rain often in Southern France, but it rains a lot. You deduce how drizzly the rainshowers must be.  &lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;I'm now in Nice, although going to Cannes did occur to me. There's some kind of &lt;a href="http://www.festival-cannes.com/en.html"&gt;film festival&lt;/a&gt; there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-5108072258931230580?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/5108072258931230580/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=5108072258931230580" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/5108072258931230580" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/5108072258931230580" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2009/05/wet-of-clothing-in-sophia-antipolis.html" title="Wet of Clothing in Sophia Antipolis" /><author><name>Miska</name><uri>http://www.blogger.com/profile/08774503287162214364</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16929505.post-392882791853554286</id><published>2009-05-12T22:55:00.002+02:00</published><updated>2009-05-12T23:13:55.631+02:00</updated><title type="text">Software development revealed</title><content type="html">There's an interesting rendezvous between software development and real world taking place in the United States. In this case the supplier of breathalyzer code has refused to submit it for review in a trial case. &lt;a href="http://techdirt.com/articles/20090508/2306454808.shtml"&gt;This Techdirt article&lt;/a&gt; supposes that the code is too crappy and the supplier too embarrassed to obey the Supreme Court decision.&lt;br /&gt;&lt;br /&gt;I will have more to say about an older case of breathalyzer code analysis. In that trial the supplier gave in and the code was found not to be proprietary after all. And crappy.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://images.google.com/images?q=breathalyzer"&gt;What's a breathalyzer?&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-392882791853554286?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/392882791853554286/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=392882791853554286" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/392882791853554286" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/392882791853554286" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2009/05/software-development-revealed.html" title="Software development revealed" /><author><name>Miska</name><uri>http://www.blogger.com/profile/08774503287162214364</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16929505.post-4038939785565343913</id><published>2009-05-11T11:06:00.003+02:00</published><updated>2009-05-11T11:22:22.608+02:00</updated><title type="text">Doctoral Dissertation: SW Checking Needs Improving</title><content type="html">It's been brought to my attention (thanks, Juha) that there's an interesting doctoral dissertation about to be accepted in Helsinki. Sami Kollanus has written about how the checking methods in software development should really be improved. According to &lt;a href="http://www.itviikko.fi/ihmiset-ja-ura/2009/05/08/vaitos-ohjelmistotuotannon-tarkastuksia-syyta-petrata/200911701/7?posted=1&amp;offset=0&amp;article=1#3354901"&gt;this article&lt;/a&gt; (only in Finnish), his dissertation contains some suggestions on how this might be possible. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.tol.oulu.fi/~tervo/"&gt;Professor Tervonen&lt;/a&gt;, who acts as the opponent, is familiar for his work in software inspections and I've bumped into his virtually a couple of times. In 2006 I found out that he specializes in inspections and that they had some studies going on in the Department of Information Processing Science in the University of Oulu, so I sent him an email with the faint wish to be noticed. I did receive a friendly reply, but that was that then. The second time was just this year as I took part on an online lecture course and professor Tervonen was one of the lecturers. It was a treat to hear about the current research directions in software inspections.&lt;br /&gt;&lt;br /&gt;I can't wait to get my hands on Kollanus' dissertation and read what kind of things he has studied and what kind of suggestions he has for improvements.&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;Tomorrow, I'll be in Sophia Antipolis, France. Again. This time I know where everything is and I'll rent a car, because walking everywhere was truly difficult. Possible, but difficult and slightly dangerous. Not sure that driving with the French is any safer, though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-4038939785565343913?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/4038939785565343913/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=4038939785565343913" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/4038939785565343913" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/4038939785565343913" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2009/05/doctoral-dissertation-sw-checking-needs.html" title="Doctoral Dissertation: SW Checking Needs Improving" /><author><name>Miska</name><uri>http://www.blogger.com/profile/08774503287162214364</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16929505.post-6694251216135106704</id><published>2009-05-01T11:50:00.021+02:00</published><updated>2009-05-11T11:30:06.050+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dilbert" /><category scheme="http://www.blogger.com/atom/ns#" term="simpsons" /><title type="text">Dilbert and Simpsons</title><content type="html">As I seem to be stranded in Sophia Antipolis because of the bank holiday, what better way to while away the boredom than to post a blog entry. Only I don't have anything of substance. The Dilbert today caught my eye.&lt;br /&gt;&lt;br /&gt;If you miss attending good training, how do you think I feel as training provider?&lt;br /&gt;&lt;a href="http://dilbert.com/strips/comic/2009-05-01/" title="Dilbert.com"&gt;&lt;img width="380" src="http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/50000/0000/900/50942/50942.strip.gif" border="0" alt="Dilbert.com" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;For the Battlestar Galactica fans, here's a treat. I give you "&lt;a href="http://community.livejournal.com/pantsketch/99256.html"&gt;Battlestar Simpsonica&lt;/a&gt;":&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-6694251216135106704?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/6694251216135106704/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=6694251216135106704" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/6694251216135106704" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/6694251216135106704" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2009/05/dilbert-and-simpsons.html" title="Dilbert and Simpsons" /><author><name>Miska</name><uri>http://www.blogger.com/profile/08774503287162214364</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16929505.post-3128647700983306738</id><published>2009-04-29T20:14:00.004+02:00</published><updated>2009-04-29T20:44:45.032+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Sophia Antipolis" /><category scheme="http://www.blogger.com/atom/ns#" term="secret of marketing" /><title type="text">French cuisine, despair and hope</title><content type="html">How could I have anything bad to say about French cousine? Me, the tastebudless Finn, here, in Sophia Antipolis. For lunch on the training day on Tuesday we went to the local restaurant, which was serving Thai food. I had two rolls of something with lettuce and mint. I was assured that the rolls contained rotten fish and I have to think that it wasn't a language issue. The rolls were absolutely delicious and I have to now ask my Thailand-visiting friends. Have you come into contact with rotten-fish-rolls? They might be called Nem or not.&lt;br /&gt;&lt;br /&gt;In the evenings I'm not eating at restaurants, but instead I cook in my hotel room. Well, if you can call nuking cooking. Here's an example of misleading marketing, if I ever so one. The potatoes were a sad sight:  &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/seonvainmainos-712946.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 240px; height: 320px;" src="http://qualiteers.com/uploaded_images/seonvainmainos-712931.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I was feeling miserable on Monday as I arrived. Here's my first impression of Sophia Antipolis, standing in wet shoes and jeans, having dragged a wet suitcase up an endless seeming hill, without the slightest clue as to where I'm supposed to go or how far it is, finding an obscure map indicating that the street I'm on is circular and that if I continue up the hill, I'll soon be coming down the hill back to where I started from and it's not the street my hotel is on:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/SophiaRain-712977.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://qualiteers.com/uploaded_images/SophiaRain-712973.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Luckily the next morning made more than up for it, look at the perfect blue sky:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/SophiaSun-793306.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://qualiteers.com/uploaded_images/SophiaSun-793301.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What if tourist leaflets only used the sunny pictures and the reality was more like my first impression? Would we put up with it? No, that's why travel agency broschures always tell the truth and show also rainy and cloudy pictures...HEY, wait a minute!...that can't be right. Marketing is based on the X-tian principle of turning the other cheek. If the first cheek doesn't look good in the sales picture, that is...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-3128647700983306738?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/3128647700983306738/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=3128647700983306738" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/3128647700983306738" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/3128647700983306738" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2009/04/french-cuisine-despair-and-hope.html" title="French cuisine, despair and hope" /><author><name>Miska</name><uri>http://www.blogger.com/profile/08774503287162214364</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16929505.post-1590538898307506393</id><published>2009-04-27T15:56:00.004+02:00</published><updated>2009-04-27T16:37:18.718+02:00</updated><title type="text">French bussing</title><content type="html">- I am in Sophia Antipolis. &lt;br /&gt;- Sophia where? Are you in Greece?&lt;br /&gt;- No, just the name of this place is Greek, but it's actually in France. The closest French town is Antibes and Antipolis is the Greek version of it.&lt;br /&gt;- Far out, man!&lt;br /&gt;- Yes, this is the Silicon Valley of Europe!&lt;br /&gt;- La Vallee de Silicon?&lt;br /&gt;- Well, yes, there are dozens of startups and bigger IT companies here!&lt;br /&gt;- How come?&lt;br /&gt;- They built it and the companies came.&lt;br /&gt;- Eh?&lt;br /&gt;- Sophia Antipolis is a constructed city nearby Nice. A little bit like Las Vegas?&lt;br /&gt;- I thought the casino was in Monaco?&lt;br /&gt;- It is, but the city feels very made-up, very artificial. You can hardly walk anywhere...&lt;br /&gt;- Because of the dog pooh?&lt;br /&gt;- No, because there are no sidewalks. You are supposed to have a car, or use busses.&lt;br /&gt;- They must cost a big penny?&lt;br /&gt;- No, I paid 1€ for the bus trip from Nice Airport to Sophia Antipolis, which is about 30 km.&lt;br /&gt;- That's value for money!&lt;br /&gt;- Yes and had I not jumped out too early, I would have enjoyed it more.&lt;br /&gt;- You had a premature ejection?&lt;br /&gt;- No, my instructions told me to step out in the middle of nowhere, although the bus would have continued to the right direction. And it was raining. That's when I noticed, you can't walk anywhere.&lt;br /&gt;- What did you do? (I'm shivering with excitement, does he eventually find his hotel room and a working Wi-Fi connection to write his sad and wet story on his blog?)&lt;br /&gt;- I walked for a while getting wet. I thought it made no difference as my luggage was wet already when it came out of the plane. Maybe this time Air Berlin was trying out an external luggage transport system.&lt;br /&gt;- You're kidding, right?&lt;br /&gt;- When I ran out of sidewalk, I had to take a bus. The bus driver took no money. He just said it's free.&lt;br /&gt;- You're pulling my leg!&lt;br /&gt;- No, it's all true. I stepped out at a roundabout. Only one roundabout too far, this time.&lt;br /&gt;- Oh, no!&lt;br /&gt;- Oh, yes. Some time later, I resolved to taking a bus the other way and the driver was extremely kind and told me that the next stop would be my roundabout and that he was going to stop at it. The timetable didn't mention the stop on his line, though.&lt;br /&gt;- What do you mean roundabout?&lt;br /&gt;- Yeah, they have roundabouts everywhere. And they have their names. You can find Carrefour (that's roundabout in the local dialect) de Garbejaire, which is the one too far and Carrefour (there's that word again) de G.Pompidou, which is closest to my hotel. When I got there, my mind was a bit sunnier. Only the weather wasn't. It started pouring down, but now I had a goal.&lt;br /&gt;- The hotel?&lt;br /&gt;- Yes, now I knew where I was and I would get to my hotel room in daylight.&lt;br /&gt;- Did you?&lt;br /&gt;- Well, I'm writing this blog entry on my bed, in my hotel room, with the radiator blasting as hot as can be to dry out my shoes, socks, jeans and jacket. They are wet because I was wearing them in the rain.&lt;br /&gt;- Well, how else do clothes get wet?&lt;br /&gt;- By being in a wet suitcase being dragged for mails in the rain. My three shirts are all patchy with water and one of them is downright dirty. It's a blueish-white shirt and the patches are far too visible. I'll need to do some laundry soon.&lt;br /&gt;- Boy, you must be exhausted.&lt;br /&gt;- No, I'm energized to get back on track. &lt;br /&gt;- What about your contacts in Sophia Antipolis? Are you going to visit many software houses?&lt;br /&gt;- The current plan is to just go knock on some doors on Wednesday and Thursday. The problem is that the companies don't seem to have doors, but gates and knocking on gates is maybe easy but it's also pretty ineffective.&lt;br /&gt;- What are you going to do?&lt;br /&gt;- I'm still trying to deliver my message about Tick-the-Code to as many companies as possible. It is after all a win-win I'm selling.&lt;br /&gt;- The customer benefits because his developers write better code, which they can extend quicker and without so many errors..&lt;br /&gt;- Wow, you know my stuff!&lt;br /&gt;- Yes, I've been reading your writings on www.qualiteers.com/downloads.php. Have you written anything new?&lt;br /&gt;- As a matter of fact, I just finished a paper on software maintainability. I call it "Software Maintainability in Practice: A Good Riddance of Internal Defects!"&lt;br /&gt;- That's quite a name.&lt;br /&gt;- Charles Dickens used it first.&lt;br /&gt;- Dickens knew software?&lt;br /&gt;- No, he used the phrase "a good riddance of" to mean that getting rid of something was a blessing and that we were better off without it.&lt;br /&gt;- Ahh.&lt;br /&gt;- In it I list code examples of how to improve source code internally, without touching the functionality.&lt;br /&gt;- Isn't that called refactoring?&lt;br /&gt;- You're absolutely right. Martin Fowler's book "Refactoring" made the term famous and I mention the book and XP in the paper.&lt;br /&gt;- You show Windows code as example. Isn't that like taking candy from a child?&lt;br /&gt;- I don't mean Windows XP, I mean Extreme Programming, the mother of all agile methods! That's where refactoring is part of a day.&lt;br /&gt;- Ahh.&lt;br /&gt;- So, anyway, in the paper I come to the conclusion,..&lt;br /&gt;- Yes?&lt;br /&gt;- ..that manual code inspections are inevitable. Testing and static analysis tools (or any kind of tool, for that matter) can never cover all internal defects. Modularity issues require human ingenuity and to know whether a comment is a good one or a bad one, one needs to understand what it says. No machine understands.&lt;br /&gt;- No machine understands.&lt;br /&gt;- Machines can repeat, associate and seem understanding, but they are not.&lt;br /&gt;- They are not.&lt;br /&gt;- Just like you, mere programs can be entertaining, but they lack that spark of creativity that makes humans humans.&lt;br /&gt;- Isn't that a bit redundant?&lt;br /&gt;- See, right there, you jumped to the conclusion that I was being repetitive, when I said "humans humans".&lt;br /&gt;- Isn't that a bit redundant?&lt;br /&gt;- If I keep doing that, you'll be the repetitive one. You cannot truly understand humans, humans do.&lt;br /&gt;- Isn't that a bit redundant?&lt;br /&gt;- Good bye.&lt;br /&gt;- Bye bye! (Isn't that a bit redundant?)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-1590538898307506393?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/1590538898307506393/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=1590538898307506393" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/1590538898307506393" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/1590538898307506393" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2009/04/french-bussing.html" title="French bussing" /><author><name>Miska</name><uri>http://www.blogger.com/profile/08774503287162214364</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16929505.post-6321891293868906973</id><published>2009-02-20T09:56:00.005+01:00</published><updated>2009-02-27T13:19:04.422+01:00</updated><title type="text">Software, Silliness and Snow</title><content type="html">&lt;span style="font-weight:bold;"&gt;Seriously about Software:&lt;/span&gt;&lt;br /&gt;Joel Spolsky has written many good pieces on software development. This one is essentially saying "whatever you do, &lt;a href="http://www.joelonsoftware.com/articles/fog0000000069.html"&gt;don't rewrite code from scratch&lt;/a&gt;." One way to renew your codebase is to tick the code regularly and often enough. It takes some time, but every ticking takes you closer to cleaner, more maintainable and extensible code. There's no magical solution, no shortcuts, no silver bullets and sometimes you have to make bigger, riskier refactorings. If you let development debt accumulate, you'll have to pay it back sooner or later. Just hope you can afford it. Ticking means paying the debt in smaller, perhaps weekly installments.&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;From the Stern Fun dept:&lt;/span&gt;&lt;br /&gt;Software developers are creatures of intellect. Smartness is highest on their values. You can hear that in their witty and wordy remarks (sure to make non-nerds (the word mundies use for these intellect-workers) roll their eyes in desperation), you can see it in their fashion sense and you can sometimes even smell it. Sometimes being smart, or thinking you're smart, makes you cocky. You consider yourself the best judge of how things should be done or code implemented. Asking for feedback is for losers, you think. All of us are imperfect, however. We are imperfect even in what we love or are passionate about. We might not want to admit it, but the software we produce, is never perfect. That's not the problem, managers and customers can't expect you to be perfect, that wouldn't be human. The problem is when you don't check what you've done, when you don't ask for help from your colleagues, because you think you know best, nobody can help you and besides, there's no time.&lt;br /&gt;&lt;img width="360" src="http://www.osnews.com/images/comics/wtfm.jpg"&gt;&lt;br /&gt;This picture shows well what happens when you do let somebody else take a look into your source code.&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The Weather:&lt;/span&gt;&lt;br /&gt;It's been snowing here in Finland, but take a look at &lt;a href="http://journal.neilgaiman.com/2009/02/snowphotos-of-kilamanjaro.html"&gt;&lt;img src="http://3.bp.blogspot.com/_6L1zPW0YW7k/SacqBSpkjDI/AAAAAAAAOQU/rmCWsbuwdx8/s400/IMG_2311.JPG"&gt;&lt;br /&gt;Neil Gaiman and Cabal, the dog, near Minneapolis, Minnesota&lt;/a&gt;. (Clicking takes you to Neil's Journal Blog Thingie which has more pictures)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-6321891293868906973?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/6321891293868906973/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=6321891293868906973" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/6321891293868906973" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/6321891293868906973" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2009/02/software-silliness-and-snow.html" title="Software, Silliness and Snow" /><author><name>Miska</name><uri>http://www.blogger.com/profile/08774503287162214364</uri><email>noreply@blogger.com</email></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_6L1zPW0YW7k/SacqBSpkjDI/AAAAAAAAOQU/rmCWsbuwdx8/s72-c/IMG_2311.JPG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16929505.post-7539334755851793759</id><published>2009-02-05T15:38:00.011+01:00</published><updated>2009-02-20T10:00:41.875+01:00</updated><title type="text">On The Rocks, or On Thick Ice</title><content type="html">I'm currently in Oulu and I missed the real cold weather by one day. Apparently on Wednesday it was colder than -20 degrees centigrade here but on Thursday it was just a mild -9 degrees as we went to see the local ice-hockey team Oulu Weasels lose to Helsinki IFK. The game was quite even and ended 2-3 to the visiting team.&lt;br /&gt;I did some skating myself earlier this week. I went to natural ide track on Näsijärvi lake in Tampere and spent an hour going around it. I visited the world's shortest lighthouse and took some pictures of the abandoned amusement park Särkänniemi.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/worlds_shortest_lighthouse-717988.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://qualiteers.com/uploaded_images/worlds_shortest_lighthouse-717986.jpg" border="0" alt="World's shortest lighthouse?" /&gt;Is this the world's shortest lighthouse?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/on_thick_ice-717976.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://qualiteers.com/uploaded_images/on_thick_ice-717973.jpg" border="0" alt="On thick ice" /&gt;I was literally standing on thick ice.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/Miska_with_tower-769783.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://qualiteers.com/uploaded_images/Miska_with_tower-769782.jpg" border="0" alt="Miska and Näsinneula tower" /&gt;Am I taller than normal or has Näsinneula shrunk?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/abandoned_amusement_park-769767.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://qualiteers.com/uploaded_images/abandoned_amusement_park-769764.jpg" border="0" alt="The abandoned amusement park" /&gt;Desolate amusement parks creep some people out.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Talking about skating, I'm so proud of my god children in Finland. Both of them do sports and have fun at it. Emma is into figureskating and Eetu plays ice hockey. They've taken part in some competitions and their achievements were noticed in the local papers some time ago.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/emma-715761.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 197px;" src="http://qualiteers.com/uploaded_images/emma-715743.jpg" border="0" alt="Emma's achievement" /&gt;Emma won her series!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/eetu-715726.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 141px;" src="http://qualiteers.com/uploaded_images/eetu-715691.jpg" border="0" alt="Eetu's team" /&gt;Eetu circled&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is the whole happy family enjoying their time together by playing music. (Note: extended and constant clicking on the drums can drive the listeners mad. Enjoy "Rock Band" responsibly.)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/The-Band-730570.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://qualiteers.com/uploaded_images/The-Band-730565.jpg" border="0" alt="The Band" /&gt;The Band (Notice the extremely confident and therefore relaxed bass player&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now I have to dash to catch the train to Hämeenlinna!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-7539334755851793759?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/7539334755851793759/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=7539334755851793759" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/7539334755851793759" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/7539334755851793759" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2009/02/on-rocks-or-on-thick-ice.html" title="On The Rocks, or On Thick Ice" /><author><name>Miska</name><uri>http://www.blogger.com/profile/08774503287162214364</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16929505.post-1255251449313341271</id><published>2009-02-05T13:42:00.013+01:00</published><updated>2009-02-05T14:27:57.232+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="birds" /><category scheme="http://www.blogger.com/atom/ns#" term="Poland" /><category scheme="http://www.blogger.com/atom/ns#" term="travel" /><category scheme="http://www.blogger.com/atom/ns#" term="poem" /><category scheme="http://www.blogger.com/atom/ns#" term="ferrari" /><title type="text">A Public Service Announcement to Ornithophobes</title><content type="html">I had no idea that some authors can be so highly valued. Take, for example, the horror genre. One of the most prestigious of its representatives is surely &lt;a href="http://en.wikipedia.org/wiki/Edgar_Allan_Poe"&gt;Edgar Allan Poe&lt;/a&gt;, the writer of "The Pit and the Pendulum" and "The Raven". Now witness me walking around in the city of Wroclaw, or Breslau, as the German name is. I'm looking for the Museum of Natural History, minding my own business and what do I see, when I look suddenly behind me?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/crow2-730121.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:left;cursor:pointer; cursor:hand;width: 150px; height: 200px;" src="http://qualiteers.com/uploaded_images/crow2-730093.jpg" border="0" alt="Crow behind me" /&gt;This...&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/crow1-730078.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:left;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://qualiteers.com/uploaded_images/crow1-730076.jpg" border="0" alt="Crow in tree" /&gt;...and this!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the poem "&lt;a href="http://www.heise.de/ix/raven/Literature/Lore/TheRaven.html"&gt;The Raven&lt;/a&gt;" E.A.Poe describes a crow that says "Nevermore!" most ominously. Are they stalking me? I decide to continue, I pick up the pace a little, but not enough to catch the nice red sports cars whooshing by me almost completely ignoring the afternoon rush hour.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/ferrari-793918.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:left;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://qualiteers.com/uploaded_images/ferrari-793912.jpg" border="0" alt="Two Ferraris in midtown traffic" /&gt;No chance of catching up.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I finally find the museum, but it does not console me, I can't get in! Look, there's a huge bird guarding the door! Is there no safety in this city?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/petrified_bird-702029.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:left;cursor:pointer; cursor:hand;width: 150px; height: 200px;" src="http://qualiteers.com/uploaded_images/petrified_bird-702026.jpg" border="0" alt="Petrified eagle" /&gt;No way am I going to get in under those watchful eyes!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I better head down to the river, I need to calm down. The river flows quietly. But what is that sound? Let's see, it's coming just around the corner. Here's the view from the bridge (extreme closeup, look with care):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/birds-724816.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:left;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://qualiteers.com/uploaded_images/birds-724805.jpg" border="0" alt="Birds by the dozen" /&gt;Birds in a feeding frenzy&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There is no peace in this city. I better ask the little people for help. They are known to chase away big birds. They aren't too bright, though. Here you see two of them moving a rock, by both pushing from opposite directions. They've been at it for years. The rock hasn't moved yet.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/lp1-761735.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:left;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://qualiteers.com/uploaded_images/lp1-761732.jpg" border="0" alt="Pushers of rock" /&gt;Push, push, maybe one day it will budge!&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/lp3-761754.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:left;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://qualiteers.com/uploaded_images/lp3-761745.jpg" border="0" alt="Little people taking it easy" /&gt;Some of the little people take it more easy, especially when one of their brethren has gotten rid of the birds.&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/lp2-794397.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:left;cursor:pointer; cursor:hand;width: 150px; height: 200px;" src="http://qualiteers.com/uploaded_images/lp2-794395.jpg" border="0" alt="Bird chaser" /&gt;In the nighttime, some of the little people take out their broomsticks, climb on street lights and drive the birds away.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;They can apparently turn large African animals to sheets of metal, too.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/rhino-784402.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:left;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://qualiteers.com/uploaded_images/rhino-784399.jpg" border="0" alt="Metal rhinos" /&gt;Rhinos are less dangerous in this form.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After my animal adventures in Wroclaw, I'm happy to return to literature, in the safety between the pages, where anything can happen, but nothing can happen to you. That's why the horror genre is so popular. It feels dangerous, but isn't.&lt;br /&gt;I never knew writers could be so highly valued. To name a whole country. Wroclaw is a big city in Poeland, you know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-1255251449313341271?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/1255251449313341271/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=1255251449313341271" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/1255251449313341271" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/1255251449313341271" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2009/02/public-service-announcement-to.html" title="A Public Service Announcement to Ornithophobes" /><author><name>Miska</name><uri>http://www.blogger.com/profile/08774503287162214364</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16929505.post-343847184479214914</id><published>2009-01-14T13:07:00.008+01:00</published><updated>2009-01-14T13:45:26.596+01:00</updated><title type="text">AND WINTER CAME</title><content type="html">After two weeks Christmas holiday in Finland we were ready to return to Bochum, expecting rain. In Finland there was snow, not enough though (never enough for me I guess) and it was quite cold. Most of the days the temperature was around -5∘c, but one morning I got to enjoy temperature of -18∘c, which was nice. Anyway, back to Bochum. As we took the taxi from the airport around noon, it was dry, gray and too warm to wear our winter coats - outside I mean. After two weeks without heating our apartment was cold enough for wearing winter coats inside the house. &lt;br /&gt;&lt;br /&gt;Miska finally found use for all my candles. Hundreds of them.. Slowly the apartment started to warm up. I decided to visit a friend and as I was leaving, I noticed it had begun to snow. After three hours as I was returning home, there was 10 centimetres snow! Bochum was all covered in this magical white stuff that makes the world so soft and silent. I dragged Miska out for a walk and enjoyed the winter weather, &lt;span style="font-style:italic;"&gt;my&lt;/span&gt; weather. I was hopping in the snow, kicking it, throwing it, loving it!&lt;br /&gt;&lt;br /&gt;It was winter in Bochum. Even more than it had been in Finland. After 9 years it was really winter and it lasted almost for 10 days. And now it's gone. It's raining. I can see the green grass again. But never mind, it was here! What, you don't believe me? Check out the photos from 5th of January.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/IMG_2858-772664.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://qualiteers.com/uploaded_images/IMG_2858-772660.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/IMG_2859-747743.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://qualiteers.com/uploaded_images/IMG_2859-747738.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/IMG_2862-776789.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 240px; height: 320px;" src="http://qualiteers.com/uploaded_images/IMG_2862-776782.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/IMG_2863-776824.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://qualiteers.com/uploaded_images/IMG_2863-776816.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/IMG_2865-772116.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://qualiteers.com/uploaded_images/IMG_2865-772112.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/IMG_2871-792654.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 240px; height: 320px;" src="http://qualiteers.com/uploaded_images/IMG_2871-792645.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;PS. Terveiset Lahteen Hennalan perukoille: Jumala on lumet luonut!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-343847184479214914?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/343847184479214914/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=343847184479214914" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/343847184479214914" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/343847184479214914" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2009/01/and-winter-came.html" title="AND WINTER CAME" /><author><name>Viivi</name><uri>http://www.blogger.com/profile/15926741030877570525</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16929505.post-3982193348569355215</id><published>2009-01-09T14:36:00.007+01:00</published><updated>2009-01-09T15:00:10.126+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="reason" /><title type="text">Business Reason for More Software Quality</title><content type="html">In a world where most code is unnecessarily complex, much of the time of any software developer is just plain wasted. Assuming that a developer uses two hours daily going through some mysterious source code isn't too far fetched. The code can be his own, the details of which he has long since forgotten, or as in most cases, the code might be written by somebody who hasn't quite followed the Good Principles of Coding and instead has produced a confusing pile of programming language statements thrown carelessly together in the desperate hope that testing will take care of any problems in it. The code could have been simple and easy to extend, read and understand, but - alas - that is once again not the case. How come I'm not the least bit surprised? If we had a way of making the source code simpler, our poor developer would probably only need one hour instead of two for achieving the same. With an hourly rate of 50€, we are talking about a monthly saving of 1000€. &lt;span style="font-weight:bold;"&gt;For each developer.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;A HREF="http://www.tick-the-code.com/"&gt;Tick-the-Code&lt;/A&gt; is such a way and &lt;A HREF="http://www.qualiteers.com/thecourse.php"&gt;DayTick&lt;/A&gt; is the training course for it.&lt;br /&gt;&lt;br /&gt;How much would you be willing to pay for a training course that saves you 5,000-10,000€ each month? (For a group of ten trainees.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-3982193348569355215?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/3982193348569355215/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=3982193348569355215" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/3982193348569355215" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/3982193348569355215" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2009/01/business-reason-for-more-software.html" title="Business Reason for More Software Quality" /><author><name>Miska</name><uri>http://www.blogger.com/profile/08774503287162214364</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16929505.post-3569639806805389242</id><published>2009-01-07T20:19:00.003+01:00</published><updated>2009-01-07T20:29:45.839+01:00</updated><title type="text">Need a hobby besides software development?</title><content type="html">Here's a delightful hobby for a software developer or computer user: writing haikus. &lt;br /&gt;First, check the rules of the game, &lt;a href="http://en.wikipedia.org/wiki/Haiku"&gt;see wikipedia&lt;/a&gt;.&lt;br /&gt;Then choose a theme: hmm, computer problems. Yeah, that's it.&lt;br /&gt;And voilá: &lt;a href="http://www.strangeplaces.net/weirdthings/haiku.html"&gt;Haiku error messages&lt;/a&gt; (link sent by Kaj)&lt;br /&gt;&lt;br /&gt;Then just exercise your creative muscle and push out your own:&lt;br /&gt;&lt;br /&gt;Page not available&lt;br /&gt;Has the server crashed or what?&lt;br /&gt;Client and user annoyed, both&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-3569639806805389242?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/3569639806805389242/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=3569639806805389242" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/3569639806805389242" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/3569639806805389242" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2009/01/need-hobby-besides-software-development.html" title="Need a hobby besides software development?" /><author><name>Miska</name><uri>http://www.blogger.com/profile/08774503287162214364</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16929505.post-6283759880142693986</id><published>2008-12-17T09:14:00.002+01:00</published><updated>2008-12-17T09:31:53.020+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="complexity" /><title type="text">In a World of Simple Men, Complexity is King</title><content type="html">Dealing with software you must have noticed how complex the matter can get. And you are right, software source code is without a doubt the most complex achievement of the human race, so far. Software that has been developed over the years reaches often such complexity that maintenance becomes a nightmare or impossible. Sometimes even young software succumbs to the siren call of complexity. In a world of increasing demands on performance and features, complexity reigns as king. Teams and teams of testers have fought many a battle against this despot and killed mountains of bugs - and still lost the war. &lt;span style="font-style:italic;"&gt;Complexity rules - not ok.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Complexity causes bugs&lt;/span&gt;&lt;br /&gt;Essential complexity is caused by real difficulties in the application area. Time pressure, carelessness, not having the right skills or the right motivation, and existing complexity cause complexity, too. This latter kind of complexity is inessential, accidental and - to make the obvious obvious - unnecessary. The software becomes almost unmaintainable when you combine a demanding application area (for example, real-time) with hurried developers. Bugs will find endless hiding places in the resulting source code. No matter how much the testers try to fight it, the end result will be far from flawless.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Learning is key&lt;/span&gt;&lt;br /&gt;The only people who can really influence the complexity of the source code are the software developers. They need to prioritize complexity above all else. Luckily, there are ways of achieving this. Create a workflow where the developers notice the complexity and understand how harmful it is. With that feedback in place, all you need are clever people who learn. The single most important aspect in the fight against complexity is to make sure the developers learn. Learn from their own mistakes and from the mistakes of others. That way you can reverse the usually prevalent Vicious Circle of Busyness*.&lt;br /&gt;&lt;br /&gt;* &lt;sub&gt;The Vicious Circle of Busyness states that "the busier you are, the busier you'll get".&lt;/sub&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-6283759880142693986?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/6283759880142693986/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=6283759880142693986" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/6283759880142693986" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/6283759880142693986" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2008/12/in-world-of-simple-men-complexity-is.html" title="In a World of Simple Men, Complexity is King" /><author><name>Miska</name><uri>http://www.blogger.com/profile/08774503287162214364</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16929505.post-6342929835587371126</id><published>2008-08-14T18:21:00.011+02:00</published><updated>2008-08-14T19:51:03.037+02:00</updated><title type="text">Summer feelings from Finland and Germany</title><content type="html">SUMMER IN FINLAND:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/Summernight-in-Tampere-792803.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;"  src="http://qualiteers.com/uploaded_images/Summernight-in-Tampere-792795.jpg" border="0" alt="Summer night in Tampere" /&gt;&lt;/a&gt;Summer night in Tampere.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/Night-by-the-lake-792717.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://qualiteers.com/uploaded_images/Night-by-the-lake-792711.jpg" border="0" alt="Night by the lake" /&gt;&lt;/a&gt;Night by the lake in Mankala.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/Miska-playing-frisbee-734245.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;"  src="http://qualiteers.com/uploaded_images/Miska-playing-frisbee-734241.jpg" border="0" alt="Miska playing frisbee" /&gt;&lt;/a&gt;Miska playing frisbee in Tampere.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SUMMER IN BOCHUM:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/Virpi-in-Bochum-culinary-783260.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;"  src="http://qualiteers.com/uploaded_images/Virpi-in-Bochum-culinary-783256.jpg" border="0" alt="Virpi in Bochum Culinary" /&gt;&lt;/a&gt;Virpi enjoying a nice meal in the Bochum Culinary -happening.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/Hafenfest-in-Carolinensiel-719661.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://qualiteers.com/uploaded_images/Hafenfest-in-Carolinensiel-719657.jpg" border="0" alt="Hafenfest in Carolinensiel" /&gt;&lt;/a&gt;Hafenfest in Carolinensiel&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/Duo-Sunset-719153.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://qualiteers.com/uploaded_images/Duo-Sunset-719147.jpg" border="0" alt="Duo Sunset" /&gt;&lt;/a&gt;Enjoying the good music played and sung by Duo Sunset in Bochum&lt;br /&gt;&lt;br /&gt;[EDIT: drawing added]&lt;br /&gt;And here's Miska's view of the duo:&lt;br /&gt;&lt;object width="380" height="292"&gt;&lt;param name="movie" value="http://backend.deviantart.com/embed/view.swf" /&gt;&lt;param name="flashvars" value="id=94132947&amp;width=1337" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed src="http://backend.deviantart.com/embed/view.swf" type="application/x-shockwave-flash" width="380" flashvars="id=94132947&amp;width=1337" height="292" allowscriptaccess="always"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="http://www.deviantart.com/deviation/94132947/"&gt;The Band&lt;/a&gt; by ~&lt;a class="u" href="http://mishiltu.deviantart.com/"&gt;mishiltu&lt;/a&gt; on &lt;a href="http://www.deviantart.com"&gt;deviant&lt;/a&gt;&lt;a href="http://www.deviantart.com"&gt;ART&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-6342929835587371126?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/6342929835587371126/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=6342929835587371126" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/6342929835587371126" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/6342929835587371126" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2008/08/summer-feelings-from-finland-and.html" title="Summer feelings from Finland and Germany" /><author><name>Viivi</name><uri>http://www.blogger.com/profile/15926741030877570525</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16929505.post-2608919991109976402</id><published>2008-06-11T12:25:00.008+02:00</published><updated>2008-06-11T13:49:43.394+02:00</updated><title type="text">KESÄN RIEMUJA</title><content type="html">Näin kesäloman kynnyksellä on syytä miettiä kaikkia niitä hurjia vaaroja, joita mökkeillessä (tai joskus jopa kaupungissa) voi kohdata. Ja yksi vaarahan on ylitse muiden. Ampiaiset! Allekirjoittanuthan vietti toukokuun 4. päivänä kolme tuntia teho-osastolla ampiaisenpiston seurauksena... ja tämä siis TAVALLISEN ampiaisen piston seurauksena.&lt;br /&gt;&lt;br /&gt;Tänä keväänä, ja jo viime keväänä, sain huolehtivilta perheenjäseniltä ja ystäviltä varoituksen jättiläisampiaisista (herhiläinen), joita on alkanut ilmaantua Suomeen viime vuosina. Kukaan ei tietenkään milloinkaan missään ollut itse sellaista vielä nähnyt, mutta lehtiartikkelit kuvineen toimivat varoituksen sanana.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Siis, kerrataan: Jättiläisampiaisia on Suomessa. Niitä on syytä varoa mökkeillessä. Kukaan ei ole niitä henk.koht. näh&lt;/span&gt;&lt;span style="font-style:italic;"&gt;nyt.&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;Tämän tietäen siirrymme viime viikon keskiviikkoon. Tilanne: Olen yksin kotona, kerrostalossa, kaupungissa, Saksassa. Makuuhuoneen verhon takaa kuuluu omituisen kovaäänistä pörräystä. Ja siinä se sitten on. Herhiläinen!!! SUOMEN luontoon kotiutunut otus, jollaista KUKAAN ei ole vielä nähnyt.&lt;br /&gt;&lt;br /&gt;Paniikki. Hengitys nopeutuu, veri pakenee päästä, kyyneleet kihoavat silmiin (tuttu pelkoreaktioni, ks. &lt;a href="http://qualiteers.com/2006/11/dentist.html"&gt;hammaslääkäri&lt;/a&gt;). Epäuskoista mutinaa "eihän tuollaista ole olemassa". Viesti Miskalle Suomeen... (Niinkuin se nyt mitään auttaisi.) Miskalta, joka oli juuri pari päivää aiemmin tutustunut uuden hätäpakkaukseni käyttöohjeisiin, tuli kuitenkin oiva neuvo: " Ota se adrenaliinipiikki, poista sokka ja lyö se nasevasti herhiläisen yläreiteen. Ei pyllyyn. Varo refleksinykäystä. Pidä 10 sekuntia paikoillaan, hiero sitten osumakohtaa ja lopuksi menette yhdessä lääkäriin."&lt;br /&gt;&lt;br /&gt;No ainakin paniikki helpotti hetkeksi nauramiselta. Jopa niin, että uskalsin ottaa valokuvan tästä luonnonoikusta.&lt;br /&gt;&lt;br /&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:left;cursor:pointer; cursor:hand;" src="http://qualiteers.com/uploaded_images/hornisse.jpg" border="0" alt="Huge hornet" /&gt;&lt;br /&gt;(Verhossa oleva kuu on leveimmältä kohdaltaan n. 3 cm)&lt;br /&gt;&lt;br /&gt;Myöhemmin tutkin netistä kuinka vaarallinen tämä herhiläinen oikein onkaan. Se on onneksi rauhaa rakastava, eikä lainkaan niin kiukkuinen ja päällehyökkäävä kuin tavallinen ampiainen. Allergisiakin rauhoiteltiin, ettei myrkky ole sen voimakkaampaa kuin tavallisenkaan ampiaisen - sitä vain on KOLME KERTAA ENEMMÄN!!! Todella rauhoittava tieto.  Kaiken lisäksi tämä otus on ainakin Saksassa rauhoitettu, joten en sitä tappanut (= en uskaltanut mennä niin lähelle). &lt;br /&gt;&lt;br /&gt;Löysin myös oivan neuvon kuinka tällaisen otuksen voi näppärästi toimittaa ulos: Kastetaan sormenpää sokeriliemeen, sitten viedään sormi lähelle herhiläistä ja kas, sepä makealle persona hypähtää iloisesti sormenpäähän istumaan. Sitten vain kuljetetaan se ulkotiloihin, ravistetaan sormesta irti (ja toivotaan lujasti ettei se tällä välin älyä pistää sitä myrkkysatsiaan siihen sormenpäähän).&lt;br /&gt;&lt;br /&gt;Ja kuinka tarina päättyy? Ei, en kastanut sormeani sokeriliemeen. En yrittänyt yhteistä kävelyretkeä herhiläisen kanssa. Enkä todellakaan tappanut sitä (sehän on kiellettyä), vaan soitin paikalle ystäväni, joka rohkean prinssin lailla kiirehti hätiin... vain todetakseeen, että otus on mennyt ulos omia aikojaan. Koko makuuhuone tutkittiin läpikotaisin, eikä mitään löytynyt. Siitä huolimatta nukuin seuraavan yön sohvalla, varmana siitä, että tuo ovela, vaikkakin rauhaa rakastava, otus oli sittenkin piiloutunut sänkyyni odottamaan hetkeä, jolloin pahaa aavistamatta pujahdan peiton alle. &lt;br /&gt;&lt;br /&gt;Sen koommin emme ole Hugh Hornetin kanssa tavanneet.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MUKAVAA KESÄÄ KAIKILLE toivottelee pian kesälaitumille kirmaava Virpi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-2608919991109976402?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/2608919991109976402/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=2608919991109976402" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/2608919991109976402" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/2608919991109976402" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2008/06/kesn-riemuja.html" title="KESÄN RIEMUJA" /><author><name>Viivi</name><uri>http://www.blogger.com/profile/15926741030877570525</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16929505.post-4207465572387040158</id><published>2008-05-25T22:56:00.001+02:00</published><updated>2008-05-25T22:59:16.798+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Science of Software" /><title type="text">SofSW: The SW Basics (6/6)</title><content type="html">The Sleeping Girl has risen and is looking around disoriented. She’s in a park under a tree with a light breeze blowing. Kids are playing football with their shirts as goal posts, their happy voices echo through the air. A bird, perhaps a robin, sings on the tree. She feels happy, it is safe here and although she’s tired, she feels pure bliss just lying there on the blanket. Her picnic basket is next to her, there are no ants crawling on her half-eaten sandwich. Her boyfriend has gone to fetch a corkscrew from the car parked out of sight. She can’t believe this place is right in the middle of the busy city. It is so tranquil compared to the middle-city hectic she has to endure every day. Wake up in the morning much too early, take a quick shower, put on some make-up, grab a busy cup of coffee and run for the bus. Catching the bus gets her on time for the underground station overcrowded with similar people heading for their offices. After a trip on the underground that is too short to fall asleep but too long not to be bored, she has to join the March of the Sardines. Every last one of them gets out of the tin can on the central station and they head in unison up towards the ground level. The wind of the tunnels pulls her to a semi-woken state, but all she sees around her are heads with cold and expressionless fish eyes. There are no smiles, no grins, not even frowns, just dead fish faces. Every morning. &lt;br /&gt;&lt;br /&gt;The noise becomes louder and louder as the school approaches the ground. On the street the noise is unbearable. Before crossing the street, she looks to the right, there are no cars coming, only benches. The benches are not moving. She turns her head, there’s more benches on her left, still no cars. She’s not standing at a city street at all, she’s sitting on a bench. There’s a man looking at me, she thinks and suddenly she’s wide awake. &lt;br /&gt;&lt;br /&gt;This is the airport.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-4207465572387040158?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/4207465572387040158/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=4207465572387040158" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/4207465572387040158" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/4207465572387040158" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2008/05/sofsw-sw-basics-66.html" title="SofSW: The SW Basics (6/6)" /><author><name>Miska</name><uri>http://www.blogger.com/profile/08774503287162214364</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16929505.post-9003679392051451232</id><published>2008-04-23T20:34:00.004+02:00</published><updated>2008-04-23T20:50:42.822+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="kutsu" /><title type="text">Toukokuu, tikkauskuu</title><content type="html">Ennenkuin pistän ohjelmistotieteen kirjani seuraavan jännittävän (?) luvun näytteille, kerron toukokuun suunnitelmistani. Matkustan puolesta kuusta Suomeen ja pidän siellä kolme julkista DayTick-koulutusta. Ne ovat todella mainio tilaisuus tutustua Tick-the-Code -menetelmään pienemmälläkin ryhmällä. Jos yrityksestäsi ei löydy kokonaista kymmenen hengen ryhmää, nyt voit kaverisi kanssa tulla kurssille silti. Julkinen kurssi sopii juuri sinulle, joka etsit ammattitaitoasi parantavaa koulutusta, muttet ole mikään aloittelija. Erityisen hyvin tämä sopii yrityksille, jotka eivät vielä ole varmoja menetelmän hyödyllisyydestä. Kurssille lähetetyt pari kiinnostunutta "tunnustelijaa" saavat varmasti tarpeeksi tietoa vakuuttuakseen menetelmän sopivuudesta.&lt;br /&gt;  &lt;br /&gt;DayTick-kurssi parantaa taitoasi tehdä ylläpidettävää koodia, laadukasta koodia. Se on hyväksi sinulle, tiimille jossa työskentelet, yritykselle jonka palkkaa nautit ja asiakkaalle joka odottaa koodiasi. Toista tällaista kurssia ei ole. &lt;br /&gt;&lt;br /&gt;Toukokuussa tällainen mahdollisuus avautuu &lt;br /&gt;- Jyväskylässä (Jkl Open 23.5.), &lt;br /&gt;- Espoossa (Hki Open 26.5.) ja &lt;br /&gt;- Tampereella (Tre Open 30.5.) &lt;br /&gt;&lt;A HREF="http://www.qualiteers.com/docs/kutsu_touko08.pdf"&gt;Tarkemmat tiedot&lt;/A&gt;. Jos et itse pääse tulemaan, kerro toki työkavereillesi. He tulevat kiittämään sinua.&lt;br /&gt;&lt;br /&gt;Niin että Kaj, malta vielä pari päivää.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-9003679392051451232?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/9003679392051451232/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=9003679392051451232" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/9003679392051451232" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/9003679392051451232" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2008/04/toukokuu-tikkauskuu.html" title="Toukokuu, tikkauskuu" /><author><name>Miska</name><uri>http://www.blogger.com/profile/08774503287162214364</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16929505.post-1593470395735977634</id><published>2008-04-18T13:40:00.003+02:00</published><updated>2008-04-18T13:42:09.773+02:00</updated><title type="text">Post number 270</title><content type="html">Virpi is back from Ireland.&lt;br /&gt;&lt;br /&gt;She brought me a &lt;A HREF="http://en.wikipedia.org/wiki/Moro_(chocolate_bar)"&gt;chocolate bar named Moro&lt;/A&gt;. Hilarious!&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;Suomeksi:&lt;br /&gt;Moro, moro kaikki tamperelaiset!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-1593470395735977634?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/1593470395735977634/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=1593470395735977634" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/1593470395735977634" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/1593470395735977634" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2008/04/post-number-270.html" title="Post number 270" /><author><name>Miska</name><uri>http://www.blogger.com/profile/08774503287162214364</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16929505.post-4098417787138066517</id><published>2008-04-16T11:57:00.005+02:00</published><updated>2008-04-16T16:23:37.825+02:00</updated><title type="text">Trip Report - Easter 2008 + BIG NEWS!</title><content type="html">Now that I finally have some news to report, I almost forgot!&lt;br /&gt;&lt;br /&gt;I went to Finland before Easter and trained a group at &lt;A HREF="http://www.espotel.fi/"&gt;Espotel&lt;/A&gt;. At Easter I did the traditional &lt;A HREF="http://www.peurunka.fi/"&gt;Peurunka&lt;/A&gt; gig, which meant sports, good food, games and karaoke in well-proportioned. This has become one of my favorite times of the year, as many of the nice people who are there I only see there. Another similar time is summer holiday, but more about that later.&lt;br /&gt;&lt;br /&gt;After Easter I went to Oulu, had three training sessions, one with &lt;A HREF="http://www.ardites.com/"&gt;Ardites&lt;/A&gt;, but the other too were nice too. Here's a &lt;A HREF="http://www.qualiteers.com/docs/pressrelease080327.pdf"&gt;press release&lt;/A&gt; explaining why I've been so keen to be in Oulu.&lt;br /&gt;&lt;br /&gt;After a tough icehockey match in Oulu (well, our follow-up was tough!), I returned to Tampere to curse over a new computer. It was just as well we didn't have Vista on it, there were enough problems with Windows XP. I noticed two problems, which would have been left unsolved by a layman. There was even one installation mistake, which we noticed when we opened the machine. Finally everything was running well. Well, as well as things run on Windows. I hate the uncertainty of the operating system. Sometimes it would say "a driver has not been installed. The device may not work correctly." may? MAY? Doesn't the system know that for sure? Seems very unreliable. Should the user know that better?&lt;br /&gt;&lt;br /&gt;The household also got a new Nokia mobile phone and I decided to install PC Suite to connect the phone to the PC. On the first time I managed even to make a connection and move a picture from one device to the other over a cable. Then I apparently did something which I shouldn't have and it was no longer possible to connect the phone! I removed the PC Suite installation, the application it had installed on the phone and tried by reinstalling. Still no connection! How difficult can that be? My guess is that the removing of the application didn't remove everything, there's an entry in the terribly complicated Windows registry just stopping the connection. That's such a basic thing you'd expect to work, and when it doesn't you really feel powerless. There's nothing you can do. As far as I know, the problem is still unsolved. Maybe try with Bluetooth? &lt;br /&gt;&lt;br /&gt;&lt;A HREF="http://www.mylab.fi/"&gt;Mylab&lt;/A&gt; read my article in &lt;A HREF="http://pitky.ttlry.fi/images/stories/piirit/piiri-2008-1.pdf"&gt;Pitkyn Piiri&lt;/A&gt; and did not hesitate in contacting &lt;A HREF="http://www.kilosoft.fi/"&gt;Kilosoft&lt;/A&gt;. Good thing too, as I was still in Finland and we could organize a training in less than a week. The initial contact was on Friday, I talked about over the weekend and on Monday it was clear that Thursday would be the training day. And it went well, despite the rather exotic programming language, which I hadn't seen before.&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;Suomeksi:&lt;br /&gt;Pääsiäisreissu meni hyvin. &lt;A HREF="http://www.espotel.fi/"&gt;Espotel&lt;/A&gt;-koulutus ennen pääsiäistä, pääsiäinen &lt;A HREF="http://www.peurunka.fi/"&gt;Peurungalla&lt;/A&gt; TODELLA mukavien ihmisten seurassa, sitten Ouluun, jossa kolme koulutusta ja jääkiekkomatsi. Kouluttajakoulutuksen lisäksi solmin &lt;A HREF="http://www.ardites.com/customer/training/"&gt;Ardites Training Services&lt;/A&gt; Oy:n toimitusjohtaja Sami Varpeniuksen kanssa lisenssisopimuksen, joka mahdollistaa &lt;A HREF="http://www.ardites.com/"&gt;Ardites&lt;/A&gt;-konsernin sisäiset Tick-the-Code -koulutukset. Ohessa &lt;A HREF="http://www.qualiteers.com/docs/lehdistotiedote080327.pdf"&gt;lehdistötiedote&lt;/A&gt;. Viikonloppuna asentelin ohjelmia uuteen Windows XP:llä varustettuun tietokoneeseen, hampaita kiristellen aina välillä. &lt;A HREF="http://www.mylab.fi/"&gt;Mylab&lt;/A&gt; tilasi vielä yhden koulutuksen ja saikin sen vajaan viikon järjestelyillä. Tuollaista molemminpuolista joustavuutta ei satu usein.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-4098417787138066517?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/4098417787138066517/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=4098417787138066517" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/4098417787138066517" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/4098417787138066517" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2008/04/trip-report-easter-2008-big-news.html" title="Trip Report - Easter 2008 + BIG NEWS!" /><author><name>Miska</name><uri>http://www.blogger.com/profile/08774503287162214364</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16929505.post-3016817099843387044</id><published>2008-04-08T13:49:00.004+02:00</published><updated>2008-04-08T14:03:48.413+02:00</updated><title type="text">SofSW: The SW Basics (5/6)</title><content type="html">So if the mass of a program measures its external observable effects, we can make some conclusions. If we take a program with a set of features and functionality with a mass m0 and divide it into two pieces, we’ll get two programs. It’s like cutting a worm in two. Because worms have no brains, or central nervous system, they can function without their “heads”. As a matter of fact, worms don’t have heads, they have the input hole and the output hole around which the worm forms a kind of pipe. Some programs are like that too, they have no central point of control. Far from being brainless, such programs are actually very useful. They normally consist of fairly autonomous parts, which you can easily reuse in other programs for similar purposes. Reuse is an extremely valuable property of source code and often much too undervalued for its worth. Software developers want to do everything from scratch like anybody with too large an ego for their head.&lt;br /&gt;&lt;br /&gt;Anyway, dividing a program into two parts gives us two sets of source code. If the source code is well enough designed, the two programs even function. The original mass m0 is divided into two masses, m1 and m2. There are now three possible situations: either all the functionality is in m1 or all features are included in m2 or the third possibility that some of the functionality is in m1 and some in m2. Mathematically these three situations are like this:&lt;br /&gt;&lt;br /&gt;(1) m1 = m0 AND m2 = 0&lt;br /&gt;(2) m1 = 0 AND m2 = m0&lt;br /&gt;(3) m1 &lt; m0 AND m2 &lt; m0&lt;br /&gt;&lt;br /&gt;It is possible to cut such a small piece of software that no feature is affected. It means that the little piece doesn’t do anything either. If the mass of a program is zero, it doesn’t do anything observable. This happens in the first two cases. In the third case both programs have external effects but neither will do everything that the original program does. If we want to combine these three states, we can make our first real conclusion. Conclusions are results we can use later without proving them because we have already done that. Our first conclusion says that the sum of the masses of any two programs is at least zero but at most m0. More specifically,&lt;br /&gt;&lt;br /&gt;0 ≤ (m1 + m2) ≤ m0&lt;br /&gt;&lt;br /&gt;This has the strange effect that if we put together just any two carelessly crafted programs, instead of getting a total set of features like m0, we might end up as well with a completely non-functional program with zero mass. That’s at least what the formula allows and the thought has some intuitively pleasant qualities. That’s simplistic maybe, but the foundation must be simple in order to have any possibility of understanding the inevitably more complex construction built on it. Another way of thinking about the formula is that when we split a program into two parts, some of the functionality might be lost because of the cut. Therefore the sum of the parts can be smaller than that of the whole.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-3016817099843387044?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/3016817099843387044/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=3016817099843387044" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/3016817099843387044" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/3016817099843387044" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2008/04/sofsw-sw-basics-56.html" title="SofSW: The SW Basics (5/6)" /><author><name>Miska</name><uri>http://www.blogger.com/profile/08774503287162214364</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16929505.post-7044062819949744369</id><published>2008-03-31T14:10:00.018+02:00</published><updated>2008-03-31T20:02:06.713+02:00</updated><title type="text">Holland</title><content type="html">I was in Holland, more precise in &lt;a href="http://en.wikipedia.org/wiki/Renesse"&gt;Renesse&lt;/a&gt;. Everyone over there kind of waited to enjoy a beautiful spring weather as it was Easter and end of March. But what they didn't know, is that I sometimes bring the most strangest weather with me. So it turned out to be a winter vacation with some sunny moments, lots of rain, a few hailstorms and some snow. And I had a great time! &lt;br /&gt;&lt;br /&gt;At this point I would also like to thank my personal travel guide, Mr. Z, who was kind enough to take me there and show me all the nice places. Here's for example a windmill in Zierikzee:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/Windmill-794703.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://qualiteers.com/uploaded_images/Windmill-794699.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Walking for hours and hours on the beach, listening to the sea, feeling the wind on my face... Sand, shells, seagulls...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/Sea-734798.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://qualiteers.com/uploaded_images/Sea-734794.jpg" border="0" alt=""&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Enjoying good food at our inn: snails, mussels, lamb meatballs and the best ever dessert: chocolate mousse and chocolate ice cream with chocolate sauce and whipped cream (I have to admit, I kind of like chocolate). And when in Holland, you can't skip the fritjes (you might know them as chips, fries or pommes) with ketchup and mayonnaise (a girl has to eat something every now and then).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/Chocotrio-777825.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://qualiteers.com/uploaded_images/Chocotrio-777822.jpg" border="0" alt=""&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Besides eating, a girl also has to drink something occasionally: A few glasses of good red wine and some Jutter. Don't ask, just go to Holland and have a few schnapps. But be careful!&lt;br /&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://qualiteers.com/uploaded_images/Jutter-733195.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://qualiteers.com/uploaded_images/Jutter-733192.jpg" border="0" alt=""&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-7044062819949744369?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/7044062819949744369/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=7044062819949744369" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/7044062819949744369" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/7044062819949744369" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2008/03/holland.html" title="Holland" /><author><name>Viivi</name><uri>http://www.blogger.com/profile/15926741030877570525</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16929505.post-2463923439431719079</id><published>2008-03-29T22:44:00.001+01:00</published><updated>2008-03-29T22:46:26.474+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Science of Software" /><title type="text">SofSW: The SW Basics (4/6)</title><content type="html">The arrow pointed this way, I’m sure of it. But this is a long corridor and there have been at least open doorways leading to the right from here. Should I have taken one of them? What if I’m headed the wrong way? This corridor ends soon and there’s a sign saying “Security Check”. I’m still on the right track. I climb the stairs as the escalator seems to be out of order. There’s a red light, you see. That’s a sign that the escalator won’t work, or it would only go in the opposite direction. Some escalators can go up or down at a moment’s notice. They have a blue sign with an inviting arrow showing the currently available direction. I’ve sometimes wondered what happens if people enter the escalator at exactly the same time from both directions. Will the one wanting to come up win, which made more sense than the other direction? But there is also the third option, instead of choosing up or down, the escalator can decide not to move at all. I’ve seen escalators in America with signs saying “use stairs when escalator not moving”. My first thought was that isn’t a stopped escalator a staircase, but in the promised land of lawsuits it can be too dangerous to be climbing on a stopped escalator, which suddenly surges into action.&lt;br /&gt; &lt;br /&gt;I’m glad I don’t have my suitcase to drag up these stairs anymore. There’s a uniformed man sitting on a chair at the top of the stairs. He’s reading a leaflet, looking bored. Behind him on the wall is a sign. From this distance I can barely make out what it says: “Be sure not have any fluids in your bag. Mass isn’t mental. For your security.” For greater security the man looks up from his leaflet as I am about to pass him and asks if I’m carrying any liquids. I shake my head and head towards the security check queues I see through the glass wall. &lt;br /&gt;&lt;br /&gt;There are twelve security gates, but seven of them are not in use. Red signs above them show that the gates are closed. Five gates show green light and there’s a lot of action. Uniformed officials accept bags on to the line moving through the X-ray machine. One official is staring at the monitor trying visually to locate suspicious shapes of metal or other visible materials. A man and a woman stand ready on the other side of the metal detector holding handheld detectors. I don’t normally have to be searched because I don’t beep, but I’ve seen days when everybody beeps, just in case. Such days can’t happen too often, otherwise the officials and the travelers would lose their trust in these devices. I think the sensitivity of the metal detectors is randomly adjusted all the time so that at least all bigger metal effects are detected, but sometimes you’ll beep if you have liver pâté on your morning toast.&lt;br /&gt;&lt;br /&gt;I’ve seen people get into trouble for pens that contain liquid ink. Do I have any of those? What if they stop me and search my bag? I don’t want to explain anything. I need to get to a quiet place and follow my thoughts. Otherwise I’ll lose my train of thought, possibly forever. Immature ideas are like beautiful butterflies, if you want to keep them, you’ll have to catch them to moment you realize they are there. Good ideas are rare too. Why can’t I just put my bag and jacket on the belt and walk through the metal detector unbeeping and be left alone? I have put every last metallic object in my jacket pockets, so I wouldn’t beep. I’ll even remove my belt to be sure. Oops, my notepad and a pen are still in my back pocket. I’d better put them in the jacket pocket. That was close! Have I forgotten anything else? &lt;br /&gt;&lt;br /&gt;Gases have been always banned from airplanes, and since end of 2001, liquids are banned too. Metallic objects are detected and checked, and the rest of the hand luggage is X-rayed. Even solids are checked. There’s some security holes left in the system, though. There’s at least one huge one, the human body. Diseases are a threat in a world where people can move from one place to another quickly and without worrying about the distance. Epidemics have no boundaries anymore. In the medieval cities, the town wall could protect the people inside or outside. It formed an obstacle for the spreading of black plague. Nowadays, you might be infected in Africa and be in North America before you know it. Epidemics could spread like this very widely, even without evil intent. But if you add some planning into the picture, you’ll realize how antiquated the security systems at airports really are.&lt;br /&gt;&lt;br /&gt;It’s my turn now. I put my bag on the line and open it to reveal the laptop I’m carrying. Earlier you had to turn the laptop on, now it is no longer necessary. I take off my coat and place it in the empty tray the official moves next to the tray containing my open bag with the laptop. He asks me to empty my pant pockets for any metals and I shake my head and walk through the large arch of the metal detector. Every fiber of my body is tense and aim at the middle of the detector, there’s less chance of beeping if you don’t hit the sides of the device. No beep. I let out a sigh of relief but not too obviously to not raise suspicions. My bag has gone through the X-ray scanner, I close the bag and take my jacket, which hasn’t caused anything out of the ordinary either. With all my things I head for my gate.&lt;br /&gt;&lt;br /&gt;There’s a café here. Should I eat something? If I eat now, the meal on the plane will be wasted. I decide to wait, although I am feeling slightly hungry. A beer might relieve my tension and ease my hunger too. No, better not, even one beer can mess my thinking. I won’t know if I’m on the right track, because with beer almost anything seems like a good idea. Not all my ideas are good, I know that much. This time I fight off the temptation, a double temptation to be exact. I won’t eat anything yet and I won’t drink any alcohol. Should I buy a drink still to ease the hunger? I could have a Coke or some juice. The queue of people with trays full of sandwiches, pints of beer and cups of coffee makes the decision for me. I head for the gate and hope that there are not too many people there. Best would be to find just a few sleepers, because you’ll never find a completely empty waiting area. There’s always somebody waiting, at the dentist’s, in police offices, in the car registration office, you’ll never find a supermarket with nobody queueing. A couple of people sleeping this early in the morning would mean that they are totally exhausted from jet lag and wouldn’t be able to disturb me anytime soon. I hope for sleepers, because it can’t be empty.&lt;br /&gt;What if my gate’s full of people? Will I find a quieter gate?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-2463923439431719079?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/2463923439431719079/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=2463923439431719079" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/2463923439431719079" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/2463923439431719079" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2008/03/sofsw-sw-basics-46.html" title="SofSW: The SW Basics (4/6)" /><author><name>Miska</name><uri>http://www.blogger.com/profile/08774503287162214364</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16929505.post-2568462356743966187</id><published>2008-03-20T19:20:00.002+01:00</published><updated>2008-03-20T19:26:44.880+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Science of Software" /><title type="text">SofSW: The SW Basics (3/6)</title><content type="html">The gate is quiet. There’s nobody standing behind the desk yet. The monitor above it reads my flight details. No other plane is using this gate before mine. The benches nearby are almost empty. There’s a girl lying on her back with her head against her backpack two rows ahead of me. She has her eyes closed and is taking long deep breaths. Clearly she’s asleep. A man is curled on his side on the next bench row reserving three benches at once. The fetal position seems comfortable and the blissfully peaceful look on his face confirms my thought. He’s in a better place.&lt;br /&gt;&lt;br /&gt;I sit down as far away from the sleepers as I possibly can. I don’t want to disturb them, nor do I want to be disturbed right now. I need to straighten my thoughts and focus. &lt;br /&gt;&lt;br /&gt;Let’s go back to the beginning. In order to make some useful predictions and formulas to enable non-intuitive deductions and inductions the foundation of the science has to solid rock. I can guide my intuition with a simple example. I have two software programs. They both do the same things. They were developed by two teams for the same purpose. They could be anything, like two identical word processors or spread-sheet programs or traffic light control programs or programs for operating a microwave oven. No matter how the programs were developed, they exist. They contain identical feature sets. They can both accomplish all tasks the other one can. What can we say about them intuitively?&lt;br /&gt;&lt;br /&gt;Intuitively, if the two programs, program A and program B perform the same tasks, we can say that the sizes of their feature sets are the same. A feature set is the group of functions or tasks a program performs. We could call it the total functionality of the program. Functionality or features are the external effects the program can have. They are the output (in the widest possible sense) of the program. The features are measurable from from the outside. Features and functionality are without the program. Without an effect on its environment, the program has no meaning. If a feature can’t be measured or tested, it doesn’t exist. It’s as simple as that. Whatever a program can influence in its environment belongs to its feature set. External effects of a program are its output. &lt;br /&gt;&lt;br /&gt;Let’s be more specific about this. If the (total) output of program A, let’s call it OA is the same as the output of program B (OB) then both programs perform the same functions and we can say that the outputs are identical. But we know intuitively that the implementations of the two programs can not be identical. The programs were developed in isolation and for any non-trivial program, there are almost infinite number of possible ways of implementation. The two teams could have used different programming languages, which would certainly make it certain that the implementations aren’t identical. This adds the concept of input into our scientific worldview of software. We’ll use IA for the input of program A and IB for the input of program B. The input can at this stage be anything. What I have in mind has something to do with the source code, the tangible input, but I’m sure the definition of input has to include resource files, possibly the tools used to generate the program and therefore also the environment has an effect. It isn’t clear at the moment, whether the software developers are part of the input or not. There is Ignorance about the details must not stop us now, though.&lt;br /&gt;&lt;br /&gt;If both inputs and outputs were identical (IA = IB AND OA = OB), we are looking at the same program in both cases. The programs are identical. But this is no conclusion at all. What we want is to be able to compare two different programs. The outputs and inputs have two sides to them, perhaps we could call them dimensions even. In physics, in order to model the three-dimensional world we all live in, they use vectors. Vectors are useful little buggers, because they contain more information than just a magnitude like scalar values. Vectors also have a direction. The length of a vector shows its size, and sometimes that’s enough. I’m sure both input and output have many dimensions, and they would be best described as vectors, but can’t we do anything without the dimensions? Sure let’s just take the magnitudes and see what kind of conclusions we can draw. To get the magnitude of a vector, we’ll use vertical lines around the vector. Velocity is a vector, and its magnitude is  speed. My train did reach a maximum speed of 125 km/h but to express velocity I’d have to add that it was heading east. In other words the maximum speed of the train, the magnitude of its maximum velocity (vmax) would be expressed: |vmax| = 125 km/h. &lt;br /&gt;&lt;br /&gt;Let’s take any two programs, program A and program B. This time they don’t have to do the same things, this time we might be comparing a word processor to a microwave oven control software. If the sizes of the inputs of both programs are identical, but program A has a larger feature set (|IA| = |IB| AND |OA| &gt; |OB|) then we can say that the density of program A is larger than the density of program B. In other words, program A accomplishes more with less.&lt;br /&gt;&lt;br /&gt;On the other hand, if the outputs are identical in size but program A uses less input (|IA| &lt; |IB| AND |OA| = |OB|), once again its density is higher than that of program B. This seems intuitive. Density is, without worrying about the units or possible coefficients, proportional to the ratio of output to input. In physics the Greek letter ϱ [rho] stands for density and proportionality is shown with this symbol ∝. To say that density is proportional to the ratio of output and input, we’ll just write:&lt;br /&gt;&lt;br /&gt;ϱ ∝ O / I&lt;br /&gt;&lt;br /&gt;Density is a scalar, it has no direction. I should have used the magnitudes of input and output because they are vectors, but I left the vertical lines out for clarity.&lt;br /&gt;&lt;br /&gt;The density of an object in the real world is defined as the ratio between its mass and its volume. &lt;br /&gt;&lt;br /&gt;ϱ = m / V&lt;br /&gt;&lt;br /&gt;From this we could draw the conclusion that the mass and output of a program are proportional to each other and the input stands for the volume of the program. This is intellectually pleasing and intuitively correct, but we can’t put in any units or numbers just yet. For now we’ll have to settle for the conclusion that the mass is proportional to the size of the output of a program:&lt;br /&gt;&lt;br /&gt;m ∝ |Osw|&lt;br /&gt;&lt;br /&gt;and that the volume of the program is proportional to the size of its input:&lt;br /&gt;&lt;br /&gt;V ∝ |Isw|&lt;br /&gt;&lt;br /&gt;That’s it. There’s no need for a “mental-mass”. I can just use the mass as is to denote the external effects a program can have. Mass is linked with the concept of weight in the real world and it seems fairly reasonable to say that the more you can achieve with a program or application, the more weight it has. You can talk of real heavyweights, at least metaphorically, when you’re talking about the big and powerful applications. Small utility programs have small but specialized feature sets and it’s not disparaging to call them lightweights.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-2568462356743966187?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/2568462356743966187/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=2568462356743966187" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/2568462356743966187" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/2568462356743966187" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2008/03/sofsw-sw-basics-36.html" title="SofSW: The SW Basics (3/6)" /><author><name>Miska</name><uri>http://www.blogger.com/profile/08774503287162214364</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16929505.post-7610214091513938442</id><published>2008-03-14T17:38:00.002+01:00</published><updated>2008-03-14T17:42:00.630+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Science of Software" /><title type="text">SofSW: The SW Basics (2/6)</title><content type="html">Everybody else scrambles to the escalator down to the departures hall, but I go against the flow. I know that there’s an elevator and nobody else is following me. The elevator is up, and as I press the button, the doors open right away. I enter dragging my suitcase behind me. I turn and see only backs. I press the button for down and the doors close. Few seconds later they open again and I can join the flow of people from the escalator.&lt;br /&gt;&lt;br /&gt;The departures hall is massive and the crowd quickly disperses. The ceiling is at least thirty meters high, there are massive advertisement sheets hanging from it. They tell you about cheap flight options and big building companies, there’s even an ad from the local power company hanging far to the right. The hall is massively wide too, it seems to go on and on in both directions. Fifty meters in front of me on the opposite side of the building, there are the check-in desks. Each desk is numbered and the one just opposite me has the number 115. There are rows of TV monitors close to where I’m standing and to the right and left of me. I can see more people entering the hall from the doors next to me. There are all the time taxis parking outside, leaving a passenger out and continuing. Next to the glass elevators there’s a rectangular opening with railings around it. Through the three times three meter opening I can see downstairs. There’s the arrivals hall. Bored taxi drivers stand near the meeting point with signs on their hands, looking hopefully at each passerby. “Maybe this is Mr. Ching from Hong Kong. The flight landed twenty minutes ago. Where is he?” “What’s holding up Mrs. Semathier? I wish I had her number.” Some drivers even talk to the passersby like they were trying to convince them of being Mr. Ching or Mrs. Semathier. After a long flight, it is understandable if a foreigner doesn’t know how to read the sign. Maybe they’ve even forgotten their name because of the exhausting flight. Saying the name out loud, no matter how mispronounced it may be, just could wake them up and make a dead-tired traveller remember they are actually Mr. Ching from Hong Kong and not Bruce Tiller from Australia. But why is that driver talking to the male passengers and asking for Mrs. Semathier? Does he really believe that they’ve had enough time on the flight to perform a sex-change operation and recover enough from it to walk through the arrivals hall unaided. The anesthesia would explain forgetting one’s name, but how would the driver explain the men’s clothes former Mrs. Semathier is apparently wearing? Amused, I get back on track.&lt;br /&gt;&lt;br /&gt;I’ve been here before and I know how it goes. I’ll first check the monitors for the check-in desk number allocated for my flight, then I’ll queue to the check-in desk and get rid of this suitcase. Then with my ticket I can go through security check and head for the gate to wait for the plane. There are eight TV monitors organized in a two-by-four arrangement. They list all the departing flights sorted according to their times of departure. Each flight is described with the destination city, the flight number, the departure time according to the timetable and the numbers of the assigned check-in desks. There’s also room for a comment about possible changes like delays or cancellations. &lt;br /&gt;&lt;br /&gt;New York  US345  11:35  115-125&lt;br /&gt;Reykjavik  SK176  11:35  214-220&lt;br /&gt;Frankfurt  TD876 11:40 183-185&lt;br /&gt;Malaga FG034 11:40 91&lt;br /&gt;Milan  LK999  11:45 12-19  delayed until 12:10&lt;br /&gt;Mental-mass IS879  11:50 555  wrong&lt;br /&gt;Stockholm LH675  11:50 34-54&lt;br /&gt;Hong Kong KA018 11:55 106-112&lt;br /&gt;&lt;br /&gt;My flight is supposed to leave at 12:15. What did I see? There are two planes leaving at 11:50, one to Stockholm and another to ... Mexico City. Was that there before? Didn’t it say something else? No, apparently not. Aah, there it is, that’s my flight number, departure time is correct, 12:15, there’s no mention of a delay and the check-in desk is any desk between 67 and 75. To the right then. That’s the descending direction of check-in desks.&lt;br /&gt;&lt;br /&gt;There are two people in the queue I choose. The other queues aren’t any longer, my flight destination doesn’t seem too popular. If the lines had been longer I would have used the automatic check-in machines, they are really handy, but now there’s no need. Two minutes later, it’s my turn. &lt;br /&gt;&lt;br /&gt;“Hello, here’s my passport and my ticket.”&lt;br /&gt;“Thank you, sir.” says the dark-haired check-in lady. She’s wearing the dark blue uniform suit like her colleagues on the neighboring desks. &lt;br /&gt;“Would you like a window seat or aisle, sir?” she asks. &lt;br /&gt;“Window, please”&lt;br /&gt;She taps the keys on her computer terminal.&lt;br /&gt;“Do you have just one piece of luggage?”&lt;br /&gt;“Yes, just one.” I tell her and put my suitcase on the band. 20,2 kg say the scales. I know the limit is 20 kg but I also know that she won’t complain about such a small difference. Sometimes two kilos is no problem. &lt;br /&gt;“Do you know that your mental-mass theory is absolutely wrong, sir?” she says suddenly and looks at me awaiting answer. &lt;br /&gt;“Sorry?” I say, amazed! How could she know? I’ve just thought about that whole concept in the train. Nobody can know. She CAN’T know.&lt;br /&gt;“Do you know that the meal on this flight is absolutely delicious, sir?” she repeats, probably notices the horror on my face and continues, “Nothing to be alarmed about. The meals are always delicious, but this week we have a special offer as our airline is testing new cuisine alternatives. Everybody, even in economy, will get the food meant for business class. This way we get a wider amount of opinions and can later serve business class passengers even better. You can consider yourself lucky, sir.”&lt;br /&gt;“Oh, yeah, thank you.” I manage to mutter as I grab my passport and my boarding pass.&lt;br /&gt;“Your flight leaves at 12:15 from gate 75. Have a pleasant flight!” she says and points to my left indicating the shortest way to the gate.&lt;br /&gt;&lt;br /&gt;I’m a little shaken as I leave the counter. Am I hearing things? Is all this a little too much for my brain? Is this piece too big for me to chew? First the monitor and now the check-in lady. It must be my subconscious telling me something. What was the message? “Mental-mass is wrong.” What if that is true? Should I start over? I need a place to think and this departure hall is not the place. There’s too much noise, too many people, too many distractions. It will be much quieter at the gate.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-7610214091513938442?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/7610214091513938442/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=7610214091513938442" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/7610214091513938442" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/7610214091513938442" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2008/03/sofsw-sw-basics-26.html" title="SofSW: The SW Basics (2/6)" /><author><name>Miska</name><uri>http://www.blogger.com/profile/08774503287162214364</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16929505.post-5837188679130245719</id><published>2008-03-04T21:30:00.005+01:00</published><updated>2008-03-04T21:46:44.811+01:00</updated><title type="text">Visitor data</title><content type="html">Here's an addendum to yesterday's post. You clearly see the spike on the day Tick-the-Code.com was mentioned on the "Beautiful Code" blog. (And by the way, it is 56 countries now.)&lt;br /&gt;&lt;br /&gt;&lt;img width="340" src="http://www.qualiteers.com/img/analytics.png"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/16929505-5837188679130245719?l=qualiteers.com%2Fblogger.html'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/5837188679130245719/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=16929505&amp;postID=5837188679130245719" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/5837188679130245719" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16929505/posts/default/5837188679130245719" /><link rel="alternate" type="text/html" href="http://qualiteers.com/2008/03/visitor-data.html" title="Visitor data" /><author><name>Miska</name><uri>http://www.blogger.com/profile/08774503287162214364</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry></feed>
