lorn
Qt
Qtopia
KDE
Posted by lorn
 in Qt, Qtopia, KDE
 on Sunday, April 30, 2006 @ 23:24

Personally speaking, and being a developer of free software, I want my free software to always remain free, which is why I choose and develop my software using the GPL.

Even RMS doesn’t like the LGPL, which is why its name was changed to the Lessor GPL.
http://www.gnu.org/licenses/why-not-lgpl.html

Speaking in strictly free software terms… using LGPL over GPL is not about opensource/free software, it’s about proprietary software. To use someone else’s code, and not give back to the community. I don’t know about you, but I like free software.

Trolltech believes in free software, which is why we dual license Qt and Qtopia, one of those being GPL, and not the LGPL. This way, the software and it’s derivatives always remain free to everyone. But we understand not everyone wants their software to be open source, so Trolltech also releases Qt under a commercial license.

The commercial licenses pay for Trolltech to continue developing a great cross platform toolkit. So, even if you are paying for a license, you are contributing to free software.

If you are in business to make a profit, you should pay for tools you use.
It costs far less to purchase a commercial license for Qt than it does to hire one developer for a year,and I really doubt that one developer could develop anything as impressive and easy to use as Qt in one year.

If you are a small business and cannot afford Qt’s commercial license, and don’t want to open your sources, you can look into
Trolltech’s Small Business Program
There is also the Qtopia sdk license, which is a fraction of the cost of the desktop commercial license, and it’s more fun too.

Plus, nothing is stopping you from making a little money off of GPL software, just make sure you read the license and know what you need to do.

Keep Linux free, use KDE!

lorn
Qt
Qtopia
KDE
Posted by lorn
 in Qt, Qtopia, KDE
 on Monday, April 24, 2006 @ 00:27

finally got to spend some time hacking… and solved a problem in the meantime.

When working with embedded devices, what do you do if there is no hardware keyboard and you are staring at a console prompt, and have no networking?

I came upon this when I was working with the Nokia 770 and getting Qtopia running on it. I thought about creating a virtual keyboard using ncurses, but I would need to learn ncurses! So, I decided to write one in Qt. errr, rather, use the beauty in free, open source GPL’d software, and put two things together, and add some hacking glue to make it all work together.

What I did is add a touchscreen keyboard to embeddedkonsole (a non X version of konsole for Opie and Qtopia).

I started out by de-qtopia’ing embeddedkonsole. Easy to do in this instance.
Then found a very nice GPL’d starting point for the virtual keyboard. QVKeyboard. This has a very simple design, and is just what I needed. I added some (currently non functioning) F* keys, hacked on this a bit to get it working on qt embedded (version 2). and then added it to embeddedkonsole! It needs more hacking and optimizing though.

Screenshot here

Now, as long as I have the touchscreen working on whatever device (tslib works fine), I can still enter commands without having an ssh session, without X server environment, and without Qtopia or Opie running.

BAH! Who needs X and a keyboard !?!

Comments Off
ettrich
Qt
Posted by ettrich
 in Qt
 on Wednesday, April 19, 2006 @ 14:32

Picture of Matthias smiling in the entrance hall
So, we are making some progress with our expansion into Germany. Here are some pictures of the office building we currently favor. It’s a rather old building from the former Academy of Sciences of the GDR, but beautifully renewed. Nice address, too: Albert-Einstein-Strasse, Berlin. The guy on the right hand side, standing smiling in the entrance hall, is me. But don’t worry, Trolls don’t normally wear suits, and German Trolls won’t neither.

Here you find a picture of the building from above. It’s the tall gray building in the middle, with the egg-shaped entrance hall in front of it. It’s the tallest building in the area, which guarantees a great view in all directions. Getting interested? Here are some images of the entire area. While the Adlershof technology park is a bit outside Berlin, downtown Berlin is only a few minutes away by train. Many people working on the park do indeed live downtown.

