Available from
http://poppler.freedesktop.org/poppler-0.8.1.tar.gz
Changes since 0.8.0:
core:
* Do not call FT_Done_Face on a live cairo_font_face_t as it might cause crashes
* Do not take into account Colorspace resource subdictionary for image XObjects
* Downsample 16 bit per component images to 8 bit per component so they render
build system:
* Link to pthread when the system needs it
windows:
* Fix comparing against NULL instead against INVALID_HANDLE_VALUE when calling FindFirstFile
0.8.2 version is scheduled for May 26th
Testing, patches and bug reports welcome.
A blog about random things and sometimes about my work translating and developing KDE and anything
Saturday, April 26, 2008
Thursday, April 24, 2008
Q_FOREACH is your friend
It's real, foreach makes writing loops much more convenient, but you have to know how to use it, see the following code:
There are two problems in the usage of foreach in this code.
The first problem is serious, it is trying to use foreach to modify the values of vector. The code compiles, but if you run it, you'll notice nothing was changed, why oh why?! may you ask. Because Foo f is a local variable to the foreach, so what you are doing is modifying a variable that exists in this very same line and nothing more.
The second problem is that you are constructing far much more Foo objects than needed, if you look at the output the copy constructor is called each time in the foreach, so the correct way for the debug line would be
So remember, always that your foreach iterator is not a basic value like an int, double or pointer, use const &, it will be faster and will protect you against the try to use foreach to modify values problem, because
will not compile.
#include <QList>
#include <QtDebug>
class Foo
{
public:
Foo()
{
qDebug("Empty constructor");
}
Foo(int aa, int bb, int cc) : a(aa), b(bb), c(cc)
{
qDebug("Constructor");
}
Foo(const Foo &f)
{
a = f.a;
b = f.b;
c = f.c;
qDebug("Copy constructor");
}
int a, b, c;
};
int main(int /*argc*/, char ** /*argv*/)
{
QList<Foo> list;
list << Foo(1, 2, 3);
list << Foo(4, 5, 6);
list << Foo(7, 8, 9);
list << Foo(10, 11, 12);
list << Foo(13, 14, 15);
foreach(Foo f, list)
f.a = f.b = f.c = 0;
foreach(Foo f, list)
qDebug() << f.a << f.b << f.c;
}
There are two problems in the usage of foreach in this code.
The first problem is serious, it is trying to use foreach to modify the values of vector. The code compiles, but if you run it, you'll notice nothing was changed, why oh why?! may you ask. Because Foo f is a local variable to the foreach, so what you are doing is modifying a variable that exists in this very same line and nothing more.
The second problem is that you are constructing far much more Foo objects than needed, if you look at the output the copy constructor is called each time in the foreach, so the correct way for the debug line would be
foreach(const Foo &f, list)
qDebug() << f.a << f.b << f.c;
}
So remember, always that your foreach iterator is not a basic value like an int, double or pointer, use const &, it will be faster and will protect you against the try to use foreach to modify values problem, because
foreach(const Foo &f, list)
f.a = f.b = f.c = 0;
will not compile.
KUbuntu 8.04 released with rock solid 3.5.9 goodness...
...unless you try to automount USB devices, because that'll give you a deadlocked kded! HORRAY! It's quite interesting to see how a bug caused for a patch to use LUKS is not fixed or the patch reverted when such an used feature has such a big bug like deadlocking kded...
Tuesday, April 22, 2008
Spanish keyboard, dead ~ or not?
If you are using a Spanish keyboard layout, you may have noticed that in some Xorg update, AltGr+4 stopped typing a ~ and then you had to do AltGr+4+space or AltGr+4+AltGr+4 to get a ~.
This is because a non spanish user requested that change and Xorg people changed it.
I asked it to be reverted as there's no use for a dead ~ in Spanish as we don't have ã nor õ (we have ñ but we have a whole key for that) and the xkb maintainer asked me to run some kind of votation so that people decides what they like more.
So please, if you have an opinion on that issue go to http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=477197 and http://bugs.freedesktop.org/show_bug.cgi?id=9763 to get all the facts and write your opinion to 477197@bugs.debian.org
This is because a non spanish user requested that change and Xorg people changed it.
I asked it to be reverted as there's no use for a dead ~ in Spanish as we don't have ã nor õ (we have ñ but we have a whole key for that) and the xkb maintainer asked me to run some kind of votation so that people decides what they like more.
So please, if you have an opinion on that issue go to http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=477197 and http://bugs.freedesktop.org/show_bug.cgi?id=9763 to get all the facts and write your opinion to 477197@bugs.debian.org
Dissappointed with SoC results
So, selected KDE SoC projects are out, and i have to say that personally i'm somewhat disappointed.
Personally i think we've done bad decisions in leaving proven KDE people with sensible projects out, while betting for too many non-proven newbies.
Besides that, the IRC meeting had, in my opinion, too much power over the final outcome, and people like me or David that could not attend it, saw how their mentored projects got dismissed when probably if we had been there that would not have happened so easily.
But well, that huge power of the IRC meeting is also probably due to Google's webpage sucking when you have to rate over 250 applications.
So life's hard, nothing to see here, keep moving.
Personally i think we've done bad decisions in leaving proven KDE people with sensible projects out, while betting for too many non-proven newbies.
Besides that, the IRC meeting had, in my opinion, too much power over the final outcome, and people like me or David that could not attend it, saw how their mentored projects got dismissed when probably if we had been there that would not have happened so easily.
But well, that huge power of the IRC meeting is also probably due to Google's webpage sucking when you have to rate over 250 applications.
So life's hard, nothing to see here, keep moving.
Sunday, April 13, 2008
fglrx blocking Xorg on logout
If you are running Kubuntu Hardy with the flgrx drivers and logging out does not work due to the Xorg process locking up at 100% of CPU usage, you should thank Stefan Carslöv for tracking down the issue to /etc/ati/authatieventsd.sh being unproperly configured, you need to change
to:
XDM_AUTH_MASK=/var/lib/xdm/authdir/authfiles/A$1*
to:
XDM_AUTH_MASK=/var/run/xauth/A$1*
Thursday, April 10, 2008
Wednesday, April 02, 2008
iParty X was awesone
This weekend i was with some other spanish KDE dudes (ereslibre, apol, ana`, nefertum and pgquiles) at the Aditel iParty X where we did some talks about KDE. It was a very nice experience being at a Free Software only party.
We celebrated ereslibre's anniversary with a KDE cake and a huge greeting :-)
You can see the photos at http://www.kde.cat/aacid/fotos/ipartyx/ and the Qt4 Dance at http://www.youtube.com/watch?v=EZxmKzbbmEU
We celebrated ereslibre's anniversary with a KDE cake and a huge greeting :-)
You can see the photos at http://www.kde.cat/aacid/fotos/ipartyx/ and the Qt4 Dance at http://www.youtube.com/watch?v=EZxmKzbbmEU