FLOSS Project Planets

Python⇒Speed: Is it worth the money? When to buy products for your job

Planet Python - Sun, 2021-11-28 19:00

You’ve discovered a product that might help you with your job: perhaps a book that will teach you a new and relevant skill, or software that will speed up development. Since you do want to write software better and faster, you are considering buying this product. But, then again, the product costs money, and maybe that money is better spent on something else.

So should you buy the product or not?

How do you decide?

If it is worth buying, how can you convince your boss to approve the purchase?

While it’s impossible to know with certainty, a few simple heuristics can make the decision much easier. Which heuristic to use depends on your situation, of course. So this article will cover:

  • Buying products with your employer’s money: the “hours-saved” heuristic.
  • Buying products on your own, and why you should usually restrict this to educational products.
  • Some concrete examples to make this all clearer.
  • Saving money, including when you live in a low-income country.
Categories: FLOSS Project Planets

Gizra.com: Five years as a core subsystem maintainer, a retrospective.

Planet Drupal - Sun, 2021-11-28 19:00

Drupal is written by volunteers and by employees of companies who sponsor them. Writing code is usually the main way to contribute to open source, but reviewing others code is important as well.

I’m one of the ones who reviews others’ code, after five years of doing this I would like to reflect on the exercise of being a maintainer.

Categories: FLOSS Project Planets

Wouter Verhelst: GR procedures and timelines

Planet Debian - Sun, 2021-11-28 14:04

A vote has been proposed in Debian to change the formal procedure in Debian by which General Resolutions (our name for "votes") are proposed. The original proposal is based on a text by Russ Allberry, which changes a number of rules to be less ambiguous and, frankly, less weird.

One thing Russ' proposal does, however, which I am absolutely not in agreement with, is to add a absolutly hard time limit after three weeks. That is, in the proposed procedure, the discussion time will be two weeks initially (unless the Debian Project Leader chooses to reduce it, which they can do by up to one week), and it will be extended if more options are added to the ballot; but after three weeks, no matter where the discussion stands, the discussion period ends and Russ' proposed procedure forces us to go to a vote, unless all proposers of ballot options agree to withdraw their option.

I believe this is a big mistake. I think any procedure we come up with should allow for the possibility that we may end up with a situation where everyone agrees that extending the discussion time a short time is a good idea, without necessarily resetting the whole discussion time to another two weeks (modulo a decision by the DPL).

At the same time, any procedure we come up with should try to avoid the possibility of process abuse by people who would rather delay a vote ad infinitum than to see it voted upon. A hard time limit certainly does that; but I believe it causes more problems than it solves.

I think insted that it is necessary for any procedure to allow for the discussion time to be extended as long as a strong enough consensus exists that this would be beneficial.

As such, I have proposed an amendment to Russ' proposal (a full version of my proposed constitution can be seen on salsa) that hopefully solves these issues in a novel way: it allows anyone to request an extension to the discussion time, which then needs to be sponsored according to the same rules as a new ballot option. If the time extension is successfully created, those who supported the extension can then also no longer propose any new ones. Additionally, after 4 weeks, the proposed procedure allows anyone to object, so that 4 weeks is probably the practical limit -- although the possibility exists if enough support exists to extend the discussion time (or not enough to end it). The full rules involve slightly more than that (I don't like to put too much formal language in a blog post), but they're not too complicated, I think.

That proposal has received a number of seconds, but after a week it hasn't yet reached the constitutional requirement for the option to be on the ballot.

So, I guess this is a public request for more support to my proposal. If you're a Debian Developer and you agree with me that my proposed procedure is better than the alternative, please step forward and let yourself be heard.


Categories: FLOSS Project Planets

Joachim Breitner: Zero-downtime upgrades of Internet Computer canisters

Planet Debian - Sun, 2021-11-28 12:11

TL;DR: Zero-downtime upgrades are possible if you stick to the basic actor model.


DFINITY’s Internet Computer provides a kind of serverless compute platform, where the services are WebAssemmbly programs called “canisters”. These services run without stopping (or at least that’s what it feels like from the service’s perspective; this is called “orthogonal persistence”), and process one message after another. Messages not only come from the outside (“ingress” calls), but are also exchanged between canisters.

On top of these uni-directional messages, the system provides the concept of “inter-canister calls”, which associates a respondse message with the outgoing message, and guarantees that a response will come. This RPC-like interface allows canister developers to program in the popular async/await model, where these inter-canister calls look almost like normal function calls, and the subsequent code is suspended until the response comes back.

The problem

This is all very well, until you try to upgrade your canister, i.e. install new code to fix a bug or add a feature. Because if you used the await pattern, there may still be suspended computations waiting for the response. If you swap out the program now, the code of that suspended computation will no longer be present, and the response cannot be handled! Worse, because of an infelicity with the current system’s API, when the response comes back, it may actually corrupt your service’s state.

That is why upgrading a canister requires stopping it first, which means waiting for all outstanding calls to come back. During this time, your canister is not available for new calls (so there is downtime), and worse, the length of the downtime is at the whims of the canisters you called – they could withhold the response ad infinitum, rendering your canister unupgradeable.

