In the research field of compression, the usual goal is to achieve the best possible compression rate. The best known algorithms, however, are very slow, and sometimes impractical for real-world applications.
When dealing with images, the situation becomes especially worse considering the fact that photo resolutions are ever increasing. Image sizes of 4500×3000 pixels (or more) are not uncommon. Uncompressed, this amounts to 40 megabytes for 24 bits/pixel, and having to wait several seconds for the image to load or save is annoying.
London Bridge (Tower Bridge) : Reflection on the River Thames Photo byAnirudh Koul at Flickr
JPEG, the de-facto standard for image compression, while still one of the fastest methods available, has one major drawback: it compresses lossy, in other words, whenever the image is saved, some fidelity is lost. For situations where multiple load/save cycles are to be expected, for example in photo manipulation applications, this is inacceptable.
In the recent months, I have been evaluating available lossless image compression algorithms to select one that is fast, but ...read more...
According to Aaron J. Seigo, 'It's the first tablet computer that comes with Plasma Active pre-installed.' The Spark, with its 7" screen, is built around a Cortex A9 with a Mali-400-gpu, 512MB RAM and an SD-card slot.
No, you’re not having a déjà vu, this is my second post about GRUB2/BURG support for KDM which shows up in PlanetKDE. I am sorry to abuse the planet for publicity, but I have seen quite a bit of confusion as to how KDE should be configured in order to interface with GRUB2/BURG and I would like to get some things straight.
What follows is a step-by-step guide describing how to configure KDE in order to automatically select a GRUB2/BURG entry other than the default when rebooting:
If you are a GRUB2 user skip the BURG instructions and vice versa.
Step 1. Inform GRUB2/BURG that you plan to use this feature:
Open /etc/default/grub in the text editor of your preference (as root) and add the following:
In case a GRUB_DEFAULT option already exists, just set it to “saved”.
In the deeper directories of my storage device I have some files around from the old times, when my general purpose computer was still locked partially by proprietary (operating) systems. Never-the-less e.g. Corel Draw was still worth the lock and the money, I loved that program and what it enabled me to produce.
These products are still around. And are basically binary blobs now for me, the content not readable by the software I use. Blame on that software Well, but also the old software, i.e. Corel Draw, and its makers, using a storage format which seems not published and possibly only available by something like a Technology Partner program or similar, meaning lawyers and businessmen, not fun. But those files’ content is mine, and I completely dislike that the format binds me to a certain software.
"I upgraded to Ubuntu's Precise Alpha 1 a few days ago. After the upgrade completed, I tried out KDE 4.8 RC 2. It worked great until the final release of KDE 4.8 Final. KDE 4.8 Final is even better than the RC!"
The thing we always stressed out in Plasma Active is how the system is designed to fit a whole device spectrum, even if the first two releases are explicitly about tablet devices (and in the near future this is not likely to change ;)
But how? it's pretty obvious that one user interface doesn't fit all for sure. Some devices, like mobile phones could share let's say the 60% of the QML UI written for the tablet, some other, let's say set top boxes could need something radically different.
The Plasma Active shell is actually something that doesn't provide any user interface at all, but instead provides some basic features in the logic: manages the user Activities and loads the plugins that will provide the actual user interface, assembled like a LEGO to fit the user experience of a particular form factor.
About user interface plugins: the central parts are Containments and Applets, that are familiar from Plasma Desktop, a new one is a package format used to distribute stand alone QML files sets, and a very important one in ...read more...
Today marks the day of yet another KDE Telepathy release. We're so confident with this third release, that we decided to put the Beta sticker on it. Let this be supported by our recent move to KDE's Extragear.
In the past 3 months since we released KDE Telepathy 0.2, we managed to close over 100 bugs. 102 to be exact. We added stability (if you'll make it crash with normal usage, I'll buy you a beer). We added visual polish. And we added new features too. Here's a list of what's new in 0.3:
A completely rewritten and simplified plasmoid applet for controlling your online status
About a week ago I got this random idea. Though I suppose that's what most of my ideas are (I say this as I have quite a few branches for various projects, at the moment ;)
I thought about creating an SVG viewer for Plasma. It's more like an explorer in the sense that it is similar in kin to the current Plasma tools (plasmaenginexplorer, plasmoidviewer), except this one is meant to show a list of themes and the various SVGz's it supports, as well as what they look like. So of course, bare in mind it's not something every user should use, just like plasmaengineexplorer and friends.
Mind you, it's still a work in progress and I'm not exactly sure where I want to go with this, but I figured it might be useful for somebody who is either constructing themes, or want to browse Plasma's available SVGs easily, especially needed if you are using QML a lot.
And of course the obligatory image of awesomeness in true Plasma fashion, showing our beautiful clocks:
As the developers are slowly wrapping up KDE 4.8, it’s time to sign up to a release party near you. We have to make those release parties at least as big as all the protests against SOPA. We can do better, right? So, Wikipedia should implement a page which only makes it possible to read its content when you are listed to be present at one of the release parties. No kidding.
Ok, that is a bit harsh, but still. Release parties are organised all around the world to celebrate the release of KDE 4.8. You should go to one, most of them are relaxed, friendly and allows you to meet your local developers, contributors or just fellow KDE users.
There is also a Release Party planned in Culemborg, The Netherlands. It’s just south of Utrecht, a beautiful city in the center of the country. In the middle of the region known for the jam-production. The release party won’t have any jam though, we will stick to Pizza, cola, a soccer table, a presentation done by Sebastian Kügler and ...read more...
After releasing two beta versions and another two candidate releases (check the announcements for further information), the moment to feel a new freedom experience with KDE 4.8 Platform, Workspaces and Applications has come and we want to celebrate it all over the world.
If you are around Malaga, Spain, on Friday Jan 27th, come to our release party and bring your family and friends with you. We will have a great time. Please add yourself to the list (if you are a KDE member) or send me an e-mail, so we can make an accurate reservation in La Garrafa restaurant.
This post was supposed to be published yesterday January 18th 2012, but I’m delaying it of 24 hours in support of SOPA STRIKE
Last weekend the Digikam Code Sprint was held in Genoa (Italy). Yes, I’m not a Digikam developer, but I live in Genoa and this was a very good occasion to implement something that I’ve being planning to implement for a long time: A KIPI Plugin for Telepathy. So before saying anything else, here is the mandatory screenshot:
Telepathy KIPI Plugin
Thanks to this plugin, you will be able to send your pictures and albums from digikam, showfoto and any other application using KIPI plugins. Most of all I wanted this feature in KSnapshot, and yes this is now possible.
This is something I already implemented in the past  but I must admit that having all the contacts in a menu was a bad idea, so I gave up at the time… So this time ...read more...
Besides that, I wanted to blog about some improvements towards flawless power management inhibition. A GCI student, George Stephanos, took the task of testing and fixing inhibition in 4.8: the results were two bugs fixed, and dragon player being able to successfully prevent any power management action. But it does not stop here: yesterday I also added inhibition support in Okular – if you are giving a presentation with it, you don’t have to worry about your screen or your system going down anymore.
Microsoft announced that they had added XMPP to their Windows Live APIs. Microsoft announced that they had added XMPP to their Windows Live APIs. That means that any Jabber client could connect to MSN using our favorite open IM protocol! No more closed protocol to reverse-engineer.
Since Gabble now supports it, I just had to add a little bit of magic to support the Messenger OAuth2 authentication in KDE-Telepathy Auth Handler and add a profile to the Account Manager. Microsoft implementation still have some problems (you cannot add/authorize new contact, yahoo contacts are not shown, etc.), therefore by default the “old” method will be used, but we think that it is important that people starts using it, therefore starting from KDE Telepathy 0.3 (that will be released the 25th of January) you will be able to use XMPP protocol with your MSN account.
It is important to notice that you can have just one MSN-XMPP account at the moment, so here is how ...read more...
A default installation of a distribution using GNOME 3 can be a pain to use, but thanks to available extensions, you can make your GNOME 3 installation a little bit more fun to use, or at least closer to the type of desktop environment you are used to.
It's been quite a while since I last wrote a blog post, but it's not because I haven't been coding, in fact quite the opposite. The Qt opengov project is finally underway and I've been doing quite a lot of work on the various SSL classes. I'm now an official Qt approver, so as you can see the process of getting non-nokia developers the ability to commit to Qt is working.
In Qt 4.x and currently in Qt5 even though the various QSsl classes provide an abstraction from the underlying SSL implementation, there is only one backend and it uses openssl. I recently made a change that means we can add new backends during the Qt5 life time by separating the concepts of SSL support from the availability of SSL - of course this doesn't change anything if openssl is the only game in town.
Over the last couple of weekends, I've been investigating GnuTLS as a potential implementation that could form the basis of a second backend. I started with the easy part - handling X.509 certificates, and ...read more...
I’ve previously talked about how the Qt 5 Winter is coming. Since we started talking about that, people have begun asking what are the date limits for each thing, when the API would freeze, when Qt 5.0 would be stable, when we’d release, etc. This blog tries to answer that a little.
Last month, we were preparing a list of features that needed to be done for Qt 5.0. The result of that activity is Task QTBUG-20885, which is a meta-task containing as sub-tasks everything that needs to happen for Qt 5.0′s feature freeze. Those are the changes that must go into Qt 5.0 and not in any later release. They are major refactorings or other changes that would break source- or binary-compatibility.
The rewamp of the KDE Plasma Desktop is continuing: in the 4.8 release it got a completely new QML based device notifier (already quite improved for 4.9), now a new redesign has landed in master, scheduled for the 4.9 release of KDE Plasma Desktop.
The Plasma widget explorer and activity manager have been rewritten from scratch in QML, giving it s much smoother look and feel, new animations for free and what I love most, a way simpler code base.
By replacing the activity manager and widget explorer with the new implementation, over 4000 lines of C++ were removed (traded with around 1000 of much more readable and maintainable QML): this makes it easier to maintain, easier to spot possible problems, easier to modify and experiment new ideas.
With the rewrite of the various components of Plasma Desktop in QML I expect to slash away most of its C++ code base, making the entry level for contributors significantly lower (and being able to finally close long standing bugs ;)
Last month Linux Mint 12 was released to quite a buzz. It addressed many of the issues disaffected users experienced with GNOME 3 . This was great for GNOME users and Linux Mint in general, but hey, what about us KDE users? Well, the KDE version is nearly ready and users can test a release candidate now.
Yesterday I wrote about instruction set and ABI manuals. Today I’d like to go into details about the ABIs I listed there. This was done mostly as a summary for me: it’s tiresome to search for the information in the manuals, especially since some of the manuals are PDFs without links. For example, I never remember what is the order of the registers used in parameter passing on x86-64. So what you’ll find here is a listing of what I found interesting for when I might need to read or write assembly code.
As a bonus for you, dear reader, I added a few words about each platform.
Every now and then, when coding in C++, I find myself needing to know some assembly to understand what’s going on. Sometimes, it’s because I am actually writing assembly code, such as when I was writing the new atomic classes for Qt. More often, it’s because I need to read the assembly generated by the compiler to figure out if it’s optimal or if it’s doing something weird.
So I often found myself downloading the same manuals over and over. I decided to put together a small library of manuals I use often and those I seldom use, but might want to some day. This is the list.
Now that 4.8 is tagged and should be heading downstream someday soonish, I figured why not post some details on neat shiny improvements that won't be in it, but instead the 0.5 year from now 4.9 release, just to give you something to look forward to ;-)
In the spirit of spreading QML to everything in Plasma as best we can as well, I've now merged my WIP Konqueror as well as the Konsole session applet widgets. Or, profiles as they are sometimes called. It's a simple scenario, but I just moved the logic out from the applet into their own DataEngines and did all the UI stuff in QML.
Here's a screenshot showing what the old style one (kate, right-most widget) looked like when compared to the new (2 left-most) widgets. The old ones had non-plasma decorations and didn't fit in the workspace very well.