This is a bit of a personal entry, so please skip if you are not in the mood.
Today marks my one year KDE SVN account anniversary. I wanted to celebrate this a bit because it has been a difficult year for me and I would like to thank the community for the support during the more difficult moments (especially the CeBIT 2009 crew).
(Disclaimer: I run OpenSUSE from my external HDD when I need Linux (not often), just updated to 11.2 and graphics performance (my reason for using Windows) improved alot!)
A week ago I needed to do two presentations with my project group about the work we did in the minor program ‘Language and Speechtechnology’ in which I am currently enrolled.
After an introduction in LaTeX during the evenings in the appartment during this years’ CeBIT (Thanks Stefan Majewsky & Felix Lemke) I decided to write all my documents in LaTeX, the sheets for the presentation I created using Beamer.
My project group does not know what LaTeX is and they said: “that’s convenient, a progress bar in you presentation PDF’s”. One of the guys then opened the PDF in Adobe Reader and did not see the progress and was asking why that was. I told the guy (who has a bit of a grudge against KDE) that presentation progress is a function in Okular which AR does not have. The rest of the group then said: “Let’s do the presentation using your laptop and Okular!”
It’s just one of those small examples, slowly but surely these guys are getting more in favor of KDE and when I reboot into OpenSUSE they can work with it without problems (both physical and emotional )
It is my way of getting people to use KDE, replace the stuff on the bottom (KWrite instead of notepad, Okular instead of AR, Kolourpaint instead of mspaint). These applications are really similar across platforms and people get excited when they start to notice the small differences and want to try other KDE software as well!
The packages are compiled optified already, so untarring happens to /home/opt/maemo/usr/*
Installation Instructions
N900:
(this will also remove the ActiveSync stuff when you have the Maemo Summit N900 software and you cannot reinstall this currently, so if you need ActiveSync: do not continue)
1. Transfer the *n900.tar.gz to you device
2. Enable the extras repo
3. Install rootsh
4. start xterm
5. ’sudo gainroot’
6. ‘apt-get remove libqt4*’
6. ‘cd /’
7. ‘tar xzf .’
8. ‘vi /etc/profile’
9. Edit file to have ‘export PATH=”/opt/maemo/usr/bin:/usr/bin:/bin/$PATH”‘ & ‘export LD_LIBRARY_PATH=”/opt/maemo/usr/lib:$LD_LIBRARY_PATH”‘
10. Switch off and switch on device.
11. In xterm you can now start something like ‘designer’ (I left some stuff in there :-$)
Scratchbox:
1. copy the file to a location reachable from within your FREMANTLE_ARMEL target.
2. ‘cd /’
3. ‘fakeroot tar xzf .’
4. ‘vi ~/.bashrc’
5. Edit file to have ‘export PATH=”/opt/maemo/usr/bin:/usr/bin:/bin/$PATH”‘ & ‘export LD_LIBRARY_PATH=”/opt/maemo/usr/lib:$LD_LIBRARY_PATH”‘
6. Log-out and re-log-in into your scratchbox (or ’source ~/.bashrc’)
(I have no idea how to create Debian packages and am currently mostly on Windows, I compiled all of this on my external HDD, so forgive me the stupid packaging method)
The packages on N900 still contain ‘qmake’ but this doesn’t work since it is compiled for x86.
And then an image of something actually compiled for the device:
Pong for Uni wall running on N900 with Qt4.6
This app will run on my University’s LED-wall (3×13 meters big) controlled by my N900 during the week, I’ll make a video!
On a busy day where a lot of stuff happened (an information sign at a railway station crashed: ‘Mozilla Firefox encountered an error’ (it looked like a SuSE GNOME desktop) and where I did ‘rm -fr *’ on my code folder (luckily I use SVN for my personal stuff)), I did my daily 5.5 hour travelling again.
Today the big plan was: ‘Get Gluon to compile on Windows’. This is the result:
KGL on Windows
Most KGL-stuff is there (I needed to disable KGLPoint and KGLProgram/KGLFx because of compile errors, I’ll fix that later), KAL & KCL involve a bit of dependency-hell/Linux-specific stuff, but overall the KGL performance is good.
Another thing where Win7 + KDE is a super-combination , the desktop globe as desktop .
The next step is GLOGLES (Gluon OpenGL ES) were the plan is to strip the KDE-dependency from Gluon to be Qt-only and support OpenGL ES, so it can run easily on Maemo!
More on that will hopefully come from the people going to the KDE Games dev-sprint which will be held coming weekend in Munich.
P.S. Does anybody know if there is an #ifdef for Maemo? It would be nice to integrate the vibrate function, since people on the Maemo IRC channel told me using the vibrate function is possible through dbus…
Nah, just kidding. tsdgeos fixed some bugs in KSquares today with minor assistance from me. He already posted about how to massively increase the speed of the drawing (first remove the QGraphicsItem before deleting it) and after that we got to work on the AI.
The AI was causing major leg when deciding which square to fill when there were no save moves left. on a 50×30 grid it would walk through a for loop 2.250.000 times per move. There were some improvements made with memory managing this and now it runs pretty smoothly, it still needs some time to think of which square to fill, but making a chain after that is lighning fast.
I needed to show this obviously, so I rendered a screencast with 4 AI players on a 50*30 grid. (I increased the max AI moves to 25 moves/s, there is a timer to not make it instantaneous, normally the maximum speed is 8 moves/s).
The next step is getting all the GGZ stuff to work everywhere and host a global KSquares tournament
Edit: video does not show on Planet KDE, it can be found: Here
I just woke up, started my Quassel and saw a red line in #kdegames saying: ‘have a look at the planet ’. So I did.
This gave me two pretty good articles. The first one by Albert Astals Cid [1] about a bug I files after LinuxTag Berlin where we were playing KSquares on my touchscreen and found it highly annoying that computer players cause a lot of lag when they do a move. To see where this came from I turned my ’show paint’ desktop effect on and saw that almost the whole game screen is repainted after every move. Even when the update which is called should only redraw a small QRect. (that was the historic background)
Then the blogpost by Zack Rusin [2] about how the painting in Qt works with the different engines gave a lot of background info on how this all works. What I find great news is his closing sentence: ‘The quicker we get the rendering stack to work on top of OpenGL the better off we’ll be.’ I never made a secret about being a big supporter of OpenGL, so this is amazing for me.
Then the sad part: as posted by me during the week I’m on the Redmond OS now (mainly because of Raster video performance compared to the 2.6.27 Intel driver shipped with OpenSuSE).
I immediately fired up KSquares to test what it would do:
KSquares OpenGL Graphicssystem
KSquares Raster Graphicssystem
This does not look too good yet. To top it all off: deleting a QWidget when using the OpenGL graphicssystem crashes the application (tested with Kolourpaint, KSquares & Dolphin, my own 3 line app which only creates a widget does not crash however (odd)).
The biggest problem there is for cross-platform compatibility is however the Redmond OS. Everything should work. but the OpenGL header shipped with the platform SDK’s is only the OpenGL 1.0 specification. They made a call wglGetProcAddress to get newer extensions (for example it does not detect if GL_ARB_TEXTURE_NON_POWER_OF_TWO is available automatically, which is supported in almost all hardware from after 2000, even for mobile phones). So here we have to extend Qt & KDE core a bit (this extensions has to be available to be able to use 32×32 or 48×48 pixel icons for example).
So I’ll dive a bit into graphicssystems today to see what happens ;-)
Now I’m getting up to speed with Windows testing/fixing etc. I start to notice a few small things:
- Some applications do not set an application icon: on Windows the icon has to be ‘baked’ into the .exe file to be shown. I fixed that for JuK and this morning I switched KWrite over to it’s Oxygen icon too.
The macro’s:
KDE4_ADD_APP_ICON(sources “${CMAKE_CURRENT_SOURCE_DIR}/<iconname>.png”
or
KDE4_ADD_APP_ICON(sources “${KDE4_INSTALL_DIR}/share/icons/oxygen/*/apps/<appname>.png”
work perfect for this!
- Some applications cannot open/save: on Windows /C:/ maps to http://C:/ because of a global OS shortcut. Last week there was a fix in Ark for that and just now me & Christoph Feck fixed it for Kolourpaint.
There is an easy way to fix the second bug with not being able to save/extract files in code: switch from KUrl::path() to KUrl::toLocalFile(). This should work on Linux too.
Christoph did a grep on path() ( http://kde.pastebin.com/m7752230f ) which returns 1917 LOC’s in KDE. So if you are an application developer and know for sure that it will always only get local content: please change it to toLocalFile()…
P.S. if you need both online & offline content: this works now in trunk/KDE/kdegraphics/kolourpaint/document/kpDocument_Save.cpp get inspiration from there
In an effort to gain more ‘nerd points’ (discussion we had at Gran Canaria Airport) and because I was bored, I decided to test something to see how far I would get.
The following was the experiment:
See if I could compile KDE with Visual Studio 2010 beta 1 on Windows 7 RC x86-64.
I can say now: ‘you won’t get far’ .
After installing Win7 I decided to install VS2010, installation worked out fine (except for the warning during the install: SQL Server 2008 is not compatible with Windows 7, install SP1 after this installation) But then the startup went horrible: the screen did not get rendered, everything stayed black…
This caused me to file a bug with Microsoft and work with NMake & cmd.exe.
The emerge scripts worked like a charm and installed the binary dependencies, but then there was compilation:
CMake x86 does not work with x64 compiler tools, the ‘test compiler’ application causes all kind of undefined reference errors.
I switched to x86 compilation because of this, and there came a curious error when compiling dbus: Microsoft is finally conforming to standards with the new Visual Studio, so this hack from dbus:
/* Make use of the fact that the WSAE* error codes don't
* overlap with errno E* codes. Wrapper functions store
* the return value from WSAGetLastError() in errno.
*/
#if defined(EPROTONOSUPPORT) || \
defined(EAFNOSUPPORT) || \
defined(EWOULDBLOCK)
#error This does not look like Win32 and the Microsoft C library
#endif
does not work anymore (the Microsoft C library is suddenly not the Microsoft C library anymore…).
I decided to give up for now and just installed VS2008 with the Win 7 Platform SDK, it is now compiling Qt and then I can put my marble desktop background back in a few hours
Last week I decided to switch sides on something in my life. My life consist of a lot of switching sides. But this one is KDE related:
I switched back to Windows.
I think many people on the planet will now think that I’ve gone crazy, but for me it has advantages too (video performance, run 3ds max)
I obviously still run KDE now (trunk compile) and I cannot even begin to understand how I could have ever worked on Windows without using KDE. I finally understand why the German translation for Desktop Environment translates back to ‘Surface’, while in Dutch it translates back to ‘Surrounding’. KDE really is a surface when used in Windows and greatly improves the workflow (at least mine).
It still has some bugs (The ThinkPad TrackPoint scroll function is not forwarded to Qt scrollarea’s, so I can’t scroll, Ark tries to create files in /C:\, which Windows automatically opens in the browser as http://C:\ and deleting files in Dolphin only works on the second try), but in general I can recommend people stuck to a Windows PC/Environment to replace the standard Windows applications by the KDE equivalent!
I though it might be convenient to make the taxi sharing for the way back. It was supposed to be on the attendees list, but that was a bit hard to find. So….
I made a new page on the wiki under ‘8.5 other useful information’->’Taxi Sharing’ : Link Here.