But offices don’t write code, developers do. If you look at www.trolltech.com, you will find that we are indeed looking for good software engineers, for Berlin and for the other office locations. If you enjoy writing Qt or KDE applications, and always wanted to be able to change Qt without having to send patches to qt-bugs, then this is your chance. The “I don’t want to relocate to Norway”-argument doesn’t count anymore. And the “I don’t want to relocate to Berlin”-argument doesn’t count either, because you can most certainly relocate to Norway! I’ve heard concerns from some developers that they didn’t feel good enough to apply. That’s bogus. For one, you can always apply, it costs nothing. For the other, if you write Qt applications or KDE libraries, you are very likely good enough. Qt’s quality stems from the fact that we work together well, not that we are all ueber-programmers.

If you want to give it a thought and have some questions prior to sending in an application, please talk to me or your nearest Troll on IRC. Looking forward to hearing from you - soon!

Picture the beautiful facade Picture of the office that could be yours
The beautiful facade The office that could be yours
Picture of the entrance hall
The entrance hall
lorn
Qt
Qtopia
Posted by lorn
 in Qt, Qtopia
 on Tuesday, April 18, 2006 @ 22:58

Here at Trolltech, we are in the cross platform business. We work with all kinds of operating systems. We don’t discriminate based upon which operating system you choose.

http://www.reallylinux.com/docs/snobsoped.shtml

Being associated with the Linux community for quite a few years, I come across this constantly. You would think in a community based upon human kindness of sharing one would not find this kind of thing. It’s a real turn off.

I am reminded of an old saying, “Are you kind”.

Well… are you?

lorn
Qt
Qtopia
Posted by lorn
 in Qt, Qtopia
 on Monday, April 17, 2006 @ 18:40

I admit. I have become a handheld junky. My desk is strewn with quite a few devices. I have even been contemplating buying my 7 month old son one of those kids laptops you see at the Tandy store (Radio Shack for those North Americans).
Maybe I will when he drools less.

I am coming to the defense of handhelds! Namely and currently, the Nokia 770! *gasp*. It Does Little, and Not Very Well Yes, I do think they choose the wrong toolkit (qtopia good! maemo bad!) :) and I think the gui has too much wasted space. But it really isn’t that bad at what it is intended to do, an “internet tablet” (although tablet is a bit of a misnomer). I use the one I have all the time, from the couch, from bed, from the swimming pool area. The hardware isn’t all that bad, and when I get enough time, Opie and Qtopia will run well on it (already runs, just not releasable yet). I do miss it having a keyboard when I use it, as the Zaurus does, but it has a usb host I can plug one into.

I too can see similarities with the Zaurus community 5 years ago.. (see Ben Meyers post at planetkde), but Ben forgot to mention one thing. The Zaurus community is still moving forward. It’s death is greatly exaggerated!

New kernel (2.6 series) is being worked on, Openzaurus just released 3.5.4, Opie is updating it’s bluetooth support, etc. The Zaurus lives on because of its community, despite of it’s manufacturer pulling the zaurus out of western markets. Granted, things have slowed, but it is still there. New people come and go (both users and developers), but the main thing is “new people come”. Some of us have been there for the ride, and are still hanging out in the trunk (the boot to you aussies!)

Comments Off
Andreas
Uncategorized
Qt
KDE
Posted by Andreas
 in Uncategorized, Qt, KDE
 on Sunday, April 16, 2006 @ 09:09

The first half of the Developer Road Show 2006 is done. Coming up is the Cambridge event, and then Paris. And in May, Hamburg. I found some pictures on my phone from the US trip that I’d like to share. So here comes a little summary.

I’d like to start off with a picture of some food. I’m always pleased with dinners when I’m in the US. ;-) That’s one thing these people on the other side of the pond actually can do very well. I had steak, ribs, lobster, you name it. It’s funny how when you visit a country where food is a bit cheaper than in Norway, you tend to spend more money on food. Take this Boston lobster, for instance:

Marius and I had one each, and at the end of the event, Volker had one. I even had a lobster at Andy’s Peer II, a wonderful famous restaurant in the Boston docks.

