tools page; draft for article

This commit is contained in:
Jan Wolff 2022-12-05 22:59:23 +01:00
parent 83cbe179ac
commit 0b573f5b96
5 changed files with 94 additions and 8 deletions

View file

@ -24,3 +24,7 @@ subtitle = 'personal blog and portfolio of jan wolff'
name = 'projects'
url = '/projects/'
weight = 120
[[menu.main]]
name = 'tools'
url = '/tools/'
weight = 120

View file

@ -6,5 +6,6 @@ draft: true
Hi! Im Jan (he/him). I'm a programmer by trade. I've majored in computer
science and am currently working as a developer of e-commerce platforms, with a
focus on _Magento 2_. You can find some of the stuff that I made on this
website!
focus on _Magento 2_. However, I am interested in many different things. Be it writing tools
that help me in my day-to-day grind or hobbyist game projects.
You can find some of the stuff that I made on this website!

View file

@ -7,4 +7,54 @@ draft: true
I have migrated my homepage over to [the static site generator
Hugo](https://gohugo.io). Its bastically what I had built before with some
_pandoc_ and _Python_ magic, but... well... a lot better. And this basically
represents something I have learned over the last few years.
represents something I have learned over the last few years. Before this change
everything was some cobbled together DIY stuff. I worked quite well, but everything
small represented a huge task. For example, adding an RSS feed to my old blog
required reading the RSS spec and generated an appropriate XML in Python.
This might have been a learning experience, sure. But it was still something that
needed maintaining and understanding. And in the end it was just sunk time you know?
By now I know that I'm able to implement the most simple portions of most specs. And
generating some XML in Python isn't exactly breaking new ground. Thus, when assessing
the situation critically, the whole ordeal was hardly a learning experience and much more
just a chore. And its the same with oh so many other things as well. There is a thin line
between doing something for the first time to learn from it and just doing a shoddy job
at something you were already capable of doing.
I guess most people have a similar learning curve. When getting into programming
every bit of help is used. Projects consist of a bunch of sample code and external
libraries you don't really understand yet. I lived through this phase with very early
Visual C# and Unity projects. After a while you become much more confident at writing
stuff yourself. And then it just clicks, you pass the threshold where you are basically
able to do everything. Sure it may need some additional reading to understand concepts, but the
programming portion of every problem becomes almost obvious. Surely from now on you
no longer need to rely on any external code and can just do everything from the ground up?
From _first principles_?
And so you do. And honestly, you should. Just to see that nothing really is magic.
Most people who have programmed portions of the software that drives your daily workflow
aren't magical geniuses, but rather people who've worked on building a thing. And hopefully
they were pay well for building their thing. I remember the first time I build a 2D game from
the ground up in C. Built the rendering, audio and game logic all
[using only SDL](https://www.libsdl.org/) to do the grunt work for different platforms. And you
know what I did with that newfound knowledge? Build it again and again. To get it "just right".
Turns out I knew enough to make a game engine, but that took a little too much time away from
working on the "game" part.
So we're back at the main problem. Doing everything from _first principles_ puts you in
the position that you have to work a little too much on those _first principles_ instead of
the main idea you have. And they've been done. Countless times before. And possibly much
better than the way you have built them. So instead of spending too much time reinventing
the wheel, I am now much more self-critical in thinking about WHAT my novel idea actually
is. And then I make sure to put as little stepping stones in the way towards that
idea as possible.
Just a quick side note: Maybe of course the novel idea is a much better way of building
something that already exists. In this case the previous point is moot.
But yeah. That's why switching to Hugo represents a new learning for me. Sure I _could_
also build a custom static site generator just for my website. But either it becomes
a mess of random scripts or I spend more time working on that, than on my site. And then
I'd just end up with a terrible looking site that I'd spent waaay to long working on.
Thanks for coming to my TED talk.

31
content/tools/_index.md Normal file
View file

@ -0,0 +1,31 @@
---
title: "Tools"
date: 2022-12-05T22:19:44+01:00
draft: true
---
## sheldond
Sheldon Director is a server for the
[Gemini](https://gemini.circumlunar.space/) internet protocol.
The software is written in Rust and currently it only supports hosting static
files.
current version: 0.2.0
* [source code](/files/sheldond/sheldond-0.2.0.tar.gz) ([SHA256](/files/sheldond/sheldond-0.2.0.tar.gz.sha256))
* [git](https://git.janw.name/sheldond.git/)
---
## vma-extractor
[Proxmox](https://www.proxmox.com/de/) uses some self-built format to store VM
backups. It is implemented as a patch to their Qemu fork.
This is a tool to extract VMA backups. It is written in Python3.
current version: 1.1.1
* [source code](/files/vma-extractor/vma-extractor-1.1.1.tar.gz) ([SHA256](/files/vma-extractor/vma-extractor-1.1.1.tar.gz.sha256))
* [git](https://git.janw.name/vma-extractor.git/)

View file

@ -12,7 +12,7 @@ body {
background-size: cover;
background-attachment: fixed;
font-family: Catamaran, sans-serif;
max-width: 60em;
max-width: 40em;
margin: auto;
padding: 0.5rem;
hyphens: auto;
@ -40,8 +40,8 @@ header .subtitle {
.sub-container {
display: block;
color: rgb(186, 212, 186);
background: rgb(60, 65, 61);
color: rgb(31, 32, 31);
background: rgb(241, 243, 241);
padding: 0.75rem;
margin: 1rem;
border-radius: 0.5rem;
@ -50,8 +50,8 @@ header .subtitle {
}
.sub-container:hover {
color: rgb(215, 245, 215);
box-shadow: rgba(0, 0, 0, 0.2) 0 0.5rem 0.5rem;
color: rgb(54, 63, 54);
box-shadow: rgba(0, 0, 0, 0.2) 0 0.33rem 0.333rem;
}
.sub-container .img-container {