+33
-538
Cargo.lock
+33
-538
Cargo.lock
·········································································································
+4
-7
Cargo.toml
+4
-7
Cargo.toml
······
+51
README.md
+51
README.md
···+After struggling with rewriting personnal website in a myriad of ways, all in some way unsatisfying,+Heavily inspired by [Saait](https://codemadness.org/git/saait/), since that is what I have been using previously.+This will create the folder `output` then you can sync to your vpc, or however you serve stataic files.+The posts are taken from `posts/` folder, are structured as markdown files, with a front matter in yaml for the date, and title of the post.+3. Obtain, legally or illegaly, by any means necessary, 2 (two) seasons of Pantheon, created by Craig Silverstein based on short stories by Ken Liu.+Additional pages such as `about` is also taken from there, however you could modify the about template in `templates` folder.+[Askama](https://github.com/djc/askama) is a rendering engine based on Jinja, so it is rather straight forward to use,+I have not yet integrated htmx into is, for faster loads of the post body,but that's for the future (also I hate js).
+7
content/pages/about.md
+7
content/pages/about.md
+14
content/posts/000-genesis.md
+14
content/posts/000-genesis.md
···
+11
content/posts/001-bash_blogger.md
+11
content/posts/001-bash_blogger.md
···+Since updating this website with Saait, I have decided to create a tool to streamline page creation from the terminal.+Inspired by [bash_blog](https://github.com/j0m/bash_blog) and [bashblog](https://github.com/cfenollosa/bashblog) especially bash was chosen.
+32
content/posts/002-services.md
+32
content/posts/002-services.md
···+An [Etebase](https://etebase.technoduck.me) instance for syncing my tasks, to-do's and contacts between devices.+[Grocy](https://grocy.technoduck.me) instance for keeping track of food and grocery lists ( and literally anything else in your house including batteris in devices? ) it's really cool give it a check.+A [wikimedia](https://wiki.cold-metal.technoduck.me) instance running for a friend for categorizing all the lore of the world that is being created for a soft fiction story.+Work in progress of a [website](https://wip.technoduck.me) I am making for a photographer/photography business.
+41
content/posts/003-led_hoop.md
+41
content/posts/003-led_hoop.md
···+Inspired by the [industrial piercing](https://mitxela.com/projects/scaffold) and the electronics that went into it, I though if other pieces of jewelry can be made with electronics (they can, it was specifically a question if my measly hands could craft them).+Since for the first time, I didn't want to experiment with absolute microscopic sizes, I decided that a 4 cm hoop was an adequate project to attempt.+An Attiny 24/44/84A can be used, I went with a -M variant, since it is slightly larger then the -MM variant, by a whole mm, which I assume will be easier to solder.+The test version comes with ISP pins for debugging and programming the chip when it's already installed.+0603 LED's were chosen for the same reason, they are small enough to be not that noticeable, but large enough to be not an incredible pain to work with.+It looked and sounded fun, my only previous projects related to PCB production before this was edition a split [Sweep](https://github.com/davidphilipbarr/Sweep) keyboard.+You can take your chance and go to [the git repository](https://git.technoduck.me/technoduck/led_hoop) for the project, `git pull`, and try your own luck.
+16
content/posts/004-pantheon.md
+16
content/posts/004-pantheon.md
···+3. Obtain, legally or illegaly, by any means necessary, 2 (two) seasons of Pantheon, created by Craig Silverstein based on short stories by Ken Liu.
+106
content/posts/005-regenesis.md
+106
content/posts/005-regenesis.md
···+This time inspied by [this article](https://blog.transrights.art/blogs/2024_Screw-Frameworks-New-Site-2),+[theprimeagen](https://www.youtube.com/watch?v=rcZSOLAI1lM), and everpresent desire to rewrite everything in Rust,+Even scaling down from `axum` to `tiny_http`, it doesn't change the binary size, and because of the limited resources and location of the VPS,+Short of rewriting it all in [Yew](yew.rs) and loading the wasm as a SPA (which comes with it's own complexity) loading times would not improve.+//TODO: use some enum for pages, with derive as EnumString, so new pages can be added simply by adding a template.+std::fs::write(format!("{output_path}/index.html"), handlers::index().as_bytes()).expect("Couldnt write index file");+std::fs::write(format!("{output_path}/about.html"), handlers::about().as_bytes()).expect("Couldnt write about file");+std::fs::write(format!("{output_path}/404.html"), handlers::not_found().as_bytes()).expect("Couldnt write 404 file");+let filename = entry.file_name().into_string().unwrap().split(".").collect::<Vec<_>>()[0].to_string();+fs::write(format!("{output_path}/blog/{filename}.html"), handlers::blog(filename).as_bytes()).expect("Couldnt write blog entry");+Built for release profile, binary is just 3.1M (majority of it is syntact), and produces a output folder with it's contents in a rather pleasant amount of time.
+90
content/posts/006-tangled.md
+90
content/posts/006-tangled.md
···+Until recently the main one being [Forgejo](https://forgejo.org/), with utilization of ActivityPub, the driving force behind Mastodon, Pleroma, and the like, as communication protocol.+Forgejo is a community maintained fork of Gitea, and for good reason and with good effect. It allowed them to while maintaining some compatibility, but also go into a radically different direction then Gitea could.+A consequence of being a fork of Gitea is well, at core being a git forge designed for communities and not individuals.+Frogejo my beloved, always will be. Its delightful to work with, its easy to host and run, its dead easy to update (don't forget breaking config changes), action runners are easy to setup and use, and the whole thing is easy to manage.+That all however comes at a cost of a whole-ass web-server running all the time, with a postgres db running in the background where your repositories are actually kept.+At scale its well, the best case scenario. But we aren't talking about the best case scenario we are talking about 1 (one) idiot (big one) running it for personal projects.+Its not useless overhead, but having a whole gig of memory on my poor 2 gig VPS taken up by a git forge I don't use even a 3rd of services of is a bit too much. (also cant federate just yet).+[git-send-mail](https://git-scm.com/docs/git-send-email), the most federalized mode of collaboration in the world, used to work on the Linux kernel, arguably? largest community project right now.+It is flexible, infinitely customizable for both you the user and the recipient, and requires no account other then a single (1) email address I hope everyone has.+But like IRC chatrooms, it is realistically used by far not all even amongst developers, and is more or less inaccessible to people new to the whole git thing.+[Radicle](https://radicle.xyz/), fully P2P, custom communication protocol, similar system that all nodes are viewable from the central website, but there is no central authority for what the repo state is, it is local first.+Really interesting, **written in rust**, and will get a good amount of attention from me because well it's pretty cool. To collaborate in the network, like with the Tor network, from which it drew heavy inspiration as I understand (again, really cool),+one has to run their own node. Which isn't ideal always for, same issues as before, beginners (although getting to understand such things one could argue is a worthy and formative trial by fire, and should be done).+I will let them make [their own case](https://blog.tangled.sh/intro), in a rather short and sweet introduction.+To collaborate, one requires a Bluesky account. More precisely an account in the AT Protocol network, but I digress.+Repositories are hosted on **knots**, headless servers that behave very much like git-daemons, with repositories being hosted in bare repos.+There is a central knot managed by the tangled team, `knot.tangled.sh`, on which anyone can make a repo, or if you are authorized with other knots, hosted by anyone, you can author repos there.+All of that, can be viewed on centrally in the appview hosted by tangled.sh team at, you guessed it, [tangled.sh](https://tangled.sh).+(in theory there can be other appview, the same way as there are alternative clients for bsky.app, there could be alternative appviews for tangled, with the same underlying content).+So, account creation is not complex, hosting your own nodes is not a requirement, it is linked to a social network, which could be argued to be excessive, but you can create alternative accounts if you don't want your code to be associated with your public activity (or the other way around).+Anyway gotta get now `git.technoduck.me` to redirect to my git profile on tangled, which should be [https://tangled.sh/@technoduck.me](https://tangled.sh/@technoduck.me).
-14
posts/000-genesis.md
-14
posts/000-genesis.md
···
-11
posts/001-bash_blogger.md
-11
posts/001-bash_blogger.md
···-Since updating this website with Saait, I have decided to create a tool to streamline page creation from the terminal.-Inspired by [bash_blog](https://github.com/j0m/bash_blog) and [bashblog](https://github.com/cfenollosa/bashblog) especially bash was chosen.
-32
posts/002-services.md
-32
posts/002-services.md
···-An [Etebase](https://etebase.technoduck.me) instance for syncing my tasks, to-do's and contacts between devices.-[Grocy](https://grocy.technoduck.me) instance for keeping track of food and grocery lists ( and literally anything else in your house including batteris in devices? ) it's really cool give it a check.-A [wikimedia](https://wiki.cold-metal.technoduck.me) instance running for a friend for categorizing all the lore of the world that is being created for a soft fiction story.-Work in progress of a [website](https://wip.technoduck.me) I am making for a photographer/photography business.
-41
posts/003-led_hoop.md
-41
posts/003-led_hoop.md
···-Inspired by the [industrial piercing](https://mitxela.com/projects/scaffold) and the electronics that went into it, I though if other pieces of jewelry can be made with electronics (they can, it was specifically a question if my measly hands could craft them).-Since for the first time, I didn't want to experiment with absolute microscopic sizes, I decided that a 4 cm hoop was an adequate project to attempt.-An Attiny 24/44/84A can be used, I went with a -M variant, since it is slightly larger then the -MM variant, by a whole mm, which I assume will be easier to solder.-The test version comes with ISP pins for debugging and programming the chip when it's already installed.-0603 LED's were chosen for the same reason, they are small enough to be not that noticeable, but large enough to be not an incredible pain to work with.-It looked and sounded fun, my only previous projects related to PCB production before this was edition a split [Sweep](https://github.com/davidphilipbarr/Sweep) keyboard.-You can take your chance and go to [the git repository](https://git.technoduck.me/technoduck/led_hoop) for the project, `git pull`, and try your own luck.
-16
posts/004-pantheon.md
-16
posts/004-pantheon.md
···-3. Obtain, legally or illegaly, by any means necessary, 2 (two) seasons of Pantheon, created by Craig Silverstein based on short stories by Ken Liu.
-36
posts/005-regenesis.md
-36
posts/005-regenesis.md
···-This time inspied by [this article](https://blog.transrights.art/blogs/2024_Screw-Frameworks-New-Site-2),-[theprimeagen](https://www.youtube.com/watch?v=rcZSOLAI1lM), and everpresent desire to rewrite everything in Rust,
+4
-5
src/blog_entries.rs
+4
-5
src/blog_entries.rs
······
+31
-18
src/handlers.rs
+31
-18
src/handlers.rs
···+let about_markdown = markdown_parser::read_file("content/pages/about.md").expect("Could no find about.md file in content/pages/ folder");
+59
-15
src/main.rs
+59
-15
src/main.rs
······+write(format!("{output_path}/index.html"), handlers::index().as_bytes()).expect("Couldnt write index file");+write(format!("{output_path}/about.html"), handlers::about().as_bytes()).expect("Couldnt write about file");+write(format!("{output_path}/404.html"), handlers::not_found().as_bytes()).expect("Couldnt write 404 file");+let filename = entry.file_name().into_string().unwrap().split(".").collect::<Vec<_>>()[0].to_string();+write(format!("{output_path}/blog/{filename}.html"), handlers::blog(filename).as_bytes()).expect("Couldnt write blog entry");
+6
-1
src/rand_quote.rs
+6
-1
src/rand_quote.rs
······"Prometheus they say brought gods fire down to man and we've caught it tamed it trained it since our history began.",-"Oh, so, wenn PETER PARKER eine Reizรผberflutung hat, dann sind es \"Spidey-Sinne\", aber wenn ich es tue, ICH HABE AUTISM.",+"If we want the rewards of being loved we have to submit to the mortifying ordeal of being known."
-4
templates/about.html
-4
templates/about.html
+4
-4
templates/layout.html
+4
-4
templates/layout.html
······+<a href="https://tangled.sh/@technoduck.me" title="Git repository with some of my projects">Git</a> |···