Archive for April, 2008

The world’s most…

…scalable, available and most reliable database1:

*** ERROR from SQL [-1311]: The text of the view definition is 2018 bytes too long.

*** ERROR[15037] The maximum fragment length of a statement in SQL/MX is 4096. Please retype your statement with a newline embedded in it.

1 – according to its developer

Random rant

Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius — and a lot of courage — to move in the opposite direction. – Albert Einstein

My relatively short “professional career” has already taught me what “enterprisey” software means. I’ve known this word before, I’ve seen it used to describe systems that suffered from bloat and lacked relative simplicity. If software is hard, then creating “simple” software is even harder.

Why do people like complicated solutions? Why complex object models get introduced in simple applications that could be more intuitively expressed without them? Why monsters that internally convert one XML data format, to another and another exist..?

There’s so much to see and learn from!

QtConcurrent

I’m not going to discover America, but it looks like the evolution of (personal) computers in terms of raw CPU power and GHz values has slowed down to a crawl, while the overall processing power increases thanks to additional cores. Intensively parallel computing may be an exciting vision, but writing software that could make use of many CPU cores is challenge. It’s not a secret that multi-threading is harder than sequential programming, with all related algorithmic and hardware problems like deadlocks, race conditions, cache ping-pong, locking contention and so on – no wonder some people predict that Erlang is going to be the next Big Thing – concurrent programming based on message passing is more scalable and seems easier to get right.

Having all these things in mind, I’ve recently stumbled upon an interesting addition to the Trolltech’s Qt library (which I like very much): QtConcurrent is a project that makes multi-threaded programming with Qt much easier (on all supported platforms!). Not only does it implement asynchronous function calls and Google’s Map-Reduce algorithm, but also, according to the website, is capable of determining the number of available processors/cores and adjusts the number of threads accordingly! Neat.

I’m definitely going to use it in a little Secret project of mine (WIP).

“Wesnoth” in Google Summer of Code 2008

This is already old news, but Google Summer of Code 2008 is underway and this year “Battle for Wesnoth” is a mentoring organization as well! This is very exciting to everyone of us and I really can’t wait to see what project students will be able to come up with this year. The number of slots isn’t known yet, but we hope to get at least 3 projects rolling…

There’s some development on the AI front waiting to happen, mainly around the newly integrated (trunk only) Formula AI branch – an attempt to create a domain-specific functional programming language, that would enable content developers to tweak AI behavior in many new, interesting ways. Another project could be teaching the AI the most efficient opening moves for the set of standard multiplayer maps, similar to what chess programs have been doing.

Other possible developments include reimplementation of the statistics gathering engine (old one written by Rusty Russel is available at http://stats.wesnoth.org) and creation of a fully-fledged campaign editor – either as a stand alone application or integrated with the editor as it is now.

All of this makes me really anxious to see how much work will get sponsored by Google, especially since a number of students have already got quite involved with the project.

I’m alive

One quick note: the fact that I’m not posting here as much as I’d like to isn’t due to the fact that I’m dead or bored with the general idea of blogging, but should be attributed to me getting too busy with boring stuff like work. However, I realized (not the first time in my life) that I should try to find some time for other activities as well, so I started cycling and working on some small projects a little bit  recently.

Hopefully this change will result in new entries Soon™.