Skip to content

Monday, 21 March 2022

All the reasons that lay the blame for the node-ipc debacle at the feet of "open source" are, surprise, surprise, bullshit.

Sunday, 20 March 2022

Hello everyone,

this is a heads up for designers to update their KDE decorations if they want to support Blur for any of their decorations since Plasma 5.25. Let me explain you what has changed and what you need to update.

  • Blur for ALL decorations is disabled in KWin 5.25 and that fixes korners bug for all solid decorations without requiring any further actions from them.
  • C++ decorations that would like to enable blur for them they need to use KDecoration2::Decoration::blurRegions API that has been introduced.
  • Aurorae decorations that are solid they do not need to update anything in their regard.
  • Aurorae decorations that would like to enable blur they need to add a "mask" element inside their decoration.svg file. The "mask" element should have the same padding used for active and inactive decorations. Following screenshot demonstrates such "mask" element and you can also use a demonstration theme.

 


 


Friday, 18 March 2022

 KStars v3.5.8 is released on 2022.03.19 for MacOS, Linux, and Windows. This is a mostly bugfix release with a couple of exciting new features.

Faster plate-solving with StellarSolver 2.2

Robert Lancaster released StellarSolver 2.2 with significant improvements. StellarSolver is the library used by Ekos for star extraction and plate-solving. It is now so fast that sub-second plate-solves are quite common. Here are some highlights:

  • Eliminating the last external files: solved and cancel files from the internal solver
  • Making an interface between the C++ and astrometry.net logging that works well to fix logging issues
  • Making StellarSolver easier to use in a blocking way, including using it as a C++ temporary object
  • Making the convolution filter easier to generate and use as well as adding more types of filters
  • Significantly reducing the astrometry code needed for the solver
  • Adding support for a new external solver: the Watney Astrometry Solver
  • Improving the abort code so that it shuts down faster
  • Adding a number of demos to show how to use StellarSolver
  • Adding healpix and index series hints so that you can speed up solves in localized areas based on former solves
  • Making it possible to run two stellar solvers simultaneously
  • Adding some new options for star extraction
  • Making API simplifications
  • Fixing some memory leaks and other warnings on various operating systems
  • Removing some unused code

Greed is Eternal (10th Rule of Acquisition)

Hy Murveit introduced a new type of scheduling algorithm which he dubbed as the Greedy algorithm.

In both the Classic and Greedy schedulers, jobs are listed as "earlier on the job list means higher priority". With the Classic scheduler, priority is of the highest importance. It will not schedule a lower priority job until the higher priority job is done, even if that job takes several nights, and even if the higher-priority job cannot run at the current time, e.g. due to altitude/terrain/etc.  In contrast to this, the Greedy scheduler attempts to keep Ekos busy as much as possible. Although it gives priority to earlier-listed-jobs, it will run later-listed ones if the earlier one can't run. Of course, the lower priority job will get preempted when the high-priority job can finally start to run.

If you start the scheduler with only one job, there is no difference between Classic and Greedy scheduling. However, if you have more than one job, depending on your setup, there is a good chance that the Greedy scheduler will schedule more imaging time than Classic.

Here's a recommended way to try this out. Let's assume you have a main target for which you want to collect as many images as possible. Set that target up as first on the scheduler list, have it start ASAP and set its completion condition as "Repeat Until Terminated". It should be scheduled to image whenever possible (even across multiple nights) until you turn off the scheduler or Ekos. Add several other targets as well, ones that you might also be interested in, and that can be imaged in other parts of the night. Make sure those are listed below the primary target on the jobs list. Set those the same way (ASAP/RepeatUntilTerminated). They will be scheduled to run whenever the primary target can't be imaged.  Of course, make sure the twilight restriction is set for all your targets. Altitude and terrain restrictions are important as well--if Ekos doesn't know that there's a tree or house blocking your target, it can't be smart about scheduling it.

Since jobs will be preempted/restarted more often with Greedy than with Classic, the "Remember Job Progress" option is now more important.  You can find this setting in the KStars Setting Menu --> Ekos --> Scheduler --> "Remember job progress".  This option only works if you are storing images on the same machine where the scheduler is running. You should enable "Remember Job Progress" with this scheduler to get the most benefit, assuming your capture sequences use multiple/different filters. If your capture sequences are just used with one type of filter/or OSC then it probably doesn't matter. (RememberJobProgress has also be updated a bit, and should now do a better job of picking up where the last attempt finished.)

The screenshot above shows the scheduler running with this new scheme. Note that there are 4 jobs, and they are listed in order of precedence. You can see the next start times for each of the jobs on the scheduler table, and the highlighted (4th) job is the one currently running. A schedule for the next 48 hours is also printed in the log window at the bottom.


The scheduler is (minimally) integrated with Analyze. During testing I let the Greedy Scheduler run for 3 days. Here's a screenshot of the Analyze timeline for the 3 days. (Note some timelines didn't display well because of screen resolution.) The top line is the new scheduler timeline in Analyze. The different colors correspond to different jobs that were run, each one keeping its same color on different stars. You can see the different jobs ran as expected each night.

Support for Capture Format

New in this release is support for INDI v1.9.5 Capture Format selection. This was previously explicitly selected by the user in INDI Control Panel but is now available in the Sequence settings in the capture module.



Full change log

