Monday, December 11, 2006

Yet another idiot - and some other stuff...

First - after almost three weeks of silence I'm back. I was pretty busy, and not only had no time to post something interesting - I've also had no time even to read comments. When yesterday I've got at last a couple of minutes to check what's going on, I discovered that my blog was infested with spam comments. Speaking frankly, I don't understand the purpose of spamming blogs with totally unrelated comments - most probably they will be deleted almost immediately, and would only annoy people. (One of the comments I deleted was from "a 15 y.o. Sandra from Arabia" who learns English and wants to talk to boys - I have no clue what was the idea of this, since the comment had no other information). Anyway, I tried to delete as much of this garbage as possible, and I've turned CAPTCHA on - sorry for the inconvenience, but I need no more spam, thank you very much.

Now, about an idiot. Here's a funny story: a blogger received an e-mail from somebody with quite a request:

I have been running the site for over two years and we have been ranked very highly for the search term [edited].

On Thursday morning I checked our google positions and your site is now above us for this term. I haev checked your blog and it has nothing to do with [edited], so I think it would be best all round if you remove your blog from google for this search term.

You can read the rest of the e-mail here, and a follow-up here.

Well, of course we have an exemplary case of an idiot here. Funny, amusing - but not too interesting. What is interesting, though, is the entire situation with businesses (both large and small) striving for the first place in Google searches. It's obvious that the first place is extremely valuable in terms of business. However, this precious commodity is not for sale (which is good!), and is being granted by Google's system based on some mysterious factors. For example, as for today, if you try to search Google for "buy computers", the first place will be occupied by BestBuy. It is followed by - and CompUSA is on the tenth place, last on the first page. Google in this case becomes something like a blind force of nature - powerful and unpredictable. I am not saying that this is bad - or good - I just find it to be curious and thought-provoking...

Technorati tag:

Tuesday, November 21, 2006

PS3 and Wii - first impressions not that euphoric...

So, at last, it has happened! Both PS3 and Wii were released in US. It was fun to read about extremes some people would go to just to get the box on the first day of the sales. However, according to the multitude of articles and blog posts published in the last couple of days, the first impressions about those two next-gen consoles are not all euphoric. There are bugs, problems with the new Wii controllers (some people find them poorly suited for games, while some other claim that the motion-sensitive Wii controller broke off during play and cracked their TV screen (!)), and some incompatibility issues.

However, for me the most interesting was the article in NY Times called “A Weekend Full of Quality Time With PlayStation 3”. The author is disappointed in PS3 usability, and summarizes his feelings:

And so it is a bit of a shock to realize that on the video game front Microsoft and Sony are moving in exactly the opposite directions one might expect given their roots. Microsoft, the prototypical PC company, has made the Xbox 360 into a powerful but intuitive, welcoming, people-friendly system. Sony’s PlayStation 3, on the other hand, often feels like a brawny but somewhat recalcitrant specialized computer. (Sony is even telling users to wait for future software patches to fix some of the PS3’s deficiencies.) The thing is, if people want to use a computer, they’ll use a computer.

Goes surprisingly well with my thoughts

Technorati tags:, ,

Friday, November 17, 2006

Web 3.0

Here is a new buzzword: Web 3.0!

Well, the word itself is, probably, not that new – it seems it was used for quite some time; but almost always it was used to describe just “something beyond web 2.0”. However, an article was published recently in NY Times which caught some attention. The article is written by John Markov, and it, basically, puts an equality sign between this new buzzword and something called “semantic Web”. The idea of the semantic web is simple, but powerful: to make data stored on WWW not only human-readable, but also machine-readable; to enhance the markup so that automated processors would be able to “understand” the meaning of each piece of data and its relation to other pieces. It will be possible, thus, to do many exciting things with the data found on the web: to analyze and aggregate data from multiple unrelated sources and to do extensive data mining.

Here are several more links to some quite interesting texts about semantic web:

“Minding The Planet -- The Meaning and Future of the Semantic Web” and a follow-up to Markov’s article “What is the Semantic Web, Actually?” written by Nova Spivack, a founder of Radar Networks, one of a few companies that are working on semantic web technologies.

So, should we say goodbye to Web 2.0 and switch to Web 3.0? Obviously, not! The two concepts are quite orthogonal, so the name “Web 3.0” is, probably, as misleading as it gets. (It’s funny to try and search WikiPedia for “Web 3.0” – the article is removed, because there is still no consensus about what “Web 3.0” is.)

Personally, I am quite happy about the development of the semantic web. New tools will mean more capabilities for Internet users; and new paradigm will mean more work for programmers – clearly, a win-win situation for me!

Technorati tags: , ,

Friday, November 03, 2006

More on interactive storytelling: Ernest Adams

While writing my previous post I totally forgot to mention an extremely interesting talk on interactive storytelling presented at GDC 2006 by Ernest Adams. Unfortunately, my notes on the lecture – which, by the way, was called “A New Vision for Interactive Stories” - are very brief, and I couldn’t find a full text of his speech on the web. (On his own site Ernest has a full text of his previous presentation on the same topic – but just a short paragraph about his last one). However, here you can read a pretty good summary of Ernest’s speech. It’s interesting to compare his ideas with the ones of Chris Crawford – similar and yet different at the same time (at least, according to what I’ve read at the Storytron site).

Technorati tags: , ,

Wednesday, November 01, 2006

Chris Crawford on Interactive Storytelling and Storytron

In September Dr. Dobbs Journal published a very interesting interview with Chris Crawford. (I’ve discovered this interview just yesterday). Chris Crawford, a prominent game designer and writer, talks about interactive storytelling. Chris shares his views on game design in general, but the bulk of the article is dedicated to his new brainchild: interactive storytelling technology called Storytronics. I was excited when I found this conversation, for I am very interested in game design and interactive fiction. With discussions of the way the narrative in the games should be designed being all over the place, I was anxious to hear what the famous game design guru will disclose.

Well, after reading the article I was somewhat disappointed. In the beginning of the conversation Chris told that

The Sims is neither interactive storytelling nor a game. Will [Wright] considers himself a toy designer. It's the finest toy anybody ever developed, but it's not interactive storytelling.

But the more he was telling about his new system, the more I felt that he actually is building something very similar to “The Sims”. And, at the end, I thought that now he plainly contradicts himself:

Basically, it's a social interaction simulator. In fact [it might be] better to think of it as a simulator, because the stories it generates are very different from conventional stories. They don't have plots.

Personally, I think that stories with no plot just aren’t stories. And Storytronics – at least, as Chris described it – seems to be no different from “The Sims”. I was also surprised that Chris didn’t mention the whole genre of Interactive Fiction. Even in the page called “Different Approaches in the Quest for Interactive Storytelling” on his site he never mentions it – which is really strange, because IF is all about interactive storytelling, and can provide a humongous amount of useful information, experience and insights.

The Storytron site allows everyone to download a pre-alpha version of their software. I definitely will do it, because I respect Chris, and I don’t want to judge his ideas based on just one interview. As soon as I try his software, I will post my impressions.

Technorati tags: , , ,

Wednesday, October 18, 2006

EA goofs up with ads embedded in a game

The idea of embedding advertisements in software is not a new one. For quite some time it was used by developers of shareware programs to help them getting paid for their work while keeping the product "free" (at least, with no payments required from the user). Somehow for a long time the idea was not introduced into the world of computer games; but recently the topic of "embedded ads" became a hot one. Many factors made the idea of putting ads on vacant places in the game world a lucrative one: growing time people are spending playing games, growth of gamers’ population, expanding demographics of players, availability of internet connectivity… The interest to this topic is constantly growing, especially in the area of casual games. For example, on GDC 2006 WildTangent introduced their own platform for embedding advertisements, oriented on downloadable games.

So, I’m not surprised that Electronic Arts decided to join the fun and released two games with built-in ads: Battlefield 2142 and Need for Speed: Carbon. But I’m still surprised at the total lack of market understanding which EA demonstrated with this launch. EA decided to get the best of both worlds – they’re charging a regular price for the game and make you watch their ads. It’s no wonder people become frustrated with this: usually it’s one or another: I can pay for the game; I also can support a developer of a free game by watching ads instead of paying cash. But I really don’t understand why do I have to do both?!

