Skip to content

Friday, 14 January 2022

Let’s go for my web review for the week 2022-02.


Facebook collecting people’s data even when accounts are deactivated

Tags: tech, facebook, gafam, surveillance

Ever had a Facebook account? Deactivated it since then? Well apparently the surveillance anti-feature is for life… Don’t be fooled, just delete it, which is apparently harder than it sounds.

https://digiday.com/media/why-facebook-keeps-collecting-peoples-data-and-building-their-profiles-even-when-their-accounts-are-deactivated/


Is Google Search Deteriorating? Measuring Google’s Search Quality in 2022

Tags: tech, google, bing, search

Interesting look at the results from two search engines and seeing where they’re good and where they fail.

https://www.surgehq.ai/blog/is-google-search-deteriorating-measuring-search-quality-in-2022


UltraRAM Breakthrough Brings New Memory and Storage Tech to Silicon | Tom’s Hardware

Tags: tech, memory, storage, performance

Still very early days, but if that gets industrialized and the prices are not too horrible, this could bridge the gap in access times between memory and storage.

https://www.tomshardware.com/news/ultraram-implemented-in-silicon-for-first-time


Simplicity of IRC - Susam’s Maze

Tags: tech, irc, low-tech, simplicity

Don’t use it much anymore for various reasons, but I still find the simplicity of IRC still appealing and elegant. It is a really neat protocol.

https://susam.net/maze/simplicity-of-irc.html


Make the Internet Yours Again With an Instant Mesh Network | The Changelog

Tags: tech, networking, ip, decentralized

Looks like a very interesting approach. This is still clearly for techies though, but time will tell.

https://changelog.complete.org/archives/10319-make-the-internet-yours-again-with-an-instant-mesh-network


Perspective · Streaming Analytics via WebAssembly

Tags: tech, data-visualization, web

This looks like a very interesting dataviz framework.

https://perspective.finos.org/


The Optional Chaining Operator, “Modern” Browsers, and My Mom - Jim Nielsen’s Blog

Tags: tech, web, obsolescence, javascript

Or why upgrades need to happen with care, especially with an open platform like the web…

https://blog.jim-nielsen.com/2022/a-web-for-all/


Who wrote this shit? | Philip Heltweg

Tags: tech, programming

Always remember the human beings and the context behind the code you are looking at.

https://www.heltweg.org/posts/who-wrote-this-shit/


The 7 Code Review Manners. Not the code review we need but the code review we deserve

Tags: tech, programming, codereview

Not very profound but definitely useful tips on how to handle reviews.

https://reutsharabani.medium.com/the-7-code-review-manners-f0f0eef4d3e5


Haskell for all: Funding isn’t the problem with open source

Tags: tech, free-software, ethics

Interesting piece which points out (despite its title) that it’s not simply about funding, this is also about the relationship between projects and large companies which try to squeeze value out of them.

https://www.haskellforall.com/2021/12/funding-isnt-problem-with-open-source.html


Toxic Culture Is Driving the Great Resignation

Tags: management, hr, culture

Interesting exploration on why we see a large resignation movement (at least in the US, the study is US centric anyway). It’s clearly not only about wages and they are other even more powerful forces at play. First and foremost: mind your corporate culture.

https://sloanreview.mit.edu/article/toxic-culture-is-driving-the-great-resignation/



Bye for now!

After having been (again) demoted (timed perfectly to my round birthday!) based on flimsy arguments, I have been forced to rethink the level of contribution I want to do for Debian. Considering in particular that I have switched my main desktop to dual-boot into Arch Linux (all on the same btrfs fs with subvolumes, great!) and have run Arch now for several days exclusively, I think it is time to review the packages I am somehow responsible for (full list of packages).

After about 20 years in Debian, time to send off quite some stuff that has accumulated over time.

KDE/Plasma, frameworks, Gears, and related packages

All these packages are group maintained, so there is not much to worry about. Furthermore, a few new faces have joined the team and are actively working on the packages, although mostly on Qt6. I guess that with me not taking action, frameworks, gears, and plasma will fall back over time (frameworks: Debian 5.88 versus current 5.90, gears: Debian 21.08 versus current 21.12, plasma uptodate at the moment).

