#dartlang

hankg@friendica.myportal.social

This is a great video about avoiding fallacies in benchmarking, specifically around Kotlin. One thing they used during tests is a "blackhole" object to make sure that compilers don't optimize away code from loops. The implementation goes back to a GPL2 licensed one in the JVM. I wonder if it would make sense to port that to Dart. Dart already has benchmarking harnesses but having a black hole evaluator could be interesting. #DartLang #kotlin #programming
- YouTube

hankg@friendica.myportal.social

This Full Stack Flutter conference has been a treasure trove for me and I'm only 2/3 the way through day one. I didn't realize Serverpod came out with a "mini" version so you can publish self-contained services only bundles easily. I didn't realize the Shorebird team basically had Flutter code push for live patching mobile apps in production. I also didn't realize there was a Dart-based static site generator called Static Shock. I've been considering moving off Hugo for my main blog and need to convert another site I have from Jekyll. I think I may dabble with these technologies as my procrastination projects :). #programming #DartLang #flutter

fullstackflutter.dev/

serverpod.dev/

shorebird.dev/

staticshock.io/

hankg@friendica.myportal.social

I just found out there is a free online Full Stack Flutter (and Dart) developer conference. Archived streams of 2024's conference it are available if you register for 2025's. I know what I'm going to be perusing the next couple weeks #flutter #DartLang #programming
Full Stack Flutter Conference

hankg@friendica.myportal.social

Right at the end of my Kotlin days, before Dart and Flutter became my go to platform, I wrote a bespoke server analysis tool to play around with Kotlin Multiplatform and JetBrains Expose. “I’ll make it more efficient later if it needs it.” “Later” is now “present day”. Part of me says port it to Dart as an exercise. I probably need to fix it first if possible though. Having spent some time looking at the code I am not having nostalgia for my Kotlin days. I’m wincing at what may be death by a thousand cuts to stand up a build/dev environment again with such a long gap in Kotlin and library versions that may have broken a bunch of things. Decisions…decisions… #programming #kotlin #DartLang

hankg@friendica.myportal.social

I spent the afternoon playing around with Codeberg, which runs on Forgejo. It's pretty snazzy. I could see it easily replacing Gitlab for the very pedestrian ways I use it (not a lot of Actions/external integration). Like others it is a bit light on Dart/Flutter features. If I like it enough I could see contributing to update that. I still want to play around with some simulated development workflows. #programming #codeberg #forgejo #DartLang #flutter

hankg@friendica.myportal.social

I've been in a bit of a developer rut. It's not lack of projects I want to do and can work on. It's more like analysis paralysis on some, death by a thousand cuts aversion on others. So I piss away time on social media. I decided to try to get some dev momentum by picking up something I first tried back in 2020 the last time I got dev writers block: The Ray Tracing Challenge. Back then it was Kotlin and I only got as far as basic ray projection before wrestling with the Cucumber test system and "real work" derailed me. This time I'm going to be trying it in Dart and Flutter. My progress, or lack thereof, will be in this repository with a corresponding plain text developer log. #programming #DartLang #flutter

https://gitlab.com/HankG/raytracerchallenge

hankg@friendica.myportal.social

I spent a lot of my career working with java and the JVM. In recent years it hasn't worked for me, especially as other cross platform systems met or exceeded its promises but without legacy encumbrances (hello Dart and .NET Core). While JVM is probably never going to be my go-to for new projects, Project Valhalla is still an impressive look at how the team wants to upgrade the JVM. The stuff about primitive/value types is fascinating. One thing I never heard of before is 32-bit tearing. Basically 64-bit type operations, including reads, are not guaranteed to be atomic so can never truly be thread safe. As someone who usually writes software that uses 64-bit values that seems like a non-starter for me but they are "going back to 1995" with this limitation on primitive types for performance reasons. Anyway, interesting read and hats off to the team trying to pull this refactor of the JVM off. #java #dotnet #DartLang #ProjectValhalla https://www.infoworld.com/article/3687670/project-valhalla-a-look-inside-javas-epic-refactor.html

hankg@friendica.myportal.social

I present the first named release of the Friendica mobile/desktop client: Relatica. It is still very much a work in progress but I'm going to start opening it up for beta usage (early beta). For iOS that will mean me letting up to 100 people into the inside testing team (Apple's limit). For the other platforms I'll be posting binaries/packages/install instructions for Android, Linux, macOS, and Windows in the coming days as well. I also setup a Relatica Matrix room for interactive discussions with me and other users. The README on the GitLab repo will have all those sorts of details. Enjoy! #friendica #FriendicaDev #relatica #flutter #DartLang #fediverse https://gitlab.com/mysocialportal/relatica
Screenshot of the first release of the Relatica Friendica mobile/desktop client running on Windows.

hankg@friendica.myportal.social

Friendica Mobile App Update

After a week of mostly successful low bandwidth network usage (some timeout issues need to be handled more gracefully and better indication something is being worked on in general) I’ve pivoted to adding an embedded video player for the mobile platform. Flutter has an easy control for that for iOS, Android, and web. Desktop is more uneven so instead that will launch in the browser or media player of the desktop OS. This is just the first cut and will need more refinement but still stoked. #friendica #FriendicaDev #flutter #DartLang
Screenshot showing an embedded video being played in the timeline of the Friendica Mobile app.

hankg@social.isurf.ca

I'm porting some code from C# to Dart and I have to say that the dynamic is *really* coming in handy. I know that construct exists in C# too but I never used it until I started doing some Dart stuff where it is idiomatic *in certain cases*. A revelation. #programming #dartlang

hankg@social.isurf.ca

I used up most of my morning social media & news 30 minute time box. Split 50/50 current events/politics and then history & programming topics. Yesterday decided to use my desire to be able to post to Twitter from CLI as an excuse to make that in a hobby Dart project #dartlang