907bc629b 2022-03-15 Jasem Mutlaq         Replace repeated message with just a label update
fead0a8d4 2022-03-15 Wolfgang Reissenberger Avoid in-sequence-counter countdown when already zero
b10c443f7 2022-03-14 Robert Lancaster     Forgot Prefix path for DriverSupport
0a552226f 2022-03-14 Jasem Mutlaq         Only emit newCoord when mount is connected
e02adcf48 2022-03-14 Wolfgang Reissenberger Bugfix initial guide deviation set blocks post MF calibration
6853eec35 2022-03-14 Jasem Mutlaq         If telescope device is not defined or connected, do not process coordinates
1640c7a2b 2022-03-13 Robert Lancaster     Moving KStars Mac INDI copy instructions to cmakelists
56cd0535f 2022-03-13 Jasem Mutlaq         Add an exact parameter to findByName so that catalog component can customize its search behavior globally
64b9ec0c3 2022-03-13 Akarsh Simha         Fix  CatalogsComponent::findByName() to find only 1 exact match
0e2a3ab07 2022-03-13 Akarsh Simha         Fixes and some improvements to the "Add catalog object" UI
e22bfc6ed 2022-03-11 Akarsh Simha         Fix truncation of observing list upon adding to it from popup menu
993692eaa 2022-03-13 Akarsh Simha         Make some usability improvements, especially in the Find Dialog
9245f9b75 2022-03-12 Hy Murveit           reduce log spam
e23a7ab8c 2022-03-12 Jasem Mutlaq         Various memory leaks. Still there is definitely memory leaks when performing...
dabeeec3d 2022-03-11 Jasem Mutlaq         Fix compile on 18.04
f34bcb7d9 2022-03-11 Jasem Mutlaq         Disable event-driven setScopeStatus from INDI::Telescope since it sets m_Status which prevents the polling method from working
5033fba01 2022-03-11 Jasem Mutlaq         Fix bug that caused PAA to fail if a driver send HORIZONTAL_COORD as well
836f47c89 2022-03-11 Jasem Mutlaq         Improve Look n Feel tab
23bb6cbfd 2022-03-10 Robert Lancaster     updating to StellarSolver 2.1
f184fd378 2022-03-09 Nicolas Fella        Don't find KAuth
96ed6a6d7 2022-03-10 Jasem Mutlaq         Fix compile on Windows
755c34e96 2022-03-09 Hy Murveit           Make the test_ekos_scheduler_ops tests more stable.
860301309 2022-03-09 Jasem Mutlaq         Fix typo
abec3e796 2022-03-09 Jasem Mutlaq         Extra check
e4685108d 2022-03-09 Jasem Mutlaq         vShapeSolution should be reset in stop
d38a27b17 2022-03-08 Akarsh Simha         Whenever stars have Henry Draper numbers, make them show up as their names
21635a353 2022-03-08 Robert Lancaster     Fix memory leak
4c71e6262 2022-03-07 Jasem Mutlaq         No need to explicitly load the dark frame
50c523bdc 2022-03-07 Jasem Mutlaq         Clear pointers on disconnect
d973ffec2 2022-03-06 Robert Lancaster     Making it faster by reusing stellarsolver.
4ea60c7fe 2022-03-07 Jasem Mutlaq         Capture encoding is now fully implemented in the code along with capture format. Fix issue when setting temperature and filters in non-light frames
e1a1f7c33 2022-03-06 Jasem Mutlaq         Make it compile on 18.04
8e7fd183f 2022-03-06 Hy Murveit           change scheduler colors for analyze
146577ca6 2022-03-06 Robert Lancaster     Fixing a KHelpClient bug on MacOS
3b39d06b4 2022-03-06 Philip Mair          Fixed restoring of bin settings
134d3d8d1 2022-03-06 Yuri Chornoivan      Fix minor typos
52e0e4d1e 2022-03-06 Jasem Mutlaq         Improve tooltip and simplify UI
961575df9 2022-03-05 Robert Lancaster     Improving Tooltips
d2724f80c 2022-03-05 Jasem Mutlaq         Clear sequence array on clear sequence
24d0806b5 2022-03-02 Akarsh Simha         Fix bug due to addition of new sky culture by saving config differently
ec9448cbd 2022-03-05 Hy Murveit           New Greedy Algorithm for Scheduler
a39d48e8e 2022-03-04 Mattia Procopio      Allow to provide a custom URL to download index data from
3e5b922c1 2022-03-04 Robert Lancaster     Fixing some issues found by Jussi Saarvirta
56a377826 2022-03-03 Hy Murveit           fix maxGuidestarsHFR issue, fix test, increase max dither size
cf5db0400 2022-03-02 Robert Lancaster     Updating KStars to support StellarSolver 2.0
9f20fe9e7 2022-03-02 Jasem Mutlaq         Make minimum exposure value 1 for refresh phase
831dc2890 2022-03-02 Hy Murveit           Allow older capture sequence files
cc7225978 2022-03-01 Salman Naheed        Ekoslive dark library
bfa23a060 2022-02-28 Nate Graham          Add Release tags to AppStream metadata file
06d6c0460 2022-02-26 Nate Graham          Make default color scheme default
8fe6068e0 2022-02-24 Salman Naheed        Ekoslive dark library
5dbb32de0 2022-02-23 Hy Murveit           Unconstrain Ekos' main vertical slider
df71cbf3e 2022-02-22 Salman Naheed        Ekoslive dark library
cd1cb58cf 2022-02-22 Wolfgang Reissenberger Timer based update of mount coordinates
8c457d62a 2022-02-22 Jasem Mutlaq         Add support for INDI capture format
2de2a7d0b 2022-02-21 Akarsh Simha         Adding popular asterisms as a sky culture
bbe08f422 2022-02-21 Salman Naheed        Ekoslive dark library
46d5fd47b 2022-02-21 Hy Murveit           Change gpg period spinbox from int to double
5a04cdbaa 2022-02-19 Wolfgang Reissenberger Bugfix selecting guide deviation when guiding is not running
9071245d7 2022-02-17 Wolfgang Reissenberger Bugfix darks jobstate and #158
e23f1c33d 2022-02-16 Hy Murveit           Small bug fixes: calibration not always shown. MultiStar graphics offset by a frame.
5bd737613 2022-02-16 Jasem Mutlaq         Fix meridian flip message, should be KSMessageBox and not newLog
628cf1241 2022-02-15 Yuri Chornoivan      Fix minor typo
99410cd62 2022-02-15 Hy Murveit           Make sure SolverUtils doesn't delete a running StellarSolver
c3bd4bd40 2022-02-14 Wolfgang Reissenberger State machine for capture control | preparation phase
f60d72d9b 2022-02-14 Salman Naheed        Ekoslive dark library
f103653f4 2022-02-14 Jasem Mutlaq         Disable stellarsolver logging
59f0a1301 2022-02-14 Wolfgang Reissenberger Display of filter name corrected
22e0ec011 2022-02-14 Jasem Mutlaq         More refinement to the polynomial method. Discard bad data points.
d606ffd33 2022-02-14 Jasem Mutlaq         Check target position versus current position every N frames
76e733a3e 2022-02-13 Robert Lancaster     removing setLoadWCS in another spot
80eabfa07 2022-02-12 Jasem Mutlaq         Change default guide exposure to 2 seconds
0fd94a4a5 2022-02-11 Hy Murveit           guider bugfix, firstframe improperly set
dd1c4becb 2022-02-10 Jasem Mutlaq         Allow send module frame to send from dark library
be665df18 2022-02-10 Hy Murveit           Check position after captures
ce83f275f 2022-02-08 Jasem Mutlaq         INDI drivers sync
d9e30a0fe 2022-02-08 Jasem Mutlaq         Remove check for parking time over 12 hours since it is acceptable if within 24 hours
6978d77d9 2022-02-08 Robert Lancaster     Removing WCS Coord disabling line
1ba2464c3 2022-02-07 Hy Murveit           Changes needed for upcoming Indi AstroPhysics driver
e40d833de 2022-02-05 Hy Murveit           guider cleanup and bugfix
b831c904e 2022-02-05 Hy Murveit           Add developer options tab, add option to save internal guider images.
62a551549 2022-01-31 Jasem Mutlaq         Catalog search should not be limited so that we can check for multiple identifiers
9305fe2b2 2022-01-31 Hy Murveit           Analyze: update graphics plot for completed capture or focus if latest is checked
3a778dc16 2022-01-27 Jasem Mutlaq         Increase test timeout
1c8e607e9 2022-01-27 Hy Murveit           Adjust dbus interfaces and paths to allow test_ekos_scheduler_ops tests to...
0515257a7 2022-01-27 Hy Murveit           Min #detections to initialize SEP MultiStar
6a5a96382 2022-01-26 Hy Murveit           add missing signal to analyze for focus restarts
0f2a4c951 2022-01-26 Jasem Mutlaq         Fix wrong arg
55b462887 2022-01-25 Toni Schriber        Standardized dialog for guider 'Control Parameters' &'Other Settings'
35236a51c 2022-01-23 Jasem Mutlaq         Check if regionItem is null
b3114467b 2022-01-23 Jasem Mutlaq         Fix issue in treating calibration frames since we used to only check a single channel whereas we were supposed to check all three
8808d3309 2022-01-23 Jasem Mutlaq         Add else for multiple channels
1efbbc7cc 2022-01-22 Robert Lancaster     Adding translations to Mac prebuild
6dafdc27b 2022-01-21 Jasem Mutlaq         Fix bug where filter is sometimes not set in camera or dustcap drivers unless it is set explicitly by the user by selecting it from the dropdown. No..
003a29faa 2022-01-21 Jasem Mutlaq         Fix issue when saving dark flats with sub-second exposures as we need to update the full prefix if duration was selected
0032701b6 2022-01-21 Jasem Mutlaq         Invalidate download timer to avoid bogus reports
18174ad1c 2022-01-21 Jasem Mutlaq         Reduce threashold to 1000ms
ff1ac9cfe 2022-01-21 Salman Naheed        Add generate dark flats to EkosLive
0ecfd135b 2022-01-20 Jasem Mutlaq         Make it so it is possible to create a 1x1 mosaic for purposes of framing
0f5c633c5 2022-01-20 Jasem Mutlaq         Update sequence prefix for ADU-calculated flat frames since full prefix can...
36e47a522 2022-01-20 Jasem Mutlaq         Set Focus module to the filter of the first light job in the sequence so that...
7c0807ad4 2022-01-19 Jasem Mutlaq         Starting KStars v3.5.8 development cycle
06277101e 2022-01-18 Jasem Mutlaq         INDI drivers sync
2e8345b8f 2022-01-17 Jasem Mutlaq         Improve message when failing to establish connection for remote devices
6f94491d3 2022-01-17 Jasem Mutlaq         Move options before ekoslive


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


Court affirms it’s false advertising to claim software is Open Source when it’s not

Tags: legal, free-software

This is a welcome and necessary clarification. Now there is a court decision clarifying what using the “Commons Clause” mean.

https://opensource.org/court-affirms-its-false-advertising-to-claim-software-is-open-source-when-its-not


Why does Google get internationalization wrong? | Smaller Fish

Tags: tech, web, internationalization

The mess of internationalization with websites doing it wrong.

https://smaller.fish/posts/language


Probably Wrong

Tags: tech, scrum, craftsmanship, tests, object-oriented

Very good reminder that as an industry we’re quick to blame external factors for our own failures. Of course we can be given a bad hand, but sometimes we’d have failed with a good hand as well.

https://ronjeffries.com/articles/-z022/0222ff/probably-wrong/


How to design better APIs

Tags: tech,, web,, api

Nothing groundbreaking regarding web service APIs, but a very reasonable list nonetheless.

https://r.bluethl.net/how-to-design-better-apis


Physically Based Rendering: From Theory to Implementation

Tags: tech, 3d, physics, pbr, shader

Looks like a very good resource about PBR.

https://www.pbr-book.org/3ed-2018/contents


H.264 is magic: a technical walkthrough of a remarkable technology.

Tags: tech, video, codec, compression

