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 ...)
Real World Apple Silicon Benchmarks Part 5: Avalonia UI on .NET 2020-11-24

For the second benchmark I am going to explore the performance of .NET compilation and benchmark performance using an Avalonia ’s code base. 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 ...)
Real World Apple Silicon Benchmarks Part 4: Orekit Astro Library 2020-11-24

For the second benchmark I am going to explore the performance of Java with a library I use on a regular basis for astrodynamics calculations: Orekit . 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 3: .NET Rendering w/Uno 2020-11-24

For the second benchmark I am going to explore the performance of .NET rendering using an Uno Platform benchmark. 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 these two runtimes natively support it, 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 ...)
Real World Apple Silicon Benchmarks Part 2: JavaFX 2020-11-23

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 these two runtimes natively support it we 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 . For the first benchmark we are going to explore the performance of JavaFX.

(More ...)
Benchmarking Real World .NET and JVM Performance on Apple Silicon (Part 1) 2020-11-18

Apple Silicon is looking pretty impressive. I’m impressed enough to replace my 2018 MacBook Pro with the shitty keyboard with a new M1 MBP. All the benchmarks though are useless to me since I’m primarily a .NET and JVM developer who will be running under emulation in Rosetta for the foreseeable future. I intend to quantify the performance of the new Macs versus the old Intel ones with a suite of benchmarks specifically targeting .NET and JVM runtimes.

(More ...)