My MR that adds rstcheck as a plugin to GNOME Builder for linting reStructuredText files has been merged :)

P.S. Fullscreen screenshot because I like my setup.

The first release is in review on Google Play. This will be a continuation of TrebleShot project under a different name and will be fully compatible with it. I already began working on a desktop version that will be released under GPLv3. It will use GTK4 with libadwaita. I know this should be cross platform but what I care about is uprotocol and libcoolsocket being available as libraries that other apps can build against.

The Kotlin code in the first screenshot gave me a hard time due to it being very hard to catch.

Simply put, filterIsInstance filters a list and returns a new list of given reified type, but in this instance, it lets other types slip through it and thus cause a cast exception.

I tested it in other places and could not reproduce the issue.

The second screenshot shows the value that should be filtered but is not.

Finally, this is hard to catch because inline functions don't appear well in the stacktrace.

I developed a new tiling manager for GNOME Desktop. It has the settings page and notifications etc. I just need to finish writing README and other small stuff before the release.

One thing most developers don't understand about IO streams is flushing being an option rather than a necessity. If a write operation necessitated a flush op every time the former was invoked, the existence of the latter would be pointless. What should actually happen is invoking flush only to ensure the data is written to the target. Mindlessly invoking it will kill the performance and the optimization made for the target.

This demo app is created using Kotlin Native bindings for GTK. I am glad somebody already has started working on it. I don't know much about the ongoing limitations of Kotlin Native, as it is mostly in experimental stage, but I think this could be the best thing that has ever happened to Desktop Linux since Kotlin is a very popular language with consistent set of APIs (unlike JS).

Ah, yes, I can finally connect my graphics card over a wireless network!

I have been kinda working on an Android TV app. I didn't have to write a lot of code but the UI stuff. Also moved the business logic into a separate module which also reduced the build time. I am going to release the app when "it just works". I am not planning to do any crazy stuff since it is an Android TV app. Lastly, I still think it was a good decision to create uprotocol. It is somehow faster than SFTP or SMB combined and reaches the speed iperf reports.

I am testing a different approach to my usual design. The work in the screenshot isn't finished, but it shows where I am going with it. The purple and cyan colors are Android defaults. Purple will probably stay, but I will replace cyan with a dark pinkish color.

My biggest issue is the backwards compatibility. I have already spent a lot of time keeping the app Android 4 compatible, so I don't want to increase the min SDK yet.

Also, I haven't made my mind about the font. Rubik may be a fit.

For my next project, I am going to use Flutter.

The only thing missing is a good guide on MVVM in Flutter. So, I thought I might create one.

I haven't started yet and I don't even know how it is going to turn out.

I don't understand the logic behind this.

I need to override the default back behavior occasionally, but I need to call setEnabled all the time to ensure that.

Just allow me to override isEnabled method. Or better, let me return a boolean value inside the handleOnBackPressed method.

Mastodon for Tech Folks

This Mastodon instance is for people interested in technology. Discussions aren't limited to technology, because tech folks shouldn't be limited to technology either!