RSSAmplifier

Blog

Christian Paul

Recent content on Christian Paul

chrpaul.deRSS feed ↗55 posts

Latest posts

Single point of failure apps

Two years ago, I bought a secondary phone. It’s a cheap Android phone that always travels with me outside of town. I’ve for the case that my main phone breaks from a fall, fails to boot after an update, gets lost or runs out of battery. 
 The secondary phone has a set of essential apps installed. Simply put, its task is to get me to my next destination and have some hours or days…

Making NeoBoard a bit like tldraw computer

Disclaimer: This article uses the software NeoBoard from my current employer. All opinions are my own. My employer is not responsible for any of my doings described in this article. 
 
 Don’t miss the innovation tldraw computer brings to online whiteboards! 
 Just before 2024 ended, the developers of the open source whiteboard SDK tldraw published an innovative idea of how to…

Level format of Turbo Sliders Unlimited

As a hobbyist, I’m trying to reverse engineer the level format of the racing game Turbo Sliders Unlimited . The current version of the game is v1.01.3. This article is a very incomplete description of what can be done, but maybe it helps someone to read, modify or create levels. 
 On Linux, your levels can be found at ~/.config/unity3d/Turbo Sliders/Unlimited/76000000000000000/Levels/…

Door 24: Template repository

There are more templates to discover! Here in the template repository: 
 https://github.com/nordeck/neoboard-templates/ 
 Once I’m back from the holidays, I’m also going to upload all templates from this advent calendar. 
 Merry Christmas!

Door 23: Linux thumbnailer

You can have thumbnails for *.nwb files on Linux. Here’s the software and instructions on how to set it up. 
 https://github.com/jaller94/neoboard-to-svg?tab=readme-ov-file#thumbnails-on-linux 


Door 22: Team Values Tree

Happy forth advent! 
 
 Download the nwb file here

Door 21: 4 step retrospective

This template focuses on the basics, so your team can focus on your work. 
 These four slides contain just the headings for the 4 basic steps of a retrospective in agile software development. 
 
 Appreciation for others 
 What went well 
 What needs to change 
 Actions for the next sprint 
 
 
 Download the nwb file here

Door 20: Connect the squares

Today’s door contains a little brain teaser for you or your team. 
 Connect the squares without the lines corssing each other. 
 
 Download the nwb file here

Door 19: Learning about each other

You may use these slides for your team to get to know each other better. 
 There are two slides with three questions each. One slide is focusing on personal life and the other one on life at work. 
 
 Download the nwb file here

Door 18: Winter background

Cold winters bring us a variety of joys like winter sports, snowmen and magnificent landscapes covered in snow. 
 While door 2 already featured a Christmas background, this one celebrates just the winter season. 
 
 Download the nwb file here

Door 17: Build your dream island

A warm summer beach doesn’t look like Christmas? It does if you live near the equator or the southern half of the globe. 
 Let your team and you dream for a while and learn about each others comfort zones. 
 
 Download the nwb file here

Door 16: Spring background

It might feel a little early for spring now, however, with this fun background you can already prepare your slides and goals for the next season. 
 
 Download the nwb file here

Door 15: Team Sudoku

Happy third advent! 
 Today, there’s another game to play. Collaborate or race to finish the same Sudoku! 
 Here’s a link to the website that can generate Sudokus of a configurable difficulty: 
 
 https://wot-wrench.chrpaul.de/#try=https://wot.chrpaul.de/neoboard-sudoku/1 
 Looking for another twist? Try swapping out the digits with emojis or other symbols!

Door 14: Retro Activity Gossip Magazine

Sure, it wasn’t all sunshine and roses, but this headline is a bit too harsh, or is it? 
 As a team, pretend to be a gossip magazin and trash your most recent sprint. It might give you new things to talk about. 
 
 Download the nwb file here

Door 13: Ocean background

Here is a background fitting for the summer. 
 Feel free to use it, to raise the visual appeal of your presentation or company meetup. 
 
 Download the nwb file here 
 Need more ideas of how to use it? Here, I filled it out with some examples. 
 
 Download the nwb file here

Door 12: Mill game

Today, we’ve got another classic board game: Nine men’s morris, also known as Mill. 
 
 Download the nwb file here

Door 11: Memorise the scene (Christmas)

Another three levels of “Memorise the scene”. Just that this time, they are Christmas-themed. 
 
 Download the nwb file here

Door 10: Memorise the scene

Today’s door contains a game for one or multiple people. 
 Quickly memorise a scene and rebuild it from memory. 
 
 Download the nwb file here

Door 9: Chess

Fancy a round on chess? Play it online via NeoBoard. 
 You may even pause a game or play it asynchronously. NeoBoard persists the board in a Matrix room for the other person to continue. 
 
 Download the nwb file here 
 The chess pieces have been licenced under CC0 by Ajay Karat | Devil’s Work.shop http://devilswork.shop/ . 
…

Door 8: Retro Checkin "How are you feeling?"

Happy second advent! 
 Many development teams use a retrospective meeting to prevent long-term blockers from becoming an issue. 
 How about asking your developers whow they are feeling? For sure they’ve got something valueable to tell you. 
 
 Download the nwb file here

Door 7: Pairs game (generator)

In door 1 was a Pairs game, however, it was only one. How about generating new Pairs puzzles so that the new week ca start with some new fun? 
 
 https://wot-wrench.chrpaul.de/#try=https://wot.chrpaul.de/neoboard-pairs/1

Door 6: Creating NeoBoards with TypeScript