Nice higher level view of how a codec like H.264 works. Not really dive in the intricate details specific to H.264 though.

https://sidbala.com/h-264-is-magic/



Bye for now!

Tuesday, 15 March 2022

In my previous blog, I mentioned the initialization of the Left / Right click activity inside GCompris and its basic layout.

Since my last blog, there has been significant progress. With the help of mentors Allon, Timothee, Johnny, and Harsh, I have solved the random placing of animal cards, avoiding overlapping issues.

Update on tasks mentioned in my previous blog

Animal cards issue

The cards had to be randomly placed on the screen. So, the first solution was to count the total number of visible cards and then choose the positions to display them. If the position is already occupied, we find another position. But, this isn’t the optimal way. The other way to achieve random placement is to use the fititems function in the core. It takes the container’s height and width and the number of elements we want to display as arguments and returns the optimal size of the element. This way, it makes animal cards responsive (adaptive to the screen). We also want to have some blank cards on the screen, where we don’t want any animals to be displayed. After storing all the cards in an array, I shuffled it using the shuffle function in the core, making the cards’ order random. Are you still wondering why we created invisible cards? The answer is simple. We need them to appear anywhere inside the container so that these hidden cards will create a random spacing between two visible cards.

Removing hard coding

Initially, the placement of the animal card inside the house was relative to the whole screen. However, it was not the best idea. I changed the parent of animal cards to animal houses to improve this. The animal card will follow wherever the house is placed, just like they do in real life :D.

Current Progress

The placement of the animal houses is dynamic now. The placement of the animal card container (the lower part of the screen) is also dynamic. As advised by my mentors, I found already existing images of trees, monkeys, and horses. We prefer reusing assets to save space. The activity is fully functional and ready to play. Animals will only move if we use the correct mouse button. I’ve also added the reload button for the activity.

Image from Week 4:-

Here’s an image of the progress so far:

What next?

– Add multiple datasets. Currently, it’s a single-level activity.

– Improve the in-display mouse, which gives us feedback for every click and a red cross if a wrong button is pressed.

– Improve the animation code.

– Clean code, make it ready to be merged.

Thank you for taking out the time to read this. 🙂

