From 08657c553c309e94470b083c80e87c6f98983ba1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Norman=20K=C3=B6hring?= Date: Mon, 17 Jun 2024 09:55:36 +0200 Subject: [PATCH] moved to zine ssg --- .gitignore | 2 + README.md | 4 +- bin/blog.ts | 97 --- bin/til.ts | 65 -- bin/vss | Bin 1354912 -> 0 bytes blog/index.md | 83 --- build.sh | 3 - build.zig | 12 + build.zig.zon | 11 + ...-12-04-the-price-to-crack-your-password.md | 19 +- .../blog}/2017-04-09-the-magic-0xc2.md | 21 +- ...017-08-17-vuejs-reactivity-from-scratch.md | 19 +- .../2019-01-10-running-write-freely-on-arm.md | 20 +- ...se-openbsds-spleen-bitmap-font-in-linux.md | 19 +- .../blog}/2019-05-03-freddy-vs-json.md | 19 +- ...implementation-for-vue3-composition-api.md | 18 +- content/blog/index.md | 13 + cv/index.md => content/cv.md | 15 +- index.md => content/index.md | 29 +- now/index.md => content/now.md | 20 +- projects/index.md => content/projects.md | 15 +- setup/index.md => content/setup.md | 20 +- stack/index.md => content/stack.md | 20 +- content/til/2021-08-31.md | 13 + content/til/2021-09-03.md | 12 + content/til/2021-09-04.md | 13 + content/til/2021-09-05.md | 12 + {til => content/til}/2022-02-22.md | 14 +- content/til/2022-03-22.md | 17 + content/til/2022-03-28.md | 18 + {til => content/til}/2022-04-25.md | 13 +- {til => content/til}/2022-06-15.md | 13 +- {til => content/til}/2024-05-11.md | 16 +- content/til/2024-05-12.md | 21 + content/til/2024-05-13.md | 13 + content/til/index.md | 11 + ...2-04-the-price-to-crack-your-password.html | 385 ---------- dist/blog/2017-04-09-the-magic-0xc2.html | 123 ---- ...7-08-17-vuejs-reactivity-from-scratch.html | 154 ---- ...019-01-10-running-write-freely-on-arm.html | 197 ----- ...-openbsds-spleen-bitmap-font-in-linux.html | 109 --- dist/blog/2019-05-03-freddy-vs-json.html | 674 ------------------ ...plementation-for-vue3-composition-api.html | 277 ------- dist/blog/index.html | 156 ---- dist/cv/index.html | 248 ------- dist/extended.css | 46 -- dist/index.html | 166 ----- dist/now/index.html | 105 --- dist/projects/index.html | 94 --- dist/setup/index.html | 103 --- dist/stack/index.html | 107 --- dist/til/2021-08-31.html | 85 --- dist/til/2021-09-03.html | 84 --- dist/til/2021-09-04.html | 84 --- dist/til/2021-09-05.html | 84 --- dist/til/2022-02-22.html | 115 --- dist/til/2022-03-22.html | 87 --- dist/til/2022-03-28.html | 88 --- dist/til/2022-04-25.html | 105 --- dist/til/2022-06-15.html | 85 --- dist/til/2024-05-11.html | 92 --- dist/til/2024-05-12.html | 89 --- dist/til/2024-05-13.html | 85 --- dist/til/index.html | 168 ----- layouts/blog.html | 34 + layouts/blog/index.html | 83 --- layouts/cv/index.html | 83 --- layouts/homepage.html | 58 ++ layouts/index.html | 138 ---- layouts/now/index.html | 83 --- layouts/page.html | 17 + layouts/projects/index.html | 83 --- layouts/setup/index.html | 83 --- layouts/stack/index.html | 83 --- layouts/templates/base.html | 105 +++ layouts/til.html | 34 + layouts/til/index.html | 83 --- static/extended.css | 46 -- static/posts.css | 17 - static/style.css | 84 ++- til/2021-08-31.md | 5 - til/2021-09-03.md | 3 - til/2021-09-04.md | 3 - til/2021-09-05.md | 3 - til/2022-03-22.md | 9 - til/2022-03-28.md | 10 - til/2024-05-12.md | 13 - til/2024-05-13.md | 5 - til/index.md | 99 --- .../index.html | 159 +++++ .../blog/2017-04-09-the-magic-0xc2/index.html | 138 ++++ .../index.html | 133 ++++ .../index.html | 205 ++++++ .../index.html | 133 ++++ .../blog/2019-05-03-freddy-vs-json/index.html | 599 ++++++++++++++++ .../index.html | 280 ++++++++ zig-out/blog/index.html | 173 +++++ zig-out/cv/index.html | 114 +++ {dist => zig-out}/fediverse.svg | 0 {dist => zig-out}/gitforge.svg | 0 {dist => zig-out}/github.svg | 0 {dist => zig-out}/header.jpg | Bin zig-out/index.html | 157 ++++ {dist => zig-out}/instagram.svg | 0 {dist => zig-out}/linkedin.svg | 0 {dist => zig-out}/mail.svg | 0 {dist => zig-out}/mastodon.svg | 0 zig-out/now/index.html | 114 +++ {dist => zig-out}/posts.css | 17 - zig-out/projects/index.html | 114 +++ {dist => zig-out}/reddit.svg | 0 {dist => zig-out}/rubik-regular-minimal.woff2 | Bin zig-out/setup/index.html | 114 +++ zig-out/stack/index.html | 114 +++ {dist => zig-out}/style.css | 84 ++- {dist => zig-out}/threads.svg | 0 zig-out/til/2021-08-31/index.html | 125 ++++ zig-out/til/2021-09-03/index.html | 125 ++++ zig-out/til/2021-09-04/index.html | 125 ++++ zig-out/til/2021-09-05/index.html | 125 ++++ zig-out/til/2022-02-22/index.html | 153 ++++ zig-out/til/2022-03-22/index.html | 127 ++++ zig-out/til/2022-03-28/index.html | 128 ++++ zig-out/til/2022-04-25/index.html | 144 ++++ zig-out/til/2022-06-15/index.html | 125 ++++ zig-out/til/2024-05-11/index.html | 125 ++++ zig-out/til/2024-05-12/index.html | 129 ++++ zig-out/til/2024-05-13/index.html | 125 ++++ zig-out/til/index.html | 197 +++++ {dist => zig-out}/twitter.svg | 0 130 files changed, 5102 insertions(+), 5488 deletions(-) create mode 100644 .gitignore delete mode 100644 bin/blog.ts delete mode 100644 bin/til.ts delete mode 100755 bin/vss delete mode 100644 blog/index.md delete mode 100755 build.sh create mode 100644 build.zig create mode 100644 build.zig.zon rename {blog => content/blog}/2016-12-04-the-price-to-crack-your-password.md (94%) rename {blog => content/blog}/2017-04-09-the-magic-0xc2.md (90%) rename {blog => content/blog}/2017-08-17-vuejs-reactivity-from-scratch.md (96%) rename {blog => content/blog}/2019-01-10-running-write-freely-on-arm.md (94%) rename {blog => content/blog}/2019-01-10-use-openbsds-spleen-bitmap-font-in-linux.md (81%) rename {blog => content/blog}/2019-05-03-freddy-vs-json.md (98%) rename {blog => content/blog}/2020-06-29-a-store-implementation-for-vue3-composition-api.md (95%) create mode 100644 content/blog/index.md rename cv/index.md => content/cv.md (93%) rename index.md => content/index.md (59%) rename now/index.md => content/now.md (65%) rename projects/index.md => content/projects.md (90%) rename setup/index.md => content/setup.md (81%) rename stack/index.md => content/stack.md (94%) create mode 100644 content/til/2021-08-31.md create mode 100644 content/til/2021-09-03.md create mode 100644 content/til/2021-09-04.md create mode 100644 content/til/2021-09-05.md rename {til => content/til}/2022-02-22.md (78%) create mode 100644 content/til/2022-03-22.md create mode 100644 content/til/2022-03-28.md rename {til => content/til}/2022-04-25.md (79%) rename {til => content/til}/2022-06-15.md (64%) rename {til => content/til}/2024-05-11.md (83%) create mode 100644 content/til/2024-05-12.md create mode 100644 content/til/2024-05-13.md create mode 100644 content/til/index.md delete mode 100644 dist/blog/2016-12-04-the-price-to-crack-your-password.html delete mode 100644 dist/blog/2017-04-09-the-magic-0xc2.html delete mode 100644 dist/blog/2017-08-17-vuejs-reactivity-from-scratch.html delete mode 100644 dist/blog/2019-01-10-running-write-freely-on-arm.html delete mode 100644 dist/blog/2019-01-10-use-openbsds-spleen-bitmap-font-in-linux.html delete mode 100644 dist/blog/2019-05-03-freddy-vs-json.html delete mode 100644 dist/blog/2020-06-29-a-store-implementation-for-vue3-composition-api.html delete mode 100644 dist/blog/index.html delete mode 100644 dist/cv/index.html delete mode 100644 dist/extended.css delete mode 100644 dist/index.html delete mode 100644 dist/now/index.html delete mode 100644 dist/projects/index.html delete mode 100644 dist/setup/index.html delete mode 100644 dist/stack/index.html delete mode 100644 dist/til/2021-08-31.html delete mode 100644 dist/til/2021-09-03.html delete mode 100644 dist/til/2021-09-04.html delete mode 100644 dist/til/2021-09-05.html delete mode 100644 dist/til/2022-02-22.html delete mode 100644 dist/til/2022-03-22.html delete mode 100644 dist/til/2022-03-28.html delete mode 100644 dist/til/2022-04-25.html delete mode 100644 dist/til/2022-06-15.html delete mode 100644 dist/til/2024-05-11.html delete mode 100644 dist/til/2024-05-12.html delete mode 100644 dist/til/2024-05-13.html delete mode 100644 dist/til/index.html create mode 100644 layouts/blog.html delete mode 100644 layouts/blog/index.html delete mode 100644 layouts/cv/index.html create mode 100644 layouts/homepage.html delete mode 100644 layouts/index.html delete mode 100644 layouts/now/index.html create mode 100644 layouts/page.html delete mode 100644 layouts/projects/index.html delete mode 100644 layouts/setup/index.html delete mode 100644 layouts/stack/index.html create mode 100644 layouts/templates/base.html create mode 100644 layouts/til.html delete mode 100644 layouts/til/index.html delete mode 100644 static/extended.css delete mode 100644 til/2021-08-31.md delete mode 100644 til/2021-09-03.md delete mode 100644 til/2021-09-04.md delete mode 100644 til/2021-09-05.md delete mode 100644 til/2022-03-22.md delete mode 100644 til/2022-03-28.md delete mode 100644 til/2024-05-12.md delete mode 100644 til/2024-05-13.md delete mode 100644 til/index.md create mode 100644 zig-out/blog/2016-12-04-the-price-to-crack-your-password/index.html create mode 100644 zig-out/blog/2017-04-09-the-magic-0xc2/index.html create mode 100644 zig-out/blog/2017-08-17-vuejs-reactivity-from-scratch/index.html create mode 100644 zig-out/blog/2019-01-10-running-write-freely-on-arm/index.html create mode 100644 zig-out/blog/2019-01-10-use-openbsds-spleen-bitmap-font-in-linux/index.html create mode 100644 zig-out/blog/2019-05-03-freddy-vs-json/index.html create mode 100644 zig-out/blog/2020-06-29-a-store-implementation-for-vue3-composition-api/index.html create mode 100644 zig-out/blog/index.html create mode 100644 zig-out/cv/index.html rename {dist => zig-out}/fediverse.svg (100%) rename {dist => zig-out}/gitforge.svg (100%) rename {dist => zig-out}/github.svg (100%) rename {dist => zig-out}/header.jpg (100%) create mode 100644 zig-out/index.html rename {dist => zig-out}/instagram.svg (100%) rename {dist => zig-out}/linkedin.svg (100%) rename {dist => zig-out}/mail.svg (100%) rename {dist => zig-out}/mastodon.svg (100%) create mode 100644 zig-out/now/index.html rename {dist => zig-out}/posts.css (56%) create mode 100644 zig-out/projects/index.html rename {dist => zig-out}/reddit.svg (100%) rename {dist => zig-out}/rubik-regular-minimal.woff2 (100%) create mode 100644 zig-out/setup/index.html create mode 100644 zig-out/stack/index.html rename {dist => zig-out}/style.css (72%) rename {dist => zig-out}/threads.svg (100%) create mode 100644 zig-out/til/2021-08-31/index.html create mode 100644 zig-out/til/2021-09-03/index.html create mode 100644 zig-out/til/2021-09-04/index.html create mode 100644 zig-out/til/2021-09-05/index.html create mode 100644 zig-out/til/2022-02-22/index.html create mode 100644 zig-out/til/2022-03-22/index.html create mode 100644 zig-out/til/2022-03-28/index.html create mode 100644 zig-out/til/2022-04-25/index.html create mode 100644 zig-out/til/2022-06-15/index.html create mode 100644 zig-out/til/2024-05-11/index.html create mode 100644 zig-out/til/2024-05-12/index.html create mode 100644 zig-out/til/2024-05-13/index.html create mode 100644 zig-out/til/index.html rename {dist => zig-out}/twitter.svg (100%) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..137ffbf --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +zig-cache +*.tgz diff --git a/README.md b/README.md index e34cd80..ad0d645 100644 --- a/README.md +++ b/README.md @@ -2,5 +2,5 @@ ## Build Instructions -This homepage uses [VSS](https://github.com/vssio/vss/). To build, use: -`vss build` or `vss serve`. +This homepage uses [zine](https://zine-ssg.io/). To build, use: +`zig build` or `zig build serve -Dport=8080`. diff --git a/bin/blog.ts b/bin/blog.ts deleted file mode 100644 index d4fdbb5..0000000 --- a/bin/blog.ts +++ /dev/null @@ -1,97 +0,0 @@ -#!/bin/env deno run - -import { globber } from "https://deno.land/x/globber@0.1.0/mod.ts" - -interface FileIndex { - title: string - slug: string - abstr: string - date: string - readingTimeSlow: number - readingTimeFast: number -} - -const cwd = './blog/' -const outputPath = './blog/index.md' - -const fileIndex: FileIndex[] = [] - -const fileIter = globber({ cwd, include: ["????-??-??*.md"] }) -const decoder = new TextDecoder('utf-8') -const encoder = new TextEncoder() - -const header = `*Sometimes, I write long-form articles about a topic that I find interesting. I use this as a way to dive deeper into a topic, while often create an example project on the side.* - -Last updated: ${(new Date()).toISOString().slice(0,10)} - -` - -const template = `
- -
- %TITLE% - (%READING_TIME_FAST% to %READING_TIME_SLOW% minutes) -
-

- %ABSTRACT% -

