Canol Gökel


Sloganı olmayan blog

Lulu copy arrived

My copy from has arrived two weeks after my payment (which is actually quite fast for a shipment from USA to Turkey) and I’m pretty impressed with the quality of the print. Now, I can safely recommend it to others 🙂

Filed under: Daily, Programming, ,

“Computer Programming using GNU Smalltalk” is available on

Computer Programming using GNU Smalltalk

After the release of my small book, quite a few people asked if there is an edition to buy on So here it is, I hope you’ll enjoy reading it 🙂

You can still get the e-book version as free. For other detailed information:

Filed under: Programming, ,


I just wanted to thank people who mentioned about my book in their blogs or web pages and also people who tweeted about it and sent email about it. These kind of things made me very happy. I hope you’ll enjoy reading the book, which would make me even happier…

Don’t hesitate to send negative feedbacks to me so that we can make the book better in the future.

Filed under: Programming,

“Computer Programming using GNU Smalltalk” is out!

Computer Programming using GNU Smalltalk

The book I’m working on for a while is finally finished. It is about computer programming and aims the absolute beginners. I used GNU Smalltalk programming language as the tool for teaching computer programming. There are actually an awful lot still to be mentioned about GNU Smalltalk. I hope, in future editions, I and the community will write additional chapters to create a reference book aiming everyone…

It is a free e-book. You can grap your copy from:

Or you can buy a printed copy from Lulu:

I hope you enjoy reading the book…

Filed under: Programming,

Microsoft just can’t do it

When it comes to advertisement, Microsoft gets even worse then their coding ability:*

We see sometimes Apple advertisement parodies to make fun out of them but Microsoft ads don’t need any parodies, they are already like a joke as they are!

At least, this time, they didn’t waste million dollars only to create the worst job of one of the funniest comedians in the world 😛

* Don’t forget to read the comments, as well, there are some hilarious ones. One of them, for example, suspects that this ad is made by Apple 😀

Filed under: Daily, Programming, ,

“Code by using as much as you know” is invalid

Often, supporters of complex programming languages will tell you that you don’t have to learn the language as a whole before you start programming. Just start programming your software with as much knowledge as you have and improve the coding as you learn new and better concepts to use.

This is, in my opinion, an invalid argument to defend the complexity of a language.

In theory, this claim might be true. However, in practice, when you stuck at some point and need help from others, usually experts, you won’t find anybody to help you with your code. Instead, you will get answers telling how you should use a feature you haven’t learned yet, to accomplish the task you are trying to do. And if you insist that you haven’t learned that concept and there are still hundreds of pages to learn “that chapter”, you will be insulted, ignored or banned… So, if you want be a part of the support community, you end up skipping hundreds of pages of whatever book you are learning from and copy/paste code that you don’t understand yet, which is a bad programming practice in all aspects.

So, “Start somewhere and improve your coding style as you go.” does not work for beginner programmers. Beginner programmers should choose a non-complex programming language to overcome this frustrations.

Filed under: Programming, , ,

Graduation Project

Got my graduation project this week. Since it is about a commercial product, I don’t know how much detail I can give about it on this public blog. But to mention a little; it includes designing a biomedical device, our team is composed of 3 students and 1 instructor and my part in this project will be mostly about writing the computer software, but I plan to interfere with the hardware part, too 🙂

Actually, I don’t like the obligation to do something useful and complete because it means making decisions logically instead of emotionally but, I guess, this is an experience I should go through 😛

Filed under: Programming,

Perl 6

İlginizi çekerse, e-bergi‘nin bu ayki sayısında Perl 6 programlama dili ile ilgili bir yazım yayınlandı:

Yazı iki kısımdan oluşuyor, ikinci kısım gelecek ay yayınlanacak.

Filed under: Programming, ,

An observation about KDE and Gnome applications

KDE has done a big improvement for its look with 4.x series. In 3.x series time I used to say that choosing KDE over Gnome because of its look cannot be true. KDE 3.x looks ugly, PERIOD! But 4.x looks pretty good, pretty chic. I never coded with Qt but I can tell the reason that if a Qt application looks bad on 4.x it is mostly because of the developer himself. KDE still does not look as good as Gnome applications, though. Also from the point of view of user experience with GUI, it is not even close to Gnome!

But there is something which makes KDE applications preferable over Gnome applications. Most KDE applications tend to work correctly when it comes to the basic needs of the user from the application. They do the job which they supposed to do, right, and suck at the other details (almost at all other details). In contrast, Gnome applications are very good at every other thing but suck at the very basic function it is supposed to do. I saw this again when I was trying feed readers and decided to write this entry. I tried 3 or 4 feed readers and 2 of them worth mentioning. I first tried Liferea which is written with GTK+ and then some other feed readers which are written in GTK+ again but were in so early development stage and useless… And lastly Akregator which is written with Qt for KDE. I stayed with Akregator although I hate running KDE applications when working with Gnome. Here is why:

The bad things of Akregator (some of them were configurable via settings, but still…):

– It sorts the articles in alphebetical order by default. Who in the world would use his news reader to read news in alphabetical order? This can be changed easily but I am pointing out the fact how KDE application developers’ brains work.
– When closing and then opening from tray icon you have to maximize it manually every time.
– The tree view widget shows a scrollbar on the bottom although it is not needed and you can change its position too (I’m saying, it is not even disabled!).
– It mentions KDE, too much. I’m using Gnome not KDE. And even if I was using KDE, I would like it to mention the operating system’s name (Ubuntu for example) not the desktop environment’s name.
– Why would I need “About KDE” in every application? There should be only “About AppNameHere”.

These were the annoying things I saw in first 5 minutes of usage. Now, the good thing of Akregator (Yes, just 1):

– It marks the news as read correctly.

The good things of Liferea:

– Its user interface is almost perfect.
– Every widget is in the place I would want it to be.
– It has all the configuration I would ever want to change. And the default settings are almost always good as they are.

The bad thing of Liferea (Yes, just 1):

– It shows some of the news I read, over and over again as unread. Once, it marked all the news in a feed as unread and I couldn’t mark them as read ever.

And that just 1 good thing about Akregator was important enough for me to use Akregator. When reading news, marking the news you read correctly is so crucial that I can ignore all the bad things about Akregator and all the good things about Liferea.

You can apply this situation for not all of the applications but a lot of them. I think, Gnome application developers should more concentrate on making the application fulfill the basic job it supposed to do and then add the other small details which make the user even happier, in time.

Filed under: Linux, Programming, ,

Screenshots from an upcoming project

I was working on a small software to catalog my movie archive. Here are some screenshots:

It will be out this summer.

Filed under: Programming, , ,