Monday, March 31, 2008

Holland

I was in Holland, more precise in Renesse. 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!

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:























Walking for hours and hours on the beach, listening to the sea, feeling the wind on my face... Sand, shells, seagulls...

















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).

















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!

Saturday, March 29, 2008

SofSW: The SW Basics (4/6)

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.

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.

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.

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?

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.

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.

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.
What if my gate’s full of people? Will I find a quieter gate?

Labels:

Thursday, March 20, 2008

SofSW: The SW Basics (3/6)

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.

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.

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?

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.

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.

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.

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| > |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.

On the other hand, if the outputs are identical in size but program A uses less input (|IA| < |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:

ϱ ∝ O / I

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.

The density of an object in the real world is defined as the ratio between its mass and its volume.

ϱ = m / V

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:

m ∝ |Osw|

and that the volume of the program is proportional to the size of its input:

V ∝ |Isw|

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.

Labels:

Friday, March 14, 2008

SofSW: The SW Basics (2/6)

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.

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.

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.

New York US345 11:35 115-125
Reykjavik SK176 11:35 214-220
Frankfurt TD876 11:40 183-185
Malaga FG034 11:40 91
Milan LK999 11:45 12-19 delayed until 12:10
Mental-mass IS879 11:50 555 wrong
Stockholm LH675 11:50 34-54
Hong Kong KA018 11:55 106-112

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.

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.

“Hello, here’s my passport and my ticket.”
“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.
“Would you like a window seat or aisle, sir?” she asks.
“Window, please”
She taps the keys on her computer terminal.
“Do you have just one piece of luggage?”
“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.
“Do you know that your mental-mass theory is absolutely wrong, sir?” she says suddenly and looks at me awaiting answer.
“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.
“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.”
“Oh, yeah, thank you.” I manage to mutter as I grab my passport and my boarding pass.
“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.

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.

Labels:

Tuesday, March 04, 2008

Visitor data

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.)

Monday, March 03, 2008

Back in the real world...

Hi all!

I have some great news. Our daughter site www.Tick-the-Code.com got some pretty impressive publicity two weeks ago. It was mentioned on the O'Reilly book blog called "Beautiful Code". It has had a massive effect on the visitor count. The book is a collection of short stories from software gurus and other highly regarded professionals. It answers the question "How do the experts solve difficult problems in software development?"

As is customary nowadays, the book has a blog with masses of readers. My site used to have less than ten visits per day and suddenly the number of visitors shot up to 401. In one day. Since then the visitor count has trickled down but it is still, two weeks later, about five times higher than before the mention. About fifty people visit www.Tick-the-Code.com every day. The word is getting out. Before the mention, there had been visits from 19 countries, now the number is 55! Amazing!

You might have noticed that I've added "Beautiful Code" to the "Blogs" section on the right.

---

I toured Finland for two weeks, had some training days and many a meeting with future prospects. We'll be breaking the 500 participant mark soon and if our acceleration holds, reaching one thousand won't take two years.

My next Finland tour takes place around Easter time and we are accepting training requests. Email now!

---

Flunssa vaivaa, ja sängyssä makaaminen antaa aikaa kirjoitella blogiinkin vaihteeksi. Eihän tässä hirveästi hengästy.

Kävin Suomessa parin viikon ajan. Oulussakin poikkesin kolme kertaa! Seuraava reissu onkin pääsiäisenä. Tilauksia saa laittaa tulemaan, päiviä on vielä varaamatta.

Tuo "Beautiful Code"-kirjan blogi oli kyllä todella hyvä juttu. Sana Tick-the-Code -menetelmästä leviää hurjasti. Ja vaikkei tästä ensikontaktista vielä mitään sen konkreettisempaa tulisikaan, niin kun sama henkilö törmää tuohon outoon nimeen toisenkin kerran jossain muussa yhteydessä, se saattaa tuntua jo tutulta ja johtaa johonkin. Ennen blogimainintaa saitilla oli käyty 19 maasta, nyt lukema on 55! Reilusti yli tuhat kävijää on tutustunut ainakin pikaisesti materiaaliini.