Capturing Ideas Saturday, Aug 18 2007 

Ideas sometimes visit us; we think and they grow and step out from the dark corners of our brains. When this happens it’s time to capture them so they won’t get lost inside the brain and may be shared with other people or revived later. For the small ideas TODO list may be enough – you just pin them down as strings. But for the bigger ideas that have grown up in your brain I’d recommend to use a special tool – Keynote (or Powerpoint). Here is what I consider as advantages:

– You may share the idea with other people easily.
– There are lots of controls to better structure the idea – lists, shapes with lines, charts, etc. In fact when you create presentation you help yourself to think (unless you concentrate on transition effects).
– It’s possible to embed additional data such as images and pdf files.

The only disadvantage is that you have to spend time creating presentations; but if you like your computer and software it runs it’s a pleasure, isn’t it?

Reviews Friday, Aug 10 2007 

One of the most effective ways to keep programmers productive is to tell them to write reviews of their work. The idea behind the review is that programmer knows that he must write it and give it to his manager and there should be a list of tangible results. If he won’t write it it will be the same thing as if he wrote an empty review. When he just imagines how he comes to his manager and says “I’ve done nothing, sorry” heart begins to beat faster. And this means that he will strive to accomplish some noticable tasks thus making visible progress on the project.

The pitfall here is reviews frequency. Beweekly or monthly reviews are not quite effective because there is enough time to defer some tasks closer to the review date and there are weekends in between so it’s tempting to think of them as of extra work time. Daily reviews do more harm than good: the problem is that there is no time reserve so the programmer can manage self. There is a feeling of being instantly watched, there is fear that if you’ll encounter a bug and it will be tough and you won’t fix it within a day you’ll have to say that you did nothing. Daily reviews are very stressful and demotivating so you’d better off doing them.

The best time span for review is a week. There is enough time to achieve something more or less significant and recover from unforeseen obstacles. The best time to send review is a Friday – there is no weekend time that may be used for work.

Sketch Thursday, Jul 26 2007 

Recently I’ve tried to draw a sketch on computer. I’ve never used to draw sketches but always wanted to. So I’ve taken Wacom Volito2 pen tablet and painted a rabbit; here is a result:


There are two ways to draw something on computer:
– By pixel. That’s how this rabbit was drawn. I’ve started ArtRage2, selected pencil tool and scribbled a rough shape. After that I was instantly switching between eraser and pencil tools to make the image better and smoother. Pen tablet is quite helpful here; it’s much harder to draw with mouse and nearly impossible with trackpad.
– With graphic primitives. This means that there will be palette with bezier line, rectangle and ellipse. You will select these primitives and compose the big image from them.

Drawing style is also quite different; when you’ve put some pixels on the surface they are unrelated elements. They are group only in undo history (unless you use layers). Image composed of primitive shapes may be tweaked at any time and generally you have much greater control over the image content. But with pixels you could create sketches much faster so it’s a better way to start drawing.

In the end I’m happy with my rabbit and want to share my impressions:
– It’s hard to start. You can’t draw a curve the way you imagine it; your hand does not obey you.
– It’s easy to erase and draw again. Soft eraser works surprisingly well and after a while it becomes a pleasure to erase and redraw parts of the sketch.
– Draw big picture and scale down; this way resulting image will be more pleasant.

TODO Wednesday, Jul 25 2007 

There are many reasons to keep todo list: to remember things better (it’s known that when you write down something it gets better stored in your brain), to feel yourself organized, to do simple time/resource management. Writing down all items on paper is the simplest solution but paper becomes cluttered when you complete items and strike them out. Better idea is to store them on computer in a text file; it’s always clean and you may copy-paste items to other applications, send them by email or IM. Having dedicated application to edit this file is even better idea; it may hang in system tray to be at hand, group items and enhance them visually. After using some tools to manage todo list I’d say that none of them are perfect; here are guidelines for the ideal solution:

– Items should be simple single-line text strings. Additional properties such as dates and location may be just written within the item. The reason is that all those structured properties will just distract from the item itself. If there is need to keep structured records you’d better off using bugzilla.
– Items should be nested. It’s natural for the humans to break complex tasks in subtasks so child items may be provided for any todo item. There should be no dedicated categories or folders; todo list is all about execution – not record keeping.
– There should be no ‘completed’ checkbox. If item is done it should be removed. If you don’t want to remove it by some reason it’s not done. If it contains some reference data such as web site url or phone number then you should move them to some other storage such as browser bookmarks or address book.
– Items should be stored in text file so you may edit them in any text editor. Each item occupies one line; child items are prepended with tabs so if the item is far from the left side then the upper item (has more tabs in the beginning) then it’s a nested item.
– Application should allow to associate colour labels with items. They are generic flags that may be used to prioritize items or mark for review or further investigation. They should be stored by application in some other stoarage, not in the text file with todo items.
– Application should always be at hand; most obvious solution is to load on startup and hang in system tray.
– Name of the text file with todo items may be specified in preferences or the last opened file may be used. File should be saved automatically after changes.

The best application for Mac that I’m aware of that almost fits in this description is CheckOff []. Sources of this application are freely available so it’s not a big deal to roll out a version that implements this vision.

PC Tuesday, Jul 24 2007 

Now the word PC is associated with relatively cheap boxes with Intel processor inside that run Windows or Linux. But PC actually means personal computer – a computer that is associated with one person that keeps all person’s data, applications and generally serves as a gate to the digital world. What actually makes it personal? Operating system? Hardware?

My first computer was Sinclair ZX Spectrum with 48k of memory. It was rather game console then computer because most of the programs were games but nonetheless it was open to modifications and has assembler translator to write ‘serious’ applications. You have to attach it to TV set and tape recorder so it was not portable. And thus it was not quite personal (except of emotional attachment) and it was easy to abandon when new generation of computers came. Next were x86 boxes with MS DOS and all flavours of Windows and Linux. There were no LCD displays or they were impossible to buy so these computers were desktops with CRTs and thus not portable too. But they were able to store much more data and run more applications. They began to accumulate digital part of me – documents, memos, music, picutes and all other kind of data bits. In this sense they become more ‘personal’.

Size matters; you can’t take desktop computer with you. It will stay at home or at work and you will come to it as you come to work or return home. Often there are two desktop computers – at work and at home. In the end none of them feels personal; just a temporary location. Only portable computer such as notebook may be truly personal because you take it with you wherever you go and it gets attached to you and becomes part of you. That’s what PC is.

Now many internet sites offer ‘web life’: store your data on their servers, use their applications (,, to name a few). While all this sounds new and exciting in reality this will work only partially. Do you know how they store your data? What if they will decide to cancel their service? What about privacy? I think of them as of backup solutions; I want my data to be with me, on my personal computer, easily accessible. And this won’t change anytime soon.

I’ve used many computers in my life; I’ve lived under many types of operating systems. In the end the winner is OSX running on MacBookPro. I can’t say that OSX is exceptionally stable; it’s just more convenient then others. Most applications may be installed just by dragging them in some folder on internal HD and uninstalled by dragging them in recycle bin. Behind the scenes OSX reads application bundle and updates launch services database, but user interaction with OS remains simple. There are other clever things and in the end combined together they make difference. MacBookPro is also not the most durable hardware but it’s thin, feels good and has nice display and sound system. It’s my choice now.

Technologies will evolve and there will be new gadgets but personal computers won’t go. Eventually you’ll need 15 inches thin display, keyboard and mouse. And disk space. And CPU power. And you’ll buy notebook, a truly personal computer.

« Previous Page