Saturday, January 17, 2015

KDE End of Year 2014 Fundraiser is over

Yesterday was the last day of the KDE End of Year 2014 Fundraiser.

I want to thank publicly the 788 donors that helped us raise over 22000 euro.

You all rock and rule!


Thanks to this money we'll be able to keep sponsoring developers to attend conferences and sprints to improve the software we all love and use.

Of course there's never enough money so we still greatly appreciate your donations at http://kde.org/donate or even better you can become a KDE Supporting Member.

Wednesday, January 14, 2015

KDE Applications 15.04 Release Schedule

The schedule for KDE Applications 15.04 release is ready. As always it's available in techbase at https://techbase.kde.org/Schedules/Applications/15.04_Release_Schedule.

The Freeze is only six weeks away!

Saturday, December 20, 2014

New full changelogs for KDE Applications releases

With 14.12.0 we've introduced full changelogs for KDE Applications releases; you can see it at https://www.kde.org/announcements/fulllog_applications-14.12.0.php.

To generate this changelog we diff from previous release to the released one and use the commit message with a few annotations for stuff like REVIEW: BUG: etc.

This means the world is now going to see your commits more so spend 3 seconds when writing them instead of 0.5 ;)

If someone wants to improve the page (I'd like to have a checkbox that shows only commits that fix bugs) please contact me :)

The code lives in the release-tools repo (this is probably my longest python script, so be gentle ;))

Wednesday, December 03, 2014

KDE End of Year Fundraising cards are being sent out!

We ordered some samples to make sure they looked good, and here they are here!


If you want some, we will send them to you as gift if you donate to the KDE End of Year 2014 Fundraising

P.S: If you made a donation that qualifies for a postcard gift before this monday and have not received an email from me asking which design and to which address you want the postcards sent please contact me at aacid@kde.org

Friday, November 14, 2014

Keywords vs X-KDE-Keywords on .desktop files

Seem similar, do they? But they have a *radical* difference, one is "old" (X-KDE-Keywords) and the other is "new" (Keywords). The "new" one is also an xdg standard and as such the separator is ';'. The old one is just a KConfig string list and thus the separator is ','.

Great isn't it?

TL;DR
X-KDE-Keywords uses , for separation
Keywords uses ; for separation

Wednesday, November 12, 2014

Third design added for the KDE End of Year 2014 Fundraising Campaign!

I hope you know we're running a Fundraiser Campaign in KDE land. As a way to say thank you donors over 30€ get a postcard.

Today we've announced the last of the three designs you can choose as a gift when donating.

Donate and get a physical copy of it ;)

Friday, November 07, 2014

KDE Gardening Love Project: KRecipes

KRecipes has been in 2.0beta since 2010 so we decided it will be our next Love Project.

Objectives:
* We want to release 2.0 "quickly" and then 2.1 in one/two months.
* Migrate https://lists.sourceforge.net/lists/listinfo/krecipes-devel over to kde.org
* Migrate http://krecipes.sourceforge.net/ contents over to https://userbase.kde.org/KRecipes
* Add krecipes group to reviewboard that mails the KDE mailing list
* Add krecipes to jenkins that mails the kde.org mailing list
* Make sure bugs/reviewboards are defaulted to kde.org and go thorugh
* Port some of the Qt3Support code (make sure don't break stuff) :D

We will be updating this list at https://community.kde.org/Gardening/KRecipes

If you want to join the initiative please join the KDE Gardening mailing list and announce yourself :)

Tuesday, November 04, 2014

K3b 2.0.3 released

K3b 2.0.3 can be downloaded from http://download.kde.org/stable/k3b/k3b-2.0.3a.tar.xz

I don't have access to k3b.org so can't update the news there, shows why the Manifesto is such an important thing.

Changelog since 2.0.2:
* Fixed crash in MetaItemModel on submodel item removal
* Fixed Solid predicates for AudioCd and VideoDvd media. BUG: 265819
* Set error status when CDDB query fails.
* Prefer growisofs to wodim for DVD/BluRay burning.
* Fixed improper track number in CDDB track edit window title. BUG: 276681
* Fixed crash on detecting writing speeds. BUG: 272427
* Fix problem with HL-DT-ST BH10LS30. BUG: 268307
* Fixed compilation with new FFMPEG. BUG: 274817 BUG: 300731
* Allow using CD-R90 and CD-R99 media to full capacity. BUG: 276002
* Refactor the FreeBSD SCSI/CAM interface.
* Fix crash on dvd ripping
* fix sox detection with sox >= 14.4.0. BUG: 301544
* Support more media types. BUG: 261652
* Fix file system detection. BUG: 325616 BUG: 262607
* Surround output filename for transcode with double quotes. BUG: 326097
* Fix FILE name and type detection for cue sheet images. BUG: 337201
* Rip audio tracks in ascending numerical order. BUG: 319678
* Upstream patches from NetBSD.
* Make paranoia lib detection better.
* Don't preview if called process failed. BUG: 268680
* Fix Crash while remove songs in "Mixed mode CD proyect". BUG: 323117
* Use QElapsedTimer to calculate remaining time. BUG: 330239 BUG:315463
* Fix crash in lsof wrapper. BUGS: 340515

This marks the end of the "Gardening Love Project", I'll still be subscribed
to the k3b list but won't do any more than some lurking

I think someone should stand up and start thinking for a 2.1 release.

Monday, November 03, 2014

New postcard design added for the KDE End of Year 2014 Fundraising Campaign!

You probably know we're running a Fundraiser Campaign in KDE land. As a way to say thank you donors over 30€ get a postcard.

Today we've announced the second of three designs we are planning.

Donate and get a physical copy of it ;)

Thursday, October 16, 2014

KDE Gardening Team: K3b

As mentioned on other KDE Gardening Team bugs we are focusing on getting K3b 2.0.3 release out.

The release will be on 4th November if all goes to plan.

Also we are going through the bugs doing two things:

  • Checking if it still happens and asking people to give more info if needed
For bugs that are easy enough to reproduce (i.e. they do not involve having 13 CD burners or writing 50GB of data to a BlueRay disc) we are trying to reproduce them and if we can't ask the reporter for more information while setting the bug status to NEEDSINFO+WAITINGFORINFO

  • Classifying it regarding it's gardening potential
For bugs that we can reproduce or we think they have enough information we are classifying them in three groups using the gardening flag in bugzilla "+" for crashes that are really critical to be fixed before the release[1], "?" for bugs that seem to be relatively easy and someone could pick up and fix if has time but are not a problem if not fixed, and "-" for bugs that are out of the scope of the gardening initiative. Being out of scope of the gardening initiative doesn't mean the bug is more or less valid, it just means that it is not for the gardeners or not very involved people to fix this bug and requires people with more commitment.

You can visit https://community.kde.org/Gardening/K3b for the relevant bugzilla links.

[1] This should be a mostly empty list since we already have 2.0.2 out and doesn't make sense to delay 2.0.3 until a bug is fixed given 2.0.3 will be already better than 2.0.2

Make the World a Better Place! - KDE End of Year 2014 Fundraising



At KDE sometimes we focus in the technical parts of Free Software. This is understandable since most of us are technical people doing a technical job.

But KDE also has a huge social impact, thanks to KDE there's schools that can teach touch typing , there's people out there that can do their accounting, there's business that can fill their taxes. KDE does provide quality software for all the world to use, making it a better place for all of us.

Donating to KDE is not for you, it is for the entire world.

As a way to say thank you, starting with € 30 KDE e.V. will send a KDE themed postcard to any given address. You will get an extra card for every additional € 10 donation.

More at https://www.kde.org/fundraisers/yearend2014/

Saturday, September 27, 2014

Plasma 5.1 release parties!

Plasma 5.1 is coming up in less than a month, we have already two release parties in the planning, but i'm sure you have some fellow KDE users around you want to meet and have a beer with, so hop onto your local LUG, meetup, or something, organize a party and add it to https://community.kde.org/Promo/Events/Release_Parties/Plasma5.1

Thursday, September 25, 2014

The KDE Gardening Team

At Akademy I did a short talk (8 min) + herded a BoF with a title called "Quality is in the eye of the beholder".

One of the topics was that we should try to get a team of people to care about the global state of KDE software, we've decided to call this "The Gardening Team".

The mandate of the team is to:
# Find *really* important bugs and ping people to fix them
# Find stale reviewboards and ping people to fix them
# Bugzilla gardening, close old products etc
# Find projects that need love and give them some

For that we have various ideas:

Try to find monthly a bug to get people to fix it, by highlighting it as "The Bug of The Month" or something. Of course this bug can't be stuff like "Make Okular support javascript", it has to be something that is really a pain point of the whole user base and we think we can find people to fix it, it makes no sense setting impossible goals ;)

Do routine passes over reviewboard trying to identify stale requests and finding people to help moving those.

