Skip to content

Sunday, 26 May 2024

Journey to Vietnam

Embarking on my journey to FOSSASIA 2024, I felt a mix of excitement and anticipation. As I boarded my flight, the reality of the adventure ahead began to sink in. I arrived early in the morning on April 7th, filled with enthusiasm and a bit of jet lag, ready to dive into the vibrant culture of Vietnam and the exhilarating events planned for the conference.

Arrival in Hanoi

Landing in Hanoi, I was greeted by the warm, humid air and a bustling airport scene. I quickly hopped onto Bus Express 86, which conveniently took me from the airport to the heart of the city. The ride itself was a mini-tour, offering glimpses of Hanoi’s unique blend of traditional and modern architecture. My destination was Hotel LakeSide, where I was warmly welcomed and offered an early check-in at no extra cost—a gesture that felt like a blessing after a long flight. The hotel staff’s generosity allowed me to freshen up and catch a few hours of much-needed sleep before the scheduled Hanoi City Tour organized by FOSSASIA.

A special shout-out goes to Lily’s Travel Agency for arranging an amazing stay throughout the conference days. For transportation, I relied on Grab, a widely used cab application in Vietnam similar to Uber. Despite the language barrier, the local drivers were exceptionally supportive and always willing to go the extra mile, which made commuting around the city a breeze.

Exploring Hanoi

By 2 pm, I was ready for the city tour, excited to explore Hanoi’s rich history and culture. Our itinerary included visits to the One Pillar Pagoda, the Temple of Literature & National University, and the Imperial Citadel of Thang Long. Each site was more breathtaking than the last, steeped in history and surrounded by lush greenery. It was a day filled with fun, laughter, and new friendships. We shared stories, took countless photos, and even indulged in some silly antics that added a touch of whimsy to the day (try to find it in the photos!).

After the tour concluded around 7 pm, we split into groups to find dinner. I joined a few new friends for a delicious meal at a local restaurant, savoring the flavors of authentic Vietnamese cuisine. Later, I met Phu Nguyen, a KDE contributor from Hanoi, to collect a monitor for our booth. Phu, who works in Germany, couldn’t attend the event but was incredibly helpful in providing the display. With the monitor in hand, I returned to my hotel, reflecting on a day well spent and eagerly anticipating the start of the conference the next day.

Conference Kickoff

Each morning began with a hearty breakfast at the hotel, overlooking the serene Giang Vo Lake. Armed with hardware, promotional materials, and stickers, I set off for the Posts and Telecommunications Institute of Technology, where FOSSASIA 2024 was held. The venue buzzed with excitement, as hundreds of students and tech enthusiasts gathered around, curious about the event.

Our Booth: The Focal Point

Our booth, strategically placed next to FSFE, COSCUP, and CalyxOS, quickly became the busiest spot at the venue. With the invaluable help of Aniqa and Paul from the KDE promo team, we had an impressive setup that drew in crowds continuously. Aniqa and Paul were instrumental in organizing the booth, ensuring we had everything we needed, and providing ongoing support throughout the event. Tomaz joined us on the first day, bringing a reMarkable tablet and his personal laptop to enhance our setup. Our booth was a vibrant hub of activity, attracting attendees with emulations of Nintendo games and Tomaz’s impressive origami skills. He exchanged his intricate origami creations for discussions about KDE, engaging many curious students.

Engaging with the Community

The conference was a vibrant hub of activity, featuring organizations such as FreeCAD, AlmaLinux, and fossunited. It was inspiring to see the diversity of projects and the passion driving each community. Our booth quickly became the most popular, with attendees lining up to learn about KDE’s latest projects and initiatives. Despite most attendees being college students with limited funds, their enthusiasm for KDE was overwhelming. Tomaz’s origami talent truly stood out, drawing significant attention and sparking numerous conversations about open-source software and community contributions.

Walking through the venue, I marveled at the variety of booths and the innovative projects on display. The FreeCAD team showcased their latest developments in open-source CAD software, while AlmaLinux representatives engaged attendees with their enterprise-grade Linux distribution. fossunited’s booth was a hive of activity, emphasizing their mission to promote and support open-source projects in India. Each interaction was a learning opportunity, and the camaraderie among the open-source communities was palpable.

Evening Get-Togethers

Evenings were spent exploring the local culture, including a memorable Evening Get Together at Ta Hien Beer and Food Street. The lively atmosphere, coupled with delicious street food and refreshing drinks, made for perfect networking opportunities and deepened the bonds formed during the day. The conference days were a whirlwind of activity, leaving us with lasting impressions and numerous connections.