Monday, 14 March 2022

Hello everyone, I am currently working on KConfig bindings for Rust as a part of the Season of KDE 2022. The wrappers for most of the significant aspects of KConfig are complete, so I decided to rewrite the Introduction to KConfig Docs in Rust. The bindings are still not stable and will probably change before the end of the Season of KDE. Still, this post should also help me test out the bindings outside tests. The kconfig bindings can be found here. …

Sunday, 13 March 2022

I’ve revisited toolbox recently, and I had forgotten how much I liked the tool the last time I tried it. Podman is a technology developed by Red Hat for managing containers, its most used commands are identical to docker’s, it’s daemonless (so you don’t have a systemd service running all the time, your containers simply run on demand and you can’t have a single service borking down all of your containers) and rootless (no root required to manage them).

Saturday, 12 March 2022

My blog post writing delay is huge right now, sorry for that, but here it finally is: the writeup of the typewriter technology I experimented with in January.

This is about a SIGMA SM 8200i typewriter, which my parents gave to me for entertainment purposes when I was a child. Now that I’m older, the entertainment has shifted more towards the technical internals.

When we talked about teletype technology at my local university hackerspace, Spline, I remembered the typewriter had a 26-pin connector. After some research, I learned that the machine is basically an Erika S3004, one of the most popular typewriters of the GDR, in a different case. With this new knowledge, I was able to find a table of commands which can be sent and received from the device.

The 26-pin connector is a port used in the GDR, which speaks a faily standard rs232 protocol, with a baud-rate of 1200. In fact, the USB TTL adapter I usually use for routers, worked on it after some creative wiring.

Version 1.0 of the typewriter interface
The initial attempt at connecting, with lots of tape and no proper connector

The commands that can be sent and received over the serial interface can be separated into two groups: control codes and character codes. Unfortunately the typewriter does not support unicode … or ASCII. So the first step was encoding and decoding the “gdrascii” codec, like the Chaostreff Potsdam people like to call it. Luckily, I could just do a pretty-much 1:1 translation of the python code from Chaostreff Potsdam into rust.

For those interested in rust: The new gdrascii_codec crate exposes mostly const API, which allows to write strings in unicode in the source code for readability, but already translating them into gdrascii at compile time.

After also implementing the control codes from the table, plus some glue code for opening the serial connection with the correct parameters, I could do the first prints.

Printing Tux

The second feature I wanted to support was keyboard input, since the typewriter supports a mode in which it sends keyboard input over the serial connection instead of printing it. This was quite easily possible using the linux kernel uinput API. The only complication was, that the typewriter already sends ready made character codes, but the linux kernel expects to receive raw keypresses.

For the character “L”, the Linux kernel expects “(Left Shift or Right Shift) + L”, so this could just be translated back.

Tooting from the typewriter

Once that was all done, I ordered a proper connector so that I could easily put everything back together after putting it in the drawer.

Version 2.0 of the typewriter interface
The final result, with a proper connector

As always, the source code is open source. This time I published it on Codeberg, together with some documentation on how to wire the device to a serial adapter.

And for those wondering what this project was useful for: probably nothing 😁. It’s just cool that technology from such different times still works together so well.

Friday, 11 March 2022

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


Wartime Is a Bad Time To Mess With the Internet | Electronic Frontier Foundation

Tags: tech, internet, war

This would indeed be a very slippery slope…

https://www.eff.org/deeplinks/2022/03/wartime-bad-time-mess-internet


Laurent Bossavit : “Les démarches agiles impliquent une forme de rébellion” | Tribunes | Acteurs Publics

Tags: tech, state, agile, coaching

Article in French

Excellent article in French from one of the most influential people of the agile community in France. He delivers an interesting story about how state agencies started to apply some of the agile values and principles but how unfortunately this wave is already receding.

https://acteurspublics.fr/articles/laurent-bossavit-les-methodes-agiles-impliquent-une-forme-de-rebellion


Deep Learning Is Hitting a Wall