Today, I want you to experiment with some simple programming. Some ideas for NeoBoard templates are too complex to put together by hand. That’s when I resort to TypeScript and some programming. 
 The following code runs in NodeJS, Deno and Bun. 
 const neoboard = {
 version : 'net.nordeck.whiteboard@v1' ,
 whiteboard : {
 slides : [
 {
 elements : [
 {
…

Door 5: Feature genie

Our time and resources as a team are limited. But the complexity and cost of development isn’t so apparent to some of our users. 
 Which features and bug fixes would our team wish for, if we ignored the costs for a minute? 
 
 Download the nwb file here

Door 4: Partially convert a NeoBoard to SVG

Using the Zod parser from yesterday’s door , we can more easily generate a SVG file of our NeoBoard. 
 The linked code can convert rectangles, circles and ellipses. A NeoBoard whiteboard can also contain text, lines, triangles and other elements which don’t get displayed with this code. 
 https://github.com/jaller94/neoboard-to-svg

Door 3: TypeScript types with Zod

With today’s code, you can perform a basic validation of generated and loaded NeoBoards. It uses the library Zod which can parse unknown values in TypeScript. 
 Watch out that this type is slightly incomplete and, additionally, may become outdated when new versions of NeoBoard get released. It’s still a good starting point and able to parse most current NeoBoards. 
 import z…

Door 2: Christmas background

Want your slides to look a bit more festive? Here’s a background for presentations, company meetups or other occasions that fits the Christmas season! 
 
 Download the nwb file here

Door 1: Pairs game

Happy first advent with a game of Pairs! 
 
 Download the nwb file here 
 For remote companies, it can be a great game to play at your social meetup. What a fun way to start the week. 
 Import this template into a whiteboard and enjoy a round of Pairs with your coworkers, peers or friends!

NeoBoard Advent Calendar

Welcome to my Neoboard Advent Calendar! 
 Click on the boxes inside the screenshot! 
 
 Over the first 24 days of December, every day, a small blog article about the whiteboard application NeoBoard will be released. Most of these will contain a template or something useful to create your own templates. Make sure to not miss a day! 
 As an alternative to the image, you may use this…

Creating NeoBoards with code

Disclaimer: This article uses the software NeoBoard from my current employer. All opinions are my own. My employer is not responsible for any of my doings described in this article. 
 
 The whiteboard application NeoBoard has a JSON file format. JSON files can easily be generated by writing some JavaScript code. It is time to get creative as to what whiteboards can be build using code. For…

Teaching AI to build NeoBoards (for fun)

Disclaimer: This article uses the software NeoBoard from my current employer. All opinions are my own. My employer is not responsible for any of my doings described in this article. 
 
 NeoBoard allows to collaboratively edit whiteboards. The novel thing about NeoBoard is that it uses Matrix rooms for storage. Alternatively, whiteboards can be stored as a JSON file - which is where I got a…

Three years of Matrix Wrench

As a developer of Matrix bridges, I often need to administrate Matrix rooms. This includes inviting users, kicking users, changing the permissions of users and inspecting the state of rooms. 
 From 2020 to 2023, my job at Element included the maintenance of the matrix.org bridges. Most often, I interacted with the matrix-appservice-irc that bridged Matrix to Freenode and later LiberaChat.…

OpenStreetMap at the Kaohsiung Smart City Summit & Expo

The Kaohsiung Smart City Summit & Expo is an annual event focusing on the Internet of Things and smart governance. As an enthusiast of Web of Things and city mapping on OpenStreetMap, I went to check it out. 
 I tried to find people focusing on open data and interoperability, however, the event seemed to have a strong focus on proprietary businesses, startups and university research. Even at…

Arcade game with collectible cards

Imagine you’re visiting an event for computer enthusiasts (e.g. the Chaos Communication Congress) and find a computer with a gamepad like in the amusement arcades. Before starting you’re first round, you get a collectible card with a character. The character can be levelled up and reused the next time you play.
The reward for winning a round can be another collectible card. 
…

React in Kotlin

React has become a well-established framework to build modular applications. Most often this refers to web applications written in JavaScript or TypeScript. As of this year, I’ve been tasked to write some React components in Kotlin. Without prior knowledge of Kotlin there’s a lot that I’ve learned. This post shall help me and other TypeScript developers to use their existing…

Conference History

An incomplete list of larger IT events I’ve been to: 
 Upcoming in 2027 
 
 March 9-13: FOSSGIS-Konferenz , Heidelberg 
 Feb: FOSDEM 2027, Brussels 
 
 Upcoming in 2026 
 
 December: Chaos Communication Congress (CCC), Hamburg 
 October: Matrix Conference (applied as a speaker and volunteer), Malmö 
 September 19-20: Nextcloud Community Conference,…

Synchronise website storage (idea)

Websites may store data in a user’s web browser. Especially complex webapps use this feature to persist user data.
The most common data stores offered by web browsers are cookies, localStorage and IndexDb .
As an example, the Matrix client Element Web uses both stores to persist a logged in session, cache events and store crypto secrets. 
 A user may want to synchronise this data…

Asteroids Extended (js13kGames 2021)

I worked on a small video game, as I’ve done in every August since 2017. The annual js13kgames game jam calls for a JavaScript game which fits within a 13 kilobytes ZIP archive. The contest runs from 13th August to 13th September. 
 For the first time, I brainstormed ideas for a game with a friend. A few years back he had started a tank game that only used vector graphics. The game…

Reading values from a USB CO₂ monitor

Disclaimer: TFA Dorstmann sent me an AirCO2NTROL Coach for free to test its USB capabilities and write about them. 
 
 At my former work place we used a carbon dioxide (CO₂) monitor to measure the air quality indoors. When the CO₂ concentration in a room gets too high (about 1200 parts-per-million), it becomes harder to concentrate and people may feel sleepy. 
 The device is powered by…

Install the emoji picker Splatmoji on Linux

At this point, most Linux distributions don’t come with a way to enter emojis. I often saw myself searching for emojis online to copy paste them from some website. 
 Knowing how MacOS solves this issue way nicer with a pop-up menu, I decided to look for a way to get the same experience on Linux. On a Mac one can press the keys control + command + space to bring up an emoji picker for any…

Enable colour emoji support on Arch Linux

This tutorial should work for Arch Linux and its derivatives like Manjaro Linux. If you install an emoji font from somewhere else, the activation step should work on other distributions as well. 
 Install an emoji font 
 First, a new font needs to be installed which only includes colourful emojis. If the font contains other characters, it will show these instead of our preferred system…

First days in Germany after 2 years of Vancouver

This article is available as an audio recording: 
 
 
 
 For the last two years I lived abroad in Vancouver and had not been back to my home country Germany in that time. For my friends I decided to write down my first impressions of being back. 
 Day 1 – Arrival at my parent’s 
 My first few days back in Germany have been rather chill. My parents and my brother…

Burnaby Central Railway

This article is available as an audio recording: 
 
 
 
 The Burnaby Central Railway is a great attraction in the North of Burnaby. It is located on Penzance Drive on the Westside of Confederation Park and run by the British Columbia Society of Model Engineers who built a handful model train tracks. 
 Ridable model train 
 The society members built several loops for ridable…

Wishing for a Mastodon search engine

This article is a compilation of posts I wrote on the decentralized social network Mastodon. Mastodon uses readable user handles like mine: @jaller94@mastodontech.de . A handle includes my username and the domain of my home server. Like an email server, a Mastodon server can federate content from users on other servers. Mastodon uses the protocol ActivityPub. When I thought about a search engine…

A prediction for JavaScript in 2021

In the last 21 months I’ve been working as a front-end web developer for two companies and went to a dozen of different tech-related meet ups. I came in contact with technologies like React, Redux, Flow, TypeScript, CoffeeScript and EmbeddedJS. Like all of my fellow developers I ask myself what technologies to use to be prepared for the future – a question almost impossible to answer. There…

Hobby projects of 2017

As the year comes to an end, I would like to summarise my personal software projects. Building applications takes up a big part of my free time. The year 2017 has been good for this hobby of mine. After completing my Bachelor degree, I found myself having more time to build software. 
 SlimeWiki (like DokuWiki, but all JavaScript) 
 I am a huge fan of DokuWiki. My favourite features are…

Fly South (js13kGames 2017)

The js13kGames A-Frame game jam 
 It has been a while since I participated in an online game jam. A game jam is a competition to create a video game under given constrains in a limited time. I enjoyed those before. In my opinion they are the best when they last one or two weeks. That makes them easy to commit to and you can stay on track with most announcements.

Build a VR scene in HTML with A-Frame

The origin of ‘Road to Jupiter’ 
 I’m a huge fan of the electronic musician Wolfgun . About two years ago he released two albums called ‘The Road to Jupiter’. There was a variety of promotional content like teasers on his YouTube channel, a website with Jupiter coming closer, a comic and two physical fan packages. (I’m sure I missed some items in this list.)…

Happy Document Freedom Day!

The day has come to celebrate open file formats which can be used without restrictions! The Document Freedom Day! 🎉🎊 
 To store data on a computer it has to be converted to a sequence of two values: on and off. To understand the sequence you need a written specification. The specification is a paper telling you how to interpret the sequence to reconstruct your data (e.g. an image). 
…

A weekend at the FOSDEM 2017

Last weekend (the 4th & 5th) the open source software conference FOSDEM took place in Brussels. A big thanks goes to the Université Libre de Bruxelles and all the sponsors for hosting this great event. 
 I hadn’t been at the FOSDEM nor in Brussels before and got there just in time for the opening ceremony. My morning was spent in the Mozilla Dev Room listing to what motivates the…

Build a rich text editor in the web

Just today I learned about the contenteditable attribute in HTML5 and it truly amazes me what can be done with it. When set the visitors of your web page can edit any text within the node. It is a global attribute so it can be applied to any HTML element. 
 Try it yourself! I set the contenteditable attribute on the next paragraph: 

 Edit me! 
 The attribute is inherited by all…