Sapa Valley Trek and Farewell

After the conference, I ventured to Sapa Valley for a three-day trek. The journey was a stark contrast to the bustling city, offering a tranquil escape into nature. Walking among the rice paddies, often alongside local farmers, and soaking in the serene landscape was a rejuvenating experience. The trek left me with fond memories of the picturesque valley, the warmth of the local people, and the breathtaking beauty of Vietnam’s countryside.

I returned on April 15th, with a heart full of memories and a mind brimming with inspiration from FOSSASIA 2024. The conference not only highlighted the incredible work being done in the open-source community but also showcased the rich culture and hospitality of Vietnam. Reflecting on the experience, I felt a deep sense of gratitude and excitement for the future.

I want to extend my heartfelt thanks to KDE e.V. for sponsoring my attendance at this event. Their support made this enriching experience possible, and I am profoundly grateful for the opportunity to represent the KDE Community at FOSSASIA 2024. Until next time, FOSSASIA!

Gallery

Some time ago I quickly wrote a little utility to render XRechnung documents on the free desktop, called XRView. This is the initial Bogpost. It was a very fundamental Qt Widget app that shows e-invoice docs that come in the XRechnung XML format, in a human readable view.

It was never properly released, so recently I decided to wrap it up and finally cut a first release which people can find on the release page on Codeberg.

Technically it uses the XSLT stylesheets provided by Kosit and calls an external java process on the local machine to run that through a specific Saxon processor. For that, XRView requires a java runtime installed.

Since the setup of these dependencies is a bit cumbersome, the new release 1.0 does that for users. It downloads the stylesheets and also the saxon processor runtime from their upstream repositories and stores them on the local machine for future use. Of course it is strongly recommended to double check the downloaded resources for their validity and integrity and not to run software that some other code downloaded.

More new features in this first release are:

  • internationalization, first available language is German
  • a rudimentary application menu with about dialog and such
  • the setup routine as described above

Note that this is the first release of the software. Yet, I think it is useful, and a interesting starting point for further activities in this area. As XRechnung will become a mandatory standard for all companies in Germany (at least) I think it is very important to have a free software alternative. There are already many commercial offerings.

However, I am not feeling to develop and maintain this as an “one man show” forever. Being kind of frustrated about the way how free software is often consumed nowadays, I will happily continue to contribute to it if there is more interest than “gimme for free” by other people or organizations.

Let’s see if this is heading somewhere :-)

Saturday, 25 May 2024

Hindi Translation of Merkuro - Season of KDE 2024 In this blog, I will discuss my experience with season of KDE 2024. I came to know about this program through a youtube video. I was given some pre tasks to complete by the mentors of the project which can be found at https://github.com/officialasishkumar/translation-kde-applications. After completing the pre-tasks, I applied for the project and eventually got selected. During my SoK period, I have to translate Merkuro, KDE connect, KTorrent and Cantor in Hindi.

Friday, 24 May 2024

Let’s go for my web review for the week 2024-21.


Gender bias in open source: Pull request acceptance of women versus men

Tags: tech, foss, bias

A bit too GitHub centric for my taste. Still it shows some unwarranted bias, especially when outsiders to a project are identified as women. We should do better.

https://www.researchgate.net/publication/308716997_Gender_bias_in_open_source_Pull_request_acceptance_of_women_versus_men


BitKeeper, Linux, and licensing disputes: How Linus wrote Git in 14 days

Tags: tech, foss, version-control, linux, git, history

The often forgotten history behind the creation of Git. This article does a good job summarizing it.

https://graphite.dev/blog/bitkeeper-linux-story-of-git-creation


Pluralistic: The Coprophagic AI crisis

Tags: tech, ai, machine-learning, gpt, data

The training dataset crisis is looming in the case of large language models. They’ll sooner or later run out of genuine content to use… and the generated toxic waste will end up in training data, probably leading to dismal results.

https://pluralistic.net/2024/03/14/inhuman-centipede/#enshittibottification


Google Is Paying Reddit $60 Million for Fucksmith to Tell Its Users to Eat Glue

Tags: tech, ai, machine-learning, gpt, google, data, quality

No, your model won’t get smarter just by throwing more training data at it… on the contrary.

https://www.404media.co/google-is-paying-reddit-60-million-for-fucksmith-to-tell-its-users-to-eat-glue/


