Wednesday, April 23, 2008

Toukokuu, tikkauskuu

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.

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.

Toukokuussa tällainen mahdollisuus avautuu
- Jyväskylässä (Jkl Open 23.5.),
- Espoossa (Hki Open 26.5.) ja
- Tampereella (Tre Open 30.5.)
Tarkemmat tiedot. Jos et itse pääse tulemaan, kerro toki työkavereillesi. He tulevat kiittämään sinua.

Niin että Kaj, malta vielä pari päivää.

Labels:

Friday, April 18, 2008

Post number 270

Virpi is back from Ireland.

She brought me a chocolate bar named Moro. Hilarious!

---
Suomeksi:
Moro, moro kaikki tamperelaiset!

Wednesday, April 16, 2008

Trip Report - Easter 2008 + BIG NEWS!

Now that I finally have some news to report, I almost forgot!

I went to Finland before Easter and trained a group at Espotel. At Easter I did the traditional Peurunka 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.

After Easter I went to Oulu, had three training sessions, one with Ardites, but the other too were nice too. Here's a press release explaining why I've been so keen to be in Oulu.

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?

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?

Mylab read my article in Pitkyn Piiri and did not hesitate in contacting Kilosoft. 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.

---
Suomeksi:
Pääsiäisreissu meni hyvin. Espotel-koulutus ennen pääsiäistä, pääsiäinen Peurungalla TODELLA mukavien ihmisten seurassa, sitten Ouluun, jossa kolme koulutusta ja jääkiekkomatsi. Kouluttajakoulutuksen lisäksi solmin Ardites Training Services Oy:n toimitusjohtaja Sami Varpeniuksen kanssa lisenssisopimuksen, joka mahdollistaa Ardites-konsernin sisäiset Tick-the-Code -koulutukset. Ohessa lehdistötiedote. Viikonloppuna asentelin ohjelmia uuteen Windows XP:llä varustettuun tietokoneeseen, hampaita kiristellen aina välillä. Mylab tilasi vielä yhden koulutuksen ja saikin sen vajaan viikon järjestelyillä. Tuollaista molemminpuolista joustavuutta ei satu usein.

Tuesday, April 08, 2008

SofSW: The SW Basics (5/6)

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.

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:

(1) m1 = m0 AND m2 = 0
(2) m1 = 0 AND m2 = m0
(3) m1 < m0 AND m2 < m0

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,

0 ≤ (m1 + m2) ≤ m0

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.