What a wanderer could wonder about...

Wednesday, October 25, 2006

Microsoft's Guest Lecturer

We had a guest lecturer from Microsoft in the last session of our Modern Methods in Software Engineering Course. It was interesting, the way they proudly present their methodology, and with no regret, confess that they have criteria like having a release in the specified time not to loose the market with price of covering up bugs and security holes just to make the release possible and leaving out quality and functionality and security issues; in brief, the fact that their priority in selecting features and and planning and everything is to maximize the profit! Well, after all they are a company with only one aim, making more money, and they were not any shy to announce that!

To be fair, I should mention that he showed us a neat pyramid shape one with security and quality and features and something else I forgot, on its sides and he said they try to extend the software while maintaining this shape balanced and everything, but eventually in the end, he confessed that everything is prioritized when having a release becomes more important than patching known bugs!

The issue of open source was also brought up at the end of his presentation by a question from the students and he calmly said they would be happy to move to open source _iff_ it would bring them more profit!

Interesting things for me to know were that they are using a tailored Agile method for most of their software development processes (e.g. for development of windows and office) and that Bill Gates is quite fund of the Cowboy Coding! It was also mentioned that Gates has recently handed over the position of chief software architect to a person (Ray Ozzie I think) who is much more process oriented, so the Microsoft guy was hopeful that they will see more practice of software engineering processes in Microsoft in the future.

BTW, KTH students can get a license for most of the MS software like Windows and Visual Studio etc. free of charge! That is while we are students.

Thursday, October 19, 2006

Exams!

