Harald Fernengel
KDE
 in KDE
 on Saturday, May 30, 2009 @ 14:47

Whenever I try to play around with KDE 4 on Mac OS X, I find myself mostly compiling and installing 3rdparty libraries. Fink and MacPorts ease software installation, but have one disadvantage: Software packages that are already available on Mac OS X are installed again, sometimes differing only in minor versions. I do understand the philosophy behind it - both projects want to ensure maximum consistency and quality. However, it takes time to compile all the dependencies (e.g. perl5) and it might lead to symbol clashes (Qt links to the system’s libiconv, some other KDE dependency to MacPort’s libiconv - boom).

So, to jumpstart things - here’s my repository of dummy Macports portfiles which will force MacPorts into using the system’s libraries. Of course, this should be used with care, will definitely ruin lots of MacPorts packages and is completely unsupported by the MacPorts community. However, it does get shared-mime-info (required for kdelibs) onto your machine in record time.

So, download the Qt/Mac binaries, get the “MacPorts dummies” and be able to hack around on your favorite KDE application in less than a day :)

As for the daring x86_64 Mac Cocoa users - all dummy portfiles are universal. For compiling kdepimlibs, you need this patch to get an universal build of the boost libraries.

Happy Hacking!

Thiago Macieira
Uncategorized
Rants
Posted by Thiago Macieira
 in Uncategorized, Rants
 on Thursday, May 28, 2009 @ 21:32

So I’m sitting here in my hotel room in Helsinki, after a quick flight from Oslo. In fact, the flight arrived early, and that’s a first time that it has happened for me. I was in the taxi on my way to the hotel 5 minutes before the scheduled time of arrival for the flight.

Anyway, so I got to hotel, had a shower, turned the laptop on, and logged on to the wireless service provided by the hotel along with the phone company. Then I connected to the Nokia VPN and my own VPN to download my emails. After reading said emails, I hopped on to IRC.

As a helpful chap that I am, I saw someone posting a link on the #qt channel to some code of theirs they were having problems with. I clicked the link to see what the problem was. The bizarrely-sized progress window in my KDE 4 popped up, with the progress bar indicating no progress at all.

“Odd,” I thought, then I clicked Cancel and tried again. No such luck… “Maybe that website is just not working from here” I pondered. I decided to try one famous search engine whose reminds us of a very large number. And again it didn’t load.

I was having network trouble.

My first reaction was to test whether the Nokia VPN was still on. It was dead, but vpnc had not disconnected, so the traffic to the Nokia VPN wasn’t going anywhere. I disconnected, but still no Internet.

A couple of minutes of searching, I found out the reason:
cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.0.0.6
search example.com

(This is not edited, the hotel internet really gave me a domain search of “example.com”)

Can you guess what the problem was?

Let me give you a hint: my blog six months ago called “The Great Crash of 2009” addressed this very subject.

The DNS server that the hotel network gave me is on the same network as my home VPN (because my home DHCP server is the ADSL router by my Internet provider). So all my DNS queries were timing out, because they were being transmitted over the VPN to an address that isn’t active. (I think it’s assigned to my N95 when I’m at home, but I’d have to be home to check)

This problem I had is probably quite common, I imagine. I mean, the hotel I’m in isn’t exactly in a touristic spot. It’s probably sought more by business travelers, who, like me, come with a laptop and VPN access to their offices. How many of them reroute 10.0.0.0/24 when the VPN is active? I would bet quite a few.

So we’re 6 months into the year of the Great Crash because IPv4 runs out. And we’re still not using IPv6.

Quick update on how the transition worked

The blog of 6 months ago analysed our own transition into the Nokia network as a case study of where IPv6 would have been helpful. The curious readers of this blog were left imagining “how will they pull off this transition? Will the FTP servers ever be tested again? Can the Trolls print?”

I left you in suspense, so here’s what happened in these 6 months.

Yes, we can print. Otherwise I wouldn’t be here in Helsinki, because I wouldn’t have printed my eTicket.

The network transition isn’t complete yet. I don’t know the exact reasons why our test farm remains in the old Trolltech network, but it does. All I’ve heard are anecdotes and the worst cases. For one thing, we received the level 3 switches that serve the network. But our sysadmins could not install them: we had to wait for a technician to come from the outsourced network provider, unpack the switch, install it in the rack and plug the cables.

Our QA department has been expanding our virtual machines for running tests in parallel. A week or two ago, they reported they couldn’t add more machines. The reason? They had run out of IP addresses in the block allocated by the outsourced network provider. They had to wait for a new allocation — possibly a reallocation!

The network tests in Qt have all been updated to reference the test server by a generic name, “qt-test-server.qt-test-net”. Anyone running the network tests must update their /etc/hosts or Windows equivalent with the IP address of the virtual machine.

(By the way, the network tests of Qt have been made available in the open repository for anyone to see)

We also had to go over all the tests and fix any failures caused by moving to the Nokia network. All of the network tests are now passing (including the one in tst_QHostInfo that assumed that “foo” would never resolve).