One thing I cannot understand, is the US breakfast thing. Some countries (they do this in GB too) prefer breakfast to be the least healthy meal of the day. You can either get sugar, powdered sugar, pastry, syrup, and butter, soaked through a loaf covered with candy. Or, you get healthy, dry, chewy bagels that taste nothing. Healthy, good-tasting food is quite hard to get. Marius and I just ended up ordering fruit for breakfast some of the days. ;-) Btw, here’s one of my favorite sugarbombs (click the image to get the full-size version):

Anyway. So had one event in Houston, and one in Boston, so far. The Houston event was held in the Westin Galleria. in the top floor. Aaron Seigo and George Staikos showed up, and we had a great time together. On the left side, two pictures from ICS’s training sessions. One the right, well, you know these guys, don’t you? ;-)

At the Boston event, we started off attending the LinuxWorld Expo, and here are some pictures from that event. On the left hand side, an attempt to capture the whole event in one picture, and on the right hand side, our booth. Notice that Espen’s (release manager in dev in TT) back-side takes up a quarter of the whole booth. ;-)

The Boston event was held in the Fenway room at the Hilton Boston Back Bay. That room was very nice; I wish we had a room like that in our office premises ;-).

So now, I’m packing my stuff yet again and getting ready for the ACCU conference in Oxford. Hoping to see some KDE’ers at that event. My talk is about Qt’s threading capabilities, and it’ll be a slight rewrite of the Road Show threads content. Then follows the second half of the Road Show. Yeehaw. :-)

Comments Off
lorn
Qt
Qtopia
Posted by lorn
 in Qt, Qtopia
 on Thursday, April 13, 2006 @ 19:37

Programming anything can be daunting. Application development can be frustrating, even with a toolkit as awesome as Qt!

Luckily, there are a bunch of people willing to help, or at least try to help, or in the very least talk about the whether, in real time.

This can be a real boon to someone that is stuck who needs a little help.

Over on the freenode.net irc servers, there are channels #qt and #qtopia (and I suppose a kde channel or two), in which you can get help if you need it (after reading the fine API docs at doc.trolltech.com, of course!).

The #qt channel is associated with the website http://qtnode.org, where you can also look and find out things.

One of the cool things about #qt is that if you want to paste a bunch of code or gcc error messages, you go to http://qtnode.net/pastebin and paste it there, and an irc bot living in #qt will post a message to the channel saying that you pasted something and give everyone a url to look at.

So, there ya go! Keep on hackin’!

Comments Off
lorn
KDE
Posted by lorn
 in KDE
 on Thursday, April 13, 2006 @ 19:20

One thing that windows does do is make things easy, like a computer is supposed to do.

At home, we have a windows box connected to a shared printer. I go to print something from another networked windows box. Bam! no problemo to print. Barely even had to set it up.

On Linux/Kde… I had been struggled for most of one afternoon to even see the shared printer’s machine. In windows, there was ONE thing I had to do, set up the correct workgroup name, and the networked printer magically appreared in list of shares and it just worked.

So on my linux kde and try setting up the printer. Good f&%*^ng luck. I go to Kcontrol center… hmm, where might it be.. I try ‘Peripherals’. Nope. Not there. I try ‘Internet & Network’. Nope nothing there. I go into ‘Local Network Browsing’. hmm.. looks interesting, but no place to set a workgroup. I try ‘Samba’. Ok, looks like I can at least set the correct workgroup. Hey there’s a Printers section! I go to ‘Add New Printer’… hmmm.. not right… this seems to be for sharing a local printer.

Hmm.. ok, so.. there is no real place to simply ‘Add Network Printer’ that I can find. So I try to get smart and try the search thats part of kcontrol, type in ‘printer’ and get something that looks like I can add a frickin printer. so I select ’smb’ printer (already knowing that smb is actually windows networking), hit next.. ahhh ha!.. a place to configure a workgroup! hmm.. whats this?? server name?!? jezzus.. why can’t I simply browse from here, and find the dang printer!.. ok, I know the machines name, so I add that. ‘Name of remote queue’,, remote queue??! wtf is that?? user and password?? I didn’t need ANY of that for my win2x box. so I add ‘guest’, and press ‘test’.. I get a popup that says, “Invalid remote queue name’. wtf is a “remote queue name”.. I just want to print something, not be a sysadmin! so I press lookup.. Nothing happens. ehhhh…. right…. I know it’s there. really.

