Thursday, 27 November 2008

What is scrum

A simple blog entry, just point at a video that explains 'what is scrum'.

Well, "it's a great method... to develop software..."

Credits to Kestutis from work.

Wednesday, 26 November 2008

Teach them assembly first!


I've come across a project, a software that aims to teach object oriented programming through 3D objects in a virtual world.

For example, you drag a skater onto the snowy mountains, right click to her and invoke her methods like move, turn, roll or whatever. Then you go to the little code window, and drag her methods into a list to execute them in order. You have some containers like 'loop', 'if', or 'do together' for parallel execution. You drag and move methods around, move them inside containers and put together a program that controls the movement of the skater.

It brings no new teaching approach to programming model. It only removes the hassle of type-written languages and compiler-oriented problems. I wouldn't let any student to spend time on such a tool, but the ones in primary school. Programming world is big enough not to waste time on such toys; and teaching programming is not hard anyway, if you have people who really understands it and knows how to express the knowledge correctly.

Object Oriented Lobotomy

Another terrible failure is teaching an object oriented language like java or c# to a newbie for his first programming experience. Later in their careers, they'll eventually need to learn low-level stuff anyway, and they'll be scared to death. They can't live in that abstract world of managed runtimes forever. On the other hand, these languages are designed to be coded, reused and maintained easily, through the years of experience. They're not designed to be learned easily. Yes, there's a difference between "easy to code" and "easy to learn how to code".

First of all, it's harder to appreciate something, if you don't know the lack of it. The inventors of the assembly language were possibly bored enough of combining numeric instructions together, so they have used mnemonics to represent instructions. That's why we call the Assembly language a 'second generation language'. And in time, because writing assembly code is mostly dull work, and maybe because it's also hard to read and follow, they have decided to write a program which writes assembly through easier expressions, hence came the compilers and 'third generation languages'.

This is exactly why some fresh programmers hate writing getters/setters. They don't know how messy things can get if you don't do this. They don't know why it would take times and times longer to maintain a code that uses some variables which are accessed and manipulated by large numbers of lines.

Teach them assembly first!

Start simple, and teach them how to program assembly. They don't need to go in details. Indeed, basic concept of assembly programming is a lot simpler compared to higher level languages. Just a set of basic instructions will be enough to teach what it is like to program a computer to do what you want. MOV, ADD, INT, CMP, JNZ... None of them asks for more than one line of explanation. Registers are the only variables they have, and they'll naturally learn pointers which are considered as one of the hardest concepts to grasp for beginners.

As they write loops in assembly, the pattern will be obvious, and they'll appreciate why that 'for' statement has three sub statements as initialization, termination and incrementation. Then they'll know what is happening during the compilation of that for statement, and they're free to analyse the machine code.

When they're fluent with a procedural language like C, they'll again notice patterns and drawbacks of it. Some of them will appreciate object oriented, and some of them will develop their own solutions and stick to procedural model until they are pushed to switch to object oriented by a teacher in school or team leader at work.

Tuesday, 18 November 2008

Roasted broccoli

Roasted broccoli
Originally uploaded by Görkem PAÇACI
A new and absolutely delicious way to cook broccoli.

Roast it with some salt, pepper and olive oil. The only important thing is that they need to be completely dry. Roast them until they get brown spots on them.

Take them out, add some more olive oil, lemon juice and parmesan cheese. Stir well so the juice is all over them.

Do you hear them screaming?

Eat us! Eat us!

"Hunkar Begendi" for David

He said he would take "requests" for our occasional Wednesday night post-yoga din-dins. So here I go!

Hunkar Begendi is a very typical Turkish dish. It takes time to prepare, so when it's cooked it's almost a special occasion. (at least in my family where every women works)

The name means "The sultan loved it", by chicken translation. Indeed the name comes from "Begendi", which is a mixture of béchamel sauce and aubergine purée. (also served as a "Meze" along strong drinks)


The base

- 4 aubergines
- 3 tbsp flour
- 4 tbsp butter (half a tablet, I guess)
- 2 glasses of milk
- 2 tsp salt

- Roast the aubergines in the oven. You can wrap them with foil. Try not to pierce them, since we don't want to lose the juice. Don't cook very much so they are dry or burnt. And don't cook so little so they still have the sponge touch. They should be very soft and juicy. After cooked, peel the black skin off and smash the aubergines to have aubergine purée.
- In a pan, melt the butter and add the flour. Slowly pour the milk, and the salt after that. After the béchamel is ready, stir the purée in.

The meat sauté

- 1 kg of lamb meat
- 4 garlic cloves, smashed
- 1 tbsp flour
- 1 tbsp tomato purée
- 5 tbsp olive oil
- salt and pepper (amount up to you)

- Cook the meat in olive oil, in low heat
- Add the flour and keep stirring
- Add the smashed garlic cloves and tomato purée
- Add salt and pepper
- Keep stirring until garlic and tomato purée are cooked.

How to serve
First, put the aubergine base onto the plate, and add meat sauté in the middle. You can also serve with rice, but it's mostly eaten with normal-bread in Turkey. Ciabatta or 'cross-cut bread' from tesco will do.

For drink
"Ayran" will go perfect with it. It's basicly shaked yoghurt, cold water and salt. 1 unit yoghurt to 1 units water. Tesco's light yoghurt has the same sour flavour like the yoghurt in turkey.


Sunday, 2 November 2008

Logitech V150

Cable length is too short. Today I've bought this mouse but the cable length is around 50/60cm. It's obviously not the appropriate mouse for a desktop. Now I'll need to buy a usb extension as well.

I'm writing this because I couldn't find the cable length of the mouse anywhere on internet, before opening the packaging.

Edit: I've bought this usb hub and it's very pleasing: