Skip to content

Tuesday, 2 May 2023

This new entry will cover ways to configure global preferences for Maui Apps and Maui Shell.

MauiMan

MauiMan stands for Maui Manager, and exists for setting, saving, and syncing the configuration preferences for the Maui Apps ecosystem. These configurations are global, and some of them can be overridden by the apps themselves, but more about that later. To store the configurations MauiMan uses the MauiMan.conf config file, located at your local config path: for example ~/.config/Maui/MauiMan.conf.

(!) The settings modifications are only written/saved when using the MauiMan API directly.

MauiMan consists of two parts, a (1) background server that syncs and broadcasts the preference properties changes to all the running Maui Apps, and a (2) public API, that allows app developers to easily hook their apps to the system preferences. The MauiMan server program is named MauiManServer and uses the DBus IPC.

The public API and the server are divided into modules: for different setting categories, such as Theme, Background, Accessibility, FormFactor, etc…

Using MauiMan to configure Maui Apps.

To configure existing preferences, there are different ways to do it, from a graphical interface to editing a text file or even hooking to the public API directly (for developers), in the following sections we’ll cover all the possible ways.

The ideal way to set the configurations, from a user perspective, is to use the Maui Settings application, which exposes all the MauiMan preferences in a graphical manner; although, some of the settings presented are “curated” to use predefined sane values, for example, not allowing to set the border-radius of elements to an unfitting value rendering the interface unusable. This means that with this approach you dont get full control over the values of the properties in all the cases, but you are less prompt to mess up.

Maui Settings also exposes other settings for other system stuff, such as Networks, Sound, Notifications, etc. If any of the needed servers to sync configurations are offline, Maui Settings warns you about it and allows you to launch the server daemon with a single click.

(!) Keep in mind that Maui Settings is still under heavy development and most modules are still not implemented.

 

 

Another way to do interact with MauiMan is by using DBus directly. For this one can use a graphical application and navigate to org.mauiman.Manager and then dive into the existing modules for modifying the properties.

(!) Using this approach will not save the changes made: it will keep the changes in memory as long as the MauiManServer daemon is running, but once the process is restarted those changes will be lost since changes to the MauiMan properties are only saved when using the MauiMan public API.

 

 

Another apporach is to manually edit the MauiMan.conf file. It has a couple downsides:

  • The changes won’t be made live.
  • Changes won’t be loaded until MauiManServer process has been restarted since MauiManServer saves in memory the properties and only loads preferences from the config file on startup.

Using this config file is a convenient way to set default values for distributions shipping Maui apps, so they can be styled for the distribution. This config file is located at:

~/.config/Maui/MauiMan.conf

Here’s a snapshot of the config file contents:

[Accessibility]
SingleClick=false

[Background]
DimWallpaper=false
FitWallpaper=false
ShowWallpaper=true
SolidColor=#ffff00
SourceDir=file:///usr/share/wallpapers/Cask
Wallpaper=file:///usr/share/wallpapers/Cask/Cloudy Noon - 5K (16:10).jpg

[FormFactor]
PreferredMode=0

[InputDevices]
KeyboardLayout=us

[Screen]
Orientation=1
ScaleFactor=1

[Theme]
AccentColor=#000
BorderRadius=12
CustomColorScheme=Amethyst
DefaultFont="Noto Sans,10,-1,0,50,0,0,0,0,0,Regular"
EnableCSD=true
EnableEffects=true
IconSize=16
IconTheme=Colloid
MarginSize=4
MonospacedFont="xos4 Terminus,12,-1,7,50,0,0,0,0,0,Regular"
PaddingSize=4
SpacingSize=4
StyleType=1
WindowControlsTheme=CadiumGloss

 

Accessing these MauiMan properties is also possible from an application side too: for developers there is the MauiMan public library which exposes all the properties trough a public API. So if you need to know about the current workspace background image source, you could hook to MauiMan::BackgroundManager::wallpaper()  and even connect to wallpaperChanged signal to know in real time when the wallpaper has been changed.

 

#include <MauiMan/backgroundmanager.h>

void func()
{
auto wallpaper = MauiMan::BackgroundManager().wallpaperSource();
}

 

Most of the properties are already quickly accessible via MauiKit Style object,  (for apps developed using MauiKit) which besides syncing to MauiMan changes can also override these properties with in-app specific values and if needed clear those using undefined to return using the MauiMan values.

For example, for setting the style type as dark for an app, despite the global preference being different:

​​​​Maui.ApplicationWindow
{
Maui.Style.styleType: Maui.Style.Dark
}

​and to reset the value back to the global system preference:

​​​​Maui.ApplicationWindow
{
Maui.Style.styleType: undefined
}​ ​​​

CaskServer

To configure Maui Shell preferences and expose those to any other processes, there is CaskServer, which as MauiMan, has two components: a CaskServer daemon for syncing/broadcasting the properties changes and the public library.

The public library allows apps to request Cask to draw custom shadows, title bar colors, and more privacy settings, via the Chrome and Screenshot modules. More modules include Shell, Power, Profiles, and Notifications.

The Shell module allows tweaking the Cask elements such as dock, panels, launcher, popups, etc preferences.

Some of these properties can be modified from Maui Settings, while others, such as properties from the Chrome module, are specific for a given app, so an individual app can be hooked to the Chrome module via the CaskServer library to perform changes to the available properties.

(!) CaskServer as Maui Settings and Maui Shell is still under heavy development and isn’t stable enough yet for commercial use, keep this in mind if you decide to give it a try.

The CaskServer configuration file is located at :

~/.config/Maui/CaskServer.conf


More detailed information about configuring Cask and Maui Shell will soon be shared, as development progresses.

​​​​​​

To follow the Maui Project’s development or say hi, you can join us on Telegram: https://t.me/mauiproject.

We are present on Twitter and Mastodon:

New release schedule

The post Configuring Maui appeared first on MauiKit — #UIFramework.

Monday, 1 May 2023

A month has passed since my last monthly post about my work as KDE Software Platform Engineer. What have I been up to since then?

As usual not everything I did ended up as committed code. A lot of my work is reviewing other people’s code, discussing ideas, and generally being useful to the community.

One area I’ve been focussing on is our infrastructure for global shortcuts. These are currently handled by the KGlobalAccel framework. This frameworks contains the runtime component that manages global shortcuts as well as an application-facing library to interact with the runtime. The runtime and interface library being in the same project has caused us some issues in the past. To address these the runtime part is now split out into a separate project and part of the Plasma group. You can read up more details on this here. This change also allowed for some further changes that made launching applications from global shortcuts both simpler code-wise and more robust. I have also worked on another set of changes that will address some of the pain points that are currently present in our global shortcuts system. While doing that I also addressed some issues I found in the underlying KDE Frameworks libraries.

Another area I worked on is notifications. One thing I did there was reducing the API surface of the KNotification class by hiding internal API that shouldn’t be exposed to application developers. I also proposed a revamped API for specifying notification actions. The new API is both easier to use for application developers and easier to extend with new features in the future.

With a small API change to KStatusNotifierItem, our class for implementing system tray icons, it is now easier for QML applications to fully make use of its capabilities. The API to set an associated window previously was only really usable for QtWidgets apps, now it can be used for QML apps too.

In some Plasma news: Plasma now uses the C++20 standard. This allows us to use some nifty new C++ features. One big one that comes to mind are coroutines, which have the potential to massively simplify parts of our code. Getting there required some tweaks to make our code and our dependencies fully C++20-compliant.

Talking about dependencies: With our move to Qt6 all of our Qt-based dependencies need to make that move too. appstream-qt, the library that powers e.g. Discover is now ready for that too. I helped integrating that into our build infrastructure. Another project with such dependencies is our online accounts system. It depends on libraries like libaccounts-qt and signond, which I’m working on porting to Qt6.

Last weekend I attended the Linux App Summit in Brno, Czech Republic. It was a lovely event that allowed me to get in touch with both people from KDE and our partner organizations like GNOME and Flathub.

To support the work I and many other people do in KDE please consider donating to KDE e.V. Your donations make my work as KDE Software Platform Engineer possible. Thank you for that!

Sunday, 30 April 2023

Here’s my KDE contributions for this month! It’s a little bit shorter than I’d like, but I’m still trying to find a nice balance between $work and KDE.

Extra CMake Modules

I put up MRs for a bunch of small fixes related to the QML module:

These haven’t been merged yet though, I still need to clean them up and give them some polish next month.

Dr. Konqi

I didn’t work on the new UI this month unfortunately, but I did submit two MRs:

Just like ECM this will be in my queue to merge these next month!

Krita.org

[Feature] I finally merged the improved dark mode I started a while ago, for the new Krita.org website! Thanks to everyone, especially Phu and Scott for being patient with me. I can’t wait to see this live soon :-)

Tokdoon

[Feature] I added support for the new Maximize component, which doesn’t change anything functionality-wise but makes our code leaner:

Screenshot of the Maximize component in action!

[Feature] I also pushed along the MR to use the SearchPopupField component from Kirigami Add-ons too, which is another change that doesn’t change anything functionally but will make the code much leaner.

[Feature] Interaction icons were overhauled, not just visually but also their layout has improved. Below is a screenshot of a mobile sized window, where the icons now spread out which will make them easier to tap (I plan on increasing the size on mobile too!)

Screenshot of the new icons in mobile layout

[Feature] The amount of characters you have left is now shown in the composer, which should load from your server (I don’t have anything but a 500-char limit to test with though):

The character count shows up in the bottom-left

[Feature] It’s not merged yet, but I’m adding overhauling how you view posts on profile pages! It has the usual separation of “Posts”, “Replies” and “Media” tabs but you can hide boosts too:

The new profile tabs and post options

[Feature] As a cherry on top, I added icons to some of the menus which makes them easier to quickly navigate:

Example of the new icon filled menu

Some more minor changes:

Keysmith

[Bugfix] I did some touching up work for Keysmith late this month: I fixed a bunch of binding loops, and added better keyboard navigation.

[Feature] I also added a passive notification when you copy the code to your clipboard too:

Example of the notification

There doesn’t appear to be an active maintainer, so I’ll get another reviewer and merge them next month. I also cleaned up some duplicate bugs, and moved some spam off of the tracker.

Kirigami

[Bugfix] While debugging Tokodon, I fixed a rare case where a Kirigami application using our QQC2 Desktop style could crash when closing. This same “fix” could apply to Breeze style too, it warrants further investigation :-)

[Feature] I realized that NavigationTabBar doesn’t have it’s own page on the gallery, so I proposed a new one in Kirigami gallery:

New page thumbnail in Kirigami Gallery

[Bugfix] I’m still looking for people who might know why PlaceholderMessage fails handling overflow, which creates some recursive rearranges. It might be a Qt upstream issue, so it’s another thing to investigate soon!

Friday, 28 April 2023

It’s already two years since I last looked at KDE git history. As I decribed in the latest edition, this is inspired by the work of Hans Petter Jansson for GNOME and use the tool he made (fornalder).

fornalder is a formidable tool. It is easy to use and the documentation in the readme is great. I don’t know if this is because it was programmed in Rust but fornalder was also blazingly fast and most of the time spent during this analysis was spent on cloning the repos.

These stats include all the extragear, plasma, frameworks and release service repository as well as most of the KDE websites and a few KDE playground projects I had on my hard drive. For example, it doesn’t includes most of the unmaintained projects (e.g. kdepimlibs, koffice, plasma-mediacenter, …). Also important to note, is that this doesn’t include translations at all, since they are stored in SVN and added in the git repository with a script which remove authorship information.

I also removed manually all the scripted commits and I merged the contributions from “Laurent Montel” with “Montel Laurent” as well as the one from various contributors whose name changed.

Active Contributors

Number of contributors by years
Number of contributors by years

The explaination for the colors is described by Hans Petter Janssson in his blog post by:

The stacked histogram above shows the number of contributors who touched the project on a yearly basis. Each contributor is assigned to a generational cohort based on the year of their first contribution. The cohorts tend to shrink over time as people leave.

There’s a special “drive-by” cohort (in a fetching shade of off-white) for contributors who were only briefly involved, meaning all their activity fits in a three-month window. It’s a big group. In a typical year, it numbers 200-400 persons who were not seen before or since. Most of them contribute a single commit.

In 2022, the number of active decreased slightly compared to 2021 and 2020, which might be due to the fact that the pandemic ended and people spend less time on their PC contributing to open source projects (which provided an huge boost in 2019/2020).

Commits Count

Number of commits by years
Number of commits by years

In 2022, the number of commits decreased as well, which can be attributed to the smaller number of overall contributors and a bit less activity from some long time contributors.

But I would not worry too much about these numbers as we are still above the 2019 level (pre-gitlab and pandemic) and looking already at the numbers for the first few months of 2023 it’s increasing again.

Conclusion

I would say that KDE is in relatively good health. This is particularly impressive for a project with little corporate backing and with mostly volunteers.

In 2023, we are also finalizing the transition to Qt6 and KF6 with a first release of KF6 and Plasma 6 around the end of this year, begining of next year.

There is no better time to get involved or to consider making a donation!

You can play with raw data in the form of a sqlite dabase (>200Mb)

Let’s go for my web review for the week 2023-17.


Red Alert: ICANN and Verisign Proposal Would Allow Any Government In The World To Seize Domain Names – FreeSpeech.com

Tags: tech, dns, politics

Concerning moves on the ICANN side… already in the agreements around .com and now trying to make its way into .net.

https://freespeech.com/2023/04/19/red-alert-icann-and-verisign-proposal-would-allow-any-government-in-the-world-to-seize-domain-names/


NitroKey disappoints me

Tags: tech, smartphone, android

Yep, disappointing indeed… I got a phone with a third party ROM and had to debug the A-GPS in there (don’t ask), it’s indeed reaching to this website as well. There’s enough to criticize without crying wolf for nothing.

https://blog.brixit.nl/nitrokey-dissapoints-me/


GitHub Copilot Emits GPL. Codeium Does Not. | Codeium

Tags: tech, ai, copilot, foss, ethics, law

Are we surprised? Not at all… this is an ethical problem, this is a legal risk. The alternatives will hopefully know better.

https://codeium.com/blog/copilot-trains-on-gpl-codeium-does-not


[2304.09655] How Secure is Code Generated by ChatGPT?

Tags: tech, ai, gpt, security

Interesting experiment even though it’s still early days for this kind of research and we’d need more such evaluations. They found that it produces mostly insecure code. This is not really surprising in the end, this manipulates language but has not execution model. It can be fixed only by coupling to some outside system.

https://arxiv.org/abs/2304.09655


Announcing Babylon.js 6.0. Our mission is to build one of the most… | by Babylon.js | Apr, 2023 | Medium

Tags: tech, web, 3d

This is really a huge update. Brings in lots of features which were clearly missing.

https://babylonjs.medium.com/announcing-babylon-js-6-0-dcb5f1662e3a


The weird world of Windows file paths | Fileside

Tags: tech, windows, filesystem

Definitely complicated to identify and resolve paths on this platform. I had to deal with it from time to time and this can definitely turn into a pain in the neck.

https://www.fileside.app/blog/2023-03-17_windows-file-paths/


Are pull requests bad because they originate from open-source development?

Tags: tech, foss, git, codereview, mob-programming, criticism

Since I’ve seen this argument floating around more than once, it’s nice to have a properly done rebuttal of it. This is nicely done, listing the own bias of the author, still in the end that shows the logical flaw of the argument.

https://blog.ploeh.dk/2023/04/24/are-pull-requests-bad-because-they-originate-from-open-source-development/


Best practices for writing code comments - Stack Overflow Blog

Tags: tech, programming, comments

Good article on when to use comments or not. Also gives a few tips on how to write them properly.

https://stackoverflow.blog/2021/12/23/best-practices-for-writing-code-comments/


Results summary: 2023 Annual C++ Developer Survey “Lite” : Standard C++

Tags: tech, c++

Interesting results. This gives a couple of insights in terms or adoption, perception of problems by people on C++ projects and tooling. It’s definitely worth skimming through.

https://isocpp.org//blog/2023/04/results-summary-2023-annual-cpp-developer-survey-lite


50 Shades of Rust Or emerging Rust GUIs in a WASM world

Tags: tech, rust, gui

This is currently a real zoo. I knew about a few of them but not that many. I guess it will slowly converge toward a few major options.

https://monadical.com/posts/shades-of-rust-gui-library-list.html#Pet-Sematary


Nine ways to shoot yourself in the foot with PostgreSQL

Tags: tech, databases, postgresql, performance

Nice set of tips, I knew a few but not all of them. The discussion around CTEs is interesting.

https://philbooth.me/blog/nine-ways-to-shoot-yourself-in-the-foot-with-postgresql


Measuring the Impact of False Sharing

Tags: tech, multithreading, performance

Nice exploration of false sharing on performances in several hardware scenarii. A couple of surprises along the way.

https://alic.dev/blog/false-sharing.html


Leverage the richness of HTTP status codes

Tags: tech, http, web, api

There are many more useful codes than are generally used. We shouldn’t shy away from using them when it makes sense, it also means the client side must be ready for them. Very often client code makes wrong assumptions on the possible codes.

https://blog.frankel.ch/leverage-richness-http-status-codes/


Characterizing Tech Debt

Tags: tech, technical-debt, craftsmanship

Nice short post listing the main positions (and linking to corresponding articles) on the debate around technical debt. Worth mulling over all those.

https://justinblank.com/notebooks/characterizingtechdebt.html


Distractions Cause Bad Code | nicholas@web

Tags: tech, notifications, remote-working, focus

So much this, managing notifications and making sure not to get disturbed when we need to focus is essential in our line of work.

https://ntietz.com/blog/distractions-cause-bad-code/


What complex systems can teach us about building software

Tags: tech, architecture, complexity, product-management, project-management

Interesting train of thoughts. Indeed we should keep in mind that large scale software is almost always a complex adaptative system, even more so if we don’t forget the people developing it and not just focusing on the code. This can give us guidelines on how to organize the development.

Also does a good recap about what a complex system is and how it behaves. Definitely worth a read at least for this.

https://sookocheff.com/post/systems/what-complex-systems-can-teach-us-about-building-software/


Tags: tech, tech-lead

If regularly see people propelled tech leads without really knowing what it means. This short post is a good summary of the skills one needs to build to fit the role.

https://medium.com/@bullyCOP/navigating-the-transition-from-individual-contributor-to-tech-lead-fbf8b29b878e


Key practice: Aligned, autonomous cross-disciplinary teams. | by Jason Yip | Apr, 2023 | Medium

Tags: tech, product-management

What the title say. This is especially important for product development. This is not emphasized enough in the article I think but the “aligned autonomy” section is a crucial part of this. I very often see in teams either alignment or autonomy, it’s rarer to see teams with both.

https://jchyip.medium.com/key-practice-aligned-autonomous-cross-disciplinary-teams-d73c1cddc352


Rescuing a project in progress

Tags: project-management

Very good advice: stop, status, selection, focus, finish, next. If it feels like “stop starting and start finishing”, it’s probably no surprise.

https://world.hey.com/jason/rescuing-a-project-in-progress-d31883f7


Some mistakes I made as a new manager | benkuhn.net

Tags: tech, management

Nice post full of good advises for new (or not so new) managers.

https://www.benkuhn.net/newmgr/


Why the Brain’s Connections to the Body Are Crisscrossed | Quanta Magazine

Tags: neuroscience, geometry, science

We still don’t really know (actually it’s super hard to have a definitive reason on this topic). This article presents more of a theory based on geometry… and this is interesting, we often don’t think about this kind of things.

https://www.quantamagazine.org/why-the-brains-connections-to-the-body-are-crisscrossed-20230419/


Researchers Taught Parrots to Video Call Other Parrots

Tags: tech, science, surprising

OK definitely surprising research. Some of the results are interesting. Clearly it shows a high level of socializing with those birds.

https://news.northeastern.edu/2023/04/21/parrots-talking-video-calls/



Bye for now!

Thursday, 27 April 2023

The FOSSASIA Summit 2023, held from April 13-15 at the Lifelong Learning Institute in Singapore, As an exhibitor for KDE at the FOSSASIA Summit 2023, I had an incredible experience showcasing our latest projects, networking with industry professionals, and engaging with attendees from all walks of life. I was thrilled to be part of such an esteemed gathering of like-minded individuals, all of whom were dedicated to advancing the field of open-source software development.

For context, FOSSASIA is an organization developing open source software applications and open hardware together with a global community from its base in Asia. Its goal is to provide access to open technologies, science applications and knowledge that improve people’s lives. FOSSASIA was established 2009 by Hong Phuc Dang and Mario Behling. Visit https://fossasia.org to learn more about the summit.

Getting back to the activities, our booth at the exhibition hall was bustling with activity throughout the three-day event, as developers, engineers, students, and enthusiasts stopped by to learn more about our latest offerings. I was particularly proud to showcase our flagship product, the Plasma desktop environment, along with KDE Connect, Dolphin, Konsole and other applications and tools that we have developed for the open-source community.

As I explained the features and benefits of our software to attendees, I was struck by the level of interest and enthusiasm that they showed for our products. It was clear to me that we are making a real difference in the lives of users around the world.

Beyond showcasing our products, the event was filled with informative keynote sessions and panel discussions, featuring speakers from around the world who shared their experiences and insights on open-source software development. As an exhibitor, I was particularly impressed by the discussions on collaboration and the importance of building sustainable communities around open-source projects. It was clear to me that the open-source community is dedicated to advancing the field of software development in a collaborative and sustainable way, and I am proud to be a part of that community.

In addition to networking with other industry professionals, I also had the opportunity to engage with potential users of our software. I was delighted to see the level of interest and enthusiasm from attendees, many of whom were eager to learn more about our software and its features. As I explained the benefits of using open-source software, I was struck by the level of curiosity and enthusiasm that attendees showed for our products.

I also met some old accomplices from KDE and local technical communities from Delhi. Anu Mittal, now working at a company in Singapore, attended the conference and also spent time with me, manning the booth and talking to many visitors at our booth about KDE software. I also met Raju Devidas, a Debian developer who has been contributing to Debian for more than a decade. He was manning the Debian booth along with a few other developers from Sri Lanka.

Overall, the FOSSASIA Summit 2023 was a resounding success for me as an exhibitor for KDE. I was able to showcase our latest products, engage with attendees, and collaborate with other industry professionals. I look forward to participating in future FOSSASIA Summits and continuing to contribute to the growth and development of the open-source community.

You can find the event photos here. I hope that these photos will help you experience some of the highlights of the summit!

I will post a few photos from the album above.

Gallery

I would like to extend my heartfelt gratitude to KDE e.V. for sponsoring my visit to the FOSSASIA Summit 2023 as an exhibitor for KDE. Without their support, I would not have had the opportunity to showcase our latest products and engage with attendees at this important event. Their continued support for the development of open-source software and the promotion of collaborative communities is truly inspiring, and I am honored to be a part of the KDE community. I look forward to continuing to contribute to the success and growth of our community, and I am grateful for their support in helping me make this visit to FOSSASIA Summit a resounding success.

Saturday, 22 April 2023

Arianna 1.0.1 🔗

Carl Schwan CarlSchwan 12:00 +00:00
RSS

I’m happy to announce the first bugfix release of Arianna. This release contains a lot of improvements to the accessibility of Arianna. Thanks a lot to @bgtlover@linuxrocks.online who reported many accessibility issues. Aside from fixing some bugs in Arianna, this also resulted in fixes in Kirigami, Kirigami Addons and Qt, which are on a seperate release schedule so not every bug fixes is already available. I’ll write a seperate blog post which will go into the technical details.

Aside from the accessibility fixes, this release fixes a few crashes when parsing some books. Thanks to those who tried Arianna and reported bugs (with backtrace!).

And finally, this release also improve the translations coverage, with for example Galician being one of the new supported language.

Get Involved

If you are interested in helping, don’t hesitate to reach out in the Arianna matrix channel (#arianna:kde.org) and I will be happy to guide you.

I also regularly post about my progress on Arianna (and other KDE apps) on my Mastodon account, so don’t hesitate to follow me there ;)

And in case, you missed it, as a member of KDE’s fundraising working group, I need to remind you that KDE e.V., the non-profit behind the KDE community accepts donations.