How DeviantArt died: A.I. and greed turned a once-thriving community into a ghost town.

Tags: tech, ai, machine-learning, art, social-media, criticism

This is indeed sad to see another platform turn against its users. This was once a place to nurture young artists… it’s now another ad driven platform full of AI made scams.

https://slate.com/technology/2024/05/deviantart-what-happened-ai-decline-lawsuit-stability.html


OpenAI departures: Why can’t former employees talk, but the new ChatGPT release can? - Vox

Tags: tech, ai, machine-learning, gpt, criticism

Open is unsurprisingly only in the name… this company is really just a cult.

https://www.vox.com/future-perfect/2024/5/17/24158478/openai-departures-sam-altman-employees-chatgpt-release


New Windows AI feature records everything you’ve done on your PC | Ars Technica

Tags: tech, microsoft, windows, security, privacy

This is completely nuts… they really want to unleash a security and privacy nightmare. The irony is that it does respect DRM content on the other hand, we can see where the priorities are.

https://arstechnica.com/gadgets/2024/05/microsofts-new-recall-feature-will-record-everything-you-do-on-your-pc/


A Grand Unified Theory of the AI Hype Cycle

Tags: tech, ai, machine-learning, gpt, hype

Definitely this, it’s not the first time we see such a hype cycle around “AI”. When it bursts the technology which created it is just not called “AI” anymore. I wonder how long this one will last though.

https://blog.glyph.im/2024/05/grand-unified-ai-hype.html


A Plea for Sober AI | Drew Breunig

Tags: tech, ai, machine-learning, gpt, hype, criticism

Definitely too much hype around large models right now. This over shadows the more useful specialized models.

https://www.dbreunig.com/2024/05/16/sober-ai.html


Bing outage shows just how little competition Google search really has | Ars Technica

Tags: tech, google, microsoft, web, search

We’re still fairly dependent on just two major web indices… time for an index built as a common for everyone to use?

https://arstechnica.com/gadgets/2024/05/bing-outage-shows-just-how-little-competition-google-search-really-has/


stract: web search done right

Tags: tech, web, search

Looks like an interesting new search engine.

https://github.com/StractOrg/stract?tab=readme-ov-file


The curious case of the missing period - Tjaart’s Substack

Tags: tech, email, debugging

Fascinating bug… the fine details of mundane protocols like SMTP can sometimes be surprising.

https://tjaart.substack.com/p/the-curious-case-of-the-missing-period


Firefox bookmark keywords for faster navigation

Tags: tech, firefox, bookmarks

Interesting Firefox feature I didn’t notice. Looks fairly nice, I’ll use it more.

https://blog.meain.io/2024/firefox-bookmark-keywords


CADmium: A Local-First CAD Program Built for the Browser

Tags: tech, web, frontend, cad, physics, mathematics

This gives a good idea of the important parts in a CAD program. It also list a few of the usable libraries to build one such program in the browser.

https://mattferraro.dev/posts/cadmium


WebAssembly: A promising technology that is quietly being sabotaged

Tags: tech, webassembly, server

Where WebAssembly is, and where WebAssembly on the server is going… let’s hope it doesn’t become another CORBA.

https://kerkour.com/webassembly-wasi-preview2


Hartwork Blog · Clone arbitrary single Git commit

Tags: tech, git, ci

Neat trick, especially useful for CI uses.

https://blog.hartwork.org/posts/clone-arbitrary-single-git-commit/


Writing commit messages

Tags: tech, version-control, writing, communication

Very extensive guide on writing better commit messages. This is important, it’s a very central communication mechanism with other developers.

https://www.chiark.greenend.org.uk/~sgtatham/quasiblog/commit-messages/


UI Density || Matthew Ström, designer-leader

Tags: tech, gui, ux

Interesting discussion about UI density. What are we talking about? Is there value to is? Which aspects of a UI are impacting it? The conclusion makes it all very clear.

https://matthewstrom.com/writing/ui-density/



Bye for now!

Plasma Wayland Protocls 1.13.0 is now available for packaging.

This adds features needed for the Plasma 6.1 beta.

URL: https://download.kde.org/stable/plasma-wayland-protocols/
SHA256: dd477e352f5ff6e6ac686286c4b22b19bf5a4921b85ee5a7da02bb7aa115d57e
Signed by: E0A3EB202F8E57528E13E72FD7574483BB57B18D Jonathan Esk-Riddell jr@jriddell.org

