Qt 4.6 notice

Just a quick notice for anyone out there who builds Palapeli from SVN: It does now officially require Qt 4.6. I’m in the process of cleaning up the animation code, and esp. the new QGraphicsObject class in Qt 4.6 helps me very much in this regard.

Update: I’ve also updated the Palapeli compilation guide. If you’ve used this guide to build a Palapeli from SVN, please do the following in the “build” directory:

sudo make uninstall

Then delete everything and use the guide to create a new checkout. Stuff has changed too much. Please note that the new guide makes you install Palapeli into the standard system directories. This should work around the problems people are having with slicers not found etc.

2nd update: By the way, I’ve also changed the puzzle file format. Instead of BZip2 compression, I’m now using GZip because this reduces loading time on my system by about one second for a medium-sized puzzle. (File size is about the same.) If you’re having problems with puzzles that don’t load (sorry for the missing messagebox that tells you when a puzzle file is broken), rerun the make-puzzles script and “sudo make install” everything again. This should fix your problems.

Leave a comment »

Palapeli: Screencast!

In the last two weeks, I’ve added quite some features to Palapeli which are hard to impossible to show with screenshots, so I’ve decided to make a screencast for the very first time. recordmydesktop worked quite well, and I found a microphone in one of my junk boxes.

Hm, it seems like WordPress.com does not like embedded flash objects, so you’ll have to use the link to the 1st Palapeli screencast.

Comments (4) »

Palapeli enters Bugzilla

The sysadmins have created a Palapeli product on Bugzilla. This means that you can now start to file bug reports and feature requests for Palapeli in Bugzilla. As a start, I’ve imported my current todolist into Bugzilla, which translates into 18 reports. The most interesting ones are:

Add more feature requests and bug reports if you like.

Leave a comment »

How do you play jigsaw puzzles? [1st update]

I’m searching for possible ways to improve the user experience of Palapeli’s puzzle table. Problem: I do not know which features would help the users. Solution: Ask them (i.e., you).

After all, Palapeli is about replicating in virtuality a game that exists in reality. Everybody who plays a jigsaw puzzle on his PC will automagically try to use the same techniques and tactics which he uses to solve jigsaw puzzles in reality. For example, it is very common to search for edge pieces first.

Do you have other techniques? If yes, please don’t be shy, and leave a comment. I want to map as much as possible of your techniques to convenience features in Palapeli.

Update: A first summary. Most people say that, apart from searching for edges, they’re looking for pieces with similar colors and by level of detail. As one commenter puts it, “it all boils down to divide-and-conquer”.

Also, there has been quite some feedback on the puzzle table. Because quite some stuff occurs multiple times, I find it easier to answer them once here:

  • People are concerned about how zooming is implemented, and how pieces are limited to an certain area. I’m concerned, too. It’s becoming more and more obvious that we need a better solution, and I’ll see what I can do about this.
  • An annoying “feature” of Palapeli is that pieces are spit out randomly at the beginning, and one has to clear a part of the puzzle area to get some space for the actual image. I’ve made a quick hack-style fix for this: The pieces are now distributed only on one half of the puzzle table. A better solution will appear when the zooming stuff improves.
  • Some people would like to change the background texture. That’s possible: Right-click on the puzzle table. As you see, this is extremely non-obvious, I’ll put this interface into the Settings menu very soon.
  • The request for rotating pieces has occurred quite often. I’m generally positive towards it, because it gives a nice and easy way to introduce a difficulty parameter.
  • Some want a preview of the picture. I have a nice idea for this, but this will strongly correlate with some other features which I cannot add before KDE 4.5.

Thanks for your input. I’m currently collecting input from various sides (the kde-games-devel mailing list is also quite active currently), and evaluating possible solutions to your requests.

Comments (16) »

Windows 7, round 1

Disclaimer: I’m writing the following not as a member of the KDE e.V., but as an individual computer user. As usual, I’m only expressing my very own opinion. Though this should be clear to anyone reading my blog, I’m stating it explicitly now because there have already been more than enough flamewars because of misconceptions and misunderstandings, esp. when it comes to operating system debates.

When Vista had its public beta, I downloaded and installed it on a non-production machine. “Non-production” was a very good idea, because it ate the partition table. I’m not sure how much this has influenced my switch upgrade from XP to Linux some months afterwards. (I was surely also influenced by my first few contacts with Vista, which are very well described by the word “horrible”.)