Clearly, this is not acceptable for any serious application. In this post, I’ll explore some of the ways to mitigate this problem, and how to create canisters that are safely instantanously (no downtime) upgradeable.

It’s a spectrum

Some canisters are trivially upgradeable, for others all hope is lost; it depends on what the canister does and how. As an overview, here is the spectrum:

  1. A canister that never performs inter-canister calls can always be upgraded without stopping.
  2. A canister that only does one-way calls, and does them in a particular way (see below), can always be upgraded without stopping.
  3. A canister that performs calls, and where it is acceptable to simply drop outstanding repsonses, can always be upgraded without stopping, once the System API has been improved and your Canister Development Kit (CDK; Motoko or Rust) has adapted.
  4. A canister that performs calls, but uses explicit continuations to handle, responses instead of the await-convenience, based on an eventually fixed System API, can be upgradeded without stopping, and will even handle responses afterwards.
  5. A canister that uses await to do inter-canister call cannot be upgraded without stopping.

In this post I will explain 2, which is possible now, in more detail. Variant 3 and 4 only become reality if and when the System API has improved.

One-way calls

A one-way call is a call where you don’t care about the response; neither the replied data, nor possible failure conditions.

Since you don’t care about the response, you can pass an invalid continuation to the system (technical detail: a Wasm table index of -1). Because it is invalid for any (realistic) Wasm module, it will stay invalid even after an upgrade, and the problem of silent corruption mentioned above is avoided. And otherwise it’s fine for this to be invalid: it means the canister “traps” once the response comes back, which is harmeless (and possibly even cheaper than a do-nothing computation).

This requires your CDK to support this kind of call. Mostly incidential, Motoko (and Candid) actually have the concept of one-way call in their type system, namely shared functions with return type () instead of async ... (Motoko is actually older than the system, and not every prediction about what the system will provide has proven successful). So, pending this PR to be released, Motoko will implement one-way calls in this way. On Rust, you have to use the System API directly or wait for cdk-rs to provide this ability (patches welcome, happy to advise).

You might wonder: How are calls useful if I don’t get to look at the response? Of course, this is a set-back – calls with responses are useful, and await is convenient. And if you have to integrate with an existing service that only provides normal calls, you are out of luck.

But if you get to design the canister and all called canisters together, it may be possible to use only one-way messages. You’d be programming in the plain actor model now, with all its advantages (simple concurrency, easy to upgrade, general robustness).

Consider for example a token ledger canister, not unlike the ICP ledger canister. For the most part, it doesn’t have to do any outgoing calls (and thus be trivially upgradeble). But say we need to add notify functionality, where the ledger canister tells other canisters about a transaction. This is a good example for a one-way call: Maybe the ledger canister doesn’t care if that notification was received? The ICP leder does care (once it comes back successful, this particular notification cannot be sent again), but maybe your ledger can do it differently: let the other canister confirm the receip via another one-way call, instead of via the reply; or simply charge for each notification and do not worry about repeated notifications.

Maybe you want to add archiving functionality, where the ledger canister streams its data to an archive canister. There, again, instead of using successful responses to confirm receipt, the archive canister can ping the ledger canister with the latest received index directly.

Yes, it changes the programming model a bit, and all involved parties have to play together, but the gain (zero-downtime upgrades) is quite valuable, and removes a fair number of other sources of issues.

And in the future?

The above is possible with today’s Internet Computer. If the System API gets improves the way I hope it will be, you have a possible middle ground: You still don’t get to use await and instead have to write your response handler as separate functions, but this way you can call any canister again, and you get the system’s assistance in mapping responses to calls. With this in place, any canister can be rewritten to a form that supports zero-downtime upgrades, without affecting its interface or what the canister can do.

Categories: FLOSS Project Planets

Kalendar v0.3.0 out soon, with improved stability, efficiency, accessibility… and a Windows version?? – Kalendar devlog 23

Planet KDE - Sun, 2021-11-28 11:05
Over the past two weeks, we have been hard at work under the hood of Kalendar. What you can expect from these two weeks’ refactors, additions, and changes is a version of Kalendar that is more stable, faster to use, and easier to use than ever before. Note: Kalendar is still under heavy development. You’re …
Categories: FLOSS Project Planets

KDE Dev Reacts to The Linux Experiment's Review of KDE Plasma

Planet KDE - Sun, 2021-11-28 06:55
Regarding the lag: as I say in the video, I switched to OBS but that means my computer is not able to live encode everything, thus the technical issues. Sorry about that, and I've bought a new laptop to address it! 💸💸 Help me contribute to KDE and do these videos: 💸💸 Patreon: https://www.patreon.com/niccolove Youtube: https://www.youtube.com/channel/UCONH73CdRXUjlh3-DdLGCPw/join Paypal: https://paypal.me/niccolove Stay in the loop: https://t.me/veggeroblog My website is https://niccolo.venerandi.com and if you want to contact me, my telegram handle is [at] veggero.
Categories: FLOSS Project Planets

Jeri Ellsworth and the Quest for Augmented Reality