Ok, I know kde can print to a network printer, cause it works at the office, where we have a real sysadmin. But I have given up trying at home, I have better things to do, like tickle my 7 month old son.

lorn
Qt
Qtopia
Posted by lorn
 in Qt, Qtopia
 on Tuesday, April 11, 2006 @ 04:48

I redid some application startup tests for handheld environments with a different machine, namely with one that has more ram - the Sharp Zaurus c700. and granted, Gpe did heaps better this time… but it’s still not as fast as the Qt based Opie.
(note these tests are from the first start of any application after the reboot, as was the last bunch of tests)

I have included a ps from each, showing VmSize for each process running at home screen, and a total for processes not common for each respective gui related environment. It only shows VmSize, and not the Resident Set Size (RSS) because busybox’s ps does not show that.

c700
openzaurus 3.5.4
kernel 2.6.14-rc1-3.5.4

CPU — 400 MHz Intel XScale PXA250
Memory — 96MB total: 64MB Flash (approx. 30MB user area); 32MB SDRAM (work area)
Display — 3.7-inch, 640×480 pixels, 16-bit color LCD with backlight
and touch-panel

Boot up time (2nd boot after initial boot from flashing procedure):
————-
Gpe- 2 m 01.6 s
Opie- 1m 51.1 s (including 5 second “wait…”)

Calender:
————-
Gpe- 5.7 s
2458 root 6448 S gpe-calendar

Opie- 3.8s
2197 root 6360 S datebook

Contacts:
————-
Gpe- 4.8s
2460 root 6904 S gpe-contacts

Opie- 3.3s (about 100 contacts)
2201 root 6540 S addressbook

Todo:
————-
Gpe- 2.9 s
2462 root 6336 S gpe-todo

Opie- 1.6 s
2205 root 5604 S todolist

Image Viewer:
————-
Gpe- 2.2s
2464 root 5564 S gpe-gallery

Opie- 1.9s
2213 root 5820 S opie-eye
2215 root 3540 S opie-eye_slave

System Info:
————-
Gpe- 3.4s
2466 root 6356 S gpe-info

Opie- 2.7s
2207 root 5988 S sysinfo

Text Editor:
————-
Gpe- 2.3s
2504 root 5800 S gpe-edit

Opie- 1.4s
2203 root 4956 S textedit

Terminal:
————-
Gpe- 1.6 s
2506 root 2068 S x-terminal-emulator

Opie- 3.6s
2218 root 5700 S opie-console

Clock:
————-
Gpe- 2.6 s
2509 root 5216 S gpe-watch

Opie- 1.5s
2209 root 5668 S clock

================
Gpe
======

total used free shared buffers
Mem: 29936 28892 1044 0 0
Swap: 0 0 0
Total: 29936 28892 1044