With respect to my packages on OBS, they will probably also go stale over time. Using Arch nowadays I lack the development tools necessary to build Debian packages, and above all, the motivation.

I am sorry for all those who have learned to rely on my OBS packages over the last years, bringing modern and uptodate KDE/Plasma to Debian/stable, please direct your complaints at the responsible entities in Debian.

Cinnamon

As I have written already here, I have reduced my involvement quite a lot, and nowadays Fabio and Joshua are doing the work. But both are not even DM (AFAIR) and I am the only one doing uploads (I got DM upload permissions for it). But I am not sure how long I will continue doing this. This also means that in the near future, Cinnamon will also go stale.

TeX related packages

Hilmar has DM upload permissions and is very actively caring for the packages, so I don’t see any source of concern here. New packages will need to find a new uploader, though. With myself also being part of upstream, I can surely help out in the future with difficult problems.

Calibre and related packages

Yokota-san (another DM I have sponsored) has DM upload permissions and is very actively caring for the packages, so also here there is not much of concern.

Onedrive

This is already badly outdated, and I recommend using the OBS builds which are current and provide binaries for Ubuntu and Debian for various versions.

ROCm

Here fortunately a new generation of developers has taken over maintenance and everything is going smoothly, much better than I could have done, yeah to that!

Qalculate related packages

These are group maintained, but unfortunately nobody else but me has touched the repos for quite some time. I fear that the packages will go stale rather soon.

isync/mbsync

I have recently salvaged this package, and use it daily, but I guess it needs to be orphaned sooner or later.

CafeOBJ

While I am also part of upstream here, I guess it will be orphaned.

Julia

Julia is group maintained, but unfortunately nobody else but me has touched the repo for quite some time, and we are already far behind the normal releases (and julia got removed from testing). While go stale/orphaned. I recommend installing upstream binaries.

python-mechanize

Another package that is group maintained in the Python team, but with only me as uploader I guess it will go stale and effectively be orphaned soon.

xxhash

Has already by orphaned.

qpdfview

No upstream development, so not much to do, but will be orphaned, too.


Wednesday, 12 January 2022

After two tremendously fun livestreams the Plasma 5.24 wallpaper is all wrapped up. With this particular image we had a lot of fun using new techniques to create this wallpaper, and the entire process was a fun adventure. To download the wallpaper it’s available on OpenDesktop and GetHowNewStuff if you’re a Plasma user.

The wallpaper was first sketched in the Krita painting application. Up until this point wallpapers I authored used a fairly inflexible technique of creating a polygon grid and manipulating it, but this new shape would require new techniques.

In Inkscape a wireframe was drawn using the line tool. This was done by drawing curved lines roughly matched over the sketch, applying successive wireframes one over another until we could rely on the snapping tools in Inkscape to place polygons.

This ultimately resulted in 2,221 hand-drawn polygons, layered in a way similar to reptile scales so gaps would not show through once fills were applied. People often question if these are done in Blender, but Inkscape is actually the software of the day with this being done entirely in 2D.

Fills were applied as linear gradients to the grouped polygons. At this point edges were also drawn in and I was getting ready to use the “Jitter Gradients” plugin I developed some years ago for the purpose of differentiating the individual polygons, but alas it wasn’t compatible with modern Inkscape! AAAAGH!

While I was busy having a panic attack live on-air Niccolò Veggero swept in and graciously updated the script to be compatible while I worked in other areas. What a lifesaver! With the Jitter Gradients plugin fixed up work began hopping between Krita and Inkscape, colours starting roughly landing, and we quickly approached the end of the wallpaper work.

Layers layers layers ahoy! This was the state of the wallpaper at the end of the second livestream. While almost everything was in place, in practise it’s never a bad idea to walk away for a few hours to come back later with clear eyes.

After coming back to the image several adjustments were made. A lot of the work I had done in Krita during the livestream was replaced, mostly because I realized I didn’t do the work in 8K, which we offer now. There was also a few steps in GIMP such as noise and some minor light-curve editing.

And so ended the work on the Plasma 5.24 wallpaper! After taking it up with the chat on the livestream it was quickly decided to be named “Wavy McWallpaperface”. The last steps are pretty standard; we run it through our cropping and sizing script which produces the highest quality versions for a variety of resolutions. If you noticed that the base image is slightly taller than “standard” it’s because it was, to accommodate cropping so it’s not just removing content for taller aspect ratios. The cropping script was also adjusted slightly for this wallpaper so it wouldn’t crop the top, which is the more interesting bit.

