Dart Result Monad 2.0 Updates 2022-10-09

Last year as I really got into doing Dart and Flutter programming I decided I needed a library that got me the same behaviors I had with the Result Monad library I had in Kotlin. In November I published the 1.x version of it which I wrote about in this post . There were some aspects which I thought were a little clunky even then. As I have been using this on a bigger project now I found some other shortcomings as well. This was the impetus needed for making those improvements and pushing out a 2.0 version of the library. This post goes through those improvements. The library source code and issue tracker is here with the pub.dev entry here .

(More ...)
Dart/Flutter Open Source Contribution Stats (and why I use it despite Google's dominance in it) 2022-09-30

This week Google did the totally not surprising move of cancelling Stadia. In some chat rooms I’m in the topic turned to Google’s penchant for cancelling major projects in general. That fed into a discussion of how can one choose Flutter as a viable tech stack if that is always hinging over our heads. In 2021 I created a series of tools for assessing open source projects through their Git histories. I wrote up my methodology in this blog post . I had intentions of analyzing many of my favorite projects at the time but never got past finishing Elastic/Kibana and starting OpenJDK. I’ve decided to turn that towards Dart and Flutter. The results for those projects can be found in this GitLab repository .

(More ...)
Supabase Flutter Quickstart With the New API 2022-08-10

I’m starting to experiment with a Firebase alterantive called Supabase . It provides a lot of the same centralized login/user management Firebase does but with a relational (Postgres) database and object storage for their storage layer. Javascript and Flutter are their big supported platforms. I wanted to give it a try through their Flutter Quickstart Guide (they have one for many different Javascript frameworks). After completing it though I ran across this blog post about the new SDK 1.0 Developer Preview . There are several changes to the Flutter SDK to make things better as they march towards the 1.0 release. I decided to tweak the Quickstart to work under the 1.0 version and document it here. Some of the earlier text is substantially from or copy/pasted from the original tutorial.

(More ...)
Tutorial: Setting up Apache Hosted PHP with Xdebug 2022-08-08

This is the second part of the PHP and Friendica Debugging Post Series . It is assuming that you have a ready to go Ubuntu 22.04 Linux computer or virtual machine ready for configuration, with sudo privileges for your user account. You can follow this post on how to get one configured in Parallels Desktop on macOS. At the end of this tutorial you will be able to do step-level debugging of a locally hosted PHP site on your computer using the PHPStorm IDE.

(More ...)
Setting Up Friendica Daemon as a Systemd Service Tutorial 2022-08-04

Friendica relies heavily on worker processes for doing things like federation, cleaning up the database, and many other tasks. It can either be run as a periodically running system cron job or in a daemon mode. A lot of this is personal preference of the administrator. I prefer to run it as a daemon process, mostly because posts are federated instantly rather than waiting for the cron job to be kicked off again several minutes later. The best way to use the daemon process is to have it be managed by systemd so that Linux will make sure it starts on startup, create a new one if it crashes, etc. On the Friendica links page I found this post by TauSys on setting up the daemon as a systemd process . None of the steps are hard per se, but it lays them out very clearly. It is unfortunately in German and some of the translation messes up some of the example configuration files etc. For that reason I’ve decided to write this post on how to setup the daemon as a systemd process, inspired heavily by the above post.

(More ...)
Tutorial: Creating a Friendica Server with Ubuntu 22.04 2022-07-30

The main Friendica documentation has install instructions for setting up the core part of the system. However it assumes that you have properly installed all the dependencies and leaves securing the system as an exercise to the user. While I have found a couple of tutorials around the internet like this one or this one to fill in the gaps before that I have found them a little lacking and dated as well. I was able to make my way through it but I’m not sure if all will. I therefore decided to write this soup to nuts tutorial on standing up a Friendica instance with Ubuntu 22.04. Please use the table of contents to skip parts that you don’t need, like setting up your cloud instance.

(More ...)
Installing CDE and Comparing With NsCDE 2022-07-28

Earlier today in my NsCDE post I said maybe I’d install CDE and do a comparison between the two. Well then I decided to just bite the bullet and do it. So here is that direct comparison. Please reference that post for install instructions for NsCDE.

Note: When installing NsCDE under Ubuntu or other modern GNOME systems there is some wonkiness with the default GNOME file manager and text editor that we get into below. It may be better to install different applications for those and set the defaults to that at configuration time.

(More ...)
Installing NsCDE for Nostalgia 2022-07-28

Back in college the Common Desktop Environment (CDE) was the cat’s meow of Unix workstations. I’d be running that on the many thousands of dollars Solaris or HP-UX workstations in my university’s computer labs. If it wasn’t that then it’d be IRIX on the SGI workstations. At home when I finally got Unix running the only thing that was available to me were things like FVWM, Afterstep, or Enlightenment. They were poor approximations but still better than Windows95. In recent years you’ve been able to actually install CDE on Linux thanks to the continuation of the project on SourceForge . However it is a bit long in the tooth architecturally and there are some problems with configuration etc. Thanks to this OSNews story I discovered there is a project meant to theme modern FVWM to act/look like CDE called Not so Common Desktop Environmynt (NsCDE) . So I decided to give it a whirl in a VM.

UPDATE: I ended up doing the “eventually I’ll do a CDE comparison” today in this post . In there you will find some good alternatives for the wonky behaviors you get with the standard GNOME text editor and file manager (hint there are some pretty good alternatives you just have to install them and use as default when you configure the system).

(More ...)
Getting an Ubuntu 22 Desktop Virtual Machine on Apple Silicon 2022-07-22

I traditionally live most of my life in virtual machines, both in the cloud and on my desktop. It allows for proper sandboxing of development environments, customer projects, apps, etc. Whenever I can I try to stay within just using them. In the past I’ve relied on VirtualBox for that, since it was available on Linux, Mac, and Windows host OS’s. When I switched to Apple Silicon the only viable option that “just worked” out of the box was Parallels Desktop . It comes out of the box with wizards for several Linux versions and Windows. For my new PHP development with real debugging however I needed Ubuntu 22. The version in Parallel’s wizard is Ubuntu 20. While Ubuntu does have AMD64 versions of Ubuntu Server for download, they only have Intel versions of Ubuntu Desktop. These are the steps to taking the Ubuntu Server install disk and making a fully operational desktop environment. This is the first part of my Debugging PHP and Friendica Series .

(More ...)
PHP and Friendica Debugging Post Series 2022-07-21 After getting my first low hanging fruit change contributed to Friendica I’ve decided to start tackling some larger problems. While my simple writing to the log debugging style worked fine for the first one I figured it was time to start doing real step-level debugging. (More ...)