PID Uid VmSize Stat Command
1 root 560 S init [5]
2 root SWN [ksoftirqd/0]
3 root SW [watchdog/0]
4 root SW< [events/0]
5 root SW< [khelper]
6 root SW< [kthread]
25 root SW< [kblockd/0]
38 root SW [pccardd]
41 root SW [kapmd]
56 root SW [pdflush]
57 root SW [pdflush]
59 root SW< [aio/0]
58 root SW [kswapd0]
148 root SW [mtdblockd]
845 root 508 S < udevd
948 root SWN [jffs2_gcd_mtd3]
1036 root SWN [jffs2_gcd_mtd2]
1139 root SW< [krfcommd]
1890 daemon 336 S /sbin/portmap
2023 root 536 S /usr/sbin/dropbear -r /etc/dropbear/dropbear_rsa_host_key -p 22
2032 root 464 S /usr/sbin/apmd -P /etc/apm/apmd_proxy –proxy-timeout 30
2054 messageb 820 S /usr/bin/dbus-daemon-1 –system
2135 root 608 S /sbin/cardmgr
2148 root 612 S /sbin/syslogd -n -C 64 -m 20
2150 root 596 S /sbin/klogd -n
2173 root 692 S hcid: processing events
2177 root 524 S /sbin/sdpd
2191 root 428 S /usr/sbin/atd /var/spool/at
2198 root 328 S /usr/bin/gpe-dm
2199 root 3320 S Xfbdev -br -pn -dpi 100 -rgba rgb :0 -noreset
2200 root 536 S run-parts /etc/X11/Xinit.d
2214 root 536 S /sbin/getty 115200 ttyS0
2215 root 536 S /sbin/getty 38400 tty1
2268 root 2816 S matchbox-window-manager
2280 root 496 S dbus-daemon-1 –fork –print-pid 8 –print-address 6 –session
2301 root 1060 S gpe-autostarter
2303 root 592 S gpe-soundserver
2304 root 504 S < esd -nobeeps -as 5
2318 root 584 S /usr/bin/ipaq-sleep
2317 root 1276 S gpe-confd
2321 root 1532 S startup-monitor
2323 root 796 S keylaunch
2338 root 4144 S matchbox-desktop
2339 root 2888 S matchbox-panel –orientation south
2340 root 2920 S mb-applet-menu-launcher
2341 root 2668 S mbinputmgr
2342 root 4304 S minilite
2344 root 4336 S gpe-what
2345 root 1644 S mb-applet-battery
2346 root 4848 S gpe-clock
2442 root 240 S udhcpc -b -p /var/run/udhcpc.eth0.pid -i eth0
2445 root 1168 S /usr/sbin/dropbear -r /etc/dropbear/dropbear_rsa_host_key -p 22
2446 root 800 S -sh
2457 root 720 R ps aux

Total Gpe related: 60,086 kb VmSize

================
Opie
======

total used free shared buffers
Mem: 29936 28816 1120 0 0
Swap: 0 0 0
Total: 29936 28816 1120

PID Uid VmSize Stat Command
1 root 560 S init [5]
2 root SWN [ksoftirqd/0]
3 root SW [watchdog/0]
4 root SW< [events/0]
5 root SW< [khelper]
6 root SW< [kthread]
25 root SW< [kblockd/0]
38 root SW [pccardd]
41 root SW [kapmd]
56 root SW [pdflush]
57 root SW [pdflush]
59 root SW< [aio/0]
58 root SW [kswapd0]
148 root SW [mtdblockd]
733 root 532 S < udevd
836 root SWN [jffs2_gcd_mtd3]
902 root SWN [jffs2_gcd_mtd2]
1003 root SW< [krfcommd]
1754 daemon 336 S /sbin/portmap
1876 root 560 S /usr/sbin/dropbear -r /etc/dropbear/dropbear_rsa_host_key -p 22
1885 root 464 S /usr/sbin/apmd -P /etc/apm/apmd_proxy –proxy-timeout 30
1975 root 620 S /sbin/cardmgr
1995 root 616 S /sbin/syslogd -n -C 64 -m 20
2007 root 596 S /sbin/klogd -n
2057 root 492 S hcid: processing events
2061 root 456 S /sbin/sdpd
2094 root 444 S opd: waiting for incomming OBEX connections on channel 1…
2143 root 240 S udhcpc -b -p /var/run/udhcpc.eth0.pid -i eth0
2158 root 9340 S /opt/QtPalmtop/bin/qpe -terminal 2
2169 root 536 S /sbin/getty 115200 ttyS0
2170 root 536 S /sbin/getty 38400 tty1
2177 root 4388 S N quicklauncher
2178 root 2712 S < /opt/QtPalmtop/bin/qss
2179 root 1164 S /usr/sbin/dropbear -r /etc/dropbear/dropbear_rsa_host_key -p 22
2180 root 800 S -sh
2189 root 720 R ps aux

