As a Summer of Code student, I used the opportunity to meet my mentor David and many other members of the community at this years annual Akademy conference in Almería. This was the first year I attended, so I didn’t know the people I’ve communicated with over IRC and mailing lists in person before. It really helped that I am now able to put faces to the screennames on IRC. And big thanks to David, that you introduced me to a lot of them.
The talks were genuinely informative, I especially enjoyed the wonderful future we will see in Plasma Mobile, and how we can enlarge our (developer) community by supporting further international writing systems. Features of new C++ releases were shown, we got on overview on how we can make use of functional constructs and got some insight into debugging QML. There were so many informative talks, I unfortunately can’t list all of them!
I also had the oppertunity to meet Vasudha, another GSoC student working on a QML interface to Rocket.Chat. I think we two were the only current GSoC stundents present. I can only recommend to future students to go there, it helped me a lot. Not only that you get to meet new friends, but also to hear about the challanges they had when implementing something similar.
A huge thanks to all of the organisators, without you this wouldn’t have been possible! I hope I can speak for everyone when I say we really enjoyed our time there!
And lastely, I had the pleasure to announce at the conference that next year Akademy will be going to Vienna, Austria. I will be co-organizing the event with Horrendus and other members of our local KDE community.
- Vanilla vs OpenStack Distributions - Update on Distinctions, Status, and Statistics - One year ago in Barcelona we have taken a look behind the curtain of OpenStack Vanilla and the products of the four major OpenStack distributions. Let’s have an update and deeper look into it. You have the agony of choice if it comes to the question: Vanilla or an OpenStack distribution. It will highly depend on your usecase, technical requirements, resources and organization. This presentation will not only highlight differences between these choices but also between the distributions and their offerings. There is more to take a look at than only the OpenStack product itself as e.g. different hypervisor, Ceph, the base distributions and support. This time we also include new topics like SDN, NFV, Container and Managed Cloud. And for sure we will have a lot of new and updated statistics on community contribution and market share. This talk will cover besides Vanilla also at least RedHat, SUSE, Ubuntu/Canonical, and Mirantis OpenStack.
After some time working on the integration with Visual Studio 2017, we would now like to make the current status of this work in progress available to users of VS 2017.
We have released a new beta of the Qt Visual Studio Tools, corresponding to version 2.1.2. It is available in the Visual Studio Marketplace and can be installed directly from within Visual Studio 2017 (through the ‘Tools > Extensions and Updates…’ menu). Alternatively, it can be downloaded from this page.
Relative to the previous 2.1.1 beta, version 2.1.2 includes some additional bug fixes:
- Add new item with VS does not generate the moc
(reported as QTVSADDINBUG-396)
- Run moc’ing at every build even if there is no file changed
- 2.1.1-beta VSIX installer fails
- When opening a pro file with Qt 5.9, unable to create the vcxproj file
For the moment, version 2.1.2 is only available for Visual Studio 2017. There is also one noteworthy issue: Qt projects will be configured with version 8.1 of the Windows SDK, and building will result in an error if the SDK is not installed. The status of this issue and description of a workaround can be found here.
We will continue working on this and other issues and suggestions reported through bugreports.qt.io with a view to providing an official release of the Qt Visual Studio Tools, which will also be available for Visual Studio 2013 and 2015.
So, the second month came to an end, I wanted to write this blog post on my birthday :) The second month started well, I made the initial version of AI using alpha beta but then I was stuck at the animations. I tried various approaches, I started with the animations at seed level and thought of moving all seeds together but in the initial stage I thought that it’s giving me less control as there were problems with accessing the seeds at the js level or ourside of the two nested repeaters.
Then I thought of moving it to house level, It started off well, the approach followed was that I checked which house index the user has clicked example if the user has clicked on index 11 then we move up and on the basis of the number of seeds I decided what should be next move but the problem here was the same animation was called by all the strings, so basically yUp was called by all seeds as a result of which the count of seeds became 0 at the very first move and the seeds didn’t move further.
I discussed the situation with my mentors and was suggested to follow the same approach but at the seeds level. Yes, you read it right, I turned to seeds level again. The approach was the same as house levels but I did it for each seed. I started the initial animation for all the seeds at first:
The nextMove here determines the next move of the particular seed on the basis of their current index which is maintained for each seed.
On the basis of the current index I recursively called the startAnimation function for all the seeds:
That made them work, yes they are not complete yet but I am really happy to make them work. They took time but taught me alot. I learnt alot of things in my second month. I agree the progress was probably a little slow but the animations were a whole new story in themselves :) I also learnt a few things which I would like to share:
- Sometimes you need to just have patience. The animations looked like a big mountain for me when I started with them, even a single NumberAnimation didn’t work and to make my seeds work we had to try ScriptAction instead. It happened at times that I had no clue what I should do next but keeping patience helped me, I took a break from oware for a day or two and ideas flowed through my mind in those days and I made it work when I got back :)
- You should try to make life easy for people who test your work. I agree sometimes the things are required to be seen but well you should take your time instead and try to make things as easy as possible for them to test, to save time and get better advice :)
- Your commit messages describe your changes :) Why this? Well it happened that my commit message was not apt and resulted in a wrong perception/message. You should see what your commit is, they describe your changes and should contain the changes in an apt and exact manner so that your mentors know what the changes are. It made me alot serious about my commit messages and I tried to describe my changes in an apt way from thereafter :)
I also worked on note names in the breaks I took from oware and made the following changes to it:
- Improved the instructions and overall design of the activity. Here is how it looks now:
- Fixed the playing of notes on touch
- Added note names in initial bass and trebel introduction.
It has been a long post. I will work on fixing some oware issues and musical activities in this month. More about the changes in them in next post :)
I didn’t blog yet about my experience during this year’s Akedemy, the annual conference and gathering of the KDE community.
(Photo by Guille Fuertes)
I could meet old friends and make new ones, visited a few awesome places, and I think we all had a wonderful time there.
It was also a very productive event, with lots of progress done or started for the different projects.
On my side, I had some very interesting feedback after my talk about GCompris. I was asking for some help on a few things, including deb, flatpak and appimage packaging on linux. For flatpak, Aleix Pol showed me the initial work he already did, and I could help him adding a missing dependency.
For the appimage, I was very happy to see the next day a message from probono on our irc channel, who saw my slides and started working on the appimage for GCompris :). That was a great surprise and I couldn’t hope for better help for it, as he is basically the man behind the appimage project, and already helped creating the appimage for Krita. And finally for the deb package, we have just been contacted by a Kubuntu packager who is willing to have an up-to-date package in their next release. The community is awesome, thank you all!
(Photos by Paul Brown)
Besides, I could attend several very interesting talks, and had a whole lot of interesting technical and human talks that helped me to learn a lot, at least I believe so.
So much thanks to the KDE community for always being so cool, and again big thanks to KDE e.V. for supporting this event and my participation to it.
Please check the August 2nd update, too!
When we posted the news about our tax wrangle yesterday, we did expect to make some waves. We didn’t expect the incredible response from all of you! A day later, over 500 awesome people have donated a total of €9562 (at the time of writing, check the fancy progress bar we’ve finally managed to create!). Fourteen people have joined the development fund, too! Thank you all!
But that’s not all, we were stunned when we were approached by the team at Private Internet Access. They wanted to help us out and sponsor Krita with £20,000! Private Internet Access provides worldwide fast, multi-gigabit VPN Tunnel gateways. They already sponsor a great many awesome organizations, and now also Krita!
Of course, this makes our work much easier. Not only do we don’t have to worry whether we can pay the tax bill, but we can also start sending money to Dmitry again! And that’s why if you’ve been wondering whether you should still help Krita with a donation (or by getting something from the shop), please don’t hesitate! To recap, our current plans are:
- Make exporting and rendering animations much faster
- Improve the performance of some brush engines on multi-core systems
- Add touch functionality to Krita
- Continue the implementation of the new text tool
- Finish the remaining kickstarter features: lazy brush, stacked brushes, reference image tool.
- Release Krita 3.2 (soon!) and Krita 4.0 (this year)
And then, since we’ve basically reworked all parts of Krita, spend some time working on bugs, polish and, as always, performance.
Boudewijn Rempt, Krita Maintainer
Stichting Krita Foundation
Korte Assenstraat 11 7411JP Deventer, the Netherlands.
Marco and Sebas talk Plasma: State of the UnionI published an article about the recent Akademy conference on KDE’s news site, dot.kde.org. This article discusses the presentation Marco and I gave (Plasma: State of the Union), Wayland, Kirigami, Plasma Mobile and our award-winning colleague Kai. Enjoy the read!
After two years absent of any KDE event I was looking forward to see old friends and meet new KDE contributors and supporters. During July 20th and 21st it took place in Almería, Spain, Akademy-es. The following day, July 22nd, Akademy started. I stayed until Monday 24th there, combining my participation at the event with my job. Almería is only a couple of hours drive from my place so there was no excuse this year. I had to be there.
I would like to start thanking the organisers for the effort and the success of the event. Well done. I am specially happy to see an old friend, Ismael Olea, back to front. We need more people like you, Ismael, to keep the essence of Free Software intact.
Since I haven’t been contributing lately to KDE, I decided to concentrate my participation this time in letting participants know about the transformation the automotive sector is going through and the opportunities that new, open and collaborative environments like AGL and GENIVI open to the KDE project.
The past few months I have sent a couple of e-mails explaining my point of view on this topic, together with a blog post I wrote a few months back. Hence for most my message was not news. I delivered a talk at Akademy-es and a lightning talk at Akademy about it. You can find the slides on the Conferences section of this site.
A few community members showed interest in the topic so we held a BoF. We agreed of taking some steps forward in order to explore the presence of KDE in automotive forums. Once we have the initial tangible results, I will inform about it.
I am pleased with the Akademy Awards this year. All were well deserved but I am specially happy of the one received by Cornelius Schumacher for his contributions throughout many years to KDE. I am specially proud of having shared with him two years at the KDE e.V. Board of Directors, having him as leader (President). The award received by the KDE representatives in the Free Qt Foundation was well deserved too. Olaf and Martin has done a terrific job over the years to ensure Qt remains open no matter who develops it. KDE needs to promote more the relevance of this foundation and the benefits for the entire KDE and Qt ecosystems. Thanks Olaf and Martin.
I loved to see how KDE Spain has gone through a major change in its board keeping the same energy and enthusiasm. Akademy-es was full of new faces and its impact in the overall KDE community keeps growing. Antonio Larrosa, as the previous leading figures were, is well surrounded and supported. I liked the modest but honest recognition we had with José Millán at the KDE Spain general assembly, for his contribution to the association. Good luck to the new KDE Spain board of directors.
I was glad to see Slimbook supporting Akademy-es and Akademy. Take a look at their laptops. They are beautiful and very powerful. Slimbook put effort on the software side, providing good support on Linux to the hardware they ship. It always a pleasure to see companies I hae had relation in the past supporting Free Software events. Opentia sponsored Akademy-es. Thanks Alberto Barrionuevo. I was also pleased with the KDE e.V AGM results and dynamics. Some changes will be introduced to make it even more fluid next year, opening part of its content to the wider community. A good move, I think. Cheers to the promoters of these changes.
I would like to thank Marta Rybczynska for her contribution to KDE e.V as Treasurer. Marta’s dedication has provided stability and certainty. Good job Marta! Good luck to the new Treasurer and the rest of the KDE eV Board.
Thanks to Codethink Ltd, my employer, for supporting me in attending to Akademy and Akademy-es. It is great to be back.
The second coding period is completed and here is the report blog. Hope you’ll find it detailed enough!
Task 3: Create a new schema for similarity features.
This task involved creating a new schema for similarity database.
- ImageHaarMatrix table (as mentioned in last post) moved from Core DB to Similarity DB.
- Creating a new ImageSimilarity table. As compared to previous post, ImageSimilarity schema has been updated to accommodate use of various algorithms:
imageID1(int) | imageID2(int) | algorithm(int) | value(double)
- “Dbconfig.xml” file updated with a couple of other Similarity DB queries, along with above CREATE TABLE statements.
Task 4: Create a new database access interface inspired of Faces Management database interface.
Extracting the rules from main DB interface and writing code for a entirely new interface dedicated to fingerprints management, similar to Thumbnails or Faces Management. Code has been written for the following:
- Similarity DB Access Wrapper
- Similarity DB Backend
- Similarity DB Schema Update
- Similarity DB Interface
These files contain separate SQL queries and rules to create and update similarity DB respectively.
I’ll upload next blog post with the final set of tasks!
Thank you for reading.
FLOSS event offerings have exploded in the last few years. You can find everything from very elite, invitation-only pricey events to small, local meetings that are open to everybody. Almost every company that migrates from being an Open Source consumer to a contributor becomes a conference sponsor, which is positive.
Out there, are the key Open Source communities that constitute the roots of this movement. Even in the cases where they are no longer under the spotlight, some communities still keep the essence of what has made Open Source unique and successful; in some cases for over 20 years, ensuring they have the greatest chances to stand for 20 more.
Events organised by these key communities are all about people, about community, about technology and innovation. Yes, there is space for marketing and business, but that is not where the focus lies or what participants look for. These conferences are not fancy, they do not get much media attention, they do not attract big sponsorship, nor a thousand participants.
But at the same time, they do not have ridiculous keynotes, booths of companies showing the same things over and over again, insubstantial talks about products with little innovation or preachers about how awesome their CLA based community they are building is. Conferences in which most participants are there simply to work. The kind of conferences you attend with little passion to after a while.
There is a group of companies out there that understand how important community focused conferences are. Companies that realise that these events are not just a key activity for those communities that organise them, but also for the participants as individuals and Open Source as a whole.
In many cases, these companies do not have a direct interest in what a specific community does, but they support them anyway, because they listen to their employees and support their passion, or simply as way of being fair, giving a little in return for the immense value they get out of the Open Source community. It is not charity, it is justice.
But in most cases, for these companies it is also about business, the hard kind of business, the sustainable one.
Professional growth requires you to think out of the box; to challenge your ideas; to listen to others’ opinions; to learn from the mistakes of your masters; to choose who to follow with care, and to put yourself in front of an audience, justify your decision and its consequences for others. In summary, to learn, with honesty and a critical spirit.
By supporting these events and encouraging your employees to attend, no matter if they are contributors or not, you are helping them grow while, at the same time, you are helping those key communities to keep on rolling. As a consequence, you are helping yourself too as an organization.
Three benefits for the price of one, and a cheap price.
I work for one of those companies, Codethink. We are strong in embedded, specially in Automotive. There are plenty of industry events we could invest our money in, getting an immediate value when done right. And we do invest in some. But these community-driven events are still a key part of our strategy. It is good for the business, because it is very good for our people.
In 2017 alone, Codethink has sponsored and/or helped in the organisation of FOSDEM, GUADEC, DebConf, several PyCon events, OpenStack meetups.. . On top of that, Codethink has a policy whereby each employee gets financial support and days off to attend such events. We are not the only company with this kind of strategies. There should be many more though. Obviously for an 80 people company, this is a serious investment. But after 10 years Codethink has demonstrated that this support is not a way of sharing profit, but a core business action.
My colleagues, as well as myself, learn, grow, share, refute, discuss and interact with some of the most talented developers (professionals) in the world at these events, taking advantage of an environment that no enterprise event can match. We recharge our batteries, open our eyes, ask ourselves key questions about our work and our careers, about our managers and colleagues, and about our own company. We learn what others do and how they do it, comparing the possibilities their companies provide them to ours. We interact with young developers, reflect on ourselves some years back, getting a different perspective of ourselves and our careers, etc. We grow as individuals and as professionals, so Codethink grows as organization.
It is like a cold shower in the morning. You do not know how good it is until you get dressed.
Obviously Codethink is far from perfect. There is plenty of room for improving these actions and the return we all get out of them, but overall it pays off, no question about it.
So next time you think about your sponsorship strategy and the participation of your colleagues in Open Source conferences, think about community driven events and give them a try. Ask your employees which are the good ones if you do not know them. They will tell you. Even better, attend with them. It will help you to understand the revolution Open Source represents at a completely different level, as well as the profound impact these events have over those who attend.
Like being a parent, you have to live it in order to get it. And Codethink gets it.
This article was published at the Codethink Ltd blog on July 31st, edited by Richard Canner.
August 22-29 we're organizing a conference to discuss and work on privacy, self-hosting, security and open source in Berlin: the Nextcloud Conference. We expect some 150-200 people to participate during a week of discussing and coding and, especially on the weekend, presenting and workshopping. So I thought I should blog about why should you be there and what can you expect?
If you care about protecting people from the all-pervasive surveillance, re-gain privacy and security of data and believe in self hosting and open source as solution for these issues, this is the place to be. Our event is special for two reasons:
The team that started ownCloud
We're doing it. And most of us have been, for a decade or more, in KDE, GNOME, SUSE, Ubuntu, phpBB and other earlier projects. The code we wrote has influenced millions of users already and we will go further and wider! Expect to meet people with a can-do attitude.
Second, Nextcloud has got a huge momentum, name recognition and has become one of the largest ecosystems in the open source privacy/self hosting area. It isn't just about us! Large companies, small startups and innovative individuals and small communities all over are building on and around Nextcloud. A few examples:
- Our keynote speaker is former Mozilla president Tristan Nitot, who is currently CTO of Cozycloud, another private, open source self-hosted cloud solution.
- We're working with the GNOME community on deeper Linux desktop integration (we hope we can bring those also to KDE's Plasma!) and lots of projects built on our technology, like the super cool Mail-in-a-box
- Many third party apps like the buttercup password manager, DAVdroid android app, PrivacyIdea 2FA and Gluu SSO, Collabora Online and the innovative open source Blockchain storage SIA provide Nextcloud integration. And more are coming, expect announcements at the Nextcloud conference!
- We have well over 70 different providers like CiviHosting
- You can find over 80 apps on our app store offering all kinds of additional capabilities and integrations, from Kanban or time planning apps to the mentioned authentication and external storages to music players to drawing apps to full text search to...
- One organization after another implements or moves to Nextcloud, with the TU Berlin (where our conference takes place, like last year) and the capital of Albania merely the last in the long list.
We are motivated
So the Nextcloud conference is where you can find a wide range of individuals with interest, skills and ideas in the area of privacy and freedom activism, and they are doers! There is a reason we say "bring your laptop" on our conference page, though with that we don't mean we only want coders there!
Designers, activists and advocates are just as welcome. That is because Nextcloud is about more than technology. Frank is somebody who sometimes asks the hard questions and obviously it his vision is a strong diver, but we're all long time open source and/or privacy activists and deeply and personally motivated. Our entire community is built on drive, passion and a will to take on the challenges our society offers in the area of privacy, self determination, freedom.
That is the why you should be there. To help make a difference.
Now the what.
Getting Stuff DoneOur goal is to get work done; and facilitate communication and collaboration in our community. During the week, we simply provide space to talk and code (with wired and wireless network, Club Mate & other drinks, and free lunch). In the weekend, we have a program with talks & workshops. The setup is simple:
In the morning, everybody is in one room. First, we all hear from long time privacy activist and former Mozilla president Tristan Nitot. After that, community members working on a wide variety of interesting things around privacy/self hosting/open source and of course Nextcloud talk, shortly, about what they do. Just 3-8 minutes to give the audience an idea of their project, their plan, their idea, how to get involved, a call for action. Now again, everybody is in the room, so in the break, everybody has heard the same talks and has the same things to discuss! If you have something to add, be it about TOR, protests, encryption or anything else that is related: SUBMIT A TALK!
Collaboration & sharing ideasLast year we announced the Nextcloud Box.
This year - be there and find out!People can look up the speakers, join the meetings proposed and so on, in the afternoon. Because after lunch we have 2 (or more, not sure yet) tracks of workshops as well as hacking, coding and meetings in the coding rooms. Unconference style, so to say.
We now have several dozen talks and workshops already submitted and well over 100 people have registered but we are looking for more input in all areas so consider to be a part of this event!
It is free and open, supported by the TU Berlin which offers us a free location; and Nextcloud GmbH which sponsors drinks & practical stuff; and SUSE Linux which sponsors the Saturday evening party!
Learn more and register!
After reading up on some Bootstrap I managed to move the Twitter feeds to the side on Planet KDE so you can get suitably distracted by #KDE and @kdecommunity feeds while reading your blog posts.
I also stepped down from Dot and KDE promo stuff after getting burnt out from doing it for many years hoping others would fill in which I hope they now will.
I am a long-time Sun Microsystems fan. So in the time that I worked on KDE 4 on OpenSolaris, I had a bunch of Sun hardware, including keyboards and mice. It’s always useful to have Stop-A available, even if the system the keyboard is attached to is not a SparcStation and doesn’t react to that gesture.
Anyway, I still use the Sun keyboard most of the time, but it is a decade old by now, and starting to show its age. And sometimes I use other hardware, like the KDE Slimbook, which has the control-key in the wrong place (next to the penguin, or meta-key). I have had a setxkbmap + xmodmap script that I have used since forever, but really that it a bit foolish: there are KDE settings to achieve the same thing.
So, to put Ctrl where it belongs (next to the letter A) and Caps-lock in the corner where a somewhat useless key belongs (next to the meta-key), use the KDE keyboard settings module: search for keyboard hardware in kickoff or krunner, then switch to the advanced tab, open up the Ctrl key position tree and put them in their place by checking swap ctrl and caps lock.
My muscle memory is much happier this way (it does adjust to different spacings of keys and the way the escape key is not all alone by itself, but the ctrtl key is important).
Even while we’re working on a new beta for Krita 3.2 and a new development build for 4.0 (with Python, on Windows!), we have to release some bad news as well.
The Krita Foundation is having trouble with the Dutch tax authorities. This is the situation:
In February, we received an audit from the tax inspector. We were quite confident we wouldn’t have any problems because when we setup the Krita Foundation in 2013, we took the advice of a local tax consultant on how to setup the Foundation and its administration. We registered for VAT with the tax authorities and kept our books as instructed by the consultant.
However, the tax inspector found two problems springing from the fact the Foundation sells training videos and books, so it is not 100% funded by donations. This means that the tax authorities see the Foundation is as partly a company, partly as not a company.
- We claimed back VAT for things bought by the Foundation. But we should only have claimed the VAT back to the percentage of income generated from sales, which is about 15%. (The rest of our income is donations.)
- The Foundation was created to be able to have Dmitry work full-time on Krita. Because we sell stuff, the tax inspector has determined that we’re a company, and should have paid VAT in the Netherlands over the work Dmitry has been doing in Russia. Even though there is no VAT in Russia on the kind of work Dmitry is doing. But because we’re not a company, we cannot reclaim the VAT.
In other words, because we’re mostly not a company, we should not have claimed back the VAT we paid; but we’re also considered fully a company, so we should have paid VAT in the Netherlands over Dmitry’s work, which we could not have claimed back because the Foundation is mostly not a company. (It didn’t matter that Dmitry owns the copyright on his work, and that the Foundation doesn’t own anything related to Krita except for the trademark…)
The result is a tax bill of 24,000 euros. We have consulted with an accountant, and together we got the bill reduced to 15,006 euros, including fines and interest, but the accountant’s bill came to 4,000 euros.
The discussions with the tax inspector and accountant have taken months to resolve. The stress that caused has not just eaten into our coding productivity, it also meant we had no certainty at all, so we missed our usual May fundraiser. At one point, we were almost certain the Krita Foundation would go broke.
We ended 2016 with about 30,000 euros in the bank, enough to keep us going until June: it has dwindled to € 5.461,63 by now. Fortunately, we did have the help of three extra-ordinary sponsors who helped us survive through this period. We also have found a sponsor for some extra work on Krita, mainly focused on improving performance on systems with many cores and restoring some touch functionality and touch ui to Krita.
Still, we have not been able to be as productive as we wanted, and some of the cool things we were working on aren’t done yet, and maybe won’t get done in time for Krita 4.0.
Then there is another complication: until the middle of 2016, I had a day job next to my work on Krita, giving me in effect two full-time jobs. I suffered a break-down in the middle of 2016, and had to stop my day job. I lived on my savings until they ran out by the end of 2016, when I started working full-time for the Foundation as well, so our expenses have gone up too.
For the future, we’ve separated the sales of training videos, artbooks and sales on the Windows Store and Steam out to a separate company, so the Krita Foundation is 100% a non-profit. That means that there is no VAT payable in the Netherlands over the work Dmitry does in Russia. We checked the new setup with the accountants, and they have given green light for it.
Now we’ve got the bills, we can start making plans again:
- As I said in the beginning. we’re currently working on Krita 3.2 and the next pre-alpha development release of 4.0. Our community is healthy, with more and more people chipping in and having fun hacking on Krita, working on the documentation and creating illustrations, comics and animations with Krita.
- In September, we will run a fundraiser for development in 2018. After we’ve finished the backlog of kickstarter-promised features for 4.0 or 4.1, our focus will be on stability and polish for a year. “Zero bugs!” — that’s going to be the rallying cry for the fundraiser and for 2018!
Though there is no reason to wait until September to make a donation or join the development fund!
Note: in the interests of full transparency, you can find our end-of-year reports for 2013, 2014, 2015 and 2016 here.
Boudewijn Rempt, Krita Maintainer
Stichting Krita Foundation
Korte Assenstraat 11 7411JP Deventer, the Netherlands.
Today in Poppler:
* Poppler 0.57 got released
* We agreed to stop supporting openjpeg 1.x at the end of the year
* We agreed to stop supporting Qt 4.x at the end of the year
* We merged the better_object branch
The last one is the one that is really big, since it introduces a big rework of the Object class, a central component to Poppler. Object is much used like a QVariant, i.e. it can hold various kind of data inside and you can pass it around.
Unfortunately the Object implementation we inherited from xpdf was kind of hard to use, having to basically do the memory management by hand. i.e. destroying the object was not enough to free the memory, you had to call free() on it.
Thanks to C++11 now we have an implementation with move semantics that greatly simplifies the use of Object and will hopefully make for less memory management mistakes.
Let's hope we didn't break anything in the process though :D
Post-Akademy, I’m spending a couple of days in the south of Spain, enjoying the scenery, snorkeling, climbing hills, finding CMake issues, playing with the Slimbook, and generally having a two-thirds-vacation.
Today after lunch I was staring vacantly at the tree next to my cabin-by-the-beach, and then I saw it; a Geeko, staring back at me! The photo isn’t very good, but the little creature smiled the same munificent smile that the openSUSE Geeko has, and then climbed away through the leaves.
I’ll be back “on duty” soon, at which point I have a list of things-to-do a mile long inspired by Akademy. The conference is really great for bringing everyone together, and there’s some scope for getting-things-done right there, but when Volker whispers in my ear during the group photo “please fix KUserFeedback on KDE FreeBSD CI”, that kind of thing gets shuffled off to the list “later, when I get home”.
So far i have ported the build system and it has already bean pushed to the frameworks branch of KNetWalk. You can have a look at my progress at http://quickgit.kde.org/?p=knetwalk.git on frameworks branch.
App is able to build and install successfully on kf5 on my local system. I will push other changes soon.
Now I am looking forward to port ui as now app is crashing because ui is not ported.
garvit@beast:~/dev/sok/knetwalk/build$ cmake ../
-- The C compiler identification is GNU 4.9.1
-- The CXX compiler identification is GNU 4.9.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found KF5CoreAddons: /usr/lib/x86_64-linux-gnu/cmake/KF5CoreAddons/KF5CoreAddonsConfig.cmake (found version "5.3.0")
-- Found KF5Config: /usr/lib/x86_64-linux-gnu/cmake/KF5Config/KF5ConfigConfig.cmake (found version "5.3.0")
-- Found KF5ItemModels: /usr/lib/x86_64-linux-gnu/cmake/KF5ItemModels/KF5ItemModelsConfig.cmake (found version "5.3.0")
-- Found KF5WidgetsAddons: /usr/lib/x86_64-linux-gnu/cmake/KF5WidgetsAddons/KF5WidgetsAddonsConfig.cmake (found version "5.3.0")
-- Found KF5WindowSystem: /usr/lib/x86_64-linux-gnu/cmake/KF5WindowSystem/KF5WindowSystemConfig.cmake (found version "5.3.0")
-- Found KF5Codecs: /usr/lib/x86_64-linux-gnu/cmake/KF5Codecs/KF5CodecsConfig.cmake (found version "5.3.0")
-- Found KF5Archive: /usr/lib/x86_64-linux-gnu/cmake/KF5Archive/KF5ArchiveConfig.cmake (found version "5.3.0")
-- Found KF5DBusAddons: /usr/lib/x86_64-linux-gnu/cmake/KF5DBusAddons/KF5DBusAddonsConfig.cmake (found version "5.3.0")
-- Found KF5DNSSD: /usr/lib/x86_64-linux-gnu/cmake/KF5DNSSD/KF5DNSSDConfig.cmake (found version "5.3.0")
-- Found Gettext: /usr/bin/msgmerge (found version "0.19.2")
-- Found PythonInterp: /usr/bin/python (found version "2.7.8")
-- Found KF5Declarative: /usr/lib/x86_64-linux-gnu/cmake/KF5Declarative/KF5DeclarativeConfig.cmake (found version "5.3.0")
-- Found KF5I18n: /usr/lib/x86_64-linux-gnu/cmake/KF5I18n/KF5I18nConfig.cmake (found version "5.3.0")
-- Found KF5GuiAddons: /usr/lib/x86_64-linux-gnu/cmake/KF5GuiAddons/KF5GuiAddonsConfig.cmake (found version "5.3.0")
-- Found KF5Service: /usr/lib/x86_64-linux-gnu/cmake/KF5Service/KF5ServiceConfig.cmake (found version "5.3.0")
-- Found KF5ConfigWidgets: /usr/lib/x86_64-linux-gnu/cmake/KF5ConfigWidgets/KF5ConfigWidgetsConfig.cmake (found version "5.3.0")
-- Found KF5ItemViews: /usr/lib/x86_64-linux-gnu/cmake/KF5ItemViews/KF5ItemViewsConfig.cmake (found version "5.3.0")
-- Found KF5IconThemes: /usr/lib/x86_64-linux-gnu/cmake/KF5IconThemes/KF5IconThemesConfig.cmake (found version "5.3.0")
-- Found KF5Completion: /usr/lib/x86_64-linux-gnu/cmake/KF5Completion/KF5CompletionConfig.cmake (found version "5.3.0")
-- Found KF5JobWidgets: /usr/lib/x86_64-linux-gnu/cmake/KF5JobWidgets/KF5JobWidgetsConfig.cmake (found version "5.3.0")
-- Found KF5TextWidgets: /usr/lib/x86_64-linux-gnu/cmake/KF5TextWidgets/KF5TextWidgetsConfig.cmake (found version "5.3.0")
-- Found KF5GlobalAccel: /usr/lib/x86_64-linux-gnu/cmake/KF5GlobalAccel/KF5GlobalAccelConfig.cmake (found version "5.3.0")
-- Found KF5XmlGui: /usr/lib/x86_64-linux-gnu/cmake/KF5XmlGui/KF5XmlGuiConfig.cmake (found version "5.3.0")
-- Found KF5Crash: /usr/lib/x86_64-linux-gnu/cmake/KF5Crash/KF5CrashConfig.cmake (found version "5.3.0")
-- Found KF5Bookmarks: /usr/lib/x86_64-linux-gnu/cmake/KF5Bookmarks/KF5BookmarksConfig.cmake (found version "5.3.0")
-- Found KF5KIO: /usr/lib/x86_64-linux-gnu/cmake/KF5KIO/KF5KIOConfig.cmake (found version "5.3.0")
-- Found KF5NotifyConfig: /usr/lib/x86_64-linux-gnu/cmake/KF5NotifyConfig/KF5NotifyConfigConfig.cmake (found version "5.3.0")
-- Found KF5NewStuff: /usr/lib/x86_64-linux-gnu/cmake/KF5NewStuff/KF5NewStuffConfig.cmake (found version "5.3.0")
-- Found KF5KDELibs4Support: /usr/lib/x86_64-linux-gnu/cmake/KF5KDELibs4Support/KF5KDELibs4SupportConfig.cmake (found version "5.3.0")
-- Found KF5: success (found version "5.3.0") found components: CoreAddons Config ItemModels WidgetsAddons WindowSystem Codecs Archive Config DBusAddons DNSSD Declarative I18n GuiAddons Service ConfigWidgets ItemViews IconThemes Completion JobWidgets TextWidgets GlobalAccel XmlGui Crash Bookmarks KIO NotifyConfig NewStuff KDELibs4Support
-- Looking for __GLIBC__
-- Looking for __GLIBC__ - found
-- Performing Test _OFFT_IS_64BIT
-- Performing Test _OFFT_IS_64BIT - Success
-- Configuring done
-- Generating done
-- Build files have been written to: /home/garvit/dev/sok/knetwalk/build
Make Log can be find here : https://gist.github.com/garvitdelhi/0e21a095dcfc8cfef170
It’s already week 6 of GSoC coding period and through all the way, it was really a great learning experience. Couldn’t even notice how fast time flew by. Here, I’m after 2 days of GSoC Second evaluation result published, and yes, I got passed!! the second evaluation tooMe after seeing GSoC second evaluation result.
Till now, what all have I done?
I will just give an overview of what all I have worked on during the past few weeks. The main aim of the project was to integrate share. krita.org with our Krita application. It should have the ability to download the items from the site directly into default folders of the resources we choose to download. So, I created a widget content_downloader widget to perform all sorts of functionalities we needed to get from the downloader. The functions like download then install and to perform uninstall the items downloaded were added. Then search functionality, different ways to filter resources using the categories and order by method too. Used KRating API to rate the items showed inside the content downloader. Also, small functionalities like, Description viewer as labels and printing out certain data like the author and all as well were added.
Then we created the content_downloader_dialog class to group all the content_downloader widget functionality into a single package so that we are able to call the whole functionality just as we create a class object.
Next, we had planned the UI for our downloader and had a wireframe or it, created by Scott Petrovic. We at first used a mock-up UI to get things done. Now we have changed the mockup and implemented the wireframe we had decided on. As other Addons, I have created a progress-bar which depicts the progress of the current process on what the downloader is doing alone with labels showing what the downloader is doing in the mean time.
All are done under MVC architecture and this helped me a lot for understanding core concepts of MVC architecture as well as the object oriented concepts as well.
After this was done, I started to work on the Resource Manager/ Bundle Manager, on fixing certain bugs adding most relevant features into the resource manager. Feature for deleting the bundles have been created. As well as searching for the bundles have been created.
I have been working on the UI for the Resource Manager as well, It’s almost done and needs some touch ups. As talking about the UI of the Resource Manager, I have made the ListWidget, that is, the bundle items in the resource manager to be checkable items as well.
Next, I have started to document the functionalities and certain tests are still to be done, will be moving on with it this week mostly. Also, as suggestions from my mentor and community, I will be working on the certain parts of tagging manager as well.
Places where I thought I will focus on:
- Missing blacklisting for tags.
- Work around for tagging multiple resources at the one go.
Plans for next week
- Get finished with the documentation part.
- Complete the UI for the Resource Manager.
- Fix the small UI glitch in the content downloader.
- Start working out the plans created for the tagging management.
All the Blog posts till now related to GSoC’17:
- GSoC’17-Week #5
- GSoC’17-Week #4
- GSoC’17-Week #3
- GSoC’17-Week #2
- GSoC’17-Week #1
- Awesome::KDE Community
- Introduction for GSoC 2017 with KDE, Krita
Here is my branch were all the work I am done is going to.
Will be back with more updates later next week.
Akademy, KDE’s annual developer conference, is over — and as always, it was a great experience! Thanks a lot to the local organization team, and of course to all the nice people attending and discussing things.
Akademy is typically a mix of hacking, visiting workshops and talks, and socializing with other KDE people. In the KDevelop workshop for example, we discussed about the future of the project — which issues there currently are which make our users life worse, what new features we are looking into implementing, and some administrative stuff (merging repoistories, etc). What was nice here was that we had some actual long-term users outside of the development team in the room which shared their experiences and issues.
On the hacking side, I worked on multicursor support in kate for a while, and fixed a few minor issues in KDevelop. The most significant coding result for me, as sad as this sounds, is probably this tiny trivial patch which makes C++ code completion a huge lot faster in many situations — it will be in KDevelop 5.2, which we plan to release soon-ish™.
And, last but not least, it was of course great to meet all the contributors to KDevelop and Kate once more; old and new faces alike!
That’s it for now! See you next year at Akademy in Vienna, everyone?
Akademy is over and so here’s a short summary of what the PIMsters have worked on during the past week.Wiki Cleanup
Me and Volker sat down and went through all KDE PIM wikipages on community.kde.org, userbase.kde.org and techbase.kde.org. Most of our wiki pages are horribly outdated, so we tried to clean them up, remove pages that are no longer relevant or useful. With fewer pages to take care of and better overview of what all content we have, we should be able to keep them more up-to-date than we did in the past years.Developer Story
Contributing to KDE PIM is hard and we know that. Getting all the dependencies and environment set up correctly is not trivial, and you can’t run stable and development Kontact alongside each other easily.
We decided to address all those issues and make contributing to KDE PIM substantially easier. We are working on a Docker image that has all the dependencies and environment set up, so developers just need to run a single command to build entire KDE PIM. And thanks to the containerization, it’s also possible to use the development version of Kontact in parallel with the stable version.
We hope that having ready-made development environment it will be easier for new contributors to get involved with KDE PIM. We will post a more details once the Docker image is ready.Kontact Homepage
Right now kontact.kde.org and kontact.org just redirect to our page on the Userbase wiki. We decided that we want a simple, but professionally-looking web site to market Kontact as an actual product so that it appears more attractive to new users, especially those who will be coming from Windows in the future and contains comprehensive information for both users and developers.KMail User Survey
During QtCon 2016 we started working on KMail user survey to get a better idea of what our user base is like, how they use KMail and what their impressions of it are. And now the survey is finally live, so please go and fill it if you haven’t done so yet.Wayland Support
Volker has finished porting Kontact to Wayland, so if you have Qt 5.9, you can now run Kontact natively on Wayland. Our main limitation was Wayland support in QWebEngine, which we use to render emails, but that has been resolved in Qt 5.9.Merging Exchange Support
Krzysztof Nowicki has been working on Microsoft Exchange support for Kontact for a while now. We now have plans to merge his code into kdepim-runtime repository, so if everything goes right the Exchange support will be available out-of-the-box to all our users starting with the December release of KDE Applications.Next Sprint
We will be meeting soon again in Randa. Our main plan for the sprint is to continue with removal of KDateTime from our code, and thus making KDE PIM free of kdelibs4support.
There’s some more that I did not mention here, you can check the full notes for details.