Run something called "Love Project". The idea is to pick up a project that is somewhat stale, and for a short amount of time (let's say 2/3 months) try to get a new release out, fix the most important crashers/bugs, get the review boards released, etc. This goal of the team is *not* becoming the maintainers of the project, but maybe by virtue of the "Love Project" we can attract new contributors that decide to.

Since we're only a few maybe we can't do this all, so we're focusing on a particular "Love Project" by now, but you should join and help us do more!

Our current Love Project is K3b, that had 2.0.2 released a long time ago and has a 2.0 branch with a few more bugfixes that have been never released.

We are coordinating through https://todo.kde.org/?controller=board&action=show&project_id=26 at the moment but plan to get a mailing list soon (or invade an unused existing one).

If you're interested, comment and i'll give you a shout when the list is created, no mega skills are needed (though people with mega skills are also welcome ;))

Wednesday, September 24, 2014

KDE Applications 14.12 Release Schedule

The schedule for KDE Applications 14.12 release is ready. As always it's available in techbase at https://techbase.kde.org/Schedules/Applications/14.12_Release_Schedule.

The Freeze is only one month away!

Sunday, September 07, 2014

Okular wants to "Save"

TLDR - Short version:
We are reworking part of the "Save As" code, and we are adding the long-requested "Save" button! The old "internal implicit save" behavior is being dropped and we need your input about what to do with data saved internally by previous Okular versions.

Please visit https://forum.kde.org/viewtopic.php?f=251&t=122750 and share your opinion on the poll/comments.

Saturday, August 23, 2014

KDE Community plans for Releases in the Future

Long post about releases ahead, brace yourselves!

Last week we released KDE Applications and KDE Platform 4.14.

KDE Applications, KDE Platform and KDE Workspaces were sometimes collectively referred as the "KDE Software Compilation" or "KDE SC" in short form, which is arguably a bad name, but it is what it is.

The "Software Compilation" started dying a while ago and 4.14 marks its end.

KDE Platform was 'virtually frozen' a long time ago, but we kept increasing the version number for some reasons that are now not important, so KDE Platform 4.14.x will be the last version, of course we will go to very high 'x' if there is bugfixes to be done.

KDE Frameworks 5 is the successor of KDE Platform based on Qt5, it's already on 5.1 and the team plans to release a new 5.x version with both features and bugfixes every month.

KDE Workspaces was frozen at 4.11.x, in fact if you check your distro, you are probably using 4.11.somehighnumber, the plan is to keep doing releases for at least a year if there are bugfixes available.

Plasma 5 is the successor of KDE Workspaces based on KF5, it's currently at 5.0.1. The team plans releasing a stable 5.x.y version every month with bugfixes and a 5.x+1 feature release every three months.

That leaves us with the third component of the old releases, "KDE Applications", comprised of more than 100 applications. We want those to move to Qt5 and KF5 since it's simply a better world, but we're not going to do it all at once as we did in 4.0. We will give the maintainers the choice to move as they feel the quality of their KF5 port is good enough.

KDE Applications has been having feature releases every four months, with bugfix releases in the three months in between.

We don't plan changing that, but to highlight that applications can be used independently of the libraries used to build the desktop you are using, we're just going to use a time approach for version numbers, that is, next release will be "KDE Applications 14.12"

And that marks the end of the SC era since libraries, desktop and applications are now in a separate release schedule.

Also, if you are at akademy we're having a short session Sunday at 10:40, and I guess i'll schedule a BoF later in the week.

Saturday, August 16, 2014

Akademy 2014 needs *you*

Akademy 2014 is just 3 weeks away.

If you haven't registered, you should register now, but since probably you are registered already, the next step is thinking if you want to be a volunteer.

Every big event needs volunteers: infodesk people, session chairs, video operators, etc.

If you want to make Akademy 2014 a success please go over to https://community.kde.org/Akademy/2014/Volunteers and sign yourself up!

Thursday, August 14, 2014

KDE Randa Meetings 2014 - The End

Everything, good or bad, reaches to an end. So will do the KDE Randa Meetings 2014 in a few hours.

I can't say all the great stuff that has happened here the last few days, but i'll try to summarize:
* The book is looking great and something that would help us grow
* api.kde.org got some love and more to come in the future.
* Planning on making life easier for newbies trying to compile and contribute patches
* KF5 ports of lots of programs in progress
* Lots of planning on automating tasks
* GCompris being more KDE
* Bugfixing everywhere
* Awesome people all around

Thanks to everyone that donated in the Randa 2014 fund-raiser.

Thanks Mario for such a beautiful event.

And of course, do not forget about the next big KDE event you should to attend: AKADEMY 2014 in 3 weeks!

Tuesday, August 12, 2014

KDE Randa Meetings 2014 Day 4

Time flies when you're in good company, i planned to blog every day and now i realize we're on day 4 already.

Well, here comes some of the things i've been doing
* Participated in a few discussions about "the KDE SDK" Aleix seems very promising to recruit new developers :) Let's see if I can convince Aleix to blog about it
* KGeography port to KF5 started by David Gil is now complete.
* Started and finished Blinken port to KF5
* Made some patches for some frameworks while porting KGeography

Some of the cool things I've seen:
* kdenlive cleaning up their code to ease maintaince
* GCompris, a nice educational tool for children
* The KF5 Book is shaping up nicely
* Lots of KF5 porting and refining everywhere

Let's keep rolling!

Saturday, August 09, 2014

KDE Randa Meetings 2014 Day 1

I wasn't planning on attending KDE Randa Meetings 2014 but last Wednesday I decided to, so bought some not so cheap plane and train tickets (don't worry, I payed from my own pocket) and here I am surrounded by awesome KDE hackers in the middle of the Swiss Alps.

I want to thank the more than 400 people that helped us fund KDE Randa Meetings 2014, you are awesome and directly responsible of improvements that are to come to millions of users in the world.

And remember we still need money to fund more sprints and stuff, so head over to our donations page and help us improve the world!

Friday, August 08, 2014

Help the KDE promo team do their work

We KDE developers have been working on the KDE Applications 4.14 release for the past four months, we've implemented features and important bugfixes. Now the release is near, and we have to write release notes so that our users get the message.

The thing about writing release notes is that you can't write about stuff you don't know, and KDE Applications is biiiiiiiiig so it's impossible for a small group of promo people to know all that happened to it in the last 4 months.

This means *you* developers have to help the promo team write the promo highlighting the most important changes you did to your app and writing them at https://notes.kde.org/p/release_4.14_kde-devel_notes so they can write a more distilled and promo-like text.

Please help them help you.

Tuesday, July 29, 2014

Logging in into Picasa 3.9 under Linux

A few years ago I showed my father Picasa under Linux, he liked it and started to use it to upload his photos, and has been using it for almost 6 years, even Google discontinued Picasa for Linux at version 3.0 (Picasa is at 3.9 now).

Unfortunately a few weeks ago seems Google decided to kill support for old APIs in the server side and Picasa 3.0 for Linux was giving back an error when trying to upload an image ("Could not find POST url" or similar). I suggested to wait to see if they would come back, but it seems they haven't and so i've had to fix it for him.

Since he's heavily invested in Picasa I've had to install Picasa for windows under wine to make it work. It has not been trivial to get to work so I'll share it here for others that committed the error of trusting privative software and services.

The story is this: Installing picasa 3.9 for windows under wine is pretty easy (next, next, next). The problem is once you are running it, being able to log in. First problem is that the webview using for login doesn't even show. Most of the interwebs suggest installing ie8 using winetricks to solve that and it indeed solves the problem of the webview not showing, but still i can't log in (interestingly the webview will tell you if you wrote the password wrong).

At this point i was stuck for a few hours, even found some dude that claimed he had installed Google Chrome Frame for Internet Explorer and that had fixed for him. But not for me.

After a few hours, I stopped trusting the internet and started to think. I have a windows installation laying around, and i can log in from there, and once logged in Picasa does not ask for the password again, so it must be storing something no?

So I made a copy of the Program Files folder and compared it after loggin in, folders where exactly the same. So it was not stored there, which makes sense since log in is per user not per machine. Next i tried in that weird Personal Folder (Windows $HOME) but could not find any change either. Last chance was the registry, i used http://www.nirsoft.net/utils/reg_file_from_application.html and saw that when logging in, Picasa writes a few entries in HKEY_CURRENT_USER\Software\Google\Picasa\Picasa2\Preferences namely GoogleOAuth, GoogleOAuthEmail, GoogleOAuthServices and GoogleOAuthVersion, so I copied these over to the wine installation (with "wine regedit") and now my father can run Picasa just fine again.

Lessons learned:
* Non Free Software will eventually come back and hit you, if possible don't use it for stuff that is critical to you
* Think about your problem, sometimes is easier than just googling random instructions from the internet.

Sunday, July 20, 2014

My way to develop with git in KDE repos

From time to time there is the discussion of which workflow is better to develop with git, etc.

I'm not going to try to convince anyone on which workflow to use, i'm just going to explain what i do and explain why i think it's useful (and even more in the multi-developer KDE environment).

Let's picture the scenario we had a few days ago where there were lots of projects with three "live" branches, i.e. KDE/4.13, KDE/4.14 and master.

What is my way to develop?
* Bugfixes go to oldest "live" stable branch
* Features go to oldest "live" non frozen branch
* Branches are merged up

So let's say that I develop a new feature to support a whole new document format to Okular. Since that is a new feature it would go to the "oldest live non frozen branch", that in this case was master since KDE/4.13 and KDE/4.14 where already feature frozen. So I commit it to master and then "Branches are merged up" which in this case means nothing since there's no branch "up" from master.