Full changelog:

  • plasma-window-management: add a stacking order object
  • output device, output management: add brightness setting
  • outputdevice,outputconfiguration: add a way to use the EDID-provided color profile
  • Enforce passing tests
  • output device, management: change the descriptions for sdr gamut wideness

Wednesday, 22 May 2024

gcompris 4.1

Today we are releasing GCompris version 4.1.

It contains bug fixes and graphics improvements on multiple activities.

It is fully translated in the following languages:

  • Arabic
  • Bulgarian
  • Breton
  • Catalan
  • Catalan (Valencian)
  • Greek
  • Spanish
  • Basque
  • French
  • Galician
  • Croatian
  • Hungarian
  • Italian
  • Lithuanian
  • Malayalam
  • Dutch
  • Norwegian Nynorsk
  • Polish
  • Brazilian Portuguese
  • Romanian
  • Russian
  • Slovenian
  • Swedish
  • Turkish
  • Ukrainian

It is also partially translated in the following languages:

  • Azerbaijani (97%)
  • Belarusian (86%)
  • Czech (95%)
  • German (95%)
  • UK English (95%)
  • Esperanto (99%)
  • Estonian (95%)
  • Finnish (94%)
  • Hebrew (95%)
  • Indonesian (99%)
  • Macedonian (90%)
  • Portuguese (95%)
  • Slovak (83%)
  • Albanian (99%)
  • Swahili (99%)
  • Chinese Traditional (95%)

You can find packages of this new version for GNU/Linux, Windows, Android, Raspberry Pi and macOS on the download page. This update will also be available soon in the Android Play store, the F-Droid repository and the Windows store.

Thank you all,
Timothée & Johnny

Monday, 20 May 2024

In Plasma, when the user wants to do some significant layout change in the desktop, such as adding, moving or removing panels or add and manage desktop widgets, will go in the so called “edit mode”, by a context menu entry when driven by mouse, or by long-press in the desktop when driven by touchscreen.

Let me introduce you the improved edit mode workflow Plasma 6.1 will have:

An “edit mode” is necessary because since is an operation potentially destructive, we really want to avoid the user to for instance remove their own taskbar or some similar operation by mistake, during day to day use.

“Modes” in UI are a delicate thing: they have advantage as well many possible problems, which come in when it’s not immediately clear in which mode the user is in, and can try to use the UI as it was “in the other mode” (see https://www.nngroup.com/articles/modes/ as a quick introduction on advantages and disadvantages of modes).

This was a bit of a problem of the edit mode in plasma, as the edit mode was not clearly visually separated with the normal UI workflow of the day to day plasma usage.

Another problem present was that the action buttons of the edit mode toolbar were often hidden away by either the panel configuration window or the add widgets sidebar.

This new mode zooms out the desktop with the same visual effect of the window overview effect (yay for consistency), to well differentiate between normal and edit mode. Using the same zoom effect it puts the whole desktop “out of the way” when either the add widget sidebar of the panel configuration window appear, making sure the whole desktop area is always reachable, applets can be dropped anywhere in the desktop and the edit mode toolbar is always completely accessible.

Sorry to annoy you, I would prefer not to deal with politics either, but considering that Mastodon recently lost its status as a nonprofit organisation in Germany without an explanation we cannot ignore that there very much is a direct impact of politics on what we do.

As someone who is collaborating with an international group of nice and smart people every day, it might not come as a surprise that I am opposed to all those parties that keep blaming migration and foreigners for every political failure. Let us try to support the innocent people who are being attacked by terrorist groups or nations. Way too many parties are hostile towards people who try to have a happy, honest life while ignoring or understating the importance of fair taxation and reducing greenhouse gas emissions.

You might say: “But all the parties are corrupt!” – Well, true. In every group there is a share of psychopaths. We even have some in KDE! (Surprisingly few though!) This should not deter you from contributing. Please be the change you want to see in the world and vote for the party that sucks the least! Or don't, it's your life and I am not your mom. Thanks for reading. :^)

A few weeks ago (Time flies!) I attended the KDE Goals Sprint in Berlin. I didn't have concrete plans, but I intended to look into accessibility. Quite some time ago I had improved the accessibility of Kleopatra and at Akademy 2023 in Thessaloniki I gave a talk about it. Back then I had taken the easy route fixing everything directly in Kleopatra and working around several issues in Qt instead of fixing the issues in Qt itself so that all apps could profit. Time to do something about it.

(In-)Accessible icon-only buttons