"Joystiq" (from which I’ve got the information) in two posts (post1 and post2) provides a transcript of the letter, which, as I understand, comes with the game. Here is the most interesting part from this letter:


Basically, love it – or leave it. I am speechless…

I hope that EA will listen to the voice of the gamers and will reconsider its policy. Basically, it has to do a very simple thing: let the users choose, whether they want a free game (or, at least, deeply discounted) with ads, or a fully priced one – but with no ads.

Technorati tags: , , ,

Friday, October 13, 2006

Second Life: cyberpunk becomes real?

Second Life is a 3D online virtual world, created by Linden Lab. According to Wikipedia, currently it has more than 300000 active users and total of more than 800000 user accounts. Nothing spectacular – there are much more densely populated virtual worlds. So why am I writing about it? Well, because it seems that more and more people start realizing that the virtual worlds can be used for more than just killing monsters and leveling up characters. And not just people – huge companies are paying close attention to Second Life. Here are three stories that I’ve discovered today:

I have a feeling that the thrilling cyberpunk stories by Gibson and Stephenson turn into reality much faster that anyone would think…

Technorati tags:,

Wednesday, October 11, 2006

Office 2.0 is coming

Couple of interesting developments happened in the area of web-based office productivity applications (so-called "Office 2.0"). First, Zoho just launched its "Virtual office" – an integrated online suite of collaboration tools. Second, Google launched an integrated version of Writely and Google Spreadsheet products called "Docs and Spreadsheets". I didn’t use Zoho yet – but I’ve used Google Spreadsheets, and can tell that the application is nothing short of amazing. On the other hand, the list of applications offered by Zoho is absolutely overwhelming. I think one can say that Office 2.0 is almost here.

More information about Office 2.0 can be found here. Especially interesting for me was a section called "My office 2.0 setup", which provides a list of Office 2.0 tools together with their alternatives. I should confess that I didn’t know about half of the tools mentioned there!

With the new developments come new concerns. As usual, I am concerned about the security of Office 2.0. Here is a very interesting article called “Top 10 Web 2.0 attack vectors” – a must read for anyone building Web 2.0 applications. This article, however, deals mostly with developer-side issues. As for user-side security, I have nothing specific to say yet – just some uneasy feeling about it.

Technorati tags: , ,

Thursday, October 05, 2006

JavaScript Intranet Scanner

In "Other Things" blog I've found a link to a PDF document which describes a very disturbing security issue with JavaScript:

Imagine visiting a blog on a social site or checking your email on a portal like Yahoo’s Webmail. While you are reading the Web page JavaScript code is downloaded and executed by your Web browser. It scans your entire home network, detects and determines your Linksys router model number, and then sends commands to the router to turn on wireless networking and turn off all encryption. Now imagine that this happens to 1 million people across the United States in less than 24 hours.
This scenario is no longer one of fiction.

The document provides more information on how this can be achieved (though the link to their demo page doesn't work, so I can't guarantee that this is not another joke). If the approach, described in this paper, works - then it's scary. It seems like the only possible solution is to turn off JavaScript support in browser and turn it on only for selected sites, which will make Ajax and other modern Web technologies significantly less appealing.

Again, I didn't check the information yet - but the explanation in the document seems realistic enough.

Technorati tags: ,

Friday, September 29, 2006


For some reason agile methodology became a hot topic last week. Many new postings in many blogs were discussing the merits and the shortcomings of agile development, and many old posts on the same topic got promoted to the first page on sites like DZone . Many people were criticizing Agile, and many were defending it.

I, personally, have no experience doing Agile, and, therefore, I am in no position to criticize it (though I find many of ideas and methods of Agile contradicting my own experience and common sense in general). But I also want to add my 2 cents to the discussion.

I will not talk about Agile being better or worse than Waterfall or any other methodologies. I will start with one simple statement: methodology is a tool. It’s not a religion, not a science – it’s merely a way to organize production. But there isn’t such a thing as “universal tool” – every tool is good for something, and is bad for something else. There are exceptions – tools that are bad for everything, but in case of Agile this is not the case, since we’ve read some success storied, and I don’t have any reason to call the inventors of Agile liars.

What that means is – it’s absolutely useless to discuss whether Agile is good or bad; instead Agile users (both haters and lovers) should spend their effort on analysis of their stories, in order to understand when Agile is good, and when it is bad. I am absolutely sure that for certain types of projects (or teams, or environments, or combination of those factors) Agile is a blessing – and for certain others it’s a curse.

Technorati tags: ,

Thursday, September 28, 2006

Windows tips

Just found today a great discussion thread in The Joel on Software Discussion Group: Best tips that no one seems to know about. Basically, the whole thread is a collection of various simple Windows tips and tricks - mostly some interesting hotkey combinations. The conversation also mentions several quite useful links:

Firefox keyboard shortcuts
Windows XP keyboard shortcuts
117 run commands in Windows XP

Now, the only question I have is: how should I memorize all of these cool key combinations - or, at least, the most useful ones? Probably I should create some kind of printable list of my favorites and put it on my wall.

Technorati tags: , ,

Tuesday, September 19, 2006

PS3: a hidden computer.

Yesterday CNN published an article about using PS3 for distributed calculations. The scientists at Stanford University worked with Sony to port their Folding@home project to PS3. The idea is that the users will download a program to the hard drive of their PS3, and the program will perform some complex scientific calculations while the console is not being used for games. It will upload results to some central location, helping to find a cure to a number of diseases.

The article left me with mixed feelings. On one hand, this is definitely a creative use of PS3, and the project is, no doubt, beneficial for all mankind. I applaud the scientists at Stanford and the people (tehchies and business folks) at Sony.

On the other hand, this new project demonstrates one very important thing: PS3 is a device which has very powerful processor, local storage and connectivity capabilities. It can go online, download software, run it (maybe even in a background mode), and send data back. In other terms - yes, it is a full-scale computer, as we were told already. The question is - what about security?

I do believe that Sony did its best to implement various security features. But I know also that PSP, for example, was hacked in a very short time. In a contest between Sony and hackers I wouldn't bet on Sony.

You may say: "So what? Normal computers are also being hacked into daily; there are tons of malware out there - but no one panics because of that." The problem here is not a technical one - it's, rather, a psychological issue. Majority of users know now that the computers have to be protected against viruses, trojans and other dangers. People are learning to be attentive to unusual behavior of their computers; and they also learn to protect their PCs by installing automatically updating antiviruses, firewalls and all sorts of protective software (to say nothing about regular automated updates of OS). They learn it about computers - but almost no one will ever perceive their gaming console - a toy - to be a computer that requires an equal amount of protection. I strongly doubt that anyone will buy and install a firewall or antivirus for their PS3.

Next question is - what is a danger of compromising PS3 security? Yes, it doesn't have any sensitive data stored (though it might have account numbers and passwords for some subscription-based online games). But it has exactly what was used by people at Stanford: free horsepower and connectivity. So, I can clearly see a botnet of infected PS3s used for distributed calculations (breaking keys, for example), spamming, or DDoS attacks. And, even if the source of the problem will be traced to PS3s, it might be incredibly difficult to make people install some patches or run cleaning software.

Maybe Sony already addressed this problem somehow - I don't have enough information yet. But I can see an interesting and dangerous trend here. I am talking about having powerful computers in an ordinary gadgets and not even thinking about their true capabilities. It's not a new idea, but it seems less and less fantastic to me: we are close to times when one might discover that his coffee maker is being infected by a virus, and his vacuum cleaner is being used to crack some Pentagon codes...

Technorati tags:,

Friday, September 15, 2006

Advice to interviewers

Lately on several blogs I've seen posts discussing different aspects of hiring. Most posts were giving advice to candidates - so, I thought I might also take part in this. However, instead of giving advice to candidates on how to survive an interview, I'd rather give some advice to interviewers.

Phone interview. Couple of times I've discovered that the person who is interviewing me over the phone has some speech defect or some extremely heavy accent. I'm not a native speaker myself, and, probably, I shouldn't complain about it, but still - the fact that I was unable to understand questions from the first time (and sometimes from the second and from the third times as well) made those interviews extremely - and unnecessary - stressful. So, advice number one is: make sure that the person who does phone screening speaks clearly.