Planet KDE - Sun, 2021-11-28 06:13
Jeri Ellsworth, self-taught electronics engineer, race driver, and maker and inventor supreme, visits us on KDE's 25th Anniversary, and gives us a glimpse into her latest project: Tilt 5, an augmented reality system for collaborative tabletop gaming. Jeri tells us about the long, windy road she had to follow to get there.
Categories: FLOSS Project Planets

Russ Allbery: Review: Soul Music

Planet Debian - Sun, 2021-11-28 00:35

Review: Soul Music, by Terry Pratchett

Series: Discworld #16 Publisher: Harper Copyright: January 1995 Printing: November 2013 ISBN: 0-06-223741-1 Format: Mass market Pages: 420

Soul Music is the sixteenth Discworld novel and something of a plot sequel to Reaper Man (although more of a sequel to the earlier Mort). I would not start reading the Discworld books here.

Susan is a student in the Quirm College for Young Ladies with an uncanny habit of turning invisible. Well, not invisible exactly; rather, people tend to forget that she's there, even when they're in the middle of talking to her. It's disconcerting for the teachers, but convenient when one is uninterested in Literature and would rather read a book.

She listened with half an ear to what the rest of the class was doing.

It was a poem about daffodils.

Apparently the poet had liked them very much.

Susan was quite stoic about this. It was a free country. People could like daffodils if they wanted to. They just should not, in Susan's very definite opinion, be allowed to take up more than a page to say so.

She got on with her education. In her opinion, school kept on trying to interfere with it.

Around her, the poet's vision was being taken apart with inexpert tools.

Susan's determinedly practical education is interrupted by the Death of Rats, with the help of a talking raven and Binky the horse, and without a lot of help from Susan, who is decidedly uninterested in being the sort of girl who goes on adventures. Adventures have a different opinion, since Susan's grandfather is Death. And Death has wandered off again.

Meanwhile, the bard Imp y Celyn, after an enormous row with his father, has gone to Ankh-Morpork. This is not going well; among other things, the Guild of Musicians and their monopoly and membership dues came as a surprise. But he does meet a dwarf and a troll in the waiting room of the Guild, and then buys an unusual music instrument in the sort of mysterious shop that everyone knows has been in that location forever, but which no one has seen before.

I'm not sure there is such a thing as a bad Discworld novel, but there is such a thing as an average Discworld novel. At least for me, Soul Music is one of those. There are some humorous bits, a few good jokes, one great character, and some nice bits of philosophy, but I found the plot forgettable and occasionally annoying. Susan is great. Imp is... not, which is made worse by the fact the reader is eventually expected to believe Susan cares enough about Imp to drive the plot.

Discworld has always been a mix of parody and Pratchett's own original creation, and I have always liked the original creation substantially more than the parody. Soul Music is a parody of rock music, complete with Cut-Me-Own-Throat Dibbler as an unethical music promoter. The troll Imp meets makes music by beating rocks together, so they decide to call their genre "music with rocks in it." The magical instrument Imp buys has twelve strings and a solid body. Imp y Celyn means "bud of the holly." You know, like Buddy Holly. Get it?

Pratchett's reference density is often on the edge of overwhelming the book, but for some reason the parody references in this one felt unusually forced and obvious to me. I did laugh occasionally, but by the end of the story the rock music plot had worn out its welcome. This is not helped by the ending being a mostly incoherent muddle of another parody (admittedly featuring an excellent motorcycle scene). Unlike Moving Pictures, which is a similar parody of Hollywood, Pratchett didn't seem to have much insightful to say about music. Maybe this will be more your thing if you like constant Blues Brothers references.

Susan, on the other hand, is wonderful, and for me is the reason to read this book. She is a delightfully atypical protagonist, and her interactions with the teachers and other students at the girl's school are thoroughly enjoyable. I would have happily read a whole book about her, and more broadly about Death and his family and new-found curiosity about the world. The Death of Rats was also fun, although more so in combination with the raven to translate. I wish this part of her story had a more coherent ending, but I'm looking forward to seeing her in future books.

Despite my complaints, the parody part of this book wasn't bad. It just wasn't as good as the rest of the book. I wanted a better platform for Susan's introduction than a lot of music and band references. If you really like Pratchett's parodies, your mileage may vary. For me, this book was fun but forgettable.

Followed, in publication order, by Interesting Times. The next Death book is Hogfather.

Rating: 7 out of 10

Categories: FLOSS Project Planets

Gizra.com: Timezone Handling on Your Drupal Site for Everyone

Planet Drupal - Sat, 2021-11-27 19:00
Drupal happily hides the chaos when it comes to timezones. We have UNIX timestamps, which are timezone-agnostic, and other forms of dates that are always in UTC, which it converts for you on-the-fly before displaying them to the users. This way, you do not need to worry about the pain of converting dates between timezones, a magic database in the background resolves it. Obviously it won’t work for anonymous visitors as the timezone information is missing, also the pages are often cached for them.
Categories: FLOSS Project Planets

Podcast.__init__: Making Orbital Mechanics More Accessible With Poliastro