A common problem for accessibility is icon-only buttons. If a button doesn't have text then screen readers can only tell their user that there's a button. That's not very helpful. Sometimes the developers have at least assigned a tool tip to the button. This can be read out by the screen readers (Qt provides the tool tip as accessible description of the button.), but it's often too verbose. To make a button without text accessible the developer has to set the accessible name property of the widget or, in case of a Qt Quick app, the name property of the Accessible QML Type. Unfortunately, that's often forgotten if the UI isn't designed with accessibility in mind.

At the sprint I discussed several ideas with other participants to help developers remember to set the accessible name:

  • A helper class to instantiate in your app which inspects the app's windows and prints a report at the end with all inaccessible icon-only buttons it has found. A bit like Qt's QAbstractItemModelTester or the different compiler sanitizers. I implemented a prototype of such a class, but didn't pursue this further. The downside of this approach is that the developer needs to open each window of the app to find all inaccessible buttons. If they are already aware of the problem then it's probably easier to search the code.
  • Instead of using a helper class to inspect the widget tree from the inside one could inspect the accessibility tree of the app from the outside. This could be built into our Appium-driven UI test framework so that developers don't have to do anything special. Except that they need to write UI tests that open each and every window of their app. I think it's still worth to look into this.
  • Last but not least, we pondered writing a clazy test. Thinking about the many different ways a text can be set on a button (e.g. with KGuiItem::assign) we doubted that it would be feasible to write such a test.

In the end the easiest approach could be education. If the developers are aware of the problem then there's a good chance that they remember to set an accessible name the next time they add an icon-only button to their app.

Accessible date/time inputs

Volker, Carl, David, Harald and me discussed and explored some ideas to make the date and time inputs in Qt Quick apps like Itinerary accessible. In Kleopatra I resorted to allow the user to enter the date in a simple text input instead of trying to make the complex UI of KDE's date picker accessible. Read Volker's blog and David's blog to find out which solutions they found for Qt Quick apps.

A small automation interlude

One advantage of sitting with other people in the same room is that you may overhear them talking about a mistake (e.g. a faulty commit) and you know exactly how to prevent this kind of mistake in the future. In this case the problem was a missing quote character in some YAML file. And the preventive measure was adding a YAML linter CI job. While I was at it I removed some unnecessary code from the CI job and added the job to a second repository.

List views with underlying multi-column model

In several widgets that show or use a simple list of items Qt allows using a model with multiple columns, e.g. QListView, QComboBox, QCompleter. In general this works well except that Qt has a long-standing bug: When navigating through the list screen readers read the entries of the underlying model column by column instead of reading only the entries in the selected model column (QTBUG-33786). In Kleopatra I worked around this bug with a proxy model which pretended that the model only had one column.

During the sprint I finally sat down and prepared a fix for Qt. For better readability I split my changes in five separate commits which resulted in five separate patches for Qt: 556857, 556858, 556859, 556860, 556861. Being used to multi-commit MRs in GitLab I wondered if I had done something wrong when I submitted my changes, but apparently that's Gerrit's way of handling patch reviews. The first two commits are code clean-ups, the third commit changes one aspect of the accessibility test for list views, the fourth commit is the actual fix, and the fifth commit adds a few more unit tests I find useful. The first three commits have been merged, but the actual fix is still waiting for a review.

After that I looked into the problem that QListView emitted an accessibility focus event when the current item changed even if the list view didn't have focus. I found out that this had been fixed recently by a fellow Qt contributor who ran into the same problem independently of me. This meant that I could remove the workaround in Kleopatra for new enough Qt.

Thanks to MBition for hosting us and to Aleix for making sure we don't starve. And many thanks to those donating to KDE which makes these sprints possible.

Sunday, 19 May 2024

This is a brief overview of the project that I will be doing this summer as part of Google Summer of Code.

As the title of this post says, I will create Python bindings for KDE Frameworks. There are more than 70 libraries, so the aim is to add support for three of them: KWidgetsAddons, KCoreAddons and KI18n. As predicting how much time we’ll need for each one is a little bit complex, I might end adding support to other libraries if the time allows.

To create the library we’ll use Shiboken, a tool originally created to generate the Python bindings of Qt (PySide6), but it can also be used with non-Qt code. The plan is to have the library be built automatically by the CI on invent.kde.org. I will also add documentation and examples on how to use it.

I still need to figure out a name for the Python library that we hope to upload to PyPI once it becomes usable.

The project is mentored by Carl Schwan, who also proposed the idea.