Monday, February 18, 2008
QtWebKit in action
Following up Simon's QtWebKit in Action and to answer some comments from previous blog posts. Yes with QtWebKit you can embed QWidgets into HTML, you can control their position, size, etc. with JavaScript and apply CSS, invoke slots and such things. Lars, Simon and Girish created a demo for the DevDays it can be seen in action on the site Simon mentioned and you can grab the source from svn://labs.trolltech.com/svn/webkit/demo.

Saturday, February 16, 2008
Picking (a) Company
Many people don't know what my nickname means even german speaking ones. The direct translation would be tick, these animals that sit on leaves, bite people and suck the blood, the ones that can cary scary deseases. But there is another side to the word, a political one. In my youth this word was used to refer to punks and similar associates by right wing people, I was labeled this way. And this is nothing to be ashamed off, the view of kids with weird haircuts (or none), not washed hairs, broken and dirty clothes probably disrupted their lovely right wing world, but their world deserves disruption, change.
When joining irc I had to pick a nick and the most often used word for me not equal to holger or freyther was zecke so I settled with that. And looking at it now, as a discordian pope, it was a good choice.
Like many hackers I started to work from home, communiciated through irc, started to work on projects, collaborated, learned (thanks to a guy named tronical willing to answer any question), grew, got better, continued to make stupid mistakes. Saw Mr. Eilers and Lauer finishing their PhD. I believed an ideal FLOSS career would be to work remotely from home, little did I know, little do I know.
I started university, joined the RoboCup team, started internships and got hooked to the power of teams in one physical place. Having many brilliant people at the same place working together, sharing success and helping each other to recover from failure is the best way of working. At least I have not witnessed something better than an awesome team.
In december I decided to resign from my current part time job, we/they are an awesome team, because I wanted to work on FLOSS again. So my constraints for finding a new job are now FLOSS + awesome team.
I had the opportunity to visit the Oslo trolls (they do not live caves, in contrast they are close to the sky, the 5th floor to be exact) and it is an awesome team. Brilliant, international people, there is little more you can ask for. And even if you do ask, there are soft drinks (no Club Mate though), food and vegetables, and some people have chocolate... I started to verify if the requirements of FLOSS and awesome team are fulfilled and oh my god, they are. The only downer was. Oslo trolls live in Oslo, and I'm in Berlin (at least 2 to 4 more terms). After a lot of flirting, tears and counseling (or eating spaghetti at Berlin based usability experts) I was forced to accept that Oslo trolls live in Oslo and even with the power of the mind of fooling myself applied, Oslo is not another name for Berlin and is really not referring to the same place. Looking at the size of the universe the difference from Berlin to Oslo is really minor, but if you happen to be in one of the two cities you recognize that even this minor difference is significant. Specially working with simon would have been ueber cool, it looks like it has to wait some more years. So yes Trolltech has the simon factor and its weight is really really heavy.
To keep a long story short, there are two other companies that I really like because of doing FLOSS and having an awesome team and these are o-hand.com and OpenMoko. To stop the flirting and crying tears I'm going to do a project for OpenMoko, I want to see them finish the GTA02, ship it to the people and want to see OpenVG capable hardware with open drivers coming.
Harald Welte helped in drafting the NDA of OpenMoko and at no surprise there are exceptions for FLOSS. I agree with rms that NDAs have victims, like he was victim of a donated Xerox printer and not able to fix the driver for ITS (awesome book, a must read), this NDA is going to have victims as well, victims that need to know the pricing of hardware, business plans, and all the stuff I do not care about. There is no doubt that the software I write will be FLOSS, will be released on day one and I can talk and discuss about it as much as I want as it is definately not covered by the NDA! You certainly know when not to argue. Oh and on to the team. I had the pleasure to listen to a discussion of Werner Almesberger and raster yesterday, a bit disturbing but totally awesome! I'm looking forward to meet some of you after FOSDEM in Taipei! So let there be Qtopia, Qtopia on X11, next to Java,Gtk+,FLTK+,EFL,FooToolkit and any other Free Toolkit all buildable from OpenEmbedded!
Let us be productive, innovative and provide prior art for mobile computing for years to come! With all the cool people working at OpenMoko it is a pleasure to say... "Hello Moko" as well.
PS: Ironically almost one year after I considered joining initially.
When joining irc I had to pick a nick and the most often used word for me not equal to holger or freyther was zecke so I settled with that. And looking at it now, as a discordian pope, it was a good choice.
Like many hackers I started to work from home, communiciated through irc, started to work on projects, collaborated, learned (thanks to a guy named tronical willing to answer any question), grew, got better, continued to make stupid mistakes. Saw Mr. Eilers and Lauer finishing their PhD. I believed an ideal FLOSS career would be to work remotely from home, little did I know, little do I know.
I started university, joined the RoboCup team, started internships and got hooked to the power of teams in one physical place. Having many brilliant people at the same place working together, sharing success and helping each other to recover from failure is the best way of working. At least I have not witnessed something better than an awesome team.
In december I decided to resign from my current part time job, we/they are an awesome team, because I wanted to work on FLOSS again. So my constraints for finding a new job are now FLOSS + awesome team.
I had the opportunity to visit the Oslo trolls (they do not live caves, in contrast they are close to the sky, the 5th floor to be exact) and it is an awesome team. Brilliant, international people, there is little more you can ask for. And even if you do ask, there are soft drinks (no Club Mate though), food and vegetables, and some people have chocolate... I started to verify if the requirements of FLOSS and awesome team are fulfilled and oh my god, they are. The only downer was. Oslo trolls live in Oslo, and I'm in Berlin (at least 2 to 4 more terms). After a lot of flirting, tears and counseling (or eating spaghetti at Berlin based usability experts) I was forced to accept that Oslo trolls live in Oslo and even with the power of the mind of fooling myself applied, Oslo is not another name for Berlin and is really not referring to the same place. Looking at the size of the universe the difference from Berlin to Oslo is really minor, but if you happen to be in one of the two cities you recognize that even this minor difference is significant. Specially working with simon would have been ueber cool, it looks like it has to wait some more years. So yes Trolltech has the simon factor and its weight is really really heavy.
To keep a long story short, there are two other companies that I really like because of doing FLOSS and having an awesome team and these are o-hand.com and OpenMoko. To stop the flirting and crying tears I'm going to do a project for OpenMoko, I want to see them finish the GTA02, ship it to the people and want to see OpenVG capable hardware with open drivers coming.
Harald Welte helped in drafting the NDA of OpenMoko and at no surprise there are exceptions for FLOSS. I agree with rms that NDAs have victims, like he was victim of a donated Xerox printer and not able to fix the driver for ITS (awesome book, a must read), this NDA is going to have victims as well, victims that need to know the pricing of hardware, business plans, and all the stuff I do not care about. There is no doubt that the software I write will be FLOSS, will be released on day one and I can talk and discuss about it as much as I want as it is definately not covered by the NDA! You certainly know when not to argue. Oh and on to the team. I had the pleasure to listen to a discussion of Werner Almesberger and raster yesterday, a bit disturbing but totally awesome! I'm looking forward to meet some of you after FOSDEM in Taipei! So let there be Qtopia, Qtopia on X11, next to Java,Gtk+,FLTK+,EFL,FooToolkit and any other Free Toolkit all buildable from OpenEmbedded!
Let us be productive, innovative and provide prior art for mobile computing for years to come! With all the cool people working at OpenMoko it is a pleasure to say... "Hello Moko" as well.
PS: Ironically almost one year after I considered joining initially.
QtWebkit Status update
- Simon and Jasmin went through the API of QtWebKit. Most of the changes where changing names and parameters of methods, signals and slots. And some minor but important behaviour changes. The Plugin API is probably the only remaining feature for Qt4.4 and Lars and Simon have already progressed nicely.
- Simon went ahead and integrated QtWebKit into the Assistant on the way finding/marking of text was added to the QWebView and QWebPage API.
- Benjamin (icefox) continues adding the basic features to our demo browser. It is an awesome testbed to test QtWebKit, see what APIs is missing and what pages need work.
- We (this means mostly Simon) have fixed some rendering bugs of control/form elements with certain styles. Interesting remark. QCommonStyle::drawComplex is drawing PE_FrameLineEdit if you ask it to draw PE_PanelLineEdit, but only if your lineedit has a frame. Most of the styles assume a pristine/virgin QPainter when painting. In QtWebKit this is not true so we have created a StylePainter which will set a Qt::NoBrush and probably other things in the future. We know that painting scrollbars need a tweak when topLeft() is not equal to (0,0) on some styles. Note to myself if you see a drawRect call, the rect will be filled with the brush...
- We (see above for the actual meaning of we) have enabled the PageCache. The result is that you can go back and forth without waiting minutes. At least I had to wait minutes as I'm on a GPRS line. For other the effect is not too noticable as they will have broadband and because we are likely to not properly cache the ResourceRequest/ResourceHandle and do a real request on going back. More investigation is needed.
- I have been doing some cosmetic changes, I liked the Safari3 feature to resize multiline text edits. I made sure that it is working in QtWebKit as well. I didn't see the sizegrip icon and started to poke WebCore, RenderLayer and wondered why I can't resize. After a while I found a call to WebCore::Settings (each WebCore::Page has a WebCore::Settings and we wrap around it with QWebSettings) in the CSSParser which defines if certain things are resizable, so I set this to true in QWebSettings and still didn't see the icon (after adding a bunch of them to our WebKit qrc). It turned out that the way we used BitmapImage to show PlatformResources wasn't too clever, we stuffed a QPixmap in there but didn't use the size or the content of it.
- I have started to look into image usage, both QPixmap and QImage in WebKit and started to look for other areas where we leak, keep a reference too many and such things. Candidates of memory waste are keeping both a QPixmap and QImage of the same image, caching the downloaded data (in the WebCore::DocumentLoader). At this point I would like to find a guide to script gdb, I want to print the last three frames everytime ::ref and ::deref of a DocumentLoader or SharedBuffer gets called. Alternatively I will have to toy with VirtualBox to install Solaris, or get OSX Server and try to legally run it in a VM to get access to DTrace.
- Memory usage. I have started to profile QtWebKit. I have used examp console of o-hand.com and massif a valgrind tool. I have to get used to the new reporting of massif. It is not generating a postscript file anymore but you have to use a tool called ms_print to look at the snapshots. I hope some one is writing a cool gui for it soon(tm).
Tuesday, February 05, 2008
maemo's Scratchbox and how I feel about it
The last month I have been toying with a nokia tablet and specially gstreamer and to develop the software I have used scratchbox and would like to share some feelings.
What I like:
What I can't stand with scratchbox:
To summarize: What I really like is the exposure of debian, easily rebuild and patch the packages! What I don't like is probably the rest and what makes scratchbox up. So instead of getting my work done I have to reboot my computer, copy files in and out of the cloned home directory of scratchbox, have to setup my GDB, vim and other configs and find out why networking stopped working in my scratchbox login.
With one sentence: I love the Debian tools, Scratchbox is a PITA and I can specify --build, --host and -.target.
(written after another reboot to be able to call /scratchbox/login)
What I like:
- Easily get the patched source of a package
- Easily rebuild packages using dpkg-buildpackage
- But these are attributes of the Debian system and not scratchbox
What I can't stand with scratchbox:
- Taking 8GB of my disk space not having ping or mc installed.
- Not having mc in their repository!
- Using scratchbox takes away my tools, my vimrc, I actually have two setups and I don't see the difference between /scratchbox/login and ssh into a qemu, bochs, virtualbox, vmware...
- DNS stoppped working inside the scratchbox environment, even if the resolv.conf are the same
- I can not do git-init and then do dpkg-buildpackage
- I have to reboot and use an older kernel (VDSO is not enabled in the Ubuntu hardy kernel) to use scratchbox
- The Nokia maemo install shell script is proprietary...
- Scratchbox is not rebuildable, I tried many times
- and the list continues
- it requires root privileges to install
To summarize: What I really like is the exposure of debian, easily rebuild and patch the packages! What I don't like is probably the rest and what makes scratchbox up. So instead of getting my work done I have to reboot my computer, copy files in and out of the cloned home directory of scratchbox, have to setup my GDB, vim and other configs and find out why networking stopped working in my scratchbox login.
With one sentence: I love the Debian tools, Scratchbox is a PITA and I can specify --build, --host and -.target.
(written after another reboot to be able to call /scratchbox/login)
Subscribe to:
Posts (Atom)