diff --git a/content/blog/2024-08-26-test-again.md b/content/blog/2024-08-26-test-again.md deleted file mode 100644 index cded6b4..0000000 --- a/content/blog/2024-08-26-test-again.md +++ /dev/null @@ -1,7 +0,0 @@ -+++ -title = "testing..again" -[taxonomies] - tags = ["test"] -+++ - -I just *keep* on testing...I guess I'm never happy 🧐 But! The end result will be just what I want. diff --git a/content/blog/2024-08-27-testing.md b/content/blog/2024-08-27-testing.md deleted file mode 100644 index 4cf90c9..0000000 --- a/content/blog/2024-08-27-testing.md +++ /dev/null @@ -1,11 +0,0 @@ -+++ -title = "testing" -[taxonomies] - tags = ["test"] -+++ - -testing! β™₯️ - -I guess the testing...worked? Essentially, it all worked out. I had some issues with `zola serve` not automatically rebuilding and reloading the page upon editing data. That was handled by replacing the root folder for this website to the root of my WSL (as found [here](https://github.com/getzola/zola/issues/1440). This is something of a problem, as it would be great to test out any edits locally and then (maybe with a git hook) push a commit Γ‘nd sync the updated files to my server. But of course, we can't have everything, can we! - -Another thing that bothers me is that I found a solution to a 'bug', but I don't understand the solution. After writing some initial posts, I started to wonder how the base HTML pages work together with these Markdown files to produce the actual statically generated website pages. The syntax looks similar to Jinja, which I am sort of used to using in one of my Python projects. But for the life of me, I couldn't get the actual HTML (which would show some metadata like a date and author above a post like this one), to show up. Then I started looking at the Github-folder for this theme and git cloned that repo and whaddayaknow: that clone **does** produce the expected HTML! I compared files, even diffed some, to understand what I was missing in my files or folder structure. In the end I couldn't find it, so I simply copy and pasted the files. And of course, it worked immediately. Sigh. Again: we can't have everything. But! We do have emojis. So. That's something!πŸͺ…πŸŒŸπŸ€£πŸ˜‰πŸ™ƒ diff --git a/content/blog/2024-08-28-practical-malware-analysis.md b/content/blog/2024-08-28-practical-malware-analysis.md deleted file mode 100644 index 5078d12..0000000 --- a/content/blog/2024-08-28-practical-malware-analysis.md +++ /dev/null @@ -1,23 +0,0 @@ -+++ -title = "I want to learn malware analysis (again)" -[taxonomies] - tags = ['malware analysis', 'programming', 'reverse engineering'] -+++ - -The heading says it all: I *really* want to learn malware analysis. Ever since I finalized the [Practical Malware Analysis & Triage](https://academy.tcm-sec.com/p/practical-malware-analysis-triage) course by [TCM Security](https://academy.tcm-sec.com/), I was hooked. I πŸ’šlovedπŸ’š the entire course, especially diving deep into binaries, (trying) reverse engineering, debugging. I went through all the material, did the labs and wrote up a report, a (very shallow) static and dynamic analysis of a WannaCry-sample. I found my niche (or so I thought...) - -## Rabbit holes - -One thing that bothered me throughout the course, was the lack of direction and stable ground when investigating and debugging binaries. I found myself stuck reverse engineering functions that were not user written code (C runtime for example). I got close to a particularly interesting part, stepping into and over functions, all to ultimately never reach that goal of finding a specific return value or determining a critical execution flow junction. So I thought to myself: what's the best way to learn how programs work, and flip them inside out? By building them myself! With that motivation, I dove deep back into Python 🐍, thinking, this will be a good starting ground to hop over to C πŸ–₯️ later. But...I think I got stuck at the first step! πŸ›‘ Over the last year, I got really hooked on programming. Some of the stuff I (partially) made: - - * A [`Flask`](https://flask.palletsprojects.com/en/3.0.x/) website to look up individual URLs, websites, IP addresses and email addresses for general security analysis purposes. [(Code and screenshots here)](https://code.joostagterhoek.nl/joost/flask-soc-site). - * A command-line interface tool that does the same, without the upload feature. I still need to add relevant emphasis on certain values and legend explanations. The tables are drawn with the [`rich`](https://rich.readthedocs.io/en/stable/introduction.html) module. [(Code and screenshots here)](https://code.joostagterhoek.nl/joost/cli-lookup) - * Finally, the same idea, now in a [`Tkinter`](https://docs.python.org/3/library/tkinter.html#module-tkinter) GUI app. I'm currently reimplementing the basically functioning app into classes for the main app and the frames, which is proving quite challenging. ([Code and screenshots here](https://code.joostagterhoek.nl/joost/gui-host-lookup)) - -## Refocused (with more experience) - -Trying to get back into malware analysis, malware study in general, has been really difficult for the past couple of weeks: the Practical Malware Analysis-book I was working with feels entirely foreign (I also can't get the labs to properly function, as it's all Windows XP-based and the executables don't do what the book says). After some frustrated attempts, I will now refocus on my two main interests in the field of malware: developing πŸ—οΈ and reverse engineering πŸ–₯️ . - -Developing I hope to do with my brand-new lifetime access to [Maldev Academy](https://maldevacademy.com). Reverse engineering by reading and practicing along with the (so far very practical) book [Practical Reverse Engineering: x86, x64, ARM, Windows Kernel, Reversing Tools, and Obfuscation](https://www.amazon.com/Practical-Reverse-Engineering-Reversing-Obfuscation/dp/1118787315). I hope to post any notes or blog posts about my progress here. - - diff --git a/content/blog/2024-09-08-sync-working.md b/content/blog/2024-09-08-sync-working.md deleted file mode 100644 index 766bda7..0000000 --- a/content/blog/2024-09-08-sync-working.md +++ /dev/null @@ -1,17 +0,0 @@ -+++ -title = "syncing works" -[taxonomies] - tags = ["self-hosting", "zola", "automation", "systemd"] -+++ - -I am quite 🀩 ecstatic 🀩: I got a seamless sync working between my local Git-controlled site content and my server! The way I did it: - -1. use rsync to sync local files to the server in a normal user-owned folder -2. setup another rsync-script owned by the `zola` user on the server -3. create a `systemd` unit path and service that syncs these files with the proper ownership to the folders where the `zola` service watches for changes -4. πŸ’Έ profit! - -Online resources that helped me with this: - -- [Using systemd Path Units to Monitor Files and Directories](https://www.putorius.net/systemd-path-units.html) -- [How to run systemd service as specific user and group in Linux](https://www.golinuxcloud.com/run-systemd-service-specific-user-group-linux/) diff --git a/content/blog/2024-09-08-testing-differentiated-systemd-paths.md b/content/blog/2024-09-08-testing-differentiated-systemd-paths.md deleted file mode 100644 index 188c0a0..0000000 --- a/content/blog/2024-09-08-testing-differentiated-systemd-paths.md +++ /dev/null @@ -1,7 +0,0 @@ -+++ -title = 'testing differentiated systemd paths' -[taxonomies] - tags = ['self-hosting', 'zola', 'systemd'] -+++ - -Some testing 🀣 diff --git a/content/blog/2024-09-08-trying-out-a-different-theme.md b/content/blog/2024-09-08-trying-out-a-different-theme.md deleted file mode 100644 index 071129f..0000000 --- a/content/blog/2024-09-08-trying-out-a-different-theme.md +++ /dev/null @@ -1,23 +0,0 @@ -+++ -title = "trying out a different theme" -[taxonomies] - tags = ['self-hosting', 'zola', 'portfolio'] -+++ - -## Portfolio - -While the [seamless sync](./2024-09-08-sync-working.md) is working great, this immediately got me thinking whether this test website is already good enough to replace my current [main website](https://joostagterhoek.nl). - -But, I still need to something quite important: a place for my projects 🏠! The intention of this website and pretty much my entire self-hosted online presence is to showcase what I am working on, what I want to learn and what's keeping me busy πŸ–±οΈ. - -I think it shouldn't be *too* hard to get a portfolio or projects page or pages running, **but** it would distract from actually working on these projects or thinking how to best showcase them. So, instead... ❓ - -## Switching themes - -I will try out some themes! πŸ–ŒοΈ A fresh coat of paint never hurt anyone. I have already been looking on the [Zola themes](https://www.getzola.org/themes/) page and one that immediately caught my eye was [apollo](https://www.getzola.org/themes/apollo/). - -![apollo-screenshot-from-github-repo](https://github.com/not-matthias/apollo/blob/main/screenshot-dark.png?raw=true) - -It's a nice, neat and minimal theme, with support for [blog posts](https://not-matthias.github.io/apollo/posts), [projects](https://not-matthias.github.io/apollo/projects/) and a clean [tags](https://not-matthias.github.io/apollo/tags/) overview. As I already have `zola` installed locally, I will be trying it out in the coming days to see if it would fit my needs βœ”οΈ. If so, I would be happy to get it going on this test website or maybe even immediately to my main domain (I am not the most patient person πŸ•°οΈ) - - diff --git a/static/click.ogg b/static/click.ogg deleted file mode 100644 index f9c6dc0..0000000 Binary files a/static/click.ogg and /dev/null differ diff --git a/static/css/style.css b/static/css/style.css deleted file mode 100644 index 85c84ac..0000000 --- a/static/css/style.css +++ /dev/null @@ -1,105 +0,0 @@ -#nav-bar { - padding: .625rem 0 0 0; - display: flex; - flex-direction: row; - gap: .25rem; - flex-wrap: wrap; - justify-content: flex-end; - align-items: center; - align-content: flex-end -} - -#footer-container { - display: flex; - flex-wrap: wrap; - justify-content: space-between; - align-items: center; -} - -.accent-data { - color: var(--accent); -} - -.theme-transition { - transition: color 0.3s ease, background-color 0.3s ease; -} - -.tags-data { - display: flex; - flex-direction: column; - flex-wrap: wrap; - justify-content: flex-end; - align-items: flex-start; - align-content: flex-end -} - -.title-list li { - margin-bottom: .375rem; -} - -/* icons settings */ -.icons { - width: 1.3rem; - height: 1.3rem; - aspect-ratio: 1/1; - display: inline-block; - vertical-align: middle; - color: var(--text); - fill: var(--text); - background-color: transparent; - cursor: pointer; -} - -.icons:hover { - background-color: transparent; - color: var(--accent); -} - -/* footnotes */ -.footnote-definition { - margin: 0 0 0 .125rem; -} - -.footnote-definition-label { - color: var(--accent); -} - -.footnote-definition p { - display: inline; - margin: .625rem 0 0 .625rem; -} - -/* general classes */ -.no-style { - padding: 0; - margin: 0; - border: none; - border-radius: 0 -} - -.no-style:hover { - background-color: transparent; - color: var(--accent); -} - -.center { - text-align: center; -} - -.center img { - display: block; - margin: 1rem auto; -} - -.float-right { - float: right -} - -.float-left { - float: left -} - -/* shortcodes css */ -.webring { - margin: .375rem; -} \ No newline at end of file diff --git a/static/favicon.ico b/static/favicon.ico deleted file mode 100644 index 7eb16ea..0000000 Binary files a/static/favicon.ico and /dev/null differ diff --git a/static/js/script.js b/static/js/script.js deleted file mode 100644 index 298b900..0000000 --- a/static/js/script.js +++ /dev/null @@ -1,49 +0,0 @@ -const toggleButton = document.getElementById('theme-toggle'); -const themeIcon = document.getElementById('theme-icon'); -const themeSound = document.getElementById('theme-sound'); - -// Function to update the theme icon based on the current theme -const updateThemeIcon = (isDarkMode) => { - const themeMode = isDarkMode ? 'darkMode' : 'lightMode'; - const iconPath = themeIcon.querySelector('use').getAttribute('href').replace(/#.*$/, `#${themeMode}`); - themeIcon.querySelector('use').setAttribute('href', iconPath); -}; - -// Function to update the theme based on the current mode -const updateTheme = (isDarkMode) => { - const theme = isDarkMode ? 'dark' : 'light'; - document.documentElement.setAttribute('data-theme', theme); - updateThemeIcon(isDarkMode); -}; - -// Function to toggle the theme -const toggleTheme = () => { - const isDarkMode = toggleButton.checked; - updateTheme(isDarkMode); - themeSound.play(); - localStorage.setItem('theme', isDarkMode ? 'dark' : 'light'); - - // Add transition class to body for smooth transition - document.body.classList.add('theme-transition'); - setTimeout(() => { - document.body.classList.remove('theme-transition'); - }, 300); -}; - -// Event listener for theme toggle -toggleButton.addEventListener('change', toggleTheme); - -// Function to initialize the theme based on the stored preference -const initializeTheme = () => { - const storedTheme = localStorage.getItem('theme'); - const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches; - const isDarkMode = storedTheme === 'dark' || (!storedTheme && prefersDark); - toggleButton.checked = isDarkMode; - updateTheme(isDarkMode); -}; - -// Initialize the theme -initializeTheme(); - -// Listen for changes in system preference -window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', initializeTheme); diff --git a/templates/blog-page.html b/templates/blog-page.html deleted file mode 100644 index 658c41e..0000000 --- a/templates/blog-page.html +++ /dev/null @@ -1,47 +0,0 @@ -{% extends "base.html" %} - -{% block content %} -
../{{ page.slug }}
- -{% if config.extra.author and config.extra.display_author == true %} - -{% endif %} -

{{ page.title }}

- -{% if page.toc and page.extra.toc %} -

Table of contents

- -{% endif %} - -{{ page.content | safe }} - -

- {% if page.taxonomies.tags %} - {% for tag in page.taxonomies.tags %} - /{{ tag }}/ - {% endfor %} - {% endif %} -

-{% endblock content %} \ No newline at end of file diff --git a/templates/footer.html b/templates/footer.html deleted file mode 100644 index a17bcfa..0000000 --- a/templates/footer.html +++ /dev/null @@ -1,23 +0,0 @@ -
- diff --git a/templates/head.html b/templates/head.html deleted file mode 100644 index ab47371..0000000 --- a/templates/head.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - -{% if page.title %} -{% set title = page.title %} -{% elif section.title %} -{% set title = section.title %} -{% elif config.title %} -{% set title = config.title %} -{% endif %} -{% if page.extra.author %} -{% set author = page.extra.author %} -{% elif section.extra.author %} -{% set author = section.extra.author %} -{% elif config.extra.author %} -{% set author = config.extra.author %} -{% endif %} -{% if page.description %} -{% set description = page.description | truncate(length=150) %} -{% elif section.description %} -{% set description = section.description | truncate(length=150) %} -{% elif config.description %} -{% set description = config.description | truncate(length=150) %} -{% endif %} -{% if page.extra.image %} -{% set image = get_url(path=page.extra.image, trailing_slash=false) %} -{% elif section.extra.image %} -{% set image = get_url(path=section.extra.image, trailing_slash=false) %} -{% elif config.extra.favicon %} -{% set image = get_url(path=config.extra.favicon, trailing_slash=false) %} -{% endif %} -{% if page.permalink %} -{% set url = page.permalink %} -{% elif section.permalink %} -{% set url = section.permalink %} -{% elif config.base_url %} -{% set url = config.base_url %} -{% endif %} -{% if title %} -{{ title }} -{% endif %} -{% block metatags %} -{% if title %} - -{% endif %} -{% if author %} - -{% endif %} -{% if description %} - -{% endif %} - - -{% if title %} - -{% endif %} -{% if title %} - -{% endif %} -{% if description %} - -{% endif %} -{% if image %} - -{% endif %} -{% set twitter_card = config.extra.twitter_card | default(value=true) %} -{% if twitter_card != false %} - - -{% if title %} - -{% endif %} -{% if description %} - -{% endif %} -{% if image %} - -{% endif %} -{% endif %} - -{% if image %} - -{% endif %} -{% endblock metatags %} -{% if config.generate_feeds %} -{% block feed %} - -{% endblock feed %} -{% endif %} -{% block css %} - - - -{% endblock css %} - - diff --git a/templates/header.html b/templates/header.html deleted file mode 100644 index 3109102..0000000 --- a/templates/header.html +++ /dev/null @@ -1,23 +0,0 @@ -{% set current_lang = config.default_language %} -{% if page %} - {% set current_lang = page.lang %} -{% elif section %} - {% set current_lang = section.lang %} -{% endif %} -{% if config.extra.header_nav %} - -{% endif %} diff --git a/templates/shortcodes/img.html b/templates/shortcodes/img.html deleted file mode 100644 index 9bd9616..0000000 --- a/templates/shortcodes/img.html +++ /dev/null @@ -1,4 +0,0 @@ -
- - {% if caption %}
{{caption}}
{% endif %} -
\ No newline at end of file diff --git a/templates/shortcodes/mark.html b/templates/shortcodes/mark.html deleted file mode 100644 index 3a6ee6e..0000000 --- a/templates/shortcodes/mark.html +++ /dev/null @@ -1 +0,0 @@ -{{content}} \ No newline at end of file diff --git a/templates/shortcodes/webring.html b/templates/shortcodes/webring.html deleted file mode 100644 index c59ed94..0000000 --- a/templates/shortcodes/webring.html +++ /dev/null @@ -1,4 +0,0 @@ - - -{{webringName}} - \ No newline at end of file diff --git a/templates/shortcodes/youtube.html b/templates/shortcodes/youtube.html deleted file mode 100644 index abc23c7..0000000 --- a/templates/shortcodes/youtube.html +++ /dev/null @@ -1,9 +0,0 @@ -
- -
\ No newline at end of file diff --git a/templates/tags/list.html b/templates/tags/list.html deleted file mode 100644 index 662769e..0000000 --- a/templates/tags/list.html +++ /dev/null @@ -1,10 +0,0 @@ -{% extends "base.html" %} - -{% block content %} -

{{ taxonomy.name }}

-

-{% for term in terms %} -#{{ term.name }}[{{ term.pages | length }}] -{% endfor %} -

-{% endblock content %} \ No newline at end of file diff --git a/templates/tags/single.html b/templates/tags/single.html deleted file mode 100644 index e143303..0000000 --- a/templates/tags/single.html +++ /dev/null @@ -1,20 +0,0 @@ -{% extends "base.html" %} - -{% block content %} -

{{ term.name }}

-{% if paginator %} -{% set pages = paginator.pages %} -{% else %} -{% set pages = term.pages %} -{% endif %} - -{% if paginator %} -

{% if paginator.previous %}<< First < Previous{% endif %} [{{ paginator.current_index }}/{{ paginator.number_pagers }}] {% if paginator.next %}Next > Last >>{% endif %}

-{% endif %} -{% endblock content %} \ No newline at end of file