RSSAmplifier

Blog

Hub's wlog

figuiere.netRSS feed ↗35 posts

Latest posts

Dev Log September 2025

Not as much as I wanted to do was done in September. libopenraw Extracting more of the calibration values for colour correction on DNG. Currently work on fixing the purple colour cast. Added Nikon ZR and EOS C50. ExifTool Submitted some metadata updates to ExifTool. Because it nice to have, and also because libopenraw uses some of these autogenerated: I have a Perl script to generate Rust code…

Dev Log August 2025

Some of the stuff I did in August. AbiWord More memory leaks fixing. gudev-rs Updated gudev-rs to the latest glib-rs, as a requirement to port any code using it to the latest glib-rs. libopenraw A minor fix so that it can be used to thumbnail JPEG file extracting the preview. Released alpha.12. Converted the x-trans interpolation to use floats. Also removed a few unnecessary unsafe blocks. Niepce…

Dev Log July 2025

AbiWord Working on rebasing and finishing an "old" patch from Michael Gorse that implement accessibility in AbiWord. While the patch is a few years old, it's perfectly rebasable. Pushed a lot of code modernisation on master, as well as various memory leaks and crashes on stable. Released 3.0.7 (tag, and flatpak build). 3.0.8 might come soon as I'm backporting more crashers that are…

Dev Log June 2025

May and June in one convenient location. libopenraw Released 0.4.0.alpha10 After that, added Nikon Z5 II and P1100, Sony 6400A and RX100M7A, Panasonic S1II and S1IIE, DJI Mavic 3 Pro Cinema (support for Nikon and Sony mostly incomplete, so is Panasonic decompression), Fujifilm X-E5 and OM Systems OM-5 II. gnome-raw-thumbnailer Updated to the latest libopenraw. Released 48.0 flathub-cli This is a…

Friday links 27 June 2025

Some links for technical articles on various topics I read. std::mem is... interesting - Explore some of the functionalities in the std::mem module of the Rust standard library. How much code does that proc macro generate? - Nicholas Nethercote tells us how you can answer this question with new tooling in the Rust toolchain. PNG is back - A quick overview of the PNG spec 3. Spoiler: Animated PNG,…

Dev Log April 2025

April was light. exempi Released Exempi 2.6.6 to fix security issues from upstream. libopenraw Some minor fixes in the thumbnail extraction, with JXL support and locate larger Panasonic previews. Extract the exposure bias for Fuijfilm files. Added the latest Canon cameras (still the support of CR3 is work in progress). Released alpha.10 on May 1st.

Friday links 2 May 2025

Some links for technical articles on various topics I read. The Defer Technical Specification: It Is Time - Explains the proposal for the next C language standard for defer . A guide to implement ActivityPub in a static site (or any website) - A guide to implement ActivityPub in a static website. 20 years of git - An history of git and its early days. Celebrating Git's 20th anniversary with…

Dev Log March 2025

A long overdue dev log. The last one was for September 2024. That&#x27;s half a year. libopenraw Released 0.4.0-alpha9 of the Rust crate. Added a bunch of cameras. Fixed some Maker Note for some Fujifilm camera, and a fews other, also fixed some thumbnailing. The main API is now faillible with Result<> returned. This should reduce the amount of panics (it shouldn&#x27;t panic). Added support for…

Friday links March 21st 2025

Some links for technical articles on various topics I read. NVIDIA emulation journey, part 1: RIVA 128 &#x2F; NV3 architecture history and basic overview - From the developers of 86Box emulators, some history and technical summary about the first successful 3D GPU from Nvidia. zlib-rs is faster than C - Something on the reimplementation of zlib in Rust, and how it performs better. Safe + speed,…

Dev Log September 2024

A long overdue dev log. The last one was for September 2023. That&#x27;s a year. Stuff in life has happened. Compiano In November I switched Compiano to use pipewire directly for sound. This mean removing bits of UI too. I should look at a release, but I have a few blockers I need to tackle. One key element is that there is a mechanism to download the soundbanks and for now it doesn&#x27;t ask…