Total Opie related: 18,534 kb VmSize

I also did these tests for the Nokia 770 using Maemo. It is
different hardware.

Display: 800×480 touch screen, 16-bit color
CPU: 250MHz TI 1710 OMAP (ARM-based)
Memory: 128MB internal flash (64MB available to the user), 64MB via included RS-MMC card

(from pull battery poweroff)
Boot up time 65.3 s

Maemo does not have PIM apps, I will use what is on there.

File Manager- 4.9 s
Image view- 4.2 s
Calculator- 3.6 s
Clock- 3.3 s
Notes- 3.4 s
Sketch- 3.2 s
Opera- 10.7 s

Comments Off
lorn
Qt
Qtopia
Posted by lorn
 in Qt, Qtopia
 on Saturday, April 08, 2006 @ 03:18

Over the last 5 years of my handheld development experience, I have heard quite a lot of FUD about Qtopia and it’s offspring, Opie. Today I heard a doozy, “We didn’t use Qtopia because GPE is blazingly fast”.

I have had enough of hearing that Gpe and X are so much more faster than Opie and Qtopia. I know from 5 years of experience in the linux handheld development world, that is just not true. Here’s some numbers to prove it.

I will do a memory usage analysis in the coming weeks when I have the time.

Gpe vs. Opie vs. Qtopia
==============

Distribution: Openzaurus 3.5.4
Machine: Sharp Zaurus 5000d

Boot up time (2nd boot after initial boot from flashing procedure):
————–
Gpe- 42 s to logon screen; 53 to home screen (not counting time for log in)
Opie- 45.8 s with 5 second “wait…”
Qtopia (hardfloat)- 40.1 s
Qtopia (softfloat)- 38.2 s

Calendar (empty):
————–
Gpe- 4.8 s
Opie- 1.4 s
Qtopia (hardfloat)- 3.3 s
Qtopia (softfloat)- 1.3 s

Contacts/Addressbook (empty):
————–
Gpe- 17.3 s
Opie- 1.4 s
Qtopia (hardfloat)- 3.1 s
Qtopia (softfloat)- 1.1 s

Todo (empty):
————–
Gpe- 13.6 s
Opie- 1.2 s
Qtopia (hardfloat)- 2.8 s
Qtopia (softfloat)- 0.9 s

Calculator:
————–
Gpe- 4.3 s
Opie-
Qtopia (hardfloat)- 4.0 s
Qtopia (softfloat)- 1.7 s

Texteditor:
————–
Gpe- 5.1 s
Opie- 0.9 s
Qtopia (hardfloat)- 3.3 s (includes scan for documents)
Qtopia (softfloat)- 0.8 s (includes scan for documents)

Clock:
————–
Gpe- 4.0 s
Opie- 1.0 s
Qtopia (hardfloat)- 3.2 s
Qtopia (softfloat)- 0.8 s

qwerty Input method popup:
————–
Gpe- 3.0 s
Opie- 0.5 s
Qtopia (hardfloat)- 0.4 s
Qtopia (softfloat)- 0.3 s

Terminal:
————–
Gpe- 1.5 s
Opie- 1.9 s
Qtopia (hardfloat)- 2.7 s
Qtopia (softfloat)- 1.6 s

System Info:
————–
Gpe- 8.2 s
Opie- 2.1 s
Qtopia (hardfloat)- 4.6 s
Qtopia (softfloat)- 1.5 s

Image Viewer:
————–
Gpe- 5.1 s
Opie-
Qtopia (hardfloat)- 2.7 s
Qtopia (softfloat)- 2.6 s

Additional Notes:
————–

Gpe and opie from official oz 3.5.4 release.

Qtopia (hardfloat): Version 2.1.2 trolltech rom image
Qtopia (softfloat): Version 2.2.0 oe-3.5.4 sdk was used to compile. -msoft-float was added

Gpe: No way to ‘multitask’ or select running applications (?)