Planet Python - Sat, 2021-11-27 15:36
Outer space holds a deep fascination for people of all ages, and the key principle in its exploration both near and far is orbital mechanics. Poliastro is a pure Python package for exploring and simulating orbit calculations. In this episode Juan Luis Cano Rodriguez shares the story behind the project, how you can use it to learn more about space travel, and some of the interesting projects that have used it for planning planetary and interplanetary missions.Summary

Outer space holds a deep fascination for people of all ages, and the key principle in its exploration both near and far is orbital mechanics. Poliastro is a pure Python package for exploring and simulating orbit calculations. In this episode Juan Luis Cano Rodriguez shares the story behind the project, how you can use it to learn more about space travel, and some of the interesting projects that have used it for planning planetary and interplanetary missions.

  • Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science.
  • When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With the launch of their managed Kubernetes platform it’s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. Go to pythonpodcast.com/linode and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show!
  • Your host as usual is Tobias Macey and today I’m interviewing Juan Luis Cano Rodriguez about Poliastro, an open source library for interactive Astrodynamics and Orbital Mechanics, with a focus on ease of use, speed, and quick visualization.
  • Introductions
  • How did you get introduced to Python?
  • Can you describe what Poliastro is and the story behind it?
  • What are some of the simulations that Poliastro is designed to be used for?
  • How much knowledge of orbital mechanics is necessary to get started with Poliastro?
  • Can you describe how the project is implemented?
    • How have the goals and design of the project changed or evolved since you first started it?
  • What are some of the design philosophies that you focus on to make the package accessible to the range of users that you support?
  • Can you talk through the workflow of using Poliastro to do something like track the path of the ISS and its traversal of the debris field from the recent satellite destruction?
  • What are some of the other libraries or frameworks that are commonly used with Poliastro?
  • How are you using Poliastro in your own work?
  • What are some overlooked or underused aspects of the project that you would like to highlight?
  • What are the most interesting, innovative, or unexpected ways that you have seen Poliastro used?
  • What are the most interesting, unexpected, or challenging lessons that you have learned while working on Poliastro?
  • When is Poliastro the wrong choice?
  • What do you have planned for the future of Poliastro?
Keep In Touch Picks Closing Announcements
  • Thank you for listening! Don’t forget to check out our other show, the Data Engineering Podcast for the latest on modern data management.
  • Visit the site to subscribe to the show, sign up for the mailing list, and read the show notes.
  • If you’ve learned something or tried out a project from the show then tell us about it! Email hosts@podcastinit.com) with your story.
  • To help other people find the show please leave a review on iTunes and tell your friends and co-workers

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Categories: FLOSS Project Planets

October/November in KDE Itinerary

Planet KDE - Sat, 2021-11-27 06:00

Since the last summary KDE Itinerary has been moving with big steps towards the upcoming 21.12 release, with work on individual transport modes, more convenient ticket access, trip editing, a new health certificate UI, better transfer handling and many more improvements.

New Features Current ticket access

A small but very convenient new addition is the “Current ticket” action, which immediately navigates you to the details page of the most current element on the itinerary. That comes in handy when having to show or scan your ticket and avoids having to find the right entry in the list in a rush.

This action is now also accessible from jump list actions in the taskbar on Linux, or app shortcuts on Android. Combined with the easily accessible barcode scanmode mentioned last time it’s now just two clicks or taps to get ready for a ticket check.

Plasma task manager showing KDE Itinerary jump list actions. Trip shortening

KDE Itinerary so far provides only very limited editing capabilities for existing reservations, but one common case has now been added: shortening of train trips. That is, boarding later or leaving earlier along a booked journey, useful for example when having to react to service disruptions. Unlike general free-form editing, we can easily ensure in this case that the result remains a valid actually existing train connection, and thus all features requiring that remain functional.

Selecting an earlier exit from a train.

Realtime trip data is taken into account when available, and selecting canceled/skipped stations for boarding/leaving is prevented.

Health certificates

The health certificate UI has been restructured to use a tab bar instead of one long scrollable page. This is not just easier to navigate but separates the QR code from human readable details that a person scanning the code doesn’t necessarily need to see.

KDE Itinerary's new health certificate UI.

There is also support for a new certificate format, the Dutch COVID-19 CoronaCheck system. This one differs quite a bit from the formats supported so far as it’s much more optimized for privacy. The only information contained in the certificates are the user’s initials and day and month of birth, but no details about what actually has been certified (vaccine, recovery or test, etc).

Next to a paper-based variant which has a fairly long validity (and thus allows some guesses on how the certificate was obtained), the digital form provided by the official app generates very short-lived certificates to prevent tracking users across multiple scans. We can so far only provide an equivalent to the paper form, ie. the official app has still superior privacy features.

Infrastructure Work Individual transport modes

As mentioned in a previous post there has been ongoing work in KPublicTransport for supporting journey queries that combine public transport and individual transport modes.

That is interesting for a number of use-cases, such as driving to a station using your own bike or car and then parking it there (and thus requiring an appropriate parking space), taking your bike with you on the train (and thus requiring a train connection where that’s possible), or using rental vehicles like scooters for getting from a station to the final destination.