Now we have to face other problems. Like today not being able to log in to the Nokia intranet websites… but this one I had been expecting: Nokia IT requires us to change our passwords every 90 days.

The price of security. (Or is it?)

Liang Qi
Qt
Contributors
Git
S60
Posted by Liang Qi
 in Qt, Contributors, Git, S60
 on Wednesday, May 27, 2009 @ 10:45

Platform: Windows XP with SP3(now we only support Qt/S60 on it.)

1. SYMBIAN Development Environment

For downloading the packages, you need to register an account in the forum of Nokia,
http://www.forum.nokia.com/main/registration/registration.html

1-1. Carbide.C++
http://www.forum.nokia.com/Tools_Docs_and_Code/Tools/IDEs/Carbide.c++/
http://sw.nokia.com/id/7710eba7-4da7-4ddc-a52a-53b506cadb4a/Carbide_cpp_v2_0_en.exe

Carbide.C++ 2.0
Carbide_cpp_v2_0_en.exe 203MB

1-2. S60 Platform SDKs for Symbian OS, for C++
http://www.forum.nokia.com/info/sw.nokia.com/id/ec866fab-4b76-49f6-b5a5-af0631419e9c/S60_All_in_One_SDKs.html
http://sw.nokia.com/id/577ad48d-290c-4bb5-8bdf-779ea8a5bc6c/S60_5th_Edition_SDK_v1_0_en.zip

S60 Platform SDKs for Symbian OS, for C++, 5th Edition
S60_5th_Edition_SDK_v1_0_en.zip 622MB

2. Installation

Please install above 2 packages in default path.

Installation order: Carbide.C++, S60 SDK.

After Carbide.C++, you may need to install ActivePerl-5.6.1.638-MSWin32-x86.msi:

http://downloads.activestate.com/ActivePerl/Windows/5.6/ActivePerl-5.6.1.638-MSWin32-x86.msi

And you also need to use Git to get Qt from Qt S60 Git Repo, better to download this version of Git.

Please also make sure the path of our perl(default: C:\Perl\bin) should be in front of the perl from git(default: C:\Program Files\Git\bin) in PATH.

Please run this, Start->Carbide.c++ v2.0->Configure environment for WINSCW command line.

3. Build Qt with S60 5.0 Public SDK

cd C:\git
git clone git://gitorious.org/+qt-s60-developers/qt/qt-s60.git
cd qt-s60
set PATH=C:\git\qt-s60\bin;%PATH%
configure -platform win32-mwc -xplatform symbian-abld -openssl-linked -qt-sql-sqlite -system-sqlite
make debug-winscw

4. Build Examples

cd C:\git\qt-s60\examples\widgets\analogclock
qmake
make debug-winscw
C:\S60\devices\S60_5th_Edition_SDK_v1.0\epoc32\release\winscw\udeb\epoc.exe
“Menu”(or click the middle one of the 3 buttons)->QtExamples->analogclock

You got it!

Analog Clock

BTW, it’s my first blog here.

kamlie
Qt
Contributors
Git
S60
Posted by kamlie
 in Qt, Contributors, Git, S60
 on Tuesday, May 26, 2009 @ 09:55

About two weeks back, the Qt repository was made available to the public. Since then, we on the S60 team have been dying to do the same, and finally, we are able to make our branch of Qt available to all of you!

On the master branch you can see all the latest development of the S60 port, and everyone is free to clone and submit merge requests, just like for mainline Qt.

In order to compile the branch, I suggest reading the installation instructions at pepper.troll.no. There is also a very nice webcast to get you started.

Unfortunately, compiling Qt for the actual device is not possible unless you own a license to the RVCT ARM compiler. While it is possible to compile Qt with the GCCE ARM compiler, the binaries will not run due to shortcomings in GCCE when dealing with static data in DLLs. We’re hoping that this problem will be rectified in the future. Compiling for the emulator should be a breeze though, and the majority of code can be tested there.

Fluidlauncher in the emulator

Welcome to the world of Symbian!

The repository is located at http://gitorious.org/+qt-s60-developers/qt/qt-s60.

Update: Right now the master branch will only compile with a beta version of Open C that is not yet released to the public. We are told that it is to be released very soon, but in the meantime, it should be safe to comment out the parts that fail to compile. We are sorry for the inconvenience!

Harald Fernengel
Qt
KDE
 in Qt, KDE
 on Tuesday, May 26, 2009 @ 09:44

We are planning and implementing several measures to improve learning of Qt. This should certainly be done in accordance with YOUR needs. So, please take the following survey and give us feedback on how we can improve our learning content and tools in order to help you to expand your Qt knowledge.

There is a chance to win a Nokia 5800 XpressMusic cell phone as well :)

Survey: https://www.questback.com/trolltechasa/gm8gz1sx8a/

QtMobility
Qt
QtMobility
Posted by QtMobility
 in Qt, QtMobility
 on Tuesday, May 26, 2009 @ 08:44

Almost all Qt platforms have some form of native service framework (e.g. COM on Windows , DBUS on Linux, Symbian S60 LIW/SAPI etc). However, cross platform development of services and clients is much more difficult. Each platform has different capabilities, APIs and limitations.