So I was still running an XP system on my PC at home (mostly for my scanner, which does not work under Linux, and for games that refuse to run under Wine). Eight years after the release of Windows XP, I thought it was time to finally retire XP, and move on to something more stable and secure. (Yes, I know, Linux… but it has to be a Windows for aforementioned reasons. Actually, this machine is a dual-boot with Arch.) So I decided to give Windows 7 a try. Because my university is enrolled in Micro$oft’s MSDNAA program, I could recieve a free copy and license of Windows 7.

I thought that the MSDNAA program was partially meant to attract students from the non-Windows realms to consider the switch. That is, until I wanted to download Windows 7 from their webpage. All I got was “Downloader for Windows 7 RTM.exe” (and the license key). Yuck!

Anyway, let’s see if Wine eats it. Wine wanted to install Gecko, which it uses as a replacement for the Internet Explorer engine that can be used by third-party programs on Windows. Wine crashed. Later I found that the program consists of an Internet Explorer window without interface (think QWebView) that downloads some ActiveX controls (yuck again!) to do the actual downloading. The advantage of this system is that the download can be paused and resumed by simply closing and restarting the program, the disadvantages are about anything else.

Glad am I that I still have a Windows XP installation. This one could execute the Downloader.exe and download Windows 7. I ended up with a 2,4 GB ISO, which I burnt to DVD under Linux. (Windows does not include the necessary tools. Of course.)

Up to now, I’ve already spent three hours of work on an offer that is trying to convince me that Windows is better than Linux. No comment.

Installation of Windows 7 went quite smooth, with the only WTF that it needs to reboot three times, while I have seen Linux distros that install without even a single reboot. I had expected that it would eat my Grub installation in the MBR, but that’s normal (and restored in under three minutes with a Linux live CD.) Actually, I was (for the first time in the process) positively surprised, because Windows did not expose its usual imperialistic behavior when it comes to hard disk partitioning. It showed me a list of all partitions, I selected the Windows XP one, formatted it and clicked “Install”. So far so good.

The desktop showed up in non-native 1024×768 resolution, and with compositing disabled. I’d expected this, because the NVidia video driver is missing. Because my home PC is actually an early 2006 notebook, I expected suitable drivers not to be available, but Dell offered me Vista drivers, which worked very good. On my way, I found another WTF: On the NVidia driver download page, I have to select the exact model of the graphics card, while under Linux one driver serves all. Why can’t Windows be as simple as Linux?

The next possible surprise: The video driver was the only driver I had to install. Under Linux, I expect everything on this notebook to work out of the box, but on Windows, only one missing driver is astonishing. XP required about a dozen driver packages to be installed in a particular order (unless you use the recovery partition, ruin your Linux dual-boot on the way, and get all the nice extra programs that the do-gooders at the notebook manufacturer donate to you; you know what I mean). Another thing which surprised me was Microsoft Paint, which seems to have had its first bigger update since Windows 95.

Of course, something was missing. An open-source browser. An archive reading program. A good text editor. Long story short: KDE was missing. Next surprise: The kdewin-installer has progressed very well (I actually thought that development speed had lowered because of manpower problems). The package list in the simple mode is a bit long because (for some unknown reason) all apps are grouped into module packages, except for kdegames. Also strange: The KDE stuff does not show up in Windows 7’s start menu. I blame this on Windows 7 changing conventions, because this used to work on XP. Adding the bin directory of the KDE installation folder to the $PATH variable solved the problem for me, I’m more used to launching progs with Alt+F2 Win+R than with the start menu.

My conclusion: From my first observations, Windows 7 is definitely the best Windows ever (I won’t judge on how hard it was to achieve this position). However, I do not consider the graphical presentation mature. I mean, I have Aero Glass and such enabled, but to me, Windows 7 feels like a dozen apps, developed in parallel, and combined for the first time only one week before release. There is by far not as much a common style as in KDE.

Okay, there is this glass look all over the place, but the conceptual basis is not much more. The taskbar buttons have nice glow-on-hover effects, everything else doesn’t. The windows have nice compositing effects, the desktop applets don’t. And each of the desktop applets looks, and behaves, different, though there are only nine of them. (Compare this to the dozens of applets shipping with the KDE Software Distribution. And by the way, the desktop applets are not scalable, and of course always too small.)

Using KDE, you do not have to have a widget style that matches your Plasma theme, or suitable color schemes. It’s the behavior and the subtle design elements that make everything feel like a coherent whole. In my opinion, this is absolutely missing from Windows 7, though this should be a key selling point of Windows as a platform. (Many people buy a computer based on the presentation in the computer store, and also based on what friends tell them about their own experience.)

