Feeds
Russ Allbery: Review: The Shepherd's Crown
Review: The Shepherd's Crown, by Terry Pratchett
Series: Discworld #41 Publisher: Harper Copyright: 2015 Printing: 2016 ISBN: 0-06-242998-1 Format: Trade paperback Pages: 276The Shepherd's Crown is the 41st and final Discworld novel and the 5th and final Tiffany Aching novel. You should not start here.
There is a pretty major character event in the second chapter of this book. I'm not going to say directly what it is, but you will likely be able to guess from the rest of the review. If you're particularly adverse to spoilers, you may want to skip reading this until you've read the book.
Tiffany Aching is extremely busy. Witches are responsible for all the little tasks that fall between the cracks, and there are a lot of cracks. The better she gets at her job, the more of the job there seems to be.
"Well," said Tiffany, "there's too much to be done and not enough people to do it."
The smile that the kelda gave her was a strange one. The little woman said, "Do ye let them try? Ye mustn't be afraid to ask for help. Pride is a good thing, my girl, but it will kill you in time."
And that's before an earth-shattering change in the world of witches, one that leaves Tiffany shuttling between Lancre and the Chalk trying to be too many things to too many people. Plus the kelda is worried some deeper trouble is brewing. And then Tiffany gets an exiled elven queen who has never understood the worth of other people dumped on her, and has to figure out what to do with her.
The starting idea is great. I continue to be impressed with how well Pratchett handles Tiffany's coming-of-age story. Finding one's place in the world isn't one lesson or event; it's layers of them, with each new growth in responsibility uncovering new things to learn that are often quite different from the previous problems. Tiffany has worked through child problems, adolescent problems, and new adulthood problems. Now she's on a course towards burnout, which is exactly the kind of problem Tiffany would have given her personality.
Even better, the writing at the start of The Shepherd's Crown is tight and controlled and sounds like Pratchett, which was a relief after the mess of Raising Steam. The contrast is so sharp that I found myself wondering if parts of this book had been written earlier, or if Pratchett found a new writing or editing method. The characters all sound like themselves, and although some of the turns of phrase are not quite as sharp as in earlier books, they're at least at the level of Snuff.
Unfortunately, it doesn't last. There are some great moments and some good quotes, but the writing starts to slip at about the two-thirds point, the sentences began to meander, the characters start repeating the name of the person they're talking to, and the narration becomes increasingly strained. It felt like Pratchett knew the emotional tone he wanted to evoke but couldn't find a subtle way to express it, so the story and the characters start to bludgeon the reader with Grand Statements. It's never as bad as Raising Steam, but it doesn't slip smoothly off the page to rewrite your brain the way that Pratchett could at his best.
What makes this worse is that the plot is not very interesting. I wanted to read a book about Tiffany understanding burnout, asking for help, and possibly also about mental load and how difficult delegation is. There is some movement in that direction: she takes on some apprentices, although we don't see as much of her interactions with them as I'd like, and there's an intriguing new male character who wants to be a witch. I wish Pratchett had been able to give Geoffrey his own book. He and his goat were the best part of the story, but it felt rushed and I think he would have had more impact if the reader got to see him develop his skills over time the way that we did with Tiffany.
But, alas, all of that is side story to the main plot, which is about elves.
As you may know from previous reviews, I do not get along with Pratchett's conception of elves. I find them boring and too obviously evil, and have since Lords and Ladies. Villains have never been one of Pratchett's strengths, and I think his elves are my least favorite. One of the goals of this book is to try to make them less one-note by having Tiffany try to teach one of them empathy, but I didn't find any of the queen's story arc convincing. If Pratchett had pulled those threads together with something more subtle, emotional, and subversive, I think it could have worked, but instead we got another battle royale, and Lords and Ladies did that better.
"Granny never said as she was better than others. She just got on with it and showed 'em and people worked it out for themselves."
And so we come to the end. I wish I could say that the quality held up through the whole series, and it nearly did, but alas it fell apart a bit at the end. Raising Steam I would skip entirely. The Shepherd's Crown is not that bad, but it's minor Pratchett that's worth reading mainly because it's the send-off (and there are a lot of reasons within the story to think Pratchett knew that when writing it). There are a few great lines, some catharsis, and a pretty solid ending for Tiffany, but it's probably not a book that I'll re-read.
Content warning: major character death.
Special thanks to Emmet Asher-Perrin, whose Tor.com/Reactor re-read of all of Discworld got me to pick the series up again and finally commit to reading all of it. I'm very glad I did.
Rating: 6 out of 10
This week in Plasma: inhibiting inhibitions and more!
This is a big one, folks. Plasma 6.2’s soft feature freeze is now in effect, which means the last few features have just been merged! Now we’ll have six weeks of heavy bug-fixing before the final release in October. If you’re an industrious sort, the time to live on git master and report bugs is now! Current git master is completely suitable for daily driving.
And we’ve already been focusing on QA for a while, so new bug reports take priority — both triaging them and fixing them. Over the past few months, we’ve succeeded in dropping plasmashell’s total number of bug reports to 1022, the lowest in several years. And the number of unconfirmed bug reports is currently down to 301, the lowest since late 2015! Triaging and fixing bugs is a priority, and we’re promptly triaging all new Plasma new bug reports daily. Our goal is to push the number of unconfirmed bug reports under 200 by the end of September.
So please do submit bug reports for any issues you encounter; it’s not a black hole. If you’ve complained about bugs on social media recently and haven’t reported them on https://bugs.kde.org, fix that today! Do it! Do it now!
…But first check out the final Plasma 6.2 features; I think they’re pretty awesome. It’s gonna be a big release, full of useful stuff!
Notable New FeaturesIt’s now possible to block apps from inhibiting sleep and screen lock, if you don’t like the fact that they do so (Natalie Clarius, Plasma 6.2.0. Link):
Newly installed Plasma widgets are now shown at the top of the grid view and badged with “New!” for one hour, so it’s easy for you to find them right after installing them (Niccolò Venerandi, Plasma 6.2.0. Link):
While choosing a custom image for a user avatar on System Settings’ Users page, you can now crop the image if needed (someone going by the Pseudonym “Kuneho Cottonears”, Plasma 6.2.0. Link):
Added support for 7-day weather forecasts and “chance of precipitation” data for BBC UK Met weather stations shown in Plasma’ Weather widget (Ismael Asensio, Plasma 6.2.0. Link):
Discover now gently guides you in the direction of writing better reviews for non-proprietary apps (me: Nate Graham, Plasma 6.2.0. Link):
https://i.imgur.com/SGTpj9a.mp4Added a yearly notification to ask for donations; see this week’s earlier post for more details (TL;DR: optional, once per year, you can permanently disable it) (me: Nate Graham Plasma 6.2.0. Link)
The plasma-apply-wallpaperimage tool now has a --fill-mode option, mirroring the existing GUI option for this, but now in a scriptable form (Heitor Augusto Lopes Nunes, Plasma 6.2.0. Link)
Notable UI ImprovementsDue to popular demand, KWin’s Overview effect once again shows a linearized representation of two-dimensional virtual desktop layouts (e.g. 2×2, 3×3, etc) on the primary view, rather than hiding them entirely (Blazer Silving, Plasma 6.2.0. Link)
Plasma’s System Tray now uses a better grid layout for the expanded view that leaves more space for text, which is especially important for languages like German and Russian. The new layout saves space, too (me: Nate Graham, Plasma 6.2.0. Link):
The settings for KWin’s colorblindness correction effect now live in the logical place where you’d expect to find them: on System Settings’ Accessibility page! (Thomas Duckworth, Plasma 6.2.0. Link):
Overhauled the UI of System Settings’ Accessibility page in a lot of little ways to make it actually be more… accessible! (Thiago Sueto, Plasma 6.2.0. Link)
Plasma’s “Minimize All” widget now only minimizes and unminimizes windows on the current virtual desktop and activity, rather than all windows everywhere (Christoph Wolk, Plasma 6.2.0. Link)
If you enter global edit mode, and then from there enter a panel’s own edit mode, closing the panel’s configuration window now simply returns you to the global edit mode, rather than exiting from that too (Niccolò Venerandi, Plasma 6.2.0. Link)
The error message shown when manually installing a Plasma widget fails is now more descriptive, and tells you the actual error so you can troubleshoot it (Nicolas Fella, Plasma 6.2.0. Link)
Made a pass over many areas of Plasma and System Settings to align text and labels with our Human Interface Guidelines’ best practices (Christoph Wolk, Plasma 6.2.0. Too many merge requests to list TBH, so check them all out here!)
Dialog windows throughout KDE software have new icons again — this time they look nicer and more Breeze-styled (Kai Uwe Broulik, Frameworks 6.6. Link):
Notable Bug FixesFixed a nasty issue that could cause corruption in files on SFTP servers that were edited by opening them from Dolphin in an app and then saving changes (Ser Freeman, kio-extras 24.12.0. Link)
Changing the system’s Global Theme now also changes the colors of any recolorable GTK apps, just like you’d expect (Michael Weghorn, Plasma 6.1.5. Link)
Performing a multi-finger touch swipe/gesture on your touchscreen no longer messes up Plasma and gets it caught in a weird limbo state (Marco Martin, Plasma 6.1.5. Link)
Fixed a recent regression in Plasma’s desktop file/folder view that could cause items to snap back to their previous locations after being dragged somewhere else (David Edmundson, Plasma 6.2.0. Link)
Job progress notifications shown by Plasma no longer let any buttons’ text get cut off in languages where words and phrases are long; now, the popups expand horizontally a bit to make room (Arjen Hiemstra, Plasma 6.2.0. Link)
Fixed two issues in Plasma’s Emoji Selector app seemingly caused during the Plasma 6 port that caused it to lose its prior selection highlight effect, and always copy the first item in the search results view rather than the selected one (Akseli Lahtinen, Plasma 6.2.0. Link 1 and link 2)
Substantially reduced the glitchiness of the tooltips for items in the expanded view of Plasma’s System Tray (me: Nate Graham, Plasma 6.2.0. Link)
Fixed a glitch that could cause the Maliit virtual keyboard to be mis-positioned when using any vertical panels (David Edmundson, Plasma 6.2.0. Link)
When Plasma’s Folder View widget is placed on a panel, its popup can now be resized to smaller than its default size (me: Nate Graham, Plasma 6.2.0. Link)
It’s no longer possible to break System Settings quite terribly by opening a “Get New [thing]” window and then closing System Settings’ own main window (Harald Sitter, Frameworks 6.6. Link)
Other bug information of note:
- 2 Very high priority Plasma bugs (down from 3 as last week). Current list of bugs
- 33 15-minute Plasma bugs (down from 36 last week). Current list of bugs
- 149 KDE bugs of all kinds fixed over the last week. Full list of bugs
Substantially improved performance in Discover in multiple ways: launch time, time to load the UI, time to load icons, and smoothness of scrolling through long lists (Harald Sitter, Plasma 6.2.0. Link 1, link 2, link 3, link 4, and link 5)
Discover now behaves more sensibly and only shows one authentication prompt when asked to update multiple Flatpak apps in an environment with hardened security for Flatpaks, as in openSUSE distros (Harald Sitter, Plasma 6.2.0. Link)
Installing a font now places it, by default, in a standardized location (e.g. ~/.local/share/fonts/rather than the legacy location (~/.fonts/), which means that sandboxed apps will be able to find and use them as expected (David Edmundson, Plasma 6.2.0. 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 HelpSo yeah, like I said, please test Plasma from current git master and open bug reports about issues you find. Another path is to help triage bug reports that the first crowd will be opening. Ask for more information, make them actionable, move them where needed! And of course, help fix triaged and confirmed bug reports.
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! Or consider donating instead! That helps too.
Python Morsels: Functions and Methods in Python
Methods are functions that live on objects.
Table of contents
- Operators
- Some functions included with Python
- Calling functions
- Function arguments
- Functions either return a value or perform an action
- Methods are a special type of functions
- Functions are everywhere in Python
Python includes operators, like the plus operator (+) and the minus operator (-):
>>> n = 9 >>> language = "Python" >>> language + " is fun" 'Python is fun' >>> n - 4 5 Some functions included with PythonBut Python also includes many …
Read the full article: https://www.pythonmorsels.com/functions-and-methods/CodersLegacy: Understanding the Switch Case Statement in Python 3.10
Python is known for its simplicity and readability, but one feature it has historically lacked is a native switch case statement, commonly found in other programming languages like C, C++, and Java. Instead, Python developers often relied on a series of if-elif-else statements or dictionaries to emulate switch-case behavior.
However, with the release of Python 3.10, a new feature known as “Structural Pattern Matching” was introduced, which effectively brings a form of switch-case functionality to Python.
In this tutorial, we’ll explore how to use the switch case statement, Python’s new approach to handling multiple conditions in a more readable and efficient way.
The match statement in Python 3.10 allows for pattern matching, which is more powerful and flexible than the traditional switch-case statements found in other languages. Pattern matching checks a given value against a series of patterns and executes the corresponding block of code when a match is found.
Here’s a basic structure of how a match statement works:
Pythondef example(value): match value: case pattern1: # Code block for pattern1 case pattern2: # Code block for pattern2 case _: # Default case (similar to 'default' in switch-case) Key Components:- match statement: The equivalent of the switch keyword in other languages.
- case clauses: These represent the individual cases you want to check against, similar to case in switch-case.
- Wildcard (_): Acts as the default case, covering any values that don’t match the specified patterns.
Let’s start with a simple example of using match to simulate a switch-case statement that handles different types of user inputs.
Pythondef process_command(command): match command: case "start": return "Starting the system..." case "stop": return "Stopping the system..." case "restart": return "Restarting the system..." case _: return "Unknown command." # Testing the function print(process_command("start")) # Output: Starting the system... print(process_command("pause")) # Output: Unknown command.In this example:
- The match statement checks the value of command.
- Depending on the matched value, the corresponding message is returned.
- The wildcard (_) case handles any input that doesn’t match the predefined commands, acting as a fallback or default case.
The match statement in Python 3.10 is not limited to simple value matching. It supports more complex patterns, including:
1. Matching Data StructuresYou can use pattern matching with lists, tuples, and dictionaries.
Pythondef analyze_shape(shape): match shape: case ("circle", radius): return f"Circle with radius {radius}" case ("rectangle", width, height): return f"Rectangle with width {width} and height {height}" case ("square", side): return f"Square with side {side}" case _: return "Unknown shape" # Testing the function print(analyze_shape(("circle", 5))) # Output: Circle with radius 5 print(analyze_shape(("rectangle", 4, 6))) # Output: Rectangle with width 4 and height 6You can add conditions to cases using if statements, known as “guards”.
Python 0: return "Negative number" case n if n == 0: return "Zero" case n if n > 0: return "Positive number" # Testing the function print(categorize_number(-5)) # Output: Negative number print(categorize_number(0)) # Output: Zero print(categorize_number(10)) # Output: Positive number" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button">def categorize_number(number): match number: case n if n < 0: return "Negative number" case n if n == 0: return "Zero" case n if n > 0: return "Positive number" # Testing the function print(categorize_number(-5)) # Output: Negative number print(categorize_number(0)) # Output: Zero print(categorize_number(10)) # Output: Positive numberYou can also combine multiple patterns in a single case using the | (or) operator.
Pythondef get_day_type(day): match day: case "Saturday" | "Sunday": return "Weekend" case "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday": return "Weekday" case _: return "Invalid day" # Testing the function print(get_day_type("Sunday")) # Output: Weekend print(get_day_type("Monday")) # Output: Weekday print(get_day_type("Funday")) # Output: Invalid dayWhile you can still use if-elif-else statements, match provides a cleaner and more readable alternative when dealing with multiple conditions. It’s especially useful when:
- You have a large number of conditions to check.
- You want to match complex data structures.
- You need to execute different code blocks based on the structure of data, not just its value.
By mastering this new feature, you can write cleaner, more maintainable code that can easily adapt to complex logic scenarios.
As you start integrating match into your code, you’ll likely find many situations where it simplifies your conditional logic, making your Python code not only more efficient but also more Pythonic.
The post Understanding the Switch Case Statement in Python 3.10 appeared first on CodersLegacy.
Darren Oh: From Drupal Forge trial sites to persistent hosting
Due to concerns that the launch button would funnel business to one vendor at the expense of others, Starshot leadership announced that the launch button would use WebAssembly to run site trials in a user’s browser without external hosting. This approach has the advantages of being able to run Drupal off line and not needing anyone to pay for hosting. However, it is technically challenging and will not work for everyone. Sites running in WebAssembly cannot be visited by others and are not persistent.
Darren Oh Fri, 08/30/2024 - 15:40 Tags- Read more about From Drupal Forge trial sites to persistent hosting
- Log in or register to post comments
Dirk Eddelbuettel: pkgKitten 0.2.4 on CRAN: Updates
A shiny new release 0.2.4 of pkgKitten arrived on CRAN earlier, and has also been been uploaded to Debian. pkgKitten makes it simple to create new R packages via a simple function invocation. A wrapper kitten.r exists in the littler package to make it even easier.
This release contains several improvements to the (optional) setup of the (wonderful) tinytest package, now supports the (now mandatory) ‘Authors@R’ and polished a few aspect around the package repository and continuous integrations.
The set of changes follows.
Changes in version 0.2.4 (2024-08-30)The .Rbuildignore stanza now includes .github
The support of and usage illustrations of tinytest are much enhanced (Paul Hudor in #18 adressing #19 and #20)
The .gitignore file now includes C++ related files
Improvements and polish to badges and continuous integration
The DESCRIPTION file now contains an Authors@R entry
More details about the package are at the pkgKitten webpage, the pkgKitten docs site, and the pkgKitten GitHub repo.
Courtesy of CRANberries, there is also a diffstat report for the most recent release.
If you like this or other open-source work I do, you can sponsor me at GitHub.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
Steve McIntyre: Party like it's 2024
It (was) that time of year again - last weekend we hosted a bunch of nice people at our place in Cambridge for the annual Debian UK OMGWTFBBQ!
Lots of friends, lots of good food and drink. Of course lots of geeky discussions about Debian, networking, random computer languages and... screws? And of course some card games to keep us laughing into each night!
Many thanks to a number of awesome friendly people for again sponsoring the important refreshments for the weekend. It's hungry/thirsty work celebrating like this!
The Drop Times: Frequently Asked Questions on 'Drupal CMS'
Sahil Dhiman: Debconf24 Busan
DebConf24 was held in Busan, South Korea, from July 28th to August 4th 2024 and preceded by DebCamp from July 21st to July 27th. This was my second IRL DebConf (DC) and fourth one in total. I started in Debian with a DebConf, so its always an occassion when one happens.
This year again, I worked in fundraising team, working to raise funds from International sponsors. We did manage to raise good enough funding, albeit less than budgeted. Though, the local Korean team was able to connect and gather many Governmental sponsors, which was quite surprising for me.
I wasn’t seriously considering attending DebConf until I discussed this with Nilesh. More or less his efforts helped push me through the whole process. Thanks Nilesh for this. In March, I got my passport and started preparing documents for South Korean visa. It did require quite a lot of paper work but seeing South Koreas’s fresh passport visa rejection rate, I had doubts about visa acceptance. The visa finally got approved, which could be attributed to great documentation and help from DebConf visa team. This was also my first trip outside India, and this being to DebConf made many thing easy. Most stuff were documentated on DebConf website and wiki. Asking some query got immediate responses from someone in the DebConf channels.
We then booked a direct flight from Delhi, reaching Seoul in the morning. With good directions from Sourab TK who had reached Seoul a few hours earlier, we quickly got Korean Won, local SIM and T Money card (transportation card) and headed towards Seoul by AREX, airport metro. We spent the next two days exploring Seoul, which is huge. It probably has the highest number of skyscrappers I have ever seen. The city has good mix modern and ancient culture. We explored various plaes in Seoul including Gyeongbokgung Palace, Statue of King Sejong, Bukchon Hanok village, N Seoul Tower and various food markets which were amazing.
A Street in SeoulNext, we to headed to Busan for DebConf using KTX (Korean high speed rail). (Fun fact, slogan for City of Busan is “Busan is Good”.) South Korea has good network of frequently running high speed trains. We had pre-booked our tickets because despite the frequency, trains were sold out most of the times. KTX ride was quite smooth, despite travelling at 300 Kmph at times through Korean countryside and long mountain tunnels.
PKNU EntranceThe venue was for DebConf was Pukyong National University (PKNU), Daeyeon Campus. PKNU had two campuses in the Busan and some folks ended up in wrong campus too. With good help and guidance from front desk, we got our dormitery rooms assigned. Dorms here were quite different ie:
- Rooms had heated floors. It seems to snow in Busan.
- Each area was had card based access. There was a seperate card for laundry too.
- Rooms had announcement systems right inside the room, though we couldn’t decipher any announcement as all of them were in Korean.
- Each room was provided with a dedicated access point and own SSID inside the room.
Settling in was easy and we started meeting familiar folks after almost an year. The long conversations started again. Everyone was excited for DebConf.
Like everytime, first day was full of action (and chaos). Meet and greet, voluneteers checkin, video team running around and fixing stuff and things working (or not). There were some interesting talks and sponsors stalls . After day one, things more or less settled down. I again volunteered for video team stuff and helped in camera operations and talk directions which is always fun. As the tradition applies, saw few talks live on stream too sitting in the dorm room during the conf, which is always fun, when too tired to get ready and go out.
From Talk Director's chairDebConf takes care of food needs for vegan/vegetration folks well, of which I’m one. I got to try different food items which was quite an experience. Tried using chopsticks again which didn’t work, which I later figured that handling metal ones were more difficult. We had late night ramens and wooden chopsticks worked perfectly. One of the days, we even went out to an Indian resturarent to have some desi aloo paratha, paneer dishes, samosas and chai (milk tea). I wasn’t particularyly craving desi food but wasn’t able to get something according to my taste so went there.
As usual Bits from DPL talk was packedFor daytrip, I went to Ulsan. San means mountains in Korean. Ulsan is a port city with many industries including Hyundai car factory, petrochemical industry, paint industry, ship building etc. We saw bamboo forest, Ulsan tower (quite a view towards Ulsan port), whale village, Ulsan Onggi Museum and the sea (which was beautiful).
The beautiful seaView from Ulsan Bridge Observatory
Amongst the sponsors, I was most interested in our network sponsors folks who were National research and education networks (NREN) here. We had two network sponsors, KOREN and KREONET, thanks to efforts by local team. Initially it was discussed that they’ll provide 20G uplink each, so 40G in total, which was whopping but by the time the closing talk happened, we got to know we had 200G uplink to the Internet. This was massive update to last year where we had 1G main and 100M backup link. 200G wasn’t what is required but it was massive capacity and IIRC from the talk, we peaked at around 500M in usage but it’s always fun have astronomical amount of bandwidth for bragging rights ;)
Various mascots in attendenceVideo and Network stats. Screengrab from closing ceremony
Now lets talk about things I found interesting about South Korea in general:
- Convience stores were everywhere, one could see same brand stores less than kilometer apart. We had even had two of them (GS25(s)), a road cross away too. These places were well stocked with almost everything even alcohol.
- There were wide footpaths and pedestrian friendly policies.
- Public transport and intra modal transfer is convient and easy to figure. Each metro station connects to multiple nearby buildings through underground walkways and one never had to go out in the sun (in hot and humid weather). Also Seoul and Busan metro networks were massive. Same T money card worked for buses (almost hop on, tap and hop off at your destination), metros and even cabs.
- South Korea pays special attention to maintaining their historical and cultural buildings. These venues had informational brochures in Korea, English, Japanese and Chinese.
- We got constant stream of “Public safety alerts” on our phones. Some phones even read them aloud for heatwaves and rains warnings, all in Korean.
- Trash was segrated at source everywhere.
- Public, high speed WIFI was omni-present in malls, public transport, airport etc. In metro, each coach had access points from all three telecom providers (SK Telecom, KT and LG U+) which also had almost similar voice and data plans.
- Police personals were quite helpful despite the language issue.
- Not many folks here are comfortable in English but one can always make use of various mobile translation apps.
- Cards are accepted everywhere and there’re too many of these cards ;)
- Food situation was bit difficult for me as a vegetration. We always have vegan/veg food in DebConf but outside, this whole concept doesn’t seem to exist here.
- I couldn’t find any public speedtest servers inside Korea. All my fast.com/speedtest.net servers were located either Hong Kong, Singapore, Japan and even in United States. On the very last day, I got a speedtest servers in Seoul, inside SK Telecom.
Starfield Library, Seoul
If one has to get the whole DebConf experience, it’s better to attend DebCamp as well because that’s when you can sit and interact with everyone better. As DebConf starts, everyone gets busy in various talks and events and things take a pace. DebConf days literally fly. This year, attending DebConf in person was a different experience. Attending DebConf without any organisational work/stress so was better and I was able to understand working of different Debian team and workflows better while also identified a few where I would like to join and help. A general conclusion was that almost almost all Debian team needs more folks to help out. So if someone want to join, they can probably reach out to team and they would be able to onboard new folks. Though this would require some patience. Kudos to the Korean team who were able to pull of this event under this tight timeline and thanks for all the hospitality.
DebConf23 Group Photo. Click to enlarge.Credits - Aigars Mahinovs
This whole experience expanded my world view. There’s so much to see and explore and understand. Looking forward to DebConf25 in Brest, France.
Kdenlive Café
The first Kdenlive Café of the year will be on Tuesday, September 3rd at 7PM UTC (9PM CET).
Come chat with the team!
Join us at: https://meet.kde.org/b/far-twm-ebr
The post Kdenlive Café appeared first on Kdenlive.
La Palma Tech Summer 2024 meetup: summary
Web Review, Week 2024-35
Let’s go for my web review for the week 2024-35.
Telegram is neither “secure” nor “encrypted”Tags: tech, telegram, security, privacy
Here a good reminder that the PR of Telegram is highly misleading. It’s not very secure, they don’t really care about your privacy.
Tags: tech, telegram, law
Yes, such an arrest is concerning. Now, lots of people are voicing the wrong concerns… this article actually does a good job explaining it.
https://www.404media.co/how-telegrams-founder-pavel-durov-became-a-culture-war-martyr/
Tags: tech, foss, values, licensing, fundraising
I’m not sure the “bubble” comparison properly applies. Still there are indeed signs of the Open Source movement getting in troubles. It’ll be all the more important to stick to the Free Software values.
https://tarakiyee.com/is-the-open-source-bubble-about-to-burst/
Tags: tech, foss, licensing
It’s about time… I wish they would have gone for the AGPL + proprietary double license scheme instead of their odd licenses the last time.
https://www.elastic.co/blog/elasticsearch-is-open-source-again
Tags: tech, language
Interesting to see Typescript and Rust picking up pace slowly. Otherwise Python, Java, Javascript and C++ are still the big four overall. For jobs, C# and SQL are good to have in your tool belt.
https://spectrum.ieee.org/top-programming-languages-2024
Tags: tech, rss
Very good list of the challenges ahead for RSS as a popular protocol. It’d be great to see some of it being tackled.
https://www.mnot.net/blog/2024/08/25/feeds
Tags: tech, supply-chain, security, linux
Interesting comparison between old attempts at backdooring OpenSSH and the latest xz attempt. There are lessons to be learned from this. It makes a good case for starting to sandbox everything.
https://blog.isosceles.com/openssh-backdoors/
Tags: tech, security, airline
Woops, this was clearly a very bad security issue allowing to completely bypass airport security screening in the US.
Tags: tech, databases, sql
Looks like an interesting way to improve SQL. This feels like a nice extension, it’s much better than throwing out the baby with the bathwater.
https://research.google/pubs/sql-has-problems-we-can-fix-them-pipe-syntax-in-sql/
Tags: tech, programming, python, metaprogramming
Interesting to see how far you can go preprocessing Python.
https://pydong.org/posts/PythonsPreprocessor/
Tags: tech, programming, maintenance
Definitely a good advice, I see very complex expressions in if (or while BTW) conditions way too often. They tend to accumulate over time.
https://maximullaris.com/if_condition.html
Tags: tech, web, frontend, tests, performance, reliability
Interesting reason which would explain the Selenium flakiness. It’s just harder to write tests with race conditions using Playwright.
https://justin.searls.co/links/2024-08-29-why-playwright-is-less-flaky-than-selenium/
Tags: tech, monitoring, reliability, debugging
How to avoid drowning in errors when getting serious about monitoring. Finding class of errors and treating them one by one will definitely help.
https://blog.danslimmon.com/2024/08/15/putting-a-meaningful-dent-in-your-error-backlog/
Tags: tech, design, databases
A weird detour via baseball obscure rules to justify why we should pay attention to the “Highlander problem”. This should be kept in mind especially for designing databases.
https://www.b-list.org/weblog/2024/aug/27/highlander-problem/
Tags: tech, business, architecture
Definitely something architects should do more. Understanding the business needs should be the input to the technical decisions. Otherwise you might just happily build the wrong thing.
https://cremich.cloud/building-with-purpose
Bye for now!
Qt/.NET — Using QML in a .NET WPF application
Qt/.NET is a proposed toolkit for interoperability between C++ and .NET, including a Qt-based custom native host for managed assemblies, as well as a native-to-managed adapter module that provides higher-level interoperability services such as object life-cycle management, instance method invocation and event notification.
Zero to Mastery: Python Monthly Newsletter 💻🐍
Russ Allbery: Review: Thornhedge
Review: Thornhedge, by T. Kingfisher
Publisher: Tor Copyright: 2023 ISBN: 1-250-24410-2 Format: Kindle Pages: 116Thornhedge is a fantasy novella by T. Kingfisher, the pen name that Ursula Vernon uses for her adult writing. It won the 2024 Hugo Award for best novella. No matter how much my brain wants to misspell the title, it is a story about a hedge, not a Neolithic earthwork.
The fairy was the greenish-tan color of mushroom stems and her skin bruised blue-black, like mushroom flesh. She had a broad, frog-like face and waterweed hair. She was neither beautiful nor made of malice, as many of the Fair Folk are said to be.
There is a princess asleep in a tower, surrounded by a wall of thorns. Toadling's job is to keep anyone from foolishly breaking in. At first, it was a constant struggle and all that she could manage, but with time, the flood of princes slowed to a trickle. A road was built and abandoned. People fled. There was a plague. With any luck, the tower was finally forgotten.
Then a knight shows up. Not a very rich knight, nor a very successful knight. Just a polite and very persistent knight who wants to get into the tower that Toadling does not want him to get into.
As you might have guessed, this is a Sleeping Beauty retelling. As you may have also guessed from the author, or from the cover text that says "not all curses should be broken," this version is a bit different. How and why it departs from the original is a surprise that slowly unfolds over the course of the story, in parallel to a delicate, cautious, and delightfully kind-hearted conversation between the knight and the fairy.
If you have read a T. Kingfisher story before, particularly one of her fractured fairy tales, you know what to expect. Toadling is one of her typical well-meaning, earnest, slightly awkward protagonists who is just trying to do the right thing in a confusing world full of problems and dangers. She's constantly overwhelmed and yet she keeps going, because what else is there to do. Like a lot of Kingfisher's writing, it's a story about quiet courage from someone who doesn't consider herself courageous. One of the twists this time is that the knight is a character from a similar vein: doggedly unwilling to leave any problem alone, but equally determined to try to be kind. The two of them together make for a story with a gentle and rather melancholy tone.
We do, eventually, learn the whole backstory of the tower, the wall of thorns, and Toadling. There is a god, a rather memorable one, who is frustratingly cryptic in the way that gods are. There are monsters who are more loving than most humans. There are humans who turn out to be surprisingly decent when it matters. And, like most of Kingfisher's writing, there is a constant awareness of how complicated the world is, how full it is of people who are just trying to get through each day, and how heavy of burdens people can shoulder when they don't see another way.
This story pulled me right in. It is not horror, although there are a few odd bits like there always are in Kingfisher stories. Your largest risk as a reader is that it might make you cry if stories about earnest people doing their best in overwhelming situations hit you that way. My primary complaint is that there was nowhere near enough ending for me. After everything I learned about the characters, I wanted to spend some time with them outside of the bounds of the story. Kingfisher points the reader in a direction and then leaves the rest to your imagination, and I can see why she chose that story construction, but I wanted more catharsis than I got.
That complaint aside, this is quintessential T. Kingfisher, and I am unsurprised that it won a Hugo. If you've read any of her other fractured fairy tales, or the 2023 Hugo winner for best novel, you know the sort of stories she tells, and you probably know whether you will like this. I am one of the people who like this.
Rating: 8 out of 10
Steve McIntyre: A birthday gift to remember!
Warning: If you're not into meat, you might want to skip the rest of this...
This year, I turned 50. Wow. Lots of friends and family turned up to help me celebrate, with a BBQ (of course!). I was very grateful for a lovely set of gifts from those awesome people, and I have a number of driving experiences to book in the next year or so. I'm going to have so much fun driving silly cars on and off road!
However, the most surprising gift was something totally different - a full-day course of hands-on pork butchery. I was utterly bemused - I've never considered doing anything like this at all, and I'd certainly never talked to friends about like it either. I was shocked, but in a good way!
So, two weekends back Jo and I went over to Empire Farm in Somerset. We stayed nearby so we could be ready on-site early on Sunday morning, and then we joined three other people doing the course. Jo was there to observe, i.e. to watch and take (lots of!) pictures.
I can genuinely say that this was the most fun surprise gift I've ever received! David Coldman, the master butcher working with us, has been in the industry for many years. He was an excellent teacher, showing us everything we needed to know and being very patient with us when we needed it. It was great to hear his philosophy too - he only uses the very best locally-sourced meat and focuses on quality over quantity. He showed us all the different cuts of pork that a butcher will make, and we were encouraged to take everything home - no waste here!
At the beginning of the day, we each started with half a pig. Over the next several hours, we steadily worked our way through a series of cuts with knife and saw, making the remaining pig smaller and smaller as we went.
We finished the day with three sets of meat. First, a stack of vacuum-packed joints, chops and steaks ready for cooking and eating at home. Second: a box of off-cuts that we minced and made into sausages at the end of the day. Finally: a bag of skin and bones. Our friend's dog got some of the bones, and Jo turned a lot of the skin into crackling that we shared with friends at the OMGWTFBBQ the next weekend.
This was an amazing day. Massive thanks to my good friend Chris Walker for suggesting this gift. As I told David on the day: this was the most fun surprise gift I've ever received. Good hands-on teaching in a new craft is an incredible thing to experience, and I can't recommend this course highly enough.
Darren Oh: Starshot ignites Drupal Forge
Matt Layman: Kamal - Building SaaS #200
Reproducible Builds (diffoscope): diffoscope 277 released
The diffoscope maintainers are pleased to announce the release of diffoscope version 277. This version includes the following changes:
[ Sergei Trofimovich ] * Don't crash when attempting to hashing symlinks with targets that point to a directory.You find out more by visiting the project homepage.
PyCharm: PyCharm 2024.2.1: What’s New!
PyCharm 2024.2.1 is here! This release’s key features include initial support for Python 3.13, improvements to the Data View tool window, and enhanced code assistance for Django.
Don’t forget to visit our What’s New page to get all the new updates. Download the latest version from our website, or update your current version through our free Toolbox App.
Download PyCharm 2024.2.1 PyCharm 2024.2.1 key features Data View PROPyCharm now provides two color-scheme options for the table heatmaps in the Data View tool window: the Diverging and Sequential color schemes.
The Diverging color scheme emphasizes variation relative to a norm. It consists of two contrasting colors that deviate from a central value in two opposite directions.
The Sequential color scheme consists of a single color or a range of closely related colors that vary in intensity.
You can apply the heatmap color schemes to the whole table or to each column separately, or you can use coloring only for Boolean values.
Python 3.13PyCharm now recognizes TypeIs syntax, providing proper type inference and code completion for user-defined narrowed functions. As part of Python 3.13 support, the IDE is now also aware of ReadOnly keys in TypedDict and warns you if something is assigned to a ReadOnly member.
Read more Django: Completion for ModelAdmin fields, and more PROGet intelligent code completion, refactoring, and navigation for the fields in ModelAdmin classes. Other productivity enhancements include a warning about newly created apps that have not been added to the INSTALLED_APPS declaration, and the ability to insert an app’s tag into the manage.py console automatically when migrations are made from the Django Structure tool window.
Read our release notes for the full breakdown and more details on all of the features in 2024.2.1. If you encounter any problems, please report them in our issue tracker so we can address them promptly.
Connect with us on X (formerly Twitter) to share your thoughts on PyCharm 2024.2.1. We’re looking forward to hearing them!