A blog about life
Hello, There! This is my personal website covering various topics from music to design, programming and more. As this is both the home and part of my portfolio feel free to peruse around, there is ample documentation embedded for the curious.
Notable Projects
hubjs
Provides loosely coupled sandboxes for your JavaScript apps.
Elm WebComponents Guide
A guide to using Elm, or any other compile-to-js language for that matter, with WebComponents.
www.canena.de
The code of this website is public on GitHub.
Six Seasons And A Bee
Making of a birthday gift for a friend …
The Last of Us Part II
A quick walkthrough of how I migrated this site to use Elmstatic …
Tales From the Code Crypt
A quick walkthrough of how I migrated this site to use Elmstatic …
An Elmstatic Experience
A quick walkthrough of how I migrated this site to use Elmstatic …
TypeScript Vs The Real World
This started out as a YouTube comment on a talk about TypeScript that got out of control in scope so I created a blog post instead. …
Elm 0.19 TL;DR
As the Elm 0.19 upgrade docs are lacking some vital information you only know about by consistently hanging out on the Elm Slack I thought I'd list them here for all the word to see. …
Stack To Elm Them All
Ever wondered - or forgot - how to build the Elm Compiler with tracing using Haskell Stack? …
An Elm To The Past
This blog post compiles the advice I posted in a discussion on Elm Discourse on support of Elm for older browsers …
Epic Links
A collection of links that I found useful, inspired me and may bring you enjoyment and/or enlightenment as well …
Hello Living Style Guide
This is the living documentation for my own little set of responsive Block Element Modifier (BEM) based CSS layout blocks …
Garbled Teenage Memories
Making of a birthday gift for a friend …
Making a habit of making a habit
Lately I've been thinking a lot about writing and whether I could do it myself …
About the author
I love listening to and making music myself, enjoy reading, get excited when watching a decent movie, flourish in creating artwork, marvel in coding and grocking other people's code and delight in learning anything new in general.
I'm a software developer by trade...
- with an abundance of experience in building frontends in HTML, CSS and JavaScript as well as a great number of libraries and frameworks that build on top of this foundation.
- having experience building backends with C# for most of my professional web projects.
Currently obsessed with...
- progressive enhancement using web standards like Custom Elements and HTML templates in tandem with good-enough software engineering practices - this whole site is a showcase, you are invited to peruse around, there is documentation everywhere.
- using composable layouts inspired by every-layout.dev and utility classes instead of chunky CSS abstractions.
Not that much obsessed with anymore with...
Contact
If you're human, you can surely make sense of the following gibberish where you need to reverse the letters of every word anenac (ατ) liamy • moc.
Impressum
The views expressed in this site are my own thoughts and don't necessarily match that of my professional acquaintances like my employer or co-workers, it is a fully private endeavor. I'm not responsible for linked content that lives outside of canena.de and its subdomains, the respective owners' opinions are not my own and I distance myself from them and any affiliation that is not explicitly stated on my part.
Data usage disclosure
This is a static site that doesn't collect any data, although these pages are hosted somewhere and they might be keeping track of you.
Some of the pages include a comment section, these are being fetched from GitHub via their API, see the progressive enhancement section for more details.
Active content
Active content is subject to the following policy
The one exception where external data is being requested and processed to be displayed on the site is to provide commments via the GitHub API
Otherwise all content originates from this site directly, this means in particular:
- There is no JavaScript loaded from anywhere but canena.de and its subdomains, no external CDN, no external fonts, no external images, no analytics
- All JavaScript code and the site's styles are provided un-minified and with comments. Legacy content may include minified CSS styles, sources are referenced. Although the file size of the served source code is larger than it could be with minification an open web where people are encouraged to learn should be worth a couple of extra bytes on the wire
- The site is usable and accessible without JavaScript. A moderately web-standards-compliant browser is required for active content. Although we could maintain feature parity in legacy browsers like Internet Explorer we refrain from doing so by choice
- No third-party code is included in the JavaScript served from this domain, no external libraries, no polyfills, no build-artifacts from i.e. Webpack or other bundlers
- You may choose to disable potentially battery-draining and/or distracting site effects via the FX toggle at the bottom of each page
Progressive Enhancements
Enabling JavaScript is not required but might enhance the site experience by...
- Providing a mechanism for loosely-coupled sandboxes
-
Defining composition root for the site including a thin wrapper around the
customElements
API, basic facilities to employ inversion of control and utilities like HTML sanitization and function throttling - Providing an animated presention of the Portfolio section
- Showing off a demo of an algorithm to imitate water efficiently
- Providing a toggle for potentially heavy effects on this site
- Re-purposing GitHub issues as comment sections for selected articles
- Listening for hotkeys to use in the page search in the Topics section
- Presenting you with a fancy intro to the site
- Making sure the site's logo is in view at most once
- Enabling easy discovery via page search (using hotkeys) in the Topics section
- Gathering meta data like i.e. word-count for selected articles like this one about the game "The Last of Us Part II"
- Indicating reading progress (using scroll position) for selected articles like this one about TypeScript
- Enabling easy script loading for active content features of this site
- Listening for scroll position data to use in displaying reading progress for selected articles like this one about the 0.19 release of the Elm programming language