Now let's say there's a crash bug when opening a file with three monitors. Since that is a bugfix, it'd go to the "oldest live stable branch", that in this case would be KDE/4.13. And then "Branches are merged up", so i would mean 4.13 into 4.14 and after that 4.14 into master. Ensuring that 4.14 and master also have the bugfix.

I think that this is a very useful way of developing using git branches for a lot of reasons, but the biggest of them is that for a random person it is easy to know if a "branch high in the hiearchy" has all the bugfixes or not, he just have to go to KDE/4.14 and to "git merge origin/KDE/4.13", if no change is brought over, it means that for sure all the bugfixes and code that was in the 4.13 release will be in the 4.14 release, otherwise it is hard to know.

So now that 4.13 is not going to be released anymore and 4.14 is a very young fork of master, i suggest that for every push you do to KDE/4.14 you go to the master branch and merge origin/KDE/4.14. This way you will have a master that is always fully merged with 4.14 and a third party person looking at your code (like the release manager) won't have to worry if it contains all the code or not.

Happy hacking!

And of course if you disagree with me, that's fine, not that i'm happy if my reasons did not convince you :)

Wednesday, July 09, 2014

KDE/4.14 branch forked

KDE/4.14 branch forked, master is now open. Next applications release will be a kdelibs4 and KF5 mix!

http://mail.kde.org/pipermail/kde-cvs-announce/2014/000147.html

Tuesday, May 20, 2014

KDE is a nice community, but we can do better!

Since a long time KDE.org has been referring to KDE as a team of people, a community, and not the software products we make.

I agree with this but sadly sometimes we struggle in being a nice community to live in.

There's a few things I think we can improve:
  • Being better 'winners': We are a big community, at some point we have to take community-wide decisions, and it's impossible we will all agree on something. If you are part of the 'winning' group, be gentle with the people that 'lost', sure you think you are right, but they think the same and think the rest is doing a terrible mistake, so when you talk with them be polite and point out that the majority is going in the other direction, but that you still appreciate all the other stuff they do, etc. They already 'lost' so there's no need to put their head under your foot and do an evil laugh.
  • Being better 'losers': We are a big community, at some point we have to take community-wide decisions, and it's impossible we will all agree on something. If you are part of the 'losing' group, be accepting that you 'lost' and try to carry on with the amazing work you do in other areas. Sure you are allowed to some venting, but it should be all within the limits of not trying to drag the discussion forever and not trying to destroy the project just because you disagree in one decision, so yes, you're allowed to some small complaining but understand that the majority decided different than what you think it's better, accept it and carry on, you'll be happier :)
  • Assuming good by default: If a sentence can be read in two ways, do not assume it was said in the worse way, assume it was said in the good. Will help keeping the discussion sane and constructive.
  • Not workarounding by default: If you find a bug or shortcoming in kdelibs, KF5, Qt or any other library, don't workaround it by default, please report it to the library people and try to work with them to fix it. Library code is not that hard and if you fix it in the source, everyone will benefit from the fix, not just the users of your software because you workarounded it and kept quiet about it to upper layers.
  • Not caring enough for the global: We produce zillions of different projects of software. It's almost impossible to have a global overview of "what the bad bugs are", so if you know there is a bug that is bad, and it's affecting quite a bit of people, don't say "someone else will fix it" and ignore it, share it with the wider community and if the current maintainers are missing or overworked I'm pretty sure we can find someone to have a look and fix that bug that is making people sad.

This doesn't happen all the time, but it happens more than I would like, so I'm just raising it up so that people think about it and try to improve :)

Of course I'm not saying I'm not guilty of the things I mentioned, but as the wise-man said: "Don't do what i do, do what i say"

Wednesday, May 14, 2014

Web developer: Help KDE with a few hours of work

At KDE we're trying to get people to donate more (I hope I don't have to explain to this audience why), one of the ideas floating around is adding a small "impulse donate" button to kde.org similar to the one at http://www.videolan.org/ (only with euros and without a "why?" link for now)

I'm not a web devel by far (though have done my fair share of copy&pasting php, html and css for KDE and other personal projects) but I understand it should not be "that hard"™, it would be basically doing some modifications of the kde.org sources, the capacity framework and doing some reuse of the existing paypal donation page code.

Anyone up for the work? If so, please contact me!

Tuesday, May 06, 2014

Commit your approved Review Requests!

By looking at KDE git Review Board I realize we have over 4 pages of "ship it"-ed review requests that are still marked as not commited.

This is nuts!

I know some of them are still work in progress (yes, it sucks that reviewboard does not let you "unship it" when you find something wrong or when some newbie mistakenly gives himself a +1) but I am pretty sure at least 3 of those 4 pages are stuff that was coded, reviewed, approved and then no one committed it :/

So please go through your reviewboard changes and commit them, or ping the maintainer of the app if you don't have commit rights (and if the maintainer is unresponsive for some reason and it's obvious you had his "Ship it" just come to me and I'll commit it for you).

Wednesday, April 16, 2014

KDE Applications 4.13 released

Today we've released 4.13 which is probably the best KDE Applications release ever :)

It also marks the second release we do with a four months schedule instead of a six month one. I think we've ended up with a pretty nice cadence in which we are faster delivering features and bugfixes to users, which at the end is what is important, since the earlier people get the features the earlier they'll find the bugs (let's accept it, all software has bugs) and the earlier the bugs are found the earlier they can be fixed. So basically it's faster progress :)

We have also made good our promise to keep our tests passing, as you can see everything from this release is green (kde-workspace is not green but is not part of the 4.13 release). So kudos to all developers for being awesome in that regard too.

Let's all celebrate on this release but not forget we need to keep working full steam ahead on the releases of KDE Frameworks 5, Plasma 2014.06 and KDE Applications 4.14.

Finally I'd like to remind you that most of the people doing KDE development are volunteers and they invest their time in making this awesome software for you to use for free.

Lots of them even spend time to travel abroad to meet each other in Sprints were they do concentrated hacking for a few days, so if you appreciate the work they do in those Sprints please donate some money so we can actually help them travel and we can make more Sprints happen :-) http://www.kde.org/community/donations/

As anecdote, I had the pleasure of meeting the guys from the KTP Sprint this Friday and after dinner they went back to hacking instead of joining some of us for some beers. That is dedication!

Tuesday, March 25, 2014

ASAN and libraries (2nd part)

In ASAN and libraries I claimed you didn't need to compile a library with -fsanitize=address to get ASAN to work over it. Well it turns out that is only true in some cases and in some others like the one in this example you actually need it. So here comes a different example and the differences of using -fsanitize=address and not in the library code.

shared.cpp
#include "shared.h"

Foo::Foo()
{
int a[1];
a[2] = 3;
}



shared.h
class Foo
{
public:
Foo();
};



main.cpp
#include "shared.h"

int main(int, char **)
{
Foo f;
return 0;
}

Let's see what happens if we do
export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-3.4
export ASAN_OPTIONS=symbolize=1
g++ -Wl,--no-undefined -shared -o libshared.so shared.cpp -g3
g++ -fno-omit-frame-pointer -fsanitize=address main.cpp -lshared -L . -g3
LD_LIBRARY_PATH=. ./a.out
As the suggested in the previous blog entry.

Nothing, no error detected.

But if we change to
export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-3.4
export ASAN_OPTIONS=symbolize=1
g++ -fno-omit-frame-pointer -fsanitize=address -Wl,--no-undefined \
    -shared -o libshared.so shared.cpp -g3 -lasan -fPIC
g++ -fno-omit-frame-pointer -fsanitize=address main.cpp -lshared -L . -g3
LD_LIBRARY_PATH=. ./a.out

==13069== ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7fffe74fafa8
at pc 0x7fb0ef71f792 bp 0x7fffe74faf60 sp 0x7fffe74faf58
WRITE of size 4 at 0x7fffe74fafa8 thread T0
    #0 0x7fb0ef71f791 in Foo::Foo() /home/tsdgeos/test/shared.cpp:6
    #1 0x40074a in main /home/tsdgeos/test/main.cpp:5
    #2 0x7fb0ef37aec4 (/lib/x86_64-linux-gnu/libc.so.6+0x21ec4)
    #3 0x400638 in _start (/home/tsdgeos/test/a.out+0x400638)
Address 0x7fffe74fafa8 is located at offset 40 in frame <__base_ctor> of T0's stack:

Boom! We get the error :-) So my conclusion that ASAN wasn't needed on libraries was bad. You need it. Thanks Zecke for pointing me to my wrongness :-)

Saturday, March 22, 2014

ASAN and plugins

In ASAN and libraries Milian asked if the reasoning for libraries also applied for plugins. Since I had no idea, I had to try it.

Here comes the output

main.cpp
#include <QDebug>
#include <QLibrary>

int main(int, char **)
{
    QLibrary l("libshared");
    qDebug() << l.load();

    return 0;
}
shared.cpp
#include "shared.h"

static Foo f;

Foo::Foo()
{
    int *a = 0;
    *a = 33;
}
shared.h
class Foo
{
public:
    Foo();
};
export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-3.4
export ASAN_OPTIONS=symbolize=1
g++ -shared -o libshared.so shared.cpp  -g3 -fPIC
g++ -fsanitize=address main.cpp -g3 -I /usr/include/qt4/QtCore/ \
    -I /usr/include/qt4/ -lQtCore