Also, do not make candidates read or listen to large pieces of code. It's inconvenient, ineffective and, speaking frankly, pretty stupid.

And the last one about phone screening: be flexible about who calls whom. I've encountered once a person who insisted on calling me - in the middle of a working day in my office!


Do not ask the candidate to submit code examples from his (or her) previous job. This might be illegal, and it puts the candidate in an awkward position.

Test projects and on-line tests - well, I, personally, strongly dislike those practices. Nothing prevents candidate from cheating - and serious professional wouldn't like to spend his time on doing some bogus project.

On-site interview.

Always give your business card to the candidate. When going through an interview with 5 or six people in a row it's hard to remember everyone's name and title - and it's so embarrassing later to admit that you've forgot whom did you talk with!

Don't turn the interview into your ego-booster. Don't ask questions the only purpose of which is to prove you that you know something better than the candidate. As an example: in a list of "General SQL knowledge interview questions" in one company I've seen a question based on a strange, and, probably, incorrect behavior of MS SQL server under some circumstances. Do you think this is an appropriate question to measure general knowledge of SQL? I don't think so.

And, please, try to give a feedback. I remember one of my interviews. A man asked me questions, I answered, he said "OK..." and continued with the next question. At some moment, I felt uncertain about my answer. The man said "OK...." and I asked him: "Was it the answer you expected?" He calmly replied: "No. As a matter of fact, it was a completely wrong answer." I asked for a clarification, and discovered that I misunderstood his question. So, if the candidate answers your question incorrectly, tell him (or her) so - maybe they know the right answer, but just didn't get you right.

Technorati tags: ,

Monday, September 11, 2006


I've discovered an idea of microformats quite recently, and I was immediatelty charmed by its simplicity and elegance. Simply put, microformats are about formatting semantically united blocks of data so it will be easily understandable both by machines and by humans. Examples of the data which will benefit from this approach are numerous. - a site dedicated to microformats - lists almost a dozen already existing formats, including hCard - format for representing people and organizations, hCalendar - format for events and calendar entries and others. Microformats are based on XHTML - which allows them, on one hand, to be easily integrated into a web page, and, on the other hand, to be easily extracted from the page and processed by any program.

There are already several tools - most of them are stil beta versions, though - that are able to detect the presense of microformatted data on a web page and extract it. One of the examples of a freal-world usage of microformats is the way Technorati processes tags from blogs - rel-tag is one of the microformats!

One thing I am afraid of, however, is an uncontrollable proliferation of incompatible microfomats once the idea becomes popular. It's so easy to come up with your own format! This might render the whole idea unusable - but I do hope that it will not happen, and I am watching with interest all the new development in this area.

Technorati tags: ,

Thursday, September 07, 2006

Back from hiatus

Being silent for a month is not a good thing for a blog. For a blogger, that's not a good thing either. It's even more difficult to write a first entry after such a long pause - somehow it seems that this particular entry should be very important, extremely informative, and should somehow justify the long silence. Since coming up with something having this level of perfection is definitely far beyond my capabilities, I decided just to write this simple "I'm back!" piece.

Last month has been a hectic time for me. I've changed my job - and while doing that I positively had no time to produce anything interesting enough of my readers. I want to take this opportunity to say "Thank you" to everyone who is reading my blog.

So, thank you - and stay tuned! I'm back.

Tuesday, August 08, 2006

I hate eVite!

Somehow it happens that many of my friends got the habit of using eVite as a tool for organizing their birthday parties and similar events. I do not want to say anything bad about my friends - but I HATE EVITE!

Actually, it's not eVite - it's the idea of using such tools in general. I can imagine that it might be extremely useful when somebody organizes a party with one hundred participants. But using it for a meeting of ten - or even twenty - friends? That's definitely an overkill.

There are several reasons why I feel in such a way. First, I think an eVite invitation just purely lacks a personal touch. Everybody sees the same text, and - even if the text is written in the most warm and personal words - it's lost among all other elements on the eVite page.

Another reason: I am not sure why do I have to be able to see other guests' responses - or why other guests should read my response? Again, in case of some semiofficial event it's, probably, perfectly OK - but not in case of a small birthday party!

But the invitees replies are not the worst element of the eVite page. The worst - for me - is advertising. (It's also yet another reason why I do hate this tool!) I really don't see why I should get all this garbage when opening a birthday party invitation. Yuck!

I know that most of my friends do not share my point of view. Maybe it's just me - but every time I have to open an eVite page I feel that I long for good old times when invitation were written individually for each guest on pieces of substance called "paper"...

Technorati tags: ,

Monday, August 07, 2006

"White hamster" projects

Since the company I worked in decided to lay me off (together with several other people), now is a good time to review some of my experience and try to learn from it something important...

So, what is a "white hamster" project? Before I answer the question, let me tell you an old joke.

A man enters a pet store, pulling behind him on a leash a huge, dangerously looking polar bear.
- Hey, what's the deal with this bear?! - asks storekeeper.
- Oh, I just want to talk to the guy who sold me a year ago a cute little white hamster...

White hamster project (I invented the term for my own usage - but everyone is welcome to use it) is a project that starts as an innocuous small tool or utility, but soon unexpectedly grows into something large. It happened to me a couple of times: I've got a request to write a small utility. Because it was small and easy, I've got a couple of days to do it - and I did it in a very simple and straightforward way. Then a couple of requests for small additional features arrived - then two or three small enhancements - then a special case popped up... Each time I spent a minimal time on the change, because, after all, it was still a simple tool. Half a year later I was dealing with a monster which had a complex web UI, maze-like control flow, and was a nightmare to work with, because of its design - or, to be more precise, a lack of one.

Of course, the best solution would be to do everything right from the very beginning - but quite often it's hard to justify the necessity of spending much more resources on a very simple program which can be coded in just a couple of hours. For example, one of my "white hamster projects" started with a request for a web form where the user enters five or six values and the tool populates HTML template with the values entered and saves the result as a new file. A task for two or three hours of programming - and who could know that it would turn into such a beast...

It's very important to know how to tell a real white hamster from a polar bear cub. Most times it's impossible to do in the very beginning - but, once the developer receives first requests for new features and enhancements, there are certain signs which can help recognize a potential danger. Here are some of those signs:

  • Surprisingly high attention to the project.Sometimes it happens that the management misrepresents (and/or misunderstands) the scope and significance of the project. So, if, what was initially described to you as a simple utility, becomes all of a sudden a topic of a heated discussion, beware!

  • Request for a new feature which seems almost unrelated to the existing ones. For example, after doing the template population tool I was asked to make the tool save some details about the template and the data in the database.

  • Discovery of "special cases".In my situation, I was told soon after I released the first version of the tool that one specific type of data requires a different template. I've implemented it blindly. At the end of the project I had eight or ten different types of templates which were selected using unbelievably entangled logic. That's the danger of special cases - you may start with just one, but inevitably you will end with a bunch. Usually the special cases are, in fact, pieces of some business logic which was not properly identified at the analysis time.

  • Urge to use some "hack"That's pretty basic, but still... If, while implementing a new feature, you feel an urge to use some trick to fit it into the existing application structure, it's a sign that something is wrong.

  • Enhancement requires a significant change in the control flow. For example, in web-based applications, this might be a necessity for a new page, or necessity to divide the flow into two separate branches. This is a sign that the complexity of the project grows beyond original expectations, and it's time to re-evaluate the project.

So, what should be done once the potential bear cub is discovered? Of course, the project design should be changed with a high potential complexity in mind. But - and this is even more important - in this situation one should investigate the business reasons for this project. In my experience, almost always "white hamster projects" are, in fact, attempts to automate some business process. Very often these attempts happen without fully understanding what is being done. In my case everyone - the business users, my manager, and me - believed that the users just need a simple tool to help them create HTML snippets. What they actually needed was a system for working with a new type of web ads. At last I understood it - but it was too late; my cute little hamster had already turned into an ugly beast.

Technorati tags:

Tuesday, July 25, 2006

Consoles vs PC: Article about PS3

(This topic just doesn't want to let me go...)
A very interesting article was published recently on Gamasutra:Analyst: PS3 To Slow Industry Growth, Nintendo & Microsoft Could Capitalize. Recently I talked about the advantages consoles have over PCs in terms of gaming. When I read the article in Gamasutra, I was really puzzled: it seems like Sony in PS3 is going to forfeit all these advantages. PS3 isn't going to be cheap - I knew that. I would even say it is going to be absurdly expensive. But now the CEO of Sony Computer Entertainment (SCE) states that
"we don't say it's a game console, the PS3 is clearly a computer unlike PlayStations so far."

He explains further:
Since PS3 is a computer there are no 'models' but configurations. We'll want to upgrade the hard drive size very soon. If new standards appear on the PC, we will want to support them. We may want the Blu-ray drive to write. In the PC business, if you fix the spec for two years you'll be caught by competitors. Computers should be changing, right? It's inevitable that 60GB hard drive will become too small, and memory may become too small as well"

Wow! So, in other terms, the buyers of PS3 should be ready for spending even more money on upgrades. And the developers should be ready for much harder QA, because now the testing of the new game should have to be done on all possible "configurations". Which, in turn, means that the users should be ready for more bugs in the games.

And why would I (or anyone) want to spend money on a contraption like this instead of buying normal PC - which might be in a long run just a little bit more expensive than PS3, but which can do so much more? I don't know the answer to this question. It seems likeanalysts the analysts from "DFC Intelligence" (whose report is a base for this article) are also puzzled. They predict:
1) the high price of the PlayStation 3 is going to slow overall industry growth, especially for software and 2) if Sony does not change its current strategy for the PS3 the system will probably end up in third place in installed base.