New raw thumbnailer

I have resurrected my camera old raw thumbnailer so that I can browse directories full of of camera raw images in Nautilus. This is version 47.0.1, because GNOME 47 is out. Like the old one, it uses libopenraw to extract the previews from the raw files. But, it now supports more raw formats, and if needed will render the raw image to generate a preview, like it has to for my old Ricoh GR Digital…

Dev Log September 2023

It&#x27;s October 2023. Niepce Really very little. Fixed a cosmetic issues with icons in the workspace. The short version is that for symbolic icons to work, they must be in a "standard" path even if they are loaded from resources. Also some minor dependency checks, etc. lrcat-extractor lrcat-extractor is my Rust crate to export Lightroom™ catalogs. It&#x27;s used in Niepce. Just a few bits of…

Dia with GTK 3

If you are running Dia from the nigthly GNOME flatpak, the last update brought a big change: it is now a GTK 3 app. The UI shouldn&#x27;t be much different, just some cosmetic adjustments due to theming and other like widget spacing. Also it now work with Wayland and HiDPI. It is something I started over two years ago, and that for some reason I left on the back burner. So I did a final push and…

Dev Log August 2023

Didn&#x27;t really do anything on Niepce in August, so no updates on that front. However I worked on a few other things. libopenraw A lot of work done on it. See my other wlog post . The short version is that I should look towards releasing 0.4.0 sometime soon. Since that last post, I have added a long standing to-do item: code to generate test cases so I can run a non regression test suite on…

libopenraw Rust with C API

As I previously talked about , I started porting libopenraw to Rust. It is now in a state where it has more feature than the original. When I started writing this post, I didn&#x27;t have 100% of the code Rust, but since I have removed the last bit of C++, for which I had cut corners to make sure to have a functional API for C. The only C++ code left is the various utilities and the C++ test suite…

Niepce July 2023 updates

This is the July 2023 update for Niepce. The importer Where we left, the workspace tree view didn&#x27;t display the hierarchy. First, I discovered bug in the SQL triggers for folder path update. I was missing the AFTER keyword to have it run after the update. Workspace Second, I need to specify a parent when adding items to the model, then locate the parent, add to it. The problem is that we get…

Niepce June 2023 updates

This is the June 2023 update for Niepce. The importer Back where we left, still working on the import. It looks like there is more work than anticipated to be able to import a tree a files.

Life update

If you are looking for a Software Engineer with strong skills in C, C++, Rust and JavaScript, with a strong FLOSS background, I am available to hire. My résumé

Niepce May 2023 updates

This is the May 2023 update for Niepce. Life comes at you fast. And hit hard. tl;dr not as much progress as I wished: I had to put this project a bit more on the sideline. This will be a short update. The importer Some small bits: Some fixing in the metadata processing on import, notably a better handling of raw files. Turns out the previous logic broke getting metadata from video files. Also…

Niepce April 2023 updates

This is the April 2023 update for Niepce. Between outages caused by an unseasonbly ice storm, squirrels chewing cable, I discovered how painful is being off the grid. This is not the excuse, just the events that lead to downtime and April not being very productive. The importer moved a little bit forward. I tried to use the brand new "sort by date" importer tool, that is used to test and exercise…

Niepce March 2023 updates

This is the March 2023 update for Niepce. This is not an April&#x27;s fool, and this is not the year I can announce a release on April&#x27;s fool day. Sorry about that. Continuing with the renderer &#x2F; previewer cache. I had to move ncr to Rust. I didn&#x27;t port it all, but the widget and the main API are now in a Rust crate npc-craw , the fourth one in the workspace. The goal of this crate…

Integrating the RawTherapee engine

RawTherapee is one of the two major open source RAW photo processing applications, the other is Darktable. Can I leverage RawTherapee RAW processing code for use in Niepce? Yes I can. So let&#x27;s review of I did it.

