Unfortunate Coincidence is a c64 one file demo released on the 14th of Jan. 2021 in a special competition allowing sprites only. In this article, I would like to give you an overview of what's going on under the hood.

The effect

The idea of the main effect is to overlay horizontal raster bars with a layer of sprites representing vertical color bars with alternating on/off pixels to show a “transparent” lattice. The result is a crazy looking plasma-like effect with lots of colors.


I already did a version of this effect in gfx mode for the demo “25 Years Atlantis”

5 Shades of Grey is a demo we (Lethargy) released at Gubbdata 2020, a special C64 retro demo party. As the title suggests, this article will walk you through the demonstration giving you part by part details.

Here is the full demo on youtube for you to recap or watch for the first time.


Our concept was to remember the 90's when the majority of eastern block families could not afford a color tv/monitor for the c64. In Hungary a cheap black & white TV, the Russian made Yunost was the usual choice.

Russian made B&W Yunost TV

Users with such a set had no…

In this article, I will summarize the issues I encountered while upgrading to ng 10.1. Our project is a large project with micro apps and several common npm packages, so I might have, bumped into more pitfalls than the regular user.

The means to upgrade

There are several ways to upgrade your angular app or package. The first and easiest to use way is using the built-in upgrade via the ng update command.

Using ng update

Using the CLI to upgrade will find the dependencies for you automatically:

λ ng update
Your global Angular CLI version (10.1.0) is greater than your local
version (9.1.0). …

Is there life after death? Science suggests no, but maybe these kinds of things are beyond what we can prove. As we are all going to die, the mystery of the afterlife is there to wonder.

The white light of the beginning of the end

One day (2011.04.17) riding home from training in the mountains, I smashed into the back of a hard breaking car. At first, I didn’t notice anything, looked at my training partner who turned white and told me I’d better sit down. After sitting down I lost consciousness.

I crashed into the back of an X3 BMW hitting the rear spoiler with my eyebrow line…

Users of our application started complaining recently, that they can no longer log in to our Keycloak authenticated site using Google Chrome. Surprisingly we could not reproduce the issue even though we were using exactly the same browser version.

Our application environment:

Based on user logs, the token was successfully retrieved from Keycloak after login, but after redirect back to the application, the refresh of the token failed with an Http 400 error. This cycle was repeating over and over. …

I stumbled upon a namespace problem while upgrading NPM packages to Angular 9. In case the library was used by an application directly, everything was working as expected, but otherwise, in case, the library was used by another library, then I was facing a null provider crash in the Angular core.

ERROR TypeError: token.toString is not a function
at stringify (core.js:489)
at NullInjector.get (core.js:1076)
at R3Injector.get (core.js:16629)
at R3Injector.get (core.js:16629)
at R3Injector.get (core.js:16629)
at NgModuleRef$1.get (core.js:36024)
at R3Injector.get (core.js:16629)
at NgModuleRef$1.get (core.js:36024)
at Object.get (core.js:33773)
at getOrCreateInjectable (core.js:5805)

The problem with this error is that it crashes in the routine…

Hobby software development for the Commodore 64 is regaining its popularity. More and more folks (including myself) are returning to code, write music, and pixel graphics for this vintage instrument. My intention with this article is to get YOU (the c64 enthusiast) active again. It’s time to show that you’re still the coder, musician, graphican who you used to be.

Have you ever thought of returning? There is no better time than now, as you’re probably sitting at home, due to COVID-19 lockdown.

Development today is a lot easier than it was in the eighties. Using modern computers with cross-platform…

As you have by now probably found out it is not possible (allowed) to release ivy built packages to npm. Explanation for this on angular.io is the following:

If you are a library author, you should keep using the View Engine compiler as of version 9. By having all libraries continue to use View Engine, you will maintain compatibility with default v9 applications that use Ivy, as well as with applications that have opted to continue using View Engine.

The Angular team has stated that this issue will be addressed no sooner than version 10.

Many of us are in…

Cookie anyone?

The latest version of the Google Chrome browser has activated default setting for SameSite cookies. Cookies that don’t specify a SameSite attribute are treated as if they were SameSite=Lax. Sites must specify SameSite=None in order to enable third-party usage.

Google has warned previously when this change will take effect. I believe we are not the only developers who missed this information and started having problems recently.

The change has broken our web applications Keycloak authentication the day it went live. Finding the problem wasn’t easy as Google Chrome browser update is not done immediately when a new version is released…

Upgrading Angular from one version to another is usually not an easy task. You will very likely encounter new problems that have never occurred before. A new major version is full of features along with the deprecations of some previous methods. Usually we, at least I am, are unaware of the new features before they are released, so before jumping at upgrading it’s a good idea to get familiar with the features in the new version. In this post I'm going to list all the issues that we encountered while upgrading our application from ng8 to ng9.

The Angular team…

Szórádi Balázs

Programming in assembly, c, c++, java, javascript, typescript. Interested in 3d graphics, visual effects, demoscene, dsp, c64, cycling, climbing…

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store