I agree with those analysts. Either people at SCE are geniuses, and can see some things in the future which neither I nor the analysts from DFC can see - or we should prepare for a huge change in consoles game market in the nearest future.

Technorati tags: ,

Friday, July 14, 2006

Some business database design rules

A short disclaimer: These rules are coming from my own experience. The list is not complete, and, actually, it's not a list - rather a reminder for myself and an advice for all others. Most of the rules might seem obvious, but I have spent several nightmarish days recently fixing the consequences of not following those rules.

1. Every item of business data which enters the database should have the information about the source of the data and the time when the data was inserted. The source should be as atomic as possible (not "one of mail servers", but "server"; not "a user input", but "Entered by user Joe Schmoe"). Of course, this does not have to be a text field - a source ID will do.

2. All changes to business-impacting data items should be recorded in corresponding history tables, together with the information about the time and the source of the changes (ID of the user who performed editing, name of the process that changed the data etc.). A note - this rule doesn't state that changes of all data items should be archived - just the ones that might be important for the business.

3. All changes to the database that are not done according to standard operation procedures should be documented. If there is some problem with the data, and there is no other solution but to fix it manually, the script used to perform the fix (even if it is a single SQL statement!), together with the description of the change and the time the change was performed, should be stored in some archive.

4. For each and every table in the database there should be a documentation describing how the data in this table can be changed, and what are the procedures for fixing the incorrect data. And, I will add, the designer of the database should take into consideration the fact that sometimes some data in each table might need to be fixed. For some tables, the documentation would be very simple: "Use UI to modify data". Some tables might require more complex procedures -for example, an error in financial transaction requires creation of a reverse transaction (and transaction types should include reverse transaction in this case!). Another example would be a table which somehow aggregates data from other tables - in this case incorrect data in this table might require changing data in some other table and, for example, running some update script.

Following these rules is not always easy - but in the long run it will save you from some extremely unpleasant experiences. Trust me - I've been through that!

Technorati tags: ,

Monday, July 10, 2006

PC vs Console: an example

Last Sunday I've decided to spend some time playing games on my PC. I've started "F.E.A.R.", which I didn't touch for several months.

First of all, I've spent some time trying to find which of 5 nearly identical CDs the game wants to have in the drive. The game just kept telling me "Wrong disk inserted". At last I've found out that it wanted disk number 5. Then the game started, and immediately suggested me to download and update. I agreed - and the game immediately quit, starting some downloader instead, which told me that it will take 20 minutes to get the update. (by the way, I have cable - I hate to think for how long the people with dialup would wait...) Well, It was a surprise, because I was in the mood of playing right now - but, after all, I had some other stuff to do, so I just let it run.

In 20 minutes the update was downloaded and installed. I've started the game again, and it again suggested me to download yet another update. Again I agreed, and again the downloader was started - but this time it couldn't locate the file on the server. I decided to run the game without getting the latest patches and features. Alas, I couldn't do it, because the game just crashed when trying to load any of my saved games. I've rebooted a couple of times, and, when it didn't help, I went to the Internet for the help. Very soon I discovered that there was a bug in the first patch I've installed, and that I have to download and install the latest patch. Luckily I found the required file manually pretty soon, and in less than ten more minutes I finally started playing.

And, by the way, while searching for the patch I've accidentally discovered, that another game I've played not so long ago installed some driver on my system for some incredibly advanced copy-protection lock. Now I have to remove this driver, because I do not want some unknown drivers on my PC. The funny thing is, that I've discovered this fact while reading the message on how to install the cracked version of this game!

So, just to add to my writings about what PC games should do to regain market from consoles: these are good examples of what the PC games shouldn't do! For any console gamer, starting the game is a matter of inserting one disk and pressing one button. And the console games just do not download patches - neither they modify the firmware of consoles.

Technorati tags: ,

Wednesday, July 05, 2006

Fading glory of PC games

(David - thank you for suggesting this topic).

As I mentioned earlier, I grew up on PC games. I've always considered consoles as being inferior to PCs. But now it seems like PC games are being aggressively pushed out of the market by consoles. Just 5-6 years ago in most video gaming stores the majority of space was occupied by PC games, with just a couple of shelves dedicated to consoles. Now the situation is just the opposite: I've seen already couple of stores that do not carry PC titles at all! In other stores you have to work hard to locate one or two tiny shelves with PC boxes - all the rest are games for PS2, Xbox and GameCube.

I don't like this at all. I also think that having a healthy market for PC games is essential for the development of video gaming industry and video games as a cultural phenomenon. Consoles are much less flexible than PCs in terms of game genres and game mechanics they can support.

So, can anything be done to reverse this market takeover and bring the market to some kind of a healthy balance? In order to answer this question we have to understand why the consoles became so popular.

A quick disclaimer: I am absolutely sure that some research has been done already regarding those questions. However, I don't know anything about the results of those researches. So, whatever I say now is just my own opinion, based strictly on my own perception. If anyone would point me to any materials on that issue, I will be extremely grateful.

What made consoles so popular in recent years? The answer is very simple: the consoles just got better! One of the major problems with consoles was lack of horsepower - in computing, graphics, sound. The consoles of the current generation are powerful enough to run complex 3D games similar to the PC games. Of course, the most complex 3D games - "Half Life 2", "F.E.A.R.", "FarCry" are still beyond the power limits of PS2s and Xboxes, but look at the next generation - PS3, Xbox360, Wii... The have multi-core processors, capable of running several processes in parallel and tremendous graphics power. This comes very close to the current gaming PCs. So, with the lack of power being out of the way, the other advantages of consoles begin to shine. It's important to understand those advantages in order to come with a working strategy for PC games to regain their market share. The most important advantages of consoles are, as I see it, price and simplicity.
  • Price. Even though the prices for the next generation of consoles are simply outrageous (except Wii, probably), a console is still far less expensive than a decent gaming PC. And - another related issue - a console ages much better than a PC. A console becomes obsolete only when the next version of the device saturates the market. Until then, the console is as good as new. Different situation with PCs: a capable high-end gaming PC in two years becomes mediocre, and will not play any modern game.

  • Simplicity. Consoles are really "plug and play" - you plug the cables, and you are ready to play. Compare this with setting up a new PC... With console, it's easier also to start playing: you insert DVD (or cartridge), turn the device on - and there you are! With PC, you have to install the game, configure it, sometimes download a patch...

