On RMS—No More Coddling Idols and Celebs 2021-03-25

At the Free Software Foundation’s (FSF) open source conference LibrePlanet 2021 there was a bit of a controversial coming out when Richard Stallman (RMS) announced that he was back on the board of the organization he founded after resigning from it and the FSF’s presidency in 2019. I’m trying to process this information productively and honestly I am struggling. I hear lots of paeans for paths of redemption or “not canceling over one faux pas” type responses. I hear lots of “just lets bury the hatchet” response too. I am so far very unsympathetic to those at this point though because I haven’t seen any attempts by RMS to seek actual redemption nor do I think this is “just one minor incident” that deserves being buried. For too long we’ve allowed our idols and celebrities way too large a divergence from acceptable behaviors we expect from everyone else. We hear countless stories of abusive, belligerent, and completely inappropriate behavior being at the very least tolerated if not implicitly or explicitly supported by those around them. For much of RMS’s history he got this exact treatment. The events of 2019 pushed everyone past the point of putting up with it any longer and at that point, finally, people stood up to him. In response he temporarily resigned and went into a communications black hole. What has come out the other side 1.5 years later though seems to be right where we left off though. It’s bad for FSF, bad for the free and open source (FOSS) community, and bad for our culture in general.

(More ...)
My Home Grown Sans-JavaScript Tracker Blog Stat Tool 2021-03-09

The one thing I missed about my old WordPress blog when I switched to a static Jekyll site is having statistics about my blog. I could have solved that by using Google Analytics or other tracking tools but a big part of what I was trying to do was get rid of all the trackers, JavaScript injection, and what I may overly aggressively label “spyware.” Looking at the Nginx log I thought there was enough in there to let me recreate a lot of those statics once I worked through all the bot traffic. This also gave me the opportunity to create a Kotlin Multiplatform project that I could potentially one day migrate to a pure Kotlin Native application. I’m sure that using existing log processing tools out there that may have hit my requirements but I decided to do the usual programmer thing of just write my own. It’s running live on my blog now and generating the annual and monthly statistics I was looking for. The source code is up on Gitlab for others that may want to use it as well. Now on to the details of the project.

(More ...)
Purging Political Accounts for Social Media Hygiene 2021-03-06

As I perused my social media timeline this morning I saw post after post with some level of outrage over some level of minutia. Among those posts were some legitimate concerns about legitimate issues but the signal to noise ratio was complete crap. While I mentally knew that I could tell that my brain was emotionally reacting to this stream of drama. It was at that point I decided I needed to clean up my social media experience to avoid potentially succumbing to the effects of such a barrage.

(More ...)
Open Source Contributions in 2020 2021-01-04

When I wrote my 2019 open source contributions annual review I had high hopes for my open source contributions in 2020. As I wrote in my 2020 health annual review I allowed the political upheaval in my home country, the US, to distract me way too much. Sure there was some COVID distraction in March/April but if anything I was actually hoping the lack of travel would give me time to focus more on code generation. It was not to be. That excuse aside, I still managed to put in 698 hours into open source projects. That’s a slight uptick from 2019’s 653 hours but short of the 1000 hours I was hoping to contribute. The distribution looks very different as well, with most of it concentrated around my work with The B612 foundation . The five projects I contributed to the most fall into a relatively broad range of software (from highest to lowest number of hours contributed):

(More ...)
Annual Review 2020: The Mulligan Year 2021-01-01

The year 2020 started off on an epic high note for me but quickly devolved into the same insanity as everyone else. Between COVID-19 and the political upheaval in my country (the US) and around the world it was a very stressful time. I mostly got through it with good spirits but being a stress eater and not one to naturally enjoy exercise means that while I started off on the right foot things quickly devolved. To say there were extenuating circumstances is an understatement. It’s not a legitimate excuse but it is what happened. Like the rest of us I want to forget 2020 but the cummulative health effects on my body from this year happened whether I like it or not. Let’s explore how this year held up in terms of my grades and metrics on the health and longevity front.

(More ...)
Porting a ReactJS Timeline to KotlinJS 2020-12-28

I am learning how to work with Kotlin Multiplatform in a real world environment, which includes making websites with Kotlin/JS. I am all thumbs when it comes to CSS and have never done much with React. So a good way to really plow through that is to take concepts I want to replicate and then port them to Kotlin/JS (if possible). One UI feature that I’m exploring are formatted lists. We use them everywhere nowadays. Searching around I found this timeline example created by Florin Pop . It’s not a huge amount of code but it makes a pretty neat looking timeline view of a collection:

A timeline view in ReactJS

The original ReactJS timeline from the Florin Pop’s example

Questions I want to answer are:

  • Can I reproduce this using Kotlin/JS?
  • Is the source code clearer or more obtuse in Kotlin/JS?
  • What does the generated Kotlin code look like?
(More ...)
Micro Magic RISC-V vs. Rock64 ARM Rocketchip 2020-12-06

I’m on a benchmark tear this past month. It’s just my level of excitement around the news around x86 alternatives. There are the ARM chips by Fujitsu running some of the fastest new supercomputers . There is the M1 chip by Apple. Now we have a potential new RISC-V chip by a company called Micro Magic which looks to be finally bringing performance into a range comparable to desktop-ish ARM chips. This article by ArsTechnica really wet my appetite. I wanted to see how this chip’s real world performance, assuming we take the benchmarks at face value, can compare to the CPU in the PineBook Pro (PBP) .

(More ...)
Can Linux be used professionally for Desktop Publishing? 2020-12-04

This isn’t a click bait headline and I won’t have an answer either way be the end of this post. There was this article in my RSS feed yesterday pointing out that the Linux Foundation wasn’t “dog fooding” FOSS or Linux with their annual report. Buried in the metadata of the PDF that they circulated was the not too surprising fact that the brochure was created with Adobe Creative Suite on macOS Catalina 10.15. The blogger considers it quite the indictment. I’m not so sure but I would like to explore if Linux can be used by desktop publishing (DTP) professionals. I’ll caveat this exploration by saying it was the early 1990s when I was last at all seriously involved in DTP. So some of my conventional wisdom may be dated. With that stated, let’s explore the potential of Linux professional DTP.

(More ...)
Real World Apple Silicon Benchmarks Part 7: Renaissance Java Benchmark Suite 2020-11-24

For the last benchmark I am going to explore the performance of Java assembeled for the purposes of benchmarking Java-based compute systems, called Renaissance . There has been a change since I started this (see this previous post ) though. Azul , a company that specializes in Java and JVM infrastructure, has released a version of OpenJDK that is compiled for Apple Silicon. I have therefore run the benchmarks both using AdoptJDK Intel installation running under Rosetta as well as the Apple Silicon Native M1 one by Azul. Let’s see how Orekit runs in these three environments. The full project and results is documented here .

(More ...)
Real World Apple Silicon Benchmarks Part 6: .NET Performance Suite 2020-11-24

The last benchmark of the .NET Platform that I have is the benchmarking suite that the .NET team put out here . It is literally thousands of tests covering all parts of the CLR. Nothing could be more thorough. As I wrote in this previous post I’m doing a series of benchmarks of .NET and JVM on Apple Silicon. While there are impressive native benchmarks the fact it will be some time before the .NET runtime has native support. I have to factor in the potential hit and problems with Rosetta. How much of a performance hit is there and will it be enough that applications targeting it will have problems? All code and results are published here .

(More ...)