Packager section

You can find the package on download.kde.org and it has been signed with my GPG key.

Friday, 21 April 2023

Let’s go for my web review for the week 2023-16.


Tags: tech, surveillance, mozilla

This will be a welcome feature. There are extensions of course but at least users will have it by default when it lands.

https://www.ghacks.net/2023/04/17/firefox-may-interact-with-cookie-prompts-automatically-soon/


Microsoft plugging more ads into Windows 11 Start Menu • The Register

Tags: tech, microsoft, windows, surveillance, attention-economy

What not to do… this is slowly alienating the users.

https://www.theregister.com/2023/04/17/microsoft_windows_start_ads/


Google Assured OSS

Tags: tech, foss, supply-chain

This is a good thing that Google makes such a move. Still, it could be so much more. Tidelift still seems to be the best offer for securing your dependencies.

https://sethmlarson.dev/google-assured-oss


KeePassXC Audit Report – KeePassXC

Tags: tech, security, keepassxc

Good milestone for this project I’ve been using for a long while now.

https://keepassxc.org/blog/2023-04-15-audit-report/


GPT-4 is a Risky Dependency for FOSS Projects - Alys Brooks

Tags: tech, ai, gpt, foss, ethics, copyright, vendor-lockin

Definitely this! Major FOSS projects should think twice before giving their street creds to such closed systems. They’ve been produced with dubious ethics and copyright practices and since they’re usable only through APIs the induced vendor lock-in will be strong.

http://www.alysbrooks.com/gpt-4-is-a-risky-dependency-for-foss-projects.html


Training ChatGPT AI Required 185,000 Gallons of Water: Study

Tags: tech, ai, neural-networks, climate, gpt

There’s the carbon footprint but of course there’s also the water consumption… and with increased droughts this will become more and more of a problem.

https://gizmodo.com/chatgpt-ai-water-185000-gallons-training-nuclear-1850324249


Stack Overflow Will Charge AI Giants for Training Data | WIRED

Tags: tech, ai, gpt, machine-learning, law, copyright, business

This was only a matter of time. It’ll be interesting to see how this will unfold. Potentially it could turn into lawsuit cases being built up, it could also mean content producers get a cut down the line… of course could be both. Since FOSS code also ends up in training those models I’m even wondering if that could lead to money going back to the authors. We’ll see where that goes.

https://www.wired.com/story/stack-overflow-will-charge-ai-giants-for-training-data/


[2302.10866] Hyena Hierarchy: Towards Larger Convolutional Language Models

Tags: tech, ai, gpt, machine-learning

OK, this is a pre-print so to take with a truckload of salt. If further nice results get built up on this it could turn out interesting though. This is a much more intellectually satisfying approach than the current arm race of “let’s throw bigger models at the problem”. This has the potentially of reducing the computational complexity of those models, this is definitely welcome in term of energy and hardware requirements. Let’s wait and see…

https://arxiv.org/abs/2302.10866


Zip-NeRF

Tags: tech, 3d, ai, machine-learning

This is impressive results. Clearly much less artifacts than on previous such models.

https://jonbarron.info/zipnerf/


nvtop: GPUs process monitoring for AMD, Intel and NVIDIA

Tags: tech, gpu, tools

Nice tool for monitoring how processes use the GPU.

https://github.com/Syllo/nvtop


WebGPU Fundamentals

Tags: tech, web, webgpu, gpu, 3d

Looks like a nice reference about WebGPU. Unsurprisingly it covers some 3D basics as well.

https://webgpufundamentals.org/


Defining interfaces in C++: concepts versus inheritance – Daniel Lemire’s blog

Tags: tech, c++, performance

Shouldn’t come as a surprise if you paid attention to C++ evolutions for the past 30 years. We’re now reaping the fruits though, so it’s really become easy to keep both options in sight when designing. This is especially important for performance sensitive code.

Nothing really new here (apart from the “how easy it is these days!”)… Still it needs to be reminded on a regular basis. :-)

https://lemire.me/blog/2023/04/20/defining-interfaces-in-c-concepts-versus-inheritance/


mjg59 | PSA: upgrade your LUKS key derivation function