Tags: tech, ai, machine-learning, neural-networks

At last we might wake up from the “deep learning alone can solve every problems” fantasy. Looking forward to seeing human interactions and symbol manipulation come back in the AI field. Finding ways to pick and mix approaches is essential. Otherwise it’s meant to stagnate and lead to industrial hazards.

https://nautil.us/deep-learning-is-hitting-a-wall-14467/


Infer Static Analyzer | Infer | Infer

Tags: tech, java, c++, static-analyzer

Looks like an interesting static analyzer, I guess I’ll try to use it on a couple of projects.

https://fbinfer.com/


WebGPU — All of the cores, none of the canvas — surma.dev

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

Interesting introduction into WebGPU. Nice to see it’s not quite Vulkan because some abstraction is needed in the browser (although, of course the approach is similar). There’s also a couple of design choices which are welcome to improve portability.

Now let’s hope it gets stable and widely supported soon.

https://surma.dev/things/webgpu/


Barcode Detection API - Web APIs | MDN

Tags: tech, web, browser, barcode

We’re really getting everything in the browser these days, even barcode detection.

https://developer.mozilla.org/en-US/docs/Web/API/Barcode_Detection_API


Things I hate about Rust, redux

Tags: tech, programming, rust

Interesting and fair list of pain points around Rust. This is a change from the pure fan boy articles we see most times.

https://blog.yossarian.net/2022/03/10/Things-I-hate-about-Rust-redux


Refactoring, a Whole-Team Guide - XP123

Tags: tech, programming, refactoring

Good primer on refactoring, I especially appreciate the big fat warning about language erosion… the number of times I hear “refactoring” for something which is not a refactoring at all…

https://xp123.com/articles/refactoring-whole-team-guide/


Stop Venting! It Doesn’t Work.

Tags: psychology, criticism

Interesting research explained. Apparently it’s more than time to put the catharsis hypothesis to rest.

https://slate.com/technology/2022/03/venting-makes-you-feel-worse-psychology-research.html



Bye for now!

Thursday, 10 March 2022

Hello!

This is my fourth status update for Season of KDE 2022.

In my last post I told how packaging was almost done and I was looking out to automate updates.

Finalizing the checker data

There are multiple backends that can be used with Flatpak External Data Checker. I initially planned to use the HTML checker, for it seemed logical at that time. But by the time I finalized it, I was already gravitating towards Anitya Release Monitoring. Since Anitya already has version tracking for most packages, it seemed a bit easier than the HTML checker. With Anitya, all I need to know is the project id, which is just a simple search on their website.

The packages that don't exist on Anitya are quite easy to submit. A Fedora account is all it takes. (you can use any Open ID). For example, I added Falkon on Anitya.

Roadblocks

There are certain corner cases where FEDC didn't work as expected. GPGME is the first example. The download server for GPGME is incorrectly setting Content-Encoding as text/*, which FEDC discards, as it could be an error page. The right way out will be to get GPGME developers in the loop and inform them of this issue.

Another package, SQLite, uses the current year in its URL, making it difficult to predict via a script.

Experimenting with GitHub Actions

I made a test repository to demonstrate the working of FEDC via a GitHub action. We were planning to get an access token added to KDE repos on Flathub GitHub organization so that we could utilize our GitHub Action. One of my submissions had erroneous checker data. It went unnoticed, until the Flathub bot made an unexpected pull request on a repo. That made us realise that we don't actually need to add an access token. Flathub runs the updater and makes pull requests automatically.

Happy accident!

So, all I am required to do is to add checker data to as many manifests as possible. The update for 21.12.3 was done manually, but the updates next month should be mostly automated!

Links to all my pull requests are at end of this post.

Next steps

I plan to add checker data to all the remaining applications (~80) in the next 2-to 3 days. I'm also parallelly looking over to use FEDC on KDE Invent to automatically update non KDE dependencies on master manifest repo.

Adding checker data

Updates for 21.12.3

I will see you in next post with more updates!