So, what happened is: for quite some time parents bought consoles to kids, because they were cheap and easy to use, and to keep them off their parents' computers. Now the kids grew up, they are used to playing on consoles, and the gap between PCs and consoles is almost closed.
Is there any hope for PC games? I think, yes. First of all, the situation might improve in some not-so-distant future when having a computer will become a requirement for school. With kids already having their own computers, the parents might be more inclined towards buying them a PC game than towards buying them a separate gaming device. Thus a new generation of kids raised on PC games will appear. But, speaking frankly, this will happen only in several decades - and this is a tremendously long time for an industry which is hardly forty years old. And what can be done now?

Well, PCs still have several advantages over consoles, which can be used to regain public's interest in PC games:
  • Controls. Mouse is still far better as an aiming and selection device than any joysticks. And a keyboard is much more versatile control device than any gamepad. Besides that, a keyboard can be used for text input - meaning, for example, chats for multiplayer games.

  • Graphics Since consoles are hooked up to TVs, the quality of image is limited by the capabilities of TV screen. Displays are still far ahead - but, alas, the lack of resolution is compensated by the size of the screen. Playing a console game in front of a large TV is definitely an intense experience. Still, this advantage can be used.

  • Storage. This is where computers are still far ahead of consoles. How this can be used in games? Well, for example, a game might feature a complex and large world, which requires constant downloading of new parts. Or the game might produce some useful artifacts (images, movie clips etc.) which will be stored on a computer's hard drive.

  • Native environment People are, generally, using computers not only for games - but for surfing the web, reading and sending emails, sending instant messages and so on. A game can be integrated with these activities - which makes Alternate Reality Games (ARGs) an important part of re-capturing the market.

There is one more advantage of PCs - now from the point of view of game developer and designer. It's much easier for an independent game studio to develop a PC game than a console one. The prices for console SDKs are still very high. Which means that PCs as a platform are much more open to innovations than console. And, as we know, innovation is one thing the computer games industry needs desperately.

To summarize: in order to regain their market share, the PC games should capitalize on the strengths of PCs as a gaming platform, should be innovative and should target all ages of the audience (including the youngest kids). Not sure whether this will help - but this is the only direction I can see.

Technorati tags: , ,

Thursday, June 22, 2006

Save: commit, bookmark or suspend?

The semantic of a "Save" operation in UI is not as simple as one might think. While thinking about the problem with the "save" operation in computer games, I came to the conclusion that there are actually three different operations which are usually represented in the UI with a single "Save" command. These operations are: commit, bookmark and suspend. For the sake of simplicity I will call whatever the user is working on "the project" - be that document, image, configuration data or even a state of a game.

  • Commit. The user finished his work, and the project is ready to be used (released to public, reviewed by peers, put into production etc.) Several examples: saving user profile after editing it, saving changes to configuration of some program, saving a shared document.

  • Bookmark. The better name for this one would be "create a snapshot". The user wants to preserve the current state of the project to be able to return to this state later. Examples: saving the game, backing up the project before doing some risky changes.

  • Suspend. The user wants to stop working now, and to be able to resume work later from the same point. There are not many examples of explicitly doing this operation, but many programs are doing this implicitly when being closed. The difference with "bookmark" is that the user intends to restore the project from the suspended state only once, when returning to work, whereas the "bookmark" is intended to be used indefinite number of times.

The operations seem very similar - but in fact the differences between them are important enough to be considered when designing UI and software in general. It may sound strange, but quite a few applications address those differences correctly. In most cases the users are emulating different operations using just the standard "Save" command.

To illustrate this, let's consider an example well known to everyone - Microsoft Word. This program, actually, does quite a poor job of recognizing the different cases of "Save" operation. You want to create a snapshot of a complex document you're working on, before performing some global changes in formatting? The only way (unless you are using some version control software) is to save a copy with a different name, which is not elegant and just add clutter to your hard drive. You are editing a shared document, and want to suspend your work? Save it with different name in a non-shared location; otherwise you will provide others with an incorrect version of the document. It may seem that the only "Save" operation supported by Word is committing - but even that is not supported as it should, because Word tends to store some leftovers from the previous edits in the file, so, to commit in a clean way you have to save the file under a different name with the "Save as..." command.

Returning to the original question about problem with saving the games - I think that, when game designers realize the difference between different save operations, they will add "Suspend" operation to the game, and make happy many players - including myself.

Technorati tags: ,, ,

Wednesday, June 21, 2006

Why "saving the game" is a problem?

There is one thing in computer games that puzzles me a lot - both as a player and as a game designer/developer. I am talking about "saving the progress". For some reason in many games this supposedly straightforward operation is not straightforward at all. Especially prone to this are console games. No, seriously, I really don't understand why the game designers cannot give the player a possibility to save his progress whenever he wants it? Why do the console games use complex systems of "saving locations", checkpoints, savepoints and who know what else instead of simple "save" command in a menu?

I grew up on PC games - and when I started playing console games this peculiarity was a complete surprise for me - and an unpleasant one. Alas, being an adult I cannot play for as long as I want. I have to stop sometimes - and what a disappointment it is when I have to forfeit all the achievements I've made in the last hour just because I cannot save game in the middle of a level.

I tried to come up with any plausible explanation of this phenomenon:

  • Technical difficulties. Well, I don't buy it. I can't imagine what kind of technical difficulty can prevent a game on a modern console (like PS2 - or PSP, for example) from saving data at any given moment. There is plenty of horsepower to do this, and storage shouldn't be a problem either. Of course, maybe I don't know something...

  • Game design decision. I know that some game designers tend to think that giving the player opportunity to cheat (save - try to hit monster - miss it - load - repeat) might break level design. This could be true - but, for some reason, similar games on PC allow players to do it, and are still fun. For example, look at "Half Life 2" or "F.E.A.R". And, at the same time, "Call of duty" on PS2, being also a First Person Shooter, doesn't allow saves in the middle of a level.

    And, even if there is a problem with level design being broken in such a way, there is a brilliant solution to this problem - separate "temporary save", which ends the game, and which is destroyed after restoring. I've seen this design in "Wario Land 4" on Game Boy Advance - it works like a charm, and I really enjoyed the possibility to suspend the game at any time.

  • Legacy of arcade games. Yes, in a video arcade players cannot save their progress - that's the whole idea! That's what makes them play - and pay - more and more. And yes, old consoles didn't have the capability to save game at all - hence the "level passwords" and other solutions of the same kind. But this was a long time ago - the mode of playing had changes since then. Portable gaming devices are used in many circumstances, and people often simply must stop playing at certain time. The preservation of arcade spirit shouldn't compromise the usability of the game.

So, I can find no decent answer. But, while thinking about this problem, I've suddenly understood that "Save" operation might have different meaning in different applications. The semantic difference is subtle, but important for a good design of application UI - and application in general. But that's a topic for another post...

Technorati tag:

Monday, June 19, 2006

Progress or activity?

I missed the point in time when this change happened. Probably it started ten years ago - or, maybe more... I am talking about using "activity indicators" in place of good old progress bars.

Of course, activity indicator is much easier to implement than progress bar. With progress bar, you have to update it meaningfully - and to have some general idea of the ratio of performed work to the total amount of it. Activity indicator is just a breeze - you slap an animation widget on your UI - and wham! You have it!

But from the usability point of view, it's a disaster (at least, I prefer to view it as such). Not only you have no clue about the speed of the operation, the approximate time left and all such nuances. You also have no idea whether the application is running as it should. The cool progress animation can play by itself, making you think that the application is working hard - when, in fact, it doesn't.

I understand that under some circumstances making full-fledged progress bar may be tough. One situation is when you don't know beforehand how many operations the program will have to perform. For example, the last time I've encountered activity indicator where a progress bar should be was in the utility called CCleaner (a really good freeware program, which removes temporary files and other garbage from the disk). The program didn't know how many files it will have to remove. The author decided to use a fake progress bar - the one which starts from the beginning once it reaches 100%. A better solution would be to add display of the name of the file currently being deleted, or a counter of deleted files. This simple change would make the UI better - by looking at the growing number of deleted files I would always know that the application is running, and not just waiting for some locked file to become released.

The same principle is applicable to web applications as well. Don't just use "AJAX activity indicators" - in case of potentially long operations show some real progress information to the user.