And then we run it!
$ LD_LIBRARY_PATH=. ./a.out 
ASAN:SIGSEGV
=================================================================
==7048== ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000
(pc 0x7f199c1326aa sp 0x7fff37e557c0 bp 0x7fff37e557c0 T0)
AddressSanitizer can not provide additional info.
 #0 0x7f199c1326a9 in Foo::Foo() /home/tsdgeos/test/shared.cpp:8
 #1 0x7f199c1326da in __static_initialization_and_destruction_0(int, int) 
    /home/tsdgeos/test/shared.cpp:3
 #2 0x7f199c1326ef in _GLOBAL__sub_I_shared.cpp /home/tsdgeos/test/shared.cpp:9
 #3 0x7f19a132b139 (/lib64/ld-linux-x86-64.so.2+0x10139)
 #4 0x7f19a132b222 (/lib64/ld-linux-x86-64.so.2+0x10222)
 #5 0x7f19a132fc6f (/lib64/ld-linux-x86-64.so.2+0x14c6f)
 #6 0x7f19a132aff3 (/lib64/ld-linux-x86-64.so.2+0xfff3)
 #7 0x7f19a132f3ba (/lib64/ld-linux-x86-64.so.2+0x143ba)
 #8 0x7f199d1a602a (/lib/x86_64-linux-gnu/libdl.so.2+0x102a)
 #9 0x7f19a132aff3 (/lib64/ld-linux-x86-64.so.2+0xfff3)
 #10 0x7f199d1a662c (/lib/x86_64-linux-gnu/libdl.so.2+0x162c)
 #11 0x7f199d1a60c0 (/lib/x86_64-linux-gnu/libdl.so.2+0x10c0)
 #12 0x7f199e0156b7 (/usr/lib/x86_64-linux-gnu/libQtCore.so.4+0x16e6b7)
 #13 0x7f199e010599 (/usr/lib/x86_64-linux-gnu/libQtCore.so.4+0x169599)
 #14 0x4011c0 in main /home/tsdgeos/test/main.cpp:8
 #15 0x7f199d5e8ec4 (/lib/x86_64-linux-gnu/libc.so.6+0x21ec4)
 #16 0x401078 in _start (/home/tsdgeos/test/a.out+0x401078)
SUMMARY: AddressSanitizer: SEGV /home/tsdgeos/test/shared.cpp:8 Foo::Foo()
==7048== ABORTING

So it seems that "plugins are just libraries" applies here :)

Thursday, March 20, 2014

ASAN and libraries

Yesterday we saw how to get line numbers in the stacktrace when using ASAN and gcc, today we're going to see how to deal with ASAN and libraries. For that we're going to use these three very simple files

shared.cpp
#include "shared.h"

Foo::Foo()
{
    int *a = 0;
    *a = 33;
}


shared.h
class Foo
{
public:
    Foo();
};


main.cpp
#include "shared.h"

int main(int, char **)
{
    Foo f;
    return 0;
}

We do the initial compilation:
g++ -Wl,--no-undefined -shared -o libshared.so shared.cpp -g3
g++ main.cpp -lshared -L . -g3
LD_LIBRARY_PATH=. ./a.out
and it segfaults :)

Now we want to use ASAN to find out what's wrong, where do we add the -fsanitize=address -fno-omit-frame-pointer? Logic would say that we add it to both places, but actually it's only necessary to add it to the final binary, i.e

g++ -Wl,--no-undefined -shared -o libshared.so shared.cpp -g3
g++ -fno-omit-frame-pointer -fsanitize=address main.cpp -lshared -L . -g3
LD_LIBRARY_PATH=. ./a.out
and we get
==10226== ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000
(pc 0x7f497563f66a sp 0x7fff77cc4310 bp 0x7fff77cc4310 T0)
AddressSanitizer can not provide additional info.
    #0 0x7f497563f669 in Foo::Foo() /home/tsdgeos/test/shared.cpp:6
    #1 0x40074a in main /home/tsdgeos/test/main.cpp:5
    #2 0x7f497529aec4 (/lib/x86_64-linux-gnu/libc.so.6+0x21ec4)
    #3 0x400638 in _start (/home/tsdgeos/test/a.out+0x400638)
SUMMARY: AddressSanitizer: SEGV /home/tsdgeos/test/shared.cpp:6 Foo::Foo()

There you go, no need to add the -fsanitize=address flag to the library compilation :)

Now, until a few minutes ago I did not know this, I actually was adding -fsanitize=address to the library itself; that comes with a few problems that i'll explain how i solved (just for completeness, since the above example shows you don't need it)

My logic was that by looking at main.cpp i knew nothing could be wrong there so i decided i wanted sanitize the library, my first attempt was:

