add bookmarks via deno script

This commit is contained in:
Norman Köhring 2024-07-21 13:31:25 +02:00
parent 66153017df
commit 2756f1ff80
35 changed files with 146 additions and 8 deletions

64
bookmarks.ts Normal file
View file

@ -0,0 +1,64 @@
type Bookmark = {
id: number
url: string
title: string
description: string
notes: string
website_title: string | null
website_description: string | null
web_archive_snapshot_url: string | null
is_archived: boolean
unread: boolean
shared: boolean
tag_names: string[]
date_added: string
date_modified: string
}
type Response<T> = {
count: number
next: string | null
previous: string | null
results: T[]
}
const bookmarksRaw: string = await Deno.readTextFile('./content/bookmarks.json')
const bookmarksResponse = JSON.parse(bookmarksRaw) as Response<Bookmark>
const bookmarkList = bookmarksResponse.results
const templatePrefix = `---
{
.title = "Bookmarks",
.date = @date("2024-07-16T00:00:00"),
.author = "koehr",
.draft = false,
.layout = "page.html",
.description = "Websites that inspired me, that I think are worth reading, useful and I don't want to forget about.",
.tags = [],
}
---
> Check out [The Bukmark Club](https://bukmark.club/) to find more pages featuring a curated collection of bookmarks and/or links to other websites.
This page is intended to be generated as part of the build step in the future, but it is not there, yet. Instead it is generated by a small, manually run helper script, therefore the bookmarks might not be fully up to date. For a fully up-to-date version, please refer to my [public bookmark list](https://url.koehr.ing/bookmarks/shared).
---
`
const URL = 'https://url.koehr.ing/bookmarks/shared'
const bookmarksMd = bookmarkList.map(bookmark => {
const { url, title: maybeTitle, description, tag_names: tags, notes } = bookmark
const title = maybeTitle?.length > 0 ? maybeTitle : url
const tagList = tags.map(tag => `[#${tag}](${URL}?q=%23${tag})`).join(' ')
return `* [${title}](${url})${description ? ` - ${description}` : ''}
${tagList}${notes ? `\n\n ${notes}` : ''}
`
})
console.log(templatePrefix + bookmarksMd.join('\n'))
export {}

1
content/bookmarks.json Normal file

File diff suppressed because one or more lines are too long

View file