The data model of KPublicTransport supports this now, as do all its backends. The first bits of this also already show up in KDE Itinerary, for selecting transfers different individual transport modes can be chosen in the context menu.

Transfer selection context menu offering individual transport modes.

There’s a lot more to be done to nicely integrate this though, such as remembering the locations of the user’s vehicles and selecting appropriate modes automatically.

KDE Frameworks locale data

The previously discussed support for looking up and localizing country, country subdivision and timezone information in KDE Frameworks has finally landed with KF 5.88. This replaces older and less accurate or up-to-date code we used so far.

More interestingly this also enables a few new possibilities like informing about different currencies or local public holidays at travel destinations.

Fixes & Improvements Travel document extractor
  • Added new extractor scripts for the Pretix and gomus event ticketing systems.
  • Improved extractor scripts for Eurowings, Lufthansa, MÁV,
  • Fixed erroneous merging of train trips with the same line on the same day.
  • Incomplete location types in schema.org annotations are now extracted correctly.
  • The expirationDate field of Apple Wallet passes is now considered by the general pass extractor.
  • Event merging now also works for slightly differing reservations, e.g. due to different tickets for adults and children.
  • Sorting of flight reservations now also considers airport timezones when still missing exact arrival times.
  • KItinerary Workbench can now also show intermediate extractor results for each document node.
Public transport data
  • Attribution information for line or product logos are now provided, which enables using such logos under CC-BY licenses from Wikidata as well. This about doubles the amount of logos available.
  • Added a new UIC coach classification parser which is now used by all coach layout backends, improving detection of coach features especially for international trains.
  • The ÖBB coach layout backend has been ported to their new backend API.
  • Provider metadata can now also contain VDV organization identifiers, similar to what we already have for UIC company codes. This helps with selecting the best provider based on a given ticket.
  • Improve provider selection by preferring those containing both ends of a journey.
  • New OpenTripPlanner coverage area probing which produces more accurate coverage polygons when faced with outliers or otherwise inconsistent/corrupt data.
  • Improved product name parsing for Hafas, which in turn significantly improves merging with results from other sources.
  • Improved platform parsing for IVV ASS, providing platform information for trams as well in a number of places.
Indoor maps
  • Pinch zoom now finally works properly on phone touch screens.
  • Platform data aggregation and identification from OSM data now also considers IFOPT identifiers when present. This not only improves the platform list shown in the station maps, but also allows identification of tram or subway stop locations that don’t have a name, given the public transport data also contains an IFOPT identifier.
  • Improved Russian language support for parsing non-standard OSM opening hours expressions.
Itinerary app
  • PDF417 ticket barcodes can now be displayed, needed e.g. for the Hungarian railway (MÁV).
  • The context drawer is accessible again in the favorite location editor.
  • Transfer elements have the same progress and disruption highlights as regular reservation elements.
  • Automatic transfer selection picks more suitable options before a following departure.
  • Transfers are now considering realtime arrival/departure data of the reservations they are attached to.
  • Transfers to/from a favorite location now automatically select a nearby one.
  • Transfers can manually be added in more cases, such as around events or restaurant visits.
  • Transfers involving bikes or rental vehicles are now shown correctly.
  • Train or bus reservations now show their line or product icon in the timeline when available.
  • Bus reservations are now also monitored for delays.
  • Journey details can also be viewed for bus reservations when available.
  • When editing addresses of events, hotels or restaurants an automatic geo coordinate lookup can be triggered.
  • The location picker no longer closes itself when panning the map in the wrong way.
  • Icons in the timline elements are no longer randomly shown in smaller sizes.
  • Tooltips and accessibility hints were added in more places.
  • If you are not into flags, the statistics page can now also list the names of all visited countries.
  • The app now scales better to smaller screens.
KMail integration
  • Apple Wallet passes for events are no longer wrongly claimed to be boarding passes when attached to a calendar event.
  • Apple Wallet passes that don’t specify all required colors are no longer rendered unreadable in black on black.
Desktop integration
  • There’s a new KIO thumbnailer plug-in for Apple Wallet passes.

Feedback and travel document samples are very much welcome, but with travel remaining difficult there are plenty of other things that can be done as well of course. The KDE Itinerary workboard or the more specialized indoor map workboard show what’s on the todo list, and are a good place for collecting new ideas. For questions and suggestions, please feel free to join us on the KDE PIM mailing list or in the #kontact channel on Matrix.

Categories: FLOSS Project Planets

KDE Devs Reacts to The Linux Experiment's Review of KDE Plasma

Planet KDE - Sat, 2021-11-27 05:59
Regarding the lag: as I say in the video, I switched to OBS but that means my computer is not able to live encode everything, thus the technical issues. Sorry about that, and I've bought a new laptop to address it! 💸💸 Help me contribute to KDE and do these videos: 💸💸 Patreon: https://www.patreon.com/niccolove Youtube: https://www.youtube.com/channel/UCONH73CdRXUjlh3-DdLGCPw/join Paypal: https://paypal.me/niccolove Stay in the loop: https://t.me/veggeroblog My website is https://niccolo.venerandi.com and if you want to contact me, my telegram handle is [at] veggero.
Categories: FLOSS Project Planets