And I have to admit that replacement of progress indicators with activity indicators is a problem not only in the world of computers, but also in the society as well. But this goes far beyond the scope of this post.

Technorati tags: ,

Friday, June 09, 2006

Again on piracy and copyrights

Yesterday I've had a curious conversation with one young gentleman. In two days he made two postings in one forum. In the first post, he was talking about some anti-piracy lawsuit, totally supporting it. The very next day he posted a review of some movie and offered to share a copy of the movie he downloaded from one of these services where you pay thirty bucks a year and have access to tons of "not-so-legal" music and video files. I was curious and asked him to clarify his position on copyrights and piracy. His answer totally shocked me:

" Well - said he - since I am giving the movie for free - that's not a piracy. It's like giving a book to a friend; you wouldn't call it a piracy, would you? If it's a piracy, then the whole eDonkey network is a great piracy act with millions of pirates. And, speaking of the place from where I've downloaded the movie, they charge for access, not for content, so that's not a piracy either. "

As I said, I was flabbergasted. I never thought that in our time so naive people would still exist. Of course, I did my best to explain the real situation to this gentleman, and then I had several thoughts.

First - it seems like the idea of copyright education ("Captain Copyright" etc.) is not as useless as I thought. This guy badly needed some kind of copyright education.

And second - the position of this gentleman has its own logic. And, alas, it seems to me much more reasonable and natural than the current copyright laws. And the copyright laws themselves become more and more absurd: it seems that merely having a shared folder on your computer might become a reason for a lawsuit against you (here is a very interesting Lifehacker article about it). The copyright laws are long overdue to be replaced with something realistic and reasonable.

Technorati tags: ,

Wednesday, May 31, 2006


I've just stumbled upon a blog search/directory site called "Blogwise", and, of course, decided to add my humble blog into their system. The process was easy - and after hitting "Submit", I've got the following message:

Your site has been added to the submission queue. Thank you for adding your site to Blogwise.

It is important to us that all entries are checked for consistency before approval, however Blogwise is run by volunteers contributing their spare time. There may be a small delay before your blog is added to the directory.

There are currently 46415 blog(s) in the queue. Your blog is expected to be added within 156 day(s).

Well, this isn't what I would call a "small" delay. Though I am in no hurry, I think that the guys at Blogwise should do something with the waiting time.

Technorati tags: ,

Friday, May 26, 2006

Java vs .NET on TSS

Couple of days ago an interesting thread was started on The thread is titled "Java Succumbing to .NET in my Organization". The author of the original post discovered that not only his management, who are non-techies, decided to move to .NET, but many of the programmers were quite happy to do it. The author offered some explanations of why developers might want to discard Java in favor of .NET, and all those explanations boiled down to one complain: Java offers too many choices in frameworks, servers, components and architectures.

The thread, quite predictable, became extremely popular, and soon the discussion turned into a small-scale religious war (Java vs. .NET). The whole thread is quite interesting to read, the most interesting and informative post, in my opinion, being "can Java do a lot of things that .NET cannot?".

However, it seems that the discussion had entirely missed the point. After all, it makes little sense to discuss which technology is better in case of two almost equally powerful technologies. Much more interesting is the question of perception: why do the developers perceive Java as being inferior to .NET?

And here I totally agree with the answer suggested in the original post. Too many choices, without any clear way to chose. The number of J2EE frameworks, technologies, components and ideologies is overwhelming and intimidating, and it seems like new items are being added to this mile-long list almost daily. Not that I am saying that it's bad to have a choice; but if the problem of choice starts to divert developers from Java, it's definitely an unhealthy sign.

Unfortunately, I don't have any solution to this problem, or even a slightest idea of where this solution might be. But it at least anyone will read my post and will recognize this situation as a problem, I will be happy. And if no solution will be found, Java soon can be pushed out of market by .NET - and that would be a very sad thing.

Technorati tags: , ,

Monday, May 22, 2006

Don Spamleone

Fact: the company called "Blue Security" gave in to spammers and hackers and shut down their anti-spam service. I think this is the first time spammers achieved victory of this kind.

Story (as far as I got it from various sources): Blue Security came up with a controversial method of fighting spam. Basically, its software called "Blue frog" was installed on the users' computers and was flooding websites of spammers with opt-out messages, thus performing a typical DDoS attack. Then, some (allegedly, Russian) spammer/hacker PharmaMaster declared a war on Blue Securityand staged a real DDoS attack on their servers, disabling their site completely. Blue Security attempted to evade the attack by redirecting the users to its TypePad-hosted blog, but then PharmaMaster stroke Six Apart (the company which hosts TypePad), causing a lot of additional damage along the way. As a result, the company's co-founder Eran Reshef stated (according to "Washington Times") that "It's clear to us that [quitting] would be the only thing to prevent a full-scale cyber-war that we just don't have the authority to start..."- and the service was shut down.

This story is a sorry and disturbing one. Speaking frankly, I don't feel any real sympathy towards Blue Security: fighting crime with criminal methods is not such a great idea. Besides that, their floding caused unnecessary load on the servers and communication channels, and thus was not much better than the spam itself. There is a russian proverb which seems to perfectly describe this conflict: "A thug stole a club from another thug" (my translation is not perfect, but it shows the idea). By the way, there are some attempts to recreate Blue Frog in a P2P way - and I think these attempts are extremely foolish and dangerous, because it definitely will lead to a full-scale cyberwar.

I am also worried by the fact that, as I discovered from some articles, Blue Security got several million dollars from its investors - which menas that, besides some hard-core anti-spam extremists, there are some people with money who support the idea of fighting criminals with their own methods. Basically, this is equivalent to investing money in weapons for guerrillas and rebels. We all know too well where this policy leads to.

And I am disturbed - and enraged - by the fact that one outlaw hacker was able to declare a war on a legitimate company, which resides in a civilized country, and had won the war without anybody being able to protect the victim. This is really scary, because it means that a person with some knowledge of cyber underground, and some money is able to bring down any legitimate company. Some mesures definitely should be taken to protect people and companies from such fate - but, I am afraid, those measures most probably will turn out to be more harmful to Internet that spammers and hackers together.

Technorati tags: , , ,

Friday, May 05, 2006

Ma.Gnolia API

Yesterday Ma.Gnolia announced that the first version of their API is in production. The details of the API can be found here:

I think this is a very important milestone for Ma.Gnolia. The API opens a multitude of new possibilities: plug-ins and extensions for browsers, mashups, stand-alone application that will either provide more ways to work with Ma.Gnolia database, or even use the database for some other purposes.

As soon as I have time I will go and play with the API – I like new toys!

Technorati tags: , ,

Wednesday, May 03, 2006

On Error Resume Next

Maybe I am wrong – but I think that I’ve never seen any programming statement more stupid and more evil than the notorious Basic line:


I never could understand what made someone to introduce such an abomination into the language. Was it a momentary lapse of reason, a stupid joke or just an act of pure and random malice? Anyway, it’s horrible – but even more horrible are the two facts:

a) This thing is still in the language, and
b) Some people are still using it!

I’ve just spent several long hours looking at an ASP page and trying to understand why it behaves so strangely? I usually don’t use ASP – and totally forgot about this little gem. Finally when I discovered that whoever created the page put “ON ERROR RESUME NEXT” in the very beginning. I removed it – and immediately the true source of errors became obvious. It’s good that this page was just a part of an online store – and not of something more important…

Technorati tags:

Tuesday, April 25, 2006

New digital copyright bill published an article about the new digital copyright bill, which is currently being prepared by Congress.  According to the information from the new bill is nothing else but the DMCA on steroids. Instead of scaling down the controversial DMCA, as was requested many times by computer scientists, security experts and technology folks in general, the Congress wants to give more freedom to law enforcement structures in “fighting the IP crimes”. And, of course, this bill is already widely supported by RIAA and others.

I really do hope that this bill will not go through. Generally speaking, there is nothing to be afraid of: the digital future is coming anyway, whether the lawmakers want this or not. Looking at the trends and the general direction of the development of the “technology world”, one can easily see that the current copyright-based business models do not belong to that future.