Niepce February 2023 updates

This is the February 2023 update. Not as much direct progress as I wished. One big change is that now the binary is linked from Rust. And at the same time the autotools buid system is gone. The latter came first, as to not have to ignore it when doing the former. Several challenges presented themselves with linked the app from Rust. We have to invert the dependency. We&#x27;d build the Rust code…

Implementing i18n-format, a Rust procedural macro

This will relate my short learning journey in implementing a procedural macro in Rust: i18n-format . The problem Building Rust applications means having to deal with localization, ie allowing the UI to be translated in other languages. This is a big deal for users, and thanks to existing tooling, if you use gtk-rs and if you use the rust-gtk-template to boostrap your project you should be all set.…

Niepce January 2023 updates

This is the January 2023 update. We start the year by a Rust implementation of the file import. It landed very early as the final stretch of work in 2022. Then a lot of cleanups, removing no longer needed cxx bindings and no longer used C++ code. This also allow removing some "wrapper" type used in the Rust code base. The other gphoto2-rs patch has also been merged.

i18n-format for Rust

A quick announcement for i18n-format , a Rust crate to help with string localization. While it&#x27;s not GNOME specific as it is only about gettext, I wrote it for GNOME applications. The goal is to allow the use of gettext! and ngettext! while xgettext can still extract the strings. Simple use: use i18n_format::i18n_fmt; let number = 1; let s = i18n_fmt! { i18n_fmt("This is number {}, make it so…

Introducing Toot That!

Introducing Toot That! . It&#x27;s a small WebExtension (browser add-on) for Firefox. It&#x27;s the successor of Tweet That! but for use with Mastodon (the Fediverse). It allows posting a link to the current tab to your chosen Mastodon instance. Only the server knows this is happening. The extension doesn&#x27;t send anything else. Install it as a Firefox Add-ons .

Niepce December 2022 updates

Happy new year ! Here is some udpdate on Niepce work done in December 2022. Mostly changes under the hood, but important ones to move forward with improving the features. The short version: it feels great to remove C++ code.

Niepce November 2022 updates

Here are the updates in Niepce development for November 2022. I&#x27;ll try to bring these updates on a more regular basis. In case you missed it, there was a May update .

Fall of releases

A couple of Rust crate releases. Now that the new glib-rs (and gtk-rs) are out, it&#x27;s time for an update of gudev Rust bindings using the newer version of glib-rs . At the same time I updated midi-control to use a newer version of midir to iron out a cargo audit warning. Available from crates.io .

Introducing Compiano

I previously introduced Minuit . Later I got notified that there was also a music education application for KDE named Minuet . So it was natural to yield the name. It&#x27;s relatively easy to do when you haven&#x27;t had a release. I decided to rename my application Compiano , a portemanteau word for Computer Piano .

RTKit, portals, and Pipewire

Peeling an onion, or how a bug report in a flatpaked application lead to fixes in three different part of the stack, but no change in the application itself.

Release day

It&#x27;s release day, sorta. Both libopenraw and Exempi got a new release within two days. Here is what&#x27;s up.

Update on Niepce

Here we go, when I started that project in 2006, I had plenty of ideas. I still have, but everything else is in the way, including me. Since there have been some amazing apps, like RawTherapee , Darktable , and possibly some other I miss, apps fullfilling some of the uses I envisioned for Niepce back then. Not to mention a few other apps that did just disappear ; that&#x27;s life, it&#x27;s hard…

New Again

Old is new again. Apparently my blog was broken following a PHP upgrade on the server. tl;dr PHP 8 broke things and code had to be changed. I don&#x27;t do PHP so I had to guess (I can read it, patch it, but it&#x27;s a lot of tries). Anyway I decided to bite the bullet and use a generator. I use Hugo in other places, but I decided to try Zola . I the past I have used Jekyll but ended up having a…