Feeds
New Plasma Icons: A Visual Design Update
Hey everyone! Finally a video update after 3 months of work. Here is what we have on the new icons for Plasma.
I went over the changes a little fast but if you have any questions, let us know. You can find us in the Visual Design channel on Matrix and also on Telegram.
If you would like to join this effort and have some good Figma/PenPot skills, let us know as well! We need more designers in our group!
Visual Design Matrix Visual Design TelegramWhat I did in KDE/Plasma Mobile land in July-ish
After my gargantuan post around the overhauled navigation gestures (and a still-in-progress one about KWin corner touch gesture support I'll hopefully have ready soon:tm:) let's tackle a few more smaller things. I'll try to make these somewhat regular (dare I say maybe even monthly?), but let's see how that shakes out, probably more like every 2-3 months if at all.
As an exciting update, near the end of June (the 25th to be exact) I got accepted to the KDE dev team. This means I now have the ability to properly manage submitted issues on GitLab and, only slightly terrifyingly, I'm now allowed to push code changes to the main repositories and review MRs. Let's see when, if ever, this feeling of trepidation over having to make quadruple sure I don't accidentally do stupid stuff subsides. Should it even subside or is being very extra super duper careful a good thing. I'll keep you posted whenever I find an answer to that :D
Anyways, let's get to code changes:
Merged Changes Task Switcher/Gesture Navigation- I sat down and overhauled some of the animations around the navigation gestures of the mobile task switcher: The diagonal quick switch should now look smoother and not be nearly-instantaneous and the flick to homescreen is now a tad smoother and actually makes the task preview smaller while animating instead of looking like it's opening the selected task before suddenly vanishing.
- Fixed minor logic bug around task switcher quick switch gesture. It should now correctly open the task switcher when you're trying to quick switch towards the end of a list - if there's nothing to quick switch to, it's better to open the full task switcher instead of just returning to the app you were in before.
- I added a task icon list to the task scrub gesture in the switcher to make it visually more distinct to the "normal" task switcher and provide more useful info about the open apps you can switch to. In case you didn't know: In gesture-only mode w (I'll admit this one is a bit older, but this is the first installment of this kind of post so I'm not tooooo strict on the "in July" part): I'm still tracking an issue with this where when the task list becomes too long it's not properly centered anymore, but that should be a fairly simple fix once I get to it.
- The main task switcher opening gesture now stops tracking the finger 1:1 in the vertical direction once it's moved a bit past its "fully activated" point. This is a bit awkward to explain, but basically it makes it "more reluctant" to follow the finger infinitely far up. If that still doesn't make sense, here's a video: Video tag unsupported!
- The task switcher gestures now have a haptic feedback in some places: When the conditions are met for the task switcher to open (eg: gesture progress is far enough and finger movement speed is slow enough) and when the task scrub mode starts there'll now be a bit of haptic feedback.
I've done some bug triaging and reproduction here and there, as well as tried to keep up to date on merge requests in the Plasma Mobile world. I still haven't really done a proper review and merge, but I'm trying to look through all of the other ones to hopefully learn how good reviews look like so at some point I'll be able to do them.
Unfinished- I tried my hand at fixing the task switcher navigation gestures being always active instead of just when the gesture navigation mode is actually turned on. To do this properly we probably need to refactor the mobileshellsettings plugin to be accessible via C++ (it's just a QML plugin currently), so let's see how that goes.
- I started work on more mobile friendly notification popups. The new design uses a swipe-to-dismiss interaction instead of having a close button. While technically "working" from a functionality perspective, the visuals are kind of broken still. I hope to have this complete by 6.2, but there's still some open questions. I'll probably have to get in touch with more experienced Plasma devs to brainstorm why this is going wrong so badly, but I've not quite given up at bashing my head against this myself. Oh and before I forget: this also affects Plasma Desktop when in Touch/Tablet Mode. Video tag unsupported!This was my first try, which was smooth but left behind the window shadow Video tag unsupported!And this my second try which is more technically correct and properly moves the window, but... I mean, you can see it yourself
For the next month I wanna try and finish up my work on KWin touch corner gestures (and get another oversized blog post out about those) and then implement them into Plasma Mobile. Once that is done I want to do more bug fixing, triaging and looking at knocking out some tickets for planned bigger picture improvements for 6.2. Let's see next month if a) I get any of this done or b) I even manage to make a blog post since I'll not be home for a while
Bits from Debian: DebConf24 starts today in Busan on Sunday, July 28, 2024
DebConf24, the 25th annual Debian Developer Conference, is taking place in Busan, Republic of Korea from July 28th to August 4th, 2024. Debian contributors from all over the world have come together at Pukyong National University, Busan, to participate and work in a conference exclusively ran by volunteers.
Today the main conference starts with around 340 expected attendants and over 100 scheduled activities, including 45-minute and 20-minute talks, Bird of a Feather ("BoF") team meetings, workshops, a job fair, as well as a variety of other events. The full schedule is updated each day, including activities planned ad-hoc by attendees over the course of the conference.
If you would like to engage remotely, you can follow the video streams available from the DebConf24 website for the events happening in the three talk rooms: Bada, Somin and Pado. Or you can join the conversations happening inside the talk rooms via the OFTC IRC network in the #debconf-bada, #debconf-somin, and #debconf-pado channels. Please also join us in the #debconf channel for common discussions related to DebConf.
You can also follow the live coverage of news about DebConf24 provided by our micronews service or the @debian profile on your favorite social network.
DebConf is committed to a safe and welcoming environment for all participants. Please see our Code of Conduct page for more information on this.
Debian thanks the commitment of numerous sponsors to support DebConf24, particularly our Platinum Sponsors: Proxmox, Infomaniak and Wind River.
Bits from Debian: DebConf24 welcomes its sponsors!
DebConf24, the 25th edition of the Debian conference is taking place in Pukyong National University at Busan, Republic of Korea. Thanks to the hard work of its organizers, it again will be an interesting and fruitful event for attendees.
We would like to warmly welcome the sponsors of DebConf24, and introduce them to you.
We have three Platinum sponsors.
-
Proxmox is the first Platinum sponsor. Proxmox provides powerful and user-friendly Open Source server software. Enterprises of all sizes and industries use Proxmox solutions to deploy efficient and simplified IT infrastructures, minimize total cost of ownership, and avoid vendor lock-in. Proxmox also offers commercial support, training services, and an extensive partner ecosystem to ensure business continuity for its customers. Proxmox Server Solutions GmbH was established in 2005 and is headquartered in Vienna, Austria. Proxmox builds its product offerings on top of the Debian operating system.
-
Our second Platinum sponsor is Infomaniak. Infomaniak is an independent cloud service provider recognised throughout Europe for its commitment to privacy, the local economy and the environment. Recording growth of 18% in 2023, the company is developing a suite of online collaborative tools and cloud hosting, streaming, marketing and events solutions. Infomaniak uses exclusively renewable energy, builds its own data centers and develops its solutions in Switzerland, without relocating. The company powers the website of the Belgian radio and TV service (RTBF) and provides streaming for more than 3,000 TV and radio stations in Europe.
-
Wind River is our third Platinum sponsor. For nearly 20 years, Wind River has led in commercial Open Source Linux solutions for mission-critical enterprise edge computing. With expertise across aerospace, automotive, industrial, telecom, and more, the company is committed to Open Source through initiatives like eLxr, Yocto, Zephyr, and StarlingX.
Our Gold sponsors are:
-
Ubuntu, the Operating System delivered by Canonical.
-
Freexian, a services company specialized in Free Software and in particular Debian GNU/Linux, covering consulting, custom developments, support and training. Freexian has a recognized Debian expertise thanks to the participation of Debian developers.
-
Lenovo, a global technology leader manufacturing a wide portfolio of connected products including smartphones, tablets, PCs and workstations as well as AR/VR devices, smart home/office and data center solutions.
-
Korea Tourism Organization, which purpose is to advance tourism as a key driver for national economic growth and enhancement of national welfare and intends to be a public organization that makes the Korean people happier; it promotes national wealth through tourism.
-
Busan IT Industry Promotion Agency, an industry promotion organization that contributes to the innovation of the digital economy with the power of IT and CT and supports the ecosystem for innovative local startups and companies to grow.
-
Microsoft, who enables digital transformation for the era of an intelligent cloud and an intelligent edge. Its mission is to empower every person and every organization on the planet to achieve more.
-
doubleO, a company that specializes in consulting and developing empirical services using big data analysis and artificial intelligence. doubleO provides a variety of data-centered services together with small and medium-sized businesses in Busan/Gyeongnam.
Our Silver sponsors are:
- Roche, a major international pharmaceutical provider and research company dedicated to personalized healthcare.
- Two Sigma, rigorous inquiry, technology data science, and invention to bring science to finance and help solve the toughest challenges across financial services.
- Arm: leading technology provider of processor IP, Arm powered solutions have been supporting innovation for more than 30 years and are deployed in over 280 billion chips to date.
- The Bern University of Applied Sciences with around 7,800 students enrolled, located in the Swiss capital.
- Google, one of the largest technology companies in the world, providing a wide range of Internet-related services and products such as online advertising technologies, search, cloud computing, software, and hardware.
- FSIJ, the Free Software Initiative of Japan, a non-profit organization dedicated to supporting Free Software growth and development.
- Busan Tourism Organisation: leading public corporation that generates social and economic values in Busan tourism industry, developing tourism resources in accordance with government policies and invigorate tourism industry.
- Civil Infrastructure Platform, a collaborative project hosted by the Linux Foundation, establishing an open source “base layer” of industrial grade software.
- Collabora, a global consultancy delivering Open Source software solutions to the commercial world.
- Matanel Foundation, which operates in Israel, as its first concern is to preserve the cohesion of a society and a nation plagued by divisions.
Bronze sponsors:
- Altus Metrum,
- Loongson,
- NIPA,
- IPA,
And finally, our Supporter level sponsors:
A special thanks to the Pukyong National University, our Venue Partner and our Network Partners KOREN and KREONET!
Thanks to all our sponsors for their support! Their contributions make it possible for a large number of Debian contributors from all over the globe to work together, help and learn from each other in DebConf24.
Triaging your own project’s Bugzilla tickets
I’ve been beating the bug triage drum for a number of years, from the perspective of asking for more dedicated bug triagers. And at this point we have some! Which is amazing, and I’d like to thank them. So this time let’s talk about something different: developers triaging their own projects’ new Bugzilla tickets.
When you’re the developer, you know the internals of your software, but Bugzilla tickets are your connection to its users. If you’re not paying attention to them, you’re flying blind. It’s important to know how people use your software and what they’re having trouble with. Bug triage is a part of being a maintainer.
Fortunately, developers are often the fastest bug triagers of all. With your understanding of how the software works, you’ll know instantly which tickets are upstream or downstream issues, duplicates of existing tickets, already fixed in unreleased code or a released version the reporter doesn’t have, and — for valid reports — where the problem might be. For most, you should be able to handle them really quickly.
Even super popular projects like Plasma, Krita, and Dolphin only get a handful of Bugzilla tickets per day, so looking over all of them doesn’t take much time. Even one developer spending 5 minutes a day triaging their project’s new Bugzilla tickets makes a huge difference. Two are even better!
How do I know? With the power of graphs!
Here’s a graph of the number of Bugzilla tickets over time for an unnamed KDE project that’s had developers actively triaging tickets for the past few years. I bet you can guess when they started!
Note that the numbers include feature requests, which are also Bugzilla tickets. They need triaging too!See how the number of CONFIRMED reports rises gradually over time, and the number of UNCONFIRMED reports falls in a choppy fashion — indicating new reports being opened and then closed within a few days. But sometimes the number of UNCONFIRMED reports go up for a few weeks, corresponding to times when the developers who do bug triage were too busy or on vacation — highlighting the impact just one or two people can have.
And now for comparison, here’s the graph for a different unnamed KDE project without developers actively triaging Bugzilla tickets:
Eek. How demoralizing.
So now let’s address some anticipated reactions!
If I did this, I’d spend all my time resolving Bugzilla tickets instead of adding new features!I suspect otherwise, but let’s say you’re right: it would be a sign that the project is actually really buggy and could benefit from you spending more time to fix those bugs! It’s not sustainable to build features on top of a buggy foundation. It’ll catch up with you eventually: the software will become even buggier, the flood of valid yet un-reproducible bug reports will accelerate over time, and you’ll get discouraged by the situation and burn out.
No that’s not what I meant; it’s that all the Bugzilla tickets are really low quality and handling them takes forever!Ah, this is a better problem to have. It means the software’s foundations are mostly good, but users are getting confused while using it. If you put some time into improving the project’s UI, this type of bug report will fall over time. Clarify complex or confusing features, blame-shift failures caused by 3rd-party services and plugins, improve bad error messages, etc. The KDE Human Interface Guidelines can help!
This could also mean that the tools available for collecting debugging information or reporting bugs are too crude, difficult to use, or hard to find. Spend some time improving these, and the quality of the bug reports will increase.
Finally, it could just mean that your project is just super popular and attracts a lot of attention from normal people not familiar with bug reporting. In this case, in addition to the above, enlist the help of KDE’s bug triagers! Ask us in the kde-bugs:kde.org Matrix room to focus on your project. We can filter out a lot of the obvious junk so you can focus on the real issues.
No no, still not right; it’s that I’m responsible for like 20 projects so I can’t pay attention to such a large number of new Bugzilla tickets every day!Maybe… but have you verified whether that assumption is accurate? You might be surprised. For example, here’s a list of the Bugzilla tickets opened over the past 24 hours for all KDE Frameworks plus Dolphin, Gwenview, Okular, Filelight, and Elisa. As of the time of writing, there is exactly one Bugzilla ticket. Even broadening it to the past week shows only 16 as of the time of writing! That’s like two per day. How about all of Plasma? As of the time of writing, 6 new tickets in the last 24 hours. Most individual apps get between zero and 2 new tickets per day. These are not overwhelming numbers of Bugzilla tickets to triage. Doing it every day should take only a few minutes.
Ugh, Bugzilla sucks! It’s so clunky and you can’t edit comments or paste images inline! I hate interacting with it!I definitely won’t deny that Bugzilla is kind of old and clunky-feeling. And not being able to edit comments or paste images inline are indeed pain points. But the grass isn’t greener on the Gitlab side, which would be our alternative. Over the years I’ve compiled a list of showstopper bugs for using Gitlab Issues, including:
- Moving issues clones them with new comments and history; they can get out of sync and it’s impossible to track issues with persistent URLs!
- No sub-components, making organization messy unless you apply a soup of tags to every issue. Even then, tags can’t fully replace actual categorization. Finding anything becomes extremely difficult!
- Only people with developer accounts can add tags, increasing the burden on developers to triage their own issues.
- Very poor/no support for issue organization with large projects that span multiple git repos.
- No way to track number of duplicates, making important issues harder to notice and prioritize.
- Bulk update feature is so limited as to be useless.
- No fancy graphs like the ones I showed earlier.
It’s not a better product, in my opinion. So yeah, maybe Bugzilla sucks, but so does our available alternative — as well as most of the rest of the competition out there, frankly. Bug trackers are just not sexy projects that attract a lot of money and developer attention. The upstream Bugzilla project itself is struggling hit $200 a month in donations.
Bug triage just isn’t fun. I’m a volunteer, and I want this to be a fun hobby, not work. I don’t wanna do it, sorry.I totally get it! But let’s take a step back: if you’re volunteering for KDE, you’ve already got a hobby that looks like work to normal people. Don’t deny it, you know it’s true. You perform professional-quality software development for free that the average bear demands six figures with benefits for.
And if the volunteer activities you engage in consist of anything other than writing cool new features, then it really starts to look like work! Porting to new APIs? Refactoring old code? Fixing bugs that you don’t personally experience for the good of the project? If you do these tasks out of a sense of responsibility, obligation, or personal pride regarding the state of the project, then bug triage is no different: an under-appreciated task that’s important for project’s long-term health.
OK Mr. Fancypants, how do I do it?We have extensive documentation on how to do bug triage. But honestly, you’ve been around the block, you probably already know what to do.
The other topic is how to see daily Bugzilla tickets. If you’ve got good email hygiene, having them emailed right to you is best. Let ’em go to your inbox (don’t filter them into a folder!) and handle them immediately! You can subscribe yourself to the mailing list that new Bugzilla tickets for the project get sent to, or else ask me or a sysadmin to add you personally to the CC list for new tickets (this way is less overwhelming).
The other method is to set aside some time at the beginning of the day for bug triage. Click here and modify the Bugzilla search to include the products and components you care about. Hit “Search”, bookmark the final link, and just visit it once per day.
It’s that easy. And your project and its users will thank you! So go out there and triage your project’s bugs!
Wim Leers: XB week 9: front-end locomotive gathering steam
Experience Builder (XB) allows crafting an experience using components. A tree of components. Except that until now, the XB field type does not yet support storing a tree — we had to start somewhere! Ted “tedbow” Bowman landed #3455728: FieldType: Support storing component trees instead of lists. Next up on this front: before we start actually storing trees, we need thorough validation — Ted’s tackling that next. This will allow us to confidently store trees of components (by putting components in other components’ slots), and then finally put to good use the oldest MR the XB project currently has: Kyle “ctrlADel” Einecker’s MR that adds representative set of Single-Directory Components.
An important XB config management piece landed this week: #3452397: Allow specifying default props values when opting an SDC in for XB, started by Feliksas “f.mazeikis” Mazeikis, finished by me because it blocked next steps and Felix was temporarily reallocated to work on something other than XB — #3460232: Support props defaults that have content dependencies: avoid File content entity dependencies is the next step and is the first thing Felix will work on upon his return.
Thanks to Lee “larowlan” Rowlands finding the time to review #3453152: Centralize & standardize logic for constructing PropSource objects + kernel test coverage, now that landed at last, which doesn’t set everything straight, but is a massive improvement compared to the PoC-y origins of PropSource. In the short term, the most urgent next step is #3461490: Document the current JSON-based data model, and describe in an ADR.
On the front end side, Jesse “jessebaker” Baker contributed a diagram to visualize how he envisions the UI will work:
Initial version of a diagram of the UI’s architecture as envisioned by Jesse Baker. We’ll update this along the way.
And Harumi “hooroomoo” Jang landed the initial implementation of the top bar, a week after the design was available:
The top bar’s mid-fidelity design. Going forward, every issue changing the UI will have to include a screenshot of the updated UI — that will make it easier for anybody to follow along!
To make UI work like Harumi’s go faster, I made CI faster for people working only on the UI: no need to run PHP-related CI jobs then, and after Ben “bnjmnm” Mullins pointed it out, I added an explicit CI job to flag when npm run build fails — because until now only the Cypress CI job would fail, which seemed to suggest that is where the problem was — oops!
In progressThat was all that landed this week, but there’s a lot of things in progress. Here are the most notable ones:
- Superficially boring, but very important for velocity: Lee filed #3452585: CI: Cypress test infrastructure clean-up: split in cypress E2E + cypress unit CI jobs waaaaay back, on June 5! I started pushing that forward to help the people focused on the front end (Jesse, Ben & Harumi) go faster — didn’t land yet, but was getting close. It’s now tantalizingly close.
- @fazilitehreem started working on #3459249: Allow opening the contextual menu by right clicking a component!
- Ben is making good progress on a truly mind-blowing MR — where he’s using a subset of the JSX theme engine 1 to render existing Field Widgets using the existing Twig templates … but using JSX equivalents for a select subset of those templates, to achieve native integration with React for existing Field Widgets, which in turn will enable real-time updates of the preview.
This approach allows mixing of JSX and Twig templates, and functionality such as vanilla Drupal JS behaviors and form alters continue to work for both Twig- and JSX- rendered markup.
If that tickled your brain or blew your mind, there’s more to come! There’s a lot of moving parts, but the intent of XB is to bring the entire existing ecosystem along for the superior ride, and this is an important part of that.
Missed a prior week? See all posts tagged Experience Builder.
Goal: make it possible to follow high-level progress by reading ~5 minutes/week. I hope this empowers more people to contribute when their unique skills can best be put to use!
For more detail, join the #experience-builder Slack channel. Check out the pinned items at the top!
Finally, the design locomotive is now going full steam ahead:
- #3460783: Implement component states
- #3461035: Component drag handle
- #3460955: Component name badge above component preview
- #3460958: Allow users to name components for the specific context
- #3460952: Implement add section and add element buttons
- #3460042: Implement search functionality to the primary menu
In closing, catch asked a few very good fundamental questions — these are the kinds of questions that we all need to try to articulate: not about implementation details, but about potential gaps/oversights in the product requirements.
Thanks to Ben and Lauri for reviewing this!
-
This theme engine was built by Ben, Harumi and Alex “effulgentsia” Bronstein long before XB even was in the picture! ↩︎
June/July in KDE Itinerary
In the past two month since the previous update on KDE Itinerary, there is a new seat information display in the timeline, Träwelling integration, more use of Wikidata/Wikimedia online content as well as more work towards explicit control over trip grouping, among many other things.
New Features Seat information in the timelineOne of the changes you’d probably notice first is the timeline now prominently featuring seat reservation information where applicable, thanks to Mathis Brüchert.
Seat reservation information for a train trip. Träwelling integrationTobias Fella implemented support for checking in on Träwelling, a Free Software and community-run service where you can log your public transit journeys. You can now connect your Träwelling account to Itinerary and directly share your train trips there.
Träwelling check-in action. Wikimedia online contentThere’s now a new switch in the settings of Itinerary to enable the use of Wikimedia online content e.g. via Wikidata references in OSM data. Enabling this gives you photos and logos in the information dialog of the indoor map for example.
Wikimedia Commons images in the map info dialog. Infrastructure Work Explicit trip group managementThe bulk of the work however went into more explicit control of trip grouping:
- Renaming of trips.
- Merging of two adjacent trips.
- Splitting of a trip into two parts.
- Ensuring that automatic grouping and naming doesn’t interfere with manual changes.
Most of this is not active by default in the app yet, but are prerequisites for enabling trip grouping for everything and moving away from the single combined timeline to a list of trips and per-trip timelines in the UI.
OSM raw data tile serverWe identified and resolved a problem in the OSM raw data tile server powering Itinerary’s train station maps where continuous data updates got stuck due to a too small mmap memory size limit in the database (1TB ought to be enough for anybody…). With that fixed OSM data changes are now applied daily again.
This also impacts Marble and now also Kongress.
Matrix trip syncingFollowing the discussion during GPN22 refining the concept for syncing trips via Matrix, the basic infrastructure for this was implemented. This is also not something active in the app by default yet, and it is so far only able to synchronize trip names across devices, but that’s enough to validate the approach.
Fixes & Improvements Travel document extractor- New or improved extractors for 12go, Air Asia, Amadeus Cytric, direct-book.com, Eurowings, Flixbus, Georgian Railway (საქართველოს რკინიგზა), hotels.com, Iberia, Italo, RegioJet, Scandlines, Snälltåget, TCDD Taşımacılık (Turkish Railways), tobilet.pl and Trenitalia.
- Support for Max Actif SNCF cards and ERA FCB discount program cards.
- Fixed “Turkey” being mis-detected as Italy due to a too aggressive substring matching on the Vietnamese translations (MR).
- Improved merging of bus reservations.
- Fixed comparison of address data with different level of details.
- Fixed company capital notes in the fine print of French reservations confusing the automatic price detection.
All of this has been made possible thanks to your travel document donations!
Public transport data- Fixed dark mode recoloring of several icons.
- Support more Hafas vehicle feature codes.
- Updated line icon data from Wikidata and expanded line icon coverage including e.g. the Stuttgart subway now.
- Improved keyboard navigation in amenity search dialog and elevator floor level selector.
- Improved error handling on corrupt cached map tile files (bug 488664).
- Fixed display of payment information for OSM elements.
- Also show toilet gender segregation information in the amenity search dialog.
- Support vending machines in the element info dialog and amenity search dialog.
- Fixed several cases of misplaced or duplicated transfer elements in the timeline.
- Improved and more robust automatic transfer selection.
- Also allow creating event entries from OSM tourism attraction and office elements.
- Only do live data queries if we have a chance to pick a suitable backend. This fixes querying all backends in some cases.
- Fixed reading/writing of all-day events to/from the Android system calendar. This fixes exporting hotel reservations to the calendar.
- Fixed exporting to the Android calendar when not having previously imported from there.
- Improved keyboard navigation in the Matrix room selection dialog.
- Fixed importing generic Applet Wallet passes, and rendering passes without a barcode or without an icon.
- Fixed storing the arrival time when editing a ferry reservation (bug 487885).
- Fixed notifications on Android not being shown.
- Improved timeline sorting when dealing with elements without an end time.
Feedback and travel document samples are very much welcome, as are all other forms of contributions. Feel free to join us in the KDE Itinerary Matrix channel.
This week in KDE: features and UI polish
After last week’s bug-squash-a-thon, this week there was more focus on features and user interface improvements — some of them HIG-driven, as I wrote about yesterday. But we kept the bugs down too! Everything is proceeding nicely, I think.
Notable New FeaturesKonsole has gained a feature to automatically save all output in a terminal view to a file in real-time (Theodore Wang, Konsole 24.12.0. Link):
Distros can now customize the default set of favorite apps shared across Kickoff, Kicker, and Application Dashboard (Harald Sitter, Plasma 6.2.0. Link)
Info Center has a new page showing technical memory information (Thomas Duckworth, Plasma 6.2.0. Link):
Notable UI ImprovementsWhen KWin is asked to open a window whose minimum height is still taller than the screen, it no longer places it with the titlebar cut off on top, which would make it impossible to move without knowing about the Meta+drag feature. Instead, KWin will ensure the titlebar is visible and instead position the window so only content at the bottom is cut off (Xaver Hugl, Plasma 6.1.4. Link)
Refined how KRunner matches text to System Settings pages, so it will be less aggressive about showing them to you for search text with a very weak match (Fabian Vogt, Plasma 6.1.4. Link)
Plasma’s Digital Clock now requests “tabular numerals” just in case the active font has this feature as an optional but off-by-default thing. This ensures that all number characters are fixed-width so that the time display doesn’t jump around throughout the day (Calum Smith, Plasma 6.2.0. Link)
System Settings’ Drawing Tablet page now tells you when your tablet doesn’t support changing its orientation, so you don’t think it’s our fault (Joshua Goins, Plasma 6.2.0. Link)
Did a round of UI polishing for System Settings’ KWin Rules page, which also fixed a bug related to weird scrolling behavior (Ismael Asensio, Plasma 6.2.0. Link)
The animation speed of the Plasma logout screen’s fade-to-black effect now instantly reacts to changes in the global animation speed, and the technical change to make this happen also happened to fix a performance issue with the animation as well (David Edmundson, Plasma 6.2.0. Link 1 and link 2)
Improved the accessibility of the ContextualHelpButton and KeySequenceItem library components, as well as multiple controls on System Settings’ Shortcuts page (Christoph Wolk, Frameworks 6.5 and Plasma 6.2.0. Link 1, link 2, and link 3)
In the the Places panels visible in Dolphin, the open/save dialogs, and many other places, items now show tooltips with relevant information when hovered. This feature is enabled only when built with Qt 6.8, as 6.7 and earlier suffer from a bug that makes it not work properly (Kai Uwe Broulik, Frameworks 6.5. Link)
Notable Bug FixesDiscover no longer crashes on distros built with asserts turned on (such as Neon) when run using a language where the categories have been mis-translated and overlap one another (Harald Sitter, Plasma 6.1.4. Link)
After changing the current systemwide time zone in System Settings and quitting the app, it now quits properly, no longer staying secretly open in the background as a zombie and preventing you from opening it again (Nicolas Fella, Plasma 6.1.4. Link)
Dragging screenshots and other files from Plasma notifications into Chromium-based apps (Chrome, Discord, etc) now works as expected (David Edmundson, Plasma 6.1.4. Link)
Fixed a bug in the free space notifier that would cause it to flag nearly-full partitions that are read-only, such as on immutable OS style distros like Fedora Kinoite (Timothée Ravier, Plasma 6.1.4. Link)
Found and fixed the source of the issue that made KWin’s new triple buffering feature sometimes cause stuttering instead of the expected butter-smooth animations (Xaver Hugl, Plasma 6.1.4. Link)
Fixed a recent regression that caused multi-row Task Manager widgets to take up too much space on Plasma panels using the “Fit to content” size mode (Ismael Asensio, Plasma 6.1.4. Link)
Fixed an issue in KWin that caused native Wayland apps to receive incorrect information about the order in which modifier keys were pressed (David Edmundson, Plasma 6.2.0. Link)
The “Click in track to scroll by one page at a time” feature — which broke in Frameworks 6.0 due to changes in Qt — now works again (Ivan Tkachenko, Frameworks 6.5. Link)
Other bug information of note:
- 2 Very high priority Plasma bugs (same as last week). Current list of bugs
- 31 15-minute Plasma bugs (same as last week). Current list of bugs
- 103 KDE bugs of all kinds fixed over the last two weeks. Full list of bugs
The “Disable when two keys are held down” sticky keys feature now works on Wayland (Nicolas Fella, Plasma 6.2.0. Link)
Discover now natively supports package installation and updating for PostmarketOS (Alexey Min and Davin Lin, Plasma 6.2.0. Link)
Prompted by a review from the SUSE security team, we implemented some security hardening that allows KAuth to use file descriptors rather than file paths, and implemented support for this on System Settings’ Login Screen page (Athul Raj Kollareth, Frameworks 6.5 and Plasma 6.2.0. Link 1 and link 2)
Fixed the source of the findInCache with a lastModified timestamp of 0 is deprecated log spam, especially on immutable OS style distros like Fedora Kinoite (Timothée Ravier, Frameworks 6.5. Link)
Notable in Automation & SystematizationIn Elisa, added a test for restarting the file indexer, fixed a perpetually broken test, and turned on the “tests must pass” feature to ensure that tests don’t break again in the future (Jack Hill, link)
…And Everything ElseThis blog only covers the tip of the iceberg! If you’re hungry for more, check out https://planet.kde.org, where you can find more news from other KDE contributors.
How You Can HelpIf you use have multiple systems or an adventurous personality, you can really help us out by installing beta versions of Plasma using your distro’s available repos and reporting bugs. Arch, Fedora, and openSUSE Tumbleweed are examples of great distros for this purpose. So please please do try out Plasma beta versions. It truly does help us! Heck, if you’re very adventurous, live on the nightly repos. I’ve been doing this full-time for 5 years with my sole computer and it’s surprisingly stable.
Does that sound too scary? Consider donating today instead! That helps too.
Otherwise, visit https://community.kde.org/Get_Involved to discover other ways to be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!
Kushal Das: Multi-factor authentication in django
Multi-factor authentication is a must have feature in any modern web application. Specially providing support for both TOTP (think applications on phone) and FIDO2 (say Yubikeys) usage. I created a small Django demo mfaforgood which shows how to enable both.
I am using django-mfa3 for all the hard work, but specially from a PR branch from my friend Giuseppe De Marco.
I also fetched the cbor-js package in the repository so that hardware tokens for FIDO2 to work. I hope this example will help you add the MFA support to your Django application.
Major points of the code- Adding example templates from MFA project, with admin theme and adding cbor-js to the required templates.
- Adding mfa to INSTALLED_APPS.
- Adding mfa.middleware.MfaSessionMiddleware to MIDDLEWARE.
- Adding MFA_DOMAIN and MFA_SITE_TITLE to settings.py.
- Also adding STATICFILES_DIRS.
- Adding mfa.views.MFAListView as the Index view of the application.
- Also adding mfa URLs.
After login for the first time one can enable MFA in the following screen.
The Savvy Few: Keeping Pace with Innovation: The Advancements of Drupal 10
Explore the standout innovations of Drupal 10, from improved theming to enhanced performance, that affirm Drupal as the ultimate platform for building digital experiences.
Read moreThe Drop Times: Brad Jones on Modernizing Drupal's Data Management with JSON Integration
Real Python: The Real Python Podcast – Episode #214: Build Captivating Display Tables in Python With Great Tables
Do you need help making data tables in Python look interesting and attractive? How can you create beautiful display-ready tables as easily as charts and graphs in Python? This week on the show, we speak with Richard Iannone and Michael Chow from Posit about the Great Tables Python library.
[ Improve Your Python With 🐍 Python Tricks 💌 – Get a short & sweet Python Trick delivered to your inbox every couple of days. >> Click here to learn more and see examples ]
Python Software Foundation: Notice of Python Software Foundation Bylaws change, effective 10 August 2024
Specifically, Bylaws Article XIII as originally written compels the Python Software Foundation to extend indemnity coverage to individual Members (including our thousands of “Basic Members”) in certain cases, and to advance legal defense expenses to individual Members with surprisingly few restrictions.
Further, the Bylaws compel the Foundation to take out insurance to cover these requirements, however, insurance of this nature is not actually available to 501(c)(3) nonprofit corporations such as the Python Software Foundation to purchase, and thus it is impossible in practice to comply with this requirement.
In the unlikely but not impossible event of the Foundation being called upon to advance such expenses, the potential financial burden would be virtually unlimited, and there would be no recourse to insurance.
As this is an existential threat to the Foundation, the Board has agreed that it must immediately reduce the Foundation’s exposure, and has opted to exercise its ability to amend the Bylaws by a majority vote of the Board directors, rather than by putting it to a vote of the membership, as allowed by Bylaws Article XI.
Acting on legal advice, the full Board has voted unanimously to amend its Bylaws to no longer extend an offer to indemnify, advance legal expenses, or insure Members when they are not serving at the request of the Foundation. The amended Bylaws still allow for indemnification of a much smaller set of individuals acting on behalf of the PSF such as Board Members and officers, which is in line with standard nonprofit governance practices and for which we already hold appropriate insurance.
The full text of the changes can be viewed at https://github.com/python/psf-bylaws/compare/a35a607...298843b
These changes shall become effective on Saturday 10 August 2024, 15 days from the date of this notice.
Any questions about these changes may be sent to psf@python.org. We gladly welcome further suggestions or recommendations for future Bylaws amendments.
Thank you,
The PSF Board of Directors
1xINTERNET blog: How to optimise team efficiency by reducing "Work in Progress"
Work in Progress (WIP) is a well-known concept for optimising efficiency in various business processes. It is straightforward to understand and apply. In this article, we will show you how, and give examples how we apply it with a team of around 100 colleagues.
mark.ie: My Drupal Core Contributions for week-ending July 26th, 2024
Here's what I've been working on for my Drupal contributions this week. Thanks to Code Enigma for sponsoring the time to work on these.
Python Software Foundation: Python’s Supportive and Welcoming Environment is Tightly Coupled to Its Progress
We believe to be “welcoming” means to do our best to provide all participants with a safe, civil, and respectful environment when they are engaging with our community - on our forums, at PyCon events, and other spaces that have committed to following our Code of Conduct. That kind of environment doesn’t happen by accident - a lot of people have worked hard over a long time to figure out the best ways to nurture this welcoming quality for the Python community. That work has included drafting and improving the Code of Conduct, crafting and implementing processes for enforcing it, and moderating the various online spaces where it applies. And most importantly the huge, collective effort of individuals across the community, each putting in consistent effort to show up in all the positive ways that make the Python community the warm and welcoming place that we know.
The recent slew of conversations, initially kicked off in response to a bylaws change proposal, has been pretty alienating for many members of our community. They haven’t all posted publicly to explain their feelings, but they have found other ways to let the PSF know how they are feeling.
- After the conversation on PSF-Vote had gotten pretty ugly, forty-five people out of ~1000 unsubscribed. (That list has since been put on announce-only)
- We received a lot of Code of Conduct reports or moderation requests about the PSF-vote mailing list and the discuss.python.org message board conversations. (Several reports have already been acted on or closed and the rest will be soon).
- PSF staff received private feedback that the blanket statements about “neurodiverse people”, the bizarre motives ascribed to the people in charge of the PSF and various volunteers and the sideways comments about the kinds of people making reports were also very off-putting.
Some examples:
- Most Code of Conduct reports – Oftentimes, these reports have the potential to affect both the reporter and the reported person’s reputations and livelihoods so our practice is to keep them confidential when possible to protect everyone involved. Some of you have been here long enough to remember the incident at PyCon US in 2013, an example of the entire internet discussing a Code of Conduct violation that led to negative repercussions for everyone involved, but especially for the person who reported the behavior.
- Legal advice and proceedings – It is an unfortunate fact of the world that the legal system(s) we operate under sometimes require us to keep secret information we might otherwise prefer to disclose, often because doing so could open us up to liability in a way that would create significant risk to the PSF or it could potentially put us in violation of laws or regulation. It’s our responsibility to follow legal guidance about how to protect the Foundation, our resources, and our mission in these situations.
- Mental health, personal history, or disability status – Community members should not, for example, have to disclose their status as neurodivergent or share their history with abuse so that others can decide if they are allowed to be offended. Community members should also not be speculating about other individuals’ characteristics or experience in this regard.
Part of the care-taking of a diverse community “where everyone feels welcome” sadly often means asking some people to leave – or at least take a break. This is known as the paradox of tolerance. We can not tolerate intolerance and we will not allow combative and aggressive behavior to ruin the experience in our spaces for everyone else. People do make honest mistakes and don’t always understand the impact that their words have had. All we ask is that as community members we all do our best to adhere to the Code of Conduct we’ve committed to as a community, and that we gracefully accept feedback when our efforts fall short. Sometimes that means learning that the words, assumptions or tone you’re using aren’t coming across the way you’ve intended. When a person’s words and actions repeatedly come in conflict with our community norms and cause harm, and that pattern hasn’t changed in response to feedback – then we have to ask people to take a break or as a last resort to leave the conversation.
Our forum, mailing lists and events will continue to be moderated. We want to thank everyone who contributed positively to the recent conversations and everyone who made the hard choice to write to us to point out off-putting, harmful, unwelcoming or offensive comments. We especially want to thank all the volunteers who serve on the Python Discourse moderation team and our Code of Conduct Working Group. We know it’s been a long couple of weeks, and although your work may occasionally be draining and unpleasant, it is also absolutely essential and endlessly appreciated by the vast majority of the community. Thank you for everything you do!
Sincerely,
Deb Nicholson
Dawn Wages
Tania Allard
KwonHan Bae
Kushal Das
Georgi Ker
Jannis Leidel
Cristián Maureira-Fredes
Christopher Neugebauer
Denny Perez
Cheuk Ting Ho
Simon Willison
Web Review, Week 2024-30
Let’s go for my web review for the week 2024-30.
On Open Source and the Sustainability of the CommonsTags: tech, foss, licensing, sustainability, commons, politics
It’s a piece which really resonates with me. I’ve been thinking and saying for a while that focusing mostly on the technical (licensing and dev) aspects of Open Source was a mistake. This completely overlooked the political side of the Free Software equation. This is why the industry is as it is now. We need stronger commons and indeed the AGPL is best for that.
https://ploum.net/2024-07-01-opensource_sustainability.html
Tags: tech, programming
A few surprises in there but otherwise it feels a bit like a repeat from last year. I keep being dismayed at how low the ethical concern of the energy impact of generative AI scores in this survey.
https://survey.stackoverflow.co/2024/
Tags: tech, windows, safety
The cleanup of that mess is still on-going. A bit more automation would help.
Tags: tech, ai, machine-learning, gpt, criticism
Content creators are clearly annoyed at the lack of consent. The more technical ones are trying to take the matter in their own hands.
https://www.404media.co/the-backlash-against-ai-scraping-is-real-and-measurable/
Tags: tech, ai, machine-learning, gpt, graphics, astronomy, physics
Still not perfect, but that’s an interesting development.
Tags: tech, data, ai, machine-learning, gpt, research
More discussion about models collapse. The provenance of data will become a crucial factor to our ability to train further models.
https://www.nature.com/articles/s41586-024-07566-y
Tags: tech, security, hiring, remote-working
Interesting story. This is getting harder to hire for remote positions I guess.
https://blog.knowbe4.com/how-a-north-korean-fake-it-worker-tried-to-infiltrate-us
Tags: tech, bios, security, hardware
A reminder that Secure Boot is worth nothing if the device makers don’t manage cryptographic keys properly…
Tags: tech, transportation, security
Make sure to read also part 2. You’d expect critical infrastructure like this to not be exposed over the Internet, and to be properly protected…
https://www.redthreatsec.com/blog/greenlightspart1
Tags: tech, crdt, rust, javascript
Need to make a realtime collaboration application? This might come in handy.
Tags: tech, networking, storage, benchmarking
Interesting comparisons, some of it was a bit unexpected to me. I didn’t expect SSHFS to be that OK.
https://blog.ja-ke.tech/2019/08/27/nas-performance-sshfs-nfs-smb.html
Tags: tech, time, tests, tools
This can definitely come in handy. I can see myself using it for testing behaviors in the past or the future on a real application. This should also help writing automated tests in some cases.
https://github.com/wolfcw/libfaketime
Tags: tech, c++
This is indeed a shame. It’d be nice to not add all the concepts you plan on supporting in the class declaration…
https://lemire.me/blog/2024/07/22/does-c-allow-template-specialization-by-concepts/
Tags: tech, c++, type-systems
There’s a good reason to have it in the standard. As mentioned in this post it can help with std::variant.
https://devblogs.microsoft.com/oldnewthing/20240708-00/?p=109959
Tags: tech, psychology, developer-experience
Interesting preprint review. Not sure I got it all in depth, will definitely need to revisit it at some point.
https://osf.io/preprints/psyarxiv/qz43x
Bye for now!
Promet Source: Provus®Gov vs CivicPlus for Local Government
Talk Python to Me: #472: State of Flask and Pallets in 2024
KDE Human Interface Guidelines update
It’s been about a month and a half since I wrote about KDE’s new Human Interface Guidelines (HIG). It turns out there’s a surprising amount to report since then!
First of all, the news got picked up by Linux Magazine which did a story about it, including an interview with me! That felt nice.
Next, there have been a number of contributions and enhancements:
Joshua Goins- Fixed a lot of typos, awkward wordings, and small errors.
- Added information about using Qt to set Task Manager badges directly.
- Expanded the instructions on contributing to the HIG.
- Corrected several typos and spelling errors.
- Improved the grammatical correctness of one of the text recommendations.
- Polished up the text some more.
- Added additional suggested inclusiveness-related text replacements.
- Clarified when a hamburger menu is and isn’t appropriate.
- Updated the icon size recommendations.
- Added examples and suggested replacements for common acronyms.
- Wrote a recommendation for how to implement “go home” navigation.
- Mentioned when first-run wizards are and aren’t appropriate, migrating some content from our old “Frequently discussed topics” wiki page.
- Refined the recommendation for button length and combox text capitalization.
- Described when it’s appropriate to shorten button labels because nearby context indicates what they affect.
- Expanded the Icons page to offer more concrete guidelines about how to choose an icon and what style to use, and also added more pictures.
Overall I think it’s looking pretty good now, especially the Icons page which received a lot of attention recently.
In addition, there are more pending merge requests by Christoph Wolk, Emir Sari, and me. So it feels like an actual team project now! I think the goal of encouraging more contribution can be called a success.
Finally, Christoph Wolk and I have been going through System Settings pages and tweaking them to comply with the HIG. System Settings is good low-hanging fruit since it’s almost all QML at this point, so changes are easy. And there are a lot of pages, so it’s not hard to find small inconsistencies.
But were not finished yet! More eyeballs are needed. A few TODOs need resolving. More images could be helpful. So check out these two links to learn how to contribute changes:
- https://develop.kde.org/hig/#contributing
- https://invent.kde.org/documentation/develop-kde-org/-/blob/master/README.md
Even a beginner developer can help out by tweaking the user interface to conform to the HIG. And if you’re a hardcore developer, we still need some more components for writing powerful QML apps.
Still too scary? Then donate to KDE. Our budget is tiny, so your money genuinely does have an impact!