Tags: tech, cryptography, storage, security

This is definitely something to keep in mind and check if you have any LUKS encrypted storage. The key might be less protected than you think.

https://mjg59.dreamwidth.org/66429.html


🐧 linuxwave

Tags: tech, music, funny, linux

Looks like a funny tool to generate music.

https://orhun.dev/linuxwave/


A love letter to make - kmaasrud

Tags: tech, tools

This is indeed one of my favorite tools. Of course, I use it a bit less nowadays… still, I should have written this letter.

https://kmaasrud.com/blog/make


Keep Stuff Linkable (Crash Lime)

Tags: tech, blog, web, linking

Good reminder that links are the soul of the world wide web!

https://animaomnium.github.io/keep-stuff-linkable/


Writing for interfaces - WWDC22 - Videos - Apple Developer

Tags: tech, ux, gui

Plenty of good advises for dealing with text in interfaces. It’s a bit too much focused on phone and watch for my taste glancing over challenges specific to larger form factors. Still this can be useful to keep in mind.

https://developer.apple.com/videos/play/wwdc2022/10037/


Load Balancing

Tags: tech, web, server, performance, http

Nice post explaining the common algorithms used for load balancing. Each having their own trade offs of course. Well done with tiny simulations.

https://samwho.dev/load-balancing/


Offline Is Just Online With Extreme Latency - Jim Nielsen’s Blog

Tags: tech, networking, latency, internet

Interesting way to look at the problem, definitely thought provoking.

https://blog.jim-nielsen.com/2023/offline-is-online-with-extreme-latency/


Making a Linux home server sleep on idle and wake on demand — the simple way | Daniel P. Gross

Tags: tech, self-hosting, power

Very interesting trick, definitely something worth doing if you want to host something at home and keep the power consumption low.

https://dgross.ca/blog/linux-home-server-auto-sleep/


Evidence - Business Intelligence as Code

Tags: tech, business-intelligence, reporting, markdown, data-visualization, web

Interesting tool… this is generally done with tools where you’re captured into a GUI. Moving this to text and static generation opens the door to proper versioning etc.

https://evidence.dev/


Becoming a more self-directing Staff+ individual contributor | LeadDev

Tags: tech, leadership, management

Interesting approach to get a better understanding and awareness of your surroundings as a tech lead or lead dev.

https://leaddev.com/personal-development/becoming-more-self-directing-staff-individual-contributor


An Interview Process That Works For Me

Tags: hr, hiring, interviews

Wow, that’s a very thorough hiring and interview process. I’m not sure all organizations have the luxury to do all of it. Still plenty of interesting nuggets in there, it gave me a couple of ideas on how to reword or change some of the control questions I usually use.

https://blog.colinbreck.com/an-interview-process-that-works-for-me/


Expiring vs. Long-Term Knowledge · Collab Fund

Tags: information, knowledge

So much this. It’s important to keep in mind what will last and what is the buzz of the day. Especially since the lines between news and entertainment became so blurry.

https://collabfund.com/blog/expiring-vs-lt-knowledge/


Why do ships use “port” and “starboard” instead of “left” and “right?”

Tags: history, culture

I actually always wondered about this, now I know. :-)

https://oceanservice.noaa.gov/facts/port-starboard.html


Space Elevator

Tags: science, geospatial, funny

Very nice resource if you wondered about the journey to space.

https://neal.fun/space-elevator/



Bye for now!

Recently I started using KTimeTracker to record the time I spent working, and I really like it. So far it’s the only productivity app that meets my needs. So I began playing with porting it to Qt6. I’m weak with algorithms, but I know my way with building programs. I made a long fluff post about compilation, even. So I was feeling confident that I would make at least some progress.

Thursday, 20 April 2023

I’m happy to announce the first release of FutureSQL, a library for accessing SQLite (and other databases) in Qt projects without blocking.

It also features a migration system and automatic result deserialization.

For examples, please have a look at the README.

You can fetch the release from KDE’s download server. It is signed with my PGP key C3D7CAFBF442353F95F69F4AA81E075ABEC80A7E, which you can fetch from keys.openpgp.org.

Please let me know if you find any issues.