If you’re a crazy person and you wish to watch the wallpaper being created you can watch the process as it was streamed on Youtube:
Part 1: Wireframe & Polygon Creation
Part 2: Everything Else

To download the wallpaper once again it’s available on OpenDesktop at various resolutions, including the mobile version!

Tuesday, 11 January 2022

 

https://phabricator.kde.org/source/latte-dock/

Let's welcome Latte Dock v0.10.7 the 7th Official Bug Fix Release of v0.10.x branch!
 
Go get it from, download.kde.org*

Fixes

  • multi-screen: always trust KWin under X11 in order to set correct struts for panels and docks
  • automatically offset centered applets when the left or right widgets overlap the centered one
  • windowsgobelow: show properly during startup
  • kwinedges: calculate accurately their size and position
  • improve applets dragging during rearrange and configure widgets mode
  • hide thin tooltips properly at some cases that were stack
  • fill one pixel gap of justify splitters during rearrange and configure widgets mode
  • fix, windows belong to screen whenever they are touching it. This way a window could belong in more than one screens and be taken into account for visibility modes and active window tracking
  • remove file extensions for layouts and templates properly in order to identify the layout or template name
  • fix build for Freebsd
  • x11: force OnAllDesktops for all docks and panels during creation
  • fix empty availableScreenRegion broadcast to Plasma


Donations

You can ping me at https://www.reddit.com/user/psifidotos in order to give you my paypal account.

or you can split your donation between my active projects in kde store.
-----
 
* archive has been signed with gpg key: 325E 97C3 2E60 1F5D 4EAD CF3A 5599 9050 A2D9 110E

 

In my last post I talked about what application developers can do to fix their applications not showing up correctly in Plasma’s task manager. I motivated this by the fact that we need this on Wayland to display the app’s icon. However icons are not the only reason why correctly mapping windows to desktop files is important. It brings substantial benefits even on X11:

  • Application titles: In addition to showing the window title Plasma’s task manager also shows the application name (the Name key in the desktop file). If the desktop file can’t be determined it falls back to the executable name, which isn’t particularly nice.
  • Jumplist actions: Desktop files allow apps to specify additional application actions. For example Firefox allows you to open a new window or a new private browsing window by right-clicking on the entry in the task manager.
  • Media player controls: Plasma’s task manager allows to control application’s media playback. You can e.g. pause a music player by right-clicking on its task manager entry. For this to work the window has to be matched to the MPRIS player instance, which happens based on the desktop file name.
  • Recent files: Plasma’s task manager shows you recently used files for an application in the context menu for an application and allows to open that file in the app. This also relies on the desktop file mapping.

Now that we established why it is important to map a window to a desktop file, how is it done?

On Wayland the xdg-shell protocol, which is responsible for application windows, has builtin support for passing a desktop file name in form of set_app_id.

On X11, it’s more complicated.

For Qt applications the plasma-integration Qt Platform Theme sets a KDE-specific window property that contains the desktop file name. The task manager reads this property and handles it accordingly.

GTK apps have a very similar window property, named _GTK_APPLICATION_ID. However, until now Plasma did not use this information at all! Beginning with Plasma 5.25 the task manager will take _GTK_APPLICATION_ID into account, which fixes matching Gedit and other apps.

When neither _KDE_NET_WM_DESKTOP_FILE nor _GTK_APPLICATION_ID are set the task manager will use a wild guessing game heuristic to try and match the window to a desktop file. It takes into account things like the X11 window class, executable name, and Name and Exec from the desktop file. Sometimes this works well, sometimes it doesn’t.

These are just some examples why this mapping is so important. In a future post I will talk about an improvement to Plasma’s task manager in Plasma 5.24 that also requires this mapping to work.

Sunday, 9 January 2022

There used to be a time when I had the discipline to keep my information well managed as well as separated between work, personal related and junk. The result was that when travelling, I used to carry a single machine. Those days are long time gone.

The Cool Now