@ -5,11 +5,47 @@
.author = "koehr", .author = "koehr",
.draft = false, .draft = false,
.layout = "page.html", .layout = "page.html",
.description = "Websites that inspired me, that I think are worth reading, that are useful and I don't want to forget about.", .description = "Websites that inspired me, that I think are worth reading, useful and I don't want to forget about.",
.tags = [], .tags = [],
} }
--- ---
> Check out [The Bukmark Club](https://bukmark.club/) to find more pages featuring a curated collection of bookmarks and/or links to other websites. > Check out [The Bukmark Club](https://bukmark.club/) to find more pages featuring a curated collection of bookmarks and/or links to other websites.
This page is generated as part of the build step and might not be fully up to date. For this, please refer to my [public bookmark list](https://url.koehr.ing/bookmarks/shared). This page is intended to be generated as part of the build step in the future, but it is not there, yet. Instead it is generated by a small, manually run helper script, therefore the bookmarks might not be fully up to date. For a fully up-to-date version, please refer to my [public bookmark list](https://url.koehr.ing/bookmarks/shared).
---
* [Do Insects Feel Joy and Pain?](https://www.scientificamerican.com/article/do-insects-feel-joy-and-pain/) - Insects have surprisingly rich inner lives—a revelation that has wide-ranging ethical implications
[#science](https://url.koehr.ing/bookmarks/shared?q=%23science) [#ethics](https://url.koehr.ing/bookmarks/shared?q=%23ethics) [#insects](https://url.koehr.ing/bookmarks/shared?q=%23insects)
Insects appear to experience both pleasure and pain. In other words, it now looks like at least some species of insects—and maybe all of them—are sentient.
* [https://www.brightball.com/articles/story-points-are-pointless-measure-queues](https://www.brightball.com/articles/story-points-are-pointless-measure-queues)
[#agile](https://url.koehr.ing/bookmarks/shared?q=%23agile) [#management](https://url.koehr.ing/bookmarks/shared?q=%23management) [#scrum](https://url.koehr.ing/bookmarks/shared?q=%23scrum)
* [https://ktema.org/articles/the-overengineered-resume/](https://ktema.org/articles/the-overengineered-resume/)
[#dev](https://url.koehr.ing/bookmarks/shared?q=%23dev) [#goodexample](https://url.koehr.ing/bookmarks/shared?q=%23goodexample) [#cv](https://url.koehr.ing/bookmarks/shared?q=%23cv) [#resume](https://url.koehr.ing/bookmarks/shared?q=%23resume)
* [LLM Parameters Demystified: Getting The Best Outputs from Language AI](https://cohere.com/blog/llm-parameters-best-outputs-language-ai) - When using Language AI to generate content, there are many options to control the outputs. Let's take a look at them in this post.
[#LLM](https://url.koehr.ing/bookmarks/shared?q=%23LLM)
* [Vintage Star System generator](https://itch.io/queue/c/1304214/scifi-trpg-tools?game_id=1415404)
[#generator](https://url.koehr.ing/bookmarks/shared?q=%23generator) [#TTRPG](https://url.koehr.ing/bookmarks/shared?q=%23TTRPG) [#SciFi](https://url.koehr.ing/bookmarks/shared?q=%23SciFi) [#mothership](https://url.koehr.ing/bookmarks/shared?q=%23mothership) [#StarSystem](https://url.koehr.ing/bookmarks/shared?q=%23StarSystem) [#vintage](https://url.koehr.ing/bookmarks/shared?q=%23vintage)
* [parity - Is infinity an odd or even number? - Mathematics Stack Exchange](https://math.stackexchange.com/questions/49034/is-infinity-an-odd-or-even-number)
[#math](https://url.koehr.ing/bookmarks/shared?q=%23math) [#infinity](https://url.koehr.ing/bookmarks/shared?q=%23infinity)
* [Piskel - Free online sprite editor](https://www.piskelapp.com/) - Piskel, free online sprite editor. A simple web-based tool for Spriting and Pixel art. Create pixel art, game sprites and animated GIFs. Free and open-source.
[#graphics](https://url.koehr.ing/bookmarks/shared?q=%23graphics) [#editor](https://url.koehr.ing/bookmarks/shared?q=%23editor) [#pixelart](https://url.koehr.ing/bookmarks/shared?q=%23pixelart)
* [GitHub - MichaelMure/git-bug: Distributed, offline-first bug tracker embedded in git, with bridges](https://github.com/MichaelMure/git-bug) - Distributed, offline-first bug tracker embedded in git, with bridges - GitHub - MichaelMure/git-bug: Distributed, offline-first bug tracker embedded in git, with bridges
[#dev](https://url.koehr.ing/bookmarks/shared?q=%23dev) [#git](https://url.koehr.ing/bookmarks/shared?q=%23git)
* [Conversion Tools - Online File Converter for JSON, XML, Excel, PDF, and other formats](https://conversiontools.io/) - Convert documents, PDF, images, and other files online between different formats. Secured service. User account. Conversion options. REST API and libraries.
[#webapp](https://url.koehr.ing/bookmarks/shared?q=%23webapp) [#file](https://url.koehr.ing/bookmarks/shared?q=%23file) [#free](https://url.koehr.ing/bookmarks/shared?q=%23free) [#conversion](https://url.koehr.ing/bookmarks/shared?q=%23conversion)
* [Science Fiction & Fantasy
The Rare Book Sleuth](https://rarebooksleuth.com/collections/science-fiction)
[#books](https://url.koehr.ing/bookmarks/shared?q=%23books) [#SciFi](https://url.koehr.ing/bookmarks/shared?q=%23SciFi) [#antique](https://url.koehr.ing/bookmarks/shared?q=%23antique)

View file

@ -57,9 +57,15 @@ Just for the sake of completeness and to motivate myself to keep track of it, he
> With lots of work comes lots of opportunity for productive procrastination > With lots of work comes lots of opportunity for productive procrastination
**tl;dr:**
I use [zine-ssg](https://zine-ssg.io) to statically build my homepage after every change. I intend to extend it with automated fetching of [bookmarks](/bookmarks).
**The long version:**
Not too long ago, .ing <span title="Top Level Domain">TLDs</span> 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). Not too long ago, .ing <span title="Top Level Domain">TLDs</span> 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](https://cli.koehr.ing) 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](https://github.com/vssio/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](https://www.getzola.org/). 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](https://cli.koehr.ing) 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](https://github.com/vssio/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 was, 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](https://www.getzola.org/). Eventually I found [zine-ssg](https://zine-ssg.io), which now builds my homepage for me.
### New Server ### New Server

View file

@ -81,6 +81,7 @@
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -6,6 +6,7 @@
--header-height-multiplier: .25; --header-height-multiplier: .25;
--page-bg-color: #232425; --page-bg-color: #232425;
--page-fg-color: #7e9fbe; --page-fg-color: #7e9fbe;
--page-link-color: #aabbee;
--menu-bg-color: #000; --menu-bg-color: #000;
--highlight-fg-color: #eacb8b; --highlight-fg-color: #eacb8b;
--emboss-color: #000; --emboss-color: #000;
@ -135,7 +136,7 @@ body>main>header {
} }
a { a {
color: var(--page-fg-color); color: var(--page-link-color);
} }
blockquote { blockquote {

View file

@ -135,6 +135,7 @@
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -114,6 +114,7 @@ c2 b4 c2 b5 c2 b6 c2 b7 c2 b8 c2 b9 c2 ba c2 bb |................|
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -109,6 +109,7 @@
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -181,6 +181,7 @@ index <span class="constant">5950dfd</span>..<span class="constant">032fd0c</spa
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -109,6 +109,7 @@ setfont ${SPLEENDIR}/spleen-16x32.psfu
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -575,6 +575,7 @@ requestAnimationFrame(update)
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -256,6 +256,7 @@ defineComponent({
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -149,6 +149,7 @@
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

File diff suppressed because one or more lines are too long

View file

@ -90,6 +90,7 @@
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -132,6 +132,7 @@
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -90,6 +90,7 @@
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -52,7 +52,7 @@
<p>I am the creator of 250kB Club, which should actually be called 256kb.club, but that thought reached me only after I got the domain.</p><p>Already in 2016, we crossed the line, where the typical website is bigger than the game Doom. I think, we can do better! The 250kB Club is a collection of web pages that focus on performance, efficiency and accessibility. Originally inspired by <a href="https://1mb.club">1mb.club</a>, I created the 250kB Club, because I don't think 1MB is small enough. Not long ago, we would have waited 10 or more minutes to load this amount of data and not everyone in the world is a lucky high-speed internet user.</p><p>Source code: <a href="https://github.com/nkoehring/250kb-club">github</a>, <a href="https://git.sr.ht/~koehr/the-250kb-club">sourcehut</a>, <a href="https://git.k0r.in/n/250kb-Club">selfhosted</a></p><h2>Starsy <a href="https://starsy.netlify.app">🔗</a></h2><img src="/projects/starsy.jpg" title="Starsy Screenshot" alt="Starsy Screenshot" /> <p>I am the creator of 250kB Club, which should actually be called 256kb.club, but that thought reached me only after I got the domain.</p><p>Already in 2016, we crossed the line, where the typical website is bigger than the game Doom. I think, we can do better! The 250kB Club is a collection of web pages that focus on performance, efficiency and accessibility. Originally inspired by <a href="https://1mb.club">1mb.club</a>, I created the 250kB Club, because I don't think 1MB is small enough. Not long ago, we would have waited 10 or more minutes to load this amount of data and not everyone in the world is a lucky high-speed internet user.</p><p>Source code: <a href="https://github.com/nkoehring/250kb-club">github</a>, <a href="https://git.sr.ht/~koehr/the-250kb-club">sourcehut</a>, <a href="https://git.k0r.in/n/250kb-Club">selfhosted</a></p><h2>Starsy <a href="https://starsy.netlify.app">🔗</a></h2><img src="/projects/starsy.jpg" title="Starsy Screenshot" alt="Starsy Screenshot" />
<p>For a hard sci-fi campaign setting, I once planned, I created this star system generator. I wanted to recreate the style of some image I found on reddit, a while ago.</p><p>Source code: <a href="https://github.com/nkoehring/starsy">github</a>, <a href="https://git.k0r.in/n/starsy">selfhosted</a></p><h2>RPG-Cards-ng <a href="https://rpg-cards-ng.netlify.app">🔗</a></h2><img src="/projects/rpgcards.jpg" title="RPG-Cards-ng Screenshot" alt="RPG-Cards-ng Screenshot" /> <p>For a hard sci-fi campaign setting, I once planned, I created this star system generator. I wanted to recreate the style of some image I found on reddit, a while ago.</p><p>Source code: <a href="https://github.com/nkoehring/starsy">github</a>, <a href="https://git.k0r.in/n/starsy">selfhosted</a></p><h2>RPG-Cards-ng <a href="https://rpg-cards-ng.netlify.app">🔗</a></h2><img src="/projects/rpgcards.jpg" title="RPG-Cards-ng Screenshot" alt="RPG-Cards-ng Screenshot" />
<p>I wanted to be able to create good looking cards for RPG sessions but didn't find a good tool that makes designing them simple and intuitive. So I created my own tool.</p><p>Source code: <a href="https://github.com/nkoehring/rpg-cards-ng">github</a>, <a href="https://git.k0r.in/n/rpg-cards-ng">selfhosted</a></p><h2>Vuejs//Berlin <a href="https://vuejs.berlin">🔗</a></h2><img src="/projects/vuejsberlin.jpg" title="Vuejs Berlin Screenshot" alt="Vuejs Berlin Screenshot" /> <p>I wanted to be able to create good looking cards for RPG sessions but didn't find a good tool that makes designing them simple and intuitive. So I created my own tool.</p><p>Source code: <a href="https://github.com/nkoehring/rpg-cards-ng">github</a>, <a href="https://git.k0r.in/n/rpg-cards-ng">selfhosted</a></p><h2>Vuejs//Berlin <a href="https://vuejs.berlin">🔗</a></h2><img src="/projects/vuejsberlin.jpg" title="Vuejs Berlin Screenshot" alt="Vuejs Berlin Screenshot" />
<p>I host the monthly Vuejs//Berlin meetup and created this homepage to publish details about the upcoming and former meetups. It also hosts a newsletter archive.</p><p>The Vuejs//Berlin meetup is Berlins community around the <a href="https://vuejs.org">Vue Framework</a> and its ecosystem. We meet monthly every second Tuesday. Doors open at 19:00, talks usually start around 19:30. Subscribe to <a href="https://lu.ma/vuejs_berlin">the event calendar</a> to never miss an update!</p><p>Source code: <a href="https://github.com/VuejsBerlin/new.vuejs.berlin">github</a></p><h2>Projects for myself</h2><p>Just for the sake of completeness and to motivate myself to keep track of it, here are some private projects around my own setup.</p><h3>Homepage Overhaul</h3><blockquote><p>With lots of work comes lots of opportunity for productive procrastination</p></blockquote><p>Not too long ago, .ing <span title="Top Level Domain">TLDs</span> became available, that allowed me to finally have my full name as a "cool" domain name: <code>koehr.ing</code>. Other domains I have are <code>nkoehring.de</code> (boring), <code>koehr.in</code> (confusing) and <code>k0r.in</code> (nerdy). <code>koehri.ng</code> 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).</p><p>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 <a href="https://cli.koehr.ing">the interactive homepage experiment</a> 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 <a href="https://github.com/vssio/vss">vss</a>. 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' <a href="https://www.getzola.org/">Zola</a>.</p><h3>New Server</h3><p>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 <a href="https://www.docker.com/">Docker</a> and <a href="https://blog.container-solutions.com/running-docker-containers-with-systemd">systemd services</a> to <a href="https://podman.io/">podman</a> and <a href="https://wiki.archlinux.org/title/Systemd/User#Automatic_start-up_of_systemd_user_instances">lingering users</a>. 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.</p><h3>learned.today</h3><p>Quite a while (aka way too long) ago, I bought the domain <code>learned.today</code> 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 <a href="/til">my TIL page</a>. I never got to implementing it though. I wrote it down here as a motivation for myself, to finally work on it.</p></div> <p>I host the monthly Vuejs//Berlin meetup and created this homepage to publish details about the upcoming and former meetups. It also hosts a newsletter archive.</p><p>The Vuejs//Berlin meetup is Berlins community around the <a href="https://vuejs.org">Vue Framework</a> and its ecosystem. We meet monthly every second Tuesday. Doors open at 19:00, talks usually start around 19:30. Subscribe to <a href="https://lu.ma/vuejs_berlin">the event calendar</a> to never miss an update!</p><p>Source code: <a href="https://github.com/VuejsBerlin/new.vuejs.berlin">github</a></p><h2>Projects for myself</h2><p>Just for the sake of completeness and to motivate myself to keep track of it, here are some private projects around my own setup.</p><h3>Homepage Overhaul</h3><blockquote><p>With lots of work comes lots of opportunity for productive procrastination</p></blockquote><p><strong>tl;dr:</strong></p><p>I use <a href="https://zine-ssg.io">zine-ssg</a> to statically build my homepage after every change. I intend to extend it with automated fetching of <a href="/bookmarks">bookmarks</a>.</p><p><strong>The long version:</strong></p><p>Not too long ago, .ing <span title="Top Level Domain">TLDs</span> became available, that allowed me to finally have my full name as a "cool" domain name: <code>koehr.ing</code>. Other domains I have are <code>nkoehring.de</code> (boring), <code>koehr.in</code> (confusing) and <code>k0r.in</code> (nerdy). <code>koehri.ng</code> 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).</p><p>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 <a href="https://cli.koehr.ing">the interactive homepage experiment</a> 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 <a href="https://github.com/vssio/vss">vss</a>. 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 was, to finish the page and its content and then, when there is time, move it on top of something more sophisticated, like good ol' <a href="https://www.getzola.org/">Zola</a>. Eventually I found <a href="https://zine-ssg.io">zine-ssg</a>, which now builds my homepage for me.</p><h3>New Server</h3><p>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 <a href="https://www.docker.com/">Docker</a> and <a href="https://blog.container-solutions.com/running-docker-containers-with-systemd">systemd services</a> to <a href="https://podman.io/">podman</a> and <a href="https://wiki.archlinux.org/title/Systemd/User#Automatic_start-up_of_systemd_user_instances">lingering users</a>. 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.</p><h3>learned.today</h3><p>Quite a while (aka way too long) ago, I bought the domain <code>learned.today</code> 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 <a href="/til">my TIL page</a>. I never got to implementing it though. I wrote it down here as a motivation for myself, to finally work on it.</p></div>
</main> </main>
@ -94,6 +94,7 @@
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -90,6 +90,7 @@
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -90,6 +90,7 @@
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -6,6 +6,7 @@
--header-height-multiplier: .25; --header-height-multiplier: .25;
--page-bg-color: #232425; --page-bg-color: #232425;
--page-fg-color: #7e9fbe; --page-fg-color: #7e9fbe;
--page-link-color: #aabbee;
--menu-bg-color: #000; --menu-bg-color: #000;
--highlight-fg-color: #eacb8b; --highlight-fg-color: #eacb8b;
--emboss-color: #000; --emboss-color: #000;
@ -135,7 +136,7 @@ body>main>header {
} }
a { a {
color: var(--page-fg-color); color: var(--page-link-color);
} }
blockquote { blockquote {

View file

@ -101,6 +101,7 @@
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -101,6 +101,7 @@
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -101,6 +101,7 @@
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -101,6 +101,7 @@
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -129,6 +129,7 @@ export default defineConfig({
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -103,6 +103,7 @@
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -104,6 +104,7 @@
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -120,6 +120,7 @@ expect(thatFunction).toHaveBeenCalled()
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -101,6 +101,7 @@
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -101,6 +101,7 @@
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -105,6 +105,7 @@
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -101,6 +101,7 @@
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">

View file

@ -173,6 +173,7 @@
<li><a title="CV / Resume" href="/cv">/cv</a></li> <li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li> <li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li> <li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
</menu> </menu>
</div> </div>
<footer id="footer"> <footer id="footer">