Micro$oft has hundreds of developers working full-time on the user interface, while KDE apps are usually developed by only one or two people at a time, most of them working in their free time as a hobby. Micro$oft has dozens of the best-paid designers in the world, KDE has a handful of mostly freelance artists. Taking all this into account, Windows 7 is a shame for the Microsoft developers, because it’s in my opinion easily surpassed by KDE in terms of polish and design.

The fine print: Just in case someone wants to read this into my post, I am in no way saying that KDE is perfect. I am also not saying that Windows 7 just sucks. (I’ve actually enjoyed using it up to now, esp. when compared to XP and Vista.) What I’m saying is that KDE is far more close to perfection than Windows 7 when it comes to polish, style and taste.

P.S. The rumors about 16 GB installation size of Windows 7 are exaggerated. The Professional edition needs about 9 GB.

Comments (48) »

Palapeli: Creating puzzles

Since starting to rewrite Palapeli (three weeks ago), it was not possible anymore to create new puzzles. This last and most important feature is now back again.

Proof that the last missing feature has been added

Proof that the last missing feature has been added

And here’s a call for participation: The layout of the puzzle creator dialog (which comes up when you click that button) is far from optimal. Please try Palapeli, create some puzzles, and if you can come up with a better design for this dialog, please write back. Thanks in advance!

Comments (5) »

Palapeli: A new, fancy way of starting puzzles

I was uncomfortable with the current way of starting puzzles for quite a long time. The old list view had a play button and the piece count displayed at the right, so if you had the Palapeli window maximised (which is a good idea for playing), the play button is very far away from the description and thumbnail. Fitt’s law says that’s not a good idea. I hope that the new way is a good idea: The thumbnail turns into a play button when you hover the puzzle item.

New Palapeli puzzle list (first item is selected, second item is hovered, i.e. the mouse cursor is over it)

New Palapeli puzzle list (first item is selected, second item is hovered, i.e. the mouse cursor is over it)

Comments (5) »

Palapeli: On the way to “social puzzling”

Because people always ask when I forget to make it clear: Palapeli is a jigsaw puzzle game which I’m preparing for KDE 4.4. Now that we have that out of the way:

Today, I’ve spent hours to break Palapeli, put the pieces together again (puzzle pun intended), and take care that it does the same things as before. Such activities appear quite senseless to outsiders, but programmers know that this is necessary from time to time.

They call it “refactoring”.

Of course, I have a bigger aim. Currently, the only source of puzzles is the local library, but I want to make more sources accessible. “Within the reach of your fingertips”, like some people describe it. For this initiative, I’ve chosen the buzzword “social puzzling”. Actually, what I want to do, is quite similar to KNewStuff, but I’m not completely sure whether KNewStuff provides all the technical foundation that I need. (If it is the case, the current architecture of Palapeli allows to add KNewStuff integration later on.)

My plan: The current puzzle library is basically a list of puzzles (or, more detailed, a list of URLs to puzzle files and a metadata cache). A list of puzzles could be provided anywhere, also on remote sites, as a type of “puzzle feed” (similar to a RSS feed). Such puzzle feeds can already be read by the Palapeli::ListCollection class, but there is no interface yet to display and use them. This is because I’m not sure about the best way to present them to the user.

So what is certain by now? Palapeli 1.0 will ship with puzzle feed functionality, though it will be hidden a bit. It’s not sure how puzzle feeds will be generated on the server side. And it’s not clear yet for what we’ll be able to use this functionality at the end of the day. It’s a big experiment, and I’m quite excited about it.

Comments (6) »

Say hello to the ModelListModel

Preface: In my new series “Say hello to…”, I regularly present you additions to my Git-based collection of useful helper classes and smaller projects (see its very simple homepage for more information).


Yesterday, you saw me debugging models. Today, you see the result: I’ve implemented a model that lists other models.

The ModelListModel in action

The ModelListModel in action

Perhaps you find this useful for your own application (I’ll use it for fantastic new features in Palapeli’s puzzle library). In an ideal world, I would have implemented a yet more generic model, in which one can “mount” other models at arbitrary positions, but from what I know about model/view programming, this is very hard to do right (i.e., without massive memleaks).

Comments (6) »

Debugging models is hard work

It’s fifteen minutes till midnight and I’m sitting here and analysing pages of boring debug output. What a life. (At least I chose it freely.)

debugging-models

Some of you might read from this that I’m working on model/view stuff currently. I hope to have visible results tomorrow.

Comments (5) »