:-( ... and nothing else matters!

Monday, October 09, 2006

Good, Interesting, Useful!

- “Every good work of software starts by scratching a developer's personal itch”.

- “To solve an interesting problem, start by finding a problem that is interesting to you”.

- “Any tool should be useful in the expected way, but a truly great tool lends itself to uses you never expected”.

(From "The Cathedral and the Bazaar" by Eric S. Raymond)

Saturday, October 07, 2006

Software Design

"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies." -- Hoare, in The Emperor's Old Clothes

I'm studying software design at the moment. Every morning when I get up, I have to spend some 10 minutes convinceing myself that it is a good opportunity and not a "Total Waste of Time" and I learn some new (and not stupid) ways of thinking. I don't know why I disdane software engineering to this level. I was really hopeful that we would focus mostly on Agile Methods in our course, but beside a small part on XP, we still have some 600 pages of RAD and system and object design to study! :(

Monday, October 02, 2006

Purpose

"Looking good and dressing well is a necessity. Having a purpose in life is not!" -- Oscar Wild

Sitting in a bus station, next to my mother, I was watching people come and go in the streets of Stockholm Centralen. There were people of different age and origin and shape and size. There was a women with her baby, a Yong blond girl walking briskly and a middle aged, well dressed man, waiting for a taxi.

In a sudden rush of madness, I was just about to jump in the middle of the street and ask each of the people coming and going and waiting: What is your purpose in life! Why have you got up this Sunday morning dressed and walked out of your house. To what end and what future are you planning your lives....

Fortunately or unfortunately, my mother started talking and I was distracted and forgot about what I was to do. But what makes me afraid is that one of these days, this pressure inside is going to burst out in some sort of real madness. When is it going to happen, we shall wait and see...!

Thursday, September 28, 2006

No comments!

A piece of writing. Well, just a short comment. I liked it very much!

Wednesday, September 27, 2006

What is my purpose in life?

Natural selection saw to it that professional heroes who at a crucial moment tended to ask themselves questions like "What is my purpose in life?" very quickly lacked both. -- Terry Pratchett (Interesting Times)

Friday, September 22, 2006

The First AUT Annual Programming Contest

Well, I can't really help it. I'm addicted and I can't just let go. If you wonder what is this about, I'm talking about programming contests. Well, if you had a good team such as mine and the memories like I have, you might have been feeling the same.

And now, there is yet another programming contest on the plate! AmirKabir has started a set of annual programming contests (May be after the 3rd IAUM-CCC, they felt they have been left out of the league!). Everything is just like ACM/ICPC contests; i.e. participants are teams of three and contests are around 5 hours with around 6-10 problems. The online round was held quite smooth, with the help of the UVa Online Contest System, and with rather a good problem set (and the result was quite good as well!). The on-site round is on 27th and I'm already depressed that I'm going to miss it (Anyone knows of any travel grants for such contest?). Anyway, I wish my teammates the best of luck and hope they'll repeat the experience we had in Babol. I hope they won't get a single Football as their prize though! ;)

Tuesday, September 19, 2006

Hack on!

Your code today becomes the mind tomorrow: Your plan its means, your dream its ends, your ideal its elegance. Hack on.-- Ken Shan

Sunday, September 17, 2006

4th DYNAMO Workshop

Today I went to the DYNAMO Workshop. DYNAMO which stands for "Dynamic Communication Networks" is a research group, part of the COST program (European Cooperation in the Field of Scientific and Technical Research). Something like the IEEE's Technical Committees, but more organized and more limited (2 members from each EU country).

I have to admit that I couldn't understand some 70% of what was presented! That is, I could hardly get the problem definitions, let alone the solutions that where presented. At the end of the workshop, I told my Professor about it and he condolences me by saying this was very focused and specialized and some kind of the edge of the ongoing research in the topics presented. Anyhow, I feel really stupid and illiterate! :( I hope the speeches of tomorrow morning (DISC) would be better.

The whole thing was quite interesting though, I met some famous and cool professors from all over Europe and sat at lunch table with them (Felt really good!). There were also some 3 presentations, which although I couldn't quite understand the solution they presented, the problem statement itself was quite interesting for me. It also showed me how much I have lost by not studying things like Probability and Advanced Algorithm seriously.

DISC 2006

The 20th International Symposium on Distributed Computing (DISC) is hosted by SICS and held in Stockholm, 18 to 20th of September. I am going to help on the reception day and get a free ticket to attend the presentations later on.

There are some cool invited talks, namely:

  • Provable Unbreakable Hyper-Encryption Using Distributed Systems,
    Michael Rabin (Turing Award Winner).
  • Time, Clocks, and the Ordering of My Ideas about Distributed Systems,
    Leslie Lamport (Microsoft Research, it is said that "his research contributions have laid the foundations of the theory of distributed systems" [Wikipedia]).
  • My Early Days in Distributed Computing Theory: 1979-1982,
    Nancy Lynch (MIT Professor, TDS group)
There is also the "4th DYNAMO Workshop" held a day before the actual conference, with some interesting sessions. I am interested in the third session in particular, where algorithmic topics like "Algorithmic aspects of DHT-based overlays", "Algorithmic Game Theory: Mechanisms with Verification" and "Building a peer-to-peer system from scratch" are presented (May be the last one isn't much algorithmic, but non the less, interesting).

Sounds interesting, doesn't it?

Saturday, September 16, 2006

And thus I have to learn UML!

Yes, that is true! I have to learn UML. And not just learn to read and understand the diagrams, but to be able to create some complex ones! God help me. We need it for our Modern Methods in Software Engineering Course. Actually, that is something that supposedly I had to have learnt during bachelor studies (during the Software Engineering II course). But since I didn't budge at that time, I am almost an illiterate in this language.

Reading the specifications, it may seems to be easy in the beginning, but the hard part is when you actually try to draw one of the diagrams. Everything is vague and depends solely on your judgements. For example you have to decide whether a wheel and a bicycle have an aggregation relation or a composition relation! What could be called an entity and what could only be called an interface, etc.

The other problem is the choice of the tool. There are many UML tools out there and I have not managed to mak up my mind on which tool I'm going to use. My candidates at the moment are: ArgoUML, but it is java based; Poseidon, which is a good tool, not quite free and has problems with C++ as well; Rational Rose, it is perfect, but not free; Umbrello UML, it does everything and the interface is quite nice, but it is a KDE application. You may wonder why that could be a problem, well not a problem for me, but apparently it is going to be a problem for my teammate!! (A comparison list of UML tools if you are interested, it is in German though!)

Anyway, I always used to claim that I'm fond of learning new languages, however obscured they may be. I have to add an exception here, to exclude modeling languages!