The aim of the Qt Service framework is to enable easy development of services and a unified way of accessing them. Qt services provider can interact with platform specific services without exposing the platform specifics to clients. This initial release focuses on in-process, aka plug-in based services. Clients can access shared or individual instances of the same service as long as the access happens from within the same process. Support for out-of-process services is planned for later on, as it requires improved signal/slot based IPC communication.

Each service is exposed via a QObject pointer which means that clients can interact with service objects via the Qt MetaObject system. In fact clients can introspect service objects and therefore access any function, signal, slot or property that has been registered via the meta object system without having to include service specific header files. This is particularly interesting for non-native environments, such as a Qt WebKit, which can embed arbitrary QObject instances into web pages and thus makes the service object accessible via JavaScript.

QtSFWOverview

One of the exiting reasons why the Service Framework is part of the Mobility program is that we are hoping that it will be the common framework for future Nokia mobile platform releases. We expect that each Nokia mobile platform will use the same interface name space and in combination with other planned Mobility API’s, such as Bearer Management (also known as Connection management) or a Contacts API, it will enable true cross platform development.

If you want to run the example or just play around with it, grab the full source code from the public Gitorious repository.

QtMobility
Qt
QtMobility
Posted by QtMobility
 in Qt, QtMobility
 on Tuesday, May 26, 2009 @ 07:56

The new Mobility project here at Nokia is causing quite some excitement. Our goal is to make Qt an even more comprehensive application and UI framework by developing new APIs addressing mobile functionality. Ultimately this will enable rich mobile applications to run across many more platforms… Nokia and non-Nokia platforms! Why didn’t we think of this earlier!

The Project is led by Qt but has the good fortune of having senior contributors from S60, Maemo, Services and others from within Nokia R&D. We are adopting an open and flexible approach toward Requirement Input and co-Designing with some of Nokia’s best Architects. Receiving input from the wider development community is viewed as an essential part of the process. Our plan is to release early and release often. The development of the APIs can be followed here on Qt Labs.

We intend to create APIs for many functional areas, beginning with Service Framework, Bearer Management API and soon we will be sharing our work on Contacts API, Messaging and others.

The first API to appear in our public repository is the Service framework. We plan to post the Bearer Management API in the coming weeks and more APIs will follow. Please send your feedback for any API posted in this category to qtmobility at trolltech.com.

So please contribute toward helping us make this project a success for 3rd Party developers and join us in celebrating this new project initiative! Lets ‘get mobile’ with the new Mobility APIs!

Eskil Abrahamsen Blomfeldt
Qt
News
Contributors
Git
Graphics
Kinetic
 in Qt, News, Contributors, Git, Graphics, Kinetic
 on Monday, May 25, 2009 @ 09:33

That’s right.

This weekend we integrated the animation and state machine APIs (part of the Qt Kinetic project from the road map) in Qt’s master branch.

They were both released as solutions before, and we’ve had a lot of feedback. The APIs have been through a bunch of reviews and iterations, and we’re really really proud of the results. So go and pull the latest version of the repository and try out the examples and the examples.

I’m not going to say any more about it, rather I’ll just link to a bunch of blogs that we posted earlier. (PS. some of these have screenshots and even videos)

Qt Animation Framework.

Welcome to Kinetic.

Qt State Machine Framework.

Qt Kinetic hits Plasma.

Animated Layouts with Qt Kinetic.

Qt Animation Framework reloaded.

Animated Tiles.

Qt Hierarchical State Machine Framework add-on released.

New (and last?) QtAnimationFramework Solution (wasn’t the last, by the way.)

Writing a game with the animation and the state machine API.

A full serving of the Qt State Machine Framework.

Qt Animation Framework 2.3 is out.

Bradley T. Hughes
Qt
Labs
 in Qt, Labs
 on Friday, May 22, 2009 @ 10:01

(pun intended)

So, it’s been a while since my original blog on multi-touch support in Qt, so I thought I would provide an update on what’s been going on in that area.

Read the rest of this entry »

Alessandro
Qt
KDE
S60
Posted by Alessandro
 in Qt, KDE, S60
 on Tuesday, May 19, 2009 @ 07:20

A few days ago, we read via planet KDE that ‘Kolor Lines’, a KDE game runs on S60. I enjoy seeing what people do already with the tech previews of Qt for S60. So, I grabbed my camera and made this small clip:


Download as .ogv (~4.5MB)

This is just one of many examples demonstrating the benefit of one common application framework: Qt. Smart, creative code can more easily conquer new platforms.
According to the Kolor Lines author, it was not too hard to put a few #ifdefs into the KDE version of the code in order to have a pure Qt version. I am curious to see how many KDE apps/games will follow :)

For the source and S60 package that runs with the Qt for S60 “Garden” tech preview, please visit the authors blog.



© 2008 Nokia Corporation and/or its subsidiaries. Nokia, Qt and their respective logos are trademarks of Nokia Corporation in Finland and/or other countries worldwide.
All other trademarks are property of their respective owners.