robertroose.com: Drupal is the perfect no code tool

Planet Drupal - Sat, 2021-11-27 03:00

When you don’t know how to write code Drupal is the perfect tool to build complex websites or (web) apps because of the flexibility, available modules and thriving community

Categories: FLOSS Project Planets

This week in KDE: Fixing a bunch of annoying bugs

Planet KDE - Sat, 2021-11-27 01:00

This was a major bug squashing week, with quite a lot of annoying issues fixed–some recent regressions, and many longstanding issues as well.

On the subject of bugs and recent regressions, I’m starting to think from a higher level about how we can prevent them. KDE has largely conquered our historical issues of excessive resource consumption and visual ugliness, and our next major challenge on the path towards world domination is reliability. One idea I’m toying with is starting an initiative to focus on the “15 minute bugs”–those embarrassing issues that can easily be found within just a few minutes of using the system normally. Here is a preliminary list of these issues in Plasma. I would encourage any experienced developers to try to focus on them! The impact will be very high.

Bugfixes & Performance Improvements

Creating archives using Ark’s main UI once again works (Kai Uwe Broulik, Ark 21.12)

Elisa no longer shows an error message instead of the number of tracks in the playlist footer when the playlist only has one track in it (Bharadwaj Raju, Elisa 21.12)

Okular’s zoom buttons now always enable and disable themselves at the correct times, in particular when a new document is opened (Albert Astals Cid, Okular 21.12)

Ark can now handle archives whose files internally use absolute paths, rather than relative paths (Kai Uwe Broulik, Ark 22.04)

Touch scrolling in Konsole now works properly (Henry Heino, Konsole 22.04)

Fixed a common crash in the System Tray (Fushan Wen, Plasma 5.23.4)

Fixed a common crash in Discover when using it to manage Flatpak apps (Aleix Pol Gonzalez, Plasma 5.23.4)

The logout screen once again has a blurred background and animates when appearing and disappearing (David Edmundson, Plasma 5.23.4)

In the Plasma Wayland session, dragging a file or folder from a Folder View popup into its parent folder no longer causes Plasma to crash (Marco Martin, Plasma 5.24)

In the Plasma Wayland session, when using a stylus, it’s now possible to activate other window from their titlebars and also just interact with titlebars more generally (Fushan Wen, Plasma 5.24)

Changing various settings in System Settings no longer causes a flickering effect behind Plasma panels (Vlad Zahorodnii, Plasma 5.24)

Repositioning a panel from horizontal to vertical or vice versa no longer causes the layout of the control strip to get kinda messed up (Fushan Wen, Plasma 5.24)

Activating the new Overview effect no longer causes auto-hidden panels to be shown (Vlad Zahorodnii, Plasma 5.24)

In the Plasma Wayland session, the Clipboard applet now shows entries for images added to the clipboard using the wl-copy command-line program (Méven Car, Plasma 5.24)

User Interface Improvements

Hovered and focused Breeze style scrollbars no longer blend in with their track so much (S. Christian Collins, Plasma 5.23.4)

Kate has been replaced with KWrite in the default set of favorite apps, since it’s a bit more user-friendly and less programmer-centric (me: Nate Graham, Plasma 5.24)

Discover’s somewhat confusing checkbox on the bottom of the Updates page has been transformed into a couple of buttons and a label which should be clearer, and it also doesn’t say the word “Updates” quite so many times on that page anymore (me: Nate Graham, Plasma 5.24):

When using PipeWire and streaming audio from one device to another, the audio stream now shows the name of the remote device in Plasma’s Audio Volume applet (Nicolas Fella, Plasma 5.24)

The Properties window for files now displays which app will open the file (Kai Uwe Broulik, Frameworks 5.89):

The icon selection dialog now pre-selects the folder’s currently-used icon for easier visualization and keyboard navigation (Kai Uwe Broulik, Frameworks 5.89)

Those little transient messages that sometimes appear at the bottom of the windows of Kirigami-based apps (which are nonsensically called “Toasts” in Android land) now have easier-to-read text (Felipe Kinoshita, Frameworks 5.89)

…And everything else

Keep in mind that this blog only covers the tip of the iceberg! Tons of KDE apps whose development I don’t have time to follow aren’t represented here, and I also don’t mention backend refactoring, improved test coverage, and other changes that are generally not user-facing. If you’re hungry for more, check out https://planet.kde.org/, where you can find blog posts by other KDE contributors detailing the work they’re doing.

How You Can Help

Have a look at https://community.kde.org/Get_Involved to discover 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!

Finally, consider making a tax-deductible donation to the KDE e.V. foundation.

Categories: FLOSS Project Planets

Russ Allbery: Review: A Psalm for the Wild-Built

Planet Debian - Sat, 2021-11-27 00:27

Review: A Psalm for the Wild-Built, by Becky Chambers

Series: Monk & Robot #1 Publisher: Tordotcom Copyright: July 2021 ISBN: 1-250-23622-3 Format: Kindle Pages: 160