With the infrastructure I built in qml-lsp for parsing and analysing QML files, I thought “hm, since doxyqml is just a glorified qml parser –> c++ header file converter, wouldn't it be trivial to write the same thing in go reusing qml-lsp's infrastructure?” And that's exactly what I did. I wrote a 130-line program that faithfully replicated doxyqml's functionality in Go.

By virtue of being a Go program that calls on a pretty optimised parser in C, it ended up being a little over 10 times faster than doxyqml on my system.

I wasn't done there.

I thought “hmm, couldn't I reuse the semantic analysis I did for qml-lsp to improve the output a bit?”

So, that's pretty much what I did.

Currently, the most notable improvement over doxyqml is in producing a better superclass for the output:

doxyqml, with aliased import (import foo as bar):

class Avatar : public QtQuick.Controls.Control {

doxyqml, without aliased import:

class Avatar : Control {

One isn't valid C++ (I'm surprised Doxygen takes it at all), and the other fails to specifically name where Control comes from, leading to issues with Doxygen trying to locate the superclass.

qml-doxygen reuses the semantic analysis from qml-lsp to generate the following output, whether the import is aliased or not:

class Avatar : public QtQuick::Controls::Control {

It's both valid C++, and tells Doxygen exactly where the name is coming from.

The Roadmap

The next thing I'm planning to do is to resolve the concrete type of an alias property, so that documentation generation for aliases can be improved without developers needing to explicitly tell the computer what type the alias points to.

I may also add the ability to “splat” grouped properties with a special sigil, so that something like readonly property AvatarGroup actions: AvatarGroup { } can be expanded into the properties of the AvatarGroup by qml-doxygen, resulting in better documentation.

Tags: #libre

Saturday, 8 January 2022

… is already a few days ago and I finally come around to share one of my gifts with the KDE community.

After 7 years I replaced (actually had to replace) my old mobile with a new one. The new one however has a camera that sticks out of the back of the mobile for a few millimeters which I don’t like. My daughter designed a custom cover for my wife’s phone a while back, and I asked her, if she can design something for me. Here’s what she created:

Now I have to see how I can contribute to the pun.

The original artwork is made by Tyson Tan under Creative Commons License SA 4.0 and taken unchanged from the KDE promo material page

Friday, 7 January 2022

Update: The Livestream is moved to Monday January 10th, sorry for the inconvenience it may cause.

After a very successful livestream at the beginning of the week (with a heartfelt thank-you to everyone who popped in) it’s time to hunker down for one more afternoon to finish what we started! This Sunday (January 9th) I’ll once again be hosting a stream, where we’ll finish the wallpaper together. All the tedious manual work is well behind us, so this round should be mostly finery and polish in addition to the background, which is all fun and creative stuff. Click here for the Youtube link to the upcoming stream if you want to set a reminder for yourself. The livestream will run at least 2 hours, but if we’re all having fun I’ll run it for an additional 2 after a brief intermission.

For everyone who didn’t have a chance to attend, in the last livestream we started with the above sketch done in Krita and experimented with a new method on-the-fly where we leaned into Inkscapes snapping features to create a 3D mesh by hand, with the plan to use the built-in “Restacking” tool to enable hand-drawn polygons with “perfect” edges. While the mesh method was a rousing success and testing the restack feature gave ideal results, near the end of the stream it was realized that watching me draw triangles for several hours was not a hip idea, so I decided to take the remainder of the more tedious work offline.

Which was a good thing, because I had to throw away hours worth of hand-drawn polygons. I was not a happy camper. There was a damper in the pamper. It was a stylistic cramper. Simply put I literally zigged when I should have zagged and half the polygons were misaligned because of it.

Not to worry though, because I had the chance to experiment a bit more with less certain ideas and while I’m still playing a bit, I’m even happier with the redone results. Almost like I had roughly 5 hours of practice…

In terms of livestreaming itself it went off without a hitch on a technical level, but the overall quality was pretty awful. I’m sorry for that, I didn’t realize how bad it was. I’ve been making improvements so the quality of future streams will be far better. Earnestly I wasn’t sure if I’d be doing it again so I didn’t put an overwhelming amount of effort into the initial setup. I fully expected to have large swaths of time without anyone watching, but while the quality of the feed was borderline unwatchable I saw far more activity than I anticipated, and the chat was more than excellent in making me want to continue doing streams. You all rock!

There’s still testing and adjustments to be made but it’ll definitely have much higher video quality this upcoming stream, hopefully have better audio quality, and there’s a 50/50 chance I’ll broadcast in (up to) 4K (if the latency is acceptable). I didn’t have hardware encoding set up, I think it’ll be waaaaay nicer for me not to be encoding 4K to 1080p video on my CPU while using a CPU-intensive drawing application. It’s almost like my video card is meant for video. Additionally, and while I make no guarantees, I’ll also be attempting to hook up screen mirroring with my Android drawing tablet so I can use both it and my desktop computer to complete the wallpaper using all the tools at my disposal on-air. While the mixing of vector and traditional art was debated in an older wallpaper, I’ll have you – yes, you! – to give live feedback.

Once again I want to thank everyone who made it (or wanted to make it) to the previous stream. It was a delightful experience and I hope to see you this Sunday!

Happy new year 2022! Let’s go for the first web review for this year.


You (probably) don’t need ReCAPTCHA | nearcyan

Tags: tech, web, security, captcha, gafam

Indeed, don’t use this by default. This is likely overkill and has terrible side effects. Look up for the alternatives proposed in this article first.

https://nearcyan.com/you-probably-dont-need-recaptcha/


A.I. Is Solving the Wrong Problem | by Marianne Bellotti | OneZero

Tags: tech, ai, design, decision-making, knowledge

Interesting article about how we badly design AI systems which make them very vulnerable to the quality of the data they receive. That’s in part why I’d expect that somehow we’ll see knowledge representation somehow come back in fashion because they have some potential to lead to better explicability in models.

https://onezero.medium.com/a-i-is-solving-the-wrong-problem-253b636770cd


Chatbots: Still Dumb After All These Years | Mind Matters

Tags: tech, ai, neural-networks

Very well makes the point on why general AI or good conversational bots are nowhere in sight with neural networks. It’s just freaking hard to push general knowledge into those networks… Also there’s the limit of not having a body and not feeling pain. This is indeed still a requirement to learn things and give them meaning.

https://mindmatters.ai/2022/01/will-chatbots-replace-the-art-of-human-conversation/


My Setup for Self-Hosting Dozens of Web Applications + Services on a Single Server

Tags: tech, self-hosting, infrastructure

Interesting ideas for hosting your own infrastructure. Some things I do similarly, others I do differently. Good food for thought.

https://cprimozic.net/blog/my-selfhosted-websites-architecture/


ntfy.sh | Send push notifications to your phone via PUT/POST

Tags: tech, monitoring, notifications, web

Looks like a nifty little tool for sending notifications from a script to your phone or such.

https://ntfy.sh/


You don’t need that CORS request - Nick Olinger

Tags: tech, http, cors, performance

Good reminder that CORS can have an impact regarding the performance of your application.

https://nickolinger.com/blog/2021-08-04-you-dont-need-that-cors-request/


How a Single Line of Code Made a 24-core Server Slower Than a Laptop

Tags: tech, multithreading, performance, profiling

Good reminder on how a shared atomic can become a huge bottleneck in multi-CPU setups.

https://pkolaczk.github.io/server-slower-than-a-laptop/


Floating Point Visually Explained

Tags: tech, mathematics, floats

Now this is a really neat way to explain how floats work and how you loose precision. Definitely a good trick I should keep in mind when I have to talk about them, it’s always been a chore to explain them.

https://fabiensanglard.net/floating_point_visually_explained/


Work Sample Tests - Jacob Kaplan-Moss

Tags: hr, management, interviews

Excellent series about work sample tests during interviews. Definitely good food for thought in there, I already changed how I was doing a few things with it and what I tested worked nicely so far.

https://jacobian.org/series/work-sample-tests/


How German Librarians Finally Caught an Elusive Book Thief - Atlas Obscura

Tags: book, history, surprising

Very astonishing story, this is a long career in rare maps theft…

https://www.atlasobscura.com/articles/how-german-librarians-caught-a-book-thief


The UX on this Small Child Is Terrible - McSweeney’s Internet Tendency

Tags: funny, ux, children

This is a funny satire about children from the UX point of view. You can tell this designer would want a few improvements. :-)

https://www.mcsweeneys.net/articles/the-ux-on-this-small-child-is-terrible



Bye for now!