I Use This!
Activity Not Available

News

Analyzed 4 months ago. based on code collected 9 months ago.
Posted over 5 years ago by Stephen Kelly (steveire)
I’ve started contributing to Clang, in the hope that I can improve the API for tooling. This will eventually mean changes to the C++ API of Clang, the CMake buildsystem, and new features in the tooling. Hopefully I’ll remember to blog about changes I ... [More] make. The Department of Redundancy Department I’ve been implementing custom clang-tidy checks and have become quite familiar with the AST Node API. Because of my background in Qt, I was immediately disoriented by some API inconsistency. Certain API classes had both getStartLoc and getLocStart methods, as well as both getEndLoc and getLocEnd etc. The pairs of methods return the same content, so at least one set of them is redundant. I’m used to working on stable library APIs, but Clang is different in that it offers no API stability guarantees at all. As an experiment, we staggered the introduction of new API and removal of old API. I ended up replacing the getStartLoc and getLocStart methods with getBeginLoc for consistency with other classes, and replaced getLocEnd with getEndLoc. Both old and new APIs are in the Clang 7.0.0 release, but the old APIs are already removed from Clang master. Users of the old APIs should port to the new ones at the next opportunity as described here. Wait a minute, Where’s me dump()er? Clang AST classes have a dump() method which is very useful for debugging. Several tools shipped with Clang are based on dumping AST nodes. The SourceLocation type also provides a dump() method which outputs the file, line and column corresponding to a location. The problem with it though has always been that it does not include a newline at the end of the output, so the output gets lost in noise. This 2013 video tutorial shows the typical developer experience using that dump method. I’ve finally fixed that in Clang, but it did not make it into Clang 7.0.0. In the same vein, I also added a dump() method to the SourceRange class. This prints out locations in the an angle-bracket format which shows only what changed between the beginning and end of the range. Let it bind When writing clang-tidy checks using AST Matchers, it is common to factor out intermediate variables for re-use or for clarity in the code. auto valueMethod = cxxMethodDecl(hasName("value")); Finer->addMatcher(valueMethod.bind("methodDecl")); clang-query has an analogous way to create intermediate matcher variables, but binding to them did not work. As of my recent commit, it is possible to create matcher variables and bind them later in a matcher: let valueMethod cxxMethodDecl(hasName("value")) match valueMethod.bind("methodDecl") match callExpr(callee(valueMethod.bind("methodDecl"))).bind("methodCall") Preload your Queries Staying on the same topic, I extended clang-query with a --preload option. This allows starting clang-query with some commands already invoked, and then continue using it as a REPL: bash$ cat cmds.txt let valueMethod cxxMethodDecl(hasName("value")) bash$ clang-query --preload cmds.txt somefile.cpp clang-query> match valueMethod.bind("methodDecl") Match #1: somefile.cpp:4:2: note: "methodDecl" binds here void value(); ^~~~~~~~~~~~ 1 match. Previously, it was only possible to run commands from a file without also creating a REPL using the -c option. The --preload option with the REPL is useful when experimenting with matchers and having to restart clang-query regularly. This happens a lot when modifying code to examine changes to AST nodes. Enjoy! [Less]
Posted over 5 years ago by Jasem Mutlaq (KNRO)
I'm glad to announce that KStars is now available on Microsoft Store in over 60 languages! It is the first official KDE App to be published by KDE e.V on the MS Store.Currently, KStars v2.9.8 is in the store and should be updated every stable ... [More] release. While KStars has sand-boxed packages for both MacOS & Windows, we are still missing a Linux sandboxed package. Earlier attempts at packaging a Snap package failed and I didn't pursue it further due to lack of support. Additional work at creating an AppImage also failed due to a few technical issues with linuxdeployqt and SSL. If anyone can help us create a Snap/FlatPak package, that would be great. This release on the Windows Store would not have been possible without the tremendous work done by Hannah Von Reth. She played a pivotal role in setting up the infrastructure and tools necessary to make this work, thank you Hannah! [Less]
Posted over 5 years ago by Matthieu Gallien (mgallien)
0.3 Beta Release of Elisa Music Player Elisa is a music player developed by the KDE community that strives to be simple and nice to use. We also recognize that we need a flexible product to account for the different workflows and use-cases of our ... [More] users. We focus on a very good integration with the Plasma desktop of the KDE community without compromising the support for other platforms (other Linux desktop environments, Windows and Android). We are creating a reliable product that is a joy to use and respects our users privacy. As such, we will prefer to support online services where users are in control of their data. New Features and Improvements The main improvements are the following: Hide stars when there is no rating by Diego Gangl ; Various fixes for the Windows support by Matthieu Gallien ; Implement interface of Baloo to watch renamed files by Matthieu Gallien ; Upgrade some code using deprecated features in KDeclarative framework by Alexander Stippich ; Align the action buttons with the big icon in the views header by Diego Gangl ; Allow the playlist to be hidden when browsing your music by Diego Gangl ; Always display the title of the playlist entries by Matthieu Gallien ; Internal improvements to various non graphical components to allow future improvements to the header bar by Matthieu Gallien ; Resize track metadata view dynamically by Alexander Stippich ; Improvements to the header of the play list by Diego Gangl ; Add a mode where Elisa can show only the header but in the full window by Carl Schwan. Welcome to the project. This was a junior task identified in the Elisa workboard ; Optimize the data methods of model and use QAbstractItemModelTester (see the blog from Giuseppe D’Angelo) by Matthieu Gallien ; Makes KIO and KFileMetaData be optional dependencies by Matthieu Gallien. This a preliminary step to allow building Elisa for Android with as few dependencies as possible. New Mode with only the Player Header Visible This feature improves two different cases. The first is to allow usage of Elisa with a small window. In this case, only minimal information is shown in a possibly small window. The second is to implement the “party” mode that was originally designed by Andrew Lake. Other Improvements to the Interface As already said, there have been various improvements to the interface. How You Can Help We are preparing for the next stable release. As such, there is a feature freeze and an ongoing effort to squash as many bugs as possible. We really appreciate any feedback on the current state via bugs.kde.org. We welcome bug report or feature suggestions. You can get the next release by building from source or by using the flatpak package provided by KDE. The windows installer is also available here (thanks a lot to the Craft and binary-factory teams). [Less]
Posted over 5 years ago by Andrew Crouthamel (AndrewCrouthamel)
More long and thoughtful posts like the prior one will be coming. But right now I have an important announcement! I have resurrected the KDE Bugsquad, and we have our first official Bug Day on Saturday! The KDE Bugsquad is back! We can think of no ... [More] better way to celebrate than joining forces with the Krita team as part of their Squash All the Bugs fundraiser! We will be holding the first Bug Day on September 15th, 2018, focusing on bugs reported on Krita. Expect events to kick off at 10:00 AM EDT. This is a great opportunity for anyone, especially non-developers to get involved! Check out our Bug Triaging guide for a primer on how to go about confirming and triaging bugs. Log into KDE Phabricator and join the Bugsquad! Join the #kde-bugs IRC channel on Freenode to chat with us in real-time as we go through the list. Open the shared Etherpad for this event (use your KDE Identity login) to select your block of bugs and cross them off. If you need any help, contact me! [Less]
Posted over 5 years ago by Krita News
Over the past months, Ramon Miranda, known for his wonderful introduction to digital painting, Muses, has worked on creating a complete new brush preset bundle: Digital Atelier. Not only does this contain over fifty new brush presets, more than ... [More] thirty new brush tips and twenty patterns and surfaces. There is almost two hours of in-depth video tutorial, working you through the process of creating new brush presets. Ramon has gone deep here! The goal was to create painterly brushes: achieving the look and feel of oil paint, pastel or water colors. Ramon did a lot of research and experimentation and it has paid off handsomely: The complete download is 8 gigabytes! When? On Saturday, Krita’s 2018 Squash the Bugs fundraiser will start. Anyone who supports Krita with €50 or more will get a free download! On October 16th, we’ll put Digital Atelier in the Krita shop for €39.95. What? Brush pack: Fifty-one new brush presets — check out the reference sheet! Twenty-four oil paint brush presets, of which four are very experimental. Thirteen Pastel brush presets. Fourteen Watercolor brush presets. Thirty-four new PNG and five new SVG brush tips. Twenty 512×512 paper surfaces and patterns. Tutorial Videos: Introduction: Knowing our tools Oil painting Pastel painting Water Color painting Creating your own Patterns Creating your own Brush tips. The music is by Kevin MacLeod. The language used in the videos is English. [Less]
Posted over 5 years ago by Frank Karlitschek (karli)
Today the Nextcloud community released Nextcloud 14. This release comes with a ton of improvements in the areas of User Experience, Accessibility, Speed, GDPR compliance, 2 Factor Authentication, Collaboration, Security and many other things. You can ... [More] find an overview here But there is one feature I want to highlight because I find it especially noteworthy and interesting. Some people ask us why we are doing more than the classic file sync and share. Why do we care about Calendar, Contacts, Email, Notes, RSS Reader, Deck, Chat, Video and audio calls and so on. It all fits together The reason is that I believe that a lot if these features belong together. There is a huge benefit in an integrated solution. This doesn’t mean that everyone needs and wants all features. This is why we make it possible to switch all of them off so that you and your users have only the functionality available that you really want. But there are huge advantages to have deep integration. This is very similar to the way KDE and GNOME integrate all applications together on the Desktop. Or how Office 365 and Google Suite integrate cloud applications. The why of Video Verification The example I want to talk about for this release is Video Verification. It is a solution for a problem that was unsolved until now. Let’s imagine you have a very confidential document that you want to share with one specific person and only this person. This can be important for lawyers, doctors or bank advisors. You can send the sharing link to the email you might have of this person but you can’t be sure that it reaches this person and only exactly this person. You don’t know if the email is seen by the mailserver admin or the kid who plays with the smartphone or the spouse or the hacker who has hijacked the PC or the mail account of the recipient. The document is transmitted vie encrypted https of course but you don’t know who is on the other side. Even if you sent the password via another channel, you can’t have 100% certainty. Let’s see how this is done in other cases. TLS solves two problems for https. The data transfer is encrypted with strong encryption algorithms but this is not enough. Additionally certificates are used to make sure that you are actually talking to the right endpoint on the other side of the https connection. It doesn’t help to securily communicate with what you think is your bank but is actually an attacker! In GPG encrypted emails the encryption is done with strong and proven algorithms. But there is an additional key signing needed to make sure that the key is owned by the right person. This second part, the verification of the identity of the recipient, is missing in file sync and share until now. Video verification solves that. How it works I want to share a confidential document with someone. In the Nextcloud sharing dialog I type in the email of the person and i activate the option ‘Password via Talk’ then I can set a password to protect the document. The recipient gets a link to the document by email. Once the person clicks on the link the person sees a screen that asks for a password. The person can click on the ‘request password’ button and then a sidebar open which initiates a Nextcloud Talk call to me. I get a notification about this call in my web interface, via my Nextcloud Desktop client or, most likely to get my attention, my phone will ring because the Nextcloud app on my phone got a push notification. I answer my phone and I have an end to end encrypted, peer to peer video call with the recipient of the link. I can verify that this is indeed the right person. Maybe because I know the person or because the person holds up a personal picture ID. Once I’m sure it is the right person I tell the person the password to the document. The person types in the password and has access to the document. This procedure is of course over the top for normal standard shares. But if you are dealing with very confidential documents because you are a doctor, a lawyer, a bank or a whistleblower then this is the only way to make sure that the document reaches the right person. I’m happy and a b it proud that the Nextcloud community is able to produce such innovative features that don’t even exist in proprietary solution As always all the server software, the mobile apps and the desktop clients are 100% open source, free software and can be self hosted by everyone. Nextcloud is a fully open source community driven project without a contributor agreement or closed source and proprietary extensions or an enterprise edition. You can get more information on nextcloud.com or contribute at github.com/nextcloud       [Less]
Posted over 5 years ago by Daniel Vrátil (dvratil)
Today KMail has gained a new cool feature that has been repeatedly requested in the User survey last year as well as on forums and social networks: Unified mailboxes. Unified mailboxes offer not only a unified inbox – a single “Inbox” folder showing ... [More] emails from inboxes of all your accounts, it also provides unified sent and drafts folders by default. But we did not stop there: you can create completely custom unified mailboxes consisting of any folders you choose. You can even customize the default ones (for example exclude an Inbox from a particular account). Some obligatory screenshots: The feature will be present in the December release of KDE Applications.   Do you want to help us bring more cool features like this to Kontact? Then take a look at some of the junior jobs that we have! They are simple mostly programming tasks that don’t require any knowledge of Akonadi or all the complexities of Kontact. Feel free to pick any task from the list and reach out to us! We’ll be happy to guide you. Read more here… [Less]
Posted over 5 years ago by Qt Dev Loop
We are happy to announce the release of Qt 3D Studio 2.1 Beta 1. It is available via the online installer. Here’s a quick summary of the new features and functions in 2.1. For detailed information about the Qt 3D Studio, visit the online ... [More] documentation page. Data Input For data inputs, we are introducing a new data type; Boolean. Related to this, elements now have a Visible property which can be controlled with the Boolean data input. When item visibility is controlled by a data input, the eyeball icon in the timeline palette changes to orange to illustrate this. Data inputs are now checked at presentation opening. If elements in the presentation are using data inputs that are not found from the data input list (in the .uia file), a warning dialogue is shown. Then, the user can choose to automatically remove all property controls that are using invalid data inputs. Additionally, the visualization of data input control for slides and the timeline has improved. Now it is much clearer which data input is in control. For more details on data inputs, see documentation. New Project Structure There is a new project structure with presentations and qml streams folders. Presentation (.uip) files are now visible in the project palette, it is also possible to have several .uip files in a project. In the project palette, it is now possible to double-click an asset to open it in the application associated by the operating system. .uip files will open in Qt 3D Studio. Sub-Presentations A lot of improvement has been done to make working with sub-presentations more convenient. Some of the key improvements are: You can create a new presentation in the Studio without leaving your current project. With the possibility to have many .uip files in one project, it is easy to share assets between presentations. Importing both .uip and .qml presentations are done the same way you import other assets. Assign sub-presentations to meshes or layers by dragging and dropping from the project palette. For more details on sub-presentations, see documentation. Installation As mentioned, Qt 3D Studio 2.1 Beta 1 is available via the Qt online installer. You’ll find it in under the preview section. If you have a previous installation, please use the Update feature in the Qt Maintenance tool to get the latest version. 2.1 version will be installed alongside the old version. The Qt online installer can be downloaded from www.qt.io/download while commercial license holders can find the packages from account.qt.io. The post Qt 3D Studio 2.1 Beta 1 released appeared first on Qt Blog. [Less]
Posted over 5 years ago by Boudhayan Gupta (BaloneyGeek)
I moved to Munich in January 2017, fresh out of university. Actually, I was still in university when I moved - I did my final semester abroad, a 6-month internship at eGym GmbH, where I made software running on smart fitness equipment. It's been a ... [More] year and nine months since, and as I write this, this chapter of my life will come to a close in another fifteen days. I'm leaving Munich, and I can't wait. It was a cold, snowy night in January - I actually remember the exact date and time; 23:27 on the 14th of January, 2017 - when I stepped off the TGV from Paris at München Hbf, and immediately felt a chill wrap around my heart. A very different chill from the negative temperatures. A chill that I now know is of a city that doesn't care. Extremely prosperous, terrifyingly efficient, but the furthest away from a warm, caring place I could call home. I tried really hard though. I ignored this feeling for the better part of a year, chalking it down to loneliness, culture shock, and telling myself I'll be able to survive here once I've adjusted to this, and as the days went by, my ability to shut it out and deal with it did get better. But did I want this? I'm 23, young, free and armed with a degree and specialised knowledge that I can (I hope) make world-changing developments with. I really didn't want to waste my 20s changing myself into the cynical, uncaring monster I'd need to become to be able to live in this city. I came here an optimist, an aggressive dreamer who could do anything he set his sights on, and above all, a passionate carer who put people above all else, and I was well on my way to changing and becoming the complete opposite. Once I'd come to that realisation, however, I decided this was enough. I'd be damned if I was going to let where I live change the very person I am. Munich doesn't deserve me. There are better places in this world where I can put myself to good use. So once I could look past the false attraction of city that only worsened my own identity crisis, and muster the courage to write off the sunk investment, I started looking for a new job outside this city. And I found one, in the best place I could hope for: Heidelberg. When I visited Heidelberg for my interview, the city spoke to me. It's about as big as the town in India where my university is located, and is home to just 150,000 people, just enough to feel like I'm part of a close-knit community. A quarter of the city's populace are students; indeed the city houses Germany's oldest and one of its best universities, one that has produced no less than 56 Nobel laureates since its founding during the Roman Empire. And just under half of the populace have an immigration background. The city is also drop-dead gorgeous. Heidelberg is a long town, situated on both banks of the Neckar, which in turn is surrounded by hills. The Baroque architecture in the old town gives the city a distinct character, and oh, there's a giant castle, right in the city center. But what really makes this city stand out is the people. It too was a cold, snowy day when I came to the city to interview for my job. But the smile and the curiosity of the shopkeeper at the bakery where I bought my breakfast wasn't the standard fake hospitality industry expression. The friend who took it upon himself to give me a car ride from the station and make sure I was calm and in the best state of mind for the upcoming interview, and for that matter the prospective landlord who actually picked me up from Mannhiem and drove me to Heidelberg to show me the apartment, and then drove me around the city to show me around afterwards, simply taking pleasure in helping someone out - this is the kind of person I strive to be, and these are the kinds of people I want to be surrounded by. And in Munich, neither could I be this person, nor could I find someone like this to hang out with - in fact, I was actively discouraged from being this person. A big reason for the move to Germany was because of specific experiences with German people that I personally had. People in KDE who first helped me hone my technical skills and then my social skills. People who came up to me in San Francisco - where I was at a developer conference - and said "Hey, you're Indian right? Happy Diwali!" People who knew nothing about me whatsoever, heard that I was moving to Germany, took me aside for two whole hours and told me about life in their country, things I should be careful about, things I should do and things I should not. After all of that, the experience I had in Munich was nothing short of shocking. I often wondered, where the people who made me want to move here were. Because they definitely weren't where I was. I've finally found out. And in fifteen days, I'm finally going to be in the Germany that I came here for. [Less]
Posted over 5 years ago by Tomaz Canabrava (tomaz)
Half a month ago when I landed my patch that replaced the old Konsole tabbar with a newer QTabWidget approach, I made a lot of people unhappy, but a lot of people happy too. And I want to make more people happy by fixing the issues I created. Now ... [More] , Whenever code is changed there’s a possibility of new bugs arriving and there’s nothing wrong with that. The wrong thing (and that happens a few times with any software) is ignoring the bugs and pretending that they don’t exist. I have five patches on phabricator right now that will close all of the bugs I created and maybe a few more, please test, try, review. I’m only human and I can create more problems than I’m trying to solve. Also remember to be kind in comments for this is not my work, but my hobby, and a happy developer is a developer that contributes with code. The reviews in question: https://phabricator.kde.org/D14200 https://phabricator.kde.org/D15378 https://phabricator.kde.org/D15379 https://phabricator.kde.org/D15377 https://phabricator.kde.org/D14198 I would also thanks Lukas Bergdoll, a work colleague, that joined me for this mini Konsole Hackaton at my house, and produced his first two patches: https://phabricator.kde.org/D15380 https://phabricator.kde.org/D15383 [Less]