At the start of the story, Sibling Dex is a monk in a monastery in Panga's only City. They have spent their entire life there, love the buildings, know the hidden corners of the parks, and find the architecture beautiful. They're also heartily sick of it and desperate for the sound of crickets.

Sometimes, a person reaches a point in their life when it becomes absolutely essential to get the fuck out of the city.

Sibling Dex therefore decides to upend their life and travel the outlying villages doing tea service. And they do. They commission an ox-bike wagon, throw themselves into learning cultivation and herbs, experiment with different teas, and practice. It's a lot to learn, and they don't get it right from the start, but Sibling Dex is the sort of person who puts in the work to do something well. Before long, they have a new life as a traveling tea monk.

It's better than living in the City. But it still isn't enough.

We don't find out much about the moon of Panga in this story. Humans live there and it has a human-friendly biosphere with recognizable species, but it is clearly not Earth. The story does not reveal how humans came to live there. Dex's civilization is quite advanced and appears to be at least partly post-scarcity: people work and have professions, but money is rarely mentioned, poverty doesn't appear to be a problem, and Dex, despite being a monk with no obvious source of income, is able to commission the construction of a wagon home without any difficulty. They follow a religion that has no obvious Earth analogue.

The most fascinating thing about Panga is an event in its history. It previously had an economy based on robot factories, but the robots became sentient. Since this is a Becky Chambers story, the humans reaction was to ask the robots what they wanted to do and respect their decision. The robots, not very happy about having their whole existence limited to human design, decided to leave, walking off into the wild. Humans respected their agreement, rebuilt their infrastructure without using robots or artificial intelligence, and left the robots alone. Nothing has been heard from them in centuries.

As you might expect, Sibling Dex meets a robot. Its name is Mosscap, and it was selected to check in with humans. Their attempts to understand each other is much of the story. The rest is Dex's attempt to find what still seems to be missing from life, starting with an attempt to reach a ruined monastery out in the wild.

As with Chambers's other books, A Psalm for the Wild-Built contains a lot of earnest and well-meaning people having thoughtful conversations. Unlike her other books, there is almost no plot apart from those conversations of self-discovery and a profile of Sibling Dex as a character. That plus the earnestness of two naturally introspective characters who want to put their thoughts into words gave this story an oddly didactic tone for me. There are moments that felt like the moral of a Saturday morning cartoon show (I am probably dating myself), although the morals are more sophisticated and conditional. Saying I disliked the tone would be going too far, but it didn't flow as well for me as Chambers's other novels.

I liked the handling of religion, and I loved Sibling Dex's efforts to describe or act on an almost impossible to describe sense that their life isn't quite what they want. There are some lovely bits of description, including the abandoned monastery. The role of a tea monk in this imagined society is a neat, if small, bit of world-building: a bit like a counselor and a bit like a priest, but not truly like either because of the different focus on acceptance, listening, and a hot cup of tea. And Dex's interaction with Mosscap over offering and accepting food is a beautiful bit of characterization.

That said, the story as a whole didn't entirely gel for me, partly because of the didactic tone and partly because I didn't find Mosscap or the described culture of the robots as interesting as I was hoping that I would. But I'm still invested enough that I would read the sequel.

A Psalm for the Wild-Built feels like a prelude or character introduction more than a complete story. When we leave the characters, they're just getting started. You know more about the robots (and Sibling Dex) at the end than you did at the beginning, but don't expect much in the way of resolution.

Followed by A Prayer for the Crown-Shy, scheduled for 2022.

Rating: 7 out of 10

Categories: FLOSS Project Planets

TestDriven.io: Dynamic Secret Generation with Vault and Flask

Planet Python - Fri, 2021-11-26 17:28
In this tutorial, we'll look at a real-world example of using Hashicorp's Vault and Consul to create dynamic Postgres credentials for a Flask web app.
Categories: FLOSS Project Planets

New Icons, Iconoclast Pipeline

Planet KDE - Fri, 2021-11-26 14:29

Over the month of November work has been started to refresh the full-colour icons in Breeze as an extension of the “Blue Ocean” initiative. With literally hundreds of hand-created vector icons in our roster we’ve had to develop new processes and are working on a more robust pipeline so this refresh can be done in a somewhat timely manner.

Preview of the new folders. Subject to change and refinement.

As was the method for Blue Ocean on the desktop widgets and design, the icons will be a gradual rollout over a few releases. We do have a strategy in place to ensure that this won’t be too jarring or inconsistent during the transition. The current plan is to update both all mimetypes and all places in time for the 5.24 release.

Like our current icons the new icons have adaptive capabilities. Beyond that some additional select icons such as the new desktop icon are also adaptive, and there are plans for other icons to also take advantage of this feature where it would not be obnoxious. Compared to existing icons the refreshed content will be softer, more detailed, and less flat. These icons are also prepared with future capabilities in mind, and as enhancements are made to KDE Frameworks these icons may expose new and interesting features.

Finally, we’re expanding the number of sizes the icons come in, so they look ideal at more zoom levels in your file browser. Currently colour places icons are offered in 32, 48, 64, and 96 pixel sizes, and mimetypes are offered in 32 and 64 pixel sizes. Refreshed icons in both places and mimetypes will be offered in 32, 48, 64, 96, 128, and 256 pixel sizes with no missing graphics. We already have all folders in all of the above sizes, and in under a month while also writing our software we have over doubled the number of folder icons in Breeze. We’re estimating we will more than triple in the number of mimetype icons.