g++ -Wl,--no-undefined -shared -o libshared.so shared.cpp -g3 \
-fno-omit-frame-pointer -fsanitize=address
which gives a linking error
/tmp/cc18Wen3.o: In function `Foo::Foo()':
/home/tsdgeos/test/shared.cpp:6: undefined reference to `__asan_report_store4'
/usr/bin/ld: /tmp/cc18Wen3.o: relocation R_X86_64_PC32 against undefined symbol
`__asan_report_store4' can not be used when making a shared object;
recompile with -fPIC
/usr/bin/ld: final link failed: Bad value

OK, so we are told to recompile with -fPIC, easy peasy

g++ -Wl,--no-undefined -shared -o libshared.so shared.cpp -g3 \
-fno-omit-frame-pointer -fsanitize=address -fPIC
Which still fails to link!
/tmp/ccNkpRZo.o: In function `Foo::Foo()':
/home/tsdgeos/test/shared.cpp:6: undefined reference to `__asan_report_store4'
/tmp/ccNkpRZo.o: In function `_GLOBAL__sub_I_00099_0_shared.cpp':
/home/tsdgeos/test/shared.cpp:7: undefined reference to `__asan_init_v1'
collect2: error: ld returned 1 exit status

OK, so if ASAN symbols are missing, let's just compile libasan in

g++ -Wl,--no-undefined -shared -o libshared.so shared.cpp -g3 \
-fno-omit-frame-pointer -fsanitize=address -fPIC -lasan
Links!

Next since I know nothing is wrong in main.cpp I don't need ASAN in there

g++  main.cpp -lshared -L . -g3
Compiles!

But when run it segfaults :-/ And if you debug it you'll see a stack trace like
#0  0x0000000000000000 in ?? ()
#1  0x00007ffff4894bf1 in ?? () from /usr/lib/x86_64-linux-gnu/libasan.so.0
#2  0x00007ffff4894e32 in ?? () from /usr/lib/x86_64-linux-gnu/libasan.so.0
#3  0x00007ffff4895d9b in __asan_init_v1 () from /usr/lib/x86_64-linux-gnu/libasan.so.0
#4  0x00007ffff7bd8776 in _GLOBAL__sub_I_00099_0_shared.cpp(void) () at shared.cpp:7
#5  0x00007ffff7dea13a in call_init (l=, argc=argc@entry=1, argv=argv@entry=0x7fffffffde18, env=env@entry=0x7fffffffde28) at dl-init.c:78
#6  0x00007ffff7dea223 in call_init (env=, argv=, argc=, l=) at dl-init.c:36
#7  _dl_init (main_map=0x7ffff7ffe1c8, argc=1, argv=0x7fffffffde18, env=0x7fffffffde28) at dl-init.c:126
#8  0x00007ffff7ddb30a in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
#9  0x0000000000000001 in ?? ()
#10 0x00007fffffffe1ca in ?? ()
#11 0x0000000000000000 in ?? ()

So something weird in ASAN thing is going on, let's compile -lasan in also
g++  main.cpp -lshared -L . -g3 -lasan

Same crash :-/

Ok, so then you think, well, let's just add the fsanitize in. And then it works, but as demonstrated a few lines ago, the whole thing of adding -fsanitize=address and -lasan to the library was unneeded since all that was required was just adding -fsanitize=address to the binary when it's compiled and that's it :)

Wednesday, March 19, 2014

ASAN and gcc: How to get line numbers in the stacktrace

ASAN or Address Sanitizer is a nice project by Google that is a memory error detector for C/C++. According to their web it finds:
  • Use after free (dangling pointer dereference)
  • buffer overflow
  • Stack buffer overflow
  • Global buffer overflow
  • Use after return
  • Initialization order bugs

Also it's much faster than valgrind :-) Unfortunately it's not as easy to use as valgrind since it requires a rebuild of your code.

The basic instructions to use ASAN are:
Use the -fsanitize=address switch
together with the suggestion of
To get nicer stack traces in error messages add -fno-omit-frame-pointer.

As a simple example let's see what happens when we run
int main(int, char **)
{
    int a[3];
    a[3] = 4;
    return 0;
}
compiled with
g++ -fno-omit-frame-pointer -fsanitize=address main.cpp

The result:
==8403== ERROR: AddressSanitizer: stack-buffer-overflow
on address 0x7fffbe7c7d8c at pc 0x400779
bp 0x7fffbe7c7d40 sp 0x7fffbe7c7d38
WRITE of size 4 at 0x7fffbe7c7d8c thread T0
    #0 0x400778 (/home/tsdgeos_work/test/a.out+0x400778)
    #1 0x7f2f5cfa6ec4 (/lib/x86_64-linux-gnu/libc-2.19.so+0x21ec4)
    #2 0x400638 (/home/tsdgeos_work/test/a.out+0x400638)
Address 0x7fffbe7c7d8c is located at offset 44 in frame 
of T0's stack: This frame has 1 object(s): [32, 44) 'a'

In this case it's pretty obvious what's wrong with just looking at the code and ASAN is even telling us it is a bad write just after the 'a' object, but note that we are not getting the line number of where the error happens. You'll say, that's why you didn't use the -g switch! So let's see what do we get after compiling with
g++ -g3 -fno-omit-frame-pointer -fsanitize=address main.cpp

The result:
==8467== ERROR: AddressSanitizer: stack-buffer-overflow
on address 0x7fff59ccaa2c at pc 0x400779
bp 0x7fff59cca9e0 sp 0x7fff59cca9d8
WRITE of size 4 at 0x7fff59ccaa2c thread T0
    #0 0x400778 (/home/tsdgeos_work/test/a.out+0x400778)
    #1 0x7f6f75601ec4 (/lib/x86_64-linux-gnu/libc-2.19.so+0x21ec4)
    #2 0x400638 (/home/tsdgeos_work/test/a.out+0x400638)
Address 0x7fff59ccaa2c is located at offset 44 in frame 
of T0's stack: This frame has 1 object(s): [32, 44) 'a'

Same thing :-/

Here is where people may give up or think to switch to clang and try there, but since clang is sometimes more picky with the code (not bad per se) it may be a lot of work to get your code to compile under clang, if you keep digging you'll read some news about GCC not having a ASAN symbolizer [yet], but clang has one and you can still use it with GCC, so if you
export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-3.4
export ASAN_OPTIONS=symbolize=1
and then run the binary again (the one we just compiled with -g3)

The result:
WRITE of size 4 at 0x7fff4f5f0ebc thread T0
    #0 0x400778 in main /home/tsdgeos_work/test/main.cpp:5
    #1 0x7f3d4dce2ec4 (/lib/x86_64-linux-gnu/libc.so.6+0x21ec4)
    #2 0x400638 in _start (/home/tsdgeos_work/test/a.out+0x400638)
Address 0x7fff4f5f0ebc is located at offset 44 in frame 
of T0's stack: This frame has 1 object(s): [32, 44) 'a'

And now we have line numbers :-)

Akademy-es 2014 in Málaga

This year, the 9th Akademy-es will take place in Málaga from 16 to 18 May.

Málaga is the city that hosted Akademy 2005 and were a few few crazy people met and thought about doing Akademy-es 2006 next year in Barcelona, and after that, 9 years in a row. Not bad :-)

I'm definitely going and you should if you're interested in KDE too. And of course you should think about submitting a talk :-)
Finally if you have a company you may want to join and sponsor the event, have a look at the sponsor page.

Registration is still not open but will be in a few days/weeks.

Hope to see you there :-)

Saturday, January 25, 2014

How to strike out text in Okular

We just had a user report a wish item in bugs.kde.org asking for Okular to come with a text strike-out annotation by default. I just closed the bug saying that he can create his own annotations by Settings -> Configure Okular -> Annotations -> Add ->
Text Markup -> Strike Out -> Set Color -> OK



Of course we could still ship it, but if you have a look at that "Add Annotations" dialogs there's lots of lots of possibilities so people should just create the ones they see the need for instead of us shipping lots that may not be that useful.

Thursday, January 09, 2014

KDE Applications and Platform 4.13 Schedule

You can find the release schedule for KDE Applications and Platform 4.13 at http://techbase.kde.org/Schedules/KDE4/4.13_Release_Schedule

This schedule consolidates the changes made for 4.12 since it seems to have worked well.

Also remember that 4.13 will be applications and kdelibs only; KDE Workspace (aka Plasma) will be getting 4.11.x LTS releases until August 2015

Tuesday, October 29, 2013

Changes in Okular printing for 4.12

Since today, Okular master (i.e. 4.12) respects the margins specified in the printer setup dialog (which default to the hard-margins of the printer). This means that I'll be able to print in my printer without getting cropped stuff; yes, my printer has a default hard-dead margin of 1.5 cm at the bottom and usually files contain stuff in that area.

If your document does already contains the margins, you can get the old behaviour by simply setting the margins to 0. Also hopefully you don't have a printer that is as bad as mine and your default margins are just 0,0,0,0

Sunday, October 27, 2013

KDEEdu sprint is over for me

I'm sitting at the Coruña airport waiting for my plane for Barcelona to leave. This means my three days at the KDEEdu Sprint 2013 are gone. It's been good to meet new people like Punit, get to know better people I had already met like Samikshan and meet old co-sprints like Sebastian and Andreas, and of course re-meeting my fellow KDE España friends Jose, Aleix and Santa. Sadly Oindrila could not make it due to visa problems :-(

In these three days we'd had time to talk about KDE Edu apps future on mobile, KF5 ports, libkdeedu splitting and lots of other stuff.

I tried to port Blinken over the BB10. Got stuck trying to compile stuff using cmake until I found KDE's own Laszlo Papp guide. Unfortunately other stuff got in the middle and I could not finish the port, but now I'm closer and if I can find a couple of free afternoons will probably have something in the BB10 store.

Unrelated to KDEEdu i finally got time to create a review request for a patch i worked a few weeks ago that will hopefully workaround one of the most hated crashes people are having in the KDE Plasma Desktop, let's see if that helps.

Finally, I'd like to thank GPUL and KDE e.V. for organizing and sponsoring the event. And specially thanks to Jose for his mad organizing skills, you're awesome :-)

KReversi master is now Qt Quick based!

Denis Kuplyakov worked on porting KReversi to QtQuick during this Google Summer of Code and his code has now been merged to master for the upcoming 4.12 release. The kdegames team has given the new code as much testing as we can, but it is a big re-work so it'd be great if you can give it a try and report any regression you may find compared to the old version.

Wednesday, October 02, 2013

Saturday, September 21, 2013

Dine with the KDE e.V. board

Next weekend (September 28-29) the KDE e.V. board is going to have an in-person board meeting in Berlin.

As part of the board meeting we'll have food (geeks need to eat too) and since we like talking to other people besides ourselves we’d like to invite KDE people to come to the board dinner on Saturday at 19:00 (location still undecided).

We can talk about all things KDE, KDE e.V., Free Software and maybe even have a good time ;-). Please let me know as soon as possible if you’re coming as space is limited.

Thursday, August 29, 2013

KNetwalk ported to QtQuick

Ashwin Rajeev has just commited his port of KNetwalk to use QtQuick to the master branch of the knetwalk git repository.

Ideally you should not notice any difference, but it would be awesome if you guys could give it a try and report to either Ashwin or to the kde-games-devel mailing list (if you do it here I'll try to pass the info, but I'm going to be off the web for a while so it may get lost when I come back and there's a ton of emails to read :D)

Tuesday, August 20, 2013

KDE SC 4.12 Release Schedule

After discussions at kde-core-devel, Akademy and release-team you can find the release schedule for KDE SC 4.12 at http://techbase.kde.org/Schedules/KDE4/4.12_Release_Schedule

The main change agreed by Release Team is that we have more simplified freezes (basically just one) and our betas/RC happen a bit more often (every week) so we have testers trying more up to date code. This also lead to a somewhat shorter cycle with a release mid December 2013.

Sunday, August 04, 2013

Fixed: My Z10 automagically shutsdown at a random battery number (mine was around 33%)

Last week I hard a weird issue in which my Z10 was shutting down when the battery was around 33%, I thought the battery had gone wrong, but it seems the problem lies somewhere in the OS that gets confused, in my case i think it was because i pulled/put different batteries in a very short time span.

After some digging I found http://forums.crackberry.com/blackberry-z10-f254/blackberry-z10-shuts-down-30-battery-807279/index6.html#post8755531 that helped me make the OS "reset" according to battery handling.

Basically it boilds down to "make sure you really really run out of battery and it'll fix itself"

Adding here in case someone has the same issue.

Tuesday, July 30, 2013

KDE 4.11 releases are around the corner. Let's cellebrate!

At KDE España we have started the ball rolling to cellebrate the release for 4.11 by starting the organization of the Barcelona event. Right now it feels pretty lonely at http://community.kde.org/Promo/Events/Release_Parties/4.11.

If you are interested in attending the Barcelona event don't hesitate voting at the doodle to decide the day!

Saturday, July 06, 2013

Okular: "fit best" zoom. Yes? No? How?

The Okular team is looking for your input regarding a potential "Fit Best" feature for zoom. Please visit http://forum.kde.org/viewtopic.php?f=251&t=111777&sid=343334fa86e550d294793cf6a56e6ce5 and give us your opinion!

Sunday, June 30, 2013

I'm going to Bilbao!

I will be in Bilbao from July 11th to 19th. I am going to be attending lots of different events


The first of the events is the Akademy-es, Akademy little sister that we've been celebrating since 2006, this year we have modified of usual schedule of making it happen in a weekend to accommodate for Akademy schedule, so it will run from Thursday to Friday. In Akademy-es I'll be talking of how Qt5 and KDE projects fit together and also about QML, QtQuick and the other declarative-y things you can find in Qt world.


Obviously I'll also be at Akademy, I've been attending each year since 2005 so I couldn't miss it :-) I'm looking forward to lots of the talks there, but specially the keynote by Kevin Ottens :-) I will be running for a position in the KDE e.V. board as announced in the kde-community mailing list a few weeks ago, wish me luck!

Qt Contributor Summit
On Monday and Tuesday we will have the Qt Contributor Summit running in parallel with Akademy. I will be there with my Canonical-hat making sure everything QML-y we need for the Ubuntu software we are writing in Qt is fine and dandy :-)


And incidentally from Thursday to Saturday there's Green Day, Depenche Mode, Kings of Leon, Biffy Clyro and a lot more of bands playing in Bilbao, so I could not miss them!

Rock on Bilbao!

Tuesday, June 11, 2013

builds.kde.org tests report for 4.11 release - 11 June 2013

We are 2 days away from Beta 1 tag:
* kate has 1 test that fails
* kcalc has 1 test that fails
* kde-baseapps has 1 test that fails
* kde-runtime has 1 test that fails
* kdepim has 5 tests that fail
* kdepim-runtime has 1 test that fail
* kdepimlibs has 7 tests that fail
* knetwalk has 1 test that fails
* kopete has 2 tests that fail
* ksystemlog has 1 test that fails
* marble has 1 test that fails
* okteta has 1 test that fails

Everything else that belongs into the 4.11 release is green

Please fix your tests.

Tuesday, May 28, 2013

Akademy-es 2013 schedule ready!

As you probably know we are having Akademy-es 2013 just a few days earlier than Akademy in Bilbao, from 11th to 12th of July.

We have just made the schedule available. If you understand Spanish you may want to come to Bilbao a few days earlier to enjoy our talks :-)

Tuesday, May 21, 2013

Okular welcomes configurable review tools

I have just merged to master a branch by Fabio D'Urso that lets you configure the review tools that appear in the review bar.



This way you can decide that by default you want your highlighter to be green instead of yellow. Or even have two highlighters in the review bar.

Please test and enjoy it :-)

Wednesday, May 15, 2013

4.11 Soft Feature Freeze in 7 days!

Remember the 4.11 Soft Feature Freeze is in 7 days so try to get your features ready for merging as soon as possible. If you add your features to the Feature Plan you get two weeks more until Hard Feature Freeze. Even if you don't need those two weeks you should add them anyway since it really helps other teams like promo, Q/A, etc. to have the features listed in one place.

Tuesday, May 07, 2013

gs 9.07 can't render ps files on comma-locales [fixed]

Okular and other libspectre based PostScript viewers can't render some ps files when using a locale that uses , instead of . for decimals.

This happens because of a bug in ghostscript 9.07 that has now been fixed.

I'm not a huge fan of distro-patches myself, but in this case it may make sense to have one, so feel free to ping your distribution if you are a PostScript user.

Saturday, April 20, 2013

Specifications: Correct when writing, Gentle when reading

I got a BlackBerry Z10 a few days ago.

I had not tried to use it as my main phone until yesterday since it needed a MicroSIM and i had a regular one.

Yesterday I got myself a MicroSIM and put it on the device to find out I could not access the 3G data network.

No problem, my operator has a website where you put the make and model of the phone and they send a SMS to the phone that autoconfigures it.
I went there and was surprised to see there was no BlackBerry listed at all.

OK, time to write the APN settings by hand, so I went to the Settings and started to look where to write the APN details, found them and realized they were disabled(greyed out) so I could not write the correct values.

After lots of searching I have come to understand that the phone obeys a indicator of the SIM that can say "I know how to connect to 3G data, no need to letting the user edit it" and when that happens, the BlackBerry Z10 happily complies and locks you out from editing them.

Problem is, my operator SIMs are wrong, they say "I know how to connect to 3G data, no need to letting the user edit it" and then provide wrong data.

And BOOM! I have a nice paperweight worth 600€

BlackBerry fan forums are full of people that say "BlackBerry is just doing what the spec says, blame your operator".

I say to them "I've used that SIM in Apple devices, Samsung devices and Nokia devices and had never any problem connecting to the Internet". Because the manufacturers were smart enough to let me edit the APN settings and write there the correct values if I wanted.

And this brings us to one of the mantras of engineering, be Correct when writing stuff but be Gentle when reading. It's good the BlackBerry browser is following that mantra, otherwise you'd hardly be able to render any webpage.

So people at BlackBerry, please come of your senses and let people edit stuff. This way maybe I'll get to use your device and people around me will see it and will want to buy one.

Otherwise I'll just wait until the Ubuntu Phone is a bit more usable and start using it. It may not be as polished (at the moment) but at least it's open source and I can fix crazy stuff like this.

Update: With BB 10.1.0.1627 I've been able to edit the field and now my 3G data works again

Tuesday, April 16, 2013

builds.kde.org tests report for 4.11 release - 15 April 2013

We are 59 days away from Beta 1:
* kate has 1 tests that fails
* kde-runtime has 1 test that fail
* kdelibs has 1 test that fails
* kdepim has 8 tests that fail
* kdepim-runtime has 21 tests that fails
* kdepimlibs has 14 tests that fails
* nepomuk-widgets has 1 test that fails
* okteta has 1 test that fails

Everything else that belongs into the 4.11 release is green

You can find the up-to-date info at jenkins http://build.kde.org/view/KDE%20SC%20master/

Saturday, April 06, 2013

Okular welcomes undo/redo for annotations

Thanks to the amazing work of Jon Mease Okular now has undo/redo for annotation editing in master. Give it a go, it's quite cool :)

Now let's see if we can get Jon to do the same for Form editing, everyone give him some love!

Monday, April 01, 2013

builds.kde.org tests report for 4.11 release - 1 April 2013

We are 73 days away from Beta 1:
* kate has 2 tests that fail (down 2-3 from 2 weeks ago)
* kde-runtime has 1-2 tests that fail (no change)
* kdelibs has 1 test that fails (up 1 from 2 weeks ago)
* kdepim has 7-8 tests that fail (stable from 2 weeks ago)
* kdepim-runtime has 19-22 tests that fail (up 0-3 from 2 weeks ago)
* kdepimlibs has 12-16 tests that fail (stable from 2 weeks ago)
* nepomuk-core has 1 test that fails (down 2 from 2 weeks ago)
* nepomuk-widgets has 1 test that fails (stable from 2 weeks ago)
* okteta has 1 test that fails (stable from 2 weeks ago)

Everything else that belongs into the 4.11 release is green

Monday, March 18, 2013

KDE Frameworks 5 day at Barcelona

This last Saturday, Alex Fiestas, Martin Klapetek, Miquel Canes, Aleix Pol and me spent the whole day acquainting ourselves with the KDE Frameworks 5 codebase and starting to work on some of the tasks described in the Qt 5.1 and kdelibs cleanup epics.

It was a great day but i still have to say I find myself a bit lost in Frameworks land, we'll have to repeat it soon to get more in the loop :-)



I'd like to thank Blue Systems for hosting us in their office in Barcelona.

builds.kde.org tests report for 4.11 release - 18 March 2013

We are 87 days away from Beta 1:
* kate has 4-5 tests that fail
* kde-runtime has 0-2 tests that fail
* kdepim has 7-8 tests that fail
* kdepim-runtime has 19 tests that fail
* kdepimlibs has 12-16 tests that fail
* nepomuk-core has 3 tests that fail
* nepomuk-widgets has 1 test that fails
* okteta has 1 test that fails

Everything else that belongs into the 4.11 release is green

Wednesday, March 13, 2013

KDE SC 4.11 Release Schedule

You can find it at http://techbase.kde.org/Schedules/KDE4/4.11_Release_Schedule

There are two main changes agreed by Release Team against the previous releases:
* No specified time between Beta and RC tag and release. We will try to release them ASAP after the tag to make them as useful as possible
* No release with broken tests. We won't release if there are tests that do not pass in build.kde.org. So please start caring about tests that do not pass

Monday, February 18, 2013

KDE 4.10 Release Party in Barcelona

This Friday 22nd of February we are having the KDE 4.10 Release Party in Barcelona. Fill in the wiki or tell me if you want to come!

Saturday, February 09, 2013

Process your reviewboards!

Our "All Review Requests" page in https://git.reviewboard.kde.org has 13 pages of reviews, when sorting by "Last Updated" you'll see that from page 1-6 are reviews that have been updated in the last month, 7-8 in the last two months, 9-12 in the last year and 13 in more than one year.

That's a *lot* of reviews that either where not reviewed at all or where not followed up.

Please, people, pay attention to reviews, if stuff needs to be improved (either if you are the submitter or the reviewer) do speak in a timely manner so we can get stuff commited as nicely as possible.

Let's make the world nicer and review other people's code when they ask for it :-)

Otherwise i'll start closing review requests as discarded because what's the point of having stuff there rot that probably doesn't even apply anymore? ;-)

Thursday, February 07, 2013

Unit testing KColorButton

Around two weeks ago, a bug about was reported in which Okular crashed when changing the color of highlighted text. After a bit of debugging i found that the bug was actually in kdelibs in the KColorButton class.

This is a class I had never looked internally so it was a bit hard to decide where to start looking for a fix. Then I decided to look at the git log and realized the last commit introduced by a fix for color selection not working correctly on double click.

I took my chances and saw that reverting that patch actually removed the crash, so now I knew where to look :-)

After a few minutes looking at the code i came up with a 3-line patch that fixed the crash and still made double click work correctly. I'm so awesome \o/

But that wasn't enough, I needed to *prove* I had fixed it, so i decided to create some tests, that was a bit harder since it involved "clicking" in buttons and stuff, but QTest to the rescue and a few hours later I had this nice unit test that will warn us if that breaks again :-)

So next time you fix a bug, unit test it! And don't complain it's graphical, that's no excuse!

And of course the tests run just fine in build.kde.org even if they show buttons/dialogs :-)

Monday, January 07, 2013

Okular git repo contributors in 2012

Thanks to:
- Aaron Seigo
- Albert Astals Cid
- Bogdan Cristea
- Burkhard Lück
- Christian Holme
- Dario Freddi
- David Faure
- Dirk Mueller
- Fabio D'Urso
- Guillermo A. Amaral B
- Ivan Čukić
- Jan Binder
- Jaydeep Solanki
- Jon Mease
- Jonathan Marten
- Luigi Toscano
- Mailson Menezes
- Marco Martin
- Mohammad Mahfuzur Rahman Mamun
- Parker Coates
- Patrick von Reth
- Pino Toscano
- Sandro Mani
- Sebastian Dörner
- T.C. Hollingsworth
- Thomas Etter
- Tobias Koenig
- Yuri Chornoivan
- Yury G. Kudryashov

That's 29 people, 1 more than 2011, so I guess we are doing a bit better ;-) Let's make this 2013 rock even more :-)

Of course sorry I'm not mentioning people that did bug reporting, bug triaging, promotion, translation and other bazillion of things that helped Okular but did not end up in a git contribution, I was lazy and getting the git names is very easy. Your help is also very much appreciated.

Monday, December 17, 2012

KDE/4.10 branched

KDE/4.10 branches have just been created for all the git repos (except for kdelibs that already had it) and SVN branches/KDE/4.10/ has been populated with the modules still in SVN

From now on, if you want something to end up in the 4.10 release you'll have to commit it to there (in addition to master for future releases)

Tomorrow 17 December 2012 at 23:59 UTC, the following freezes for 4.10 kick in

* Tagging Freeze for Release Candidate 1
Only compilation fixes for all platforms are allowed to be committed.
Everything else (even showstopper fixes) have to be run through reviewboard, with the release-team and the affected maintainers as reviewer.
Tagging will happen on December 18 at 23:59 UTC

* Hard API Freeze
The API is now frozen. No more changes to APIs or header files (except docs) after this date.

* Hard Message Freeze
You need to contact kde-i18n-doc for every single string change

* Artwork Freeze
All artwork is frozen on this date. No new artwork should be added. Existing artwork can continue to be tweaked and fixed.

* Bindings Freeze
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.

* Documentation Freeze
No more changes to documentation or handbooks after this date.
For typos, spelling and simple grammar changes you have to mail kde-i18n-doc for approval.

If you have to update program version numbers, library abi numbers, bugzilla program version numbers or stuff like that, please do it as soon as possible.

http://techbase.kde.org/Schedules/KDE4/4.10_Release_Schedule

Thursday, November 15, 2012

And this is why one needs cops



And then they drive like mad with their cars, and wonder what? They hit one of their own http://youtu.be/xr_lRr-4_5k?t=1m56s

Yes, I am aware that there are cops out there that do a good work, but sharing the work with these people should make them sad.

Sunday, November 11, 2012

Okular tiled rendering merged to master

Okular tiled rendering (more info) has been merged into master and is scheduled to be released with 4.10 KDE Applications release. There are a few open issues that Mailson and Fabio are working like crazy to get fixed for the upcoming Beta 1 release this thursday. It would be great if you can give it a try anyway and report any issue you might find.

Friday, November 02, 2012

KDE Spanish forum in forums.kde.org

Since a few weeks you can find the KDE en Español sub-forum inside the always awesome KDE Community Forums. Go there if you have something to ask or share and you prefer communicating in Spanish.

Thursday, October 18, 2012

4.10 dependency freeze in two weeks!

Copying from the 4.10 Release Schedule page

Thursday, November 1, 2012:
From this moment on it is not allowed to add new dependencies or bump dependencies versions. It is possible to get an exception for this. Post the patch to reviewboard and add the release-team as reviewer. We will check if the dependency is needed and is available on all platforms.

In other words: If you have a feature that requires a new dependency or a version of a dependency that is higher than currently checked for in the build system, you need to have committed this change before this date.

Monday, October 15, 2012

Active port of Okular merged

Marco just merged the Active port of Okular to the master in the okular repository. Now people that have the proper dependencies will also get an active-documentviewer binary that is a touch optimized experience based in the Okular core libraries.

You can find a video of an old version of it at http://www.youtube.com/watch?v=cvLVqiFC6_4

Saturday, October 13, 2012

ktouchpadenabler 0.1.1 released

What is ktouchpadenabler?

ktouchpadenabler is a kded daemon that listens to the XF86XK_TouchpadToggle/XF86XK_TouchpadOn/XF86XK_TouchpadOff key presses and toggles/enables/disables your touchpad accordingly.

What's the difference against 0.1.0?

The only difference is updated translations, the code is exactly the same. Thanks to the translation teams for their work :-)

You can find it at http://download.kde.org/stable/extragear/ktouchpadenabler-0.1.1.tar.bz2.

Friday, October 12, 2012

4.10 Soft Feature Freeze in 13 days!

Remember the 4.10 Soft Feature Freeze is in 13 days so try to get your features ready for merging as soon as possible. If you add your features to the Feature Plan you get two weeks more until Hard Feature Freeze, and if you don't need those two weeks you should add them anyway since it really helps other teams like promo, Q/A, etc. to have the features listed in one place.

Wednesday, October 10, 2012

Okular user forum

I've never been a fan of forums, but it seems our users like them so we've created the Okular subforum inside the awesome KDE Community Forums.

It shows that moving existing topics to the okular forum we already have 61 of them .D

Of course bugzilla is still the place for bugs and wishes and the mailing list is still the place for development, but if you have other user questions, don't hesitate to share them in the forums!

Monday, October 08, 2012

Okular tiled rendering manual

Mailson Lira has written a nice webpage explaining how his tiled rendering work for Okular works.

This is still not merged for 4.10 but we hope to get it ready by then.

And of course thanks to Google for his Google Summer of Code program that allowed Mailson to work on this project.

Monday, September 24, 2012

Randa 2012: First Half of Awesomeness

Time passes fast when you are enjoying the great company and the great location that the Randa 2012 meeting provides.

It's been a busy time for me in the Education part of the meeting.

I've worked on the following items:

kdeedu

Kalzium

- Fix uninitialized memory use
- Fix memory leak
- Make molecule downloading more user friendly
- Let kalzium open molecules both from command line and from clicking in the file manager
- Look and feel improvements to the calculator

Rocs

- Fix uninitialized memory use

Step

- Fix uninitialized memory use

Website

- Make it a bit more localization friendly (now we should not show images with text besides the KDE Edu logo)

kdegames

Thanks to Ben we now have kdegames on jenkins, which made me fix some bugs there :)

Killbots

- Make tests work without the game being installed

kmahjongg

- Fix compilation when libkmahjongg is not installed in default folders

kshisen

- Fix compilation when libkmahjongg is not installed in default folders

kdelibs

- Fix a bug with menubars when editing toolbars

l10n-kde4

- Regular tasks of moving files around

And of course this is just the things that resulted in commits, between the various random things I've helped people around with their questions that fall inside my area of expertise, for example helped Frederik Gladhorn integrate the KDE translation system on the Qt AT SPI project so we can provide an even more polished accessibility solution to our users and also "chaired" the KDE Edu discussions whose results you can find in the Notes links at http://community.kde.org/KDEEdu/Sprint2012

And finally to get some relax I've also contributed to the soluttion of the puzzle containing last year's group photo


And also got photographed for next years puzzle ;-)


Thanks all that donated to the pledgie and made Randa 2012 happen!

And now back to Awesomeness!

Sunday, September 09, 2012

Trobadour knowledge about QImage

If you are using QImage::Format_RGB32 and the QImage constructor that takes uchar * data make sure your format is 0xffRRGGBB (i.e. the missing alpha channel is exactly 0xff) otherwise some operations won't work.

Thursday, September 06, 2012

KDE SC 4.10 Release Schedule

KDE SC 4.10 Release Schedule has just been made official. If everything goes to plan (and we have been able to keep with schedules quite good lately) we should be enjoying new 4.10 goodness by late January 2013.

By the way, Soft Feature Freeze is in 7 weeks!

Thursday, August 16, 2012

The death of http://www.kde.org/announcements/changelogs/*.php

The KDE SC Release Team has decided to not use the http://www.kde.org/announcements/changelogs/*.php files generated from the changelog_branch_*.xml anymore.

If you want your bugfix to be linked from the announcement make sure it has the "Version Fixed In" correctly set so it appears in this query (and in the future replace 4.9.1 with the correct version ;-))

Monday, August 13, 2012

KDE Randa Meetings Pledgie

Lots of people meeting and shaping the future of KDE software. Help make it happen!

Copy&paste from the Pledgie site

For the fourth year, the intense sprints in Randa, Switzerland will include key KDE projects and top developers, all collaborating concurrently under one roof, isolated from noise and distractions.

Every previous Randa meeting has been concentrated and productive, generating exceptional results; organizers and participants expect the same and more this year. And the meetings have produced significant breakthroughs for KDE users and developers.

While the participants are unpaid volunteers, there are hard expenses like accommodation, food and travel to get the volunteer contributors to Randa. If you are not attending, you can still support the Randa meeting by making a donation. As in the past, the Randa meeting will benefit everyone who uses KDE software.

Click here to lend your support to: KDE Randa Meetings and make a donation at www.pledgie.com !

Wednesday, August 01, 2012

4.9.0 is out!

Yay! I'm so happy that we got it out of the door, 4.9.x is going to be amazing :-)

Personally I'd like to thank Fabio d'Urso for being my new Okular co-developer (actually he did more commits than me, but don't tell anyone) and implementing the store annotations to pdf files feature both in Okular and in poppler. Fabio you rock :-)

Monday, July 23, 2012

Dear Lazyweb: Who is right g++ or clang?

#include <stdio.h>

class A
{
    protected:
        static void foo()
        {
            printf("HI\n");
        }
};

class B : public A
{
    friend class C;
};

class C
{
    public:
        void useFoo()
        {
            A::foo();
        }
};

int main(int argc, char **argv)
{
    C c;
    c.useFoo();
}

g++ compiles, clang complains that A::foo is protected and can't be used in C::useFoo.I know friendship is not inherited, but this is actually the reverse of inheriting, so does anyone has any pointer as to where i should open the bug? clang or gcc?

Friday, July 20, 2012

Joined the KDE Game!

A few days ago I decided to go to http://jointhegame.kde.org/ and "Join the Game".

For those of you unfamiliar with the term it means i became an official supporting member of KDE eV by donating 25€ each 3 months.

In exchange i get this nice image

A membership card and a welcome gift (waiting for them, i just joined so still not here), the invitation to attend the annual general assembly of KDE e.V. (which doesn't mean much since i'm already a KDE e.V. member) and regular first hand reports about KDE's activities.

That's cool and it's what the webpage lists as benefits, but I think the other huge benefit I get is that KDE has a more stable source of income (it's better to have 100 people donating 100€/year that one donating 15000€, because that one might decide otherwise for next year and you take a big hit).

So if you like KDE and want us to keep doing development sprints, paying for the hardware, etc. you might want to Join The Game with me so we get a more stable source of income.

Of course you can also donate a single time via paypal (and other means) at http://kde.org/community/donations/ but I sincerely think being a member of Join The Game is great and after all it's just 0.28€ per day, of course we live in though economic times so only you can decide if you can afford to be part of this great club ;-)

Sunday, July 15, 2012

4.9 Dinner in Barcelona (4th August)

Following our tradition, the KDE-ers of Barcelona (and anybody from anywhere that wants to drop by) will celebrate the release of 4.9 with a dinner. This time will be on 4th of August at 21:30 in the Hola Manito Restaurant in Gràcia.

Of course everyone is invited to come and remember that if it's too far for you, you can always organize something in your own city, according to the KDE users map there is people around with a common interest!

Thursday, June 28, 2012

Your chance to help #2: Improving bugzilla for old developers

A while ago our amazing sysadmins upgraded our bugzilla installation from something aging to something more modern. Hurrah! We are not a billion years behind in another software! Hurrah!

Unfortunately this meant we lost some of our ¿custom? code that allowed to show the Votes column in searches like this (click on the change columns link at the end).

One can still see the votes in a particular bug, but for things like wishes it was very useful to be able of sorting by votes.

So it would be extremely cool if you can try to implement this, be warned, it's probably not going to be easy to implement and moreover bugzilla is in perl, but i'll owe you a few beers if you make it :-)

If you want to help do not hesitate to contact me on aacid@kde.org and I'll forward you to the appropriate people, or even better just join the #kde-sysadmin channel in irc.freenode.net and present yourself as volunteer to do this job.

Your chance to help: Improving bugzilla for new developers

The other day I was talking with Fabio, a new Okular developer (a blog post on his awesomeness coming soon), and realized that he had permission to commit to the git repositories but not permission to close bugs in bugs.kde.org

This disconnect comes from the fact that bugzilla is not tied to your identity.kde.org user.

After speaking with the KDE sysadmins we agreed it'd be cool to enable permissions in bugzilla if there is a matching address (it would be cooler to match the accounts, but that's probably a gigantic task)

So we are looking for someone that can write some sql to do this:

1) find the user_id from someone's email address
2) insert an entry into user_group_map for the editbugs group and that user_id
3) insert an entry into user_group_map for the canconfirm group and that user_id

Additionally the code has to be smart enough to
1) print a notice if no bugzilla account was not found for the given email address
2) be written in a way as to not cause issues if the user already has those rights

The script can written in which ever language you prefer (though we expect some sanity in the choices if possible ;-))

If you want to help (and you know you want) do not hesitate to contact me on aacid@kde.org and I'll forward you to the appropriate people or even better just join the #kde-sysadmin channel in irc.freenode.net and present yourself as volunteer to do this job.

Monday, June 25, 2012

KDE/4.9 branch created

KDE/4.9 branch created.
Do not forget to push your fixes there too
Do not forget from tonight we have a freeze until RC1 is out
EOF

Saturday, June 23, 2012

Qt Contributor Summit 2012

So here I am sitting on the lounge of the Qt Contributor Summit listening to jlayt-highschool-time music and doing two simple qtbase patches. I have to say that it's been a nice two days of technical discussion, here my highlights:
 * RIM are shipping full Qt libraries for BlackBerry 10 and next unreleased/unannunced QNX release
 * At last it is clear that QML Components are a pressing need and there were like 4 different talks/bofs/panels about it
 * There's lots of random huge companies using Qt, from HP in plotters to Scania on cranes, so the future is bright :-)
* People at Nokia/Qt are worried about their future but no one really knows anything set on stone so all you get is fear cropping up
And now some pictures
https://twitter.com/tsdgeos/status/215727012717924352/photo/1
https://twitter.com/tsdgeos/status/216176177910530050/photo/1
https://twitter.com/tsdgeos/status/216176177910530050/photo/1

Tuesday, June 12, 2012

Free Software - Free to pay

A few months ago a professor from the math department of FU Berlin filed a few bugs to poppler and Okular about video playing not being totally implemented/bug free.

After a few mail exchanges it became clear that given the always scarce resources in free software projects his bugs would not be fixed/implemented in a timely way since the poppler/Okular priorities and his' did not align.

Then the unexpected occurred, instead of complaining or giving up, he said "Well, i have a little money around" and I promptly suggested a few third party companies/individuals that would be interested in doing paid development and voilà! some time after, those features were developed

One of the often overlooked features of Free Software is the non existent vendor lock-in, in the non-free software world, if the company creating the software you use thinks your feature is nice to have but not important enough to develop, you are out of luck, it'll never happen, in the Free Software world you can have someone else develop it for you and get it merged upstream relatively easily.

Friday, May 18, 2012

Akademy-es 2012 - First day gone



So the first day of the Akademy-es 2012 is already gone.

My day started early in the morning in Barcelona getting train to go to Zaragoza. Got there in less than 2 hours. Nice :-)

After getting to the hotel we headed to the nice Seminario building where today's talks took place.

We started with the welcoming ceremony with the local autorities (City Council local free software companies association (CESLA)), followed by me doing a quick summary of all the talks that would follow in the whole conference.

After that, Paul Brown (of Linux Magazine Spain fame) did a great talk about the whys and how of some typical/silly questions we in the Free Software world get. This was my first time attending a Paul Brown talk and I have to say he is really a gifted speaker.

Then we recharged our energy with coffe and pastries and got prepared to listen Agustín explaining how KDE is great for companies and to Baltasar talk about Plasma Active, unfortunately I could not attend those last two talks since I was helping moving some stuff to the place where tomorrow talks will take place, but I'm sure they were awesome :-)

You can find some photos in Alex Fiestas' twitter, http://yfrog.com/kedhqjhj, http://yfrog.com/odsc5kkaj, http://t.co/euiscuzi, http://yfrog.com/ntnmmrnj, and of course you can watch the #akademyes hashtag.

Thursday, May 10, 2012

ktouchpadenabler 0.1.0 released

What is ktouchpadenabler?
ktouchpadenabler is a kded daemon that listens to the XF86XK_TouchpadToggle/XF86XK_TouchpadOn/XF86XK_TouchpadOff key presses and toggles/enables/disables your touchpad accordingly.

You can find it at http://download.kde.org/stable/extragear/ktouchpadenabler-0.1.0.tar.bz2