Control a CRT with the Raspberry Pi DPI

I managed to send video signals to a Mac Classic’s internal CRT monitor from a BeagleBone Black back in 2016, and it seems like this is a topic that a lot of people are still interested in. A recent discussion gave me the idea to try and do the same thing with a Raspberry Pi, and I wanted to document the experiment in this article.

Continue reading Control a CRT with the Raspberry Pi DPI

Access smartphone sensor data on a website with the Permissions API (iOS 13)

I wrote this article about reading sensor data from on a Smartphone with JavaScript a while ago. Those methods worked for Android phones as well as iPhones running on iOS 12 (or lower). However, with iOS 13, Apple changed the way sensor requests have to be made, and I decided to post an update to accomodate for that.

Continue reading Access smartphone sensor data on a website with the Permissions API (iOS 13)

Functional-Style Operations in Java with the Stream API

I discussed Java Lambda Expressions quite a time ago in another article. Those were not the only new thing that got implemented in Java 8. Besides Lambdas, Type-Annotations, and Default methods in interfaces, version 8 of the Java API added support for functional-style operations. Because I think that this is quite a rarely discussed feature, I decided to write this short introduction to the Java Stream API and how it can be used for basic functional-style programming in Java.

Continue reading Functional-Style Operations in Java with the Stream API

How to implement switchable dynamic custom themes with Angular Material

I needed to implement a function that allows users to dynamically switch between different themes in an app that I develop at the moment. As the title suggests, I use Angular Material components and Material themes.

In this article, I’ll give you a step-by-step guide on how you can choose between different themes in an Angular app dynamically.

Continue reading How to implement switchable dynamic custom themes with Angular Material

How to program an arcball (orbiting) camera in C++ and OpenGL

Visit this page for a Unity3D example using spherical coordinates.

I recently had to implement a drag and drop camera feature for a college course. The OpenGL program, we had to submit, had to contain a camera that can be controlled by moving the mouse around. The camera itself should always look at a fixed point in the 3D space while being rotated on two different axes like it’s stuck to the inside of a sphere.

Continue reading How to program an arcball (orbiting) camera in C++ and OpenGL

How to implement JWT authentication in Spring Security and Angular – Part 5

In this last part of the series, I’ll show you, how you can implement a token renewal mechanism. This is necessary, because the JWTs, issued by the backend, expire after a certain amount of time. This means, that logged in users can not authenticate themselves once the JWTs expired. To prevent this from happening, the frontend will automatically request a new token from the server shortly before the old one expires as long as the user is logged in and the browser window is not closed.

Continue reading How to implement JWT authentication in Spring Security and Angular – Part 5

How to implement JWT authentication in Spring Security and Angular – Part 4

Now that we’ve secured the backend with Spring security and implemented the basic JWT features, it’s time to allow users to log in from a user interface. In this example, I’ll show you how to implement a very basic authentication form in an Angular frontend. The pages, that may only be visited by authenticated users, will be protected by a special guard. For that purpose, I’ll show you how to implement such a guard and how to use the Angular router to redirect unauthenticated users to the login page.

Continue reading How to implement JWT authentication in Spring Security and Angular – Part 4