What this bill might change, however, is the price we would have to pay for entering this brave new world. And it depends on the lawmakers whether the road to the Tomorrow will be an easy and fast one, or bloody and hard one. I hope (though, probably, without any reason) that the intelligent and educated people in Senate will overcome the narrow-minded conservatives, and that the money would be spent on development of the new business models rather than on enforcing a law which protects old ones.

Technorati tags: , ,

Tuesday, April 18, 2006

Office 2.0

It’s funny – quite recently I wrote about “Web Desktop” being a new concept, and today I’ve stumbled upon a whole blog dedicated to this very idea – but it’s called there “Office 2.0”. Well, I never was able to coin a catchy phrase or name – so, I have to admit, “Office 2.0” is much better as a buzzword than “Web Office”. Anyway, the blog is extremely interesting - doesn't matter whether you support the idea of moving totally to online space, oppose it or just interested in new and useful web applications.

Technorati tags: ,

Friday, April 14, 2006

Web Clipboard

Here is a small, simple, but quite useful tool - web clipboard: The idea of the tool is also very simple: you pick any URL that starts with (for example: , and it gives you a place to store some text or upload some file (up to 2 MB). Then from another computer you use the same URL to access your data. The data can be password-protected to prevent others from modifying and/or reading you record. And that’s it!

While definitely not fully functional clipboard (you cannot paste OLE objects there. Hmmm, and what about ALE? That might be interesting…), this tool might be very useful – especially if you work behind a firewall. Another interesting thing is that cl1p  provides a URL to directly download data (without getting through a web-page). This might help people write some utilities, which will use cl1p for data exchange – maybe even a full-scale web clipboard will become possible.

Nice and useful tool.
Technorati tags: , ,

Tuesday, April 04, 2006

"Web Desktop" and ALE

It seems like the whole Web 2.0 world goes faster and faster towards creation of a “Web Desktop”. All basic desktop applications are already there, for example:

One thing missing from this “Web Desktop” equation is application integration. On Windows I can easily embed images into spreadsheets, spreadsheets and images into documents and so on. Web 2.0 applications were missing this functionality – but now Zimbra came with a solution for this problem, called ALE (Ajax Linking and Embedding).

I think this is a very important, even fundamental step in the development of Web 2.0 and “Web Desktop”, and I am sure that the new generation of web applications, utilizing ALE, will appear soon, and will begin competing with the traditional office desktop applications. (And I want to play with this cool new technology too!)

Great job, guys at Zimbra! Technorati tags: , ,,

Thursday, March 30, 2006

SEOmoz's Web 2.0 awards

Two days ago announced their Web 2.0 awards. Speaking frankly, I have no idea how representative these awards are – or what exactly SEOmoz is? (SEO stands for Search Engine Optimization – but what that has to do with Web 2.0 I am not sure). The list of applications, however, is long and quite interesting. While I definitely do not agree with some of the awards, I enjoyed reading the list, and discovered quite many new applications there (well, new for me at least).

Technorati tag:

Tuesday, March 28, 2006

GDC 2006

Just returned from GDC 2006. That was my first GDC, and I was overwhelmed with almost every aspect of the conference. Crowds of interesting people, booths of multitude of companies, famous ones and unknown ones, having to chose from several equally interesting lectures and having only three days to enjoy this event…

Here are some of my impressions from GDC. This is not my notes – just some disjointed musings.

The biggest disappointment of GDC for me was Will Wright’s keynote speech. Everyone was waiting for the speech by the cult game designer on “What’s next in game design” (at least, that’s how it was declared in the conference schedule). He was assigned the largest auditorium – and the line of people wishing to attend his speech wrapped around the building. But, instead of sharing his ideas on game design, Will spent an hour talking about astrobiology and research he had done for his next game, “Spore”. I was angry because of the wasted hour and the lack of respect that Will demonstrated towards his audience.

“Spore” was, in some sense, one of the most talked about games in the conference. Several lectures were dedicated to different aspects of this game – which was strange for me, since the game was not released yet.

One of the hot topics of the conference was prototyping. There were several lectures directly dedicated to prototyping (I’ve listened to one – “Advanced Prototyping” – it was really good); and it also was discussed in many other lectures, from all possible angles – what to prototype, how, when and why?

A curious session named “Burn, baby, burn!” was led by Eric Zimmerman from GameLab and was nothing else but game developers ranting about different issues. Funny, but most rants were about ranting too much!

The indie games presented at the Independent Games Festival were really impressive. Several games that caught my eye:
  • "Braid" - a game exploiting the idea of "rewinding time", but adding some very unusual twists.

  • "Strange Attractors" - a game with one- button control. The game reminds a pinball table, where the player can control the gravitational forces between objects on the field.

  • "Ocular Ink " -gesture- controlled game with interesting system of gestures.

Another hot topic at the conference was emotional game design. It seems like emotions in the games are the next “big thing. It’s too sad that, while pursuing emotional aspect, designers often forget that the game, first of all, should be fun. Some of “emotional” games, presented at GDC, were quite boring (for me, at least).

Conference ended on Friday with a perfect finishing touch: “Video Games Live” show, where a symphonic orchestra was playing music from different video games, both old and new, while some video clips from the games were projected on a huge screen on the stage. This was truly a memorable event!

I am very happy that I went to GDC this year – and ready to go there next year!

Technorati tags: , , ,

Tuesday, March 14, 2006

Ma.gnolia - impressions

So, I spent significant time last week sorting my bookmarks in ma.gnolia. Here are my impressions so far.

What is good:
  • Overall page design. Nice colors, clean, easy to read and navigate. The ads are pretty unobtrusive.

  • Ability to have private bookmarks.

  • Import feature.

  • Nice auto-suggestions when adding tags.

  • If I got it right, the site uses some king of fuzzy search when selecting tagged items, and this is good – it helps when I have accidentally created similar tags (reference and references, for example)

  • Nice bookmarklet for FireFox – and Google toolbar add-on for IE!

  • Community features seem to be good – though I don’t use them as much.

Now, what I think can be improved:
  • Bookmark layout. Each bookmark occupies too much space – it would be great to have (at least, as an option) more condensed mode.

  • Too many page loads. To edit details of a bookmark, I need to go to the “Edit bookmark” page, then, after saving, I’m getting “Bookmark details” page – and if I was working on some tag, I have to go to “Tags” page again, and select the necessary tag. In-place editor would help a lot.

  • Tag list is not present on every page. As a result, an extra page load is needed when I want to open another tag.

  • Limited search options. No support for NOT, OR operators. AND operator is supported (represented by comma), but not documented (information from

And some more notes:
  • Currently Ma.gnolia has no API – but, according to the site, it is in works.

  • The “Page thumbnail” feature is cool, and there is an example of creative usage of this feature (, but, unfortunately, quite many screenshots are incorrect or outdated. In the FAQ, Ma.gnolia team explains: “Ma.gnolia uses a third-party service to create the small images of saved copies of web pages. Sometimes the service gives us an out of date image of a web page, or an image from another part of the web site.”

Overall, I am happy with ma.gnolia – but, probably, will check out some other services, too.

Technorati tags: , ,

Friday, March 10, 2006

Ma.gnolia team is great!

Wow, I’m really impressed by Ma.gnolia! When I posted my previous post, I didn’t expect that people from Ma.gnolia will react to it (hey, I didn’t even think they will read it!). So, imagine how I was surprised when a couple of hours after posting I found a reply to my post in my mailbox. The reply was from Ma.gnolia, and they offered me help with my import problem.

So, I wrote a message to them, and for two days the guys worked with me trying to troubleshoot my import process. At last they found the reason for the import failure (it turned out that Linkman produced incorrect bookmark file), and suggested another way to import my bookmarks.

And so, now I am a happy Ma.gnolia user! I am busy sorting and organizing my bookmarks now – not an easy thing to do, though the import process converted my folders into tags, so I’m not starting it from scratch.

I’ve never seen such a level of attention to users! Thank you, Ma.gnolia team!

Technorati tags: , ,

Tuesday, March 07, 2006

In search of bookmarking tool

Well, well, well… I am definitely not an early adopter – on the contrary, usually I wait for quite some time before trying some new technology. It happened already with RSS and with blogging – now I am ready to try social bookmarking!

To be more precise, I am not that excited with the social bookmarking – I just need some online application to store and organize my bookmarks. And the only reason I want it online is because I want my bookmarks collection to be accessible from both my home and my office computer.

So, what exactly am I looking for? I want the tool to:
  • Let me easily add bookmarks from any browser

  • Let me organize, annotate and search my bookmarks

  • Provide some reasonable level of privacy

  • Provide a way to export bookmarks – if I will decide later to change the tool

  • Allow importing my existing bookmarks – I have more than 500 of them!

For beginning, I decided to try two services: and ma.gnolia. I’ve created accounts in both. In, I found out that their import tool is currently disabled – so I didn’t go any further. Ma.gnolia allowed me to upload my bookmarks file, but then it told me that my bookmarks would be added soon. Six hours later my bookmarks are still not added – which I don’t understand at all. I understand that there might be some kind of queue, and that parsing a file takes some time – but not six hours!

So, I will wait a little longer – but, probably, I will try something else. After all, social bookmarking is so hot now – there should be some working tool out there!

Technorati tags: , ,

Wednesday, March 01, 2006

Why people like creating tools?

Call me a slow thinker, but it didn’t occur to me until today how beneficial for a career might be working on company’s internal management/organizing tools. (Not that I am doing such a work – I was just pondering about the fact that the management added yet another request/ticketing application to the existing zoo).

The work on such applications (ticketing, document management, request tracking etc) has some great advantages over any other development work:

  • The work is highly visible, especially to the management.

  • The work is not mission-critical: a bug in the ticketing application will cause just some trouble. The same bug in a user-visible application might become a disaster.

  • Management usually just loves this kind of tools (probably because the tools provide them with feeling of control and organizing power).  Managers pretty soon become dependent on the tools, and the person who creates and maintains them swiftly becomes a VIP.

  • There is always a space for improvement – so you can work on the same application for as long as you like.

  • Deadlines and schedules are usually quite flexible.

  • You can use any cool technologies you like – as long as the application works, no one really cares how it was implemented.

This revelation helped me to get answer to a question which was intriguing me for some time: How come that the number of such systems in my company keeps growing despite all attempts to reduce it? And it also sheds some light on another question, which might seem totally unrelated, but, as I see now, touches the same principle: why people around the globe spend so much effort on creating and improving GTD and other so-called “productivity tools and systems”? The same reason: working on the systems and tools which purpose is to help us doing some work is infinitely more pleasant than actually doing the work…

Technorati tags: ,

Thursday, February 09, 2006


Following a post on, I found a very interesting site: The site is a community for Java & open source skills assessment. I joined it, took couple of tests, and it’s cool!

The site uses a very interesting (and, I would say, unusual) system to promote participation and, at the same time, prevent cheating. All tests are free – in terms of “real world” money. But most of the tests cost some “contribution points”. Members of the site get contribution points for submitting new questions and commenting on the existing ones. The price for the tests is realistic, but it will definitely require quite some involvement in order to achieve high degrees of certification.

Of course, it will require some time for JavaBlackBelt to become as recognized as BrainBench. Most of the tests are still in beta stage, and even stable tests have some errors. But, since the site is community-driven, it will get power very soon. Definitely a “must-visit” for any Java programmer.

Technorati tags: , ,

Tuesday, January 31, 2006

Pocket PC - impressions after the first week

So, I spent the first week (or a little more) with my new Pocket PC, and here are my impressions.


  • The screen: it is nothing short of gorgeous. Reading from this screen is a pure pleasure; games look just great.

  • File system: it’s good to have at last a normal file system, to be able to easily put any files on my handheld (Palm didn’t want to work with unknown file types – at least, without some special utilities. I’ve heard that it’s no longer an issue with more recent Palms – but I had to live with this).


  • No vibration. I don't understand this - it always seemed to me that vibration alert is one of the most useful features for a PDA. I just loved being able to switch my Palm T2 to vibration mode, and safely get my alerts while being at some long meeting. Why didn't Dell include this feature? Anyway, I miss it. And with the standard reminder sounds being soft and short, this becomes a real problem for me.

  • Synchronization. I think my situation should be pretty common: I use Outlook as an organizer at home and in the office. I want to be able to synchronize my PDA to both of them - but I want to be able to prevent some of my items from being copied to the office Outlook. With Palm that was easy. With my PPC, I didn't find a good solution yet.

  • Stability. I don't remember having so many glitches with my Palm. Nothing serious - I mean, nothing which can't be fixed with a soft reset - but annoying. Though I am currently in search for PPC equivalents of my favorite Palm programs, so I'm installing and removing a lot of software, and not all of the programs work well with WM5 - that might be the reason. But still, overall feeling is shaky.

  • ActiveSync. I don't know what made Microsoft switch to using TCP for syncing PDA with desktop. Probably, they had their own reasons. But as a result ActiveSync causes problems with firewalls - I was unable to make Sygate firewall work with ActiveSync.

  • Responsiveness. I know, this is a common problem of people converting from Palm to PPC - but I have to say it: Palm was much more responsive! Sometimes the slight pause between click on a control and the reaction just drives me crazy.

Don't get me wrong - I am not going to discard my new PDA just because of those issues. I probably will find solution for some of them, and will get used to others. But, still, the impression after one week is less than excellent.

Technorati tag:

Thursday, January 19, 2006

Good bye, Palm! Hello, Pocket PC!

Ok, so, at last, it happened! After using Palms for 8 years (or even more – I’ve bought the very first model, the one without the backlight) I betrayed them and switched to the Pocket PC. The reasons for this heinous act were multiple, but they all boiled down to one: for last couple of years I was looking for a new Palm, and was completely disappointed with the new Palm devices.

I remember several years ago I was making fun of my PPC-enthusiastic friends. I laughed when they were carefully putting their bulky devices into special cases, while I easily and elegantly slipped my sleek Palm into my shirt pocket. I laughed sarcastically at the stories about registry problems. I criticized ugly and cumbersome Windows CE interface, showing my friends the simple beauty of Palm.

But time flies – and soon I’ve noticed that PPCs are becoming thinner and smaller; that the screen of the newest devices supports VGA resolution; that the UI becomes more and more elegant. Then my friend bought a Pocket PC which had both WiFi and Bluetooth (my palm had only Bluetooth), slots for both SD and CompactFlash cards (mine had only SD slot – and at the same time the dimensions of his new machine were just a little bit larger than the size of my beloved Palm.

And Palm Inc…. Well, I don’t know what they were thinking about. Probably, they were too preoccupied with Treo – which is really a nice device, but I don’t like combining phones and PDAs together. Anyway, for quite some time their newest and most powerful devices didn’t support WiFi (all but a few models), didn’t provide dual flash card slots… And slowly, I stopped believing in Palm.

Well, now I’ve got Dell Axim x51v. I know, that quite recently Palm has released Palm TX – the model which has both WiFi and Bluetooth. It still has only 320 x 480 display, supports only SD cards – but I hope that people at Palm recognized their faults and soon will release new models which will be on par with Pocket PCs. Then maybe I will come back… And meanwhile I will have to learn how to use my new gadget.

Technorati tags: , ,

Thursday, January 12, 2006

Design flaws + unneeded creativity = trouble

Two examples, found in the same day:

In the database, a record for some object has a field for its name. At some moment, some developer wanted to add comments for these objects (“generated automatically…” or something like this). Unfortunately, there were no field for notes and comments. A burst of creative thinking  – and the comments are now appended to the end of the name. Which means that, since the users usually do not want to see the comments, the results returned by a SQL query should now be post-processed. Which is not always easy – sometimes there is no good place to insert this post-processing.

Another one: the same database, but different table. The table holds data for some objects, which are divided into several categories (actually, a hierarchy of categories). The categorization feature was added later than the table was designed, so the table doesn’t have any field to mark the place of each object in the hierarchy of categories. The developer didn’t think about the necessity of such a field. The users needed it, but, instead of asking the developer to add it, they decided to be creative and invented their own naming convention, so that the name of each object now has some keywords embedded. Everyone was happy – until I had to design a report, where the data from this table would be sorted according to the categories…

Creativity is a great thing. But sometimes I just want people to stop being creative, and simply ask for help instead.
Technorati tag: