Skip to content

Manyoso 

A QtWebKit KPart is no answer for a KDE browser

Wednesday, 1 July 2009
Disclaimer: I have no desire to re-ignite KHTML vs WebKit arguments. Rather, the purpose of this blog post is to hopefully enlighten a technical question. Over the last few months I've heard many KDE developers in various forums bemoan the lack of a working and stable WebKit KPart. The motivation behind this complaint seems to be that KDE folk want a WebKit browser option for KDE. Thus the naive solution is to just get the WebKit KDE KPart in shape. Given this motivation... the solution is wrong IMO. Read More

Better algorithm for QPainter::fillRect() with raster based painting

Friday, 5 September 2008
In my last blog I found out that Qt is being evil when using QPainter::eraseRect() with a QImage based textured brush. How evil? Well, calling QPainter::fillRect() with the same brush results in something like a 30-50% speedup while achieving the exact same results. Not only that, but the QPainter::eraseRect() codepath makes QImage not thread safe for painting outside the main thread because it is silently using QPixmap behind the scenes. However, this isn't the whole story. I was surprised that even with all this fixed the algorithm is still not optimal. Read More

Beware QPainter::eraseRect() with a QBrush::texturedImage()!

Saturday, 30 August 2008
Funny little story... I was profiling with valgrind recently and was shocked to discover a huge hiccup in the painting performance of my QImage raster based app. There was this repeated call to QPainter::drawTiledPixmap() that was soaking up CPU cycles. It was a true mystery as I had thought the canvas of my app was completely QImage based. Not so. Read More

How to get faster Qt painting on N810 right now

Tuesday, 26 August 2008
My previous post touched on the horrid FPS you can expect from any graphics intensive Qt app on the N810 at the moment. Ariya has pointed out one reason for the bad numbers: Qt decides to convert all 16 bit pixmaps to 32 bit before blitting even if the source QPaintDevice and the destination QPaintDevice are both 16 bit. Read More

blah blah blah

Friday, 22 August 2008
blah blah blah who took away the delete function for kdedevelopers.org blog entries blah blah blah

Qt painting is SLOW on N810

Friday, 22 August 2008
With all the recent interest in Nokia's N810 device among KDE and Qt developers I think it is important to note that Qt/X11 painting performance is badly broken when running under Hildon. I've been porting a QtWebKit based browser to the N810 for awhile now and have noticed a steep drop in performance when compared to the same browser running under Qtopia Phone Edition on the very same device. Read More

"...violate the Separation of Powers ordained by the very Constitution of which this President is a creature."

Thursday, 17 August 2006
The United States just took a gigantic step away from the cliff today. An unknown federal district court judge just told the President of the United States where he could shove his warrantless wiretapping program. Read More

Intro to KDE/Qt build systems for new developers

Sunday, 6 August 2006
In the recent KDevelop dot interview I noticed a very astute comment by someone named borker: "One of the things I've loved about picking up Qt/KDE was how quickly you can make non-trivial applications, but I found learning Qt/KDE was a weird reverse... rather than writing code first and then learning the complexities of the build process later, as required, I found myself needing to come up to speed with the build process first and then write code. Not being overly familiar with the GNU tool chain didn't help speed up this process either. I found it to be a frustrating blocker to actually writing code and it wasn't helped by most of the available tutorials being great on coding advice but very slim on build advice, so when I wanted to go from 'hello world' to something a bit more 'real world' I ran smack into the build system and all my momentum died completely. Anything that could help a beginner like me out in the way of teach as you go type stuff would be great." -- link Read More

KDevelop 4 and Qt's new dockwidget tabs

Friday, 28 July 2006
With the release of Trolltech's java bindings it kinda feels like Christmas. I wanted to point out some more presents under the tree... Look closely at the dockwidgets on the right of the image. See that? Recent versions of Qt 4.2 snapshot include a new Ideal like feature. When you drag a dockwidget completely on top of another an Ideal like tabbed bar is created. This is done entirely within Qt and any application which uses QMainWindow will have this functionality. Pretty cool, eh? :) Read More

Go (STEELERS + REFS)!

Tuesday, 7 February 2006
Seele, I understand that you are a big Pittsburgh fan and are understandably happy they "won", but I can't imagine how you can call it a "great game to watch." See, unlike most of the country and unlike most of the people at the stadium in Detroit and unlike all of the referees on the field, I was hoping for a Seahawks win. That game was horrible. But, don't take my word for it... read just about every account of the game, anywhere. Read More

Apple Developing CLR Alternative Into GCC?

Saturday, 19 November 2005
People who know me understand that I'm a big fan of LLVM. Well, big news... Apple has hired the main developer and is now urging LLVM to be integrated as an alternative backend of the GCC compiler suite. Read More

Datakiosk, Baseball and Klik! Three good things that go good together...

Monday, 3 October 2005
I have been busy working on Datakiosk and am nearing a new release. I know many folks are a bit puzzled by this application, so to dispel the wonder I have cooked up a pretty cool demonstration of Datakiosk thanks to Klik. This new release will add some pretty significant new features. Read More

Into Hell

Tuesday, 27 September 2005
Into hell. That is where I went this weekend. Those of you who've been around me a little bit understand that I suffer from migraines. A lot. Well, yesterday I suffered like I've never suffered before. It began in the morning with an unusual headache for me. Unusual, because it was not a migraine, rather it was a regular headache across the full forehead and seemed familiar to rebound headaches I have experienced from time to time. This headache persisted throughout the day until it turned into my old friend --a full blown head splitting migraine-- in the early afternoon. Read More

MS Office 12's Incredible New UI

Friday, 23 September 2005
Ariya sent an email to the KOffice list today passing along this link to an interview with the program lead for MS Office 12's new UI. All I can say is WOW. This is stunning stuff. A colossal change and, IMO, a great one. They have taken an incredibly complex app and eliminated all of the menu's without eliminating the functionality. They've also made it so that none of the functionality is hidden. Read More

What passes for grad work today... LOL

Monday, 19 September 2005
public int hashCode() { /* This is probably a fairly bad hash function */ return 0; }

Google Fight Methodology

Saturday, 10 September 2005
First, it was just for shits and giggles folks. Don't take it so seriously ;) That said, quite a few folks wonder why I set 'restrict=linux' and not 'restrict=kde' or some such thing. Well, the answer is quite simple... If you'd click through to the parameters explanation link that I posted in the methodology section you'd see that Google has only four topic restrictions: US Government, Linux, Macintosh and FreeBSD ;) There is no KDE restriction. Read More

KDE Google Fight!

Friday, 9 September 2005
I was playing with googlefight today when it occurred to me to run a few KDE names through the gauntlet... Amused, I decided to use Google's web API to run the list of kde-ev member names and produce the first KDE-Google-Fight-Royal-Rumble :=) Read More

1. New Laptop 2. KDE4 testing of apps without install

Friday, 12 August 2005
1. Purchasing a new Laptop... So, this weekend is Massachusetts tax free holiday and I'm thinking of using the occasion to purchase a new laptop. I was wondering if anyone out there in KDE land had experience with the ThinkPad T43 1871? I can currently get this laptop at discount through a friend for $1,274.00. Is it a good deal? Should I get something else? Anyone have a strong opinion one way or another? Read More

Me? Debug mode. My Wife? Optimize mode.

Saturday, 18 June 2005
Like many software developers I am a lazy person by nature. There is a theory which states that the primary motivation which drives software developers to work so hard is in fact, laziness. This only seems like a paradox until you think about it for a moment. Probably the single greatest moment in the history of laziness was the invention of the remote control. Such a sublime discovery could not have occurred but for the basic primal human need to be a lazy slob of a couch potato every once in awhile. Read More

dataKiosk, Kugar and Stuff

Thursday, 16 June 2005
dataKiosk: It has been a busy week and with the release of dataKiosk 0.7 now completed I'm glad to see it is getting a little publicity on the dot. It is nice to know that others appreciate your work :) The state of the application is pretty good at this point. It still has bugs (if you come across any, please let me know) and quirks, but it is mature enough to handle a former MS Access project with over a million records between a couple dozen tables. Going forward, the focus is on making the data entry task as lighting fast as possible. Then I hope to integrate KJSEmbed for scripting the Virtual Fields and business logic. Read More

Old/New Kugar

Thursday, 16 June 2005
As I said below, I just assumed maintainership of Kugar from adymo and have been working on re-integrating his local tree into koffice svn. Well, that is now complete, although there is still a whole lot of work to be done: d-pointifying the library, getting rid of the Qt-only shell, etc, etc. I also have a number of new goals for Kugar including greater control over grouping and sorting, making it easier to embed both the viewer and designer into other apps (dataKiosk and Kexi come to mind) and just general bug fixing and so on. Read More

New Smoke proposal? Bindings broken by design...

Saturday, 11 June 2005
I've been following Ashley and Richard's conversations about the new Smoke proposal for KDE4 and I have to say it all reminds me exactly why I have grown to loathe bindings. First, let me say that I have loads of respect for both Ashley and Richard as they are extremely talented developers. Both of them helped me enormously with the now discontinued Qt# bindings. With that said, I think KDE bindings developers and enthusiasts are completely missing the mark for a possible future KDE/Qt binding roadmap. Read More

Apple on Intel x86?

Saturday, 4 June 2005
I am 2 parts intrigued, 3 parts baffled, and 5 parts just plain gobsmacked by the breaking news that Apple will be switching to Intel processors. The times, they are a chang'in! Questions... Read More

Data aware KDE widgets in dataKiosk

Saturday, 14 May 2005
Hey, ruurd, I was going to post this as a comment, but blogger's login crap was giving me problems. Anyway, I have several data aware KDE widgets in DataKiosk I hope to introduce into KDElibs with KDE4. They include some widgets that DataKiosk shares with KDEPIM and some that are entirely new to KDE including one that mimics the MS Access Relation Combo. They are written to be generic enough to use for any QSql driver. Read More

dataKiosk release, la, la la

Wednesday, 16 March 2005
I just released v. 0.6 of dataKiosk. The major changes include editing support via a new configurable form. It also has some handy new editor widgets that are factory created depending upon the field's type. The new widgets include a MS Access alike combo table dropdown foreign key relation editor. For those of you who are interested you can check out the new extragear homepage for screenshots and/or grab the 0.6 release bzip2 tar. Read More

Code Completion Continued...

Tuesday, 15 March 2005
A couple of updates on the code completion changes. In current CVS code completion can: Complete in TRY/CATCH blocks... Complete on vars declared in if/for/while... Lots of other fixes... And I have this working although the patch is up for review and not in cvs: There are a few issues, because it relies on richtext and the problem is I have to strip out some chars programmatically which becomes a problem for apps who use katepart and completion entries with legitimate richtext chars... Read More

Please, raise your hand...

Thursday, 10 March 2005
Please, raise your hand if you'd like: Color syntax highlighting in KDevelop's code completion? Icons in the entry list corresponding to the entry type ... ctor, dtor, method, member, etc, etc? Some sorting by entry type so all ctor's come first, dtor's next, etc, etc? The ability to specify what parts of the entry are "completeable" eg, if I'm completing a method decl I don't necessarily want to key the return type? If so, then the following changes will need to be made to KTE Completion interfaces: Read More

Changes to kdevelop C++ code completion

Tuesday, 8 March 2005
Matt and I are doing a little retouch of KDevelop's code completion. First, on Sunday, Matt made a change which prompts KDevelop to complete much more often than in the past. Before, KDevelop would only complete when it received a textChanged signal from KTextEditor and the current chars were "." or "->" or "::" ... Now, completions are computed for all chars that are not whitespace or empty. Read More

Forget MDI ... how do you feel about MAI?

Saturday, 5 March 2005
There are few certainties in life (death/taxes) and less in software, but if I were to nominate two they would be: MDI is here to stay. Some will always hate MDI. Let's face it, it make to much sense in many cases to not have an MDI interface. Look at our users love affair with Konq's tabs for instance. KSirc's IRC tabs, Konsole's session tabs, aKregator's KHTML part tabs, on and on... users would kill if these were done away with. Hell, I recently was checking out Kopete's IRC protocal handler and decided it was a non starter because it didn't offer to manage all of my IRC channels in one window. Read More

Copyright a spec?

Monday, 21 February 2005
Brad Hards brings up a twist to the whole kpdf, "to DRM or not to DRM?" question. Would kpdf infringe Adobe's copyright on the pdf spec if they did not include "reasonable efforts" at implementing DRM? Read More

What I learned at LWE

Thursday, 17 February 2005
Presenting KDE as an exhibitor at LWE is an interesting experience. I've learned a couple tricks that make things more interesting, both for me and for booth visitors: Keep the screens moving. We are using konq's autoscroll feature and Lubos is setting up a dcop script to set the anchor to the top every minute to keep it from scrolling to the bottom. Users think this is very cool and it is :) Don't just take questions to start. The booth visitors don't usually come to us with specific questions... rather, they want to see what is coming in the latest KDE. That is, if they are familiar with KDE (or Linux for that matter) at all. Along those lines, I'm ask booth visitors if they want to play a game of "Did you know KDE can do this?" Examples: Did you know KDE can select and copy text and images from KPDF? Did you know you can subscribe and read your news from with Kontact via our new RSS feed tool, akregator? Did you know Konq can autoscroll, letting you read your news while you drink your coffee? Did you know you can rip your audiocd in real time and across the network with simple drag'n drop from Konq? I think KPDF gets the biggest WOW factor. Several booth visitors have said that they were sold on KDE with just this feature alone. And then they donated, so they were apparently serious :) Generally, users like all of the new features and seem genuinely surprised and excited when presented with cool things they never knew existed had been in their KDE the whole time. Read More

DataKiosk

Wednesday, 9 February 2005
DataKiosk is a JuK-like database interface tool for generic SQL databases. What does that mean? Essentially, DataKiosk provides a series of wizards (anyone familiar with Qt Designer's database wizards will find them familiar) that allow you to build a custom Juk-like interface for any SQL database with a QtSQL driver. It now resides in kdecvs in the kdeextragear-1 module. Screenshots 1, 2, 3, 4, 5, 6 and Flash demo here. More below the fold... Read More

Solaris, Java and the CDDL

Wednesday, 26 January 2005
By now everyone has heard of Sun's foray into Open Source Solaris. Groklaw has an interesting run down of the incompatibilities between the CDDL and the GPL. I find the whole thing tremendously interesting, but when you really think about it and the possible implications for Linux, it is not all that exciting. Sure, Solaris 10 is a hell of an operating system by most accounts, but at this point I think of it like the hoopla that surrounded Apple's release of Darwin. That too, was one hell of an operating system, with all of the doomsayers heralding it as the end of Linux... Well, a few years later not so much. Heh. Read More

KDevelop C# Language Support

Monday, 13 September 2004
So, I've been working on some kdevelop language support C# for the past few days. I already have some pretty interesting screenshots, but I recently discovered that KDevelop is going through a major change in the way it handles different build systems. Roberto Raggi is working on a New Project Manager (NPM) that will form the basis of a common project editor widget for all the various languages. Individual language/buildsystems will then customize the interfaces to this NPM in order to provide language/buildsystem specific features. It is a great idea as it will cut down on the duplication of code in KDevelop and provide some standard and uniform UI widgets. Since I found out about it, I've been porting my initial C# build part to this new architecture. More... Read More

Update on the C# bindings

Tuesday, 7 September 2004
I just added features regarding the C# bindings to the 3.4 feature list. As 95% of the major work towards the new super spiffy Qt# bindings is done, I figured it was time to set some goals for getting all of this in shape for a KDE release. For those curious about the current state of my bindings (as opposed to the other C# bindings efforts) this kind of stuff is working now. For those confused by all the myriad twists and turns of the various C# bindings efforts here is a short history: Read More

MS touts new C++/CLI standard calling it most powerful language for .NET

Wednesday, 18 August 2004
Just came across this article via msdn, C++: The Most Powerful Language for .NET Framework Programming. Microsoft seems especially pleased with their new version of Managed C++. They've done a complete revamp of their previous .NET support for C++ and submitted it to ECMA and ISO as a standard. This brings C++ inline with C# as far as first class support for the Common Language Runtime. I really like what they've done to improve the C++ experience for .NET, but still think it will be incredibly hard to adapt the Qt/KDE libraries to fit into this framework. Consider this annoyance, the new proposed standard mandates PascalCase be used for the core API. For a technical challenge you'd have to consider how to integrate MOC and the new C++.NET properties. Read on. C++.NET properties: property String^ Name { String^ get() { return m_value; } void set( String^ value ) { m_value = value; } } Q_PROPERTY: Q_PROPERTY( QString name READ name WRITE setName ) void setName( QString name ); QString name() const; Read More

To byte code, or NOT to byte code? Is this really the question?

Saturday, 14 August 2004
It seems Trolltech is continuing to wrestle with the problem of pesky developers clamoring for bytecode based (read: higher level) languages. I talked with him quite a bit about this at the recent LinuxWorld in New York, so I know it is on his mind. In his recent interview at aKademy, Matthias even identified this as the "next big thing" for KDE. But, is bytecode really the question? Read on. Q: What do you think the "next big thing" in KDE will be? MATTHIAS: There is one thing that will become increasingly important in the future, not just for KDE, but for all of Linux: a convincing answer to Microsoft's .Net. I'm not concerned about the server, I'm concerned about the client... Still it would be nice to take advantage of JIT-compiled bytecode where it makes sense, and have the two worlds interoperate. Currently there are two technical options: integrating Mono and the CLR, or going for a Java Virtual Machine. Mono at present has several advantages: First, there is no free JIT-compiling JVM that is equally actively developed and it doesn't look like there will be one. Second, cooperating with Miguel and the Ximian group at Novell is probably a lot easier than cooperating with Sun. And third, it is easier to integrate native C++ code with the CLR than going through the JNI. To me, the real thing TT should be concerned about isn't so much nativecode VS bytecode... it is how to satisfy those pesky developers clamoring for higher level language access to Qt/KDE API's. I think this is what TT had in mind creating QSA, but that is only a scripting language. Ultimately, there are three niches of development I think TT needs to cater to: Read More