-
-` - -function getAbstract(lines: string[]): string { - const sep = '' - const sep2 = '' - let foundSep = false - - return lines.slice(3).filter(line => { - if (foundSep) return false - if (line.indexOf(sep) >= 0 || line.indexOf(sep2) >= 0) { - foundSep = true - return false - } - return true - }).join('\n').trim() -} - -function render(fi: FileIndex) { - return template - .replaceAll('%DATE%', fi.date) - .replaceAll('%TITLE%', fi.title) - .replaceAll('%SLUG%', fi.slug) - .replaceAll('%ABSTRACT%', fi.abstr) - .replaceAll('%READING_TIME_FAST%', fi.readingTimeFast) - .replaceAll('%READING_TIME_SLOW%', fi.readingTimeSlow) -} - -for await (const file of fileIter) { - if (file.isDirectory) { - console.log('ignoring directory', file.relative) - break - } - - const path = file.absolute - const date = file.relative.slice(0, 10) - const slug = file.relative.slice(0, -3) - - const raw = await Deno.readFile(path) - const text = decoder.decode(raw) - const words = text.trim().split(/\s+/).length - const lines = text.split('\n') - - const title = lines[0].slice(2) - const abstr = getAbstract(lines) - - // calculates estimated reading times: [fast, slow] - // wpm numbers from https://thereadtime.com/ - const readingTimeFast = Math.round(words / 207) - const readingTimeSlow = Math.round(words / 167) - - fileIndex.push({ title, slug, abstr, date, readingTimeFast, readingTimeSlow }) -} - -const output = fileIndex -.sort((a, b) => a.date.localeCompare(b.date) * -1) -.map(render) -.join('\n') - -Deno.writeFile(outputPath, encoder.encode(header+output)) diff --git a/bin/til.ts b/bin/til.ts deleted file mode 100644 index 2cc4b78..0000000 --- a/bin/til.ts +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/env deno run - -import { globber } from "https://deno.land/x/globber@0.1.0/mod.ts" - -interface FileIndex { - title: string - source: string - date: string -} - -const cwd = './til/' -const outputPath = './til/index.md' - -const fileIndex: FileIndex[] = [] - -const fileIter = globber({ cwd, include: ["????-??-??.md"] }) -const decoder = new TextDecoder('utf-8') -const encoder = new TextEncoder() - -const header = `*This page contains short notes and sometimes code snippets, of interesting things I just found out.* - -Last updated: ${(new Date()).toISOString().slice(0,10)} - -` - -const template = `
- -
- %TITLE% - (source) -
-
-` - -function render(fi: FileIndex) { - return template - .replaceAll('%DATE%', fi.date) - .replaceAll('%SOURCE%', fi.source) - .replaceAll('%TITLE%', fi.title) -} - -for await (const file of fileIter) { - if (file.isDirectory) { - console.log('ignoring directory', file.relative) - break - } - - const path = file.absolute - const date = file.relative.slice(0, -3) - - const raw = await Deno.readFile(path) - const lines = decoder.decode(raw).split('\n') - - const title = lines[0].slice(2) - const source = lines[2].startsWith('[source](') ? lines[2].slice(9, -1) : '#' - - fileIndex.push({ title, source, date }) -} - -const output = fileIndex -.sort((a, b) => a.date.localeCompare(b.date) * -1) -.map(render) -.join('\n') - -Deno.writeFile(outputPath, encoder.encode(header+output)) diff --git a/bin/vss b/bin/vss deleted file mode 100755 index 225b79e5e85cf6c13ae3dc06cabf98533814c0c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1354912 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�@@>l`IVzR8Yuk=3L09aSC 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≺Ek_>>sX{1D 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

AgW4PY*cUYA-Fy@*Q!IqHG516ZIc#%dIHYV;~q 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%0AK3NCMuIIUeIuE6>PYFie?HilZonG;^VJFi4%r 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 diff --git a/blog/index.md b/blog/index.md deleted file mode 100644 index 99734f3..0000000 --- a/blog/index.md +++ /dev/null @@ -1,83 +0,0 @@ -*Sometimes, I write long-form articles about a topic that I find interesting. I use this as a way to dive deeper into a topic, while often create an example project on the side.* - -Last updated: 2024-05-13 - -

- -
- - -

- I will tell you how I created a simple top-down shooter in JavaScript without using any additional libraries. But this article is not replicating the full game but instead tries to show which steps to take to start writing a game from scratch. -

-
- -
- - -

- Yesterday Frederic Cambus changed the default console font in OpenBSD to his self made font [Spleen](https://github.com/fcambus/spleen) as written in this [BSD Journal article](https://undeadly.org/cgi?action=article;sid=20190110064857). -

-
- -
- -
- Running writefreely 0.7 on Arm - (4 to 5 minutes) -
-

- This is a follow-up on -[The expected tutorial: How to install WriteFreely on a Raspberry pi 3 in 10 steps](https://write.as/buttpicker/the-expected-tutorial-how-to-install-writefreely-on-a-raspberry-pi-3-in-10). I will explain what was necessary to make cross-compiling work for newer WriteFreely versions with SQLite support. -

-
- -
- -
- Vuejs Reactivity From Scratch - (8 to 9 minutes) -
-

- Vuejs is the star newcomer in the Javascript Framework world. People love how it makes complicated things very simple yet performant. One of the more exciting features is its seemingly magic reactivity. Plain data objects in components magically invoke a rerender when a property changes. -

-
- -
- -
- The Magic 0xC2 - (3 to 4 minutes) -
-

- I built a web application with file upload functionality. Some Vue.js in the front and a CouchDB in the back. Everything should be pretty simple and straigt forward. - -But… -

-
- -
- -
- The price to crack your password - (6 to 7 minutes) -
-

- Nearly six years ago, I wrote about password complexity and showed how long it takes to crack passwords per length. You can find that [article on github](https://github.com/nkoehring/hexo-blog/blob/master/source/_posts/spas-mit-passwortern.md) (in German). -

-
diff --git a/build.sh b/build.sh deleted file mode 100755 index cffc730..0000000 --- a/build.sh +++ /dev/null @@ -1,3 +0,0 @@ -deno run --allow-read --allow-write bin/til.ts && -deno run --allow-read --allow-write bin/blog.ts && -./bin/vss build diff --git a/build.zig b/build.zig new file mode 100644 index 0000000..f07cab7 --- /dev/null +++ b/build.zig @@ -0,0 +1,12 @@ +const std = @import("std"); +const zine = @import("zine"); + +pub fn build(b: *std.Build) !void { + try zine.addWebsite(b, .{ + .title = "the codeartist — programmer and engineer based in Berlin", + .host_url = "https://koehr.ing", + .layouts_dir_path = "layouts", + .content_dir_path = "content", + .static_dir_path = "static", + }); +} diff --git a/build.zig.zon b/build.zig.zon new file mode 100644 index 0000000..f27c1fe --- /dev/null +++ b/build.zig.zon @@ -0,0 +1,11 @@ +.{ + .name = "koehr.ing", + .version = "0.0.0", + .dependencies = .{ + .zine = .{ + .url = "git+https://github.com/kristoff-it/zine#c4924570fa54ab204bb8b1bf1a140d0cc04ab08a", + .hash = "1220e2050b5fb6788675c0af6b2bfb601226fc90fb32aeeccc95cf9f4945543bd13a", + }, + }, + .paths = .{"."}, +} diff --git a/blog/2016-12-04-the-price-to-crack-your-password.md b/content/blog/2016-12-04-the-price-to-crack-your-password.md similarity index 94% rename from blog/2016-12-04-the-price-to-crack-your-password.md rename to content/blog/2016-12-04-the-price-to-crack-your-password.md index c381a1a..1911d59 100644 --- a/blog/2016-12-04-the-price-to-crack-your-password.md +++ b/content/blog/2016-12-04-the-price-to-crack-your-password.md @@ -1,10 +1,15 @@ -# The price to crack your password - -*Written 2016-12-04* - -Nearly six years ago, I wrote about password complexity and showed how long it takes to crack passwords per length. You can find that [article on github](https://github.com/nkoehring/hexo-blog/blob/master/source/_posts/spas-mit-passwortern.md) (in German). - - +--- +{ +.title = "The price to crack your password", +.date = @date("2016-12-04T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "page.html", +.description = "Nearly six years ago, I wrote about password complexity and showed how long it takes to crack passwords per length.", +.tags = [], +} +--- +You can find the original [article on github](https://github.com/nkoehring/hexo-blog/blob/master/source/_posts/spas-mit-passwortern.md) (in German). So, times changed and I thought about a reiteration of that topic, but instead focussing on the amount of money you need to crack the password using Amazons biggest GPU computing instances [p2.16xlarge](https://aws.amazon.com/ec2/instance-types/), which – at the time of writing this - costs 14.4 USD per hour. I will also compare this with the much faster [Sagitta Brutalis](https://sagitta.pw/hardware/gpu-compute-nodes/brutalis/) (nice name, eh?), a 18500 USD computer optimised for GPU calculation. diff --git a/blog/2017-04-09-the-magic-0xc2.md b/content/blog/2017-04-09-the-magic-0xc2.md similarity index 90% rename from blog/2017-04-09-the-magic-0xc2.md rename to content/blog/2017-04-09-the-magic-0xc2.md index ffc51e0..7495090 100644 --- a/blog/2017-04-09-the-magic-0xc2.md +++ b/content/blog/2017-04-09-the-magic-0xc2.md @@ -1,13 +1,14 @@ -# The Magic 0xC2 - -*Written 2017-04-09* - -I built a web application with file upload functionality. Some Vue.js in the front and a CouchDB in the back. Everything should be pretty simple and straigt forward. - -But… - - - +--- +{ +.title = "The Magic 0xC2", +.date = @date("2017-04-09T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "page.html", +.description = "I built a web application with file upload functionality. Some Vue.js in the front and a CouchDB in the back. Everything should be pretty simple and straigt forward. But…", +.tags = [], +} +--- When I uploaded image files, they somehow got mangled. The uploaded file was bigger than the original and the new "file format" was not readable by any means. I got intrigued. What is it, that happens to the files? The changes seemed very random but reproducible, so I created a few test files to see what exactly changes and when. My first file looked like this: diff --git a/blog/2017-08-17-vuejs-reactivity-from-scratch.md b/content/blog/2017-08-17-vuejs-reactivity-from-scratch.md similarity index 96% rename from blog/2017-08-17-vuejs-reactivity-from-scratch.md rename to content/blog/2017-08-17-vuejs-reactivity-from-scratch.md index 1d1a67d..b575477 100644 --- a/blog/2017-08-17-vuejs-reactivity-from-scratch.md +++ b/content/blog/2017-08-17-vuejs-reactivity-from-scratch.md @@ -1,11 +1,14 @@ -# Vuejs Reactivity From Scratch - -*Written 2017-08-17* - -Vuejs is the star newcomer in the Javascript Framework world. People love how it makes complicated things very simple yet performant. One of the more exciting features is its seemingly magic reactivity. Plain data objects in components magically invoke a rerender when a property changes. - - - +--- +{ +.title = "Vuejs Reactivity From Scratch", +.date = @date("2017-08-17T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "page.html", +.description = "Vuejs is the star newcomer in the Javascript Framework world. People love how it makes complicated things very simple yet performant. One of the more exciting features is its seemingly magic reactivity. Plain data objects in components magically invoke a rerender when a property changes.", +.tags = [], +} +--- _NOTE_: This is a copy of the original article from Aug 17th, 2017. You can [read the archived original on archive.org](https://web.archive.org/web/20190113013559/https://log.koehr.in/2017/08/17/vuejs-reactivity-from-scratch) diff --git a/blog/2019-01-10-running-write-freely-on-arm.md b/content/blog/2019-01-10-running-write-freely-on-arm.md similarity index 94% rename from blog/2019-01-10-running-write-freely-on-arm.md rename to content/blog/2019-01-10-running-write-freely-on-arm.md index 48a7007..578a2da 100644 --- a/blog/2019-01-10-running-write-freely-on-arm.md +++ b/content/blog/2019-01-10-running-write-freely-on-arm.md @@ -1,11 +1,21 @@ -# Running writefreely 0.7 on Arm - -*Written 2019-01-10* +--- +{ +.title = "Running writefreely 0.7 on Arm", +.date = @date("2019-01-10T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "page.html", +.description = "What was necessary to make cross-compiling work for newer WriteFreely versions with SQLite support.", +.tags = [], +} +--- + +--- This is a follow-up on -[The expected tutorial: How to install WriteFreely on a Raspberry pi 3 in 10 steps](https://write.as/buttpicker/the-expected-tutorial-how-to-install-writefreely-on-a-raspberry-pi-3-in-10). I will explain what was necessary to make cross-compiling work for newer WriteFreely versions with SQLite support. +[The expected tutorial: How to install WriteFreely on a Raspberry pi 3 in 10 steps](https://write.as/buttpicker/the-expected-tutorial-how-to-install-writefreely-on-a-raspberry-pi-3-in-10). - +--- I did it! I finally got WriteFreely to run on my Arm server (check out [Scaleways baremetal cloud servers](https://www.scaleway.com/baremetal-cloud-servers/)). diff --git a/blog/2019-01-10-use-openbsds-spleen-bitmap-font-in-linux.md b/content/blog/2019-01-10-use-openbsds-spleen-bitmap-font-in-linux.md similarity index 81% rename from blog/2019-01-10-use-openbsds-spleen-bitmap-font-in-linux.md rename to content/blog/2019-01-10-use-openbsds-spleen-bitmap-font-in-linux.md index 6c9fe7f..950cb32 100644 --- a/blog/2019-01-10-use-openbsds-spleen-bitmap-font-in-linux.md +++ b/content/blog/2019-01-10-use-openbsds-spleen-bitmap-font-in-linux.md @@ -1,10 +1,15 @@ -# Use OpenBSDs Spleen bitmap font in Linux - -*Written 2019-01-10* - -Yesterday Frederic Cambus changed the default console font in OpenBSD to his self made font [Spleen](https://github.com/fcambus/spleen) as written in this [BSD Journal article](https://undeadly.org/cgi?action=article;sid=20190110064857). - - +--- +{ +.title = "Use OpenBSDs Spleen bitmap font in Linux", +.date = @date("2019-01-10T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "page.html", +.description = "Yesterday Frederic Cambus changed the default console font in OpenBSD to his self made font.", +.tags = [], +} +--- +The font is called [Spleen](https://github.com/fcambus/spleen), as mentioned in this [BSD Journal article](https://undeadly.org/cgi?action=article;sid=20190110064857). To be totally honest, I stopped thinking about TTY (aka console) fonts a long time ago. It just happened to get interesting again when I got a HiRes screen and suddenly a magnifying glass was necessary to read the TTY. Yes I am one of those people who still deny the existence of graphical installers. If you want to change my mind, feel free to write me. diff --git a/blog/2019-05-03-freddy-vs-json.md b/content/blog/2019-05-03-freddy-vs-json.md similarity index 98% rename from blog/2019-05-03-freddy-vs-json.md rename to content/blog/2019-05-03-freddy-vs-json.md index 4415112..3a0e466 100644 --- a/blog/2019-05-03-freddy-vs-json.md +++ b/content/blog/2019-05-03-freddy-vs-json.md @@ -1,11 +1,14 @@ -# Freddy vs JSON: how to make a top-down shooter - -*Written 2019-05-03* - -I will tell you how I created a simple top-down shooter in JavaScript without using any additional libraries. But this article is not replicating the full game but instead tries to show which steps to take to start writing a game from scratch. - - - +--- +{ +.title = "Freddy vs JSON: how to make a top-down shooter", +.date = @date("2019-05-03T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "page.html", +.description = "I will tell you how I created a simple top-down shooter in JavaScript without using any additional libraries. But this article is not replicating the full game but instead tries to show which steps to take to start writing a game from scratch.", +.tags = [], +} +--- A couple of years ago (Oh it's almost a decade! Am I that old already?), when the Canvas API got widely adopted by most browsers, I started experimenting with it. The fascination was high and I immediately tried to use it for interactive toys and games. Of course, the games I made (and make) are usually not very sophisticated. That is mainly because I create them only for fun and without much eye-candy or even sound. What really fascinates me is the underlying mechanics. Otherwise, I could just use one of those [awesome game engines](https://github.com/collections/javascript-game-engines), that exist already. diff --git a/blog/2020-06-29-a-store-implementation-for-vue3-composition-api.md b/content/blog/2020-06-29-a-store-implementation-for-vue3-composition-api.md similarity index 95% rename from blog/2020-06-29-a-store-implementation-for-vue3-composition-api.md rename to content/blog/2020-06-29-a-store-implementation-for-vue3-composition-api.md index b0efa21..152d9bc 100644 --- a/blog/2020-06-29-a-store-implementation-for-vue3-composition-api.md +++ b/content/blog/2020-06-29-a-store-implementation-for-vue3-composition-api.md @@ -1,10 +1,14 @@ -# A store implementation from scratch using Vue3's Composition API - -*Written 2020-06-29* - -I've built a store implementation that allows name-spaced actions and helps with the separation of concerns. The new Composition API in Vue3 also allows completely new, convenient ways of using it. - - +--- +{ +.title = "A store implementation from scratch using Vue3's Composition API", +.date = @date("2020-06-29T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "page.html", +.description = "I've built a store implementation that allows name-spaced actions and helps with the separation of concerns. The new Composition API in Vue3 also allows completely new, convenient ways of using it.", +.tags = [], +} +--- --- diff --git a/content/blog/index.md b/content/blog/index.md new file mode 100644 index 0000000..64d4c57 --- /dev/null +++ b/content/blog/index.md @@ -0,0 +1,13 @@ +--- +{ +.title = "Blog", +.date = @date("2024-05-13T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "blog.html", +.description = "Sometimes, I write long-form articles about a topic that I find interesting. I use this as a way to dive deeper into a topic, while often create an example project on the side.", +.tags = [], +} +--- + + diff --git a/cv/index.md b/content/cv.md similarity index 93% rename from cv/index.md rename to content/cv.md index 18b6228..cd17f00 100644 --- a/cv/index.md +++ b/content/cv.md @@ -1,7 +1,14 @@ -*My Curriculum Vitae / Resume. I know, there is a difference. This page is technically a resume, while the whole site would be closer to a CV.* - -Last updated: 2024-05-20 - +--- +{ +.title = "CV / Résumé", +.date = @date("2024-05-20T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "page.html", +.description = "My Curriculum Vitae / Résumé. I know, there is a difference. This page is technically a résumé, while the whole site would be closer to a CV.", +.tags = [], +} +--- In me you will find an enthusiastic, passionate developer with around 13 years of professional experience in and around software development, mainly full-stack web development and consulting, but also coaching and community work. I strive to seek roles in creative, forward thinking companies with diverse teams that offer challenging work, trust and responsibility. Since 2022 I'm the principal frontend engineer and frontend chapter lead of [Code Gaia](https://codegaia.io). diff --git a/index.md b/content/index.md similarity index 59% rename from index.md rename to content/index.md index eafd8a6..da68384 100644 --- a/index.md +++ b/content/index.md @@ -1,3 +1,14 @@ +--- +{ +.title = "Welcome", +.date = @date("2024-06-16T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "homepage.html", +.description = "", +.tags = [], +} +--- # experience > Thirteen years of professional experience in a couple of tweets @@ -24,22 +35,22 @@ Many people want to learn and grow. Whenever I can I try to help those people by
- ![Mail](/mail.svg) n@<this domain> + n@[thisdomain] - ![Fediverse / Mastodon](/fediverse.svg) [@Koehr\@mstdn.io](https://mstdn.io/@Koehr/) + [@Koehr\@mstdn.io](https://mstdn.io/@Koehr/) - ![Gitforge](/gitforge.svg) [git.k0r.in](https://git.k0r.in/) + [git.k0r.in](https://git.k0r.in/) - ![LinkedIn](/linkedin.svg) [Norman Köhring](https://linkedin.com/in/norman-köhring-950448109/) + [Norman Köhring](https://linkedin.com/in/norman-köhring-950448109/) - ![Instagram](/instagram.svg) [coffee_n_code](https://instagram.com/coffee_n_code/) + [coffee_n_code](https://instagram.com/coffee_n_code/) - ![Threads](/threads.svg) [coffee_n_code](https://instagram.com/coffee_n_code/) + [coffee_n_code](https://threads.net/@coffee_n_code/) - ![Reddit](/reddit.svg) [/u/koehr](https://www.reddit.com/user/koehr/) + [/u/koehr](https://www.reddit.com/user/koehr/) - ![Github](/github.svg) [nkoehring](https://github.com/nkoehring/) + [nkoehring](https://github.com/nkoehring/) - ![Twitter](/twitter.svg) [koehr_in](https://twitter.com/koehr_in/) + [koehr_in](https://twitter.com/koehr_in/)
diff --git a/now/index.md b/content/now.md similarity index 65% rename from now/index.md rename to content/now.md index 0ea6759..3c5c0da 100644 --- a/now/index.md +++ b/content/now.md @@ -1,8 +1,22 @@ -*This page shows what I'm up to at the moment, following the idea of the [/now page](https://sive.rs/nowff) introduced by [Derek Sivers](https://sive.rs/). You can find more now pages on [nownownow](https://nownownow.com/).* +--- +{ +.title = "Now", +.date = @date("2024-05-12T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "page.html", +.description = "This page shows what I'm up to at the moment, following the idea of Derek Sivers.", +.tags = [], +} +--- -Last updated: 2024-05-12 +--- -Still live in Berlin where I am working fully remote. I'm appproaching the second anniversary at [Code Gaia](https://codegaia.io) now and have no plans to change any of it. +You can find more now pages on [nownownow](https://nownownow.com/). + +--- + +Still live in Berlin where I am working fully remote. I'm approaching the second anniversary at [Code Gaia](https://codegaia.io) now and have no plans to change any of it. ## Priorities diff --git a/projects/index.md b/content/projects.md similarity index 90% rename from projects/index.md rename to content/projects.md index 53569cf..4be3b46 100644 --- a/projects/index.md +++ b/content/projects.md @@ -1,7 +1,14 @@ -*My currently active projects. This is mostly about software, but might also include some TTRPG stuff, from time to time.* - -Last updated: 2024-05-17 - +--- +{ +.title = "Projects", +.date = @date("2024-05-17T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "page.html", +.description = "My currently active projects. This is mostly about software, but might also include some TTRPG stuff, from time to time.", +.tags = [], +} +--- ## Homepage Overhaul > With lots of work comes lots of opportunity for productive procrastination diff --git a/setup/index.md b/content/setup.md similarity index 81% rename from setup/index.md rename to content/setup.md index 3cb2497..3a1f2c9 100644 --- a/setup/index.md +++ b/content/setup.md @@ -1,6 +1,20 @@ -*As a software engineer, the tools I use define how I work and I find it inspiring to see which tools other people use. This page focusses on Hardware. For Software, check [/stack](/stack).* - -Last updated: 2024-05-20 +--- +{ +.title = "Setup", +.date = @date("2024-05-20T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "page.html", +.description = "As a software engineer, the tools I use define how I work and I find it inspiring to see which tools other people use.", +.tags = [], +} +--- + +--- + +This page focusses on Hardware. For Software, check [/stack](/stack). + +--- I used to work on laptops without any extras, but over the years ergonomics got more and more important. Now I have a second screen, a standing desk and an ergonomic chair. My main keyboard is split in half and my pointer device is a big red ball. diff --git a/stack/index.md b/content/stack.md similarity index 94% rename from stack/index.md rename to content/stack.md index a78b8d0..922991d 100644 --- a/stack/index.md +++ b/content/stack.md @@ -1,6 +1,20 @@ -*As a software engineer, the tools I use define how I work and I find it inspiring to see which tools other people use. This page focusses on Software. For Hardware, check [/setup](/setup).* - -Last updated: 2024-05-13 +--- +{ +.title = "Stack", +.date = @date("2024-05-13T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "page.html", +.description = "As a software engineer, the tools I use define how I work and I find it inspiring to see which tools other people use.", +.tags = [], +} +--- + +--- + +This page focusses on Software. For Hardware, check [/setup](/setup). + +--- My software stack is pretty old-school. I prefer CLI applications for almost everything. The only GUI programs I usually run are browsers, image manipulators and LogSeq. diff --git a/content/til/2021-08-31.md b/content/til/2021-08-31.md new file mode 100644 index 0000000..ae2fbe9 --- /dev/null +++ b/content/til/2021-08-31.md @@ -0,0 +1,13 @@ +--- +{ +.title = "There is a HTML tag for \"Word Break Opportunity\"", +.date = @date("2021-08-31T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "til.html", +.description = "", +.tags = [], +.custom = { .source = "https://www.w3schools.com/TAGS/tag_wbr.asp" }, +} +--- +For example: `Kaufhaus`. diff --git a/content/til/2021-09-03.md b/content/til/2021-09-03.md new file mode 100644 index 0000000..4244bb8 --- /dev/null +++ b/content/til/2021-09-03.md @@ -0,0 +1,12 @@ +--- +{ +.title = "Bush refused offer to discuss Osama Bin Laden handover", +.date = @date("2021-09-03T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "til.html", +.description = "", +.tags = [], +.custom = { .source = "https://www.theguardian.com/world/2001/oct/14/afghanistan.terrorism5" }, +} +--- diff --git a/content/til/2021-09-04.md b/content/til/2021-09-04.md new file mode 100644 index 0000000..767b522 --- /dev/null +++ b/content/til/2021-09-04.md @@ -0,0 +1,13 @@ +--- +{ +.title = "git fetch repo_url remote_branch:new_local_branch", +.date = @date("2021-09-04T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "til.html", +.description = "", +.tags = [], +.custom = { .source = "https://twitter.com/lucas59356/status/1433507127570669569" }, +} +--- +`git fetch $repo_url $remote_branch:$new_local_branch` diff --git a/content/til/2021-09-05.md b/content/til/2021-09-05.md new file mode 100644 index 0000000..dc3a8ee --- /dev/null +++ b/content/til/2021-09-05.md @@ -0,0 +1,12 @@ +--- +{ +.title = "E-Mail that isn't spam is called ham!", +.date = @date("2021-09-05T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "til.html", +.description = "", +.tags = [], +.custom = { .source = "https://twitter.com/claranellist/status/1433539284779220997" }, +} +--- diff --git a/til/2022-02-22.md b/content/til/2022-02-22.md similarity index 78% rename from til/2022-02-22.md rename to content/til/2022-02-22.md index a730cdc..4292dbc 100644 --- a/til/2022-02-22.md +++ b/content/til/2022-02-22.md @@ -1,5 +1,15 @@ -# Adding aliases in vite with typescript needs the same alias in tsconfig - +--- +{ +.title = "Adding aliases in vite with typescript needs the same alias in tsconfig", +.date = @date("2022-02-22T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "til.html", +.description = "", +.tags = [], +.custom = { .source = "" }, +} +--- For example: The following vite.config.ts: diff --git a/content/til/2022-03-22.md b/content/til/2022-03-22.md new file mode 100644 index 0000000..f515947 --- /dev/null +++ b/content/til/2022-03-22.md @@ -0,0 +1,17 @@ +--- +{ +.title = "There is a file system for EFI vars now", +.date = @date("2022-03-22T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "til.html", +.description = "", +.tags = [], +.custom = { .source = "https://www.kernel.org/doc/html/latest/filesystems/efivarfs.html" }, +} +--- +On kernel updates I saw a recurring "EFI variables are not supported on this system", so I investigated and learned that the new EFI variables are provided via a file system that needs to be mounted first: + +```sh +mount -t efivarfs efivarfs /sys/firmware/efi/efivars +``` diff --git a/content/til/2022-03-28.md b/content/til/2022-03-28.md new file mode 100644 index 0000000..16b2dbd --- /dev/null +++ b/content/til/2022-03-28.md @@ -0,0 +1,18 @@ +--- +{ +.title = "pwdx command shows the working path of a process", +.date = @date("2022-03-28T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "til.html", +.description = "", +.tags = [], +.custom = { .source = "https://twitter.com/mani_maranp/status/1508476973529825281)" }, +} +--- +For example: + +```sh +% pwdx 1984 +> 1984: /home/george/ttlctrl +``` diff --git a/til/2022-04-25.md b/content/til/2022-04-25.md similarity index 79% rename from til/2022-04-25.md rename to content/til/2022-04-25.md index cc6aae5..f7bfdca 100644 --- a/til/2022-04-25.md +++ b/content/til/2022-04-25.md @@ -1,5 +1,14 @@ -# Jest mocks are ...different - +--- +{ +.title = "Jest mocks are ...different", +.date = @date("2022-04-25T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "til.html", +.description = "", +.tags = [], +} +--- If you want to mock an imported function in Jest in a way that allows you to check if it has been called, you can not do the seemingly straighforward: ```js diff --git a/til/2022-06-15.md b/content/til/2022-06-15.md similarity index 64% rename from til/2022-06-15.md rename to content/til/2022-06-15.md index 339997a..b4a44f6 100644 --- a/til/2022-06-15.md +++ b/content/til/2022-06-15.md @@ -1,5 +1,14 @@ -# Disallowed Focussed Tests and how it saved my day - +--- +{ +.title = "Disallowed Focussed Tests and how it saved my day", +.date = @date("2022-06-15T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "til.html", +.description = "", +.tags = [], +} +--- Today I was about to push a focussed test. A focussed test, you ask? In Jest (and others) one can run only a specific test, by writing `it.only(...`. Pushing this to production might create some funny or not so funny side effects though. Luckily there is the `no-focussed-tests` linter rule in [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest). diff --git a/til/2024-05-11.md b/content/til/2024-05-11.md similarity index 83% rename from til/2024-05-11.md rename to content/til/2024-05-11.md index 57e1f5f..194fc78 100644 --- a/til/2024-05-11.md +++ b/content/til/2024-05-11.md @@ -1,7 +1,15 @@ -# Rob Pike's 5 Rules of Programming - -[source](https://users.ece.utexas.edu/~adnan/pike.html) - +--- +{ +.title = "Rob Pike's 5 Rules of Programming", +.date = @date("2024-05-11T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "til.html", +.description = "", +.tags = [], +.custom = { .source = "https://users.ece.utexas.edu/~adnan/pike.html" }, +} +--- 1. You can't tell where a program is going to spend its time. Bottlenecks occur in surprising places, so don't try to second guess and put in a speed hack until you've proven that's where the bottleneck is. 2. Measure. Don't tune for speed until you've measured, and even then don't unless one part of the code overwhelms the rest. 3. Fancy algorithms are slow when n is small, and n is usually small. Fancy algorithms have big constants. Until you know that n is frequently going to be big, don't get fancy. (Even if n does get big, use Rule 2 first.) diff --git a/content/til/2024-05-12.md b/content/til/2024-05-12.md new file mode 100644 index 0000000..7c06513 --- /dev/null +++ b/content/til/2024-05-12.md @@ -0,0 +1,21 @@ +--- +{ +.title = "Sort list of strings in Javascript", +.date = @date("2024-05-12T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "til.html", +.description = "", +.tags = [], +.custom = { .source = "https://stackoverflow.com/questions/6712034/sort-array-by-firstname-alphabetically-in-javascript" }, +} +--- +```ts +users.sort((a, b) => a.firstname.localeCompare(b.firstname)) +``` + +or reversed order: + +```ts +users.sort((a, b) => a.firstname.localeCompare(b.firstname) * -1) +``` diff --git a/content/til/2024-05-13.md b/content/til/2024-05-13.md new file mode 100644 index 0000000..8e0b071 --- /dev/null +++ b/content/til/2024-05-13.md @@ -0,0 +1,13 @@ +--- +{ +.title = "Reading speed is usually from 100 to 260 words per minute", +.date = @date("2024-05-13T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "til.html", +.description = "", +.tags = [], +.custom = { .source = "https://thereadtime.com/" }, +} +--- +With an average of 183 wpm. diff --git a/content/til/index.md b/content/til/index.md new file mode 100644 index 0000000..9e79d75 --- /dev/null +++ b/content/til/index.md @@ -0,0 +1,11 @@ +--- +{ +.title = "Today I Learned", +.date = @date("2024-05-13T00:00:00"), +.author = "koehr", +.draft = false, +.layout = "til.html", +.description = "This page contains short notes and sometimes code snippets, of interesting things I just found out.", +.tags = [], +} +--- diff --git a/dist/blog/2016-12-04-the-price-to-crack-your-password.html b/dist/blog/2016-12-04-the-price-to-crack-your-password.html deleted file mode 100644 index 53a23d8..0000000 --- a/dist/blog/2016-12-04-the-price-to-crack-your-password.html +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - Weblog aka Blog // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Weblog

-
- -

The price to crack your password

-

Written 2016-12-04

-

Nearly six years ago, I wrote about password complexity and showed how long it takes to crack passwords per length. You can find that article on github (in German).

- -

So, times changed and I thought about a reiteration of that topic, but instead focussing on the amount of money you need to crack the password using Amazons biggest GPU computing instances p2.16xlarge, which – at the time of writing this - costs 14.4 USD per hour. I will also compare this with the much faster Sagitta Brutalis (nice name, eh?), a 18500 USD computer optimised for GPU calculation.

-

Disclaimer

-

The numbers on this article always assume brute-force attacks, that means the attacker uses a program that tries all possible combinations until it finds the password. The numbers indicate average time to compute all possible entries. If the program simply adds up, for example, from 000000 to 999999 and your password is 000001, it will be found much faster of course.

-

How long a single calculation needs also depends on the used hashing algorithm. I will compare some of the typically used algorithms. In case you have to implement a password security system, please use BCrypt which is in most cases the best choice but NEVER try to implement something on your own! It is never ever a good idea to create an own password hashing scheme, even if it is just assembled out of existing building blocks. Use the battle-tested standard solutions. They are peer-reviewed and the safest and most robust you can get.

-

Password complexity basics

-

Password complexity is calculated out of the possible number of combinations. So a 10-character password that only contains numbers is far less complex than a mix of letters and numbers of the same length. Usually an attacker has no idea if a specific password only contains numbers or letters, but a brute-force attack will try simpler combinations first.

-

To calculate the complexity of a password, find the amount of possible combinations first:

-
    -
  • Numbers: 10
  • -
  • ASCII Lowercase letters: 26
  • -
  • ASCII Uppercase letters: 26
  • -
  • ASCII Punctuation: 33
  • -
  • Other ASCII Characters: 128
  • -
  • Unicode: millions
  • -
-

To get the complexity of your password, simply add up the numbers. A typical password contains numbers, lowercase and uppercase letters which results in 62 possible combinations per character. Add some punctuation to raise that number to 95.

-

Other ASCII Characters are the less typical ones like ÿ and Ø which add to the complexity but might be hard to type on foreign keyboards. Unicode is super hard (if not impossible) to type on some computers but would theoretically add millions of possible characters. Fancy some ਪੰਜਾਬੀ ਦੇ in your password?

-

A very important factor in the password complexity is of course also the length. And because random passwords with crazy combinations of numbers, letters and punctuation are hard to remember, some people suggest to use long combination of normal words instead.

-

The password ke1r$u@U is considered a very secure password as the time of writing this article. Its complexity calculates like this:

-

8 characters with 95 possibilites:

-

95^8 = 6634204312890625 = ~6.6×10^15

-

log2(x) calculates the complexity in bits:

-

log2(6634204312890625) = ~52.56 bits

-

Data sources

-

I didn't try the password cracking myself, and neither did I ask a friend (insert trollface here). Instead I used publicly available benchmark results:

- -

The results

-

I will compare some widely used password hashing methods, programs and -protocols for four different password complexity categories:

-
    -
  • eight numeric digits (might be your birthday)
  • -
  • eight alphanumeric characters (eg 'pa55W0Rd')
  • -
  • eigth alphanumeric characters mixed with special character (eg 'pa$$W0Rd')
  • -
  • a long memorisable pass sentence ('correct horse battery staple')
  • -
-

eight numeric digits (might be your birthday)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
hashAmazonBrutalisprice to crack in less than a month
MD50.0s0.0s$0.01 (1 EC2 instance)
Skype0.0s0.0s$0.01 (1 EC2 instance)
WPA21.27m31.47s$0.30 (1 EC2 instance)
SHA2560.01s0.0s$0.01 (1 EC2 instance)
BCrypt49.1m15.77m$11.78 (1 EC2 instance)
AndroidPIN4.65s2.3s$0.02 (1 EC2 instance)
MyWallet0.34s0.25s$0.01 (1 EC2 instance)
BitcoinWallet1.98h46.26m$28.53 (1 EC2 instance)
LastPass11.07s5.4s$0.04 (1 EC2 instance)
TrueCrypt9.06m5.69m$2.18 (1 EC2 instance)
VeraCrypt4d2d$1120.45 (1 EC2 instance)
-

Conclusion: Don't do this. Never ever do this.

-

eight alphanumeric characters (eg 'pa55W0Rd')

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
hashAmazonBrutalisprice to crack in less than a month
MD549.65m18.17m$11.92 (1 EC2 instance)
Skype1.3h34.92m$18.67 (1 EC2 instance)
WPA26y3y$499500 (27 Brutalis)
SHA2564.94h2.64h$71.15 (1 EC2 instance)
BCrypt204y66y$14.7M (797 Brutalis)
AndroidPIN118d59d$37000 (2 Brutalis)
MyWallet9d7d$3003.3 (1 EC2 instance)
BitcoinWallet494y193y$43.25M (2338 Brutalis)
LastPass280d137d$92,500 (5 Brutalis)
TrueCrypt38y24y$5.3M (288 Brutalis)
VeraCrypt19381y11629y$2.62B (141574 Brutalis)
-

eigth alphanumeric characters mixed with special character (eg 'pa$$W0Rd')

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
hashAmazonBrutalisprice to crack in less than a month
MD52d9.2h~$362 (1 EC2 instance)
Skype2d17.7h~$567 (1 EC2 instance)
WPA2160y67y~$14.9M (806 Brutalis)
SHA2567d4d~$2162 (1 EC2 instance)
BCrypt6194y1989y~$448M (24,215 Brutalis)
AndroidPIN10y5y~$1.09M (59 Brutalis)
MyWallet³265d191d~$129500 (7 Brutalis)
BitcoinWallet14996y5835y~$1.3B (71,038 Brutalis)
LastPass24y12y~$2.6M (139 Brutalis)
TrueCrypt²1144y718y~$162M (8,742 Brutalis)
VeraCrypt¹588867y353320y~$79.6B (4,301,668 Brutalis)
-
    -
  1. VeraCrypt PBKDF2-HMAC-Whirlpool + XTS 512bit (super duper paranoid settings)
  2. -
  3. TrueCrypt PBKDF2-HMAC-Whirlpool + XTS 512bit
  4. -
  5. Blockchain MyWallet: https://blockchain.info/wallet/
  6. -
-

a long memorisable pass sentence ('correct horse battery staple')

-

Okay, this doesn't need a table. It takes millions of billions of years to even -crack this in MD5.

-

As illustration: The solar system needs around 225 Million years to rotate -around the core of the Milkyway. This is the so called galactic year. -The sun exists since around 20 galactic years. To crack such a password, even -when hashed in MD5 takes 3 trillion (million million) galactic years.

-

Of course nobody would ever attempt to do this. There are many possibilities to -crack a password faster. Explaining some of them would easily fill another -article, so I leave you here. Sorry.

-

Links

-

To find your way into the topic, you might visit some of the following links:

- -
-
- - - - - - diff --git a/dist/blog/2017-04-09-the-magic-0xc2.html b/dist/blog/2017-04-09-the-magic-0xc2.html deleted file mode 100644 index c5d396f..0000000 --- a/dist/blog/2017-04-09-the-magic-0xc2.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - Weblog aka Blog // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Weblog

-
- -

The Magic 0xC2

-

Written 2017-04-09

-

I built a web application with file upload functionality. Some Vue.js in the front and a CouchDB in the back. Everything should be pretty simple and straigt forward.

-

But…

- -

When I uploaded image files, they somehow got mangled. The uploaded file was bigger than the original and the new "file format" was not readable by any means. I got intrigued. What is it, that happens to the files? The changes seemed very random but reproducible, so I created a few test files to see what exactly changes and when.

-

My first file looked like this:

-
0123456789
-ABCDEFGHIJKLMNOPQRSTUVWXYZ
-abcdefghijklmnopqrstuvwxyz
-
-

To my surprise, the file stayed the same! My curiosity grew. In the meantime I found a very intriguing pattern in uploads hexdump: C3 BF C3. It was everywhere. In another file, I found similar patterns with C2. So I wrote my next test file. This time a binary file:

-
00 01 02 03 04 05 06 07  08 09 10 11 12 13 14 15 |................|
-16 17 18 19 20 21 22 23  24 25 26 27 28 29 30 31 |.... !"#$%&'()01|
-32 33 34 35 36 37 38 39  40 41 42 43 44 45 46 47 |23456789@ABCDEFG|
-48 49 50 51 52 53 54 55  56 57 58 59 60 61 62 63 |HIPQRSTUVWXY`abc|
-64 65 66 67 68 69 70 71  72 73 74 75 76 77 78 79 |defghipqrstuvwxy|
-80 81 82 83 84 85 86 87  88 89 90 91 92 93 94 95 |................|
-96 97 98 99 a0 a1 a2 a3  a4 a5 a6 a7 a8 a9 aa ab |................|
-ac ad ae af b0 b1 b2 b3  b4 b5 b6 b7 b8 b9 ba bb |................|
-00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 |................|
-
-

EDIT: As you probably already noticed, I counted up like in Base10 but it is actually Base16. So I skipped A-F until reaching A0. This might look weird but didn't affect the test.

-

The result after uploading was

-
00 01 02 03 04 05 06 07  08 09 10 11 12 13 14 15  |................|
-16 17 18 19 20 21 22 23  24 25 26 27 28 29 30 31  |.... !"#$%&'()01|
-32 33 34 35 36 37 38 39  40 41 42 43 44 45 46 47  |23456789@ABCDEFG|
-48 49 50 51 52 53 54 55  56 57 58 59 60 61 62 63  |HIPQRSTUVWXY`abc|
-64 65 66 67 68 69 70 71  72 73 74 75 76 77 78 79  |defghipqrstuvwxy|
-c2 80 c2 81 c2 82 c2 83  c2 84 c2 85 c2 86 c2 87  |................|
-c2 88 c2 89 c2 90 c2 91  c2 92 c2 93 c2 94 c2 95  |................|
-c2 96 c2 97 c2 98 c2 99  c2 a0 c2 a1 c2 a2 c2 a3  |................|
-c2 a4 c2 a5 c2 a6 c2 a7  c2 a8 c2 a9 c2 aa c2 ab  |................|
-c2 ac c2 ad c2 ae c2 af  c2 b0 c2 b1 c2 b2 c2 b3  |................|
-c2 b4 c2 b5 c2 b6 c2 b7  c2 b8 c2 b9 c2 ba c2 bb  |................|
-00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
-
-

There it was again: The magic 0xC2!

-

So all bytes with a value higher than 0x79 got followed by a 0xC2. 0x79 is the ASCII code for y. This is at least what I thought. It actually is the other way around: All bytes with value 0x80 or higher got prefixed by a 0xC2! — there the scales fell from my eyes: UTF-8 encoding!

-

In UTF-8 all characters after 0x7F are at least two bytes long. They get prefixed with 0xC2 until 0xC2BF (which is the inverted question mark ¿), which is then followed by 0xC380. So what happened is, that on the way to the server, the file got encoded to UTF-8 ¯\_(ツ)_/¯

-

EDIT: Corrected some mistakes after some comments on Hackernews

-
-
- - - - - - diff --git a/dist/blog/2017-08-17-vuejs-reactivity-from-scratch.html b/dist/blog/2017-08-17-vuejs-reactivity-from-scratch.html deleted file mode 100644 index 6ffb7a4..0000000 --- a/dist/blog/2017-08-17-vuejs-reactivity-from-scratch.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - Weblog aka Blog // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Weblog

-
- -

Vuejs Reactivity From Scratch

-

Written 2017-08-17

-

Vuejs is the star newcomer in the Javascript Framework world. People love how it makes complicated things very simple yet performant. One of the more exciting features is its seemingly magic reactivity. Plain data objects in components magically invoke a rerender when a property changes.

- - -

NOTE: This is a copy of the original article from Aug 17th, 2017. You can read the archived original on archive.org

- -

The button click invokes a function that just assigns a new value to a property. Still the template gets automagically rerendered. But we all know there is no fairydust involved, right? So how does it actually work?

-
-

The magic of getters and setters

-

With the ES5 standard JavaScript got lots of exciting new features. Some of them highly underrated and underused in my opinion. Getters and setters are an example. If you never heard of them, I would recommend you to read John Riesigs piece on them.

-

As soon as you know what getters and setters are: functions transparently called on every property access, you might already know where this goes. Boom! All the fairydust suddenly disappears.

-

Automatic getters and setters

-

Now that we at least in theory know how Vuejs realises the template data magic, let's build it ourselves for the sake of full understanding!

-

Abstract: A function that gets an object and returns one with the properties replaced by getters and setters that, on call, rerender a template. So far so good. If you are really impatient, you can find the final code in JSFiddle.

-

Let's start with a very simple approach:

- -

The function iterates through all object keys and creates a new object with getters and setters in their place. It could also directly manipulate the original object:

- -

I personally don't like to manipulate the existing object and prefer the first way.

-

Introducing: Object.defineProperty

-

Now before we go on with destroying our fantasies of fairydust computing, let's see if there is a more convenient way to what we've done for now. Here I introduce Object.defineProperty, which allows to set all possible attributes for the properties of an object. You can find a detailed description on MDN.

-

With this new knowlegde, the code can be made a bit more readable, by condensing everything into one call:

- -

All those underscores where pretty annoying anyways. I generally suggest you to read more about Object.defineProperty. It extends the range of possibilities significantly!

-

Templating for the poor

-

To be able to rerender a component on data change, we should really introduce some components that can actually render and under the right circumstances rerender a template.

- -

This code describes a very simple component, that has a data object and a render function. If this is called, it replaces the innerHTML of the given content element with the rendered output. Neat! Let's make the data reactive!

-

Reactive Component

-

As a start, it should be enough to simply make the data property reactive:

- -

Yes, that seems to be good but it doesn't really update the template. Which becomes clear after a look at line 11-14: There is no render call ever. But reactive shouldn't know about component rendering, right? Let's try a more general approach with a callback:

- -

Yeah, that works and so on but it looks like we slowly stumble away from elegance in our code. The changes in reactive() seem to be okay, but that function bind monstrosity in line 31 is something we better hide from our parents. Let's introduce a component factory before we get kicked out or end up in self hatred:

- -

Cool! That works. The createComponent() function just does all the dirty work for us and returns a nice, reactive component, that is still just a simple object. If you have that code in a local setup and run something like component.data.name = 'Ada Lovelace', then it will automagically rerender the template to show 'Hello Ada Lovelace'.

-

Nested Data structures

-

All cool and hip stuff but what happens in the following scenario:

- -

Setting deeper nested properties (line 44,45) doesn't work at all. The reason is that the reactivity only works on the first nesting level of the data object. Now you could say: Easy, we just set the whole object at once:

- -

But this is not really what we strive for, isn't it? What we need is a way that makes all nested objects reactive in a recursive way. Surprisingly, this just needs a coupe of lines:

- -

Only three lines (7-9) where added. They call reactive() on the given value in case it is an object. Now the nesting level doesn't matter anymore. REACTIVE ALL THE THINGS!!

-

Multiple Components

-

Considering that components are usually very gregarious, what happens if we find a friend for our component? Will it blend? Erm I mean, react?

- -

It does! Hooray!

-

The attentive reader might have seen the change that sneaked into line 7: Because the type of array is object, an extra check has to be made here. Otherwise the array would be transformed to a plain object with keys 0, 1, etc.

-

But what happens now when we manipulate the Array directly?

- -

Bummer! Setting the whole array works as expected but manipulating it doesn't trigger any change.

-

Reactive Arrays

-

As described in the caveats section of the Vuejs guide about list rendering, there are several …well caveats with array reactivity. It writes:

-
Due to limitations in JavaScript, Vue cannot detect the following changes to an array:
-1. When you directly set an item with the index, e.g. vm.items[indexOfItem] = newValue
-2. When you modify the length of the array, e.g. vm.items.length = newLength
-
-

Okay, fair enough. So what does happen in Vue to make Arrays reactive? Fairydust? Unfortunately yes. And this stuff is expensive! Nah, just kidding. Of course it is again no magic involved. I'm sorry my dear role-playing friends. What actually happens is that Arrays get their manipulating functions replaced by a wrapped version that notifies the component about changes. The source to this functionality is in core/observer/array.js.

-

Vuejs' approach is rather sophisticated but can be condensed down to something like what is seen in the first 24 lines here:

- -

So this is a fairly big chunk to digest. The new function reactiveArray starts with creating a copy of the original array (Remember? I don't like manipulating the original object). Then, for each function in the list of manipulative array functions the original is saved which is then replaced by a wrapper function. This wrapper function simply calls the render callback additionally to the original array function.

-

Now also lipsumComponent.data.content is not set directly anymore but uses the overwritten push method. Setting it directly wouldn't work. Fixing that leads us to the last step:

-

Reactivity on set

-

For now the setter function didn't care about the value. If it would be a nested object, its children wouldn't be reactive. That means, if you set data.x to an object {foo: 1} and then change foo data.x.foo++, the template wouldn't rerender. This should be changed:

- -

Instead of setting the plain value, reactive(value, callback) is called in line 49. This small change works only up to a certain point on its own though. The function has to decide what to do with non-objects or arrays, which happens now as a first step in reactive(). A plain non-object (remember: arrays are objects) simply gets returned as it is (line 30), arrays will be returned in their reactive version (line 31).

-

Conclusion

-

Congratulations! You made it this far or just skipped to read only the Conclusion, which is fine, I do that too sometimes.

-

In about 70 SLOC, we built a fully reactive component system. We made use of getters, setters and Object.defineProperty and learned, that I don't like to manipulate objects directly. Except for the last point, this should be valuable information that might become handy in future.

-

What else can be done you might ask? Vuejs' code is more sophisticated and handles some egde cases that I didn't mention for the sake of simplicity. For example if the yet to become reactive object has some getters and/or setters already, they would be overwritten by our simple solution. Vuejs' defineReactive uses Object.getOwnPropertyDescription to get a detailed information about the property it is going to wrap and incorporates existing getters and setters if applicable. It also ignores non-configurable (not meant to be changed at all) properties. How that works can be found in the source code.

-
-
- - - - - - diff --git a/dist/blog/2019-01-10-running-write-freely-on-arm.html b/dist/blog/2019-01-10-running-write-freely-on-arm.html deleted file mode 100644 index a6a994f..0000000 --- a/dist/blog/2019-01-10-running-write-freely-on-arm.html +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - - Weblog aka Blog // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Weblog

-
- -

Running writefreely 0.7 on Arm

-

Written 2019-01-10

-

This is a follow-up on -The expected tutorial: How to install WriteFreely on a Raspberry pi 3 in 10 steps. I will explain what was necessary to make cross-compiling work for newer WriteFreely versions with SQLite support.

- -

I did it! I finally got WriteFreely to run on my Arm server (check out Scaleways baremetal cloud servers).

-

It wasn't so easy because with 512MB of RAM I couldn't simply download and build the source on my webserver. Only solution: Cross compiling. Easy especially in Go, right?

-

If you read the article linked in the beginning you know how easy it could be. But as the article already mentions in an update, since Version 0.6 it is not working anymore because of the new SQLite dependency (newest version as of writing this article is 0.7).

-

With a bit of research I figured out what to do to make it work anyhow. There are two solutions. A quick (and slightly dirty) one for people who don't need SQLite support and a correct solution that needs a tad more effort.

-

Quick solution: remove SQLite support

-

SQLite support makes problems with the cross compiling because it needs some C code to be compiled. Before figuring out how to make this working with the otherwise super easy Go cross compiling, removing the feature might be a viable quick fix. For this, simply change or remove all occurences of sqlite in the Makefile:

-
diff --git a/Makefile b/Makefile
-index 5950dfd..032fd0c 100644
---- a/Makefile
-+++ b/Makefile
-@@ -13,25 +13,25 @@ IMAGE_NAME=writeas/writefreely
- all : build
- 
- build: assets deps
--	cd cmd/writefreely; $(GOBUILD) -v -tags='sqlite'
-+	cd cmd/writefreely; $(GOBUILD) -v
- 
- build-linux: deps
-    @hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
-        $(GOGET) -u github.com/karalabe/xgo; \
-    fi
--	xgo --targets=linux/amd64, -dest build/ $(LDFLAGS) -tags='sqlite' -out writefreely ./cmd/writefreely
-+	xgo --targets=linux/amd64, -dest build/ $(LDFLAGS) -out writefreely ./cmd/writefreely
- 
- build-windows: deps
-    @hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
-        $(GOGET) -u github.com/karalabe/xgo; \
-    fi
--	xgo --targets=windows/amd64, -dest build/ $(LDFLAGS) -tags='sqlite' -out writefreely ./cmd/writefreely
-+	xgo --targets=windows/amd64, -dest build/ $(LDFLAGS) -out writefreely ./cmd/writefreely
- 
- build-darwin: deps
-    @hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
-        $(GOGET) -u github.com/karalabe/xgo; \
-    fi
--	xgo --targets=darwin/amd64, -dest build/ $(LDFLAGS) -tags='sqlite' -out writefreely ./cmd/writefreely
-+	xgo --targets=darwin/amd64, -dest build/ $(LDFLAGS) -out writefreely ./cmd/writefreely
- 
- build-docker :
-    $(DOCKERCMD) build -t $(IMAGE_NAME):latest -t $(IMAGE_NAME):$(GITREV) .
-@@ -40,11 +40,11 @@ test:
-    $(GOTEST) -v ./...
- 
- run: dev-assets
--	$(GOINSTALL) -tags='sqlite' ./...
-+	$(GOINSTALL) ./...
-    $(BINARY_NAME) --debug
- 
- deps :
--	$(GOGET) -tags='sqlite' -v ./...
-+	$(GOGET) -v ./...
- 
- install : build
-    cmd/writefreely/$(BINARY_NAME) --gen-keys
-@@ -77,10 +77,10 @@ ui : force_look
-    cd less/; $(MAKE) $(MFLAGS)
- 
- assets : generate
--	go-bindata -pkg writefreely -ignore=\\.gitignore schema.sql sqlite.sql
-+	go-bindata -pkg writefreely -ignore=\\.gitignore schema.sql
- 
- dev-assets : generate
--	go-bindata -pkg writefreely -ignore=\\.gitignore -debug schema.sql sqlite.sql
-+	go-bindata -pkg writefreely -ignore=\\.gitignore -debug schema.sql
- 
- generate :
-    @hash go-bindata > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
-
-

Now just go on as described in the original article and it should work:

-
env GOARCH=arm GOARM=7 go get github.com/writeas/writefreely/cmd/writefreely
-
-

The correct solution

-

To get WriteFreely cross compiled with SQLite support, a C cross compiler is needed. Void Linux, the distribution of my choice, offers a bunch of packages for all kind of architectures. They are called for example cross-armv7l-linux-gnueabihf (ARMv7), cross-arm-linux-gnueabihf (ARMv6) or cross-arm-linux-gnueabi (ARMv5). I found similar packages in AUR (for Arch Linux).

-

As soon as the corresponding cross compiler is found, go can be told to use it:

-
env CGO_ENABLED=1 CC=armv7l-linux-gnueabihf-gcc GOOS=linux GOARCH=arm GOARM=7 make
-
-

The environment variables used are:

-

CGO_ENABLED=1 should be obvious. It tells Go to enable the C compilation.

-

CC=armv... tells Go which C compiler to use. Usually this would be just gcc. In this case it is the name of the cross compiler. Please set it to the compiler for your target platform. I'm going to use ARMv7 examples here. It is the name of a directory found in /usr/, eg /usr/armv7l-linux-gnueabihf. Initially that failed for me though because it expected to find a file ./lib/libc.so which ended up in another subfolder /usr/. So I cheated a bit and did:

-
# You might not need to do this on your platform.
-sudo ln -s /usr/armv7l-linux-gnueabihf/usr/lib /usr/armv7l-linux-gnueabihf/lib
-
-

GOOS=linux GOARCH=arm are the same as in the original article.

-

GOARM=7 is optional, even on an actual ARMv7. It enables some register optimizations that only work on ARMv7.

-

And finally make is called. This is short for make all which should do everything necessary.

-

Not all files are necessary to be transferred to the Server or RaspberryPi. What I did after some experimentation was:

-
# after building everything create a package
-mkdir writefreely-arm
-cp -r templates pages static writefreely-arm
-mkdir writefreely-arm/keys # fun fact: key generation crashes without this
-cp cmd/writefreely/writefreely writefreely-arm
-tar cvzf writefreely-arm.tgz writefreely-arm
-
-# copy that package to the server
-scp writefreely-arm.tgz you@yourserver.tld:~
-
-# ssh into the server and unpack everything
-ssh you@yourserver.tld
-tar czf writefreely-arm.tgz
-cd writefreely-arm
-
-# generate config, keys and database
-./writefreely -config # starts interactive configuration
-
-# This should lead you through all necessary steps
-# like filling the config, generating keys, generating database tables
-# run `./writefreely --help` to learn more if something is missing.
-
-

Now ./writefreely should run an empty blog at the specified port.

-

Have fun!

-
-
- - - - - - diff --git a/dist/blog/2019-01-10-use-openbsds-spleen-bitmap-font-in-linux.html b/dist/blog/2019-01-10-use-openbsds-spleen-bitmap-font-in-linux.html deleted file mode 100644 index 02fb7b5..0000000 --- a/dist/blog/2019-01-10-use-openbsds-spleen-bitmap-font-in-linux.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - Weblog aka Blog // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Weblog

-
- -

Use OpenBSDs Spleen bitmap font in Linux

-

Written 2019-01-10

-

Yesterday Frederic Cambus changed the default console font in OpenBSD to his self made font Spleen as written in this BSD Journal article.

- -

To be totally honest, I stopped thinking about TTY (aka console) fonts a long time ago. It just happened to get interesting again when I got a HiRes screen and suddenly a magnifying glass was necessary to read the TTY. Yes I am one of those people who still deny the existence of graphical installers. If you want to change my mind, feel free to write me.

-

Anyhow, I figured that Spleen is pretty and useful because it offers glyphs with sizes up to 32x64. Typical fonts in Void Linux are 8x16 or similar, which is very small on high DPI screens. But how to use them? Spleen comes in strange formats like BDF or .dfont but we need another strange format called PSFU. If we look at the description that comes with Spleen we only get tought how to make yet another strange format called PCF. Puh, so confusing. Fonts must have been a real pain back in the "good old times".

-

If you managed to read this until this point, I congratulate you. You won a short list of commands:

-
# assuming bdf2psf is installed
-FONTDIR=/usr/share/kbd/consolefonts   # or anything you want
-SPLEENDIR=$HOME/src/spleen             # or whereever you want the repo
-EQUIV=/usr/share/bdf2psf/standard.equivalents # check bdf2psf manpage
-FONTSET=/usr/share/bdf2psf/fontsets/Uni1.512 # check bdf2psf manpage
-
-git clone https://github.com/fcambus/spleen.git $SPLEENDIR
-
-for x in 12x24 16x32 32x64 5x8 8x16 # do it for all available sizes
-do
-    bdf2psf --fb \
-        ${SPLEENDIR}/spleen-${x}.bdf \
-        $EQUIV $FONTSET 512 \
-        ${FONTDIR}/spleen-${x}.psfu
-done
-
-# assuming you're in the TTY
-setfont ${SPLEENDIR}/spleen-16x32.psfu
-
-

That worked for me! Except spleen-32x64 didn't work for me. It might be too big for Linux TTYs but would be too big anyways. Lets wait for 8K displays.

-
-
- - - - - - diff --git a/dist/blog/2019-05-03-freddy-vs-json.html b/dist/blog/2019-05-03-freddy-vs-json.html deleted file mode 100644 index 3f066aa..0000000 --- a/dist/blog/2019-05-03-freddy-vs-json.html +++ /dev/null @@ -1,674 +0,0 @@ - - - - - - - Weblog aka Blog // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Weblog

-
- -

Freddy vs JSON: how to make a top-down shooter

-

Written 2019-05-03

-

I will tell you how I created a simple top-down shooter in JavaScript without using any additional libraries. But this article is not replicating the full game but instead tries to show which steps to take to start writing a game from scratch.

- -

A couple of years ago (Oh it's almost a decade! Am I that old already?), when the Canvas API got widely adopted by most browsers, I started experimenting with it. The fascination was high and I immediately tried to use it for interactive toys and games.

-

Of course, the games I made (and make) are usually not very sophisticated. That is mainly because I create them only for fun and without much eye-candy or even sound. What really fascinates me is the underlying mechanics. Otherwise, I could just use one of those awesome game engines, that exist already.

-

To share some of the fun, I created a tiny top down shooter for a tech session in my company (we're hiring, btw). The result can be found on Github. I commented the code well so it should be quite helpful to just read it. But if you want to know how I created the game step-by-step, this article is for you.

-

The Game

-

To give you an impression of what I created:

-

screenshot

-

The little gray box is your ship. You are controlling the little gray box with either WASD or Arrow keys and you can shoot tiny yellow boxes at your enemies — the red boxes — by pressing Space or Enter. The enemies shoot back though. They don't really aim well, but at some point they'll flood the screen with tiny red boxes. If they hit you, they hurt. Every time you get hurt you shrink, until you completely disappear. The same happens with your opponents.

-

Preconditions

-

This post is not about the game itself but about the underlying mechanics and some of the tricks used to make it work. My intention is to provide an entry for understanding more complex game development for people with some existing programming experience. The following things are helpful to fully understand everything:

-

Fundamental Game Engine Mechanics

-

Most — if not all — game engines have the same fundamental building blocks:

-
    -
  • The state, that defines the current situation (like main menu, game running, game lost, game won, etc).
  • -
  • A place to store all the objects and related data.
  • -
  • The main loop, usually running sixty times per second, that reads the object information, draws the screen and applies updates to object data
  • -
  • An event handler that maps key presses, mouse movements and clicks to data changes.
  • -
-

The Canvas Element

-

The Canvas element allows you to handle pixel based data directly inside the browser. It gives you a few functions to draw primitives. It is easy to draw, for example, a blue rectangle but you need more than one action to draw a triangle; to draw a circle you need to know how to use arcs.

-

Exactly because drawing rectangles is the easiest and fastest thing to do with the Canvas API, I used them for everything in Freddy vs JSON. That keeps the complexities of drawing more exciting patterns or graphics away and helps focus on the actual game mechanics. This means, after initializing the canvas besides setting colors we only use two functions:

-
const ctx = canvas.getContext('2d') // this is the graphics context
-ctx.fillStyle = '#123456'           // use color #123456
-
-ctx.fillText(text, x, y)            // write 'text' at coords x, y
-ctx.fillRect(x, y, width, height)   // draw filled rectangle
-
-

Step One: Some HTML and an initialized Canvas

-

Because the code is going to run in the browser, some HTML is necessary. A minimal set would be just the following two lines:

-
<canvas id="canvas" />
-<script src="./app.js"></script>
-
-

This works but of course some styling would be great. And maybe having a title? Check out a complete version on Github.

-

Initializing a Canvas is also pretty simple. Inside app.js following lines are necessary:

-
const canvas = document.getElementById('canvas')
-// you can set height and width in HTML, too
-canvas.width = 960
-canvas.height = 540
-const ctx = canvas.getContext('2d')
-
-

I chose rather arbitrary values for width and height. Feel free to change them to your liking. Just know that higher values obviously will result in more work for your computer.

-

Step Two: Game Mode / States

-

To avoid creating a big ball of mud it is common to use a state machine. The idea is to describe the high level states and their valid transitions and using a central state handler to control them.

-

There libraries that help with state machines, but it is also not too hard to create this yourself. In the game I created I used a very simple state machine implementation: The possible states and their transitions are described in Enum-like objects. Here some code to illustrate the idea. The code uses some rather new language features: Symbols and Computed Property Names.

-
const STATE = {
-  start: Symbol('start'),  // the welcome screen
-  game: Symbol('game'),    // the actual game
-  pause: Symbol('pause'),  // paused game
-  end: Symbol('end')       // after losing the game
-}
-
-const STATE_TRANSITION = {
-  [STATE.start]: STATE.game, // Welcome screen => Game
-  [STATE.game]: STATE.pause, // Game => Pause
-  [STATE.pause]: STATE.game, // Pause => Game
-  [STATE.end]: STATE.start   // End screen => Welcome screen
-}
-
-

This is not a full state machine but does the job. For the sake of simplicity I violate the state machine in one occasion though: There is no transition from the running game to the end of the game. This means I have to jump directly, without using the state handler, to the end screen after the player dies. But this saved me from a lot of complexity. Now the state control logic is effectively only one line:

-
newState = STATE_TRANSITION[currentState]
-
-

Freddy vs JSON uses this in the click handler. A click into the canvas changes the state from welcome screen to the actual game, pauses and un-pauses the game and brings you back to the welcome screen after losing. All that in only one line. The new state is set to a variable that is respected by the central update loop. More on that later.

-

Of course much more could be done with a state. For example weapon or ship upgrades could be realised. The game could transition towards higher difficulty levels and get special game states like an upgrade shop or transfer animations between stages. Your imagination is the limit. And the amount of lines in your state handler, I guess.

-

Step Three: Data Handling

-

Games usually have to handle a lot of information. Some examples are the position and health of the player, the position and health of each enemy, the position of each single bullet that is currently flying around and the amount of hits the player landed so far.

-

JavaScript allows different ways to handle this. Of course, the state could just be global. But we all (should) know that global variables are the root of all evil. Global constants are okay because they stay predictable. Just don't use global variables. If you're still not convinced, please read this entry on stackexchange.

-

Instead of global variables, you can put everything into the same scope. A simple example is shown next. The following code examples use template literals, a new language feature. Learn more about template literals here.

-
function Game (canvas) {  // the scope
-  const ctx = canvas.getContext('2d')
-  const playerMaxHealth = 10
-  let playerHealth = 10
-
-  function handleThings () {
-    ctx.fillText(`HP: ${playerHealth} / ${playerMaxHealth}`, 10, 10)
-  }
-}
-
-

This is nice because you have easy access just like with global variables without actually using global variables. It still opens the door to potential problems if you only have one big scope for everything, but the first game is probably small enough to get away with not thinking about this too much.

-

Another way is to use classes:

-
class Game {
-  constructor (canvas) {
-    this.ctx = canvas.getContext('2d')
-    this.playerMaxHealth = 10
-    this.playerHealth = 10
-  }
-
-  handleThings () {
-    const max = this.playerMaxHealth
-    const hp = this.playerHealth
-    ctx.fillText(`HP: ${hp} / ${max}`, 10, 10)
-  }
-}
-
-

That looks like a bit more boilerplate but classes are good to encapsulate common functionality. They get even better if your game grows and you want to stay sane. But in JavaScript they are just syntactical sugar. Everything can be achieved with functions and function scopes. So it is up to you, what you use. The two last code examples are essentially the same thing.

-

Now that we decided on how to save all the data (Freddy vs JSON uses a class so I'll use classes here too) we can further structure it... or not. Freddy vs JSON saves everything flat. That means for example that each player attribute gets its own variable instead of using a player object that contains a lot of properties. The latter is probably more readable so you might want to go this path. Object access is also pretty fast nowadays so there is probably not a noticeable difference if you write this.player.health instead of this.playerHealth. If you are really serious about performance though, you might want to investigate this topic further. You can check out my jsperf experiment for a start.

-

Data manipulation happens in the update loop or when handling events. The next steps explain these topics further.

-

Step Four: The Main Loop

-

If event based changes are enough, like on a website, a separate loop wouldn't be necessary. The user clicks somewhere, which triggers an event that updates something and eventually re-renders a part of the page. But in a game some things happen without direct user interaction. Enemies come into the scene and shoot at you, there might be some background animation, music plays, and so on. To make all this possible a game needs an endlessly running loop which repeatedly calls a function that checks and updates the status of everything. And to make things awesomely smooth it should call this function in a consistent interval — at least thirty, better sixty times per second.

-

The following code examples use another rather new language feature called Arrow Functions.

-

Typical approaches to run a function in an regular interval would include the usage of setInterval:

-
let someValue = 23
-setInterval(() => {
-  someValue++
-}, 16)
-
-

Or setTimeout

-
let someValue = 42
-
-function update () {
-  someValue++
-  setTimeout(update, 16)
-}
-
-update()
-
-

The first version just runs the function endlessly every sixteen milliseconds (which makes sixty-two and a half times per second), regardless of the time the function itself needs or if is done already. The second version does its potentially long running job before it sets a timer to start itself again after sixteen milliseconds.

-

The first version is especially problematic. If a single run needs more than sixteen milliseconds, it runs another time before the first run finished, which might lead to a lot of fun, but not necessarily to any useful result. The second version is clearly better here because it only sets the next timeout after doing everything else. But there is still a problem: Independent of the time the function needs to run it will wait an additional sixteen milliseconds to run the function again.

-

To mitigate this, the function needs to know how long it took to do its job and then substract that value from the waiting time:

-
let lastRun
-let someValue = 42
-
-function update () {
-  someValue++
-  const duration = Date.now() - lastRun
-  const time = duration > 16 ? 0 : 16 - time
-  setTimeout(update, time)
-  lastRun = Date.now()
-}
-
-lastRun = Date.now()
-update()
-
-

Date.now() returns the current time in milliseconds. With this information we can figure out how much time has passed since the last run. If more than sixteen milliseconds have passed since then just start the update immediately and crush that poor computer (or better slow down the execution time and be nice to the computer), otherwise wait as long as necessary to stay at around sixty runs per second.

-

Please note that Date.now() is not the best way to measure performance. To learn more about performance and high resolution time measurement, check out: https://developer.mozilla.org/en-US/docs/Web/API/Performance

-

Cool. This way you can also slow everything down to a chill thirty frames per second by setting the interval to thirty-three milliseconds. But lets not go that path. Lets do what the cool kids with their shiny new browsers do. Lets use requestAnimationFrame.

-

requestAnimationFrame takes your update function as an argument and will call it right before the next repaint. It also gives you the timestamp of the last call, so that you don't have to ask for another one, which potentially impacts your performance. Lets get down to the details:

-
function update () {
-  /* do some heavy calculations */
-  requestAnimationFrame(update)
-}
-
-update()
-
-

This is the simplest version. It runs your update function as close as possible to the next repaint. This means it usually runs sixty times per second, but the rate might be different depending on the screen refresh rate of the computer it runs on. If your function takes longer than the duration between screen refreshes, it will simply skip some repaints because it is not asking for a repaint before it is finished. This way it will always stay in line with the refresh rate.

-

A function that does a lot of stuff might not need to run that often. Thirty times per second is usually enough to make things appear smooth and some other calculations might not be necessary every time. This brings us back to the timed function we had before. In this version we use the timestamp that requestAnimationFrame is giving us when calling our function:

-
let lastRun
-
-function update (stamp) {
-  /* heavy work here */
-  lastRun = stamp
-
-  // maybe 30fps are enough so the code has 33ms to do its work
-  if (stamp - lastRun >= 33) {
-    requestAnimationFrame(update)
-  }
-}
-
-// makes sure the function gets a timestamp
-requestAnimationFrame(update)
-
-

Step Five: Event Handling

-

People usually want to feel like they are in control of what they are doing. This brings us to a point where the game needs to handle input from the user. Input can be either a mouse movement, a mouse click or a key press. Key presses are also separated into pressing and releasing the key. I'll explain why later in this section.

-

If your game is the only thing running on that page (and it deserves that much attention, doesn't it?) input events can simply be bound to document. Otherwise they need to be bound to the canvas event directly. The latter can be more complicated with key events because key events work best with actual input fields. This means you need to insert one into the page, and make sure it stays focused so that it gets the events. Each click into the canvas would make it lose focus. To avoid that, you can use the following hack:

-
inputElement.onblur = () => inputElement.focus()
-
-

Or you simply put everything to its own page and bind the event listeners to document. It makes your life much easier.

-

Side note: People might wonder why I don't use addEventListener. Please use it if it makes you feel better. I don't use it here for simplicity reasons and it will not be a problem as long as each element has exactly one event listener for each event type.

-

Mouse Movement

-

Mouse movements are not really used in Freddy vs JSON but this post wouldn't be complete without explaining them. So this is how you do it:

-
canvas.onmousemove = mouseMoveEvent => {
-  doSomethingWithThat(mouseMoveEvent)
-}
-
-

This will be executed on every little movement of the mouse as long as it is on top of the canvas. Usually you want to debounce that event handler because the event might fire at crazy rates. Another way would be to use it only for something very simple, like to save the mouse coordinates. That information can be used in a function that is not tied to the event firing, like our update function:

-
class Game {
-  constructor (canvas) {
-    // don't forget to set canvas width and height,
-    // if you don't do it, it will set to rather
-    // small default values
-    this.ctx = canvas.getContext('2d')
-    this.mouseX = 0
-    this.mouseY = 0
-
-    // gets called at every little mouse movement
-    canvas.onmousemove = event => {
-      this.mouseX = event.offsetX
-      this.mouseY = event.offsetY
-    }
-
-    this.update()
-  }
-
-  // gets called at each repaint
-  update () {
-    requestAnimationFrame(() => this.update())
-    this.fillRect('green', this.mouseX, this.mouseY, 2, 2)
-  }
-}
-
-

The MouseEvent object contains a lot more useful information. I suggest you to check out the link and read about it.

-

This should draw two pixel wide boxes wherever you touch the canvas with your mouse. Yeah, a drawing program in ten lines! Photoshop, we're coming for you!

-

Mouse Clicks

-

But lets get back to reality. Mouse clicks are another important interaction:

-
canvas.onclick = mouseClickEvent => {
-  doSomethingWithThat(mouseClickEvent)
-}
-
-

The event object again contains all kind of useful information. It is the same type of object that you get from mouse movement. Makes life simpler, doesn't it?

-

Now to make use of the mouse clicks, lets adapt the former code example:

-
class Game {
-  constructor (canvas) {
-    // set canvas.width and canvas.height here
-    this.ctx = canvas.getContext('2d')
-    this.mouseX = 0
-    this.mouseY = 0
-    this.drawing = false
-
-    canvas.onmousemove = event => {
-      this.mouseX = event.offsetX
-      this.mouseY = event.offsetY
-    }
-    canvas.onmousedown = () => {
-      this.drawing = true
-    }
-    canvas.onmouseup = () => {
-      this.drawing = false
-    }
-
-    this.update()
-  }
-
-  update () {
-    requestAnimationFrame(() => this.update())
-    if (this.drawing) {
-      this.fillRect('green', this.mouseX, this.mouseY, 2, 2)
-    }
-  }
-}
-
-

Check it out on CodeSandbox

-

Now the boxes are only drawn while holding down the mouse button. Boom, one step closer to the ease of use of Photoshop! It is incredible, what you can do with it already. Just check out this incredible piece of art:

-

incredible piece of art

-

Key Events

-

The last important input comes from key presses. Okay, it is not really the last input type. Other ones would come from joysticks or gamepads. But there are some old-school people like me who still prefer using the keyboard to navigate their space ship.

-

Input handling is theoretically simple but in practice it is everything but. That's why this section explains not only how key events work but also how to get them right. Look forward to event handling, the relationship between velocity and acceleration, and frame rate agnostic timing...

-

The simplest version of key event handling looks like this:

-
document.onkeypress = keyPressEvent => {
-  doSomethingWithThat(keyPressEvent)
-}
-
-

But keypress is deprecated and should not be used. It is anyways better to separate the keyPress into two events: KeyDown and KeyUp and I'll explain why.

-

For now imagine you have that awesome space ship in the middle of the screen and want to make it fly to the right if the user presses d or ArrowRight:

-
class Game {
-  constructor(canvas, width, height) {
-    // we'll need those values
-    this.width = canvas.width = width;
-    this.height = canvas.height = height;
-    this.ctx = canvas.getContext("2d");
-
-    this.shipSize = 10;
-    this.shipHalf = this.shipSize / 2.0; // you'll need that a lot
-
-    // position the ship in the center of the canvas
-    this.shipX = width / 2.0 - this.shipHalf;
-    this.shipY = height / 2.0 - this.shipHalf;
-
-    // event is a KeyboardEvent:
-    // https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent
-    document.onkeypress = event => {
-      const key = event.key;
-      if (key === "d" || key === "ArrowRight") {
-        this.shipX++;
-      }
-    };
-
-    this.update();
-  }
-
-  // convenience matters
-  rect(color, x, y, w, h) {
-    this.ctx.fillStyle = color;
-    this.ctx.fillRect(x, y, w, h);
-  }
-
-  update() {
-    // clean the canvas
-    this.rect("black", 0, 0, this.width, this.height);
-
-    // get everything we need to draw the ship
-    const size = this.shipSize;
-    const x = this.shipX - this.shipHalf;
-    const y = this.shipY - this.shipHalf;
-
-    // draw the ship
-    this.rect("green", x, y, size, size);
-
-    // redraw as fast as it makes sense
-    requestAnimationFrame(() => this.update());
-  }
-}
-
-

check it out on CodeSandbox

-

Okay, that is kinda working, at least if you press d. But the arrow key is somehow not working and the ship's movement feels a bit jumpy. That doesn't seem to be optimal.

-

The problem is that we're relying on repeated key events. If you press and hold a key, the keypress event is repeated a couple of times per second, depending on how you set your key repeat rate. There is no way to use that for a smooth movement because we can not find out how fast the users keys are repeating. Sure, we could try to measure the repeat rate, hoping the user holds the key long enough. But let's try to be smarter than that.

-

Lets recap: We hold the key, the ship moves. We leave the key, the movement stops. That is what we want. What a happy coincidence that these two events have ...erm.. events:

-
class Game {
-  constructor(canvas, width, height) {
-    // we'll need those values
-    this.width = canvas.width = width;
-    this.height = canvas.height = height;
-    this.ctx = canvas.getContext("2d");
-
-    this.shipSize = 10;
-    this.shipHalf = this.shipSize / 2.0; // you'll need that a lot
-
-    // position the ship in the center of the canvas
-    this.shipX = width / 2.0 - this.shipHalf;
-    this.shipY = height / 2.0 - this.shipHalf;
-
-    this.shipMoves = false;
-
-    // key is pressed down
-    document.onkeydown = event => {
-      const key = event.key;
-      switch (key) {
-        case "d":
-        case "ArrowRight":
-          this.shipMoves = "right";
-          break;
-        case "a":
-        case "ArrowLeft":
-          this.shipMoves = "left";
-          break;
-        case "w":
-        case "ArrowUp":
-          this.shipMoves = "up";
-          break;
-        case "s":
-        case "ArrowDown":
-          this.shipMoves = "down";
-          break;
-      }
-    };
-
-    document.onkeyup = () => {
-      this.shipMoves = false;
-    };
-
-    this.update();
-  }
-
-  // convenience matters
-  rect(color, x, y, w, h) {
-    this.ctx.fillStyle = color;
-    this.ctx.fillRect(x, y, w, h);
-  }
-
-  update() {
-    // move the ship
-    if (this.shipMoves) {
-      if (this.shipMoves === "right") this.shipX++;
-      else if (this.shipMoves === "left") this.shipX--;
-      else if (this.shipMoves === "up") this.shipY--;
-      else if (this.shipMoves === "down") this.shipY++;
-    }
-
-    // clean the canvas
-    this.rect("black", 0, 0, this.width, this.height);
-
-    // get everything we need to draw the ship
-    const size = this.shipSize;
-    const x = this.shipX - this.shipHalf;
-    const y = this.shipY - this.shipHalf;
-
-    // draw the ship
-    this.rect("green", x, y, size, size);
-
-    // redraw as fast as it makes sense
-    requestAnimationFrame(() => this.update());
-  }
-}
-
-

check it out on CodeSandbox

-

I felt like adding all directions right away. Now the movement itself is decoupled from the key events. Instead of changing the coordinates directly on each event, a value is set to a movement direction and the main loop takes care of adapting the coordinates. That's great because we don't care about any key repeat rates anymore.

-

But there are still some problems here. First of all, the ship can only move in one direction at a time. Instead it should always be able to move in two directions at a time, like up- and leftwards. Then the movement stops if the switch from one key to another is too fast. That might happen in a heated situation between your ship and the enemies bullets. Also the movement is bound to the frame rate. If the frame rate drops or the screen refreshes on a different rate on the players computer, your ship becomes slower or faster. And last but not least the ship simply jumps to full speed and back to zero. For a more natural feeling it should instead accelerate and decelerate.

-

Lots of work. Lets tackle the problems one by one:

-

Bidirectional movements are easy to do. We just need a second variable. And to simplify things even more, we can set these variables to numbers instead of identifying strings. Here you see why:

-
class Game {
-  constructor(canvas, width, height) {
-    /* ... same as before ... */
-
-    this.shipMovesHorizontal = 0;
-    this.shipMovesVertical = 0;
-
-    // this time, the values are either positive or negative
-    // depending on the movement direction
-    document.onkeydown = event => {
-      const key = event.key;
-      switch (key) {
-        case "d":
-        case "ArrowRight":
-          this.shipMovesHorizontal = 1;
-          break;
-        case "a":
-        case "ArrowLeft":
-          this.shipMovesHorizontal = -1;
-          break;
-        case "w":
-        case "ArrowUp":
-          this.shipMovesVertical = -1;
-          break;
-        case "s":
-        case "ArrowDown":
-          this.shipMovesVertical = 1;
-          break;
-      }
-    };
-
-    // to make this work, we need to reset movement
-    // but this time depending on the keys
-    document.onkeyup = event => {
-      const key = event.key;
-      switch (key) {
-        case "d":
-        case "ArrowRight":
-        case "a":
-        case "ArrowLeft":
-          this.shipMovesHorizontal = 0;
-          break;
-        case "w":
-        case "ArrowUp":
-        case "s":
-        case "ArrowDown":
-          this.shipMovesVertical = 0;
-          break;
-      }
-    };
-
-    this.update();
-  }
-
-  /* more functions here */
-
-  update() {
-    // move the ship
-    this.shipX += this.shipMovesHorizontal;
-    this.shipY += this.shipMovesVertical;
-
-    /* drawing stuff */
-  }
-}
-
-

Find the full version on CodeSandbox

-

This not only allows the ship to move in two directions at the same time, it also simplifies everything. But there's still the problem, that fast key presses don't get recognized well.

-

What actually happens in those stressful moments is correct from the code's point of view: If a key of the same dimension (horizontal or vertical) is pressed, set the movement direction, if it is released set movement to zero. But humans are not very exact. They might press the left arrow (or a) a split second before they fully released the right arrow (or d). This way, the function switches the movement direction for that split second but then stops because of the released key.

-

To fix this, the keyup handler needs a bit more logic:

-
document.onkeyup = event => {
-  const key = event.key;
-  switch (key) {
-    case "d":
-    case "ArrowRight":
-      if (this.shipMovesHorizontal > 0) {
-        this.shipMovesHorizontal = 0;
-      }
-      break;
-    case "a":
-    case "ArrowLeft":
-      if (this.shipMovesHorizontal < 0) {
-        this.shipMovesHorizontal = 0;
-      }
-      break;
-    case "w":
-    case "ArrowUp":
-      if (this.shipMovesVertical < 0) {
-        this.shipMovesVertical = 0;
-      }
-      break;
-    case "s":
-    case "ArrowDown":
-      if (this.shipMovesVertical > 0) {
-        this.shipMovesVertical = 0;
-      }
-      break;
-  }
-};
-
-

Check out the full code at CodeSandbox

-

Much better, isn't it? Whatever we do, the ship is flying in the expected direction. Time to tackle the last problems. Lets go with the easier one first: Acceleration.

-

For now, the ship simply has a fixed speed. Lets make it faster first, because we want action, right? For that, we'll define the maximum speed of the ship:

-
this.shipSpeed = 5  // pixel per frame
-
-

And use it as a multiplicator:

-
  update() {
-    // move the ship
-    this.shipX += this.shipMovesHorizontal * this.shipSpeed;
-    this.shipY += this.shipMovesVertical * this.shipSpeed;
-
-    /* drawing stuff */
-  }
-
-

And now, instead of jumping to the full speed, we update velocity values per axis:

-
  constructor () {
-    /* ... */
-    this.shipSpeed = 5
-    this.shipVelocityHorizontal = 0
-    this.shipVelocityVertical = 0
-    /* ... */
-  }
-
-  /* ...more stuff... */
-
-  update () {
-    // accelerate the ship
-    const maxSpeed = this.shipSpeed;
-    // speed can be negative (left/up) or positive (right/down)
-    let currentAbsSpeedH = Math.abs(this.shipVelocityHorizontal);
-    let currentAbsSpeedV = Math.abs(this.shipVelocityVertical);
-
-    // increase ship speed until it reaches maximum
-    if (this.shipMovesHorizontal && currentAbsSpeedH < maxSpeed) {
-      this.shipVelocityHorizontal += this.shipMovesHorizontal * 0.2;
-    } else {
-      this.shipVelocityHorizontal = 0
-    }
-    if (this.shipMovesVertical && currentAbsSpeedV < maxSpeed) {
-      this.shipVelocityVertical += this.shipMovesVertical * 0.2;
-    } else {
-      this.shipVelocityVertical = 0
-    }
-
-    /* drawing stuff */
-  }
-
-

This slowly accelerates the ship until full speed. But it still stops immediately. To decelerate the ship and also make sure the ship actually stops and doesn't randomly float around due to rounding errors, some more lines are needed. You'll find everything in the final version on CodeSandbox.

-

Now the last problem has be solved: Framerate-dependent movement. For now, all the values are tweaked in a way that they work nicely at the current speed. Lets assume at sixty frames per second. Now that poor computer has to install updates in the background or maybe it is just Chrome getting messy. Maybe the player has a different screen refresh rate. The result is a drop or increase of the frame rate. Lets take a drop down to the half as an example. Thirty frames per second is still completely smooth for almost everything. Movies have thirty frames per second and they do just fine, right? Yet our ship is suddenly only half as fast and that difference is very noticeable.

-

To prevent this, the movement needs to be based on actual time. Instead of a fixed value added to the coordinates each frame, a value is added that respects the time passed since the last update. The same is necessary for velocity changes. So instead of the more or less arbitrary five pixels at sixty frames per second we set the value in pixels per millisecond because everything is in millisecond precision.

-
5px*60/s = 300px/s = 0.3px/ms
-
-

This makes the next step rather easy: Count the amount of milliseconds since the last update and multiply it with the maximum speed and acceleration values:

-
  constructor () {
-    /* ... */
-    this.shipSpeed = 0.3  // pixels per millisecond
-    // how fast the ship accelerates
-    this.shipAcceleration = this.shipSpeed / 10.0
-    this.shipVelocityHorizontal = 0
-    this.shipVelocityVertical = 0
-    /* ... */
-
-    // this should always happen right before the first update call
-    // performance.now gives a high precision time value and is also
-    // used by requestAnimationFrame
-    this.lastDraw = performance.now()
-    requestAnimationFrame(stamp => this.update(stamp))
-  }
-
-  /* ...more stuff... */
-
-  // See the main loop section if "stamp" looks fishy to you.
-  update (stamp) {
-    // calculate how much time passed since last update
-    const timePassed = stamp - this.lastDraw
-    this.lastDraw = stamp
-
-    // accelerate the ship
-    const maxSpeed = this.shipSpeed * timePassed;
-    const accel = this.shipAcceleration * timePassed;
-
-    let currentAbsSpeedH = Math.abs(this.shipVelocityHorizontal);
-    let currentAbsSpeedV = Math.abs(this.shipVelocityVertical);
-
-    if (this.shipMovesHorizontal && currentAbsSpeedH < maxSpeed) {
-      const acceleration = 
-      this.shipVelocityHorizontal += this.shipMovesHorizontal * accel;
-    } else {
-      this.shipVelocityHorizontal = 0
-    }
-    if (this.shipMovesVertical && currentAbsSpeedV < maxSpeed) {
-      this.shipVelocityVertical += this.shipMovesVertical * accel;
-    } else {
-      this.shipVelocityVertical = 0
-    }
-
-    /* drawing stuff */
-  }
-
-

Check out the full version at CodeSandbox

-

If everything is the same as before you did everything right. Now independent of the frame rate you ship will move five pixels per millisecond. Unfortunately I didn't find a good way to test that except for changing the refresh rate of your screen or overwriting requestAnimationFrame so I left this part out of the post.

-

The End

-

Congratulations, you made a fully moving ship. This Post ends here but of course there is so much more to learn about game development. Freddy vs JSON adds some more elements but uses only techniques described in this article. Feel free to check out its source code and create a ton of games like it. Or completely different ones. Be creative and enjoy to use what you've just learned.

-
-
- - - - - - diff --git a/dist/blog/2020-06-29-a-store-implementation-for-vue3-composition-api.html b/dist/blog/2020-06-29-a-store-implementation-for-vue3-composition-api.html deleted file mode 100644 index e34581a..0000000 --- a/dist/blog/2020-06-29-a-store-implementation-for-vue3-composition-api.html +++ /dev/null @@ -1,277 +0,0 @@ - - - - - - - Weblog aka Blog // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Weblog

-
- -

A store implementation from scratch using Vue3's Composition API

-

Written 2020-06-29

-

I've built a store implementation that allows name-spaced actions and helps with the separation of concerns. The new Composition API in Vue3 also allows completely new, convenient ways of using it.

- -
-

This article is crossposted on dev.to. Feel free to join the discussion there.

-
-

At some point I started moving a side project over to Vue3 (which is still in beta). The side project is in a rather early stage and so I decided to rebuild the whole underlying foundation of it from scratch making use of the new possibilities of Vue3, especially of course the composition API.

-

Nuisance

-

One nuisance I had was the way I handled state. I didn't use Vuex but instead left state handling to a global state class that I added to Vue like Vue.prototype.$store = new StorageHandler. That allowed me to access global state from everywhere within Vue components via this.$store and worked pretty well in most cases. -But when the store grew a bit more complex I wished back some of the features Vuex offers. Especially actions, name-spacing and with them the much better encapsulation of the state. It also adds extra work as soon as you need to access the state from outside Vue, for example in API call logic.

-

When moving to Vue3 I played with the thought to try Vuex4. It has the same API as Vuex3 and is meant to be usable as a drop-in when updating a Vue2 application to Vue3. But rather quickly I decided to roll my own, simplified implementation that uses the new Composition API because it would make things much neater. But lets quickly recap first what this Composition API is and how it helped me here:

-

Composition API vs Options API

-

What is the Composition API and what is the Options API? You might not have heard of those terms yet but they will become more popular within the Vue ecosystem as soon as Vue3 is out of beta.

-

The Options API is and will be the default way to build components in Vue. It is what we all know. Lets assume the following template:

-
<div>
-  <div class="greeting">{{ hello }}</div>
-  <input v-model="name" placeholder="change name" />
-
-  <div class="counter">Clicked {{ clicks }} times</div>
-  <button @click="countUp">click!</button>
-</div>
-
-

This is how an Options API example would look like:

-
const component = new Vue({
-    return {
-      name 'World',
-      clicks: 0
-    }
-  },
-  computed: {
-    hello () {
-      return `Hello ${this.name}`
-    }
-  },
-  methods: {
-    countUp () {
-      this.clicks++
-    }
-  }
-})
-
-

This still works the same in Vue3. But additionally it supports a new setup method that runs before initializing all the rest of the component and provides building blocks. Together with new imports this is the Composition API. You can use it side-by-side or exclusively to create your components. In most cased you'll not need it but as soon as you want to reuse logic or simply split a large component into logical chunks, the Composition API comes in very handy.

-

Here's one way how the example could look like using setup():

-
import { defineComponent, computed } from 'vue'
-
-// defineComponent() is now used instead of new Vue()
-const component = defineComponent({
-  setup () {
-    // greeting
-    const name = ref('World')
-    const hello = computed(() => `Hello ${name.value}`)
-    // counting
-    const clicks = ref(0)
-    const countUp = () => clicks.value++
-
-    return { name, hello, clicks, countUp }
-  }
-}  
-
-

Some things here might seem odd. computed gets imported, ref and whyname.value? Isn't that going to be annoying? It would be out of scope for this article, so I better point you to a source that explains all of this much better than I could: composition-api.vuejs.org is the place to go! There are also great courses on VueMastery.

-

Back to topic: The cool new thing now is that we can group concerns. Instead of putting each puzzle piece somewhere else (that is variables in data, reactive properties in computed and methods in methods) we can create everything grouped next to each other. What makes it even better is that thanks to the global imports, every piece can be split out into separate functions:

-
// Afraid of becoming React dev? Maybe call it 'hasGreeting' then.
-function useGreeting () {
-  const name = ref('World')
-  const hello = computed(() => `Hello ${name.value}`)
-  return { name, hello }
-}
-
-function useCounting () {
-  const count = ref(0)
-  const countUp = () => count.value = count.value + 1
-  return { count, countUp }
-}
-
-const component = defineComponent({
-  setup () {
-    const { name, hello } = useGreeting()
-    const { count: clicks, countUp } = useCounting()
-    return { name, hello, clicks, countUp }
-  }
-}  
-
-

This works the same way and it works with everything, including computed properties, watchers and hooks. It makes it also very clear where everything is coming from, unlike mixins. You can play around with this example in this Code Sandbox I made.

-

Minimalist but convenient state handling

-

While looking at the Composition API I thought about how it could be nice for simple and declarative state handling. Assuming I have somehow name-spaced state collections and actions, a bit like we know from Vuex, for example:

-
import { ref } from 'vue'
-
-// using 'ref' here because we want to return the properties directly
-// otherwise 'reactive' could be used
-export const state = {
-  name: ref('World'),
-  clicks: ref(0)
-}
-
-export const actions = {
-  'name/change': (name, newName) => {
-    name.value = newName
-  },
-  'clicks/countUp': (clicks) => {
-    clicks.value++
-  }
-}
-
-

Now this is a very simplified example of course but it should illustrate the idea. This could be used directly and the Composition API makes it not too inconvenient alread. Unfortunately it is not exactly beautiful to write (yet):

-
import { state, actions } from '@/state'
-
-defineComponent({
-  setup () {
-    return {
-      name: state.name,
-      clicks: state.clicks,
-      // brrr, not pretty
-      changeName (newName) { actions['name/change'](state.name, newName) }
-      countUp () { actions['clicks/countUp'](state.clicks) }
-    }
-  }
-})
-
-

To make this not only prettier but also less verbose, a helper can be introduced. The goal is to have something like this:

-
import { useState } from '@/state'
-
-defineComponent({
-  setup () {
-    const { collection: name, actions: nameActions } = useState('name')
-    const { collection: clicks, actions: clickActions } = useState('clicks')
-
-    return {
-      name,
-      clicks,
-      changeName: nameActions.change
-      countUp: clickActions.countUp
-    }
-  }
-})
-
-

Much nicer! And not too hard to build! Lets have a look at the useState source code:

-
function useState (prop) {
-  // assumes available state object with properties
-  // of type Ref, eg const state = { things: ref([]) }
-  const collection = state[prop]
-
-  // assumes available stateActions object with properties
-  // in the form 'things/add': function(collection, payload)
-  const actions = Object.keys(stateActions).reduce((acc, key) => {
-    if (key.startsWith(`${prop}/`)) {
-      const newKey = key.slice(prop.length + 1) // extracts action name
-      acc[newKey] = payload => stateActions[key](collection, payload)
-    }
-    return acc
-  }, {})
-
-  return { collection, actions }
-}
-
-

Just ten lines and it makes life so much easier! This returns the collection reference and maps all actions accordingly. For the sake of completeness here a full example with state and stateActions:

-
import { ref } from 'vue'
-
-// not using reactive here to be able to send properties directly
-const state = {
-  count: ref(0),
-  name: ref('World')
-}
-
-const stateActions = {
-
-  'count/increase' (countRef) {
-    countRef.value++
-  },
-  'count/decrease' (countRef) {
-    countRef.value--
-  },
-
-  'name/change' (nameRef, newName) {
-    nameRef.value = newName
-  }
-
-}
-
-function useState (prop) { /* ... */ }
-
-

Now useState('count') would return the reference state.count and an object with the actions increase and decrease:

-
import { useState } from '@/state'
-
-defineComponent({
-  setup () {
-    const { collection: count, actions: countActions } = useState('count')
-    return {
-      count,
-      countUp: countActions.increase
-    }
-  }
-})
-
-

This works well for me and happened to be very convenient already. Maybe I'll make a package out of it. What are your opinions on this?

-
-
- - - - - - diff --git a/dist/blog/index.html b/dist/blog/index.html deleted file mode 100644 index 6facb31..0000000 --- a/dist/blog/index.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - Weblog aka Blog // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Weblog

-
- -

Sometimes, I write long-form articles about a topic that I find interesting. I use this as a way to dive deeper into a topic, while often create an example project on the side.

-

Last updated: 2024-05-13

- -
- - -

- I will tell you how I created a simple top-down shooter in JavaScript without using any additional libraries. But this article is not replicating the full game but instead tries to show which steps to take to start writing a game from scratch. -

-
-
- - -

- Yesterday Frederic Cambus changed the default console font in OpenBSD to his self made font [Spleen](https://github.com/fcambus/spleen) as written in this [BSD Journal article](https://undeadly.org/cgi?action=article;sid=20190110064857). -

-
-
- -
- Running writefreely 0.7 on Arm - (4 to 5 minutes) -
-

- This is a follow-up on -[The expected tutorial: How to install WriteFreely on a Raspberry pi 3 in 10 steps](https://write.as/buttpicker/the-expected-tutorial-how-to-install-writefreely-on-a-raspberry-pi-3-in-10). I will explain what was necessary to make cross-compiling work for newer WriteFreely versions with SQLite support. -

-
-
- -
- Vuejs Reactivity From Scratch - (8 to 9 minutes) -
-

- Vuejs is the star newcomer in the Javascript Framework world. People love how it makes complicated things very simple yet performant. One of the more exciting features is its seemingly magic reactivity. Plain data objects in components magically invoke a rerender when a property changes. -

-
-
- -
- The Magic 0xC2 - (3 to 4 minutes) -
-

- I built a web application with file upload functionality. Some Vue.js in the front and a CouchDB in the back. Everything should be pretty simple and straigt forward. -

But…

-

-
-
- -
- The price to crack your password - (6 to 7 minutes) -
-

- Nearly six years ago, I wrote about password complexity and showed how long it takes to crack passwords per length. You can find that [article on github](https://github.com/nkoehring/hexo-blog/blob/master/source/_posts/spas-mit-passwortern.md) (in German). -

-
-
-
- - - - - - diff --git a/dist/cv/index.html b/dist/cv/index.html deleted file mode 100644 index 5debc1d..0000000 --- a/dist/cv/index.html +++ /dev/null @@ -1,248 +0,0 @@ - - - - - - - CV/Resume // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

My Resume

-
- -

My Curriculum Vitae / Resume. I know, there is a difference. This page is technically a resume, while the whole site would be closer to a CV.

-

Last updated: 2024-05-20

-

In me you will find an enthusiastic, passionate developer with around 13 years of professional experience in and around software development, mainly full-stack web development and consulting, but also coaching and community work. I strive to seek roles in creative, forward thinking companies with diverse teams that offer challenging work, trust and responsibility. Since 2022 I'm the principal frontend engineer and frontend chapter lead of Code Gaia.

-

Principal Frontend Engineer, Code Gaia

-
-

Gode Gaia GmbH, Munich / remote (since August 2022)

-
-

Main responsibilities

-
    -
  • leading the frontend chapter
  • -
  • defining development processes and standards
  • -
  • team management responsibilities
  • -
  • lead complete rewrite of frontend
  • -
  • interviewing potential new hires
  • -
-

Key Technologies

-
    -
  • Javascript/Typescript: Vue3 with Composition API
  • -
  • AWS Amplify
  • -
  • AWS Bedrock
  • -
-

Noteworthy aspects

-
    -
  • AI integration (LLM as well as document scanning and categorization)
  • -
  • Python / Django backend
  • -
  • 100% remote work
  • -
-
-

Senior Software Engineer, Coursedog

-
-

Coursedog Inc, New York / remote (June 2021 till June 2022)

-
-

Main responsibilities

-
    -
  • frontend introduction and contact for newcomers
  • -
  • maintainance/bug fixing for existing features
  • -
  • development of multiple new features
  • -
  • introduced Docker to ease developer onboarding
  • -
  • lead the frontend-part of feature flags introduction
  • -
  • being part of the Typescript transition team
  • -
-

Key Technologies

-
    -
  • Javascript/Typescript: Vue2 with Composition API
  • -
  • Node: Express, Fastify
  • -
-

Noteworthy aspects

-
    -
  • Large codebase (~450k SLOC in total)
  • -
  • 100% remote work
  • -
-
-

Senior Consultant, Wunderdog

-
-

Wunderdog GmbH, Helsinki / Berlin / remote (June 2018 till June 2021)

-
-

Main responsibilities

-
    -
  • Consultant work with lots of different clients
  • -
  • including leadership roles, hiring and building new teams
  • -
  • enhancing existing teams or on my own
  • -
  • in companies ranging from 1000s of employees to small startups
  • -
  • sectors include retail, sports, travel, entertainment, HR
  • -
  • doing feature development for large, medium and small as well as greenfield projects
  • -
-

Key Technologies

-
    -
  • Javascript/Typescript: Vue, React, Ember
  • -
  • Node: Express, Koa, Featherjs
  • -
  • Ruby: Ruby on Rails, Sinatra
  • -
  • AWS, GCP
  • -
-

Noteworthy aspects

-
    -
  • Wide variety of projects and companies
  • -
  • Greenfield projects as well as existing code bases
  • -
-
-

Senior Software Engineer, HERE

-
-

HERE Global BV, Berlin (November 2017 till March 2018)

-
-

Main responsibilities

-
    -
  • planning and implementation of a web based floor plan and indoor navigation system with touch controls and full access control system
  • -
  • integration of meeting room related functionality into Office 365
  • -
-

Key Technologies

-
    -
  • Javascript: Vue, SVG, MapGL
  • -
  • Node: Express
  • -
  • IOT: Bluetooth controlled sensors
  • -
  • Azure Cloud and Microsoft Office 365 integration
  • -
-
-

Senior Software Engineer, FromAtoB

-
-

FromAtoB GmbH, Berlin (August 2016 till September 2017)

-
-

Main responsibilities

-
    -
  • development of a single-page application in the travel sector
  • -
  • lead the introduction of Vue into the process
  • -
  • rebuilt complete website funnel and replaced old application step-by-step
  • -
  • while maintaining the Ruby-on-Rails based web application
  • -
  • implemented internal tooling in Rust
  • -
-

Key Technologies

-
    -
  • Javascript/Typescript (Vuejs)
  • -
  • Ruby (Ruby on Rails)
  • -
  • Rust
  • -
-
-

Software Engineer (freelancing)

-
-

Berlin, remote (June 2015 till August 2017)

-
-

Clients (selection)

-
    -
  • Zalando (Retail, frontend-development with React)
  • -
  • Camunda (BPMN.io, open-source web-based BPMN modeler and rendering toolkit, Javascript, SVG)
  • -
  • Blacklane (Ride service, web-based booking system, AngularJS, Node Express)
  • -
-

Key Technologies

-
    -
  • Javascript/Typescript: Vue, React, AngularJS
  • -
  • Node: Express
  • -
-
-

Software Engineer, HERE

-
-

HERE Global BV, Berlin (November 2013 till May 2015)

-
-

Main responsibilities

-
    -
  • implementation of a mapping and discovery web-application
  • -
  • map-tile loading optimization
  • -
  • path rendering
  • -
  • POI proximity search
  • -
-

Key Technologies

-
    -
  • Javascript/Typescript: Vue, React, Ember
  • -
  • Node: Express, Koa, Featherjs
  • -
  • Ruby: Ruby on Rails, Sinatra
  • -
-
-

Software Engineer (freelancing)

-
-

Leipzig, Berlin, remote (October 2009 till October 2013)

-
-

Clients (selection)

-
    -
  • Coreon (Taxonomy management, web-based editor, Javascript, Backbone, SVG, Ruby on Rails)
  • -
  • Wimdu (Travel web-application, live search, Javascript, Backbone, Ruby on Rails, ElasticSearch
  • -
  • Appzonaut / Telekom Innovation Labs (experimental UI for multi-cloud management, Javascript, Backbone, SVG, Python, Flask
  • -
-

Key Technologies

-
    -
  • Javascript: Backbone, AngularJS
  • -
  • Ruby: Ruby on Rails, Sinatra / Padrino
  • -
  • Python: Flask
  • -
  • SVG, HTML5, CSS3
  • -
  • CouchDB, MongoDB
  • -
-
-
- - - - - - diff --git a/dist/extended.css b/dist/extended.css deleted file mode 100644 index b8730b4..0000000 --- a/dist/extended.css +++ /dev/null @@ -1,46 +0,0 @@ -#main-menu { - position: fixed; - top: var(--header-height); - width: 100vw; - background-color: var(--menu-bg-color); - transition: top .3s ease-in-out, background-color 1s ease-in; -} - -#main-menu>menu { - width: 960px; - max-width: 98%; - height: 1.2rem; - margin: 0 auto 0; - padding: 0; - display: flex; - justify-content: space-around; - align-items: center; - list-style: circle; -} -#main-menu > li { - padding: 0; -} -body>header.small + #main-menu { - top: var(--header-height-small); - background-color: var(--header-bg-color); -} -body>header.small + #main-menu>menu { - padding: .5rem 0; -} -pre { - background: var(--emboss-color); - padding: .5rem; -} -li.active>a { - color: var(--highlight-fg-color); - font-weight: bold; -} - -@media (max-width: 480px) { - #main-menu>menu { - height: 2.4rem; - margin-left: 1.5rem; - flex-flow: column wrap; - align-items: flex-start; - } -} diff --git a/dist/index.html b/dist/index.html deleted file mode 100644 index db64327..0000000 --- a/dist/index.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - Norman Köhring // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

- Hi there! I am a - programmer, - open-source - enthusiast - and - hacker - based in Berlin, Germany. -

-

- I call myself a code artist, because programming can and should be seen as a creative process; therefore code is - art. I love to craft pieces of art with code, that are beautiful and elegant in their simplicity, readability - and architecture. -

-

- Looking for expert advice and development services for a short-term project? I offer guidance on software - architecture decisions, coding solutions and performance optimizations tailored to your needs. Let's work - together to solve your challenges. - Get in touch! -

- - -
-
-

experience

-
-

Thirteen years of professional experience in a couple of tweets

-
-

Pretty early in my life I realized that I work best on my own terms. That does not mean that I prefer to work alone. Working with clients, team mates, designers and managers is a crucial part of any development process.

-

Some time in the year 2009 I decided to not only live up to my way of working but also share my experience even more. I decided to become a freelancing programmer and consultant. Since then many different places benefited from my work. Start-Ups in their first months as well as well known companies like HERE and Deutsche Telekom Labs.

-

Together with entrepreneurs, UI/UX experts and engineers of many fields I created novel and beautiful applications that still influence the live of thousands of people.

-

Please see my CV for a more detailed list.

-

coaching

-
-

Whenever possible, I try to help others to learn

-
-

I’m the organizer of Vuejs // Berlin, a monthly meetup group around Vue and web technologies in general.

-

Many people want to learn and grow. Whenever I can I try to help those people by sharing my experience and knowledge. I already voluntarily coached at Code Curious, Frauenloop and Jugend Hackt. I also helped children with their first steps into the world of programming at the Berlin CoderDojo.

-

contact

-
-

You can find me all over the interwebs

-
- -
- -
-
- - - - - - - - diff --git a/dist/now/index.html b/dist/now/index.html deleted file mode 100644 index 061e3fa..0000000 --- a/dist/now/index.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - /now // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Now -- What I'm up to right now

-
- -

This page shows what I'm up to at the moment, following the idea of the /now page introduced by Derek Sivers. You can find more now pages on nownownow.

-

Last updated: 2024-05-12

-

Still live in Berlin where I am working fully remote. I'm appproaching the second anniversary at Code Gaia now and have no plans to change any of it.

-

Priorities

-
-

I do a lot of things all the time and have a hard time to focus. Most of my energy right now hopefully flows into the following things:

-
-
    -
  • This homepage.
  • -
  • Keeping up the pace professionally by taking up more management responsibilities.
  • -
  • Ramping up my side-project game (mainly by doing smaller freelancing jobs).
  • -
  • Fleshing out a long form D&D campaign ("Out Of The Cold Shadow").
  • -
  • Writing down more short adventures and one-shots and publish them on tiskifer.dk.
  • -
  • My wedding and honeymoon in June!
  • -
-

Book(s)

-
-

I'm not really good with taking time for reading, but when I do, I read:

-
-

Accelerando -by Charles Stross

-

The Manager's Path -by Camille Fournier

-
-
- - - - - - diff --git a/dist/projects/index.html b/dist/projects/index.html deleted file mode 100644 index 2f94165..0000000 --- a/dist/projects/index.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - Active Projects // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Active Projects

-
- -

My currently active projects. This is mostly about software, but might also include some TTRPG stuff, from time to time.

-

Last updated: 2024-05-17

-

Homepage Overhaul

-
-

With lots of work comes lots of opportunity for productive procrastination

-
-

Not too long ago, .ing TLDs became available, that allowed me to finally have my full name as a "cool" domain name: koehr.ing. Other domains I have are nkoehring.de (boring), koehr.in (confusing) and k0r.in (nerdy). koehri.ng wouldn't be possible due to domain registars policies or pricing (Nigeria used to have the british model, like allowing only net.ng, com.ng, and so on. Later they allowed more, but the price would be pretty high).

-

Why am I writing all this? Because the new domain name made me think about my homepage as a professional. I wanted to have something, that showcases my skills while not being the usual boring homepage. This is how the interactive homepage experiment began; a terminal like website, written from scratch. Having this, I now also needed to change my old homepage to somehow feature my new shiny experiment. But my old homepage is white and not very responsive; two very good reasons (for me), to change it. So I also started writing a completely new homepage, using vss. Pretty soon I realised, it is by far not mature enough for my needs, so I started building workarounds to suit my needs, so I don't get stuck in the rabbit hole of choosing frameworks over finishing the page. My plan is, to finish the page and its content and then, when there is time, move it on top of something more sophisticated, like good ol' Zola.

-

New Server

-

I found a pretty cheap dedicated server with tons of space and quite some CPU power, compared to cheap virtual servers. Now I need to move everything I hosted on a VServer before. That is not a simple task, unfortunately, as I tend to overthink and want to use the change to make everything better (or just different, maybe). This move includes a switch from Docker and systemd services to podman and lingering users. This way, no root enabled service is involved in running any outside-facing services. This website and everything under the koehr.ing domain runs already on the new server.

-

learned.today

-

Quite a while (aka way too long) ago, I bought the domain learned.today and thought about some idea around a Today I learned page or service, where people just share short snippets of things they just learned, similar to my TIL page. I never got to implementing it though. I wrote it down here as a motivation for myself, to finally work on it.

-
-
- - - - - - diff --git a/dist/setup/index.html b/dist/setup/index.html deleted file mode 100644 index f6860c0..0000000 --- a/dist/setup/index.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - My Setup // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

My Hardware Setup

-
- -

As a software engineer, the tools I use define how I work and I find it inspiring to see which tools other people use. This page focusses on Hardware. For Software, check /stack.

-

Last updated: 2024-05-20

-

I used to work on laptops without any extras, but over the years ergonomics got more and more important. Now I have a second screen, a standing desk and an ergonomic chair. My main keyboard is split in half and my pointer device is a big red ball.

-

Work Computer: Thinkpad T14s

-
-

Decent CPU, good amount of RAM, very lightweight, great battery life

-
-

Thinkpads are my go-to laptops for work. They are robust and performant.

-

Private Computer: ASUS Zenbook Pro Duo

-
-

Fantastic screen, a second display, decent hardware

-
-

My private laptop is a bit more experimental. It features a dual screen setup with a 16:10 OLED screen and an additional 16:5(-ish) LCD above the keyboard.

-

Keyboard: Sofle 2 split-keyboard

-

I use the Sofle 2 keyboard. I adapted it to my needs. It features two rotary encoders and a customized qmk firmware configuration. The source code can be found on github.

-

Pointer: Kensington Orbit

-

The Kensington Orbit is a trackball and a treat for every wrist.

-

Desk: ergonomic

-

My desk is height adjustable, so that I can sit or stand at it. Its not a fancy branded one; it does it job well, though.

-

Chair: ergonomic

-

My chair is an ergonomic office chair with 4D arm rests and extra back support. I can sit on it all day without issues.

-
-
- - - - - - diff --git a/dist/stack/index.html b/dist/stack/index.html deleted file mode 100644 index c424e9e..0000000 --- a/dist/stack/index.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - My Stack // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

My Software Stack

-
- -

As a software engineer, the tools I use define how I work and I find it inspiring to see which tools other people use. This page focusses on Software. For Hardware, check /setup.

-

Last updated: 2024-05-13

-

My software stack is pretty old-school. I prefer CLI applications for almost everything. The only GUI programs I usually run are browsers, image manipulators and LogSeq.

-

OS: Fedora Linux

-

It all started with Real Red Linux 2000, a special millenium version of RedHat Linux. I don't know for sure, but I think it was based on RedHat 6.1 or 6.2.

-

Over the years, I first used different RPM based distributions, then switched to Gentoo for a while, before getting annoyed by the compiling frenzy and discovering Arch. When Arch made the switch to systemd, I found Void Linux and stayed with it for years. At some point, not many years ago, I went with Fedora and it struck a nice middle ground between customizability and "it just works". Thanks to Fedora Spins, it is now easy to have a more standard system on my work laptop and a rather customized one on my private laptop, without too many differences in the foundation. I use official the Sway Spin on my private laptop.

-

DE: GNOME vs Sway

-

Over the years I got used to tiling window managers. Honestly, I tried almost all of them and went from hyper-configurable to super minimalist. I ended up - as usual - somewhere in the middle, with i3 and Sway.

-

My work laptop has a GNOME desktop with some extensions, that make it work well for me. My typical work flow involves full screen applications and many desktops. I rarely have more than one window on one screen. That is why I didn't have too much of a hard time to switch from dwm and similar tiling window managers to GNOME, because it uses MacOS-like gestures to work with desktops. Extensions like Maximize Lonely Window help as well. There used to be another extension, Maximize To Empty Workspace, which was even closer to my usual way of working. But it is not supported in newer GNOME versions.

-

Editor: Helix

-

Most of my life, I used ViM. It made me more productive and helped me to focus on the things that matter most for my productivity. One day, I found Kakoune, which blew me away by being so similar and yet different to ViM, in a (in my opinion) good way. What Kakoune does is to to switch around the command order. While ViM's command language is VERB-MODIFIER-OBJECT. For example: d2w means delete two words. Kakoune switches that to MODIFIER-VERB-OBJECT and introduces selecting and non-selecting movement, which allows you to see your selection before applying an action. d2w changes to 2Wd, which translates to select next two words, then delete them. I finally settled with Helix, an editor that uses Kakounes command language, but implements many useful things by default, while still being very configurable.

-

Terminal: foot + zellij + zsh

-

Almost all of my day-to-day applications are in the terminal. I am so used to it, that I started trusting GUI applications less. This is obviously my issue, but luckily I'm not alone, so many great CLI applications exist.

-

I use foot as terminal emulator. It is lightweight, supports 24bit colours and works with Wayland.

-

Inside foot runs zellij, which is a terminal multiplexer similar to screen and tmux. It allows me to run multiple applications in one terminal, keeps sessions alive after closing the terminal emulator and so on. I actually configured zellij to feel a lot more like tmux, because I'm so used to the latter and honestly I might just switch back to tmux, who knows.

-

My shell of choice is zsh with oh-my-zsh. It is by far the most versatile shell and the only one (to my knowledge) that supports RPROMPT, a prompts at the end of the line.

-

Browser: Firefox

-

My browser of choice is Firefox, because I want an open and diverse internet. Firefox is a great choice and offers lots of features, like direct PDF support, privacy features out of the box and great synchronisation. Chrome and Chromium-based browsers are great as well, but if everyone uses the same browser, we'll end up with whatever the company behind this browser wants the internet to be.

-

Other Tools: LogSeq, Poe, Bitwarden, Git...

-

Of course, I use a lot more tools in my day-to-day work.

-

I use LogSeq for knowledge management. It is similar to Evernote, Obsidian or Notion. For me it hits the mark between flexibility and structure. I use it for everthing from todo lists to planning long D&D campaigns.

-

Poe allows access to all kinds of generative intelligence tools, like LLMs ("ChatGPT") and image generators. I mostly use Mistral, but also switch between models from time to time. They help me with brainstorming and sometimes I misuse them to write JSDoc comments for me.

-

Bitwarden is a fantastic password manager with lots of utilities. It works so that you don't need to trust the server provider, because everything runs on the client (for example in a browser plugin) and is encrypted locally before being sent to the server. The best thing is, that I can host a bitwarden server myself, using Vaultwarden.

-

GIT is the most widely used source code management as of today. Although I see some strengths in other systems, Git is by far good enough for all my needs. I host my own Forgejo git server at git.k0r.in.

-

There is a lot more and I might extend this list from time to time.

-
-
- - - - - - diff --git a/dist/til/2021-08-31.html b/dist/til/2021-08-31.html deleted file mode 100644 index d74e269..0000000 --- a/dist/til/2021-08-31.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - Today I learned // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

TIL -- Today I learned

-
- -

There is a HTML tag for "Word Break Opportunity"

-

source

-

For example: Kauf<wbr/>haus.

-
-
- - - - - - diff --git a/dist/til/2021-09-03.html b/dist/til/2021-09-03.html deleted file mode 100644 index 8c28da1..0000000 --- a/dist/til/2021-09-03.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - Today I learned // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

TIL -- Today I learned

-
- -

Bush refused offer to discuss Osama Bin Laden handover

-

source

-
-
- - - - - - diff --git a/dist/til/2021-09-04.html b/dist/til/2021-09-04.html deleted file mode 100644 index c8a8359..0000000 --- a/dist/til/2021-09-04.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - Today I learned // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

TIL -- Today I learned

-
- -

git fetch $repo_url $remote_branch:$new_local_branch

-

source

-
-
- - - - - - diff --git a/dist/til/2021-09-05.html b/dist/til/2021-09-05.html deleted file mode 100644 index 0b85c88..0000000 --- a/dist/til/2021-09-05.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - Today I learned // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

TIL -- Today I learned

-
- -

E-Mail that isn't spam is called ham!

-

source

-
-
- - - - - - diff --git a/dist/til/2022-02-22.html b/dist/til/2022-02-22.html deleted file mode 100644 index b1deec0..0000000 --- a/dist/til/2022-02-22.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - Today I learned // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

TIL -- Today I learned

-
- -

Adding aliases in vite with typescript needs the same alias in tsconfig

-

For example:

-

The following vite.config.ts:

-
import { fileURLToPath, URL } from "url"
-import { defineConfig } from 'vite'
-import vue from '@vitejs/plugin-vue'
-
-// https://vitejs.dev/config/
-export default defineConfig({
-  plugins: [vue()],
-  resolve: {
-    alias: {
-      "~": fileURLToPath(new URL("./src", import.meta.url)),
-      "~component": fileURLToPath(new URL("./src/components", import.meta.url)),
-      "~composable": fileURLToPath(new URL("./src/composables", import.meta.url)),
-      "~lib": fileURLToPath(new URL("./src/lib", import.meta.url)),
-    }
-  }
-})
-
-

will need this in tsconfig.json:

-
{
-  "compilerOptions": {
-    "paths": {
-      "~/*": [ "./src/*" ],
-      "~component/*": [ "./src/components/*" ],
-      "~composable/*": [ "./src/composables/*" ],
-      "~lib/*": [ "./src/lib/*" ]
-    }
-  }
-}
-
-

The asterixes in the syntax are important (alias/* => ./path/*).

-
-
- - - - - - diff --git a/dist/til/2022-03-22.html b/dist/til/2022-03-22.html deleted file mode 100644 index cde8994..0000000 --- a/dist/til/2022-03-22.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - Today I learned // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

TIL -- Today I learned

-
- -

There is a file system for EFI vars now

-

source

-

On kernel updates I saw a recurring "EFI variables are not supported on this system", so I investigated and learned that the new EFI variables are provided via a file system that needs to be mounted first:

-
mount -t efivarfs efivarfs /sys/firmware/efi/efivars
-
-
-
- - - - - - diff --git a/dist/til/2022-03-28.html b/dist/til/2022-03-28.html deleted file mode 100644 index f0a3bed..0000000 --- a/dist/til/2022-03-28.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - Today I learned // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

TIL -- Today I learned

-
- -

pwdx command shows the working path of a process

-

source

-

For example:

-
% pwdx 1984
-> 1984: /home/george/ttlctrl
-
-
-
- - - - - - diff --git a/dist/til/2022-04-25.html b/dist/til/2022-04-25.html deleted file mode 100644 index 8cd7bf3..0000000 --- a/dist/til/2022-04-25.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - Today I learned // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

TIL -- Today I learned

-
- -

Jest mocks are ...different

-

If you want to mock an imported function in Jest in a way that allows you to check if it has been called, you can not do the seemingly straighforward:

-
// mock prefix necessary btw
-const mockThatFunction = jest.fn(() => 'stuff')
-
-jest.mock('@/path/to/module', () => ({
-  thatFunction: mockThatFunction,
-}))
-
-// ...in test descriptions
-expect(mockThatFunction).toHaveBeenCalled()
-
-

This way thatFunction will be undefined without anyone telling you why.

-

What you need to do instead:

-
import { thatFunction } from '@/path/to/module'
-
-jest.mock('@/path/to/module', () => ({
-  thatFunction: jest.fn(() => 'stuff'),
-}))
-
-// ...in test descriptions
-expect(thatFunction).toHaveBeenCalled()
-
-
-
- - - - - - diff --git a/dist/til/2022-06-15.html b/dist/til/2022-06-15.html deleted file mode 100644 index 6bf0d25..0000000 --- a/dist/til/2022-06-15.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - Today I learned // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

TIL -- Today I learned

-
- -

Disallowed Focussed Tests and how it saved my day

-

Today I was about to push a focussed test. A focussed test, you ask?

-

In Jest (and others) one can run only a specific test, by writing it.only(.... Pushing this to production might create some funny or not so funny side effects though. Luckily there is the no-focussed-tests linter rule in eslint-plugin-jest.

-
-
- - - - - - diff --git a/dist/til/2024-05-11.html b/dist/til/2024-05-11.html deleted file mode 100644 index 99d264c..0000000 --- a/dist/til/2024-05-11.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - Today I learned // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

TIL -- Today I learned

-
- -

Rob Pike's 5 Rules of Programming

-

source

-
    -
  1. You can't tell where a program is going to spend its time. Bottlenecks occur in surprising places, so don't try to second guess and put in a speed hack until you've proven that's where the bottleneck is.
  2. -
  3. Measure. Don't tune for speed until you've measured, and even then don't unless one part of the code overwhelms the rest.
  4. -
  5. Fancy algorithms are slow when n is small, and n is usually small. Fancy algorithms have big constants. Until you know that n is frequently going to be big, don't get fancy. (Even if n does get big, use Rule 2 first.)
  6. -
  7. Fancy algorithms are buggier than simple ones, and they're much harder to implement. Use simple algorithms as well as simple data structures.
  8. -
  9. Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming.
  10. -
-

Pike's rules 1 and 2 restate Tony Hoare's famous maxim "Premature optimization is the root of all evil." Ken Thompson rephrased Pike's rules 3 and 4 as "When in doubt, use brute force.". Rules 3 and 4 are instances of the design philosophy KISS. Rule 5 was previously stated by Fred Brooks in The Mythical Man-Month. Rule 5 is often shortened to "write stupid code that uses smart objects".

-
-
- - - - - - diff --git a/dist/til/2024-05-12.html b/dist/til/2024-05-12.html deleted file mode 100644 index 53044da..0000000 --- a/dist/til/2024-05-12.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - Today I learned // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

TIL -- Today I learned

-
- -

Sort list of strings in Javascript

-

source

-
users.sort((a, b) => a.firstname.localeCompare(b.firstname))
-
-

or reversed order:

-
users.sort((a, b) => a.firstname.localeCompare(b.firstname) * -1)
-
-
-
- - - - - - diff --git a/dist/til/2024-05-13.html b/dist/til/2024-05-13.html deleted file mode 100644 index 03dab57..0000000 --- a/dist/til/2024-05-13.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - Today I learned // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

TIL -- Today I learned

-
- -

Reading speed is usually from 100 to 260 words per minute

-

source

-

With an average of 183 wpm.

-
-
- - - - - - diff --git a/dist/til/index.html b/dist/til/index.html deleted file mode 100644 index 979b01f..0000000 --- a/dist/til/index.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - Today I learned // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

TIL -- Today I learned

-
- -

This page contains short notes and sometimes code snippets, of interesting things I just found out.

-

Last updated: 2024-05-13

- - - - - - - - - - - - -
-
- - - - - - diff --git a/layouts/blog.html b/layouts/blog.html new file mode 100644 index 0000000..2f74610 --- /dev/null +++ b/layouts/blog.html @@ -0,0 +1,34 @@ + + + + + + + +
+
+

+ +
+ +
+ +
    +
  1. + +
    + + (~ mins) +
    +

    +
  2. +
+
+ +
diff --git a/layouts/blog/index.html b/layouts/blog/index.html deleted file mode 100644 index d106242..0000000 --- a/layouts/blog/index.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - Weblog aka Blog // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Weblog

-
- - @contents -
-
- - - - - - diff --git a/layouts/cv/index.html b/layouts/cv/index.html deleted file mode 100644 index 84e078f..0000000 --- a/layouts/cv/index.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - CV/Resume // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

My Resume

-
- - @contents -
-
- - - - - - diff --git a/layouts/homepage.html b/layouts/homepage.html new file mode 100644 index 0000000..dcfc13a --- /dev/null +++ b/layouts/homepage.html @@ -0,0 +1,58 @@ + + + + + +
+
+

+ Hi there! I am a + programmer, + open-source + enthusiast + and + hacker + based in Berlin, Germany. +

+

+ I call myself a code artist, because programming can and should be seen as a creative process; therefore code is + art. I love to craft pieces of art with code, that are beautiful and elegant in their simplicity, readability + and architecture. +

+

+ Looking for expert advice and development services for a short-term project? I offer guidance on software + architecture decisions, coding solutions and performance optimizations tailored to your needs. Let's work + together to solve your challenges. + Get in touch! +

+ + +
+ +
+ + +
+ +
+
diff --git a/layouts/index.html b/layouts/index.html deleted file mode 100644 index c8b25e6..0000000 --- a/layouts/index.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - @title // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

- Hi there! I am a - programmer, - open-source - enthusiast - and - hacker - based in Berlin, Germany. -

-

- I call myself a code artist, because programming can and should be seen as a creative process; therefore code is - art. I love to craft pieces of art with code, that are beautiful and elegant in their simplicity, readability - and architecture. -

-

- Looking for expert advice and development services for a short-term project? I offer guidance on software - architecture decisions, coding solutions and performance optimizations tailored to your needs. Let's work - together to solve your challenges. - Get in touch! -

- - -
-
- @contents -
- -
-
- - - - - - - - diff --git a/layouts/now/index.html b/layouts/now/index.html deleted file mode 100644 index c1e1477..0000000 --- a/layouts/now/index.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - /now // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Now -- What I'm up to right now

-
- - @contents -
-
- - - - - - diff --git a/layouts/page.html b/layouts/page.html new file mode 100644 index 0000000..4e89e65 --- /dev/null +++ b/layouts/page.html @@ -0,0 +1,17 @@ + + + + + +
+
+

+ +
+ Last updated: +
+ +
+
+ +
diff --git a/layouts/projects/index.html b/layouts/projects/index.html deleted file mode 100644 index cb64d86..0000000 --- a/layouts/projects/index.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - Active Projects // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Active Projects

-
- - @contents -
-
- - - - - - diff --git a/layouts/setup/index.html b/layouts/setup/index.html deleted file mode 100644 index cf7b8c9..0000000 --- a/layouts/setup/index.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - My Setup // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

My Hardware Setup

-
- - @contents -
-
- - - - - - diff --git a/layouts/stack/index.html b/layouts/stack/index.html deleted file mode 100644 index 7582eec..0000000 --- a/layouts/stack/index.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - My Stack // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

My Software Stack

-
- - @contents -
-
- - - - - - diff --git a/layouts/templates/base.html b/layouts/templates/base.html new file mode 100644 index 0000000..6cd59a3 --- /dev/null +++ b/layouts/templates/base.html @@ -0,0 +1,105 @@ + + + + + + <super/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + +
+ +
+ + + + diff --git a/layouts/til.html b/layouts/til.html new file mode 100644 index 0000000..3a578e2 --- /dev/null +++ b/layouts/til.html @@ -0,0 +1,34 @@ + + + + + + + +
+
+

+ +
+ Last updated: +
+ +
+ +
    +
  1. + +
    + + (source) +
    +
  2. +
+
+ +
diff --git a/layouts/til/index.html b/layouts/til/index.html deleted file mode 100644 index 620b893..0000000 --- a/layouts/til/index.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - Today I learned // the codeartist — programmer and engineer based in Berlin - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

TIL -- Today I learned

-
- - @contents -
-
- - - - - - diff --git a/static/extended.css b/static/extended.css deleted file mode 100644 index b8730b4..0000000 --- a/static/extended.css +++ /dev/null @@ -1,46 +0,0 @@ -#main-menu { - position: fixed; - top: var(--header-height); - width: 100vw; - background-color: var(--menu-bg-color); - transition: top .3s ease-in-out, background-color 1s ease-in; -} - -#main-menu>menu { - width: 960px; - max-width: 98%; - height: 1.2rem; - margin: 0 auto 0; - padding: 0; - display: flex; - justify-content: space-around; - align-items: center; - list-style: circle; -} -#main-menu > li { - padding: 0; -} -body>header.small + #main-menu { - top: var(--header-height-small); - background-color: var(--header-bg-color); -} -body>header.small + #main-menu>menu { - padding: .5rem 0; -} -pre { - background: var(--emboss-color); - padding: .5rem; -} -li.active>a { - color: var(--highlight-fg-color); - font-weight: bold; -} - -@media (max-width: 480px) { - #main-menu>menu { - height: 2.4rem; - margin-left: 1.5rem; - flex-flow: column wrap; - align-items: flex-start; - } -} diff --git a/static/posts.css b/static/posts.css index 135b44c..e8186a0 100644 --- a/static/posts.css +++ b/static/posts.css @@ -1,7 +1,3 @@ -main.posts { - margin: calc(var(--header-height-small) + 4rem) auto 4rem; -} - main.posts h2 { margin: 1.5em 0 0 0; font-size: 1.5rem; @@ -25,16 +21,3 @@ main.posts article>div>a.external, main.posts article>div>.reading-time { color: gray; } - -hr { - display: block; - border: none; - width: 100%; - height: 1px; - margin: 2rem 0; - background-color: var(--emboss-color); -} - -span[title] { - text-decoration: underline wavy gray; -} \ No newline at end of file diff --git a/static/style.css b/static/style.css index 5c5d9e1..d51167c 100644 --- a/static/style.css +++ b/static/style.css @@ -53,6 +53,44 @@ body { scroll-behavior: smooth; } +#main-menu { + position: fixed; + top: var(--header-height); + width: 100vw; + background-color: var(--menu-bg-color); + transition: top .3s ease-in-out, background-color 1s ease-in; +} + +#main-menu>menu { + width: 960px; + max-width: 98%; + height: 1.2rem; + margin: 0 auto 0; + padding: 0; + display: flex; + justify-content: space-around; + align-items: center; + list-style: circle; +} +#main-menu > li { + padding: 0; +} +body>header.small + #main-menu { + top: var(--header-height-small); + background-color: var(--header-bg-color); +} +body>header.small + #main-menu>menu { + padding: .5rem 0; +} +pre { + background: var(--emboss-color); + padding: .5rem; +} +li.active>a { + color: var(--highlight-fg-color); + font-weight: bold; +} + body>#spacer, body>header { position: fixed; @@ -66,7 +104,7 @@ body>#spacer { height: var(--header-height-small); } -body>header { +body>header, body>header>a { height: var(--header-height); color: transparent; transition: transform .3s ease-in-out; @@ -77,7 +115,7 @@ body>header.small { transform: scale(var(--header-height-multiplier)); } -body>header>svg { +body>header svg { display: block; width: 960px; max-width: 98vw; @@ -91,6 +129,11 @@ body>main { margin: var(--header-height) auto 4rem; } +body>main>header { + display: block; + padding: 2em 0; +} + a { color: var(--page-fg-color); } @@ -117,7 +160,7 @@ code { padding-top: 2rem; } #content>h1, -main.posts > header > h1 { +main > header > h1 { margin: 0 0 .25em; font-size: 2rem; font-variant: small-caps; @@ -127,6 +170,9 @@ main.posts > header > h1 { #content>h1 { padding-top: 2em; } +h2 { + color: var(--highlight-fg-color); +} #cta { display: flex; @@ -203,6 +249,19 @@ main.posts > header > h1 { animation: fade 2s linear infinite; } +hr { + display: block; + border: none; + width: 100%; + height: 1px; + margin: 2rem 0; + background-color: var(--emboss-color); +} + +span[title] { + text-decoration: underline wavy gray; +} + @keyframes fade { 0% { opacity: 1.0; @@ -239,6 +298,25 @@ main.posts > header > h1 { } @media (max-width: 480px) { + body>header.small { + transform: none; + } + body>header.small + #main-menu { + top: var(--header-height); + } + #main-menu>menu { + height: 2.4rem; + margin-left: 1.5rem; + padding: .5rem 0; + flex-flow: column wrap; + align-items: flex-start; + } + body>main { + margin: calc(var(--header-height) + 2rem) auto 4rem; + } + #content > h1 { + padding-top: calc(var(--header-height) + 2rem); + } .contacts { columns: 1; } diff --git a/til/2021-08-31.md b/til/2021-08-31.md deleted file mode 100644 index 2c775fd..0000000 --- a/til/2021-08-31.md +++ /dev/null @@ -1,5 +0,0 @@ -# There is a HTML tag for "Word Break Opportunity" - -[source](https://www.w3schools.com/TAGS/tag_wbr.asp) - -For example: `Kaufhaus`. diff --git a/til/2021-09-03.md b/til/2021-09-03.md deleted file mode 100644 index 9008aef..0000000 --- a/til/2021-09-03.md +++ /dev/null @@ -1,3 +0,0 @@ -# Bush refused offer to discuss Osama Bin Laden handover - -[source](https://www.theguardian.com/world/2001/oct/14/afghanistan.terrorism5) diff --git a/til/2021-09-04.md b/til/2021-09-04.md deleted file mode 100644 index f775578..0000000 --- a/til/2021-09-04.md +++ /dev/null @@ -1,3 +0,0 @@ -`git fetch $repo_url $remote_branch:$new_local_branch` - -[source](https://twitter.com/lucas59356/status/1433507127570669569) diff --git a/til/2021-09-05.md b/til/2021-09-05.md deleted file mode 100644 index d0413dd..0000000 --- a/til/2021-09-05.md +++ /dev/null @@ -1,3 +0,0 @@ -# E-Mail that isn't spam is called ham! - -[source](https://twitter.com/claranellist/status/1433539284779220997) diff --git a/til/2022-03-22.md b/til/2022-03-22.md deleted file mode 100644 index 5131e51..0000000 --- a/til/2022-03-22.md +++ /dev/null @@ -1,9 +0,0 @@ -# There is a file system for EFI vars now - -[source](https://www.kernel.org/doc/html/latest/filesystems/efivarfs.html) - -On kernel updates I saw a recurring "EFI variables are not supported on this system", so I investigated and learned that the new EFI variables are provided via a file system that needs to be mounted first: - -```sh -mount -t efivarfs efivarfs /sys/firmware/efi/efivars -``` diff --git a/til/2022-03-28.md b/til/2022-03-28.md deleted file mode 100644 index aac9716..0000000 --- a/til/2022-03-28.md +++ /dev/null @@ -1,10 +0,0 @@ -# pwdx command shows the working path of a process - -[source](https://twitter.com/mani_maranp/status/1508476973529825281) - -For example: - -```sh -% pwdx 1984 -> 1984: /home/george/ttlctrl -``` diff --git a/til/2024-05-12.md b/til/2024-05-12.md deleted file mode 100644 index 37de2c8..0000000 --- a/til/2024-05-12.md +++ /dev/null @@ -1,13 +0,0 @@ -# Sort list of strings in Javascript - -[source](https://stackoverflow.com/questions/6712034/sort-array-by-firstname-alphabetically-in-javascript) - -```ts -users.sort((a, b) => a.firstname.localeCompare(b.firstname)) -``` - -or reversed order: - -```ts -users.sort((a, b) => a.firstname.localeCompare(b.firstname) * -1) -``` diff --git a/til/2024-05-13.md b/til/2024-05-13.md deleted file mode 100644 index b1ef36f..0000000 --- a/til/2024-05-13.md +++ /dev/null @@ -1,5 +0,0 @@ -# Reading speed is usually from 100 to 260 words per minute - -[source](https://thereadtime.com/) - -With an average of 183 wpm. diff --git a/til/index.md b/til/index.md deleted file mode 100644 index eb86a6a..0000000 --- a/til/index.md +++ /dev/null @@ -1,99 +0,0 @@ -*This page contains short notes and sometimes code snippets, of interesting things I just found out.* - -Last updated: 2024-05-13 - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/zig-out/blog/2016-12-04-the-price-to-crack-your-password/index.html b/zig-out/blog/2016-12-04-the-price-to-crack-your-password/index.html new file mode 100644 index 0000000..06020bd --- /dev/null +++ b/zig-out/blog/2016-12-04-the-price-to-crack-your-password/index.html @@ -0,0 +1,159 @@ + + + + + + the codeartist — programmer and engineer based in BerlinThe price to crack your password + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

The price to crack your password

+ Nearly six years ago, I wrote about password complexity and showed how long it takes to crack passwords per length. +
+ Last updated: +
+ +

You can find the original article on github (in German).

So, times changed and I thought about a reiteration of that topic, but instead focussing on the amount of money you need to crack the password using Amazons biggest GPU computing instances p2.16xlarge, which – at the time of writing this - costs 14.4 USD per hour. I will also compare this with the much faster Sagitta Brutalis (nice name, eh?), a 18500 USD computer optimised for GPU calculation.

Disclaimer

The numbers on this article always assume brute-force attacks, that means the attacker uses a program that tries all possible combinations until it finds the password. The numbers indicate average time to compute all possible entries. If the program simply adds up, for example, from 000000 to 999999 and your password is 000001, it will be found much faster of course.

How long a single calculation needs also depends on the used hashing algorithm. I will compare some of the typically used algorithms. In case you have to implement a password security system, please use BCrypt which is in most cases the best choice but NEVER try to implement something on your own! It is never ever a good idea to create an own password hashing scheme, even if it is just assembled out of existing building blocks. Use the battle-tested standard solutions. They are peer-reviewed and the safest and most robust you can get.

Password complexity basics

Password complexity is calculated out of the possible number of combinations. So a 10-character password that only contains numbers is far less complex than a mix of letters and numbers of the same length. Usually an attacker has no idea if a specific password only contains numbers or letters, but a brute-force attack will try simpler combinations first.

To calculate the complexity of a password, find the amount of possible combinations first:

  • Numbers: 10

  • ASCII Lowercase letters: 26

  • ASCII Uppercase letters: 26

  • ASCII Punctuation: 33

  • Other ASCII Characters: 128

  • Unicode: millions

To get the complexity of your password, simply add up the numbers. A typical password contains numbers, lowercase and uppercase letters which results in 62 possible combinations per character. Add some punctuation to raise that number to 95.

Other ASCII Characters are the less typical ones like ÿ and Ø which add to the complexity but might be hard to type on foreign keyboards. Unicode is super hard (if not impossible) to type on some computers but would theoretically add millions of possible characters. Fancy some ਪੰਜਾਬੀ ਦੇ in your password?

A very important factor in the password complexity is of course also the length. And because random passwords with crazy combinations of numbers, letters and punctuation are hard to remember, some people suggest to use long combination of normal words instead.

The password ke1r$u@U is considered a very secure password as the time of writing this article. Its complexity calculates like this:

8 characters with 95 possibilites:

95^8 = 6634204312890625 = ~6.6×10^15

log2(x) calculates the complexity in bits:

log2(6634204312890625) = ~52.56 bits

Data sources

I didn't try the password cracking myself, and neither did I ask a friend (insert trollface here). Instead I used publicly available benchmark results:

The results

I will compare some widely used password hashing methods, programs and protocols for four different password complexity categories:

  • eight numeric digits (might be your birthday)

  • eight alphanumeric characters (eg 'pa55W0Rd')

  • eigth alphanumeric characters mixed with special character (eg 'pa$$W0Rd')

  • a long memorisable pass sentence ('correct horse battery staple')

eight numeric digits (might be your birthday)

+ + + + + + + + +
hashAmazonBrutalisprice to crack in less than a month
+
      MD5 |    0.0s |     0.0s | $0.01 (1 EC2 instance)
+    Skype |    0.0s |     0.0s | $0.01 (1 EC2 instance)
+     WPA2 |   1.27m |   31.47s | $0.30 (1 EC2 instance)
+   SHA256 |   0.01s |     0.0s | $0.01 (1 EC2 instance)
+   BCrypt |   49.1m |   15.77m | $11.78 (1 EC2 instance)
+

AndroidPIN | 4.65s | 2.3s | $0.02 (1 EC2 instance) MyWallet | 0.34s | 0.25s | $0.01 (1 EC2 instance) BitcoinWallet | 1.98h | 46.26m | $28.53 (1 EC2 instance) LastPass | 11.07s | 5.4s | $0.04 (1 EC2 instance) TrueCrypt | 9.06m | 5.69m | $2.18 (1 EC2 instance) VeraCrypt | 4d | 2d | $1120.45 (1 EC2 instance)

Conclusion: Don't do this. Never ever do this.

eight alphanumeric characters (eg 'pa55W0Rd')

+ + + + + + + + +
hashAmazonBrutalisprice to crack in less than a month
+
      MD5 |  49.65m |   18.17m | $11.92 (1 EC2 instance)
+    Skype |    1.3h |   34.92m | $18.67 (1 EC2 instance)
+     WPA2 |      6y |       3y | $499500 (27 Brutalis)
+   SHA256 |   4.94h |    2.64h | $71.15 (1 EC2 instance)
+   BCrypt |    204y |      66y | $14.7M (797 Brutalis)
+

AndroidPIN | 118d | 59d | $37000 (2 Brutalis) MyWallet | 9d | 7d | $3003.3 (1 EC2 instance) BitcoinWallet | 494y | 193y | $43.25M (2338 Brutalis) LastPass | 280d | 137d | $92,500 (5 Brutalis) TrueCrypt | 38y | 24y | $5.3M (288 Brutalis) VeraCrypt | 19381y | 11629y | $2.62B (141574 Brutalis)

eigth alphanumeric characters mixed with special character (eg 'pa$$W0Rd')

+ + + + + + + + +
hashAmazonBrutalisprice to crack in less than a month
+
      MD5 |      2d |    9.2h  | ~$362 (1 EC2 instance)
+    Skype |      2d |   17.7h  | ~$567 (1 EC2 instance)
+     WPA2 |    160y |     67y  | ~$14.9M (806 Brutalis)
+   SHA256 |      7d |      4d  | ~$2162 (1 EC2 instance)
+   BCrypt |   6194y |   1989y  | ~$448M (24,215 Brutalis)
+

AndroidPIN | 10y | 5y | ~$1.09M (59 Brutalis) MyWallet³ | 265d | 191d | ~$129500 (7 Brutalis) BitcoinWallet | 14996y | 5835y | ~$1.3B (71,038 Brutalis) LastPass | 24y | 12y | ~$2.6M (139 Brutalis) TrueCrypt² | 1144y | 718y | ~$162M (8,742 Brutalis) VeraCrypt¹ | 588867y | 353320y | ~$79.6B (4,301,668 Brutalis)

  1. VeraCrypt PBKDF2-HMAC-Whirlpool + XTS 512bit (super duper paranoid settings)

  2. TrueCrypt PBKDF2-HMAC-Whirlpool + XTS 512bit

  3. Blockchain MyWallet: https://blockchain.info/wallet/

a long memorisable pass sentence ('correct horse battery staple')

Okay, this doesn't need a table. It takes millions of billions of years to even crack this in MD5.

As illustration: The solar system needs around 225 Million years to rotate around the core of the Milkyway. This is the so called galactic year. The sun exists since around 20 galactic years. To crack such a password, even when hashed in MD5 takes 3 trillion (million million) galactic years.

Of course nobody would ever attempt to do this. There are many possibilities to crack a password faster. Explaining some of them would easily fill another article, so I leave you here. Sorry.

Links

To find your way into the topic, you might visit some of the following links:

+ +
+ +
+ + +
+ +
+ + + + diff --git a/zig-out/blog/2017-04-09-the-magic-0xc2/index.html b/zig-out/blog/2017-04-09-the-magic-0xc2/index.html new file mode 100644 index 0000000..bd6a800 --- /dev/null +++ b/zig-out/blog/2017-04-09-the-magic-0xc2/index.html @@ -0,0 +1,138 @@ + + + + + + the codeartist — programmer and engineer based in BerlinThe Magic 0xC2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

The Magic 0xC2

+ I built a web application with file upload functionality. Some Vue.js in the front and a CouchDB in the back. Everything should be pretty simple and straigt forward. But… +
+ Last updated: +
+ +

When I uploaded image files, they somehow got mangled. The uploaded file was bigger than the original and the new "file format" was not readable by any means. I got intrigued. What is it, that happens to the files? The changes seemed very random but reproducible, so I created a few test files to see what exactly changes and when.

My first file looked like this:

0123456789
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+abcdefghijklmnopqrstuvwxyz
+

To my surprise, the file stayed the same! My curiosity grew. In the meantime I found a very intriguing pattern in uploads hexdump: C3 BF C3. It was everywhere. In another file, I found similar patterns with C2. So I wrote my next test file. This time a binary file:

00 01 02 03 04 05 06 07  08 09 10 11 12 13 14 15 |................|
+16 17 18 19 20 21 22 23  24 25 26 27 28 29 30 31 |.... !"#$%&'()01|
+32 33 34 35 36 37 38 39  40 41 42 43 44 45 46 47 |23456789@ABCDEFG|
+48 49 50 51 52 53 54 55  56 57 58 59 60 61 62 63 |HIPQRSTUVWXY`abc|
+64 65 66 67 68 69 70 71  72 73 74 75 76 77 78 79 |defghipqrstuvwxy|
+80 81 82 83 84 85 86 87  88 89 90 91 92 93 94 95 |................|
+96 97 98 99 a0 a1 a2 a3  a4 a5 a6 a7 a8 a9 aa ab |................|
+ac ad ae af b0 b1 b2 b3  b4 b5 b6 b7 b8 b9 ba bb |................|
+00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 |................|
+

EDIT: As you probably already noticed, I counted up like in Base10 but it is actually Base16. So I skipped A-F until reaching A0. This might look weird but didn't affect the test.

The result after uploading was

00 01 02 03 04 05 06 07  08 09 10 11 12 13 14 15  |................|
+16 17 18 19 20 21 22 23  24 25 26 27 28 29 30 31  |.... !"#$%&'()01|
+32 33 34 35 36 37 38 39  40 41 42 43 44 45 46 47  |23456789@ABCDEFG|
+48 49 50 51 52 53 54 55  56 57 58 59 60 61 62 63  |HIPQRSTUVWXY`abc|
+64 65 66 67 68 69 70 71  72 73 74 75 76 77 78 79  |defghipqrstuvwxy|
+c2 80 c2 81 c2 82 c2 83  c2 84 c2 85 c2 86 c2 87  |................|
+c2 88 c2 89 c2 90 c2 91  c2 92 c2 93 c2 94 c2 95  |................|
+c2 96 c2 97 c2 98 c2 99  c2 a0 c2 a1 c2 a2 c2 a3  |................|
+c2 a4 c2 a5 c2 a6 c2 a7  c2 a8 c2 a9 c2 aa c2 ab  |................|
+c2 ac c2 ad c2 ae c2 af  c2 b0 c2 b1 c2 b2 c2 b3  |................|
+c2 b4 c2 b5 c2 b6 c2 b7  c2 b8 c2 b9 c2 ba c2 bb  |................|
+00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
+

There it was again: The magic 0xC2!

So all bytes with a value higher than 0x79 got followed by a 0xC2. 0x79 is the ASCII code for y. This is at least what I thought. It actually is the other way around: All bytes with value 0x80 or higher got prefixed by a 0xC2! — there the scales fell from my eyes: UTF-8 encoding!

In UTF-8 all characters after 0x7F are at least two bytes long. They get prefixed with 0xC2 until 0xC2BF (which is the inverted question mark ¿), which is then followed by 0xC380. So what happened is, that on the way to the server, the file got encoded to UTF-8 ¯\_(ツ)_/¯

EDIT: Corrected some mistakes after some comments on Hackernews

+ +
+ +
+ + +
+ +
+ + + + diff --git a/zig-out/blog/2017-08-17-vuejs-reactivity-from-scratch/index.html b/zig-out/blog/2017-08-17-vuejs-reactivity-from-scratch/index.html new file mode 100644 index 0000000..47783af --- /dev/null +++ b/zig-out/blog/2017-08-17-vuejs-reactivity-from-scratch/index.html @@ -0,0 +1,133 @@ + + + + + + the codeartist — programmer and engineer based in BerlinVuejs Reactivity From Scratch + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

Vuejs Reactivity From Scratch

+ Vuejs is the star newcomer in the Javascript Framework world. People love how it makes complicated things very simple yet performant. One of the more exciting features is its seemingly magic reactivity. Plain data objects in components magically invoke a rerender when a property changes. +
+ Last updated: +
+ +
+

NOTE: This is a copy of the original article from Aug 17th, 2017. You can read the archived original on archive.org

+

The button click invokes a function that just assigns a new value to a property. Still the template gets automagically rerendered. But we all know there is no fairydust involved, right? So how does it actually work?


The magic of getters and setters

With the ES5 standard JavaScript got lots of exciting new features. Some of them highly underrated and underused in my opinion. Getters and setters are an example. If you never heard of them, I would recommend you to read John Riesigs piece on them.

As soon as you know what getters and setters are: functions transparently called on every property access, you might already know where this goes. Boom! All the fairydust suddenly disappears.

Automatic getters and setters

Now that we at least in theory know how Vuejs realises the template data magic, let's build it ourselves for the sake of full understanding!

Abstract: A function that gets an object and returns one with the properties replaced by getters and setters that, on call, rerender a template. So far so good. If you are really impatient, you can find the final code in JSFiddle.

Let's start with a very simple approach:

+

The function iterates through all object keys and creates a new object with getters and setters in their place. It could also directly manipulate the original object:

+

I personally don't like to manipulate the existing object and prefer the first way.

Introducing: Object.defineProperty

Now before we go on with destroying our fantasies of fairydust computing, let's see if there is a more convenient way to what we've done for now. Here I introduce Object.defineProperty, which allows to set all possible attributes for the properties of an object. You can find a detailed description on MDN.

With this new knowlegde, the code can be made a bit more readable, by condensing everything into one call:

+

All those underscores where pretty annoying anyways. I generally suggest you to read more about Object.defineProperty. It extends the range of possibilities significantly!

Templating for the poor

To be able to rerender a component on data change, we should really introduce some components that can actually render and under the right circumstances rerender a template.

+

This code describes a very simple component, that has a data object and a render function. If this is called, it replaces the innerHTML of the given content element with the rendered output. Neat! Let's make the data reactive!

Reactive Component

As a start, it should be enough to simply make the data property reactive:

+

Yes, that seems to be good but it doesn't really update the template. Which becomes clear after a look at line 11-14: There is no render call ever. But reactive shouldn't know about component rendering, right? Let's try a more general approach with a callback:

+

Yeah, that works and so on but it looks like we slowly stumble away from elegance in our code. The changes in reactive() seem to be okay, but that function bind monstrosity in line 31 is something we better hide from our parents. Let's introduce a component factory before we get kicked out or end up in self hatred:

+

Cool! That works. The createComponent() function just does all the dirty work for us and returns a nice, reactive component, that is still just a simple object. If you have that code in a local setup and run something like component.data.name = 'Ada Lovelace', then it will automagically rerender the template to show 'Hello Ada Lovelace'.

Nested Data structures

All cool and hip stuff but what happens in the following scenario:

+

Setting deeper nested properties (line 44,45) doesn't work at all. The reason is that the reactivity only works on the first nesting level of the data object. Now you could say: Easy, we just set the whole object at once:

+

But this is not really what we strive for, isn't it? What we need is a way that makes all nested objects reactive in a recursive way. Surprisingly, this just needs a coupe of lines:

+

Only three lines (7-9) where added. They call reactive() on the given value in case it is an object. Now the nesting level doesn't matter anymore. REACTIVE ALL THE THINGS!!

Multiple Components

Considering that components are usually very gregarious, what happens if we find a friend for our component? Will it blend? Erm I mean, react?

+

It does! Hooray!

The attentive reader might have seen the change that sneaked into line 7: Because the type of array is object, an extra check has to be made here. Otherwise the array would be transformed to a plain object with keys 0, 1, etc.

But what happens now when we manipulate the Array directly?

+

Bummer! Setting the whole array works as expected but manipulating it doesn't trigger any change.

Reactive Arrays

As described in the caveats section of the Vuejs guide about list rendering, there are several …well caveats with array reactivity. It writes:

Due to limitations in JavaScript, Vue cannot detect the following changes to an array:
+1. When you directly set an item with the index, e.g. vm.items[indexOfItem] = newValue
+2. When you modify the length of the array, e.g. vm.items.length = newLength
+

Okay, fair enough. So what does happen in Vue to make Arrays reactive? Fairydust? Unfortunately yes. And this stuff is expensive! Nah, just kidding. Of course it is again no magic involved. I'm sorry my dear role-playing friends. What actually happens is that Arrays get their manipulating functions replaced by a wrapped version that notifies the component about changes. The source to this functionality is in core/observer/array.js.

Vuejs' approach is rather sophisticated but can be condensed down to something like what is seen in the first 24 lines here:

+

So this is a fairly big chunk to digest. The new function reactiveArray starts with creating a copy of the original array (Remember? I don't like manipulating the original object). Then, for each function in the list of manipulative array functions the original is saved which is then replaced by a wrapper function. This wrapper function simply calls the render callback additionally to the original array function.

Now also lipsumComponent.data.content is not set directly anymore but uses the overwritten push method. Setting it directly wouldn't work. Fixing that leads us to the last step:

Reactivity on set

For now the setter function didn't care about the value. If it would be a nested object, its children wouldn't be reactive. That means, if you set data.x to an object {foo: 1} and then change foo data.x.foo++, the template wouldn't rerender. This should be changed:

+

Instead of setting the plain value, reactive(value, callback) is called in line 49. This small change works only up to a certain point on its own though. The function has to decide what to do with non-objects or arrays, which happens now as a first step in reactive(). A plain non-object (remember: arrays are objects) simply gets returned as it is (line 30), arrays will be returned in their reactive version (line 31).

Conclusion

Congratulations! You made it this far or just skipped to read only the Conclusion, which is fine, I do that too sometimes.

In about 70 SLOC, we built a fully reactive component system. We made use of getters, setters and Object.defineProperty and learned, that I don't like to manipulate objects directly. Except for the last point, this should be valuable information that might become handy in future.

What else can be done you might ask? Vuejs' code is more sophisticated and handles some egde cases that I didn't mention for the sake of simplicity. For example if the yet to become reactive object has some getters and/or setters already, they would be overwritten by our simple solution. Vuejs' defineReactive uses Object.getOwnPropertyDescription to get a detailed information about the property it is going to wrap and incorporates existing getters and setters if applicable. It also ignores non-configurable (not meant to be changed at all) properties. How that works can be found in the source code.

+ +
+ +
+ + +
+ +
+ + + + diff --git a/zig-out/blog/2019-01-10-running-write-freely-on-arm/index.html b/zig-out/blog/2019-01-10-running-write-freely-on-arm/index.html new file mode 100644 index 0000000..8542a9b --- /dev/null +++ b/zig-out/blog/2019-01-10-running-write-freely-on-arm/index.html @@ -0,0 +1,205 @@ + + + + + + the codeartist — programmer and engineer based in BerlinRunning writefreely 0.7 on Arm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

Running writefreely 0.7 on Arm

+ What was necessary to make cross-compiling work for newer WriteFreely versions with SQLite support. +
+ Last updated: +
+ +

This is a follow-up on The expected tutorial: How to install WriteFreely on a Raspberry pi 3 in 10 steps.


I did it! I finally got WriteFreely to run on my Arm server (check out Scaleways baremetal cloud servers).

It wasn't so easy because with 512MB of RAM I couldn't simply download and build the source on my webserver. Only solution: Cross compiling. Easy especially in Go, right?

If you read the article linked in the beginning you know how easy it could be. But as the article already mentions in an update, since Version 0.6 it is not working anymore because of the new SQLite dependency (newest version as of writing this article is 0.7).

With a bit of research I figured out what to do to make it work anyhow. There are two solutions. A quick (and slightly dirty) one for people who don't need SQLite support and a correct solution that needs a tad more effort.

Quick solution: remove SQLite support

SQLite support makes problems with the cross compiling because it needs some C code to be compiled. Before figuring out how to make this working with the otherwise super easy Go cross compiling, removing the feature might be a viable quick fix. For this, simply change or remove all occurences of sqlite in the Makefile:

diff --git a/Makefile b/Makefile
+index 5950dfd..032fd0c 100644
+--- a/Makefile
++++ b/Makefile
+@@ -13,25 +13,25 @@ IMAGE_NAME=writeas/writefreely
+ all : build
+ 
+ build: assets deps
+-	cd cmd/writefreely; $(GOBUILD) -v -tags='sqlite'
++	cd cmd/writefreely; $(GOBUILD) -v
+ 
+ build-linux: deps
+ 	@hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
+ 		$(GOGET) -u github.com/karalabe/xgo; \
+ 	fi
+-	xgo --targets=linux/amd64, -dest build/ $(LDFLAGS) -tags='sqlite' -out writefreely ./cmd/writefreely
++	xgo --targets=linux/amd64, -dest build/ $(LDFLAGS) -out writefreely ./cmd/writefreely
+ 
+ build-windows: deps
+ 	@hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
+ 		$(GOGET) -u github.com/karalabe/xgo; \
+ 	fi
+-	xgo --targets=windows/amd64, -dest build/ $(LDFLAGS) -tags='sqlite' -out writefreely ./cmd/writefreely
++	xgo --targets=windows/amd64, -dest build/ $(LDFLAGS) -out writefreely ./cmd/writefreely
+ 
+ build-darwin: deps
+ 	@hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
+ 		$(GOGET) -u github.com/karalabe/xgo; \
+ 	fi
+-	xgo --targets=darwin/amd64, -dest build/ $(LDFLAGS) -tags='sqlite' -out writefreely ./cmd/writefreely
++	xgo --targets=darwin/amd64, -dest build/ $(LDFLAGS) -out writefreely ./cmd/writefreely
+ 
+ build-docker :
+ 	$(DOCKERCMD) build -t $(IMAGE_NAME):latest -t $(IMAGE_NAME):$(GITREV) .
+@@ -40,11 +40,11 @@ test:
+ 	$(GOTEST) -v ./...
+ 
+ run: dev-assets
+-	$(GOINSTALL) -tags='sqlite' ./...
++	$(GOINSTALL) ./...
+ 	$(BINARY_NAME) --debug
+ 
+ deps :
+-	$(GOGET) -tags='sqlite' -v ./...
++	$(GOGET) -v ./...
+ 
+ install : build
+ 	cmd/writefreely/$(BINARY_NAME) --gen-keys
+@@ -77,10 +77,10 @@ ui : force_look
+ 	cd less/; $(MAKE) $(MFLAGS)
+ 
+ assets : generate
+-	go-bindata -pkg writefreely -ignore=\\.gitignore schema.sql sqlite.sql
++	go-bindata -pkg writefreely -ignore=\\.gitignore schema.sql
+ 
+ dev-assets : generate
+-	go-bindata -pkg writefreely -ignore=\\.gitignore -debug schema.sql sqlite.sql
++	go-bindata -pkg writefreely -ignore=\\.gitignore -debug schema.sql
+ 
+ generate :
+ 	@hash go-bindata > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
+
+

Now just go on as described in the original article and it should work:

env GOARCH=arm GOARM=7 go get github.com/writeas/writefreely/cmd/writefreely
+
+

The correct solution

To get WriteFreely cross compiled with SQLite support, a C cross compiler is needed. Void Linux, the distribution of my choice, offers a bunch of packages for all kind of architectures. They are called for example cross-armv7l-linux-gnueabihf (ARMv7), cross-arm-linux-gnueabihf (ARMv6) or cross-arm-linux-gnueabi (ARMv5). I found similar packages in AUR (for Arch Linux).

As soon as the corresponding cross compiler is found, go can be told to use it:

env CGO_ENABLED=1 CC=armv7l-linux-gnueabihf-gcc GOOS=linux GOARCH=arm GOARM=7 make
+
+

The environment variables used are:

CGO_ENABLED=1 should be obvious. It tells Go to enable the C compilation.

CC=armv... tells Go which C compiler to use. Usually this would be just gcc. In this case it is the name of the cross compiler. Please set it to the compiler for your target platform. I'm going to use ARMv7 examples here. It is the name of a directory found in /usr/, eg /usr/armv7l-linux-gnueabihf. Initially that failed for me though because it expected to find a file ./lib/libc.so which ended up in another subfolder /usr/. So I cheated a bit and did:

# You might not need to do this on your platform.
+sudo ln -s /usr/armv7l-linux-gnueabihf/usr/lib /usr/armv7l-linux-gnueabihf/lib
+
+

GOOS=linux GOARCH=arm are the same as in the original article.

GOARM=7 is optional, even on an actual ARMv7. It enables some register optimizations that only work on ARMv7.

And finally make is called. This is short for make all which should do everything necessary.

Not all files are necessary to be transferred to the Server or RaspberryPi. What I did after some experimentation was:

# after building everything create a package
+mkdir writefreely-arm
+cp -r templates pages static writefreely-arm
+mkdir writefreely-arm/keys # fun fact: key generation crashes without this
+cp cmd/writefreely/writefreely writefreely-arm
+tar cvzf writefreely-arm.tgz writefreely-arm
+
+# copy that package to the server
+scp writefreely-arm.tgz you@yourserver.tld:~
+
+# ssh into the server and unpack everything
+ssh you@yourserver.tld
+tar czf writefreely-arm.tgz
+cd writefreely-arm
+
+# generate config, keys and database
+./writefreely -config # starts interactive configuration
+
+# This should lead you through all necessary steps
+# like filling the config, generating keys, generating database tables
+# run `./writefreely --help` to learn more if something is missing.
+
+

Now ./writefreely should run an empty blog at the specified port.

Have fun!

+ +
+ +
+ + +
+ +
+ + + + diff --git a/zig-out/blog/2019-01-10-use-openbsds-spleen-bitmap-font-in-linux/index.html b/zig-out/blog/2019-01-10-use-openbsds-spleen-bitmap-font-in-linux/index.html new file mode 100644 index 0000000..b48f393 --- /dev/null +++ b/zig-out/blog/2019-01-10-use-openbsds-spleen-bitmap-font-in-linux/index.html @@ -0,0 +1,133 @@ + + + + + + the codeartist — programmer and engineer based in BerlinUse OpenBSDs Spleen bitmap font in Linux + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

Use OpenBSDs Spleen bitmap font in Linux

+ Yesterday Frederic Cambus changed the default console font in OpenBSD to his self made font. +
+ Last updated: +
+ +

The font is called Spleen, as mentioned in this BSD Journal article.

To be totally honest, I stopped thinking about TTY (aka console) fonts a long time ago. It just happened to get interesting again when I got a HiRes screen and suddenly a magnifying glass was necessary to read the TTY. Yes I am one of those people who still deny the existence of graphical installers. If you want to change my mind, feel free to write me.

Anyhow, I figured that Spleen is pretty and useful because it offers glyphs with sizes up to 32x64. Typical fonts in Void Linux are 8x16 or similar, which is very small on high DPI screens. But how to use them? Spleen comes in strange formats like BDF or .dfont but we need another strange format called PSFU. If we look at the description that comes with Spleen we only get tought how to make yet another strange format called PCF. Puh, so confusing. Fonts must have been a real pain back in the "good old times".

If you managed to read this until this point, I congratulate you. You won a short list of commands:

# assuming bdf2psf is installed
+FONTDIR=/usr/share/kbd/consolefonts   # or anything you want
+SPLEENDIR=$HOME/src/spleen             # or whereever you want the repo
+EQUIV=/usr/share/bdf2psf/standard.equivalents # check bdf2psf manpage
+FONTSET=/usr/share/bdf2psf/fontsets/Uni1.512 # check bdf2psf manpage
+
+git clone https://github.com/fcambus/spleen.git $SPLEENDIR
+
+for x in 12x24 16x32 32x64 5x8 8x16 # do it for all available sizes
+do
+    bdf2psf --fb \
+        ${SPLEENDIR}/spleen-${x}.bdf \
+        $EQUIV $FONTSET 512 \
+        ${FONTDIR}/spleen-${x}.psfu
+done
+
+# assuming you're in the TTY
+setfont ${SPLEENDIR}/spleen-16x32.psfu
+
+

That worked for me! Except spleen-32x64 didn't work for me. It might be too big for Linux TTYs but would be too big anyways. Lets wait for 8K displays.

+ +
+ +
+ + +
+ +
+ + + + diff --git a/zig-out/blog/2019-05-03-freddy-vs-json/index.html b/zig-out/blog/2019-05-03-freddy-vs-json/index.html new file mode 100644 index 0000000..e042a94 --- /dev/null +++ b/zig-out/blog/2019-05-03-freddy-vs-json/index.html @@ -0,0 +1,599 @@ + + + + + + the codeartist — programmer and engineer based in BerlinFreddy vs JSON: how to make a top-down shooter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

Freddy vs JSON: how to make a top-down shooter

+ I will tell you how I created a simple top-down shooter in JavaScript without using any additional libraries. But this article is not replicating the full game but instead tries to show which steps to take to start writing a game from scratch. +
+ Last updated: +
+ +

A couple of years ago (Oh it's almost a decade! Am I that old already?), when the Canvas API got widely adopted by most browsers, I started experimenting with it. The fascination was high and I immediately tried to use it for interactive toys and games.

Of course, the games I made (and make) are usually not very sophisticated. That is mainly because I create them only for fun and without much eye-candy or even sound. What really fascinates me is the underlying mechanics. Otherwise, I could just use one of those awesome game engines, that exist already.

To share some of the fun, I created a tiny top down shooter for a tech session in my company (we're hiring, btw). The result can be found on Github. I commented the code well so it should be quite helpful to just read it. But if you want to know how I created the game step-by-step, this article is for you.

The Game

To give you an impression of what I created:

screenshot

The little gray box is your ship. You are controlling the little gray box with either WASD or Arrow keys and you can shoot tiny yellow boxes at your enemies — the red boxes — by pressing Space or Enter. The enemies shoot back though. They don't really aim well, but at some point they'll flood the screen with tiny red boxes. If they hit you, they hurt. Every time you get hurt you shrink, until you completely disappear. The same happens with your opponents.

Preconditions

This post is not about the game itself but about the underlying mechanics and some of the tricks used to make it work. My intention is to provide an entry for understanding more complex game development for people with some existing programming experience. The following things are helpful to fully understand everything:

Fundamental Game Engine Mechanics

Most — if not all — game engines have the same fundamental building blocks:

  • The state, that defines the current situation (like main menu, game running, game lost, game won, etc).

  • A place to store all the objects and related data.

  • The main loop, usually running sixty times per second, that reads the object information, draws the screen and applies updates to object data

  • An event handler that maps key presses, mouse movements and clicks to data changes.

The Canvas Element

The Canvas element allows you to handle pixel based data directly inside the browser. It gives you a few functions to draw primitives. It is easy to draw, for example, a blue rectangle but you need more than one action to draw a triangle; to draw a circle you need to know how to use arcs.

Exactly because drawing rectangles is the easiest and fastest thing to do with the Canvas API, I used them for everything in Freddy vs JSON. That keeps the complexities of drawing more exciting patterns or graphics away and helps focus on the actual game mechanics. This means, after initializing the canvas besides setting colors we only use two functions:

const ctx = canvas.getContext('2d') // this is the graphics context
+ctx.fillStyle = '#123456'           // use color #123456
+
+ctx.fillText(text, x, y)            // write 'text' at coords x, y
+ctx.fillRect(x, y, width, height)   // draw filled rectangle
+
+

Step One: Some HTML and an initialized Canvas

Because the code is going to run in the browser, some HTML is necessary. A minimal set would be just the following two lines:

<canvas id="canvas" />
+<script src="./app.js"></script>
+
+

This works but of course some styling would be great. And maybe having a title? Check out a complete version on Github.

Initializing a Canvas is also pretty simple. Inside app.js following lines are necessary:

const canvas = document.getElementById('canvas')
+// you can set height and width in HTML, too
+canvas.width = 960
+canvas.height = 540
+const ctx = canvas.getContext('2d')
+
+

I chose rather arbitrary values for width and height. Feel free to change them to your liking. Just know that higher values obviously will result in more work for your computer.

Step Two: Game Mode / States

To avoid creating a big ball of mud it is common to use a state machine. The idea is to describe the high level states and their valid transitions and using a central state handler to control them.

There libraries that help with state machines, but it is also not too hard to create this yourself. In the game I created I used a very simple state machine implementation: The possible states and their transitions are described in Enum-like objects. Here some code to illustrate the idea. The code uses some rather new language features: Symbols and Computed Property Names.

const STATE = {
+  start: Symbol('start'),  // the welcome screen
+  game: Symbol('game'),    // the actual game
+  pause: Symbol('pause'),  // paused game
+  end: Symbol('end')       // after losing the game
+}
+
+const STATE_TRANSITION = {
+  [STATE.start]: STATE.game, // Welcome screen => Game
+  [STATE.game]: STATE.pause, // Game => Pause
+  [STATE.pause]: STATE.game, // Pause => Game
+  [STATE.end]: STATE.start   // End screen => Welcome screen
+}
+
+

This is not a full state machine but does the job. For the sake of simplicity I violate the state machine in one occasion though: There is no transition from the running game to the end of the game. This means I have to jump directly, without using the state handler, to the end screen after the player dies. But this saved me from a lot of complexity. Now the state control logic is effectively only one line:

newState = STATE_TRANSITION[currentState]
+
+

Freddy vs JSON uses this in the click handler. A click into the canvas changes the state from welcome screen to the actual game, pauses and un-pauses the game and brings you back to the welcome screen after losing. All that in only one line. The new state is set to a variable that is respected by the central update loop. More on that later.

Of course much more could be done with a state. For example weapon or ship upgrades could be realised. The game could transition towards higher difficulty levels and get special game states like an upgrade shop or transfer animations between stages. Your imagination is the limit. And the amount of lines in your state handler, I guess.

Step Three: Data Handling

Games usually have to handle a lot of information. Some examples are the position and health of the player, the position and health of each enemy, the position of each single bullet that is currently flying around and the amount of hits the player landed so far.

JavaScript allows different ways to handle this. Of course, the state could just be global. But we all (should) know that global variables are the root of all evil. Global constants are okay because they stay predictable. Just don't use global variables. If you're still not convinced, please read this entry on stackexchange.

Instead of global variables, you can put everything into the same scope. A simple example is shown next. The following code examples use template literals, a new language feature. Learn more about template literals here.

function Game (canvas) {  // the scope
+  const ctx = canvas.getContext('2d')
+  const playerMaxHealth = 10
+  let playerHealth = 10
+
+  function handleThings () {
+    ctx.fillText(`HP: ${playerHealth} / ${playerMaxHealth}`, 10, 10)
+  }
+}
+
+

This is nice because you have easy access just like with global variables without actually using global variables. It still opens the door to potential problems if you only have one big scope for everything, but the first game is probably small enough to get away with not thinking about this too much.

Another way is to use classes:

class Game {
+  constructor (canvas) {
+    this.ctx = canvas.getContext('2d')
+    this.playerMaxHealth = 10
+    this.playerHealth = 10
+  }
+
+  handleThings () {
+    const max = this.playerMaxHealth
+    const hp = this.playerHealth
+    ctx.fillText(`HP: ${hp} / ${max}`, 10, 10)
+  }
+}
+
+

That looks like a bit more boilerplate but classes are good to encapsulate common functionality. They get even better if your game grows and you want to stay sane. But in JavaScript they are just syntactical sugar. Everything can be achieved with functions and function scopes. So it is up to you, what you use. The two last code examples are essentially the same thing.

Now that we decided on how to save all the data (Freddy vs JSON uses a class so I'll use classes here too) we can further structure it... or not. Freddy vs JSON saves everything flat. That means for example that each player attribute gets its own variable instead of using a player object that contains a lot of properties. The latter is probably more readable so you might want to go this path. Object access is also pretty fast nowadays so there is probably not a noticeable difference if you write this.player.health instead of this.playerHealth. If you are really serious about performance though, you might want to investigate this topic further. You can check out my jsperf experiment for a start.

Data manipulation happens in the update loop or when handling events. The next steps explain these topics further.

Step Four: The Main Loop

If event based changes are enough, like on a website, a separate loop wouldn't be necessary. The user clicks somewhere, which triggers an event that updates something and eventually re-renders a part of the page. But in a game some things happen without direct user interaction. Enemies come into the scene and shoot at you, there might be some background animation, music plays, and so on. To make all this possible a game needs an endlessly running loop which repeatedly calls a function that checks and updates the status of everything. And to make things awesomely smooth it should call this function in a consistent interval — at least thirty, better sixty times per second.

The following code examples use another rather new language feature called Arrow Functions.

Typical approaches to run a function in an regular interval would include the usage of setInterval:

let someValue = 23
+setInterval(() => {
+  someValue++
+}, 16)
+
+

Or setTimeout

let someValue = 42
+
+function update () {
+  someValue++
+  setTimeout(update, 16)
+}
+
+update()
+
+

The first version just runs the function endlessly every sixteen milliseconds (which makes sixty-two and a half times per second), regardless of the time the function itself needs or if is done already. The second version does its potentially long running job before it sets a timer to start itself again after sixteen milliseconds.

The first version is especially problematic. If a single run needs more than sixteen milliseconds, it runs another time before the first run finished, which might lead to a lot of fun, but not necessarily to any useful result. The second version is clearly better here because it only sets the next timeout after doing everything else. But there is still a problem: Independent of the time the function needs to run it will wait an additional sixteen milliseconds to run the function again.

To mitigate this, the function needs to know how long it took to do its job and then substract that value from the waiting time:

let lastRun
+let someValue = 42
+
+function update () {
+  someValue++
+  const duration = Date.now() - lastRun
+  const time = duration > 16 ? 0 : 16 - time
+  setTimeout(update, time)
+  lastRun = Date.now()
+}
+
+lastRun = Date.now()
+update()
+
+

Date.now() returns the current time in milliseconds. With this information we can figure out how much time has passed since the last run. If more than sixteen milliseconds have passed since then just start the update immediately and crush that poor computer (or better slow down the execution time and be nice to the computer), otherwise wait as long as necessary to stay at around sixty runs per second.

Please note that Date.now() is not the best way to measure performance. To learn more about performance and high resolution time measurement, check out: https://developer.mozilla.org/en-US/docs/Web/API/Performance

Cool. This way you can also slow everything down to a chill thirty frames per second by setting the interval to thirty-three milliseconds. But lets not go that path. Lets do what the cool kids with their shiny new browsers do. Lets use requestAnimationFrame.

requestAnimationFrame takes your update function as an argument and will call it right before the next repaint. It also gives you the timestamp of the last call, so that you don't have to ask for another one, which potentially impacts your performance. Lets get down to the details:

function update () {
+  /* do some heavy calculations */
+  requestAnimationFrame(update)
+}
+
+update()
+
+

This is the simplest version. It runs your update function as close as possible to the next repaint. This means it usually runs sixty times per second, but the rate might be different depending on the screen refresh rate of the computer it runs on. If your function takes longer than the duration between screen refreshes, it will simply skip some repaints because it is not asking for a repaint before it is finished. This way it will always stay in line with the refresh rate.

A function that does a lot of stuff might not need to run that often. Thirty times per second is usually enough to make things appear smooth and some other calculations might not be necessary every time. This brings us back to the timed function we had before. In this version we use the timestamp that requestAnimationFrame is giving us when calling our function:

let lastRun
+
+function update (stamp) {
+  /* heavy work here */
+  lastRun = stamp
+
+  // maybe 30fps are enough so the code has 33ms to do its work
+  if (stamp - lastRun >= 33) {
+    requestAnimationFrame(update)
+  }
+}
+
+// makes sure the function gets a timestamp
+requestAnimationFrame(update)
+
+

Step Five: Event Handling

People usually want to feel like they are in control of what they are doing. This brings us to a point where the game needs to handle input from the user. Input can be either a mouse movement, a mouse click or a key press. Key presses are also separated into pressing and releasing the key. I'll explain why later in this section.

If your game is the only thing running on that page (and it deserves that much attention, doesn't it?) input events can simply be bound to document. Otherwise they need to be bound to the canvas event directly. The latter can be more complicated with key events because key events work best with actual input fields. This means you need to insert one into the page, and make sure it stays focused so that it gets the events. Each click into the canvas would make it lose focus. To avoid that, you can use the following hack:

inputElement.onblur = () => inputElement.focus()
+
+

Or you simply put everything to its own page and bind the event listeners to document. It makes your life much easier.

Side note: People might wonder why I don't use addEventListener. Please use it if it makes you feel better. I don't use it here for simplicity reasons and it will not be a problem as long as each element has exactly one event listener for each event type.

Mouse Movement

Mouse movements are not really used in Freddy vs JSON but this post wouldn't be complete without explaining them. So this is how you do it:

canvas.onmousemove = mouseMoveEvent => {
+  doSomethingWithThat(mouseMoveEvent)
+}
+
+

This will be executed on every little movement of the mouse as long as it is on top of the canvas. Usually you want to debounce that event handler because the event might fire at crazy rates. Another way would be to use it only for something very simple, like to save the mouse coordinates. That information can be used in a function that is not tied to the event firing, like our update function:

class Game {
+  constructor (canvas) {
+    // don't forget to set canvas width and height,
+    // if you don't do it, it will set to rather
+    // small default values
+    this.ctx = canvas.getContext('2d')
+    this.mouseX = 0
+    this.mouseY = 0
+
+    // gets called at every little mouse movement
+    canvas.onmousemove = event => {
+      this.mouseX = event.offsetX
+      this.mouseY = event.offsetY
+    }
+
+    this.update()
+  }
+
+  // gets called at each repaint
+  update () {
+    requestAnimationFrame(() => this.update())
+    this.fillRect('green', this.mouseX, this.mouseY, 2, 2)
+  }
+}
+
+

The MouseEvent object contains a lot more useful information. I suggest you to check out the link and read about it.

This should draw two pixel wide boxes wherever you touch the canvas with your mouse. Yeah, a drawing program in ten lines! Photoshop, we're coming for you!

Mouse Clicks

But lets get back to reality. Mouse clicks are another important interaction:

canvas.onclick = mouseClickEvent => {
+  doSomethingWithThat(mouseClickEvent)
+}
+
+

The event object again contains all kind of useful information. It is the same type of object that you get from mouse movement. Makes life simpler, doesn't it?

Now to make use of the mouse clicks, lets adapt the former code example:

class Game {
+  constructor (canvas) {
+    // set canvas.width and canvas.height here
+    this.ctx = canvas.getContext('2d')
+    this.mouseX = 0
+    this.mouseY = 0
+    this.drawing = false
+
+    canvas.onmousemove = event => {
+      this.mouseX = event.offsetX
+      this.mouseY = event.offsetY
+    }
+    canvas.onmousedown = () => {
+      this.drawing = true
+    }
+    canvas.onmouseup = () => {
+      this.drawing = false
+    }
+
+    this.update()
+  }
+
+  update () {
+    requestAnimationFrame(() => this.update())
+    if (this.drawing) {
+      this.fillRect('green', this.mouseX, this.mouseY, 2, 2)
+    }
+  }
+}
+
+

Check it out on CodeSandbox

Now the boxes are only drawn while holding down the mouse button. Boom, one step closer to the ease of use of Photoshop! It is incredible, what you can do with it already. Just check out this incredible piece of art:

incredible piece of art

Key Events

The last important input comes from key presses. Okay, it is not really the last input type. Other ones would come from joysticks or gamepads. But there are some old-school people like me who still prefer using the keyboard to navigate their space ship.

Input handling is theoretically simple but in practice it is everything but. That's why this section explains not only how key events work but also how to get them right. Look forward to event handling, the relationship between velocity and acceleration, and frame rate agnostic timing...

The simplest version of key event handling looks like this:

document.onkeypress = keyPressEvent => {
+  doSomethingWithThat(keyPressEvent)
+}
+
+

But keypress is deprecated and should not be used. It is anyways better to separate the keyPress into two events: KeyDown and KeyUp and I'll explain why.

For now imagine you have that awesome space ship in the middle of the screen and want to make it fly to the right if the user presses d or ArrowRight:

class Game {
+  constructor(canvas, width, height) {
+    // we'll need those values
+    this.width = canvas.width = width;
+    this.height = canvas.height = height;
+    this.ctx = canvas.getContext("2d");
+
+    this.shipSize = 10;
+    this.shipHalf = this.shipSize / 2.0; // you'll need that a lot
+
+    // position the ship in the center of the canvas
+    this.shipX = width / 2.0 - this.shipHalf;
+    this.shipY = height / 2.0 - this.shipHalf;
+
+    // event is a KeyboardEvent:
+    // https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent
+    document.onkeypress = event => {
+      const key = event.key;
+      if (key === "d" || key === "ArrowRight") {
+        this.shipX++;
+      }
+    };
+
+    this.update();
+  }
+
+  // convenience matters
+  rect(color, x, y, w, h) {
+    this.ctx.fillStyle = color;
+    this.ctx.fillRect(x, y, w, h);
+  }
+
+  update() {
+    // clean the canvas
+    this.rect("black", 0, 0, this.width, this.height);
+
+    // get everything we need to draw the ship
+    const size = this.shipSize;
+    const x = this.shipX - this.shipHalf;
+    const y = this.shipY - this.shipHalf;
+
+    // draw the ship
+    this.rect("green", x, y, size, size);
+
+    // redraw as fast as it makes sense
+    requestAnimationFrame(() => this.update());
+  }
+}
+
+

check it out on CodeSandbox

Okay, that is kinda working, at least if you press d. But the arrow key is somehow not working and the ship's movement feels a bit jumpy. That doesn't seem to be optimal.

The problem is that we're relying on repeated key events. If you press and hold a key, the keypress event is repeated a couple of times per second, depending on how you set your key repeat rate. There is no way to use that for a smooth movement because we can not find out how fast the users keys are repeating. Sure, we could try to measure the repeat rate, hoping the user holds the key long enough. But let's try to be smarter than that.

Lets recap: We hold the key, the ship moves. We leave the key, the movement stops. That is what we want. What a happy coincidence that these two events have ...erm.. events:

class Game {
+  constructor(canvas, width, height) {
+    // we'll need those values
+    this.width = canvas.width = width;
+    this.height = canvas.height = height;
+    this.ctx = canvas.getContext("2d");
+
+    this.shipSize = 10;
+    this.shipHalf = this.shipSize / 2.0; // you'll need that a lot
+
+    // position the ship in the center of the canvas
+    this.shipX = width / 2.0 - this.shipHalf;
+    this.shipY = height / 2.0 - this.shipHalf;
+
+    this.shipMoves = false;
+
+    // key is pressed down
+    document.onkeydown = event => {
+      const key = event.key;
+      switch (key) {
+        case "d":
+        case "ArrowRight":
+          this.shipMoves = "right";
+          break;
+        case "a":
+        case "ArrowLeft":
+          this.shipMoves = "left";
+          break;
+        case "w":
+        case "ArrowUp":
+          this.shipMoves = "up";
+          break;
+        case "s":
+        case "ArrowDown":
+          this.shipMoves = "down";
+          break;
+      }
+    };
+
+    document.onkeyup = () => {
+      this.shipMoves = false;
+    };
+
+    this.update();
+  }
+
+  // convenience matters
+  rect(color, x, y, w, h) {
+    this.ctx.fillStyle = color;
+    this.ctx.fillRect(x, y, w, h);
+  }
+
+  update() {
+    // move the ship
+    if (this.shipMoves) {
+      if (this.shipMoves === "right") this.shipX++;
+      else if (this.shipMoves === "left") this.shipX--;
+      else if (this.shipMoves === "up") this.shipY--;
+      else if (this.shipMoves === "down") this.shipY++;
+    }
+
+    // clean the canvas
+    this.rect("black", 0, 0, this.width, this.height);
+
+    // get everything we need to draw the ship
+    const size = this.shipSize;
+    const x = this.shipX - this.shipHalf;
+    const y = this.shipY - this.shipHalf;
+
+    // draw the ship
+    this.rect("green", x, y, size, size);
+
+    // redraw as fast as it makes sense
+    requestAnimationFrame(() => this.update());
+  }
+}
+
+

check it out on CodeSandbox

I felt like adding all directions right away. Now the movement itself is decoupled from the key events. Instead of changing the coordinates directly on each event, a value is set to a movement direction and the main loop takes care of adapting the coordinates. That's great because we don't care about any key repeat rates anymore.

But there are still some problems here. First of all, the ship can only move in one direction at a time. Instead it should always be able to move in two directions at a time, like up- and leftwards. Then the movement stops if the switch from one key to another is too fast. That might happen in a heated situation between your ship and the enemies bullets. Also the movement is bound to the frame rate. If the frame rate drops or the screen refreshes on a different rate on the players computer, your ship becomes slower or faster. And last but not least the ship simply jumps to full speed and back to zero. For a more natural feeling it should instead accelerate and decelerate.

Lots of work. Lets tackle the problems one by one:

Bidirectional movements are easy to do. We just need a second variable. And to simplify things even more, we can set these variables to numbers instead of identifying strings. Here you see why:

class Game {
+  constructor(canvas, width, height) {
+    /* ... same as before ... */
+
+    this.shipMovesHorizontal = 0;
+    this.shipMovesVertical = 0;
+
+    // this time, the values are either positive or negative
+    // depending on the movement direction
+    document.onkeydown = event => {
+      const key = event.key;
+      switch (key) {
+        case "d":
+        case "ArrowRight":
+          this.shipMovesHorizontal = 1;
+          break;
+        case "a":
+        case "ArrowLeft":
+          this.shipMovesHorizontal = -1;
+          break;
+        case "w":
+        case "ArrowUp":
+          this.shipMovesVertical = -1;
+          break;
+        case "s":
+        case "ArrowDown":
+          this.shipMovesVertical = 1;
+          break;
+      }
+    };
+
+    // to make this work, we need to reset movement
+    // but this time depending on the keys
+    document.onkeyup = event => {
+      const key = event.key;
+      switch (key) {
+        case "d":
+        case "ArrowRight":
+        case "a":
+        case "ArrowLeft":
+          this.shipMovesHorizontal = 0;
+          break;
+        case "w":
+        case "ArrowUp":
+        case "s":
+        case "ArrowDown":
+          this.shipMovesVertical = 0;
+          break;
+      }
+    };
+
+    this.update();
+  }
+
+  /* more functions here */
+
+  update() {
+    // move the ship
+    this.shipX += this.shipMovesHorizontal;
+    this.shipY += this.shipMovesVertical;
+
+    /* drawing stuff */
+  }
+}
+
+

Find the full version on CodeSandbox

This not only allows the ship to move in two directions at the same time, it also simplifies everything. But there's still the problem, that fast key presses don't get recognized well.

What actually happens in those stressful moments is correct from the code's point of view: If a key of the same dimension (horizontal or vertical) is pressed, set the movement direction, if it is released set movement to zero. But humans are not very exact. They might press the left arrow (or a) a split second before they fully released the right arrow (or d). This way, the function switches the movement direction for that split second but then stops because of the released key.

To fix this, the keyup handler needs a bit more logic:

document.onkeyup = event => {
+  const key = event.key;
+  switch (key) {
+    case "d":
+    case "ArrowRight":
+      if (this.shipMovesHorizontal > 0) {
+        this.shipMovesHorizontal = 0;
+      }
+      break;
+    case "a":
+    case "ArrowLeft":
+      if (this.shipMovesHorizontal < 0) {
+        this.shipMovesHorizontal = 0;
+      }
+      break;
+    case "w":
+    case "ArrowUp":
+      if (this.shipMovesVertical < 0) {
+        this.shipMovesVertical = 0;
+      }
+      break;
+    case "s":
+    case "ArrowDown":
+      if (this.shipMovesVertical > 0) {
+        this.shipMovesVertical = 0;
+      }
+      break;
+  }
+};
+
+

Check out the full code at CodeSandbox

Much better, isn't it? Whatever we do, the ship is flying in the expected direction. Time to tackle the last problems. Lets go with the easier one first: Acceleration.

For now, the ship simply has a fixed speed. Lets make it faster first, because we want action, right? For that, we'll define the maximum speed of the ship:

this.shipSpeed = 5  // pixel per frame
+
+

And use it as a multiplicator:

  update() {
+    // move the ship
+    this.shipX += this.shipMovesHorizontal * this.shipSpeed;
+    this.shipY += this.shipMovesVertical * this.shipSpeed;
+
+    /* drawing stuff */
+  }
+
+

And now, instead of jumping to the full speed, we update velocity values per axis:

  constructor () {
+    /* ... */
+    this.shipSpeed = 5
+    this.shipVelocityHorizontal = 0
+    this.shipVelocityVertical = 0
+    /* ... */
+  }
+
+  /* ...more stuff... */
+
+  update () {
+    // accelerate the ship
+    const maxSpeed = this.shipSpeed;
+    // speed can be negative (left/up) or positive (right/down)
+    let currentAbsSpeedH = Math.abs(this.shipVelocityHorizontal);
+    let currentAbsSpeedV = Math.abs(this.shipVelocityVertical);
+
+    // increase ship speed until it reaches maximum
+    if (this.shipMovesHorizontal && currentAbsSpeedH < maxSpeed) {
+      this.shipVelocityHorizontal += this.shipMovesHorizontal * 0.2;
+    } else {
+      this.shipVelocityHorizontal = 0
+    }
+    if (this.shipMovesVertical && currentAbsSpeedV < maxSpeed) {
+      this.shipVelocityVertical += this.shipMovesVertical * 0.2;
+    } else {
+      this.shipVelocityVertical = 0
+    }
+
+    /* drawing stuff */
+  }
+
+

This slowly accelerates the ship until full speed. But it still stops immediately. To decelerate the ship and also make sure the ship actually stops and doesn't randomly float around due to rounding errors, some more lines are needed. You'll find everything in the final version on CodeSandbox.

Now the last problem has be solved: Framerate-dependent movement. For now, all the values are tweaked in a way that they work nicely at the current speed. Lets assume at sixty frames per second. Now that poor computer has to install updates in the background or maybe it is just Chrome getting messy. Maybe the player has a different screen refresh rate. The result is a drop or increase of the frame rate. Lets take a drop down to the half as an example. Thirty frames per second is still completely smooth for almost everything. Movies have thirty frames per second and they do just fine, right? Yet our ship is suddenly only half as fast and that difference is very noticeable.

To prevent this, the movement needs to be based on actual time. Instead of a fixed value added to the coordinates each frame, a value is added that respects the time passed since the last update. The same is necessary for velocity changes. So instead of the more or less arbitrary five pixels at sixty frames per second we set the value in pixels per millisecond because everything is in millisecond precision.

5px*60/s = 300px/s = 0.3px/ms
+
+

This makes the next step rather easy: Count the amount of milliseconds since the last update and multiply it with the maximum speed and acceleration values:

  constructor () {
+    /* ... */
+    this.shipSpeed = 0.3  // pixels per millisecond
+    // how fast the ship accelerates
+    this.shipAcceleration = this.shipSpeed / 10.0
+    this.shipVelocityHorizontal = 0
+    this.shipVelocityVertical = 0
+    /* ... */
+
+    // this should always happen right before the first update call
+    // performance.now gives a high precision time value and is also
+    // used by requestAnimationFrame
+    this.lastDraw = performance.now()
+    requestAnimationFrame(stamp => this.update(stamp))
+  }
+
+  /* ...more stuff... */
+
+  // See the main loop section if "stamp" looks fishy to you.
+  update (stamp) {
+    // calculate how much time passed since last update
+    const timePassed = stamp - this.lastDraw
+    this.lastDraw = stamp
+
+    // accelerate the ship
+    const maxSpeed = this.shipSpeed * timePassed;
+    const accel = this.shipAcceleration * timePassed;
+
+    let currentAbsSpeedH = Math.abs(this.shipVelocityHorizontal);
+    let currentAbsSpeedV = Math.abs(this.shipVelocityVertical);
+
+    if (this.shipMovesHorizontal && currentAbsSpeedH < maxSpeed) {
+      const acceleration = 
+      this.shipVelocityHorizontal += this.shipMovesHorizontal * accel;
+    } else {
+      this.shipVelocityHorizontal = 0
+    }
+    if (this.shipMovesVertical && currentAbsSpeedV < maxSpeed) {
+      this.shipVelocityVertical += this.shipMovesVertical * accel;
+    } else {
+      this.shipVelocityVertical = 0
+    }
+
+    /* drawing stuff */
+  }
+
+

Check out the full version at CodeSandbox

If everything is the same as before you did everything right. Now independent of the frame rate you ship will move five pixels per millisecond. Unfortunately I didn't find a good way to test that except for changing the refresh rate of your screen or overwriting requestAnimationFrame so I left this part out of the post.

The End

Congratulations, you made a fully moving ship. This Post ends here but of course there is so much more to learn about game development. Freddy vs JSON adds some more elements but uses only techniques described in this article. Feel free to check out its source code and create a ton of games like it. Or completely different ones. Be creative and enjoy to use what you've just learned.

+ +
+ +
+ + +
+ +
+ + + + diff --git a/zig-out/blog/2020-06-29-a-store-implementation-for-vue3-composition-api/index.html b/zig-out/blog/2020-06-29-a-store-implementation-for-vue3-composition-api/index.html new file mode 100644 index 0000000..dcc34d2 --- /dev/null +++ b/zig-out/blog/2020-06-29-a-store-implementation-for-vue3-composition-api/index.html @@ -0,0 +1,280 @@ + + + + + + the codeartist — programmer and engineer based in BerlinA store implementation from scratch using Vue3's Composition API + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

A store implementation from scratch using Vue3's Composition API

+ I've built a store implementation that allows name-spaced actions and helps with the separation of concerns. The new Composition API in Vue3 also allows completely new, convenient ways of using it. +
+ Last updated: +
+ +

This article is crossposted on dev.to. Feel free to join the discussion there.


At some point I started moving a side project over to Vue3 (which is still in beta). The side project is in a rather early stage and so I decided to rebuild the whole underlying foundation of it from scratch making use of the new possibilities of Vue3, especially of course the composition API.

Nuisance

One nuisance I had was the way I handled state. I didn't use Vuex but instead left state handling to a global state class that I added to Vue like Vue.prototype.$store = new StorageHandler. That allowed me to access global state from everywhere within Vue components via this.$store and worked pretty well in most cases. But when the store grew a bit more complex I wished back some of the features Vuex offers. Especially actions, name-spacing and with them the much better encapsulation of the state. It also adds extra work as soon as you need to access the state from outside Vue, for example in API call logic.

When moving to Vue3 I played with the thought to try Vuex4. It has the same API as Vuex3 and is meant to be usable as a drop-in when updating a Vue2 application to Vue3. But rather quickly I decided to roll my own, simplified implementation that uses the new Composition API because it would make things much neater. But lets quickly recap first what this Composition API is and how it helped me here:

Composition API vs Options API

What is the Composition API and what is the Options API? You might not have heard of those terms yet but they will become more popular within the Vue ecosystem as soon as Vue3 is out of beta.

The Options API is and will be the default way to build components in Vue. It is what we all know. Lets assume the following template:

<div>
+  <div class="greeting">{{ hello }}</div>
+  <input v-model="name" placeholder="change name" />
+
+  <div class="counter">Clicked {{ clicks }} times</div>
+  <button @click="countUp">click!</button>
+</div>
+
+

This is how an Options API example would look like:

const component = new Vue({
+    return {
+      name 'World',
+      clicks: 0
+    }
+  },
+  computed: {
+    hello () {
+      return `Hello ${this.name}`
+    }
+  },
+  methods: {
+    countUp () {
+      this.clicks++
+    }
+  }
+})
+
+

This still works the same in Vue3. But additionally it supports a new setup method that runs before initializing all the rest of the component and provides building blocks. Together with new imports this is the Composition API. You can use it side-by-side or exclusively to create your components. In most cased you'll not need it but as soon as you want to reuse logic or simply split a large component into logical chunks, the Composition API comes in very handy.

Here's one way how the example could look like using setup():

import { defineComponent, computed } from 'vue'
+
+// defineComponent() is now used instead of new Vue()
+const component = defineComponent({
+  setup () {
+    // greeting
+    const name = ref('World')
+    const hello = computed(() => `Hello ${name.value}`)
+    // counting
+    const clicks = ref(0)
+    const countUp = () => clicks.value++
+
+    return { name, hello, clicks, countUp }
+  }
+}  
+
+

Some things here might seem odd. computed gets imported, ref and whyname.value? Isn't that going to be annoying? It would be out of scope for this article, so I better point you to a source that explains all of this much better than I could: composition-api.vuejs.org is the place to go! There are also great courses on VueMastery.

Back to topic: The cool new thing now is that we can group concerns. Instead of putting each puzzle piece somewhere else (that is variables in data, reactive properties in computed and methods in methods) we can create everything grouped next to each other. What makes it even better is that thanks to the global imports, every piece can be split out into separate functions:

// Afraid of becoming React dev? Maybe call it 'hasGreeting' then.
+function useGreeting () {
+  const name = ref('World')
+  const hello = computed(() => `Hello ${name.value}`)
+  return { name, hello }
+}
+
+function useCounting () {
+  const count = ref(0)
+  const countUp = () => count.value = count.value + 1
+  return { count, countUp }
+}
+
+const component = defineComponent({
+  setup () {
+    const { name, hello } = useGreeting()
+    const { count: clicks, countUp } = useCounting()
+    return { name, hello, clicks, countUp }
+  }
+}  
+
+

This works the same way and it works with everything, including computed properties, watchers and hooks. It makes it also very clear where everything is coming from, unlike mixins. You can play around with this example in this Code Sandbox I made.

Minimalist but convenient state handling

While looking at the Composition API I thought about how it could be nice for simple and declarative state handling. Assuming I have somehow name-spaced state collections and actions, a bit like we know from Vuex, for example:

import { ref } from 'vue'
+
+// using 'ref' here because we want to return the properties directly
+// otherwise 'reactive' could be used
+export const state = {
+  name: ref('World'),
+  clicks: ref(0)
+}
+
+export const actions = {
+  'name/change': (name, newName) => {
+    name.value = newName
+  },
+  'clicks/countUp': (clicks) => {
+    clicks.value++
+  }
+}
+
+

Now this is a very simplified example of course but it should illustrate the idea. This could be used directly and the Composition API makes it not too inconvenient alread. Unfortunately it is not exactly beautiful to write (yet):

import { state, actions } from '@/state'
+
+defineComponent({
+  setup () {
+    return {
+      name: state.name,
+      clicks: state.clicks,
+      // brrr, not pretty
+      changeName (newName) { actions['name/change'](state.name, newName) }
+      countUp () { actions['clicks/countUp'](state.clicks) }
+    }
+  }
+})
+
+

To make this not only prettier but also less verbose, a helper can be introduced. The goal is to have something like this:

import { useState } from '@/state'
+
+defineComponent({
+  setup () {
+    const { collection: name, actions: nameActions } = useState('name')
+    const { collection: clicks, actions: clickActions } = useState('clicks')
+
+    return {
+      name,
+      clicks,
+      changeName: nameActions.change
+      countUp: clickActions.countUp
+    }
+  }
+})
+
+

Much nicer! And not too hard to build! Lets have a look at the useState source code:

function useState (prop) {
+  // assumes available state object with properties
+  // of type Ref, eg const state = { things: ref([]) }
+  const collection = state[prop]
+
+  // assumes available stateActions object with properties
+  // in the form 'things/add': function(collection, payload)
+  const actions = Object.keys(stateActions).reduce((acc, key) => {
+    if (key.startsWith(`${prop}/`)) {
+      const newKey = key.slice(prop.length + 1) // extracts action name
+      acc[newKey] = payload => stateActions[key](collection, payload)
+    }
+    return acc
+  }, {})
+
+  return { collection, actions }
+}
+
+

Just ten lines and it makes life so much easier! This returns the collection reference and maps all actions accordingly. For the sake of completeness here a full example with state and stateActions:

import { ref } from 'vue'
+
+// not using reactive here to be able to send properties directly
+const state = {
+  count: ref(0),
+  name: ref('World')
+}
+
+const stateActions = {
+
+  'count/increase' (countRef) {
+    countRef.value++
+  },
+  'count/decrease' (countRef) {
+    countRef.value--
+  },
+
+  'name/change' (nameRef, newName) {
+    nameRef.value = newName
+  }
+
+}
+
+function useState (prop) { /* ... */ }
+
+

Now useState('count') would return the reference state.count and an object with the actions increase and decrease:

import { useState } from '@/state'
+
+defineComponent({
+  setup () {
+    const { collection: count, actions: countActions } = useState('count')
+    return {
+      count,
+      countUp: countActions.increase
+    }
+  }
+})
+
+

This works well for me and happened to be very convenient already. Maybe I'll make a package out of it. What are your opinions on this?

+ +
+ +
+ + +
+ +
+ + + + diff --git a/zig-out/blog/index.html b/zig-out/blog/index.html new file mode 100644 index 0000000..b0301c1 --- /dev/null +++ b/zig-out/blog/index.html @@ -0,0 +1,173 @@ + + + + + + the codeartist — programmer and engineer based in BerlinBlog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

Blog

+ Sometimes, I write long-form articles about a topic that I find interesting. I use this as a way to dive deeper into a topic, while often create an example project on the side. +
+ +
+ +
    +
  1. + + +

    Sometimes, I write long-form articles about a topic that I find interesting. I use this as a way to dive deeper into a topic, while often create an example project on the side.

    + + + +

    Sometimes, I write long-form articles about a topic that I find interesting. I use this as a way to dive deeper into a topic, while often create an example project on the side.

    + + + +

    Sometimes, I write long-form articles about a topic that I find interesting. I use this as a way to dive deeper into a topic, while often create an example project on the side.

    + + + +

    Sometimes, I write long-form articles about a topic that I find interesting. I use this as a way to dive deeper into a topic, while often create an example project on the side.

    + + + +

    Sometimes, I write long-form articles about a topic that I find interesting. I use this as a way to dive deeper into a topic, while often create an example project on the side.

    + + +
    + The Magic 0xC2 + (~1 mins) +
    +

    Sometimes, I write long-form articles about a topic that I find interesting. I use this as a way to dive deeper into a topic, while often create an example project on the side.

    + + + +

    Sometimes, I write long-form articles about a topic that I find interesting. I use this as a way to dive deeper into a topic, while often create an example project on the side.

    +
  2. +
+ +
+ +
+ + +
+ +
+ + + + diff --git a/zig-out/cv/index.html b/zig-out/cv/index.html new file mode 100644 index 0000000..e34916d --- /dev/null +++ b/zig-out/cv/index.html @@ -0,0 +1,114 @@ + + + + + + the codeartist — programmer and engineer based in BerlinCV / Résumé + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

CV / Résumé

+ My Curriculum Vitae / Résumé. I know, there is a difference. This page is technically a résumé, while the whole site would be closer to a CV. +
+ Last updated: +
+ +

In me you will find an enthusiastic, passionate developer with around 13 years of professional experience in and around software development, mainly full-stack web development and consulting, but also coaching and community work. I strive to seek roles in creative, forward thinking companies with diverse teams that offer challenging work, trust and responsibility. Since 2022 I'm the principal frontend engineer and frontend chapter lead of Code Gaia.

Principal Frontend Engineer, Code Gaia

Gode Gaia GmbH, Munich / remote (since August 2022)

Main responsibilities

  • leading the frontend chapter

  • defining development processes and standards

  • team management responsibilities

  • lead complete rewrite of frontend

  • interviewing potential new hires

Key Technologies

  • Javascript/Typescript: Vue3 with Composition API

  • AWS Amplify

  • AWS Bedrock

Noteworthy aspects

  • AI integration (LLM as well as document scanning and categorization)

  • Python / Django backend

  • 100% remote work


Senior Software Engineer, Coursedog

Coursedog Inc, New York / remote (June 2021 till June 2022)

Main responsibilities

  • frontend introduction and contact for newcomers

  • maintainance/bug fixing for existing features

  • development of multiple new features

  • introduced Docker to ease developer onboarding

  • lead the frontend-part of feature flags introduction

  • being part of the Typescript transition team

Key Technologies

  • Javascript/Typescript: Vue2 with Composition API

  • Node: Express, Fastify

Noteworthy aspects

  • Large codebase (~450k SLOC in total)

  • 100% remote work


Senior Consultant, Wunderdog

Wunderdog GmbH, Helsinki / Berlin / remote (June 2018 till June 2021)

Main responsibilities

  • Consultant work with lots of different clients

  • including leadership roles, hiring and building new teams

  • enhancing existing teams or on my own

  • in companies ranging from 1000s of employees to small startups

  • sectors include retail, sports, travel, entertainment, HR

  • doing feature development for large, medium and small as well as greenfield projects

Key Technologies

  • Javascript/Typescript: Vue, React, Ember

  • Node: Express, Koa, Featherjs

  • Ruby: Ruby on Rails, Sinatra

  • AWS, GCP

Noteworthy aspects

  • Wide variety of projects and companies

  • Greenfield projects as well as existing code bases


Senior Software Engineer, HERE

HERE Global BV, Berlin (November 2017 till March 2018)

Main responsibilities

  • planning and implementation of a web based floor plan and indoor navigation system with touch controls and full access control system

  • integration of meeting room related functionality into Office 365

Key Technologies

  • Javascript: Vue, SVG, MapGL

  • Node: Express

  • IOT: Bluetooth controlled sensors

  • Azure Cloud and Microsoft Office 365 integration


Senior Software Engineer, FromAtoB

FromAtoB GmbH, Berlin (August 2016 till September 2017)

Main responsibilities

  • development of a single-page application in the travel sector

  • lead the introduction of Vue into the process

  • rebuilt complete website funnel and replaced old application step-by-step

  • while maintaining the Ruby-on-Rails based web application

  • implemented internal tooling in Rust

Key Technologies

  • Javascript/Typescript (Vuejs)

  • Ruby (Ruby on Rails)

  • Rust


Software Engineer (freelancing)

Berlin, remote (June 2015 till August 2017)

Clients (selection)

  • Zalando (Retail, frontend-development with React)

  • Camunda (BPMN.io, open-source web-based BPMN modeler and rendering toolkit, Javascript, SVG)

  • Blacklane (Ride service, web-based booking system, AngularJS, Node Express)

Key Technologies

  • Javascript/Typescript: Vue, React, AngularJS

  • Node: Express


Software Engineer, HERE

HERE Global BV, Berlin (November 2013 till May 2015)

Main responsibilities

  • implementation of a mapping and discovery web-application

  • map-tile loading optimization

  • path rendering

  • POI proximity search

Key Technologies

  • Javascript/Typescript: Vue, React, Ember

  • Node: Express, Koa, Featherjs

  • Ruby: Ruby on Rails, Sinatra


Software Engineer (freelancing)

Leipzig, Berlin, remote (October 2009 till October 2013)

Clients (selection)

  • Coreon (Taxonomy management, web-based editor, Javascript, Backbone, SVG, Ruby on Rails)

  • Wimdu (Travel web-application, live search, Javascript, Backbone, Ruby on Rails, ElasticSearch

  • Appzonaut / Telekom Innovation Labs (experimental UI for multi-cloud management, Javascript, Backbone, SVG, Python, Flask

Key Technologies

  • Javascript: Backbone, AngularJS

  • Ruby: Ruby on Rails, Sinatra / Padrino

  • Python: Flask

  • SVG, HTML5, CSS3

  • CouchDB, MongoDB

+ +
+ +
+ + +
+ +
+ + + + diff --git a/dist/fediverse.svg b/zig-out/fediverse.svg similarity index 100% rename from dist/fediverse.svg rename to zig-out/fediverse.svg diff --git a/dist/gitforge.svg b/zig-out/gitforge.svg similarity index 100% rename from dist/gitforge.svg rename to zig-out/gitforge.svg diff --git a/dist/github.svg b/zig-out/github.svg similarity index 100% rename from dist/github.svg rename to zig-out/github.svg diff --git a/dist/header.jpg b/zig-out/header.jpg similarity index 100% rename from dist/header.jpg rename to zig-out/header.jpg diff --git a/zig-out/index.html b/zig-out/index.html new file mode 100644 index 0000000..e37c256 --- /dev/null +++ b/zig-out/index.html @@ -0,0 +1,157 @@ + + + + + + the codeartist — programmer and engineer based in BerlinWelcome + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

+ Hi there! I am a + programmer, + open-source + enthusiast + and + hacker + based in Berlin, Germany. +

+

+ I call myself a code artist, because programming can and should be seen as a creative process; therefore code is + art. I love to craft pieces of art with code, that are beautiful and elegant in their simplicity, readability + and architecture. +

+

+ Looking for expert advice and development services for a short-term project? I offer guidance on software + architecture decisions, coding solutions and performance optimizations tailored to your needs. Let's work + together to solve your challenges. + Get in touch! +

+ + +
+ +

experience

Thirteen years of professional experience in a couple of tweets

Pretty early in my life I realized that I work best on my own terms. That does not mean that I prefer to work alone. Working with clients, team mates, designers and managers is a crucial part of any development process.

Some time in the year 2009 I decided to not only live up to my way of working but also share my experience even more. I decided to become a freelancing programmer and consultant. Since then many different places benefited from my work. Start-Ups in their first months as well as well known companies like HERE and Deutsche Telekom Labs.

Together with entrepreneurs, UI/UX experts and engineers of many fields I created novel and beautiful applications that still influence the live of thousands of people.

Please see my CV for a more detailed list.

coaching

Whenever possible, I try to help others to learn

I’m the organizer of Vuejs // Berlin, a monthly meetup group around Vue and web technologies in general.

Many people want to learn and grow. Whenever I can I try to help those people by sharing my experience and knowledge. I already voluntarily coached at Code Curious, Frauenloop and Jugend Hackt. I also helped children with their first steps into the world of programming at the Berlin CoderDojo.

contact

You can find me all over the interwebs

+
+ + + +
+ +
+ + +
+ + +
+ + + + diff --git a/dist/instagram.svg b/zig-out/instagram.svg similarity index 100% rename from dist/instagram.svg rename to zig-out/instagram.svg diff --git a/dist/linkedin.svg b/zig-out/linkedin.svg similarity index 100% rename from dist/linkedin.svg rename to zig-out/linkedin.svg diff --git a/dist/mail.svg b/zig-out/mail.svg similarity index 100% rename from dist/mail.svg rename to zig-out/mail.svg diff --git a/dist/mastodon.svg b/zig-out/mastodon.svg similarity index 100% rename from dist/mastodon.svg rename to zig-out/mastodon.svg diff --git a/zig-out/now/index.html b/zig-out/now/index.html new file mode 100644 index 0000000..cc708e7 --- /dev/null +++ b/zig-out/now/index.html @@ -0,0 +1,114 @@ + + + + + + the codeartist — programmer and engineer based in BerlinNow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

Now

+ This page shows what I'm up to at the moment, following the idea of Derek Sivers. +
+ Last updated: +
+ +

You can find more now pages on nownownow.


Still live in Berlin where I am working fully remote. I'm approaching the second anniversary at Code Gaia now and have no plans to change any of it.

Priorities

I do a lot of things all the time and have a hard time to focus. Most of my energy right now hopefully flows into the following things:

  • This homepage.

  • Keeping up the pace professionally by taking up more management responsibilities.

  • Ramping up my side-project game (mainly by doing smaller freelancing jobs).

  • Fleshing out a long form D&D campaign ("Out Of The Cold Shadow").

  • Writing down more short adventures and one-shots and publish them on tiskifer.dk.

  • My wedding and honeymoon in June!

Book(s)

I'm not really good with taking time for reading, but when I do, I read:

Accelerando by Charles Stross

The Manager's Path by Camille Fournier

+ +
+ +
+ + +
+ +
+ + + + diff --git a/dist/posts.css b/zig-out/posts.css similarity index 56% rename from dist/posts.css rename to zig-out/posts.css index 135b44c..e8186a0 100644 --- a/dist/posts.css +++ b/zig-out/posts.css @@ -1,7 +1,3 @@ -main.posts { - margin: calc(var(--header-height-small) + 4rem) auto 4rem; -} - main.posts h2 { margin: 1.5em 0 0 0; font-size: 1.5rem; @@ -25,16 +21,3 @@ main.posts article>div>a.external, main.posts article>div>.reading-time { color: gray; } - -hr { - display: block; - border: none; - width: 100%; - height: 1px; - margin: 2rem 0; - background-color: var(--emboss-color); -} - -span[title] { - text-decoration: underline wavy gray; -} \ No newline at end of file diff --git a/zig-out/projects/index.html b/zig-out/projects/index.html new file mode 100644 index 0000000..5db5356 --- /dev/null +++ b/zig-out/projects/index.html @@ -0,0 +1,114 @@ + + + + + + the codeartist — programmer and engineer based in BerlinProjects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

Projects

+ My currently active projects. This is mostly about software, but might also include some TTRPG stuff, from time to time. +
+ Last updated: +
+ +

Homepage Overhaul

With lots of work comes lots of opportunity for productive procrastination

Not too long ago, .ing TLDs became available, that allowed me to finally have my full name as a "cool" domain name: koehr.ing. Other domains I have are nkoehring.de (boring), koehr.in (confusing) and k0r.in (nerdy). koehri.ng wouldn't be possible due to domain registars policies or pricing (Nigeria used to have the british model, like allowing only net.ng, com.ng, and so on. Later they allowed more, but the price would be pretty high).

Why am I writing all this? Because the new domain name made me think about my homepage as a professional. I wanted to have something, that showcases my skills while not being the usual boring homepage. This is how the interactive homepage experiment began; a terminal like website, written from scratch. Having this, I now also needed to change my old homepage to somehow feature my new shiny experiment. But my old homepage is white and not very responsive; two very good reasons (for me), to change it. So I also started writing a completely new homepage, using vss. Pretty soon I realised, it is by far not mature enough for my needs, so I started building workarounds to suit my needs, so I don't get stuck in the rabbit hole of choosing frameworks over finishing the page. My plan is, to finish the page and its content and then, when there is time, move it on top of something more sophisticated, like good ol' Zola.

New Server

I found a pretty cheap dedicated server with tons of space and quite some CPU power, compared to cheap virtual servers. Now I need to move everything I hosted on a VServer before. That is not a simple task, unfortunately, as I tend to overthink and want to use the change to make everything better (or just different, maybe). This move includes a switch from Docker and systemd services to podman and lingering users. This way, no root enabled service is involved in running any outside-facing services. This website and everything under the koehr.ing domain runs already on the new server.

learned.today

Quite a while (aka way too long) ago, I bought the domain learned.today and thought about some idea around a Today I learned page or service, where people just share short snippets of things they just learned, similar to my TIL page. I never got to implementing it though. I wrote it down here as a motivation for myself, to finally work on it.

+ +
+ +
+ + +
+ +
+ + + + diff --git a/dist/reddit.svg b/zig-out/reddit.svg similarity index 100% rename from dist/reddit.svg rename to zig-out/reddit.svg diff --git a/dist/rubik-regular-minimal.woff2 b/zig-out/rubik-regular-minimal.woff2 similarity index 100% rename from dist/rubik-regular-minimal.woff2 rename to zig-out/rubik-regular-minimal.woff2 diff --git a/zig-out/setup/index.html b/zig-out/setup/index.html new file mode 100644 index 0000000..9030339 --- /dev/null +++ b/zig-out/setup/index.html @@ -0,0 +1,114 @@ + + + + + + the codeartist — programmer and engineer based in BerlinSetup + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

Setup

+ As a software engineer, the tools I use define how I work and I find it inspiring to see which tools other people use. +
+ Last updated: +
+ +

This page focusses on Hardware. For Software, check /stack.


I used to work on laptops without any extras, but over the years ergonomics got more and more important. Now I have a second screen, a standing desk and an ergonomic chair. My main keyboard is split in half and my pointer device is a big red ball.

Work Computer: Thinkpad T14s

Decent CPU, good amount of RAM, very lightweight, great battery life

Thinkpads are my go-to laptops for work. They are robust and performant.

Private Computer: ASUS Zenbook Pro Duo

Fantastic screen, a second display, decent hardware

My private laptop is a bit more experimental. It features a dual screen setup with a 16:10 OLED screen and an additional 16:5(-ish) LCD above the keyboard.

Keyboard: Sofle 2 split-keyboard

I use the Sofle 2 keyboard. I adapted it to my needs. It features two rotary encoders and a customized qmk firmware configuration. The source code can be found on github.

Pointer: Kensington Orbit

The Kensington Orbit is a trackball and a treat for every wrist.

Desk: ergonomic

My desk is height adjustable, so that I can sit or stand at it. Its not a fancy branded one; it does it job well, though.

Chair: ergonomic

My chair is an ergonomic office chair with 4D arm rests and extra back support. I can sit on it all day without issues.

+ +
+ +
+ + +
+ +
+ + + + diff --git a/zig-out/stack/index.html b/zig-out/stack/index.html new file mode 100644 index 0000000..ed7866c --- /dev/null +++ b/zig-out/stack/index.html @@ -0,0 +1,114 @@ + + + + + + the codeartist — programmer and engineer based in BerlinStack + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

Stack

+ As a software engineer, the tools I use define how I work and I find it inspiring to see which tools other people use. +
+ Last updated: +
+ +

This page focusses on Software. For Hardware, check /setup.


My software stack is pretty old-school. I prefer CLI applications for almost everything. The only GUI programs I usually run are browsers, image manipulators and LogSeq.

OS: Fedora Linux

It all started with Real Red Linux 2000, a special millenium version of RedHat Linux. I don't know for sure, but I think it was based on RedHat 6.1 or 6.2.

Over the years, I first used different RPM based distributions, then switched to Gentoo for a while, before getting annoyed by the compiling frenzy and discovering Arch. When Arch made the switch to systemd, I found Void Linux and stayed with it for years. At some point, not many years ago, I went with Fedora and it struck a nice middle ground between customizability and "it just works". Thanks to Fedora Spins, it is now easy to have a more standard system on my work laptop and a rather customized one on my private laptop, without too many differences in the foundation. I use official the Sway Spin on my private laptop.

DE: GNOME vs Sway

Over the years I got used to tiling window managers. Honestly, I tried almost all of them and went from hyper-configurable to super minimalist. I ended up - as usual - somewhere in the middle, with i3 and Sway.

My work laptop has a GNOME desktop with some extensions, that make it work well for me. My typical work flow involves full screen applications and many desktops. I rarely have more than one window on one screen. That is why I didn't have too much of a hard time to switch from dwm and similar tiling window managers to GNOME, because it uses MacOS-like gestures to work with desktops. Extensions like Maximize Lonely Window help as well. There used to be another extension, Maximize To Empty Workspace, which was even closer to my usual way of working. But it is not supported in newer GNOME versions.

Editor: Helix

Most of my life, I used ViM. It made me more productive and helped me to focus on the things that matter most for my productivity. One day, I found Kakoune, which blew me away by being so similar and yet different to ViM, in a (in my opinion) good way. What Kakoune does is to to switch around the command order. While ViM's command language is VERB-MODIFIER-OBJECT. For example: d2w means delete two words. Kakoune switches that to MODIFIER-VERB-OBJECT and introduces selecting and non-selecting movement, which allows you to see your selection before applying an action. d2w changes to 2Wd, which translates to select next two words, then delete them. I finally settled with Helix, an editor that uses Kakounes command language, but implements many useful things by default, while still being very configurable.

Terminal: foot + zellij + zsh

Almost all of my day-to-day applications are in the terminal. I am so used to it, that I started trusting GUI applications less. This is obviously my issue, but luckily I'm not alone, so many great CLI applications exist.

I use foot as terminal emulator. It is lightweight, supports 24bit colours and works with Wayland.

Inside foot runs zellij, which is a terminal multiplexer similar to screen and tmux. It allows me to run multiple applications in one terminal, keeps sessions alive after closing the terminal emulator and so on. I actually configured zellij to feel a lot more like tmux, because I'm so used to the latter and honestly I might just switch back to tmux, who knows.

My shell of choice is zsh with oh-my-zsh. It is by far the most versatile shell and the only one (to my knowledge) that supports RPROMPT, a prompts at the end of the line.

Browser: Firefox

My browser of choice is Firefox, because I want an open and diverse internet. Firefox is a great choice and offers lots of features, like direct PDF support, privacy features out of the box and great synchronisation. Chrome and Chromium-based browsers are great as well, but if everyone uses the same browser, we'll end up with whatever the company behind this browser wants the internet to be.

Other Tools: LogSeq, Poe, Bitwarden, Git...

Of course, I use a lot more tools in my day-to-day work.

I use LogSeq for knowledge management. It is similar to Evernote, Obsidian or Notion. For me it hits the mark between flexibility and structure. I use it for everthing from todo lists to planning long D&D campaigns.

Poe allows access to all kinds of generative intelligence tools, like LLMs ("ChatGPT") and image generators. I mostly use Mistral, but also switch between models from time to time. They help me with brainstorming and sometimes I misuse them to write JSDoc comments for me.

Bitwarden is a fantastic password manager with lots of utilities. It works so that you don't need to trust the server provider, because everything runs on the client (for example in a browser plugin) and is encrypted locally before being sent to the server. The best thing is, that I can host a bitwarden server myself, using Vaultwarden.

GIT is the most widely used source code management as of today. Although I see some strengths in other systems, Git is by far good enough for all my needs. I host my own Forgejo git server at git.k0r.in.

There is a lot more and I might extend this list from time to time.

+ +
+ +
+ + +
+ +
+ + + + diff --git a/dist/style.css b/zig-out/style.css similarity index 72% rename from dist/style.css rename to zig-out/style.css index 5c5d9e1..d51167c 100644 --- a/dist/style.css +++ b/zig-out/style.css @@ -53,6 +53,44 @@ body { scroll-behavior: smooth; } +#main-menu { + position: fixed; + top: var(--header-height); + width: 100vw; + background-color: var(--menu-bg-color); + transition: top .3s ease-in-out, background-color 1s ease-in; +} + +#main-menu>menu { + width: 960px; + max-width: 98%; + height: 1.2rem; + margin: 0 auto 0; + padding: 0; + display: flex; + justify-content: space-around; + align-items: center; + list-style: circle; +} +#main-menu > li { + padding: 0; +} +body>header.small + #main-menu { + top: var(--header-height-small); + background-color: var(--header-bg-color); +} +body>header.small + #main-menu>menu { + padding: .5rem 0; +} +pre { + background: var(--emboss-color); + padding: .5rem; +} +li.active>a { + color: var(--highlight-fg-color); + font-weight: bold; +} + body>#spacer, body>header { position: fixed; @@ -66,7 +104,7 @@ body>#spacer { height: var(--header-height-small); } -body>header { +body>header, body>header>a { height: var(--header-height); color: transparent; transition: transform .3s ease-in-out; @@ -77,7 +115,7 @@ body>header.small { transform: scale(var(--header-height-multiplier)); } -body>header>svg { +body>header svg { display: block; width: 960px; max-width: 98vw; @@ -91,6 +129,11 @@ body>main { margin: var(--header-height) auto 4rem; } +body>main>header { + display: block; + padding: 2em 0; +} + a { color: var(--page-fg-color); } @@ -117,7 +160,7 @@ code { padding-top: 2rem; } #content>h1, -main.posts > header > h1 { +main > header > h1 { margin: 0 0 .25em; font-size: 2rem; font-variant: small-caps; @@ -127,6 +170,9 @@ main.posts > header > h1 { #content>h1 { padding-top: 2em; } +h2 { + color: var(--highlight-fg-color); +} #cta { display: flex; @@ -203,6 +249,19 @@ main.posts > header > h1 { animation: fade 2s linear infinite; } +hr { + display: block; + border: none; + width: 100%; + height: 1px; + margin: 2rem 0; + background-color: var(--emboss-color); +} + +span[title] { + text-decoration: underline wavy gray; +} + @keyframes fade { 0% { opacity: 1.0; @@ -239,6 +298,25 @@ main.posts > header > h1 { } @media (max-width: 480px) { + body>header.small { + transform: none; + } + body>header.small + #main-menu { + top: var(--header-height); + } + #main-menu>menu { + height: 2.4rem; + margin-left: 1.5rem; + padding: .5rem 0; + flex-flow: column wrap; + align-items: flex-start; + } + body>main { + margin: calc(var(--header-height) + 2rem) auto 4rem; + } + #content > h1 { + padding-top: calc(var(--header-height) + 2rem); + } .contacts { columns: 1; } diff --git a/dist/threads.svg b/zig-out/threads.svg similarity index 100% rename from dist/threads.svg rename to zig-out/threads.svg diff --git a/zig-out/til/2021-08-31/index.html b/zig-out/til/2021-08-31/index.html new file mode 100644 index 0000000..21cc81c --- /dev/null +++ b/zig-out/til/2021-08-31/index.html @@ -0,0 +1,125 @@ + + + + + + the codeartist — programmer and engineer based in BerlinThere is a HTML tag for "Word Break Opportunity" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

There is a HTML tag for "Word Break Opportunity"

+ +
+ Last updated: +
+ +

For example: Kauf<wbr/>haus.

+ +
    +
  1. +
+ +
+ +
+ + +
+ +
+ + + + diff --git a/zig-out/til/2021-09-03/index.html b/zig-out/til/2021-09-03/index.html new file mode 100644 index 0000000..7bd3120 --- /dev/null +++ b/zig-out/til/2021-09-03/index.html @@ -0,0 +1,125 @@ + + + + + + the codeartist — programmer and engineer based in BerlinBush refused offer to discuss Osama Bin Laden handover + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

Bush refused offer to discuss Osama Bin Laden handover

+ +
+ Last updated: +
+ +
+ +
    +
  1. +
+ +
+ +
+ + +
+ +
+ + + + diff --git a/zig-out/til/2021-09-04/index.html b/zig-out/til/2021-09-04/index.html new file mode 100644 index 0000000..8e83f51 --- /dev/null +++ b/zig-out/til/2021-09-04/index.html @@ -0,0 +1,125 @@ + + + + + + the codeartist — programmer and engineer based in Berlingit fetch repo_url remote_branch:new_local_branch + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

git fetch repo_url remote_branch:new_local_branch

+ +
+ Last updated: +
+ +

git fetch $repo_url $remote_branch:$new_local_branch

+ +
    +
  1. +
+ +
+ +
+ + +
+ +
+ + + + diff --git a/zig-out/til/2021-09-05/index.html b/zig-out/til/2021-09-05/index.html new file mode 100644 index 0000000..000651b --- /dev/null +++ b/zig-out/til/2021-09-05/index.html @@ -0,0 +1,125 @@ + + + + + + the codeartist — programmer and engineer based in BerlinE-Mail that isn't spam is called ham! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

E-Mail that isn't spam is called ham!

+ +
+ Last updated: +
+ +
+ +
    +
  1. +
+ +
+ +
+ + +
+ +
+ + + + diff --git a/zig-out/til/2022-02-22/index.html b/zig-out/til/2022-02-22/index.html new file mode 100644 index 0000000..f1c47d6 --- /dev/null +++ b/zig-out/til/2022-02-22/index.html @@ -0,0 +1,153 @@ + + + + + + the codeartist — programmer and engineer based in BerlinAdding aliases in vite with typescript needs the same alias in tsconfig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

Adding aliases in vite with typescript needs the same alias in tsconfig

+ +
+ Last updated: +
+ +

For example:

The following vite.config.ts:

import { fileURLToPath, URL } from "url"
+import { defineConfig } from 'vite'
+import vue from '@vitejs/plugin-vue'
+
+// https://vitejs.dev/config/
+export default defineConfig({
+  plugins: [vue()],
+  resolve: {
+    alias: {
+      "~": fileURLToPath(new URL("./src", import.meta.url)),
+      "~component": fileURLToPath(new URL("./src/components", import.meta.url)),
+      "~composable": fileURLToPath(new URL("./src/composables", import.meta.url)),
+      "~lib": fileURLToPath(new URL("./src/lib", import.meta.url)),
+    }
+  }
+})
+
+

will need this in tsconfig.json:

{
+  "compilerOptions": {
+    "paths": {
+      "~/*": [ "./src/*" ],
+      "~component/*": [ "./src/components/*" ],
+      "~composable/*": [ "./src/composables/*" ],
+      "~lib/*": [ "./src/lib/*" ]
+    }
+  }
+}
+
+

The asterixes in the syntax are important (alias/* => ./path/*).

+ +
    +
  1. +
+ +
+ +
+ + +
+ +
+ + + + diff --git a/zig-out/til/2022-03-22/index.html b/zig-out/til/2022-03-22/index.html new file mode 100644 index 0000000..a5043cd --- /dev/null +++ b/zig-out/til/2022-03-22/index.html @@ -0,0 +1,127 @@ + + + + + + the codeartist — programmer and engineer based in BerlinThere is a file system for EFI vars now + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

There is a file system for EFI vars now

+ +
+ Last updated: +
+ +

On kernel updates I saw a recurring "EFI variables are not supported on this system", so I investigated and learned that the new EFI variables are provided via a file system that needs to be mounted first:

mount -t efivarfs efivarfs /sys/firmware/efi/efivars
+
+
+ +
    +
  1. +
+ +
+ +
+ + +
+ +
+ + + + diff --git a/zig-out/til/2022-03-28/index.html b/zig-out/til/2022-03-28/index.html new file mode 100644 index 0000000..d112dd0 --- /dev/null +++ b/zig-out/til/2022-03-28/index.html @@ -0,0 +1,128 @@ + + + + + + the codeartist — programmer and engineer based in Berlinpwdx command shows the working path of a process + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

pwdx command shows the working path of a process

+ +
+ Last updated: +
+ +

For example:

% pwdx 1984
+> 1984: /home/george/ttlctrl
+
+
+ +
    +
  1. +
+ +
+ +
+ + +
+ +
+ + + + diff --git a/zig-out/til/2022-04-25/index.html b/zig-out/til/2022-04-25/index.html new file mode 100644 index 0000000..b7bf30c --- /dev/null +++ b/zig-out/til/2022-04-25/index.html @@ -0,0 +1,144 @@ + + + + + + the codeartist — programmer and engineer based in BerlinJest mocks are ...different + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

Jest mocks are ...different

+ +
+ Last updated: +
+ +

If you want to mock an imported function in Jest in a way that allows you to check if it has been called, you can not do the seemingly straighforward:

// mock prefix necessary btw
+const mockThatFunction = jest.fn(() => 'stuff')
+
+jest.mock('@/path/to/module', () => ({
+  thatFunction: mockThatFunction,
+}))
+
+// ...in test descriptions
+expect(mockThatFunction).toHaveBeenCalled()
+
+

This way thatFunction will be undefined without anyone telling you why.

What you need to do instead:

import { thatFunction } from '@/path/to/module'
+
+jest.mock('@/path/to/module', () => ({
+  thatFunction: jest.fn(() => 'stuff'),
+}))
+
+// ...in test descriptions
+expect(thatFunction).toHaveBeenCalled()
+
+
+ +
    +
  1. +
+ +
+ +
+ + +
+ +
+ + + + diff --git a/zig-out/til/2022-06-15/index.html b/zig-out/til/2022-06-15/index.html new file mode 100644 index 0000000..7b5a0a2 --- /dev/null +++ b/zig-out/til/2022-06-15/index.html @@ -0,0 +1,125 @@ + + + + + + the codeartist — programmer and engineer based in BerlinDisallowed Focussed Tests and how it saved my day + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

Disallowed Focussed Tests and how it saved my day

+ +
+ Last updated: +
+ +

Today I was about to push a focussed test. A focussed test, you ask?

In Jest (and others) one can run only a specific test, by writing it.only(.... Pushing this to production might create some funny or not so funny side effects though. Luckily there is the no-focussed-tests linter rule in eslint-plugin-jest.

+ +
    +
  1. +
+ +
+ +
+ + +
+ +
+ + + + diff --git a/zig-out/til/2024-05-11/index.html b/zig-out/til/2024-05-11/index.html new file mode 100644 index 0000000..db17813 --- /dev/null +++ b/zig-out/til/2024-05-11/index.html @@ -0,0 +1,125 @@ + + + + + + the codeartist — programmer and engineer based in BerlinRob Pike's 5 Rules of Programming + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

Rob Pike's 5 Rules of Programming

+ +
+ Last updated: +
+ +
  1. You can't tell where a program is going to spend its time. Bottlenecks occur in surprising places, so don't try to second guess and put in a speed hack until you've proven that's where the bottleneck is.

  2. Measure. Don't tune for speed until you've measured, and even then don't unless one part of the code overwhelms the rest.

  3. Fancy algorithms are slow when n is small, and n is usually small. Fancy algorithms have big constants. Until you know that n is frequently going to be big, don't get fancy. (Even if n does get big, use Rule 2 first.)

  4. Fancy algorithms are buggier than simple ones, and they're much harder to implement. Use simple algorithms as well as simple data structures.

  5. Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming.

Pike's rules 1 and 2 restate Tony Hoare's famous maxim "Premature optimization is the root of all evil." Ken Thompson rephrased Pike's rules 3 and 4 as "When in doubt, use brute force.". Rules 3 and 4 are instances of the design philosophy KISS. Rule 5 was previously stated by Fred Brooks in The Mythical Man-Month. Rule 5 is often shortened to "write stupid code that uses smart objects".

+ +
    +
  1. +
+ +
+ +
+ + +
+ +
+ + + + diff --git a/zig-out/til/2024-05-12/index.html b/zig-out/til/2024-05-12/index.html new file mode 100644 index 0000000..e82ce07 --- /dev/null +++ b/zig-out/til/2024-05-12/index.html @@ -0,0 +1,129 @@ + + + + + + the codeartist — programmer and engineer based in BerlinSort list of strings in Javascript + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

Sort list of strings in Javascript

+ +
+ Last updated: +
+ +
users.sort((a, b) => a.firstname.localeCompare(b.firstname))
+
+

or reversed order:

users.sort((a, b) => a.firstname.localeCompare(b.firstname) * -1)
+
+
+ +
    +
  1. +
+ +
+ +
+ + +
+ +
+ + + + diff --git a/zig-out/til/2024-05-13/index.html b/zig-out/til/2024-05-13/index.html new file mode 100644 index 0000000..fe5e489 --- /dev/null +++ b/zig-out/til/2024-05-13/index.html @@ -0,0 +1,125 @@ + + + + + + the codeartist — programmer and engineer based in BerlinReading speed is usually from 100 to 260 words per minute + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

Reading speed is usually from 100 to 260 words per minute

+ +
+ Last updated: +
+ +

With an average of 183 wpm.

+ +
    +
  1. +
+ +
+ +
+ + +
+ +
+ + + + diff --git a/zig-out/til/index.html b/zig-out/til/index.html new file mode 100644 index 0000000..7dc61d0 --- /dev/null +++ b/zig-out/til/index.html @@ -0,0 +1,197 @@ + + + + + + the codeartist — programmer and engineer based in BerlinToday I Learned + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

Today I Learned

+ This page contains short notes and sometimes code snippets, of interesting things I just found out. +
+ Last updated: +
+ +
+ +
    +
  1. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  2. +
+ +
+ +
+ + +
+ +
+ + + + diff --git a/dist/twitter.svg b/zig-out/twitter.svg similarity index 100% rename from dist/twitter.svg rename to zig-out/twitter.svg