To get this work done we’ve built new tools for the express purpose of making mass iconography far easier for even individual artists, so I’m very pleased to state that a new icon and SVG pipeline is underway and despite being unfinished is producing results. This Python-written pipeline is capable of adding guides, rulers, and setting up grids for existing icons, standardizing existing icon colours, assembling entirely new icons from templates and components, and aggressively optimizing icons. With this authors will be able to have a “golden copy” of their icon sets where they can focus purely on design, letting the software take care of cleaning up the documents and assembling the individual pieces. The folders in the above image were assembled by the pipeline, with no hand-tuning.

In terms of optimization some extreme cases have seen unoptimized Oxygen icons drop 75% or their filesize. In less ideal situations a few simple hand-optimized test icons I produced run through the pipeline saw 10-20% reductions in filesize. The new optimizer is not built on any existing tools, and is an entirely new thing. At similar settings the new optimizer is on par or slightly ahead of Inkscape in most tests, but at the same time it’s also more specialized and the output cannot be edited when certain stages are enabled. It’s also targeted towards TinySVG and should not be expected to work on full-fat images (though, accommodations have been made). There is still work to be done too, and in the future more optimization steps are on the table to further reduce output size.

Not only is this pipeline beneficial to KDE artists, but history has proven even the roughest artistic tools we produce are regularly used outside of Plasma development. With this in mind we plan to release our new tooling separate from Breeze as its own package/download after polishing it to a mirror shine. Currently nicknamed “Iconoclast”, we are specifically setting out for this tooling to be useful and ready for the wider community beyond KDE.

Iconoclast will include our new pipeline, a manual, tips and advice, and another entirely new icon set named “Bones”, which is already in progress. The pipeline itself is strongly configurable with ini files, so KDE-isms can be removed and it can be adapted to work for icons sets that may have different flows through configuration. The Bones icon set will be a minimal base which can either be built on top of, or used as a reference, and these icons will released in the public domain. Different projects with different licenses can just take it and use it, and it’s uses generic technologies not tied to KDE. The pipeline itself will be GPL, and I don’t have a specific timeline for when the kit will be released but once it’s solidified I’ll make an announcement; though it’s likely to be after the new year.

Categories: FLOSS Project Planets

Web Review, Week 2021-47

Planet KDE - Fri, 2021-11-26 10:29

Let’s go for my web review for the week 2021-47.

Your Fingerprint Can Be Hacked For $5. Here’s How. - Kraken Blog

Tags: tech, security

Good reminder of why fingerprint readers are really a poor security device.


The Handwavy Technobabble Nothingburger

Tags: tech, cryptoassets, scam

This is a good summary of why I think those crypto currencies are mainly a scam and used to entertain a perpetual delusion on their use.


The unbearable fussiness of the smart home - Stacey on IoT | Internet of Things news and analysis

Tags: tech, iot, smarthome

Feels like loosing agency in your own home… definitely not for me…


Flatpak Is Not the Future

Tags: tech, linux, flatpak

This is a bit of a rant but that summarizes quite well why I fail to fall in love with snap, flatpack and the likes. Everytime I tried to use one of those I ended up with GBs of extra runtime to deal with and the security arguments are frankly debatable… I wish the LSB wasn’t defunct.


Mobilizon v2, now matured, like a good French wine – Framablog

Tags: tech, web, framasoft

Really nice to see this excellent piece of software growing.


Git email flow vs Github flow

Tags: tech, git, email

Always wanted to try this particular way of dealing with patches. But none of the projects I contributed to so far work in that mode.


Django, HTMX and Alpine.js: Modern websites, JavaScript optional

Tags: tech, html, javascript, frontend, django

Interesting way to combine Django and a couple of JS based tiny frameworks to make simpler frontends.


Overengineering can kill your product - Mind the Product

Tags: tech, complexity

Good summary on why overengineering is bad, why it happens and how to try to prevent it. We deal with complexity we better make sure there’s no undue complexity in our systems.

The wording and bias of the article is a bit startup-y but most things in there apply more widely.


The Fingerprint Principle

Tags: management, change, improving

Interesting musing about change management: don’t come up with something too perfect if you want people to make it their own.


Bye for now!

Categories: FLOSS Project Planets

PyCharm: PyCharm 2021.3 Release Candidate 2

Planet Python - Fri, 2021-11-26 09:29

It’s almost time! This is the final build before the 2021.3 major release. Our team is now working on the last details so you can enjoy the new exciting features that are coming to PyCharm really soon.

Download PyCharm 2021.3 RC2

Previously highlighted features:

Read our previous EAP blog posts for more information on highlighted features.

  • This build requires an active JetBrains subscription.
  • If you find any bugs while exploring this release candidate, please submit them to the PyCharm issue tracker.
  • For the full list of issues solved in this build please read the release notes.

The PyCharm team

Categories: FLOSS Project Planets