diff --git a/config/_default/hugo.toml b/config/_default/hugo.toml index c5cebeb..d30f5e6 100755 --- a/config/_default/hugo.toml +++ b/config/_default/hugo.toml @@ -1,9 +1,9 @@ ######################## default configuration #################### -baseURL = "https://demo.gethugothemes.com/professors/site/" -title = "Professors - Personal Portfolio Theme" +baseURL = "http://alpin.sbs/" +title = "Joren's Site" theme = ["professors-hugo"] # Default time zone for time stamps; use any valid tz database name: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List -timeZone = "America/New_York" +timeZone = "Europe/Brussels" # post pagination pagination.pagerSize = 6 # see https://gohugo.io/extras/pagination/ # post excerpt diff --git a/config/_default/params.toml b/config/_default/params.toml index ee2fc7c..51422b4 100755 --- a/config/_default/params.toml +++ b/config/_default/params.toml @@ -35,25 +35,15 @@ image = "images/favicon.png" # this image social_enable = true social_title = "Social Links" -[[social]] -title = "facebook" -icon = "fa-brands fa-facebook" # fontawesome icon pack : https://fontawesome.com/icons/ -link = "https://www.facebook.com/" - [[social]] title = "twitter" -icon = "fa-brands fa-twitter" # fontawesome icon pack : https://fontawesome.com/icons/ -link = "https://www.twitter.com/" +icon = "fa-brands fa-github" # fontawesome icon pack : https://fontawesome.com/icons/ +link = "https://github.com/jorensc" [[social]] title = "linkedin" icon = "fa-brands fa-linkedin" # fontawesome icon pack : https://fontawesome.com/icons/ -link = "https://www.linkedin.com/" - -[[social]] -title = "instagram" -icon = "fa-brands fa-instagram" # fontawesome icon pack : https://fontawesome.com/icons/ -link = "https://www.instagram.com/" +link = "https://www.linkedin.com/in/jorenschipman/" # cookies # cookies module: https://github.com/gethugothemes/hugo-modules/tree/master/components/cookie-consent diff --git a/content/_index.md b/content/_index.md index 683a1ab..d3d066b 100644 --- a/content/_index.md +++ b/content/_index.md @@ -26,7 +26,7 @@ banner: enable: true label: "Download Resume" isDownloadable: true - link: "#?" + link: "http://cdn.alpin.sbs/resume.pdf" # skill diff --git a/content/blog/post-1.md b/content/blog/post-1.md index adcd495..9b7d9bd 100644 --- a/content/blog/post-1.md +++ b/content/blog/post-1.md @@ -3,7 +3,7 @@ title: "Cyber Defence on the Digital Frontline: A Mission with NATO" image: "images/blog/blog-1.jpg" date: "2025-05-13 00:00:00 +0000 UTC" description: "An inside look into Howest’s participation in NATO’s world-leading cyber defence exercise, Locked Shields." -categories: ["cybersecurity", "event recap"] +categories: ["cybersecurity", "event"] draft: false --- diff --git a/hugo_stats.json b/hugo_stats.json index dcd2c57..9b6ad26 100644 --- a/hugo_stats.json +++ b/hugo_stats.json @@ -4,7 +4,6 @@ "a", "article", "aside", - "base", "body", "br", "button", @@ -114,10 +113,9 @@ "fa-calendar-days", "fa-download", "fa-envelope", - "fa-facebook", "fa-folder-open", + "fa-github", "fa-graduation-cap", - "fa-instagram", "fa-linkedin", "fa-list-check", "fa-location-dot", @@ -127,7 +125,6 @@ "fa-screwdriver-wrench", "fa-shield-halved", "fa-solid", - "fa-twitter", "fa-user", "featured-image", "flex-column", diff --git a/public/404.html b/public/404.html index 6831647..24abdea 100644 --- a/public/404.html +++ b/public/404.html @@ -1,7 +1,7 @@ - + 404 Page not found @@ -28,11 +28,11 @@ - - - - - + + + + + @@ -41,7 +41,7 @@ - + @@ -70,7 +70,6 @@ - @@ -79,7 +78,7 @@ -Professors - Personal Portfolio Theme +Joren's Site @@ -154,8 +153,8 @@ - - + + @@ -179,13 +178,13 @@ - + - + - + @@ -266,7 +265,7 @@ - + @@ -295,27 +294,27 @@ @@ -327,29 +326,17 @@ @@ -376,7 +363,7 @@

404 Page Not Found!

- Back To Home
@@ -9186,7 +9173,7 @@ diff --git a/public/blog/index.html b/public/blog/index.html index c7d5e00..44dfd08 100644 --- a/public/blog/index.html +++ b/public/blog/index.html @@ -1,7 +1,7 @@ - + Recent Posts @@ -28,11 +28,11 @@ - - - - - + + + + + @@ -41,7 +41,7 @@ - + @@ -70,7 +70,6 @@ - @@ -156,8 +155,8 @@ - - + + @@ -184,7 +183,7 @@ - + @@ -268,7 +267,7 @@ - + @@ -297,27 +296,27 @@ @@ -329,29 +328,17 @@
@@ -390,7 +377,7 @@
- + @@ -470,31 +457,31 @@ Red Team Talk: Een Blik Achter de Schermen bij Offensive Security + width="1536" + height="1024" /> @@ -519,27 +506,27 @@ - Cybersecurity, + Cybersecurity, - Podcast, + Podcast, - Interview + Interview

- Red Team Talk: Een Blik Achter de Schermen bij Offensive Security + Red Team Talk: Een Blik Achter de Schermen bij Offensive Security

In deze aflevering van Red Team Talk spreken studenten Joren Schipman en Mattia …

- Read More + Read More
@@ -547,7 +534,7 @@
- + @@ -627,27 +614,27 @@ Cyber Defence on the Digital Frontline: A Mission with NATOCybersecurity, + Cybersecurity, - Event Recap + Event

- Cyber Defence on the Digital Frontline: A Mission with NATO + Cyber Defence on the Digital Frontline: A Mission with NATO

An inside look into Howest’s participation in NATO’s world-leading cyber defence …

- Read More + Read More
@@ -700,7 +687,7 @@
- + @@ -780,27 +767,27 @@ Reversing, Rebuilding, and Failing Better: My Cyber Security Challenge Belgium Qualifier ExperienceCybersecurity, + Cybersecurity, - CTF, + CTF, - Education + Education

- Reversing, Rebuilding, and Failing Better: My Cyber Security Challenge Belgium Qualifier Experience + Reversing, Rebuilding, and Failing Better: My Cyber Security Challenge Belgium Qualifier Experience

I tackled buffer overflows, reversed Android apps, cracked crypto puzzles, and …

- Read More + Read More
@@ -857,7 +844,7 @@
- + @@ -937,27 +924,27 @@ Securing Cyberspace: Belgian Cyber Command at HowestCybersecurity, + Cybersecurity, - Event, + Event, - Defense + Defense

- Securing Cyberspace: Belgian Cyber Command at Howest + Securing Cyberspace: Belgian Cyber Command at Howest

Colonel Gunther Godefridis of Belgian Cyber Command shares insights on cyber …

- Read More + Read More
@@ -9822,7 +9809,7 @@ diff --git a/public/blog/index.xml b/public/blog/index.xml index 82107d3..48d93fe 100644 --- a/public/blog/index.xml +++ b/public/blog/index.xml @@ -1,39 +1,39 @@ - Recent Posts on Professors - Personal Portfolio Theme - http://localhost:1313/professors/site/blog/ - Recent content in Recent Posts on Professors - Personal Portfolio Theme + Recent Posts on Joren's Site + http://localhost:1313/blog/ + Recent content in Recent Posts on Joren's Site Hugo en Tue, 20 May 2025 00:00:00 +0000 - + Red Team Talk: Een Blik Achter de Schermen bij Offensive Security - http://localhost:1313/professors/site/blog/post-4/ + http://localhost:1313/blog/post-4/ Tue, 20 May 2025 00:00:00 +0000 - http://localhost:1313/professors/site/blog/post-4/ + http://localhost:1313/blog/post-4/ <h1 id="red-team-talk-een-blik-achter-de-schermen-bij-offensive-security">Red Team Talk: Een Blik Achter de Schermen bij Offensive Security</h1> <p>In deze eerste aflevering van <strong>Red Team Talk</strong> nemen wij, Joren Schipman en Mattia Punjwani, studenten Cybersecurity aan Howest, jullie mee in een gesprek met <strong>Thomas Castronovo</strong>, ethical hacker en consultant bij Deloitte. Samen duiken we in de wereld van offensieve security, red teaming, en de realiteit van een carrière als pentester.</p> Cyber Defence on the Digital Frontline: A Mission with NATO - http://localhost:1313/professors/site/blog/post-1/ + http://localhost:1313/blog/post-1/ Tue, 13 May 2025 00:00:00 +0000 - http://localhost:1313/professors/site/blog/post-1/ + http://localhost:1313/blog/post-1/ <h1 id="cyber-defence-on-the-digital-frontline-a-mission-with-nato">Cyber Defence on the Digital Frontline: A Mission with NATO</h1> <h4 id="on-a-mission-with-nato-cyber-defence-on-the-frontline">On a Mission with NATO: Cyber Defence on the Frontline</h4> <p>Howest’s ongoing commitment to world-class cybersecurity training took center stage again as six lecturers from the Cyber Security program joined forces with experts from Latvia, Luxembourg and Belgium in one of NATO&rsquo;s most intensive simulations: the Locked Shields exercise, hosted by the Cooperative Cyber Defence Centre of Excellence (CCDCOE). Now in its fifth year of participation, the Howest team shared their firsthand experiences at a special evening talk at Howest Bruges.</p> Reversing, Rebuilding, and Failing Better: My Cyber Security Challenge Belgium Qualifier Experience - http://localhost:1313/professors/site/blog/post-2/ + http://localhost:1313/blog/post-2/ Sat, 15 Mar 2025 00:00:00 +0000 - http://localhost:1313/professors/site/blog/post-2/ + http://localhost:1313/blog/post-2/ <h1 id="reversing-rebuilding-and-failing-better-my-cyber-security-challenge-belgium-qualifier-experience">Reversing, Rebuilding, and Failing Better: My Cyber Security Challenge Belgium Qualifier Experience</h1> <p>On March 14 and 15, I joined the Cyber Security Challenge Belgium qualifiers with three teammates. For two days, we threw ourselves at CTF challenges covering binary exploitation, Android reversing, cryptography, and more.</p> Securing Cyberspace: Belgian Cyber Command at Howest - http://localhost:1313/professors/site/blog/post-3/ + http://localhost:1313/blog/post-3/ Tue, 12 Nov 2024 00:00:00 +0000 - http://localhost:1313/professors/site/blog/post-3/ + http://localhost:1313/blog/post-3/ <h1 id="securing-cyberspace-belgian-cyber-command-at-howest">Securing Cyberspace: Belgian Cyber Command at Howest</h1> <p>On November 12, we had the opportunity to attend a Tech&amp;Meet session unlike any other. The speaker was <strong>Colonel Gunther Godefridis</strong>, Director for Development &amp; Readiness at Belgian Cyber Command, and the topic: safeguarding our country in the digital domain.</p> diff --git a/public/blog/post-1/index.html b/public/blog/post-1/index.html index f84bee7..9e57b46 100644 --- a/public/blog/post-1/index.html +++ b/public/blog/post-1/index.html @@ -1,7 +1,7 @@ - + Cyber Defence on the Digital Frontline: A Mission with NATO @@ -28,11 +28,11 @@ - - - - - + + + + + @@ -41,7 +41,7 @@ - + @@ -70,7 +70,6 @@ - @@ -159,8 +158,8 @@ - - + + @@ -187,7 +186,7 @@ - + @@ -271,7 +270,7 @@ - + @@ -300,27 +299,27 @@ @@ -332,29 +331,17 @@ @@ -394,11 +381,11 @@ - Cybersecurity, + Cybersecurity, - Event Recap + Event @@ -487,27 +474,27 @@ Cyber Defence on the Digital Frontline: A Mission with NATO - if ('serviceWorker' in navigator){navigator.serviceWorker.register("/professors/site/service-worker.js");} + if ('serviceWorker' in navigator){navigator.serviceWorker.register("/service-worker.js");} diff --git a/public/blog/post-2/index.html b/public/blog/post-2/index.html index f1d94b8..3ce4c21 100644 --- a/public/blog/post-2/index.html +++ b/public/blog/post-2/index.html @@ -1,7 +1,7 @@ - + Reversing, Rebuilding, and Failing Better: My Cyber Security Challenge Belgium Qualifier Experience @@ -28,11 +28,11 @@ - - - - - + + + + + @@ -41,7 +41,7 @@ - + @@ -70,7 +70,6 @@ - @@ -159,8 +158,8 @@ - - + + @@ -187,7 +186,7 @@ - + @@ -271,7 +270,7 @@ - + @@ -300,27 +299,27 @@ @@ -332,29 +331,17 @@ @@ -394,15 +381,15 @@ - Cybersecurity, + Cybersecurity, - CTF, + CTF, - Education + Education @@ -491,27 +478,27 @@ Reversing, Rebuilding, and Failing Better: My Cyber Security Challenge Belgium Qualifier Experience + onerror="this.onerror='null';this.src='\/images\/blog\/post-2\/binexpl_hu_2b8858450dae90c.png'" />
Binary Exploitation Flag @@ -749,9 +736,9 @@ class="img img-fluid" width="860" height="304" - src="/professors/site/images/blog/post-2/ourencissec_hu_d55d42cf9aa95894.webp" + src="/images/blog/post-2/ourencissec_hu_d55d42cf9aa95894.webp" alt="alter-text" - onerror="this.onerror='null';this.src='\/professors\/site\/images\/blog\/post-2\/ourencissec_hu_12ab834545d390f3.png'" /> + onerror="this.onerror='null';this.src='\/images\/blog\/post-2\/ourencissec_hu_12ab834545d390f3.png'" />
Picture of the solution @@ -860,9 +847,9 @@ class="img img-fluid" width="841" height="244" - src="/professors/site/images/blog/post-2/infiniteluck_hu_953e025153d002b1.webp" + src="/images/blog/post-2/infiniteluck_hu_953e025153d002b1.webp" alt="alter-text" - onerror="this.onerror='null';this.src='\/professors\/site\/images\/blog\/post-2\/infiniteluck_hu_b9a0d6c771061779.png'" /> + onerror="this.onerror='null';this.src='\/images\/blog\/post-2\/infiniteluck_hu_b9a0d6c771061779.png'" />
Challange picture @@ -967,9 +954,9 @@ class="img img-fluid" width="638" height="196" - src="/professors/site/images/blog/post-2/infiniteluck_solved_hu_d93ed737be1e3c68.webp" + src="/images/blog/post-2/infiniteluck_solved_hu_d93ed737be1e3c68.webp" alt="alter-text" - onerror="this.onerror='null';this.src='\/professors\/site\/images\/blog\/post-2\/infiniteluck_solved_hu_a866f113a85dec5c.png'" /> + onerror="this.onerror='null';this.src='\/images\/blog\/post-2\/infiniteluck_solved_hu_a866f113a85dec5c.png'" />
Correct number order @@ -9821,7 +9808,7 @@ diff --git a/public/blog/post-3/index.html b/public/blog/post-3/index.html index 1240d76..a520490 100644 --- a/public/blog/post-3/index.html +++ b/public/blog/post-3/index.html @@ -1,7 +1,7 @@ - + Securing Cyberspace: Belgian Cyber Command at Howest @@ -28,11 +28,11 @@ - - - - - + + + + + @@ -41,7 +41,7 @@ - + @@ -70,7 +70,6 @@ - @@ -159,8 +158,8 @@ - - + + @@ -187,7 +186,7 @@ - + @@ -271,7 +270,7 @@ - + @@ -300,27 +299,27 @@ @@ -332,29 +331,17 @@ @@ -394,15 +381,15 @@ - Cybersecurity, + Cybersecurity, - Event, + Event, - Defense + Defense @@ -491,27 +478,27 @@ Securing Cyberspace: Belgian Cyber Command at Howest - if ('serviceWorker' in navigator){navigator.serviceWorker.register("/professors/site/service-worker.js");} + if ('serviceWorker' in navigator){navigator.serviceWorker.register("/service-worker.js");} diff --git a/public/blog/post-4/index.html b/public/blog/post-4/index.html index 69f669f..d98ca95 100644 --- a/public/blog/post-4/index.html +++ b/public/blog/post-4/index.html @@ -1,7 +1,7 @@ - + Red Team Talk: Een Blik Achter de Schermen bij Offensive Security @@ -28,11 +28,11 @@ - - - - - + + + + + @@ -41,7 +41,7 @@ - + @@ -70,7 +70,6 @@ - @@ -159,8 +158,8 @@ - - + + @@ -187,7 +186,7 @@ - + @@ -271,7 +270,7 @@ - + @@ -300,27 +299,27 @@ @@ -332,29 +331,17 @@ @@ -394,15 +381,15 @@ - Cybersecurity, + Cybersecurity, - Podcast, + Podcast, - Interview + Interview @@ -491,27 +478,27 @@ Red Team Talk: Een Blik Achter de Schermen bij Offensive Security - if ('serviceWorker' in navigator){navigator.serviceWorker.register("/professors/site/service-worker.js");} + if ('serviceWorker' in navigator){navigator.serviceWorker.register("/service-worker.js");} diff --git a/public/blog/post-5/index.html b/public/blog/post-5/index.html deleted file mode 100644 index aa751ac..0000000 --- a/public/blog/post-5/index.html +++ /dev/null @@ -1,9741 +0,0 @@ - - - - - - -variation of the ordinary lor - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -variation of the ordinary lor - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
-
- -

variation of the ordinary lor

- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - variation of the ordinary lor - - - - - - - - - - -
- - -
-

Here is example of hedings. You can use this heading by following markdownify rules. For example: use # for heading 1 and use ###### for heading 6.

-

Heading 1

-

Heading 2

-

Heading 3

-

Heading 4

-
Heading 5
-
Heading 6
-
-
Emphasis
-

Emphasis, aka italics, with asterisks or underscores.

-

Strong emphasis, aka bold, with asterisks or underscores.

-

Combined emphasis with asterisks and underscores.

-

Strikethrough uses two tildes. Scratch this.

-
- -

I’m an inline-style link

-

I’m an inline-style link with title

-

I’m a reference-style link

-

I’m a relative reference to a repository file

-

You can use numbers for reference-style link definitions

-

Or leave it empty and use the link text itself.

-

URLs and URLs in angle brackets will automatically get turned into links. -http://www.example.com or http://www.example.com and sometimes -example.com (but not on Github, for example).

-

Some text to show that the reference links can follow later.

-
-
Paragraph
-

Lorem ipsum dolor sit amet consectetur adipisicing elit. Quam nihil enim maxime corporis cumque totam aliquid nam sint inventore optio modi neque laborum officiis necessitatibus, facilis placeat pariatur! Voluptatem, sed harum pariatur adipisci voluptates voluptatum cumque, porro sint minima similique magni perferendis fuga! Optio vel ipsum excepturi tempore reiciendis id quidem? Vel in, doloribus debitis nesciunt fugit sequi magnam accusantium modi neque quis, vitae velit, pariatur harum autem a! Velit impedit atque maiores animi possimus asperiores natus repellendus excepturi sint architecto eligendi non, omnis nihil. Facilis, doloremque illum. Fugit optio laborum minus debitis natus illo perspiciatis corporis voluptatum rerum laboriosam.

-
-
Ordered List
-
    -
  1. List item
  2. -
  3. List item
  4. -
  5. List item
  6. -
  7. List item
  8. -
  9. List item
  10. -
-
-
Unordered List
-
    -
  • List item
  • -
  • List item
  • -
  • List item
  • -
  • List item
  • -
  • List item
  • -
-
-
Code and Syntax Highlighting
-

Inline code has back-ticks around it.

-
var s = "JavaScript syntax highlighting";
-alert(s);
-
s = "Python syntax highlighting"
-print s
-

-
Blockquote
-
-

This is a blockquote example.

-
-
Inline HTML
-

You can also use raw HTML in your Markdown, and it’ll mostly work pretty well.

-
-
Definition list
-
Is something people use sometimes.
-
Markdown in HTML
-
Does *not* work **very** well. Use HTML tags.
-
-
- - - - - - - -
-
- -

Note

-
-

This is a simple note

-
- - - - - - - - -
-
- -

Tip

-
-

This is a simple note

-
- - - - - - - - -
-
- - -

Info

-
-

This is a simple note

-
- - - - - - - - -
-
- -

Warning

-
-

This is a simple note

-
- -
-
Tables
-

Colons can be used to align columns.

- - - - - - - - - - - - - - - - - - - - - - - - - -
TablesAreCool
col 3 isright-aligned$1600
col 2 iscentered$12
zebra stripesare neat$1
-

There must be at least 3 dashes separating each header cell. -The outer pipes (|) are optional, and you don’t need to make the -raw Markdown line up prettily. You can also use inline Markdown.

- - - - - - - - - - - - - - - - - - - - -
MarkdownLessPretty
Stillrendersnicely
123
-
-
Image
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - alter-text - -
- an image caption -
-
- - - - - - - - - - - - - -
-
Youtube video
-
- -
- - -
-
-
-
-
-
- - -
- -
-
-
-
- -
-
-
-
- - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/blog/post-6/index.html b/public/blog/post-6/index.html deleted file mode 100644 index aa78bc4..0000000 --- a/public/blog/post-6/index.html +++ /dev/null @@ -1,9741 +0,0 @@ - - - - - - -Testing is a great thing - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Testing is a great thing - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
-
- -

Testing is a great thing

- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Testing is a great thing - - - - - - - - - - -
- - -
-

Here is example of hedings. You can use this heading by following markdownify rules. For example: use # for heading 1 and use ###### for heading 6.

-

Heading 1

-

Heading 2

-

Heading 3

-

Heading 4

-
Heading 5
-
Heading 6
-
-
Emphasis
-

Emphasis, aka italics, with asterisks or underscores.

-

Strong emphasis, aka bold, with asterisks or underscores.

-

Combined emphasis with asterisks and underscores.

-

Strikethrough uses two tildes. Scratch this.

-
- -

I’m an inline-style link

-

I’m an inline-style link with title

-

I’m a reference-style link

-

I’m a relative reference to a repository file

-

You can use numbers for reference-style link definitions

-

Or leave it empty and use the link text itself.

-

URLs and URLs in angle brackets will automatically get turned into links. -http://www.example.com or http://www.example.com and sometimes -example.com (but not on Github, for example).

-

Some text to show that the reference links can follow later.

-
-
Paragraph
-

Lorem ipsum dolor sit amet consectetur adipisicing elit. Quam nihil enim maxime corporis cumque totam aliquid nam sint inventore optio modi neque laborum officiis necessitatibus, facilis placeat pariatur! Voluptatem, sed harum pariatur adipisci voluptates voluptatum cumque, porro sint minima similique magni perferendis fuga! Optio vel ipsum excepturi tempore reiciendis id quidem? Vel in, doloribus debitis nesciunt fugit sequi magnam accusantium modi neque quis, vitae velit, pariatur harum autem a! Velit impedit atque maiores animi possimus asperiores natus repellendus excepturi sint architecto eligendi non, omnis nihil. Facilis, doloremque illum. Fugit optio laborum minus debitis natus illo perspiciatis corporis voluptatum rerum laboriosam.

-
-
Ordered List
-
    -
  1. List item
  2. -
  3. List item
  4. -
  5. List item
  6. -
  7. List item
  8. -
  9. List item
  10. -
-
-
Unordered List
-
    -
  • List item
  • -
  • List item
  • -
  • List item
  • -
  • List item
  • -
  • List item
  • -
-
-
Code and Syntax Highlighting
-

Inline code has back-ticks around it.

-
var s = "JavaScript syntax highlighting";
-alert(s);
-
s = "Python syntax highlighting"
-print s
-

-
Blockquote
-
-

This is a blockquote example.

-
-
Inline HTML
-

You can also use raw HTML in your Markdown, and it’ll mostly work pretty well.

-
-
Definition list
-
Is something people use sometimes.
-
Markdown in HTML
-
Does *not* work **very** well. Use HTML tags.
-
-
- - - - - - - -
-
- -

Note

-
-

This is a simple note

-
- - - - - - - - -
-
- -

Tip

-
-

This is a simple note

-
- - - - - - - - -
-
- - -

Info

-
-

This is a simple note

-
- - - - - - - - -
-
- -

Warning

-
-

This is a simple note

-
- -
-
Tables
-

Colons can be used to align columns.

- - - - - - - - - - - - - - - - - - - - - - - - - -
TablesAreCool
col 3 isright-aligned$1600
col 2 iscentered$12
zebra stripesare neat$1
-

There must be at least 3 dashes separating each header cell. -The outer pipes (|) are optional, and you don’t need to make the -raw Markdown line up prettily. You can also use inline Markdown.

- - - - - - - - - - - - - - - - - - - - -
MarkdownLessPretty
Stillrendersnicely
123
-
-
Image
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - alter-text - -
- an image caption -
-
- - - - - - - - - - - - - -
-
Youtube video
-
- -
- - -
-
-
-
-
-
- - -
- -
-
-
-
- -
-
-
-
- - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git "a/public/categories/\\cybersecurity-event-recap/index.xml" "b/public/categories/\\cybersecurity-event-recap/index.xml" deleted file mode 100644 index aa131d6..0000000 --- "a/public/categories/\\cybersecurity-event-recap/index.xml" +++ /dev/null @@ -1,11 +0,0 @@ - - - - \["Cybersecurity", "Event Recap"] on Professors - Personal Portfolio Theme - http://localhost:1313/professors/site/categories/%5Ccybersecurity-event-recap/ - Recent content in \["Cybersecurity", "Event Recap"] on Professors - Personal Portfolio Theme - Hugo - en - - - diff --git a/public/categories/book-rack/index.html b/public/categories/book-rack/index.html deleted file mode 100644 index 4c4bd77..0000000 --- a/public/categories/book-rack/index.html +++ /dev/null @@ -1,9470 +0,0 @@ - - - - - - -Book Rack - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Professors - Personal Portfolio Theme - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - -
-
-
-
-
- -

Category

- -

//Book Rack

-
-
- -
- -
- -
- -
- -
-
-
-
-
- - - - -
- -
-
-
-
- -
-
-
-
- - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/categories/book-rack/index.xml b/public/categories/book-rack/index.xml deleted file mode 100644 index 12fdcb7..0000000 --- a/public/categories/book-rack/index.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - Book Rack on Professors - Personal Portfolio Theme - http://192.168.90.54:1313/categories/book-rack/ - Recent content in Book Rack on Professors - Personal Portfolio Theme - Hugo - en - Thu, 06 Jan 2022 00:00:00 +0000 - - - Testing is a great thing - http://192.168.90.54:1313/blog/post-6/ - Thu, 06 Jan 2022 00:00:00 +0000 - http://192.168.90.54:1313/blog/post-6/ - <p>Here is example of hedings. You can use this heading by following markdownify rules. For example: use <code>#</code> for heading 1 and use <code>######</code> for heading 6.</p> - - - In publishing and graphic desi - http://192.168.90.54:1313/blog/post-3/ - Mon, 03 Jan 2022 00:00:00 +0000 - http://192.168.90.54:1313/blog/post-3/ - <p>Here is example of hedings. You can use this heading by following markdownify rules. For example: use <code>#</code> for heading 1 and use <code>######</code> for heading 6.</p> - - - diff --git a/public/categories/book/index.html b/public/categories/book/index.html deleted file mode 100644 index 2dbf4c7..0000000 --- a/public/categories/book/index.html +++ /dev/null @@ -1,9347 +0,0 @@ - - - - - - -Book - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Professors - Personal Portfolio Theme - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - -
-
-
-
-
- -

Category

- -

//Book

-
-
- -
- -
- -
-
-
-
-
- - - - -
- -
-
-
-
- -
-
-
-
- - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/categories/book/index.xml b/public/categories/book/index.xml deleted file mode 100644 index 89d0d55..0000000 --- a/public/categories/book/index.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Book on Professors - Personal Portfolio Theme - http://localhost:1313/professors/site/categories/book/ - Recent content in Book on Professors - Personal Portfolio Theme - Hugo - en - Tue, 13 May 2025 00:00:00 +0000 - - - On a Mission with NATO: Cyber Defence on the Frontline - http://localhost:1313/professors/site/blog/post-1/ - Tue, 13 May 2025 00:00:00 +0000 - http://localhost:1313/professors/site/blog/post-1/ - <p>Here is example of hedings. You can use this heading by following markdownify rules. For example: use <code>#</code> for heading 1 and use <code>######</code> for heading 6.</p> - - - diff --git a/public/categories/class-room/index.html b/public/categories/class-room/index.html deleted file mode 100644 index f01ddd0..0000000 --- a/public/categories/class-room/index.html +++ /dev/null @@ -1,9343 +0,0 @@ - - - - - - -Class Room - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Professors - Personal Portfolio Theme - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - -
-
-
-
-
- -

Category

- -

//Class Room

-
-
- -
- -
- -
-
-
-
-
- - - - -
- -
-
-
-
- -
-
-
-
- - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/categories/class-room/index.xml b/public/categories/class-room/index.xml deleted file mode 100644 index 0636a39..0000000 --- a/public/categories/class-room/index.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Class Room on Professors - Personal Portfolio Theme - http://192.168.90.54:1313/categories/class-room/ - Recent content in Class Room on Professors - Personal Portfolio Theme - Hugo - en - Tue, 04 Jan 2022 00:00:00 +0000 - - - Latter match class room - http://192.168.90.54:1313/blog/post-4/ - Tue, 04 Jan 2022 00:00:00 +0000 - http://192.168.90.54:1313/blog/post-4/ - <p>Here is example of hedings. You can use this heading by following markdownify rules. For example: use <code>#</code> for heading 1 and use <code>######</code> for heading 6.</p> - - - diff --git a/public/categories/ctf/index.html b/public/categories/ctf/index.html index aadfd24..285992d 100644 --- a/public/categories/ctf/index.html +++ b/public/categories/ctf/index.html @@ -1,7 +1,7 @@ - + CTF @@ -28,11 +28,11 @@ - - - - - + + + + + @@ -41,7 +41,7 @@ - + @@ -70,7 +70,6 @@ - @@ -79,7 +78,7 @@ -Professors - Personal Portfolio Theme +Joren's Site @@ -154,8 +153,8 @@ - - + + @@ -179,13 +178,13 @@ - + - + - + @@ -266,7 +265,7 @@ - + @@ -295,27 +294,27 @@ @@ -327,29 +326,17 @@ @@ -390,7 +377,7 @@
@@ -9355,7 +9342,7 @@ diff --git a/public/categories/ctf/index.xml b/public/categories/ctf/index.xml index 7fd20f5..78ca26e 100644 --- a/public/categories/ctf/index.xml +++ b/public/categories/ctf/index.xml @@ -1,18 +1,18 @@ - CTF on Professors - Personal Portfolio Theme - http://localhost:1313/professors/site/categories/ctf/ - Recent content in CTF on Professors - Personal Portfolio Theme + CTF on Joren's Site + http://localhost:1313/categories/ctf/ + Recent content in CTF on Joren's Site Hugo en Sat, 15 Mar 2025 00:00:00 +0000 - + Reversing, Rebuilding, and Failing Better: My Cyber Security Challenge Belgium Qualifier Experience - http://localhost:1313/professors/site/blog/post-2/ + http://localhost:1313/blog/post-2/ Sat, 15 Mar 2025 00:00:00 +0000 - http://localhost:1313/professors/site/blog/post-2/ + http://localhost:1313/blog/post-2/ <h1 id="reversing-rebuilding-and-failing-better-my-cyber-security-challenge-belgium-qualifier-experience">Reversing, Rebuilding, and Failing Better: My Cyber Security Challenge Belgium Qualifier Experience</h1> <p>On March 14 and 15, I joined the Cyber Security Challenge Belgium qualifiers with three teammates. For two days, we threw ourselves at CTF challenges covering binary exploitation, Android reversing, cryptography, and more.</p> diff --git a/public/categories/cybersecurity/index.html b/public/categories/cybersecurity/index.html index 8e42a09..92e9ce0 100644 --- a/public/categories/cybersecurity/index.html +++ b/public/categories/cybersecurity/index.html @@ -1,7 +1,7 @@ - + Cybersecurity @@ -28,11 +28,11 @@ - - - - - + + + + + @@ -41,7 +41,7 @@ - + @@ -70,7 +70,6 @@ - @@ -79,7 +78,7 @@ -Professors - Personal Portfolio Theme +Joren's Site @@ -154,8 +153,8 @@ - - + + @@ -179,13 +178,13 @@ - + - + - + @@ -266,7 +265,7 @@ - + @@ -295,27 +294,27 @@ @@ -327,29 +326,17 @@ @@ -390,7 +377,7 @@
@@ -547,7 +534,7 @@
@@ -700,7 +687,7 @@
@@ -857,7 +844,7 @@
@@ -9822,7 +9809,7 @@ diff --git a/public/categories/cybersecurity/index.xml b/public/categories/cybersecurity/index.xml index 302a9ca..8ebb37c 100644 --- a/public/categories/cybersecurity/index.xml +++ b/public/categories/cybersecurity/index.xml @@ -1,39 +1,39 @@ - Cybersecurity on Professors - Personal Portfolio Theme - http://localhost:1313/professors/site/categories/cybersecurity/ - Recent content in Cybersecurity on Professors - Personal Portfolio Theme + Cybersecurity on Joren's Site + http://localhost:1313/categories/cybersecurity/ + Recent content in Cybersecurity on Joren's Site Hugo en Tue, 20 May 2025 00:00:00 +0000 - + Red Team Talk: Een Blik Achter de Schermen bij Offensive Security - http://localhost:1313/professors/site/blog/post-4/ + http://localhost:1313/blog/post-4/ Tue, 20 May 2025 00:00:00 +0000 - http://localhost:1313/professors/site/blog/post-4/ + http://localhost:1313/blog/post-4/ <h1 id="red-team-talk-een-blik-achter-de-schermen-bij-offensive-security">Red Team Talk: Een Blik Achter de Schermen bij Offensive Security</h1> <p>In deze eerste aflevering van <strong>Red Team Talk</strong> nemen wij, Joren Schipman en Mattia Punjwani, studenten Cybersecurity aan Howest, jullie mee in een gesprek met <strong>Thomas Castronovo</strong>, ethical hacker en consultant bij Deloitte. Samen duiken we in de wereld van offensieve security, red teaming, en de realiteit van een carrière als pentester.</p> Cyber Defence on the Digital Frontline: A Mission with NATO - http://localhost:1313/professors/site/blog/post-1/ + http://localhost:1313/blog/post-1/ Tue, 13 May 2025 00:00:00 +0000 - http://localhost:1313/professors/site/blog/post-1/ + http://localhost:1313/blog/post-1/ <h1 id="cyber-defence-on-the-digital-frontline-a-mission-with-nato">Cyber Defence on the Digital Frontline: A Mission with NATO</h1> <h4 id="on-a-mission-with-nato-cyber-defence-on-the-frontline">On a Mission with NATO: Cyber Defence on the Frontline</h4> <p>Howest’s ongoing commitment to world-class cybersecurity training took center stage again as six lecturers from the Cyber Security program joined forces with experts from Latvia, Luxembourg and Belgium in one of NATO&rsquo;s most intensive simulations: the Locked Shields exercise, hosted by the Cooperative Cyber Defence Centre of Excellence (CCDCOE). Now in its fifth year of participation, the Howest team shared their firsthand experiences at a special evening talk at Howest Bruges.</p> Reversing, Rebuilding, and Failing Better: My Cyber Security Challenge Belgium Qualifier Experience - http://localhost:1313/professors/site/blog/post-2/ + http://localhost:1313/blog/post-2/ Sat, 15 Mar 2025 00:00:00 +0000 - http://localhost:1313/professors/site/blog/post-2/ + http://localhost:1313/blog/post-2/ <h1 id="reversing-rebuilding-and-failing-better-my-cyber-security-challenge-belgium-qualifier-experience">Reversing, Rebuilding, and Failing Better: My Cyber Security Challenge Belgium Qualifier Experience</h1> <p>On March 14 and 15, I joined the Cyber Security Challenge Belgium qualifiers with three teammates. For two days, we threw ourselves at CTF challenges covering binary exploitation, Android reversing, cryptography, and more.</p> Securing Cyberspace: Belgian Cyber Command at Howest - http://localhost:1313/professors/site/blog/post-3/ + http://localhost:1313/blog/post-3/ Tue, 12 Nov 2024 00:00:00 +0000 - http://localhost:1313/professors/site/blog/post-3/ + http://localhost:1313/blog/post-3/ <h1 id="securing-cyberspace-belgian-cyber-command-at-howest">Securing Cyberspace: Belgian Cyber Command at Howest</h1> <p>On November 12, we had the opportunity to attend a Tech&amp;Meet session unlike any other. The speaker was <strong>Colonel Gunther Godefridis</strong>, Director for Development &amp; Readiness at Belgian Cyber Command, and the topic: safeguarding our country in the digital domain.</p> diff --git a/public/categories/defense/index.html b/public/categories/defense/index.html index 432582d..90aeeeb 100644 --- a/public/categories/defense/index.html +++ b/public/categories/defense/index.html @@ -1,7 +1,7 @@ - + Defense @@ -28,11 +28,11 @@ - - - - - + + + + + @@ -41,7 +41,7 @@ - + @@ -70,7 +70,6 @@ - @@ -79,7 +78,7 @@ -Professors - Personal Portfolio Theme +Joren's Site @@ -154,8 +153,8 @@ - - + + @@ -179,13 +178,13 @@ - + - + - + @@ -266,7 +265,7 @@ - + @@ -295,27 +294,27 @@ @@ -327,29 +326,17 @@ @@ -390,7 +377,7 @@
@@ -9355,7 +9342,7 @@ diff --git a/public/categories/defense/index.xml b/public/categories/defense/index.xml index 6371123..f3bdb2e 100644 --- a/public/categories/defense/index.xml +++ b/public/categories/defense/index.xml @@ -1,18 +1,18 @@ - Defense on Professors - Personal Portfolio Theme - http://localhost:1313/professors/site/categories/defense/ - Recent content in Defense on Professors - Personal Portfolio Theme + Defense on Joren's Site + http://localhost:1313/categories/defense/ + Recent content in Defense on Joren's Site Hugo en Tue, 12 Nov 2024 00:00:00 +0000 - + Securing Cyberspace: Belgian Cyber Command at Howest - http://localhost:1313/professors/site/blog/post-3/ + http://localhost:1313/blog/post-3/ Tue, 12 Nov 2024 00:00:00 +0000 - http://localhost:1313/professors/site/blog/post-3/ + http://localhost:1313/blog/post-3/ <h1 id="securing-cyberspace-belgian-cyber-command-at-howest">Securing Cyberspace: Belgian Cyber Command at Howest</h1> <p>On November 12, we had the opportunity to attend a Tech&amp;Meet session unlike any other. The speaker was <strong>Colonel Gunther Godefridis</strong>, Director for Development &amp; Readiness at Belgian Cyber Command, and the topic: safeguarding our country in the digital domain.</p> diff --git a/public/categories/education/index.html b/public/categories/education/index.html index c08aa02..2f1958b 100644 --- a/public/categories/education/index.html +++ b/public/categories/education/index.html @@ -1,7 +1,7 @@ - + Education @@ -28,11 +28,11 @@ - - - - - + + + + + @@ -41,7 +41,7 @@ - + @@ -70,7 +70,6 @@ - @@ -79,7 +78,7 @@ -Professors - Personal Portfolio Theme +Joren's Site @@ -154,8 +153,8 @@ - - + + @@ -179,13 +178,13 @@ - + - + - + @@ -266,7 +265,7 @@ - + @@ -295,27 +294,27 @@ @@ -327,29 +326,17 @@ @@ -390,7 +377,7 @@
@@ -9355,7 +9342,7 @@ diff --git a/public/categories/education/index.xml b/public/categories/education/index.xml index f7e43e4..e2c776a 100644 --- a/public/categories/education/index.xml +++ b/public/categories/education/index.xml @@ -1,18 +1,18 @@ - Education on Professors - Personal Portfolio Theme - http://localhost:1313/professors/site/categories/education/ - Recent content in Education on Professors - Personal Portfolio Theme + Education on Joren's Site + http://localhost:1313/categories/education/ + Recent content in Education on Joren's Site Hugo en Sat, 15 Mar 2025 00:00:00 +0000 - + Reversing, Rebuilding, and Failing Better: My Cyber Security Challenge Belgium Qualifier Experience - http://localhost:1313/professors/site/blog/post-2/ + http://localhost:1313/blog/post-2/ Sat, 15 Mar 2025 00:00:00 +0000 - http://localhost:1313/professors/site/blog/post-2/ + http://localhost:1313/blog/post-2/ <h1 id="reversing-rebuilding-and-failing-better-my-cyber-security-challenge-belgium-qualifier-experience">Reversing, Rebuilding, and Failing Better: My Cyber Security Challenge Belgium Qualifier Experience</h1> <p>On March 14 and 15, I joined the Cyber Security Challenge Belgium qualifiers with three teammates. For two days, we threw ourselves at CTF challenges covering binary exploitation, Android reversing, cryptography, and more.</p> diff --git a/public/categories/event-recap/index.html b/public/categories/event-recap/index.html deleted file mode 100644 index 0078eb0..0000000 --- a/public/categories/event-recap/index.html +++ /dev/null @@ -1,9369 +0,0 @@ - - - - - - -Event Recap - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Professors - Personal Portfolio Theme - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - -
-
-
-
-
- -

Category

- -

//Event Recap

-
- -
-
-
-
- - - - -
- -
-
-
-
- -
-
-
-
- - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/categories/event-recap/index.xml b/public/categories/event-recap/index.xml deleted file mode 100644 index 597566f..0000000 --- a/public/categories/event-recap/index.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Event Recap on Professors - Personal Portfolio Theme - http://localhost:1313/professors/site/categories/event-recap/ - Recent content in Event Recap on Professors - Personal Portfolio Theme - Hugo - en - Tue, 13 May 2025 00:00:00 +0000 - - - Cyber Defence on the Digital Frontline: A Mission with NATO - http://localhost:1313/professors/site/blog/post-1/ - Tue, 13 May 2025 00:00:00 +0000 - http://localhost:1313/professors/site/blog/post-1/ - <h1 id="cyber-defence-on-the-digital-frontline-a-mission-with-nato">Cyber Defence on the Digital Frontline: A Mission with NATO</h1> <h4 id="on-a-mission-with-nato-cyber-defence-on-the-frontline">On a Mission with NATO: Cyber Defence on the Frontline</h4> <p>Howest’s ongoing commitment to world-class cybersecurity training took center stage again as six lecturers from the Cyber Security program joined forces with experts from Latvia, Luxembourg and Belgium in one of NATO&rsquo;s most intensive simulations: the Locked Shields exercise, hosted by the Cooperative Cyber Defence Centre of Excellence (CCDCOE). Now in its fifth year of participation, the Howest team shared their firsthand experiences at a special evening talk at Howest Bruges.</p> - - - diff --git a/public/categories/event/index.html b/public/categories/event/index.html index b7ecbb4..868779c 100644 --- a/public/categories/event/index.html +++ b/public/categories/event/index.html @@ -1,7 +1,7 @@ - + Event @@ -28,11 +28,11 @@ - - - - - + + + + + @@ -41,7 +41,7 @@ - + @@ -70,7 +70,6 @@ - @@ -79,7 +78,7 @@ -Professors - Personal Portfolio Theme +Joren's Site @@ -154,8 +153,8 @@ - - + + @@ -179,13 +178,13 @@ - + - + - + @@ -266,7 +265,7 @@ - + @@ -295,27 +294,27 @@ @@ -327,29 +326,17 @@ @@ -390,7 +377,7 @@
+
+ +
+
@@ -9355,7 +9495,7 @@ diff --git a/public/categories/event/index.xml b/public/categories/event/index.xml index 2d56b01..9b80259 100644 --- a/public/categories/event/index.xml +++ b/public/categories/event/index.xml @@ -1,18 +1,25 @@ - Event on Professors - Personal Portfolio Theme - http://localhost:1313/professors/site/categories/event/ - Recent content in Event on Professors - Personal Portfolio Theme + Event on Joren's Site + http://localhost:1313/categories/event/ + Recent content in Event on Joren's Site Hugo en - Tue, 12 Nov 2024 00:00:00 +0000 - + Tue, 13 May 2025 00:00:00 +0000 + + + Cyber Defence on the Digital Frontline: A Mission with NATO + http://localhost:1313/blog/post-1/ + Tue, 13 May 2025 00:00:00 +0000 + http://localhost:1313/blog/post-1/ + <h1 id="cyber-defence-on-the-digital-frontline-a-mission-with-nato">Cyber Defence on the Digital Frontline: A Mission with NATO</h1> <h4 id="on-a-mission-with-nato-cyber-defence-on-the-frontline">On a Mission with NATO: Cyber Defence on the Frontline</h4> <p>Howest’s ongoing commitment to world-class cybersecurity training took center stage again as six lecturers from the Cyber Security program joined forces with experts from Latvia, Luxembourg and Belgium in one of NATO&rsquo;s most intensive simulations: the Locked Shields exercise, hosted by the Cooperative Cyber Defence Centre of Excellence (CCDCOE). Now in its fifth year of participation, the Howest team shared their firsthand experiences at a special evening talk at Howest Bruges.</p> + Securing Cyberspace: Belgian Cyber Command at Howest - http://localhost:1313/professors/site/blog/post-3/ + http://localhost:1313/blog/post-3/ Tue, 12 Nov 2024 00:00:00 +0000 - http://localhost:1313/professors/site/blog/post-3/ + http://localhost:1313/blog/post-3/ <h1 id="securing-cyberspace-belgian-cyber-command-at-howest">Securing Cyberspace: Belgian Cyber Command at Howest</h1> <p>On November 12, we had the opportunity to attend a Tech&amp;Meet session unlike any other. The speaker was <strong>Colonel Gunther Godefridis</strong>, Director for Development &amp; Readiness at Belgian Cyber Command, and the topic: safeguarding our country in the digital domain.</p> diff --git a/public/categories/index.html b/public/categories/index.html index 4e70090..e003df3 100644 --- a/public/categories/index.html +++ b/public/categories/index.html @@ -1,2 +1,2 @@ - + diff --git a/public/categories/index.xml b/public/categories/index.xml index 94f19c0..e00014d 100644 --- a/public/categories/index.xml +++ b/public/categories/index.xml @@ -1,67 +1,60 @@ - Categories on Professors - Personal Portfolio Theme - http://localhost:1313/professors/site/categories/ - Recent content in Categories on Professors - Personal Portfolio Theme + Categories on Joren's Site + http://localhost:1313/categories/ + Recent content in Categories on Joren's Site Hugo en Tue, 20 May 2025 00:00:00 +0000 - + Cybersecurity - http://localhost:1313/professors/site/categories/cybersecurity/ + http://localhost:1313/categories/cybersecurity/ Tue, 20 May 2025 00:00:00 +0000 - http://localhost:1313/professors/site/categories/cybersecurity/ + http://localhost:1313/categories/cybersecurity/ Interview - http://localhost:1313/professors/site/categories/interview/ + http://localhost:1313/categories/interview/ Tue, 20 May 2025 00:00:00 +0000 - http://localhost:1313/professors/site/categories/interview/ + http://localhost:1313/categories/interview/ Podcast - http://localhost:1313/professors/site/categories/podcast/ + http://localhost:1313/categories/podcast/ Tue, 20 May 2025 00:00:00 +0000 - http://localhost:1313/professors/site/categories/podcast/ - - - - Event Recap - http://localhost:1313/professors/site/categories/event-recap/ - Tue, 13 May 2025 00:00:00 +0000 - http://localhost:1313/professors/site/categories/event-recap/ - - - - CTF - http://localhost:1313/professors/site/categories/ctf/ - Sat, 15 Mar 2025 00:00:00 +0000 - http://localhost:1313/professors/site/categories/ctf/ - - - - Education - http://localhost:1313/professors/site/categories/education/ - Sat, 15 Mar 2025 00:00:00 +0000 - http://localhost:1313/professors/site/categories/education/ - - - - Defense - http://localhost:1313/professors/site/categories/defense/ - Tue, 12 Nov 2024 00:00:00 +0000 - http://localhost:1313/professors/site/categories/defense/ + http://localhost:1313/categories/podcast/ Event - http://localhost:1313/professors/site/categories/event/ + http://localhost:1313/categories/event/ + Tue, 13 May 2025 00:00:00 +0000 + http://localhost:1313/categories/event/ + + + + CTF + http://localhost:1313/categories/ctf/ + Sat, 15 Mar 2025 00:00:00 +0000 + http://localhost:1313/categories/ctf/ + + + + Education + http://localhost:1313/categories/education/ + Sat, 15 Mar 2025 00:00:00 +0000 + http://localhost:1313/categories/education/ + + + + Defense + http://localhost:1313/categories/defense/ Tue, 12 Nov 2024 00:00:00 +0000 - http://localhost:1313/professors/site/categories/event/ + http://localhost:1313/categories/defense/ diff --git a/public/categories/interview/index.html b/public/categories/interview/index.html index 023c759..48c7bd5 100644 --- a/public/categories/interview/index.html +++ b/public/categories/interview/index.html @@ -1,7 +1,7 @@ - + Interview @@ -28,11 +28,11 @@ - - - - - + + + + + @@ -41,7 +41,7 @@ - + @@ -70,7 +70,6 @@ - @@ -79,7 +78,7 @@ -Professors - Personal Portfolio Theme +Joren's Site @@ -154,8 +153,8 @@ - - + + @@ -179,13 +178,13 @@ - + - + - + @@ -266,7 +265,7 @@ - + @@ -295,27 +294,27 @@ @@ -327,29 +326,17 @@ @@ -390,7 +377,7 @@
@@ -9355,7 +9342,7 @@ diff --git a/public/categories/interview/index.xml b/public/categories/interview/index.xml index 27022bc..70f19d6 100644 --- a/public/categories/interview/index.xml +++ b/public/categories/interview/index.xml @@ -1,18 +1,18 @@ - Interview on Professors - Personal Portfolio Theme - http://localhost:1313/professors/site/categories/interview/ - Recent content in Interview on Professors - Personal Portfolio Theme + Interview on Joren's Site + http://localhost:1313/categories/interview/ + Recent content in Interview on Joren's Site Hugo en Tue, 20 May 2025 00:00:00 +0000 - + Red Team Talk: Een Blik Achter de Schermen bij Offensive Security - http://localhost:1313/professors/site/blog/post-4/ + http://localhost:1313/blog/post-4/ Tue, 20 May 2025 00:00:00 +0000 - http://localhost:1313/professors/site/blog/post-4/ + http://localhost:1313/blog/post-4/ <h1 id="red-team-talk-een-blik-achter-de-schermen-bij-offensive-security">Red Team Talk: Een Blik Achter de Schermen bij Offensive Security</h1> <p>In deze eerste aflevering van <strong>Red Team Talk</strong> nemen wij, Joren Schipman en Mattia Punjwani, studenten Cybersecurity aan Howest, jullie mee in een gesprek met <strong>Thomas Castronovo</strong>, ethical hacker en consultant bij Deloitte. Samen duiken we in de wereld van offensieve security, red teaming, en de realiteit van een carrière als pentester.</p> diff --git a/public/categories/last-hope/index.html b/public/categories/last-hope/index.html deleted file mode 100644 index bae68e6..0000000 --- a/public/categories/last-hope/index.html +++ /dev/null @@ -1,9347 +0,0 @@ - - - - - - -Last Hope - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Professors - Personal Portfolio Theme - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - -
-
-
-
-
- -

Category

- -

//Last Hope

-
-
- -
- -
- -
-
-
-
-
- - - - -
- -
-
-
-
- -
-
-
-
- - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/categories/last-hope/index.xml b/public/categories/last-hope/index.xml deleted file mode 100644 index a0cbd3b..0000000 --- a/public/categories/last-hope/index.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Last Hope on Professors - Personal Portfolio Theme - http://localhost:1313/professors/site/categories/last-hope/ - Recent content in Last Hope on Professors - Personal Portfolio Theme - Hugo - en - Tue, 13 May 2025 00:00:00 +0000 - - - On a Mission with NATO: Cyber Defence on the Frontline - http://localhost:1313/professors/site/blog/post-1/ - Tue, 13 May 2025 00:00:00 +0000 - http://localhost:1313/professors/site/blog/post-1/ - <p>Here is example of hedings. You can use this heading by following markdownify rules. For example: use <code>#</code> for heading 1 and use <code>######</code> for heading 6.</p> - - - diff --git a/public/categories/library/index.html b/public/categories/library/index.html deleted file mode 100644 index f0369db..0000000 --- a/public/categories/library/index.html +++ /dev/null @@ -1,9343 +0,0 @@ - - - - - - -Library - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Professors - Personal Portfolio Theme - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - -
-
-
-
-
- -

Category

- -

//Library

-
-
- -
- -
- -
-
-
-
-
- - - - -
- -
-
-
-
- -
-
-
-
- - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/categories/library/index.xml b/public/categories/library/index.xml deleted file mode 100644 index d15a59a..0000000 --- a/public/categories/library/index.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Library on Professors - Personal Portfolio Theme - http://192.168.90.54:1313/categories/library/ - Recent content in Library on Professors - Personal Portfolio Theme - Hugo - en - Wed, 05 Jan 2022 00:00:00 +0000 - - - variation of the ordinary lor - http://192.168.90.54:1313/blog/post-5/ - Wed, 05 Jan 2022 00:00:00 +0000 - http://192.168.90.54:1313/blog/post-5/ - <p>Here is example of hedings. You can use this heading by following markdownify rules. For example: use <code>#</code> for heading 1 and use <code>######</code> for heading 6.</p> - - - diff --git a/public/categories/nato/index.html b/public/categories/nato/index.html deleted file mode 100644 index 2d2b8b3..0000000 --- a/public/categories/nato/index.html +++ /dev/null @@ -1,9351 +0,0 @@ - - - - - - -Nato - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Professors - Personal Portfolio Theme - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - -
-
-
-
-
- -

Category

- -

//Nato

-
-
- -
- -
- -
-
-
-
-
- - - - -
- -
-
-
-
- -
-
-
-
- - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/categories/nato/index.xml b/public/categories/nato/index.xml deleted file mode 100644 index 55d1e3e..0000000 --- a/public/categories/nato/index.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Nato on Professors - Personal Portfolio Theme - http://192.168.90.54:1313/categories/nato/ - Recent content in Nato on Professors - Personal Portfolio Theme - Hugo - en - Tue, 13 May 2025 00:00:00 +0000 - - - On a Mission with NATO: Cyber Defence on the Frontline - http://192.168.90.54:1313/blog/post-1/ - Tue, 13 May 2025 00:00:00 +0000 - http://192.168.90.54:1313/blog/post-1/ - <h1 id="on-a-mission-with-nato-cyber-defence-on-the-frontline">On a Mission with NATO: Cyber Defence on the Frontline</h1> <p>I didn’t expect to leave a Tuesday evening talk thinking about satellite law, botched firewall configs, and how easy it is to accidentally nuke your own DNS root. But that’s exactly what happened at <strong>Howest Bruges</strong> on May 13.</p> - - - diff --git a/public/categories/podcast/index.html b/public/categories/podcast/index.html index 330a302..2f4d44b 100644 --- a/public/categories/podcast/index.html +++ b/public/categories/podcast/index.html @@ -1,7 +1,7 @@ - + Podcast @@ -28,11 +28,11 @@ - - - - - + + + + + @@ -41,7 +41,7 @@ - + @@ -70,7 +70,6 @@ - @@ -79,7 +78,7 @@ -Professors - Personal Portfolio Theme +Joren's Site @@ -154,8 +153,8 @@ - - + + @@ -179,13 +178,13 @@ - + - + - + @@ -266,7 +265,7 @@ - + @@ -295,27 +294,27 @@ @@ -327,29 +326,17 @@ @@ -390,7 +377,7 @@
@@ -9355,7 +9342,7 @@ diff --git a/public/categories/podcast/index.xml b/public/categories/podcast/index.xml index 4646d67..2064800 100644 --- a/public/categories/podcast/index.xml +++ b/public/categories/podcast/index.xml @@ -1,18 +1,18 @@ - Podcast on Professors - Personal Portfolio Theme - http://localhost:1313/professors/site/categories/podcast/ - Recent content in Podcast on Professors - Personal Portfolio Theme + Podcast on Joren's Site + http://localhost:1313/categories/podcast/ + Recent content in Podcast on Joren's Site Hugo en Tue, 20 May 2025 00:00:00 +0000 - + Red Team Talk: Een Blik Achter de Schermen bij Offensive Security - http://localhost:1313/professors/site/blog/post-4/ + http://localhost:1313/blog/post-4/ Tue, 20 May 2025 00:00:00 +0000 - http://localhost:1313/professors/site/blog/post-4/ + http://localhost:1313/blog/post-4/ <h1 id="red-team-talk-een-blik-achter-de-schermen-bij-offensive-security">Red Team Talk: Een Blik Achter de Schermen bij Offensive Security</h1> <p>In deze eerste aflevering van <strong>Red Team Talk</strong> nemen wij, Joren Schipman en Mattia Punjwani, studenten Cybersecurity aan Howest, jullie mee in een gesprek met <strong>Thomas Castronovo</strong>, ethical hacker en consultant bij Deloitte. Samen duiken we in de wereld van offensieve security, red teaming, en de realiteit van een carrière als pentester.</p> diff --git a/public/categories/writing/index.html b/public/categories/writing/index.html deleted file mode 100644 index dbfb653..0000000 --- a/public/categories/writing/index.html +++ /dev/null @@ -1,9343 +0,0 @@ - - - - - - -Writing - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Professors - Personal Portfolio Theme - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - -
-
-
-
-
- -

Category

- -

//Writing

-
-
- -
- -
- -
-
-
-
-
- - - - -
- -
-
-
-
- -
-
-
-
- - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/categories/writing/index.xml b/public/categories/writing/index.xml deleted file mode 100644 index 729d70f..0000000 --- a/public/categories/writing/index.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Writing on Professors - Personal Portfolio Theme - http://localhost:1313/professors/site/categories/writing/ - Recent content in Writing on Professors - Personal Portfolio Theme - Hugo - en - Sun, 02 Jan 2022 00:00:00 +0000 - - - New Friends Everyday at Kiddie - http://localhost:1313/professors/site/blog/post-2/ - Sun, 02 Jan 2022 00:00:00 +0000 - http://localhost:1313/professors/site/blog/post-2/ - <p>Here is example of hedings. You can use this heading by following markdownify rules. For example: use <code>#</code> for heading 1 and use <code>######</code> for heading 6.</p> - - - diff --git a/public/images/blog/blog-1_hu_15ef236ad8ece8ed.jpg b/public/images/blog/blog-1_hu_15ef236ad8ece8ed.jpg deleted file mode 100644 index b767029..0000000 Binary files a/public/images/blog/blog-1_hu_15ef236ad8ece8ed.jpg and /dev/null differ diff --git a/public/images/blog/blog-1_hu_6ceec691ca0ef84f.webp b/public/images/blog/blog-1_hu_6ceec691ca0ef84f.webp deleted file mode 100644 index 6cbb625..0000000 Binary files a/public/images/blog/blog-1_hu_6ceec691ca0ef84f.webp and /dev/null differ diff --git a/public/images/blog/blog-1_hu_fa6a5ad626b60663.webp b/public/images/blog/blog-1_hu_fa6a5ad626b60663.webp deleted file mode 100644 index ded9740..0000000 Binary files a/public/images/blog/blog-1_hu_fa6a5ad626b60663.webp and /dev/null differ diff --git a/public/images/blog/blog-2.jpg b/public/images/blog/blog-2.jpg deleted file mode 100644 index 2fcaedc..0000000 Binary files a/public/images/blog/blog-2.jpg and /dev/null differ diff --git a/public/images/blog/blog-2_hu_15ef236ad8ece8ed.jpg b/public/images/blog/blog-2_hu_15ef236ad8ece8ed.jpg deleted file mode 100644 index b767029..0000000 Binary files a/public/images/blog/blog-2_hu_15ef236ad8ece8ed.jpg and /dev/null differ diff --git a/public/images/blog/blog-2_hu_49c9a8ef92d2b853.webp b/public/images/blog/blog-2_hu_49c9a8ef92d2b853.webp deleted file mode 100644 index e212e7d..0000000 Binary files a/public/images/blog/blog-2_hu_49c9a8ef92d2b853.webp and /dev/null differ diff --git a/public/images/blog/blog-2_hu_4b1782fd1a15e83b.webp b/public/images/blog/blog-2_hu_4b1782fd1a15e83b.webp deleted file mode 100644 index 05ac5cd..0000000 Binary files a/public/images/blog/blog-2_hu_4b1782fd1a15e83b.webp and /dev/null differ diff --git a/public/images/blog/blog-2_hu_6ceec691ca0ef84f.webp b/public/images/blog/blog-2_hu_6ceec691ca0ef84f.webp deleted file mode 100644 index 6cbb625..0000000 Binary files a/public/images/blog/blog-2_hu_6ceec691ca0ef84f.webp and /dev/null differ diff --git a/public/images/blog/blog-2_hu_8dd81870b6dccbe7.jpg b/public/images/blog/blog-2_hu_8dd81870b6dccbe7.jpg deleted file mode 100644 index a648ef0..0000000 Binary files a/public/images/blog/blog-2_hu_8dd81870b6dccbe7.jpg and /dev/null differ diff --git a/public/images/blog/blog-2_hu_8def6289c64a2dc8.webp b/public/images/blog/blog-2_hu_8def6289c64a2dc8.webp deleted file mode 100644 index d2df11c..0000000 Binary files a/public/images/blog/blog-2_hu_8def6289c64a2dc8.webp and /dev/null differ diff --git a/public/images/blog/blog-2_hu_c69497547b6be0b8.webp b/public/images/blog/blog-2_hu_c69497547b6be0b8.webp deleted file mode 100644 index 761b202..0000000 Binary files a/public/images/blog/blog-2_hu_c69497547b6be0b8.webp and /dev/null differ diff --git a/public/images/blog/blog-2_hu_c8b71bdb358d263a.webp b/public/images/blog/blog-2_hu_c8b71bdb358d263a.webp deleted file mode 100644 index 234d678..0000000 Binary files a/public/images/blog/blog-2_hu_c8b71bdb358d263a.webp and /dev/null differ diff --git a/public/images/blog/blog-2_hu_d77be45b273e444.jpg b/public/images/blog/blog-2_hu_d77be45b273e444.jpg deleted file mode 100644 index 8166702..0000000 Binary files a/public/images/blog/blog-2_hu_d77be45b273e444.jpg and /dev/null differ diff --git a/public/images/blog/blog-2_hu_dcdbc2fa445f98d0.webp b/public/images/blog/blog-2_hu_dcdbc2fa445f98d0.webp deleted file mode 100644 index c3c9b92..0000000 Binary files a/public/images/blog/blog-2_hu_dcdbc2fa445f98d0.webp and /dev/null differ diff --git a/public/images/blog/blog-2_hu_e30bb3c83e94ba98.jpg b/public/images/blog/blog-2_hu_e30bb3c83e94ba98.jpg deleted file mode 100644 index 420801b..0000000 Binary files a/public/images/blog/blog-2_hu_e30bb3c83e94ba98.jpg and /dev/null differ diff --git a/public/images/blog/blog-2_hu_f9ab0f5f2b4013b3.webp b/public/images/blog/blog-2_hu_f9ab0f5f2b4013b3.webp deleted file mode 100644 index 504f0cc..0000000 Binary files a/public/images/blog/blog-2_hu_f9ab0f5f2b4013b3.webp and /dev/null differ diff --git a/public/images/blog/blog-2_hu_fa6a5ad626b60663.webp b/public/images/blog/blog-2_hu_fa6a5ad626b60663.webp deleted file mode 100644 index ded9740..0000000 Binary files a/public/images/blog/blog-2_hu_fa6a5ad626b60663.webp and /dev/null differ diff --git a/public/images/blog/blog-3_hu_13ae4d803acbd595.webp b/public/images/blog/blog-3_hu_13ae4d803acbd595.webp deleted file mode 100644 index bcc9525..0000000 Binary files a/public/images/blog/blog-3_hu_13ae4d803acbd595.webp and /dev/null differ diff --git a/public/images/blog/blog-3_hu_a7eced39109d63cc.jpg b/public/images/blog/blog-3_hu_a7eced39109d63cc.jpg deleted file mode 100644 index 19d05bb..0000000 Binary files a/public/images/blog/blog-3_hu_a7eced39109d63cc.jpg and /dev/null differ diff --git a/public/images/blog/blog-3_hu_d9dc92a071ba18e1.webp b/public/images/blog/blog-3_hu_d9dc92a071ba18e1.webp deleted file mode 100644 index 566f5d0..0000000 Binary files a/public/images/blog/blog-3_hu_d9dc92a071ba18e1.webp and /dev/null differ diff --git a/public/images/blog/blog-4_hu_4c7005622578f947.jpg b/public/images/blog/blog-4_hu_4c7005622578f947.jpg deleted file mode 100644 index 882d2f0..0000000 Binary files a/public/images/blog/blog-4_hu_4c7005622578f947.jpg and /dev/null differ diff --git a/public/images/blog/blog-4_hu_abdb37c4ef41442e.webp b/public/images/blog/blog-4_hu_abdb37c4ef41442e.webp deleted file mode 100644 index f084431..0000000 Binary files a/public/images/blog/blog-4_hu_abdb37c4ef41442e.webp and /dev/null differ diff --git a/public/images/blog/blog-4_hu_bf89f52c40e687e9.webp b/public/images/blog/blog-4_hu_bf89f52c40e687e9.webp deleted file mode 100644 index a683b79..0000000 Binary files a/public/images/blog/blog-4_hu_bf89f52c40e687e9.webp and /dev/null differ diff --git a/public/images/blog/blog-5.jpg b/public/images/blog/blog-5.jpg deleted file mode 100644 index 5da4a80..0000000 Binary files a/public/images/blog/blog-5.jpg and /dev/null differ diff --git a/public/images/blog/blog-5_hu_1fa9c9461e8a5b22.webp b/public/images/blog/blog-5_hu_1fa9c9461e8a5b22.webp deleted file mode 100644 index f6c8ec0..0000000 Binary files a/public/images/blog/blog-5_hu_1fa9c9461e8a5b22.webp and /dev/null differ diff --git a/public/images/blog/blog-5_hu_352d10c6bbae3568.webp b/public/images/blog/blog-5_hu_352d10c6bbae3568.webp deleted file mode 100644 index 5a92d18..0000000 Binary files a/public/images/blog/blog-5_hu_352d10c6bbae3568.webp and /dev/null differ diff --git a/public/images/blog/blog-5_hu_54124c601931f717.webp b/public/images/blog/blog-5_hu_54124c601931f717.webp deleted file mode 100644 index 42af1ba..0000000 Binary files a/public/images/blog/blog-5_hu_54124c601931f717.webp and /dev/null differ diff --git a/public/images/blog/blog-5_hu_632552476cbe60cc.jpg b/public/images/blog/blog-5_hu_632552476cbe60cc.jpg deleted file mode 100644 index 3c8dfb5..0000000 Binary files a/public/images/blog/blog-5_hu_632552476cbe60cc.jpg and /dev/null differ diff --git a/public/images/blog/blog-5_hu_cc034401e2f1274e.jpg b/public/images/blog/blog-5_hu_cc034401e2f1274e.jpg deleted file mode 100644 index 8f5a314..0000000 Binary files a/public/images/blog/blog-5_hu_cc034401e2f1274e.jpg and /dev/null differ diff --git a/public/images/blog/blog1/binexpl.png b/public/images/blog/blog1/binexpl.png deleted file mode 100644 index 0ee5464..0000000 Binary files a/public/images/blog/blog1/binexpl.png and /dev/null differ diff --git a/public/images/blog/blog1/binexpl_hu_3d36b409c72f3586.webp b/public/images/blog/blog1/binexpl_hu_3d36b409c72f3586.webp deleted file mode 100644 index 414541a..0000000 Binary files a/public/images/blog/blog1/binexpl_hu_3d36b409c72f3586.webp and /dev/null differ diff --git a/public/images/blog/blog1/binexpl_hu_62abc2aca7882dbf.webp b/public/images/blog/blog1/binexpl_hu_62abc2aca7882dbf.webp deleted file mode 100644 index f55ed6d..0000000 Binary files a/public/images/blog/blog1/binexpl_hu_62abc2aca7882dbf.webp and /dev/null differ diff --git a/public/images/blog/blog1/binexpl_hu_6c7b74fb7ea6923.webp b/public/images/blog/blog1/binexpl_hu_6c7b74fb7ea6923.webp deleted file mode 100644 index 3eb0f51..0000000 Binary files a/public/images/blog/blog1/binexpl_hu_6c7b74fb7ea6923.webp and /dev/null differ diff --git a/public/images/blog/blog1/binexpl_hu_87c8bee28ebae804.webp b/public/images/blog/blog1/binexpl_hu_87c8bee28ebae804.webp deleted file mode 100644 index 339aabf..0000000 Binary files a/public/images/blog/blog1/binexpl_hu_87c8bee28ebae804.webp and /dev/null differ diff --git a/public/images/blog/blog1/binexpl_hu_935160fb8df57d09.webp b/public/images/blog/blog1/binexpl_hu_935160fb8df57d09.webp deleted file mode 100644 index f21d026..0000000 Binary files a/public/images/blog/blog1/binexpl_hu_935160fb8df57d09.webp and /dev/null differ diff --git a/public/images/blog/blog1/binexpl_hu_afca672637b6b98d.png b/public/images/blog/blog1/binexpl_hu_afca672637b6b98d.png deleted file mode 100644 index 977496e..0000000 Binary files a/public/images/blog/blog1/binexpl_hu_afca672637b6b98d.png and /dev/null differ diff --git a/public/images/blog/blog1/binexpl_hu_fd757ee89fe03225.png b/public/images/blog/blog1/binexpl_hu_fd757ee89fe03225.png deleted file mode 100644 index 95551cf..0000000 Binary files a/public/images/blog/blog1/binexpl_hu_fd757ee89fe03225.png and /dev/null differ diff --git a/public/images/gallery/project-1_hu_5e809ce3a121fe7a.jpg b/public/images/gallery/project-1_hu_5e809ce3a121fe7a.jpg deleted file mode 100644 index f1ad87a..0000000 Binary files a/public/images/gallery/project-1_hu_5e809ce3a121fe7a.jpg and /dev/null differ diff --git a/public/images/gallery/project-3_hu_c2dfbcbdc0a21e9.jpg b/public/images/gallery/project-3_hu_c2dfbcbdc0a21e9.jpg deleted file mode 100644 index 673b93d..0000000 Binary files a/public/images/gallery/project-3_hu_c2dfbcbdc0a21e9.jpg and /dev/null differ diff --git a/public/images/gallery/project-3_hu_e16ce44fdeef2846.webp b/public/images/gallery/project-3_hu_e16ce44fdeef2846.webp deleted file mode 100644 index 627b5a9..0000000 Binary files a/public/images/gallery/project-3_hu_e16ce44fdeef2846.webp and /dev/null differ diff --git a/public/images/gallery/project-3_hu_f453c7505851273e.jpg b/public/images/gallery/project-3_hu_f453c7505851273e.jpg deleted file mode 100644 index 82a68ac..0000000 Binary files a/public/images/gallery/project-3_hu_f453c7505851273e.jpg and /dev/null differ diff --git a/public/images/project/project-1_hu_7e17e6600708d7c7.jpg b/public/images/project/project-1_hu_7e17e6600708d7c7.jpg deleted file mode 100644 index 5ea839a..0000000 Binary files a/public/images/project/project-1_hu_7e17e6600708d7c7.jpg and /dev/null differ diff --git a/public/images/project/project-1_hu_98654f7384c9076a.webp b/public/images/project/project-1_hu_98654f7384c9076a.webp deleted file mode 100644 index 5163125..0000000 Binary files a/public/images/project/project-1_hu_98654f7384c9076a.webp and /dev/null differ diff --git a/public/images/project/project-1_hu_d3e8330418e90c0f.jpg b/public/images/project/project-1_hu_d3e8330418e90c0f.jpg deleted file mode 100644 index 903a7b1..0000000 Binary files a/public/images/project/project-1_hu_d3e8330418e90c0f.jpg and /dev/null differ diff --git a/public/images/project/project-1_hu_d7d16f7ac12d17d8.webp b/public/images/project/project-1_hu_d7d16f7ac12d17d8.webp deleted file mode 100644 index 89f8e65..0000000 Binary files a/public/images/project/project-1_hu_d7d16f7ac12d17d8.webp and /dev/null differ diff --git a/public/images/project/project-1_hu_e4cae9e70a1af997.webp b/public/images/project/project-1_hu_e4cae9e70a1af997.webp deleted file mode 100644 index 01b87c4..0000000 Binary files a/public/images/project/project-1_hu_e4cae9e70a1af997.webp and /dev/null differ diff --git a/public/images/project/project-1_hu_ed243079fe23fbea.webp b/public/images/project/project-1_hu_ed243079fe23fbea.webp deleted file mode 100644 index 8389130..0000000 Binary files a/public/images/project/project-1_hu_ed243079fe23fbea.webp and /dev/null differ diff --git a/public/images/project/project-1_hu_f0c58a4fd9943d65.webp b/public/images/project/project-1_hu_f0c58a4fd9943d65.webp deleted file mode 100644 index 10775cd..0000000 Binary files a/public/images/project/project-1_hu_f0c58a4fd9943d65.webp and /dev/null differ diff --git a/public/images/project/project-2_hu_10599f90716c860c.webp b/public/images/project/project-2_hu_10599f90716c860c.webp deleted file mode 100644 index 8f96aca..0000000 Binary files a/public/images/project/project-2_hu_10599f90716c860c.webp and /dev/null differ diff --git a/public/images/project/project-2_hu_1155fd166fdbf66f.jpg b/public/images/project/project-2_hu_1155fd166fdbf66f.jpg deleted file mode 100644 index fb6ab74..0000000 Binary files a/public/images/project/project-2_hu_1155fd166fdbf66f.jpg and /dev/null differ diff --git a/public/images/project/project-2_hu_488a53907f5e8b3c.webp b/public/images/project/project-2_hu_488a53907f5e8b3c.webp deleted file mode 100644 index a3f75ab..0000000 Binary files a/public/images/project/project-2_hu_488a53907f5e8b3c.webp and /dev/null differ diff --git a/public/images/project/project-2_hu_4cc6bd6961294cc4.webp b/public/images/project/project-2_hu_4cc6bd6961294cc4.webp deleted file mode 100644 index 48eb0db..0000000 Binary files a/public/images/project/project-2_hu_4cc6bd6961294cc4.webp and /dev/null differ diff --git a/public/images/project/project-2_hu_622af60db48c24ce.webp b/public/images/project/project-2_hu_622af60db48c24ce.webp deleted file mode 100644 index 041f8e9..0000000 Binary files a/public/images/project/project-2_hu_622af60db48c24ce.webp and /dev/null differ diff --git a/public/images/project/project-2_hu_732ba69f86632810.jpg b/public/images/project/project-2_hu_732ba69f86632810.jpg deleted file mode 100644 index 2de79c3..0000000 Binary files a/public/images/project/project-2_hu_732ba69f86632810.jpg and /dev/null differ diff --git a/public/images/project/project-2_hu_860ea79a8b381db8.webp b/public/images/project/project-2_hu_860ea79a8b381db8.webp deleted file mode 100644 index 189544c..0000000 Binary files a/public/images/project/project-2_hu_860ea79a8b381db8.webp and /dev/null differ diff --git a/public/images/project/project-2_hu_978436bc2caeb426.webp b/public/images/project/project-2_hu_978436bc2caeb426.webp deleted file mode 100644 index d8c00c9..0000000 Binary files a/public/images/project/project-2_hu_978436bc2caeb426.webp and /dev/null differ diff --git a/public/images/project/project-2_hu_a779cd6b7d7bf311.webp b/public/images/project/project-2_hu_a779cd6b7d7bf311.webp deleted file mode 100644 index 13c0074..0000000 Binary files a/public/images/project/project-2_hu_a779cd6b7d7bf311.webp and /dev/null differ diff --git a/public/images/project/project-2_hu_b87bfcccc817d8cf.jpg b/public/images/project/project-2_hu_b87bfcccc817d8cf.jpg deleted file mode 100644 index 9e08fc9..0000000 Binary files a/public/images/project/project-2_hu_b87bfcccc817d8cf.jpg and /dev/null differ diff --git a/public/images/project/project-2_hu_c3c4f2df87c0e95b.webp b/public/images/project/project-2_hu_c3c4f2df87c0e95b.webp deleted file mode 100644 index ecd36c8..0000000 Binary files a/public/images/project/project-2_hu_c3c4f2df87c0e95b.webp and /dev/null differ diff --git a/public/images/project/project-2_hu_d33e0b5a1851b8.jpg b/public/images/project/project-2_hu_d33e0b5a1851b8.jpg deleted file mode 100644 index 08817f2..0000000 Binary files a/public/images/project/project-2_hu_d33e0b5a1851b8.jpg and /dev/null differ diff --git a/public/images/project/project-2_hu_ec597a45a5e9d24.webp b/public/images/project/project-2_hu_ec597a45a5e9d24.webp deleted file mode 100644 index b6fc1df..0000000 Binary files a/public/images/project/project-2_hu_ec597a45a5e9d24.webp and /dev/null differ diff --git a/public/images/project/project-2_hu_f16266a4ab3178db.webp b/public/images/project/project-2_hu_f16266a4ab3178db.webp deleted file mode 100644 index 139279d..0000000 Binary files a/public/images/project/project-2_hu_f16266a4ab3178db.webp and /dev/null differ diff --git a/public/images/project/project-3.jpg b/public/images/project/project-3.jpg deleted file mode 100644 index 385ba31..0000000 Binary files a/public/images/project/project-3.jpg and /dev/null differ diff --git a/public/images/project/project-3_hu_40eec1330ef232bd.webp b/public/images/project/project-3_hu_40eec1330ef232bd.webp deleted file mode 100644 index f2bd468..0000000 Binary files a/public/images/project/project-3_hu_40eec1330ef232bd.webp and /dev/null differ diff --git a/public/images/project/project-3_hu_6ffef74af2881d50.webp b/public/images/project/project-3_hu_6ffef74af2881d50.webp deleted file mode 100644 index 88d412e..0000000 Binary files a/public/images/project/project-3_hu_6ffef74af2881d50.webp and /dev/null differ diff --git a/public/images/project/project-3_hu_74a5edf51d9d285d.jpg b/public/images/project/project-3_hu_74a5edf51d9d285d.jpg deleted file mode 100644 index fdb9bb2..0000000 Binary files a/public/images/project/project-3_hu_74a5edf51d9d285d.jpg and /dev/null differ diff --git a/public/images/project/project-3_hu_9535a5ff19541788.webp b/public/images/project/project-3_hu_9535a5ff19541788.webp deleted file mode 100644 index 96fb108..0000000 Binary files a/public/images/project/project-3_hu_9535a5ff19541788.webp and /dev/null differ diff --git a/public/images/project/project-3_hu_9a71e7d65d0c4faf.jpg b/public/images/project/project-3_hu_9a71e7d65d0c4faf.jpg deleted file mode 100644 index c3e1158..0000000 Binary files a/public/images/project/project-3_hu_9a71e7d65d0c4faf.jpg and /dev/null differ diff --git a/public/images/project/project-3_hu_b90c24b136494fce.webp b/public/images/project/project-3_hu_b90c24b136494fce.webp deleted file mode 100644 index edfce82..0000000 Binary files a/public/images/project/project-3_hu_b90c24b136494fce.webp and /dev/null differ diff --git a/public/images/project/project-3_hu_cdba049d937c2697.webp b/public/images/project/project-3_hu_cdba049d937c2697.webp deleted file mode 100644 index fd93627..0000000 Binary files a/public/images/project/project-3_hu_cdba049d937c2697.webp and /dev/null differ diff --git a/public/images/project/project-4.jpg b/public/images/project/project-4.jpg deleted file mode 100644 index 87d0dcc..0000000 Binary files a/public/images/project/project-4.jpg and /dev/null differ diff --git a/public/images/project/project-4_hu_20f490d86e1e85f9.webp b/public/images/project/project-4_hu_20f490d86e1e85f9.webp deleted file mode 100644 index e0e95d5..0000000 Binary files a/public/images/project/project-4_hu_20f490d86e1e85f9.webp and /dev/null differ diff --git a/public/images/project/project-4_hu_2d275cc5a902faf.jpg b/public/images/project/project-4_hu_2d275cc5a902faf.jpg deleted file mode 100644 index 9f41f19..0000000 Binary files a/public/images/project/project-4_hu_2d275cc5a902faf.jpg and /dev/null differ diff --git a/public/images/project/project-4_hu_6d851caa153e2d3d.webp b/public/images/project/project-4_hu_6d851caa153e2d3d.webp deleted file mode 100644 index 59d4e7e..0000000 Binary files a/public/images/project/project-4_hu_6d851caa153e2d3d.webp and /dev/null differ diff --git a/public/images/project/project-4_hu_8dd4a6468b818b21.webp b/public/images/project/project-4_hu_8dd4a6468b818b21.webp deleted file mode 100644 index 6c324bb..0000000 Binary files a/public/images/project/project-4_hu_8dd4a6468b818b21.webp and /dev/null differ diff --git a/public/images/project/project-4_hu_9b132332d74a9eaa.webp b/public/images/project/project-4_hu_9b132332d74a9eaa.webp deleted file mode 100644 index 047fa90..0000000 Binary files a/public/images/project/project-4_hu_9b132332d74a9eaa.webp and /dev/null differ diff --git a/public/images/project/project-4_hu_e92f0d55a7e37cf9.jpg b/public/images/project/project-4_hu_e92f0d55a7e37cf9.jpg deleted file mode 100644 index 09f7cbd..0000000 Binary files a/public/images/project/project-4_hu_e92f0d55a7e37cf9.jpg and /dev/null differ diff --git a/public/images/project/project-4_hu_ebcb114363d16c38.webp b/public/images/project/project-4_hu_ebcb114363d16c38.webp deleted file mode 100644 index 9877651..0000000 Binary files a/public/images/project/project-4_hu_ebcb114363d16c38.webp and /dev/null differ diff --git a/public/images/project/project-5.jpg b/public/images/project/project-5.jpg deleted file mode 100644 index 5258851..0000000 Binary files a/public/images/project/project-5.jpg and /dev/null differ diff --git a/public/images/project/project-5_hu_10599f90716c860c.webp b/public/images/project/project-5_hu_10599f90716c860c.webp deleted file mode 100644 index 8f96aca..0000000 Binary files a/public/images/project/project-5_hu_10599f90716c860c.webp and /dev/null differ diff --git a/public/images/project/project-5_hu_4cc6bd6961294cc4.webp b/public/images/project/project-5_hu_4cc6bd6961294cc4.webp deleted file mode 100644 index 48eb0db..0000000 Binary files a/public/images/project/project-5_hu_4cc6bd6961294cc4.webp and /dev/null differ diff --git a/public/images/project/project-5_hu_622af60db48c24ce.webp b/public/images/project/project-5_hu_622af60db48c24ce.webp deleted file mode 100644 index 041f8e9..0000000 Binary files a/public/images/project/project-5_hu_622af60db48c24ce.webp and /dev/null differ diff --git a/public/images/project/project-5_hu_732ba69f86632810.jpg b/public/images/project/project-5_hu_732ba69f86632810.jpg deleted file mode 100644 index 2de79c3..0000000 Binary files a/public/images/project/project-5_hu_732ba69f86632810.jpg and /dev/null differ diff --git a/public/images/project/project-5_hu_978436bc2caeb426.webp b/public/images/project/project-5_hu_978436bc2caeb426.webp deleted file mode 100644 index d8c00c9..0000000 Binary files a/public/images/project/project-5_hu_978436bc2caeb426.webp and /dev/null differ diff --git a/public/images/project/project-5_hu_b87bfcccc817d8cf.jpg b/public/images/project/project-5_hu_b87bfcccc817d8cf.jpg deleted file mode 100644 index 9e08fc9..0000000 Binary files a/public/images/project/project-5_hu_b87bfcccc817d8cf.jpg and /dev/null differ diff --git a/public/images/project/project-5_hu_f16266a4ab3178db.webp b/public/images/project/project-5_hu_f16266a4ab3178db.webp deleted file mode 100644 index 139279d..0000000 Binary files a/public/images/project/project-5_hu_f16266a4ab3178db.webp and /dev/null differ diff --git a/public/images/project/project-6.jpg b/public/images/project/project-6.jpg deleted file mode 100644 index 4663087..0000000 Binary files a/public/images/project/project-6.jpg and /dev/null differ diff --git a/public/images/project/project-6_hu_19bd727cfc5c1499.webp b/public/images/project/project-6_hu_19bd727cfc5c1499.webp deleted file mode 100644 index 88a6428..0000000 Binary files a/public/images/project/project-6_hu_19bd727cfc5c1499.webp and /dev/null differ diff --git a/public/images/project/project-6_hu_363948c6cfe88e43.webp b/public/images/project/project-6_hu_363948c6cfe88e43.webp deleted file mode 100644 index 3d3ce74..0000000 Binary files a/public/images/project/project-6_hu_363948c6cfe88e43.webp and /dev/null differ diff --git a/public/images/project/project-6_hu_3ae15875e821c202.webp b/public/images/project/project-6_hu_3ae15875e821c202.webp deleted file mode 100644 index 930441d..0000000 Binary files a/public/images/project/project-6_hu_3ae15875e821c202.webp and /dev/null differ diff --git a/public/images/project/project-6_hu_70487c57df92a767.webp b/public/images/project/project-6_hu_70487c57df92a767.webp deleted file mode 100644 index 84cb2a8..0000000 Binary files a/public/images/project/project-6_hu_70487c57df92a767.webp and /dev/null differ diff --git a/public/images/project/project-6_hu_8521c92a7aed9f2.jpg b/public/images/project/project-6_hu_8521c92a7aed9f2.jpg deleted file mode 100644 index f5fe488..0000000 Binary files a/public/images/project/project-6_hu_8521c92a7aed9f2.jpg and /dev/null differ diff --git a/public/images/project/project-6_hu_9f6d6161e60e9d8d.webp b/public/images/project/project-6_hu_9f6d6161e60e9d8d.webp deleted file mode 100644 index 944264f..0000000 Binary files a/public/images/project/project-6_hu_9f6d6161e60e9d8d.webp and /dev/null differ diff --git a/public/images/project/project-6_hu_c41f3a34cd552e54.jpg b/public/images/project/project-6_hu_c41f3a34cd552e54.jpg deleted file mode 100644 index c8f4efe..0000000 Binary files a/public/images/project/project-6_hu_c41f3a34cd552e54.jpg and /dev/null differ diff --git a/public/index.html b/public/index.html index d3adf49..78027b1 100644 --- a/public/index.html +++ b/public/index.html @@ -2,7 +2,7 @@ - + Home | Joren @@ -29,11 +29,11 @@ - - - - - + + + + + @@ -42,7 +42,7 @@ - + @@ -71,7 +71,6 @@ - @@ -158,8 +157,8 @@ - - + + @@ -186,7 +185,7 @@ - + @@ -270,7 +269,7 @@ - + @@ -331,29 +330,17 @@ @@ -461,14 +448,14 @@ I'm **Joren Schipman** + onerror="this.onerror='null';this.src='\/images\/hero-image.png';" /> @@ -537,7 +524,7 @@
Download Resume
- + @@ -1150,27 +1137,27 @@ DRMDTool Project

- DRMDTool Project + DRMDTool Project

DRMDTool is a complete solution for handling `.drmd` files with automated decryption and downloading via N …

- Discover + Discover
@@ -1206,7 +1193,7 @@
- + @@ -1286,27 +1273,27 @@ Building My Hugo Website on a VPS

- Building My Hugo Website on a VPS + Building My Hugo Website on a VPS

How I built and deployed my personal blog using Hugo and hosted it on a minimal Alpine Linux VPS.

- Discover + Discover
@@ -1374,7 +1361,7 @@
@@ -1531,7 +1518,7 @@
@@ -1688,7 +1675,7 @@
@@ -1841,7 +1828,7 @@
@@ -10987,7 +10974,7 @@ diff --git a/public/index.json b/public/index.json index ee56da2..bef31ae 100644 --- a/public/index.json +++ b/public/index.json @@ -60,4 +60,4 @@ -[{"categories":null,"contents":"I built my personal blog using Hugo and deployed it on a lightweight Alpine Linux VPS. I chose this setup to have full control, keep things simple, and avoid bloated platforms or services. Here’s how the process went from site generation to live deployment.\nCreating the Hugo Site On my development machine, I created a new Hugo site:\nhugo new site howest-blog I used the professors-hugo theme and copied its exampleSite content into my project. I customized the layout, structure, and styling by editing content files, SCSS in assets/scss/custom.scss, and partial templates in the theme directory.\nAll content lives under content/, with separate folders for blog/ and project/, each containing .md files with front matter and Markdown content.\nCustomization I edited the config/_default/hugo.toml to configure site parameters like the base URL, theme, language, and menus. SCSS and image assets go in assets/, and are processed by Hugo\u0026rsquo;s pipeline. Static files like favicons are placed in static/.\nTo preview the site locally:\nhugo server To build the static site:\nhugo This generates everything in the public/ folder.\nVPS Deployment I rented a minimal Alpine Linux VPS and installed only what I needed. After setting up SSH and a basic nginx web server, I copied the public/ folder over using scp:\nscp -r public/* user@my-vps:/var/www/html On the VPS, I installed nginx:\napk add nginx And configured /etc/nginx/conf.d/default.conf to serve files from /var/www/html. Then I enabled and started nginx:\nrc-service nginx start rc-update add nginx Now my Hugo site is live and served directly as static files, no backend, no database, just HTML, CSS, and JS.\nWhy Alpine + Hugo? Alpine Linux is minimal and fast, perfect for serving static sites with low resource usage. Combined with Hugo’s speed and flexibility, I get a complete, performant setup that I fully control. It’s secure, lightweight, and easy to update, just rebuild and re-upload the public/ folder.\nThis setup is perfect if you want full control and minimal overhead for a personal blog or portfolio.\n","date":"May 29, 2025","image":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n\n \u003cimg\n \n src=\"/professors/site/images/project/project-2_hu_b10de0491c6514dc.webp\" loading=\"lazy\"\n decoding=\"async\"\n \n\n alt=\"\"\n class=\" img\"\n width=\"650\"\n height=\"278\"\n onerror=\"this.onerror='null';\n this.src='\\/professors\\/site\\/images\\/project\\/project-2_hu_3550dd40bf159427.jpg';\" /\u003e\n\n \n \n \n \n \n \n\n\n \n\n","permalink":"/professors/site/project/project-2/","title":"Building My Hugo Website on a VPS"},{"categories":null,"contents":"DRMDTool is an automation-centric utility designed to streamline the processing of .drmd files by tightly integrating with the N_m3u8DL-RE downloader. The tool offers robust automation via a watch folder and an intuitive web-based interface, significantly reducing the friction for managing and processing DRM-protected streaming content.\nWhat’s New DRMDTool has evolved into a comprehensive platform for batch downloading with enhanced support for user interaction and background processing. It features granular job tracking, dynamic download control (pause, resume, abort), and a refined WebSocket-based console for real-time command output. Subtitle handling now includes automatic downloading and conversion from VTT to SRT, and the downloader adapts based on metadata, organizing content into categorized directories.\nGoals and Use Case The primary aim is to automate .drmd file processing with minimal manual input. Users can configure download formats, specify directories, and enable real-time command broadcasting. DRMDTool is suitable for both interactive use through a web UI and headless automation in pipelines, supporting inotify or polling-based folder watching.\nHow .drmd Files Work A .drmd file is a structured JSON document that defines one or more encrypted media items to be processed by DRMDTool. It contains an Items array, with each item representing a specific media job. DRMDTool parses these entries to generate download commands for N_m3u8DL-RE.\nEach item includes:\nMPD: A DASH manifest, either a direct URL or a base64-encoded version. If base64-encoded, DRMDTool decodes and temporarily saves it before use. Keys: A comma-separated list of KID:key pairs (e.g., abcd1234ef567890:00112233445566778899aabbccddeeff). These are required for decrypting encrypted media streams and are passed directly to N_m3u8DL-RE using --key flags. Filename: The name to be used for the final output file. Subtitles: Comma-separated list of subtitle URLs in .vtt format. DRMDTool downloads and converts these to .srt, then muxes them into the final file. Metadata: A semicolon-separated string like Title;Type;Season (e.g., Example Show;serie;1) used to determine directory structure (Movies/Title or Series/Title/Season). Description and Poster: Optional fields used only for display in the web UI. Example .drmd Structure { \u0026#34;Items\u0026#34;: [ { \u0026#34;MPD\u0026#34;: \u0026#34;aHR0cHM6Ly9leGFtcGxlLmNvbS9zdHJlYW0ubXBk\u0026#34;, \u0026#34;Keys\u0026#34;: \u0026#34;abcd1234ef567890:00112233445566778899aabbccddeeff\u0026#34;, \u0026#34;Filename\u0026#34;: \u0026#34;ExampleShow.S01E01\u0026#34;, \u0026#34;Subtitles\u0026#34;: \u0026#34;https://example.com/sub1.vtt,https://example.com/sub2.vtt\u0026#34;, \u0026#34;Metadata\u0026#34;: \u0026#34;Example Show;serie;1\u0026#34;, \u0026#34;Description\u0026#34;: \u0026#34;Pilot episode\u0026#34;, \u0026#34;Poster\u0026#34;: \u0026#34;\u0026#34; } ] } Processing Steps Detection: DRMDTool either watches a folder or receives .drmd uploads through the web UI. Validation: It waits for the file to finish writing (based on file size stability), then parses its contents. MPD Handling: If base64-encoded, the MPD is decoded and written to a temp file; otherwise, the URL is fetched or passed as-is. Command Generation: Using the MPD, KID:key pairs, output paths, and subtitles, DRMDTool builds a command line for N_m3u8DL-RE. Execution: The download is launched with live progress tracking. Users can pause, resume, or abort jobs, and optionally stream console output via WebSocket. These files serve as portable job definitions. When DRMDTool detects or receives a .drmd file, it parses the items, decodes or downloads the MPD, applies the keys, and builds a download command using N_m3u8DL-RE. Files are saved in organized directories like Movies/Title or Series/Title/Season, and subtitles are embedded if available. Pausing, resuming, and aborting downloads is supported per file.\nArchitecture Overview The configuration is handled via config.toml, with environment variable overrides for containerized or dynamic deployments. Once started, the tool can either monitor a specified folder or allow file uploads through the UI. Each .drmd file is parsed, grouped by series and season (if applicable), and processed sequentially with support for job pausing and resuming.\nWeb UI \u0026amp; CLI To use:\n./drmdtool Visit http://localhost:8080 for the web interface, which supports drag-and-drop uploads, selection of episodes or movies, and real-time progress tracking. For headless operation:\n./drmdtool -f /path/to/file.drmd Jobs can be paused, resumed, or aborted through the web interface, which reflects the backend state via live updates.\nEnhanced Download Logic DRMDTool dynamically builds download commands using metadata from .drmd files and user preferences. It ensures that only the highest quality streams are kept, removing ad periods and duplicate segments from the MPD files. Subtitles are fetched and embedded automatically. Jobs are tracked with robust state management and logs for debugging and visibility.\nRepository Code and setup instructions are hosted here: https://git.directme.in/Joren/DRMDTool\nDRMDtool For advanced usage details, customization, and API structure, refer to the README.md in the repository.\n","date":"May 21, 2025","image":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n\n \u003cimg\n \n src=\"/professors/site/images/project/project-1_hu_3db5ce4165d1b6f3.webp\" loading=\"lazy\"\n decoding=\"async\"\n \n\n alt=\"\"\n class=\" img\"\n width=\"650\"\n height=\"396\"\n onerror=\"this.onerror='null';\n this.src='\\/professors\\/site\\/images\\/project\\/project-1_hu_7691192a371c30a3.jpg';\" /\u003e\n\n \n \n \n \n \n \n\n\n \n\n","permalink":"/professors/site/project/project-1/","title":"DRMDTool Project"},{"categories":["cybersecurity","podcast","interview"],"contents":"Red Team Talk: Een Blik Achter de Schermen bij Offensive Security In deze eerste aflevering van Red Team Talk nemen wij, Joren Schipman en Mattia Punjwani, studenten Cybersecurity aan Howest, jullie mee in een gesprek met Thomas Castronovo, ethical hacker en consultant bij Deloitte. Samen duiken we in de wereld van offensieve security, red teaming, en de realiteit van een carrière als pentester.\nVan Interesse tot Loopbaan Thomas deelt hoe zijn interesse in cybersecurity begon tijdens zijn opleiding, met hands-on projecten zoals het hacken van virtuele machines. Een stage bij Deloitte in 2019 zette hem op het pad naar een voltijdse functie binnen het Offensive Security Team. Vandaag werkt hij al drie jaar bij Deloitte België en specialiseert hij zich in offensieve testen.\nOffensive vs. Defensive Security Hoewel zijn hart bij offensieve security ligt, kreeg hij recent ook ervaring aan de defensieve kant. Het leverde hem een breder perspectief op: “Het geeft een heel ander zicht op hoe aanvallen eruitzien vanuit de andere kant.” Toch blijft het red team werk zijn voorkeur behouden.\nWat doet een pentester nu echt? Thomas legt uit hoe een typische pentest verloopt: van het ontvangen van de scope, over het scannen van het netwerk en het zoeken naar kwetsbaarheden, tot het rapporteren van bevindingen. Tools zoals Nessus, BloodHound en PingCastle worden ingezet, vaak gecombineerd met zelfgebouwde scripts die de output analyseren en structureren.\nKwetsbaarheden in Active Directory Een groot deel van zijn werk focust op Active Directory (AD), waar hij telkens weer dezelfde pijnpunten tegenkomt: legacy-instellingen, onvoldoende gepatchte systemen, en misconfiguraties die vaak pas worden rechtgezet na een echte aanval. Twee voorbeelden die hij aanhaalt:\nLLMNR/MDNS/NetBIOS poisoning om credentials te verkrijgen DNS wildcard records die leiden tot man-in-the-middle aanvallen Tools, Tips en Oefenen Voor wie zelf wil beginnen raadt hij aan om zelf een AD op te zetten en tools als PingCastle en BloodHound uit te proberen. De meeste kennis verwerf je volgens Thomas door zelf te oefenen, dingen stuk te maken, en vooral: blijven proberen.\nDe Praktijk vs. Certificaten Hoewel certificaten nuttig zijn (zoals WPT voor webapp testing), benadrukt Thomas dat de echte leerschool het werkveld is. “90% van wat ik weet, heb ik geleerd door het gewoon te doen,” zegt hij. Oefenen op Hack The Box, zelf een netwerk opzetten, en leren van collega’s zijn voor hem essentieel.\nAfsluiter De aflevering toont hoe breed het vakgebied offensive security is: van interne pentests tot phishingcampagnes, van legacy exploits tot zero-days. Maar vooral: het is een vak waar creativiteit en nieuwsgierigheid centraal staan.\n","date":"May 20, 2025","image":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n\n \u003cimg\n \n src=\"/professors/site/images/blog/blog-1_hu_8def6289c64a2dc8.webp\" loading=\"lazy\"\n decoding=\"async\"\n \n\n alt=\"\"\n class=\" img\"\n width=\"650\"\n height=\"433\"\n onerror=\"this.onerror='null';\n this.src='\\/professors\\/site\\/images\\/blog\\/blog-1_hu_d77be45b273e444.jpg';\" /\u003e\n\n \n \n \n \n \n \n\n\n \n\n","permalink":"/professors/site/blog/post-4/","title":"Red Team Talk: Een Blik Achter de Schermen bij Offensive Security"},{"categories":["cybersecurity","event recap"],"contents":"Cyber Defence on the Digital Frontline: A Mission with NATO On a Mission with NATO: Cyber Defence on the Frontline Howest’s ongoing commitment to world-class cybersecurity training took center stage again as six lecturers from the Cyber Security program joined forces with experts from Latvia, Luxembourg and Belgium in one of NATO\u0026rsquo;s most intensive simulations: the Locked Shields exercise, hosted by the Cooperative Cyber Defence Centre of Excellence (CCDCOE). Now in its fifth year of participation, the Howest team shared their firsthand experiences at a special evening talk at Howest Bruges.\nThe Exercise: Locked Shields Locked Shields is no ordinary simulation. It is a full-scale, live-fire cyber defence exercise involving more than 6,000 machines and a narrative scenario so detailed it includes geopolitics, disinformation and even fictional countries. This year, the Blue Team 03 (our team) defended a simulated nation’s critical infrastructure including power plants, satellites, 5G networks and banking systems, all while under constant attack from a coordinated Red Team using automated scripts and over 28,000 attacks across two days.\nAnd yes, every team (Red, Blue, Yellow, White) uses Ansible. For everything.\nHigh Stakes, Real Lessons What do you do when a rogue process might be malware, or maybe just a poorly named service? What happens when your teammate refuses to act unless something is “officially malicious”? The team faced cultural clashes, communication breakdowns and stress-testing of both systems and people.\nThe exercise required more than technical fixes. It demanded communication with simulated commanders, media and public stakeholders. Reporting became just as important as patching. It taught participants how to translate technical impact into real-world consequences. Not \u0026ldquo;port 8443 unreachable\u0026rdquo;, but \u0026ldquo;our air defence system is degraded, and we cannot fly planes\u0026rdquo;.\nThe Black Team: Rapid Response in Action A new but powerful presence in the simulation was the Black Team, a rapid-response unit deployed when problems became too complex for any single team. Acting like special forces, they jumped in when incidents crossed team boundaries or demanded unconventional solutions. Their mission was to find out what was happening, assess the impact and suggest fast, creative responses. Introduced just last year, this team quickly proved its value again in 2025. They even embraced the role with style “you can wear sunglasses inside” became their unofficial motto.\nTheir presence underlined a critical lesson: not every problem fits neatly within a team’s silo. Real-world defence requires flexibility, speed and lateral thinking.\nHighlights and Blooper Reel There were plenty of mishaps. Misfired scripts, team mix-ups, and one case where a DNS setup from a previous year was reused by mistake. Someone tried renaming cut to shutdown, breaking essential operations until it was fixed. Systems rebooted into chaos, a manual was uploaded to public GitHub, and the team had to quickly learn the difference between symbolic links and real binaries.\nHuman Factors and Growth From detecting malware with Velociraptor and Q9, to encountering teammates who took orders literally, the learning was intense. One participant noted that while Belgian and Luxembourg teams prioritized knowledge sharing, others preferred strict protocol. This highlighted cultural differences and the importance of interpersonal skills.\nThe biggest lesson? You are never fully prepared. Every iteration of Locked Shields is different. But each one sharpens not only your skills, but also your ability to function as a team under extreme conditions.\nFrom the Battlefield to the Classroom This experience directly impacts the classroom. Inspired by the exercise, Howest is introducing new hands-on courses like “Glutamine” in semester five. Students will be dropped into realistic broken networks, with misconfigurations, fake firewalls and simulated threats. It is chaos, but controlled. And that is the point.\nAs one speaker said: “You don’t win Locked Shields. You just survive it better than the rest.”\nFinal Thoughts The exercise teaches more than just cybersecurity. It builds trust. It proves that knowing your teammates can be as important as knowing the tools. Whether that comes from a shared flight or a pre-exercise barbecue, it all matters when the pressure hits.\nWant to see how cyber defence works in real life? This is it.\n","date":"May 13, 2025","image":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n\n \u003cimg\n \n src=\"/professors/site/images/blog/blog-1_hu_8def6289c64a2dc8.webp\" loading=\"lazy\"\n decoding=\"async\"\n \n\n alt=\"\"\n class=\" img\"\n width=\"650\"\n height=\"433\"\n onerror=\"this.onerror='null';\n this.src='\\/professors\\/site\\/images\\/blog\\/blog-1_hu_d77be45b273e444.jpg';\" /\u003e\n\n \n \n \n \n \n \n\n\n \n\n","permalink":"/professors/site/blog/post-1/","title":"Cyber Defence on the Digital Frontline: A Mission with NATO"},{"categories":["cybersecurity","CTF","education"],"contents":"Reversing, Rebuilding, and Failing Better: My Cyber Security Challenge Belgium Qualifier Experience On March 14 and 15, I joined the Cyber Security Challenge Belgium qualifiers with three teammates. For two days, we threw ourselves at CTF challenges covering binary exploitation, Android reversing, cryptography, and more.\nWhat follows is a recap of the challenges I personally worked on, some I solved, some I didn’t—but all of them left me with new skills and new ideas.\nA Buffer Overflow to Warm Up One of the first challenges I picked involved a binary with a basic stack overflow. I used standard techniques, finding the offset, hijacking the return address, and injecting shellcode. Tools like pwntools helped automate the payload crafting. It was a great warm-up and a confidence boost once it worked.\nBinary Exploitation Flag\rOurEncIsSec: Zip Bombs and OEIS Then there was a more elaborate cryptography challenge: 18 zip files, each password-protected. We cracked the first three passwords using John the Ripper and got numeric values from them. I searched the sequence in OEIS and found it matched A007408, which gave us the full pattern of passwords.\nUsing this, I could extract all zip contents automatically, reconstruct the password-protected message, and finally reveal the flag.\nPicture of the solution\rInfinite Luck: One in a Million? One challenge involved “guessing” a thousand random numbers between 1 and 10. The banner claimed it required infinite luck, but of course, the randomness was seeded. After inspecting the generator, I realized it was deterministic. By precomputing seeds and output sequences, I could match the challenge’s banner to a specific seed and regenerate the entire solution.\nChallange picture\rCorrect number order\rAndroid Reversing: FRIDA and JADX Several APKs were part of the qualifier set. I used JADX to decompile them and FRIDA to patch logic at runtime. In one challenge, I bypassed license validation by forcing key methods to return true and unlocking hidden functionality.\nThe Challenge That Stuck with Me: Rebuilding a Split DEX This one stood out.\nThe app used a 4×8 button grid. Pressing buttons loaded a sequence of blockXX files from assets. These were concatenated in-memory and passed into InMemoryDexClassLoader to load a class called be.dauntless.flag.Flag.\nClass loadClass = new InMemoryDexClassLoader(ByteBuffer.wrap(byteArrayOutputStream.toByteArray()), getClassLoader()) .loadClass(\u0026#34;be.dauntless.flag.Flag\u0026#34;); Each block was a fragment of a DEX file, but the app didn’t tell you the right order. I tried manually inspecting the fragments, identifying methods, string constants, and offsets—to infer how to reassemble the full file. I got close, but didn’t crack it in time.\nThat challenge stuck with me because it combined static analysis, runtime introspection, and logic reconstruction. It wasn’t just technical, it was creative.\nThe One That Got Away: TLS Fingerprinting Another challenge involved a Go-based TLS server that rejected all client connections unless they matched a specific fingerprint. I used Go’s tls.Config to replicate the version, cipher suites, and ALPN:\ntls.Config{ MinVersion: tls.VersionTLS13, CipherSuites: []uint16{ tls.TLS_AES_128_GCM_SHA256, // ... }, NextProtos: []string{\u0026#34;h2\u0026#34;}, } Despite that, the server still refused the connection. I suspect it was using JA4 or similar TLS fingerprinting techniques we couldn’t fully emulate. We had to move on, but I’d love to revisit that one someday.\nFinal Thoughts I didn’t solve everything. But that wasn’t the point. Every challenge was a practical puzzle, something to decode, reverse, bypass, or just understand a little better.\nWorking as a team with Evarist, Nathan, and Waut made it even more valuable. We bounced ideas off each other, divided tasks, and got a much broader set of challenges covered.\nThe Cyber Security Challenge Belgium qualifiers weren’t easy. But they were the best kind of difficult, the kind that teaches you something whether you solve the problem or not.\n","date":"March 15, 2025","image":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n\n \u003cimg\n \n src=\"/professors/site/images/blog/post-2/binexpl_hu_3d36b409c72f3586.webp\" loading=\"lazy\"\n decoding=\"async\"\n \n\n alt=\"\"\n class=\" img\"\n width=\"650\"\n height=\"160\"\n onerror=\"this.onerror='null';\n this.src='\\/professors\\/site\\/images\\/blog\\/post-2\\/binexpl_hu_afca672637b6b98d.png';\" /\u003e\n\n \n \n \n \n \n \n\n\n \n\n","permalink":"/professors/site/blog/post-2/","title":"Reversing, Rebuilding, and Failing Better: My Cyber Security Challenge Belgium Qualifier Experience"},{"categories":["cybersecurity","event","defense"],"contents":"Securing Cyberspace: Belgian Cyber Command at Howest On November 12, we had the opportunity to attend a Tech\u0026amp;Meet session unlike any other. The speaker was Colonel Gunther Godefridis, Director for Development \u0026amp; Readiness at Belgian Cyber Command, and the topic: safeguarding our country in the digital domain.\nHeld at Howest Campus Brugge Station, the event drew students, researchers, and professionals eager to understand how military-grade cybersecurity operations are run, and why they matter more than ever.\nDefending in the Digital Age Colonel Godefridis began by outlining the core mission of Belgian Cyber Command: protecting Defense’s networks and weapon systems, supporting intelligence operations (ADIV), and conducting defensive and offensive operations in cyberspace. In short, Cyber Command isn’t just watching traffic, it’s actively shaping Belgium’s digital resilience.\nWith society’s increasing reliance on digital infrastructure, the risks of espionage, disinformation, and attacks on critical systems are no longer theoretical. Godefridis highlighted the urgency of being able to respond to, not just detect, those threats.\nWorking Together: Academia, Industry, Government One theme that stood out was collaboration. Cyber Command doesn’t operate in a vacuum. It works closely with national agencies, NATO partners, academic institutions, and the private sector. The colonel emphasized that defending cyberspace requires broad cooperation, and Belgium’s approach is to engage across domains, military, civil, and industrial.\nHe also made it clear that this isn’t just about defense systems or classified data. As the line between civil and military digital infrastructure blurs, vulnerabilities in civilian systems can become national security issues. That’s where cooperation becomes essential.\nLeading with Innovation With over 20 years in military service, Colonel Godefridis brings a unique perspective. From artillery innovation to defense technology strategy, and now to cyber development, his background reflects the evolving nature of conflict and the military\u0026rsquo;s response.\nHe discussed how innovation, including artificial intelligence, is becoming central to cyber defense. Cyber Command is investing in tools and skills to automate threat detection, analyze large datasets, and simulate attack scenarios. It’s not just about building walls, it’s about staying several moves ahead.\nA Transparent, Human Conversation The Q\u0026amp;A session at the end made the evening especially memorable. Questions ranged from technical details of cyber defense capabilities to the human side of cyber careers: how people are trained, what skills are valued, and how students might contribute.\nColonel Godefridis was honest about the challenges. Cyber operations evolve quickly, and so do adversaries. But he was equally clear about the opportunity: Belgium is building a capability that matters, and it needs talent.\nFinal Thoughts If you walked into this talk expecting a dry presentation on military infrastructure, you were wrong. This session was a deep, realistic, and engaging look into how Belgium is preparing for cyber conflict, and how students like us could be a part of that mission.\nWhether you’re in cybersecurity, software development, or systems engineering, there’s a growing role to play. And as Colonel Godefridis made clear: it’s not just a job. It’s part of defending a society that’s more vulnerable, and more connected, than ever before.\nTip\nWant to learn more about Cyber Command? Visit the official website at mil.be\n","date":"November 12, 2024","image":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n\n \u003cimg\n \n src=\"/professors/site/images/blog/blog-3_hu_fdd9e13d0370b160.webp\" loading=\"lazy\"\n decoding=\"async\"\n \n\n alt=\"\"\n class=\" img\"\n width=\"650\"\n height=\"433\"\n onerror=\"this.onerror='null';\n this.src='\\/professors\\/site\\/images\\/blog\\/blog-3_hu_c932299ff2fa7067.jpg';\" /\u003e\n\n \n \n \n \n \n \n\n\n \n\n","permalink":"/professors/site/blog/post-3/","title":"Securing Cyberspace: Belgian Cyber Command at Howest"},{"categories":null,"contents":"I built my personal blog using Hugo and deployed it on a lightweight Alpine Linux VPS. I chose this setup to have full control, keep things simple, and avoid bloated platforms or services. Here’s how the process went from site generation to live deployment.\nCreating the Hugo Site On my development machine, I created a new Hugo site:\nhugo new site howest-blog I used the professors-hugo theme and copied its exampleSite content into my project. I customized the layout, structure, and styling by editing content files, SCSS in assets/scss/custom.scss, and partial templates in the theme directory.\nAll content lives under content/, with separate folders for blog/ and project/, each containing .md files with front matter and Markdown content.\nCustomization I edited the config/_default/hugo.toml to configure site parameters like the base URL, theme, language, and menus. SCSS and image assets go in assets/, and are processed by Hugo\u0026rsquo;s pipeline. Static files like favicons are placed in static/.\nTo preview the site locally:\nhugo server To build the static site:\nhugo This generates everything in the public/ folder.\nVPS Deployment I rented a minimal Alpine Linux VPS and installed only what I needed. After setting up SSH and a basic nginx web server, I copied the public/ folder over using scp:\nscp -r public/* user@my-vps:/var/www/html On the VPS, I installed nginx:\napk add nginx And configured /etc/nginx/conf.d/default.conf to serve files from /var/www/html. Then I enabled and started nginx:\nrc-service nginx start rc-update add nginx Now my Hugo site is live and served directly as static files, no backend, no database, just HTML, CSS, and JS.\nWhy Alpine + Hugo? Alpine Linux is minimal and fast, perfect for serving static sites with low resource usage. Combined with Hugo’s speed and flexibility, I get a complete, performant setup that I fully control. It’s secure, lightweight, and easy to update, just rebuild and re-upload the public/ folder.\nThis setup is perfect if you want full control and minimal overhead for a personal blog or portfolio.\n","date":"May 29, 2025","image":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n\n \u003cimg\n \n src=\"/professors/site/images/project/project-2_hu_b10de0491c6514dc.webp\" loading=\"lazy\"\n decoding=\"async\"\n \n\n alt=\"\"\n class=\" img\"\n width=\"650\"\n height=\"278\"\n onerror=\"this.onerror='null';\n this.src='\\/professors\\/site\\/images\\/project\\/project-2_hu_3550dd40bf159427.jpg';\" /\u003e\n\n \n \n \n \n \n \n\n\n \n\n","permalink":"/professors/site/project/project-2/","title":"Building My Hugo Website on a VPS"},{"categories":null,"contents":"DRMDTool is an automation-centric utility designed to streamline the processing of .drmd files by tightly integrating with the N_m3u8DL-RE downloader. The tool offers robust automation via a watch folder and an intuitive web-based interface, significantly reducing the friction for managing and processing DRM-protected streaming content.\nWhat’s New DRMDTool has evolved into a comprehensive platform for batch downloading with enhanced support for user interaction and background processing. It features granular job tracking, dynamic download control (pause, resume, abort), and a refined WebSocket-based console for real-time command output. Subtitle handling now includes automatic downloading and conversion from VTT to SRT, and the downloader adapts based on metadata, organizing content into categorized directories.\nGoals and Use Case The primary aim is to automate .drmd file processing with minimal manual input. Users can configure download formats, specify directories, and enable real-time command broadcasting. DRMDTool is suitable for both interactive use through a web UI and headless automation in pipelines, supporting inotify or polling-based folder watching.\nHow .drmd Files Work A .drmd file is a structured JSON document that defines one or more encrypted media items to be processed by DRMDTool. It contains an Items array, with each item representing a specific media job. DRMDTool parses these entries to generate download commands for N_m3u8DL-RE.\nEach item includes:\nMPD: A DASH manifest, either a direct URL or a base64-encoded version. If base64-encoded, DRMDTool decodes and temporarily saves it before use. Keys: A comma-separated list of KID:key pairs (e.g., abcd1234ef567890:00112233445566778899aabbccddeeff). These are required for decrypting encrypted media streams and are passed directly to N_m3u8DL-RE using --key flags. Filename: The name to be used for the final output file. Subtitles: Comma-separated list of subtitle URLs in .vtt format. DRMDTool downloads and converts these to .srt, then muxes them into the final file. Metadata: A semicolon-separated string like Title;Type;Season (e.g., Example Show;serie;1) used to determine directory structure (Movies/Title or Series/Title/Season). Description and Poster: Optional fields used only for display in the web UI. Example .drmd Structure { \u0026#34;Items\u0026#34;: [ { \u0026#34;MPD\u0026#34;: \u0026#34;aHR0cHM6Ly9leGFtcGxlLmNvbS9zdHJlYW0ubXBk\u0026#34;, \u0026#34;Keys\u0026#34;: \u0026#34;abcd1234ef567890:00112233445566778899aabbccddeeff\u0026#34;, \u0026#34;Filename\u0026#34;: \u0026#34;ExampleShow.S01E01\u0026#34;, \u0026#34;Subtitles\u0026#34;: \u0026#34;https://example.com/sub1.vtt,https://example.com/sub2.vtt\u0026#34;, \u0026#34;Metadata\u0026#34;: \u0026#34;Example Show;serie;1\u0026#34;, \u0026#34;Description\u0026#34;: \u0026#34;Pilot episode\u0026#34;, \u0026#34;Poster\u0026#34;: \u0026#34;\u0026#34; } ] } Processing Steps Detection: DRMDTool either watches a folder or receives .drmd uploads through the web UI. Validation: It waits for the file to finish writing (based on file size stability), then parses its contents. MPD Handling: If base64-encoded, the MPD is decoded and written to a temp file; otherwise, the URL is fetched or passed as-is. Command Generation: Using the MPD, KID:key pairs, output paths, and subtitles, DRMDTool builds a command line for N_m3u8DL-RE. Execution: The download is launched with live progress tracking. Users can pause, resume, or abort jobs, and optionally stream console output via WebSocket. These files serve as portable job definitions. When DRMDTool detects or receives a .drmd file, it parses the items, decodes or downloads the MPD, applies the keys, and builds a download command using N_m3u8DL-RE. Files are saved in organized directories like Movies/Title or Series/Title/Season, and subtitles are embedded if available. Pausing, resuming, and aborting downloads is supported per file.\nArchitecture Overview The configuration is handled via config.toml, with environment variable overrides for containerized or dynamic deployments. Once started, the tool can either monitor a specified folder or allow file uploads through the UI. Each .drmd file is parsed, grouped by series and season (if applicable), and processed sequentially with support for job pausing and resuming.\nWeb UI \u0026amp; CLI To use:\n./drmdtool Visit http://localhost:8080 for the web interface, which supports drag-and-drop uploads, selection of episodes or movies, and real-time progress tracking. For headless operation:\n./drmdtool -f /path/to/file.drmd Jobs can be paused, resumed, or aborted through the web interface, which reflects the backend state via live updates.\nEnhanced Download Logic DRMDTool dynamically builds download commands using metadata from .drmd files and user preferences. It ensures that only the highest quality streams are kept, removing ad periods and duplicate segments from the MPD files. Subtitles are fetched and embedded automatically. Jobs are tracked with robust state management and logs for debugging and visibility.\nRepository Code and setup instructions are hosted here: https://git.directme.in/Joren/DRMDTool\nDRMDtool For advanced usage details, customization, and API structure, refer to the README.md in the repository.\n","date":"May 21, 2025","image":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n\n \u003cimg\n \n src=\"/professors/site/images/project/project-1_hu_3db5ce4165d1b6f3.webp\" loading=\"lazy\"\n decoding=\"async\"\n \n\n alt=\"\"\n class=\" img\"\n width=\"650\"\n height=\"396\"\n onerror=\"this.onerror='null';\n this.src='\\/professors\\/site\\/images\\/project\\/project-1_hu_7691192a371c30a3.jpg';\" /\u003e\n\n \n \n \n \n \n \n\n\n \n\n","permalink":"/professors/site/project/project-1/","title":"DRMDTool Project"},{"categories":["cybersecurity","podcast","interview"],"contents":"Red Team Talk: Een Blik Achter de Schermen bij Offensive Security In deze eerste aflevering van Red Team Talk nemen wij, Joren Schipman en Mattia Punjwani, studenten Cybersecurity aan Howest, jullie mee in een gesprek met Thomas Castronovo, ethical hacker en consultant bij Deloitte. Samen duiken we in de wereld van offensieve security, red teaming, en de realiteit van een carrière als pentester.\nVan Interesse tot Loopbaan Thomas deelt hoe zijn interesse in cybersecurity begon tijdens zijn opleiding, met hands-on projecten zoals het hacken van virtuele machines. Een stage bij Deloitte in 2019 zette hem op het pad naar een voltijdse functie binnen het Offensive Security Team. Vandaag werkt hij al drie jaar bij Deloitte België en specialiseert hij zich in offensieve testen.\nOffensive vs. Defensive Security Hoewel zijn hart bij offensieve security ligt, kreeg hij recent ook ervaring aan de defensieve kant. Het leverde hem een breder perspectief op: “Het geeft een heel ander zicht op hoe aanvallen eruitzien vanuit de andere kant.” Toch blijft het red team werk zijn voorkeur behouden.\nWat doet een pentester nu echt? Thomas legt uit hoe een typische pentest verloopt: van het ontvangen van de scope, over het scannen van het netwerk en het zoeken naar kwetsbaarheden, tot het rapporteren van bevindingen. Tools zoals Nessus, BloodHound en PingCastle worden ingezet, vaak gecombineerd met zelfgebouwde scripts die de output analyseren en structureren.\nKwetsbaarheden in Active Directory Een groot deel van zijn werk focust op Active Directory (AD), waar hij telkens weer dezelfde pijnpunten tegenkomt: legacy-instellingen, onvoldoende gepatchte systemen, en misconfiguraties die vaak pas worden rechtgezet na een echte aanval. Twee voorbeelden die hij aanhaalt:\nLLMNR/MDNS/NetBIOS poisoning om credentials te verkrijgen DNS wildcard records die leiden tot man-in-the-middle aanvallen Tools, Tips en Oefenen Voor wie zelf wil beginnen raadt hij aan om zelf een AD op te zetten en tools als PingCastle en BloodHound uit te proberen. De meeste kennis verwerf je volgens Thomas door zelf te oefenen, dingen stuk te maken, en vooral: blijven proberen.\nDe Praktijk vs. Certificaten Hoewel certificaten nuttig zijn (zoals WPT voor webapp testing), benadrukt Thomas dat de echte leerschool het werkveld is. “90% van wat ik weet, heb ik geleerd door het gewoon te doen,” zegt hij. Oefenen op Hack The Box, zelf een netwerk opzetten, en leren van collega’s zijn voor hem essentieel.\nAfsluiter De aflevering toont hoe breed het vakgebied offensive security is: van interne pentests tot phishingcampagnes, van legacy exploits tot zero-days. Maar vooral: het is een vak waar creativiteit en nieuwsgierigheid centraal staan.\n","date":"May 20, 2025","image":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n\n \u003cimg\n \n src=\"/professors/site/images/blog/blog-4_hu_8ddea2f052660626.webp\" loading=\"lazy\"\n decoding=\"async\"\n \n\n alt=\"\"\n class=\" img\"\n width=\"650\"\n height=\"433\"\n onerror=\"this.onerror='null';\n this.src='\\/professors\\/site\\/images\\/blog\\/blog-4_hu_96cadc46e7508592.jpg';\" /\u003e\n\n \n \n \n \n \n \n\n\n \n\n","permalink":"/professors/site/blog/post-4/","title":"Red Team Talk: Een Blik Achter de Schermen bij Offensive Security"},{"categories":["cybersecurity","event recap"],"contents":"Cyber Defence on the Digital Frontline: A Mission with NATO On a Mission with NATO: Cyber Defence on the Frontline Howest’s ongoing commitment to world-class cybersecurity training took center stage again as six lecturers from the Cyber Security program joined forces with experts from Latvia, Luxembourg and Belgium in one of NATO\u0026rsquo;s most intensive simulations: the Locked Shields exercise, hosted by the Cooperative Cyber Defence Centre of Excellence (CCDCOE). Now in its fifth year of participation, the Howest team shared their firsthand experiences at a special evening talk at Howest Bruges.\nThe Exercise: Locked Shields Locked Shields is no ordinary simulation. It is a full-scale, live-fire cyber defence exercise involving more than 6,000 machines and a narrative scenario so detailed it includes geopolitics, disinformation and even fictional countries. This year, the Blue Team 03 (our team) defended a simulated nation’s critical infrastructure including power plants, satellites, 5G networks and banking systems, all while under constant attack from a coordinated Red Team using automated scripts and over 28,000 attacks across two days.\nAnd yes, every team (Red, Blue, Yellow, White) uses Ansible. For everything.\nHigh Stakes, Real Lessons What do you do when a rogue process might be malware, or maybe just a poorly named service? What happens when your teammate refuses to act unless something is “officially malicious”? The team faced cultural clashes, communication breakdowns and stress-testing of both systems and people.\nThe exercise required more than technical fixes. It demanded communication with simulated commanders, media and public stakeholders. Reporting became just as important as patching. It taught participants how to translate technical impact into real-world consequences. Not \u0026ldquo;port 8443 unreachable\u0026rdquo;, but \u0026ldquo;our air defence system is degraded, and we cannot fly planes\u0026rdquo;.\nThe Black Team: Rapid Response in Action A new but powerful presence in the simulation was the Black Team, a rapid-response unit deployed when problems became too complex for any single team. Acting like special forces, they jumped in when incidents crossed team boundaries or demanded unconventional solutions. Their mission was to find out what was happening, assess the impact and suggest fast, creative responses. Introduced just last year, this team quickly proved its value again in 2025. They even embraced the role with style “you can wear sunglasses inside” became their unofficial motto.\nTheir presence underlined a critical lesson: not every problem fits neatly within a team’s silo. Real-world defence requires flexibility, speed and lateral thinking.\nHighlights and Blooper Reel There were plenty of mishaps. Misfired scripts, team mix-ups, and one case where a DNS setup from a previous year was reused by mistake. Someone tried renaming cut to shutdown, breaking essential operations until it was fixed. Systems rebooted into chaos, a manual was uploaded to public GitHub, and the team had to quickly learn the difference between symbolic links and real binaries.\nHuman Factors and Growth From detecting malware with Velociraptor and Q9, to encountering teammates who took orders literally, the learning was intense. One participant noted that while Belgian and Luxembourg teams prioritized knowledge sharing, others preferred strict protocol. This highlighted cultural differences and the importance of interpersonal skills.\nThe biggest lesson? You are never fully prepared. Every iteration of Locked Shields is different. But each one sharpens not only your skills, but also your ability to function as a team under extreme conditions.\nFrom the Battlefield to the Classroom This experience directly impacts the classroom. Inspired by the exercise, Howest is introducing new hands-on courses like “Glutamine” in semester five. Students will be dropped into realistic broken networks, with misconfigurations, fake firewalls and simulated threats. It is chaos, but controlled. And that is the point.\nAs one speaker said: “You don’t win Locked Shields. You just survive it better than the rest.”\nFinal Thoughts The exercise teaches more than just cybersecurity. It builds trust. It proves that knowing your teammates can be as important as knowing the tools. Whether that comes from a shared flight or a pre-exercise barbecue, it all matters when the pressure hits.\nWant to see how cyber defence works in real life? This is it.\n","date":"May 13, 2025","image":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n\n \u003cimg\n \n src=\"/professors/site/images/blog/blog-1_hu_8def6289c64a2dc8.webp\" loading=\"lazy\"\n decoding=\"async\"\n \n\n alt=\"\"\n class=\" img\"\n width=\"650\"\n height=\"433\"\n onerror=\"this.onerror='null';\n this.src='\\/professors\\/site\\/images\\/blog\\/blog-1_hu_d77be45b273e444.jpg';\" /\u003e\n\n \n \n \n \n \n \n\n\n \n\n","permalink":"/professors/site/blog/post-1/","title":"Cyber Defence on the Digital Frontline: A Mission with NATO"},{"categories":["cybersecurity","CTF","education"],"contents":"Reversing, Rebuilding, and Failing Better: My Cyber Security Challenge Belgium Qualifier Experience On March 14 and 15, I joined the Cyber Security Challenge Belgium qualifiers with three teammates. For two days, we threw ourselves at CTF challenges covering binary exploitation, Android reversing, cryptography, and more.\nWhat follows is a recap of the challenges I personally worked on, some I solved, some I didn’t—but all of them left me with new skills and new ideas.\nA Buffer Overflow to Warm Up One of the first challenges I picked involved a binary with a basic stack overflow. I used standard techniques, finding the offset, hijacking the return address, and injecting shellcode. Tools like pwntools helped automate the payload crafting. It was a great warm-up and a confidence boost once it worked.\nBinary Exploitation Flag\rOurEncIsSec: Zip Bombs and OEIS Then there was a more elaborate cryptography challenge: 18 zip files, each password-protected. We cracked the first three passwords using John the Ripper and got numeric values from them. I searched the sequence in OEIS and found it matched A007408, which gave us the full pattern of passwords.\nUsing this, I could extract all zip contents automatically, reconstruct the password-protected message, and finally reveal the flag.\nPicture of the solution\rInfinite Luck: One in a Million? One challenge involved “guessing” a thousand random numbers between 1 and 10. The banner claimed it required infinite luck, but of course, the randomness was seeded. After inspecting the generator, I realized it was deterministic. By precomputing seeds and output sequences, I could match the challenge’s banner to a specific seed and regenerate the entire solution.\nChallange picture\rCorrect number order\rAndroid Reversing: FRIDA and JADX Several APKs were part of the qualifier set. I used JADX to decompile them and FRIDA to patch logic at runtime. In one challenge, I bypassed license validation by forcing key methods to return true and unlocking hidden functionality.\nThe Challenge That Stuck with Me: Rebuilding a Split DEX This one stood out.\nThe app used a 4×8 button grid. Pressing buttons loaded a sequence of blockXX files from assets. These were concatenated in-memory and passed into InMemoryDexClassLoader to load a class called be.dauntless.flag.Flag.\nClass loadClass = new InMemoryDexClassLoader(ByteBuffer.wrap(byteArrayOutputStream.toByteArray()), getClassLoader()) .loadClass(\u0026#34;be.dauntless.flag.Flag\u0026#34;); Each block was a fragment of a DEX file, but the app didn’t tell you the right order. I tried manually inspecting the fragments, identifying methods, string constants, and offsets—to infer how to reassemble the full file. I got close, but didn’t crack it in time.\nThat challenge stuck with me because it combined static analysis, runtime introspection, and logic reconstruction. It wasn’t just technical, it was creative.\nThe One That Got Away: TLS Fingerprinting Another challenge involved a Go-based TLS server that rejected all client connections unless they matched a specific fingerprint. I used Go’s tls.Config to replicate the version, cipher suites, and ALPN:\ntls.Config{ MinVersion: tls.VersionTLS13, CipherSuites: []uint16{ tls.TLS_AES_128_GCM_SHA256, // ... }, NextProtos: []string{\u0026#34;h2\u0026#34;}, } Despite that, the server still refused the connection. I suspect it was using JA4 or similar TLS fingerprinting techniques we couldn’t fully emulate. We had to move on, but I’d love to revisit that one someday.\nFinal Thoughts I didn’t solve everything. But that wasn’t the point. Every challenge was a practical puzzle, something to decode, reverse, bypass, or just understand a little better.\nWorking as a team with Evarist, Nathan, and Waut made it even more valuable. We bounced ideas off each other, divided tasks, and got a much broader set of challenges covered.\nThe Cyber Security Challenge Belgium qualifiers weren’t easy. But they were the best kind of difficult, the kind that teaches you something whether you solve the problem or not.\n","date":"March 15, 2025","image":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n\n \u003cimg\n \n src=\"/professors/site/images/blog/post-2/binexpl_hu_3d36b409c72f3586.webp\" loading=\"lazy\"\n decoding=\"async\"\n \n\n alt=\"\"\n class=\" img\"\n width=\"650\"\n height=\"160\"\n onerror=\"this.onerror='null';\n this.src='\\/professors\\/site\\/images\\/blog\\/post-2\\/binexpl_hu_afca672637b6b98d.png';\" /\u003e\n\n \n \n \n \n \n \n\n\n \n\n","permalink":"/professors/site/blog/post-2/","title":"Reversing, Rebuilding, and Failing Better: My Cyber Security Challenge Belgium Qualifier Experience"},{"categories":["cybersecurity","event","defense"],"contents":"Securing Cyberspace: Belgian Cyber Command at Howest On November 12, we had the opportunity to attend a Tech\u0026amp;Meet session unlike any other. The speaker was Colonel Gunther Godefridis, Director for Development \u0026amp; Readiness at Belgian Cyber Command, and the topic: safeguarding our country in the digital domain.\nHeld at Howest Campus Brugge Station, the event drew students, researchers, and professionals eager to understand how military-grade cybersecurity operations are run, and why they matter more than ever.\nDefending in the Digital Age Colonel Godefridis began by outlining the core mission of Belgian Cyber Command: protecting Defense’s networks and weapon systems, supporting intelligence operations (ADIV), and conducting defensive and offensive operations in cyberspace. In short, Cyber Command isn’t just watching traffic, it’s actively shaping Belgium’s digital resilience.\nWith society’s increasing reliance on digital infrastructure, the risks of espionage, disinformation, and attacks on critical systems are no longer theoretical. Godefridis highlighted the urgency of being able to respond to, not just detect, those threats.\nWorking Together: Academia, Industry, Government One theme that stood out was collaboration. Cyber Command doesn’t operate in a vacuum. It works closely with national agencies, NATO partners, academic institutions, and the private sector. The colonel emphasized that defending cyberspace requires broad cooperation, and Belgium’s approach is to engage across domains, military, civil, and industrial.\nHe also made it clear that this isn’t just about defense systems or classified data. As the line between civil and military digital infrastructure blurs, vulnerabilities in civilian systems can become national security issues. That’s where cooperation becomes essential.\nLeading with Innovation With over 20 years in military service, Colonel Godefridis brings a unique perspective. From artillery innovation to defense technology strategy, and now to cyber development, his background reflects the evolving nature of conflict and the military\u0026rsquo;s response.\nHe discussed how innovation, including artificial intelligence, is becoming central to cyber defense. Cyber Command is investing in tools and skills to automate threat detection, analyze large datasets, and simulate attack scenarios. It’s not just about building walls, it’s about staying several moves ahead.\nA Transparent, Human Conversation The Q\u0026amp;A session at the end made the evening especially memorable. Questions ranged from technical details of cyber defense capabilities to the human side of cyber careers: how people are trained, what skills are valued, and how students might contribute.\nColonel Godefridis was honest about the challenges. Cyber operations evolve quickly, and so do adversaries. But he was equally clear about the opportunity: Belgium is building a capability that matters, and it needs talent.\nFinal Thoughts If you walked into this talk expecting a dry presentation on military infrastructure, you were wrong. This session was a deep, realistic, and engaging look into how Belgium is preparing for cyber conflict, and how students like us could be a part of that mission.\nWhether you’re in cybersecurity, software development, or systems engineering, there’s a growing role to play. And as Colonel Godefridis made clear: it’s not just a job. It’s part of defending a society that’s more vulnerable, and more connected, than ever before.\nTip\nWant to learn more about Cyber Command? Visit the official website at mil.be\n","date":"November 12, 2024","image":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n\n \u003cimg\n \n src=\"/professors/site/images/blog/blog-3_hu_fdd9e13d0370b160.webp\" loading=\"lazy\"\n decoding=\"async\"\n \n\n alt=\"\"\n class=\" img\"\n width=\"650\"\n height=\"433\"\n onerror=\"this.onerror='null';\n this.src='\\/professors\\/site\\/images\\/blog\\/blog-3_hu_c932299ff2fa7067.jpg';\" /\u003e\n\n \n \n \n \n \n \n\n\n \n\n","permalink":"/professors/site/blog/post-3/","title":"Securing Cyberspace: Belgian Cyber Command at Howest"},{"categories":null,"contents":"I built my personal blog using Hugo and deployed it on a lightweight Alpine Linux VPS. I chose this setup to have full control, keep things simple, and avoid bloated platforms or services. Here’s how the process went from site generation to live deployment.\nCreating the Hugo Site On my development machine, I created a new Hugo site:\nhugo new site howest-blog I used the professors-hugo theme and copied its exampleSite content into my project. I customized the layout, structure, and styling by editing content files, SCSS in assets/scss/custom.scss, and partial templates in the theme directory.\nAll content lives under content/, with separate folders for blog/ and project/, each containing .md files with front matter and Markdown content.\nCustomization I edited the config/_default/hugo.toml to configure site parameters like the base URL, theme, language, and menus. SCSS and image assets go in assets/, and are processed by Hugo\u0026rsquo;s pipeline. Static files like favicons are placed in static/.\nTo preview the site locally:\nhugo server To build the static site:\nhugo This generates everything in the public/ folder.\nVPS Deployment I rented a minimal Alpine Linux VPS and installed only what I needed. After setting up SSH and a basic nginx web server, I copied the public/ folder over using scp:\nscp -r public/* user@my-vps:/var/www/html On the VPS, I installed nginx:\napk add nginx And configured /etc/nginx/conf.d/default.conf to serve files from /var/www/html. Then I enabled and started nginx:\nrc-service nginx start rc-update add nginx Now my Hugo site is live and served directly as static files, no backend, no database, just HTML, CSS, and JS.\nWhy Alpine + Hugo? Alpine Linux is minimal and fast, perfect for serving static sites with low resource usage. Combined with Hugo’s speed and flexibility, I get a complete, performant setup that I fully control. It’s secure, lightweight, and easy to update, just rebuild and re-upload the public/ folder.\nThis setup is perfect if you want full control and minimal overhead for a personal blog or portfolio.\n","date":"May 29, 2025","image":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n\n \u003cimg\n \n src=\"/professors/site/images/project/project-2_hu_b10de0491c6514dc.webp\" loading=\"lazy\"\n decoding=\"async\"\n \n\n alt=\"\"\n class=\" img\"\n width=\"650\"\n height=\"278\"\n onerror=\"this.onerror='null';\n this.src='\\/professors\\/site\\/images\\/project\\/project-2_hu_3550dd40bf159427.jpg';\" /\u003e\n\n \n \n \n \n \n \n\n\n \n\n","permalink":"/professors/site/project/project-2/","title":"Building My Hugo Website on a VPS"},{"categories":null,"contents":"DRMDTool is an automation-centric utility designed to streamline the processing of .drmd files by tightly integrating with the N_m3u8DL-RE downloader. The tool offers robust automation via a watch folder and an intuitive web-based interface, significantly reducing the friction for managing and processing DRM-protected streaming content.\nWhat’s New DRMDTool has evolved into a comprehensive platform for batch downloading with enhanced support for user interaction and background processing. It features granular job tracking, dynamic download control (pause, resume, abort), and a refined WebSocket-based console for real-time command output. Subtitle handling now includes automatic downloading and conversion from VTT to SRT, and the downloader adapts based on metadata, organizing content into categorized directories.\nGoals and Use Case The primary aim is to automate .drmd file processing with minimal manual input. Users can configure download formats, specify directories, and enable real-time command broadcasting. DRMDTool is suitable for both interactive use through a web UI and headless automation in pipelines, supporting inotify or polling-based folder watching.\nHow .drmd Files Work A .drmd file is a structured JSON document that defines one or more encrypted media items to be processed by DRMDTool. It contains an Items array, with each item representing a specific media job. DRMDTool parses these entries to generate download commands for N_m3u8DL-RE.\nEach item includes:\nMPD: A DASH manifest, either a direct URL or a base64-encoded version. If base64-encoded, DRMDTool decodes and temporarily saves it before use. Keys: A comma-separated list of KID:key pairs (e.g., abcd1234ef567890:00112233445566778899aabbccddeeff). These are required for decrypting encrypted media streams and are passed directly to N_m3u8DL-RE using --key flags. Filename: The name to be used for the final output file. Subtitles: Comma-separated list of subtitle URLs in .vtt format. DRMDTool downloads and converts these to .srt, then muxes them into the final file. Metadata: A semicolon-separated string like Title;Type;Season (e.g., Example Show;serie;1) used to determine directory structure (Movies/Title or Series/Title/Season). Description and Poster: Optional fields used only for display in the web UI. Example .drmd Structure { \u0026#34;Items\u0026#34;: [ { \u0026#34;MPD\u0026#34;: \u0026#34;aHR0cHM6Ly9leGFtcGxlLmNvbS9zdHJlYW0ubXBk\u0026#34;, \u0026#34;Keys\u0026#34;: \u0026#34;abcd1234ef567890:00112233445566778899aabbccddeeff\u0026#34;, \u0026#34;Filename\u0026#34;: \u0026#34;ExampleShow.S01E01\u0026#34;, \u0026#34;Subtitles\u0026#34;: \u0026#34;https://example.com/sub1.vtt,https://example.com/sub2.vtt\u0026#34;, \u0026#34;Metadata\u0026#34;: \u0026#34;Example Show;serie;1\u0026#34;, \u0026#34;Description\u0026#34;: \u0026#34;Pilot episode\u0026#34;, \u0026#34;Poster\u0026#34;: \u0026#34;\u0026#34; } ] } Processing Steps Detection: DRMDTool either watches a folder or receives .drmd uploads through the web UI. Validation: It waits for the file to finish writing (based on file size stability), then parses its contents. MPD Handling: If base64-encoded, the MPD is decoded and written to a temp file; otherwise, the URL is fetched or passed as-is. Command Generation: Using the MPD, KID:key pairs, output paths, and subtitles, DRMDTool builds a command line for N_m3u8DL-RE. Execution: The download is launched with live progress tracking. Users can pause, resume, or abort jobs, and optionally stream console output via WebSocket. These files serve as portable job definitions. When DRMDTool detects or receives a .drmd file, it parses the items, decodes or downloads the MPD, applies the keys, and builds a download command using N_m3u8DL-RE. Files are saved in organized directories like Movies/Title or Series/Title/Season, and subtitles are embedded if available. Pausing, resuming, and aborting downloads is supported per file.\nArchitecture Overview The configuration is handled via config.toml, with environment variable overrides for containerized or dynamic deployments. Once started, the tool can either monitor a specified folder or allow file uploads through the UI. Each .drmd file is parsed, grouped by series and season (if applicable), and processed sequentially with support for job pausing and resuming.\nWeb UI \u0026amp; CLI To use:\n./drmdtool Visit http://localhost:8080 for the web interface, which supports drag-and-drop uploads, selection of episodes or movies, and real-time progress tracking. For headless operation:\n./drmdtool -f /path/to/file.drmd Jobs can be paused, resumed, or aborted through the web interface, which reflects the backend state via live updates.\nEnhanced Download Logic DRMDTool dynamically builds download commands using metadata from .drmd files and user preferences. It ensures that only the highest quality streams are kept, removing ad periods and duplicate segments from the MPD files. Subtitles are fetched and embedded automatically. Jobs are tracked with robust state management and logs for debugging and visibility.\nRepository Code and setup instructions are hosted here: https://git.directme.in/Joren/DRMDTool\nDRMDtool For advanced usage details, customization, and API structure, refer to the README.md in the repository.\n","date":"May 21, 2025","image":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n\n \u003cimg\n \n src=\"/professors/site/images/project/project-1_hu_3db5ce4165d1b6f3.webp\" loading=\"lazy\"\n decoding=\"async\"\n \n\n alt=\"\"\n class=\" img\"\n width=\"650\"\n height=\"396\"\n onerror=\"this.onerror='null';\n this.src='\\/professors\\/site\\/images\\/project\\/project-1_hu_7691192a371c30a3.jpg';\" /\u003e\n\n \n \n \n \n \n \n\n\n \n\n","permalink":"/professors/site/project/project-1/","title":"DRMDTool Project"},{"categories":["cybersecurity","podcast","interview"],"contents":"Red Team Talk: Een Blik Achter de Schermen bij Offensive Security In deze eerste aflevering van Red Team Talk nemen wij, Joren Schipman en Mattia Punjwani, studenten Cybersecurity aan Howest, jullie mee in een gesprek met Thomas Castronovo, ethical hacker en consultant bij Deloitte. Samen duiken we in de wereld van offensieve security, red teaming, en de realiteit van een carrière als pentester.\nVan Interesse tot Loopbaan Thomas deelt hoe zijn interesse in cybersecurity begon tijdens zijn opleiding, met hands-on projecten zoals het hacken van virtuele machines. Een stage bij Deloitte in 2019 zette hem op het pad naar een voltijdse functie binnen het Offensive Security Team. Vandaag werkt hij al drie jaar bij Deloitte België en specialiseert hij zich in offensieve testen.\nOffensive vs. Defensive Security Hoewel zijn hart bij offensieve security ligt, kreeg hij recent ook ervaring aan de defensieve kant. Het leverde hem een breder perspectief op: “Het geeft een heel ander zicht op hoe aanvallen eruitzien vanuit de andere kant.” Toch blijft het red team werk zijn voorkeur behouden.\nWat doet een pentester nu echt? Thomas legt uit hoe een typische pentest verloopt: van het ontvangen van de scope, over het scannen van het netwerk en het zoeken naar kwetsbaarheden, tot het rapporteren van bevindingen. Tools zoals Nessus, BloodHound en PingCastle worden ingezet, vaak gecombineerd met zelfgebouwde scripts die de output analyseren en structureren.\nKwetsbaarheden in Active Directory Een groot deel van zijn werk focust op Active Directory (AD), waar hij telkens weer dezelfde pijnpunten tegenkomt: legacy-instellingen, onvoldoende gepatchte systemen, en misconfiguraties die vaak pas worden rechtgezet na een echte aanval. Twee voorbeelden die hij aanhaalt:\nLLMNR/MDNS/NetBIOS poisoning om credentials te verkrijgen DNS wildcard records die leiden tot man-in-the-middle aanvallen Tools, Tips en Oefenen Voor wie zelf wil beginnen raadt hij aan om zelf een AD op te zetten en tools als PingCastle en BloodHound uit te proberen. De meeste kennis verwerf je volgens Thomas door zelf te oefenen, dingen stuk te maken, en vooral: blijven proberen.\nDe Praktijk vs. Certificaten Hoewel certificaten nuttig zijn (zoals WPT voor webapp testing), benadrukt Thomas dat de echte leerschool het werkveld is. “90% van wat ik weet, heb ik geleerd door het gewoon te doen,” zegt hij. Oefenen op Hack The Box, zelf een netwerk opzetten, en leren van collega’s zijn voor hem essentieel.\nAfsluiter De aflevering toont hoe breed het vakgebied offensive security is: van interne pentests tot phishingcampagnes, van legacy exploits tot zero-days. Maar vooral: het is een vak waar creativiteit en nieuwsgierigheid centraal staan.\n","date":"May 20, 2025","image":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n\n \u003cimg\n \n src=\"/professors/site/images/blog/blog-4_hu_8ddea2f052660626.webp\" loading=\"lazy\"\n decoding=\"async\"\n \n\n alt=\"\"\n class=\" img\"\n width=\"650\"\n height=\"433\"\n onerror=\"this.onerror='null';\n this.src='\\/professors\\/site\\/images\\/blog\\/blog-4_hu_96cadc46e7508592.jpg';\" /\u003e\n\n \n \n \n \n \n \n\n\n \n\n","permalink":"/professors/site/blog/post-4/","title":"Red Team Talk: Een Blik Achter de Schermen bij Offensive Security"},{"categories":["cybersecurity","event recap"],"contents":"Cyber Defence on the Digital Frontline: A Mission with NATO On a Mission with NATO: Cyber Defence on the Frontline Howest’s ongoing commitment to world-class cybersecurity training took center stage again as six lecturers from the Cyber Security program joined forces with experts from Latvia, Luxembourg and Belgium in one of NATO\u0026rsquo;s most intensive simulations: the Locked Shields exercise, hosted by the Cooperative Cyber Defence Centre of Excellence (CCDCOE). Now in its fifth year of participation, the Howest team shared their firsthand experiences at a special evening talk at Howest Bruges.\nThe Exercise: Locked Shields Locked Shields is no ordinary simulation. It is a full-scale, live-fire cyber defence exercise involving more than 6,000 machines and a narrative scenario so detailed it includes geopolitics, disinformation and even fictional countries. This year, the Blue Team 03 (our team) defended a simulated nation’s critical infrastructure including power plants, satellites, 5G networks and banking systems, all while under constant attack from a coordinated Red Team using automated scripts and over 28,000 attacks across two days.\nAnd yes, every team (Red, Blue, Yellow, White) uses Ansible. For everything.\nHigh Stakes, Real Lessons What do you do when a rogue process might be malware, or maybe just a poorly named service? What happens when your teammate refuses to act unless something is “officially malicious”? The team faced cultural clashes, communication breakdowns and stress-testing of both systems and people.\nThe exercise required more than technical fixes. It demanded communication with simulated commanders, media and public stakeholders. Reporting became just as important as patching. It taught participants how to translate technical impact into real-world consequences. Not \u0026ldquo;port 8443 unreachable\u0026rdquo;, but \u0026ldquo;our air defence system is degraded, and we cannot fly planes\u0026rdquo;.\nThe Black Team: Rapid Response in Action A new but powerful presence in the simulation was the Black Team, a rapid-response unit deployed when problems became too complex for any single team. Acting like special forces, they jumped in when incidents crossed team boundaries or demanded unconventional solutions. Their mission was to find out what was happening, assess the impact and suggest fast, creative responses. Introduced just last year, this team quickly proved its value again in 2025. They even embraced the role with style “you can wear sunglasses inside” became their unofficial motto.\nTheir presence underlined a critical lesson: not every problem fits neatly within a team’s silo. Real-world defence requires flexibility, speed and lateral thinking.\nHighlights and Blooper Reel There were plenty of mishaps. Misfired scripts, team mix-ups, and one case where a DNS setup from a previous year was reused by mistake. Someone tried renaming cut to shutdown, breaking essential operations until it was fixed. Systems rebooted into chaos, a manual was uploaded to public GitHub, and the team had to quickly learn the difference between symbolic links and real binaries.\nHuman Factors and Growth From detecting malware with Velociraptor and Q9, to encountering teammates who took orders literally, the learning was intense. One participant noted that while Belgian and Luxembourg teams prioritized knowledge sharing, others preferred strict protocol. This highlighted cultural differences and the importance of interpersonal skills.\nThe biggest lesson? You are never fully prepared. Every iteration of Locked Shields is different. But each one sharpens not only your skills, but also your ability to function as a team under extreme conditions.\nFrom the Battlefield to the Classroom This experience directly impacts the classroom. Inspired by the exercise, Howest is introducing new hands-on courses like “Glutamine” in semester five. Students will be dropped into realistic broken networks, with misconfigurations, fake firewalls and simulated threats. It is chaos, but controlled. And that is the point.\nAs one speaker said: “You don’t win Locked Shields. You just survive it better than the rest.”\nFinal Thoughts The exercise teaches more than just cybersecurity. It builds trust. It proves that knowing your teammates can be as important as knowing the tools. Whether that comes from a shared flight or a pre-exercise barbecue, it all matters when the pressure hits.\nWant to see how cyber defence works in real life? This is it.\n","date":"May 13, 2025","image":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n\n \u003cimg\n \n src=\"/professors/site/images/blog/blog-1_hu_8def6289c64a2dc8.webp\" loading=\"lazy\"\n decoding=\"async\"\n \n\n alt=\"\"\n class=\" img\"\n width=\"650\"\n height=\"433\"\n onerror=\"this.onerror='null';\n this.src='\\/professors\\/site\\/images\\/blog\\/blog-1_hu_d77be45b273e444.jpg';\" /\u003e\n\n \n \n \n \n \n \n\n\n \n\n","permalink":"/professors/site/blog/post-1/","title":"Cyber Defence on the Digital Frontline: A Mission with NATO"},{"categories":["cybersecurity","CTF","education"],"contents":"Reversing, Rebuilding, and Failing Better: My Cyber Security Challenge Belgium Qualifier Experience On March 14 and 15, I joined the Cyber Security Challenge Belgium qualifiers with three teammates. For two days, we threw ourselves at CTF challenges covering binary exploitation, Android reversing, cryptography, and more.\nWhat follows is a recap of the challenges I personally worked on, some I solved, some I didn’t—but all of them left me with new skills and new ideas.\nA Buffer Overflow to Warm Up One of the first challenges I picked involved a binary with a basic stack overflow. I used standard techniques, finding the offset, hijacking the return address, and injecting shellcode. Tools like pwntools helped automate the payload crafting. It was a great warm-up and a confidence boost once it worked.\nBinary Exploitation Flag\rOurEncIsSec: Zip Bombs and OEIS Then there was a more elaborate cryptography challenge: 18 zip files, each password-protected. We cracked the first three passwords using John the Ripper and got numeric values from them. I searched the sequence in OEIS and found it matched A007408, which gave us the full pattern of passwords.\nUsing this, I could extract all zip contents automatically, reconstruct the password-protected message, and finally reveal the flag.\nPicture of the solution\rInfinite Luck: One in a Million? One challenge involved “guessing” a thousand random numbers between 1 and 10. The banner claimed it required infinite luck, but of course, the randomness was seeded. After inspecting the generator, I realized it was deterministic. By precomputing seeds and output sequences, I could match the challenge’s banner to a specific seed and regenerate the entire solution.\nChallange picture\rCorrect number order\rAndroid Reversing: FRIDA and JADX Several APKs were part of the qualifier set. I used JADX to decompile them and FRIDA to patch logic at runtime. In one challenge, I bypassed license validation by forcing key methods to return true and unlocking hidden functionality.\nThe Challenge That Stuck with Me: Rebuilding a Split DEX This one stood out.\nThe app used a 4×8 button grid. Pressing buttons loaded a sequence of blockXX files from assets. These were concatenated in-memory and passed into InMemoryDexClassLoader to load a class called be.dauntless.flag.Flag.\nClass loadClass = new InMemoryDexClassLoader(ByteBuffer.wrap(byteArrayOutputStream.toByteArray()), getClassLoader()) .loadClass(\u0026#34;be.dauntless.flag.Flag\u0026#34;); Each block was a fragment of a DEX file, but the app didn’t tell you the right order. I tried manually inspecting the fragments, identifying methods, string constants, and offsets—to infer how to reassemble the full file. I got close, but didn’t crack it in time.\nThat challenge stuck with me because it combined static analysis, runtime introspection, and logic reconstruction. It wasn’t just technical, it was creative.\nThe One That Got Away: TLS Fingerprinting Another challenge involved a Go-based TLS server that rejected all client connections unless they matched a specific fingerprint. I used Go’s tls.Config to replicate the version, cipher suites, and ALPN:\ntls.Config{ MinVersion: tls.VersionTLS13, CipherSuites: []uint16{ tls.TLS_AES_128_GCM_SHA256, // ... }, NextProtos: []string{\u0026#34;h2\u0026#34;}, } Despite that, the server still refused the connection. I suspect it was using JA4 or similar TLS fingerprinting techniques we couldn’t fully emulate. We had to move on, but I’d love to revisit that one someday.\nFinal Thoughts I didn’t solve everything. But that wasn’t the point. Every challenge was a practical puzzle, something to decode, reverse, bypass, or just understand a little better.\nWorking as a team with Evarist, Nathan, and Waut made it even more valuable. We bounced ideas off each other, divided tasks, and got a much broader set of challenges covered.\nThe Cyber Security Challenge Belgium qualifiers weren’t easy. But they were the best kind of difficult, the kind that teaches you something whether you solve the problem or not.\n","date":"March 15, 2025","image":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n\n \u003cimg\n \n src=\"/professors/site/images/blog/post-2/binexpl_hu_3d36b409c72f3586.webp\" loading=\"lazy\"\n decoding=\"async\"\n \n\n alt=\"\"\n class=\" img\"\n width=\"650\"\n height=\"160\"\n onerror=\"this.onerror='null';\n this.src='\\/professors\\/site\\/images\\/blog\\/post-2\\/binexpl_hu_afca672637b6b98d.png';\" /\u003e\n\n \n \n \n \n \n \n\n\n \n\n","permalink":"/professors/site/blog/post-2/","title":"Reversing, Rebuilding, and Failing Better: My Cyber Security Challenge Belgium Qualifier Experience"},{"categories":["cybersecurity","event","defense"],"contents":"Securing Cyberspace: Belgian Cyber Command at Howest On November 12, we had the opportunity to attend a Tech\u0026amp;Meet session unlike any other. The speaker was Colonel Gunther Godefridis, Director for Development \u0026amp; Readiness at Belgian Cyber Command, and the topic: safeguarding our country in the digital domain.\nHeld at Howest Campus Brugge Station, the event drew students, researchers, and professionals eager to understand how military-grade cybersecurity operations are run, and why they matter more than ever.\nDefending in the Digital Age Colonel Godefridis began by outlining the core mission of Belgian Cyber Command: protecting Defense’s networks and weapon systems, supporting intelligence operations (ADIV), and conducting defensive and offensive operations in cyberspace. In short, Cyber Command isn’t just watching traffic, it’s actively shaping Belgium’s digital resilience.\nWith society’s increasing reliance on digital infrastructure, the risks of espionage, disinformation, and attacks on critical systems are no longer theoretical. Godefridis highlighted the urgency of being able to respond to, not just detect, those threats.\nWorking Together: Academia, Industry, Government One theme that stood out was collaboration. Cyber Command doesn’t operate in a vacuum. It works closely with national agencies, NATO partners, academic institutions, and the private sector. The colonel emphasized that defending cyberspace requires broad cooperation, and Belgium’s approach is to engage across domains, military, civil, and industrial.\nHe also made it clear that this isn’t just about defense systems or classified data. As the line between civil and military digital infrastructure blurs, vulnerabilities in civilian systems can become national security issues. That’s where cooperation becomes essential.\nLeading with Innovation With over 20 years in military service, Colonel Godefridis brings a unique perspective. From artillery innovation to defense technology strategy, and now to cyber development, his background reflects the evolving nature of conflict and the military\u0026rsquo;s response.\nHe discussed how innovation, including artificial intelligence, is becoming central to cyber defense. Cyber Command is investing in tools and skills to automate threat detection, analyze large datasets, and simulate attack scenarios. It’s not just about building walls, it’s about staying several moves ahead.\nA Transparent, Human Conversation The Q\u0026amp;A session at the end made the evening especially memorable. Questions ranged from technical details of cyber defense capabilities to the human side of cyber careers: how people are trained, what skills are valued, and how students might contribute.\nColonel Godefridis was honest about the challenges. Cyber operations evolve quickly, and so do adversaries. But he was equally clear about the opportunity: Belgium is building a capability that matters, and it needs talent.\nFinal Thoughts If you walked into this talk expecting a dry presentation on military infrastructure, you were wrong. This session was a deep, realistic, and engaging look into how Belgium is preparing for cyber conflict, and how students like us could be a part of that mission.\nWhether you’re in cybersecurity, software development, or systems engineering, there’s a growing role to play. And as Colonel Godefridis made clear: it’s not just a job. It’s part of defending a society that’s more vulnerable, and more connected, than ever before.\nTip\nWant to learn more about Cyber Command? Visit the official website at mil.be\n","date":"November 12, 2024","image":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n\n \u003cimg\n \n src=\"/professors/site/images/blog/blog-3_hu_fdd9e13d0370b160.webp\" loading=\"lazy\"\n decoding=\"async\"\n \n\n alt=\"\"\n class=\" img\"\n width=\"650\"\n height=\"433\"\n onerror=\"this.onerror='null';\n this.src='\\/professors\\/site\\/images\\/blog\\/blog-3_hu_c932299ff2fa7067.jpg';\" /\u003e\n\n \n \n \n \n \n \n\n\n \n\n","permalink":"/professors/site/blog/post-3/","title":"Securing Cyberspace: Belgian Cyber Command at Howest"}] \ No newline at end of file +[{"categories":null,"contents":"I built my personal blog using Hugo and deployed it on a lightweight Alpine Linux VPS. I chose this setup to have full control, keep things simple, and avoid bloated platforms or services. Here’s how the process went from site generation to live deployment.\nCreating the Hugo Site On my development machine, I created a new Hugo site:\nhugo new site howest-blog I used the professors-hugo theme and copied its exampleSite content into my project. I customized the layout, structure, and styling by editing content files, SCSS in assets/scss/custom.scss, and partial templates in the theme directory.\nAll content lives under content/, with separate folders for blog/ and project/, each containing .md files with front matter and Markdown content.\nCustomization I edited the config/_default/hugo.toml to configure site parameters like the base URL, theme, language, and menus. SCSS and image assets go in assets/, and are processed by Hugo\u0026rsquo;s pipeline. Static files like favicons are placed in static/.\nTo preview the site locally:\nhugo server To build the static site:\nhugo This generates everything in the public/ folder.\nVPS Deployment I rented a minimal Alpine Linux VPS and installed only what I needed. After setting up SSH and a basic nginx web server, I copied the public/ folder over using scp:\nscp -r public/* user@my-vps:/var/www/html On the VPS, I installed nginx:\napk add nginx And configured /etc/nginx/conf.d/default.conf to serve files from /var/www/html. Then I enabled and started nginx:\nrc-service nginx start rc-update add nginx Now my Hugo site is live and served directly as static files, no backend, no database, just HTML, CSS, and JS.\nWhy Alpine + Hugo? Alpine Linux is minimal and fast, perfect for serving static sites with low resource usage. Combined with Hugo’s speed and flexibility, I get a complete, performant setup that I fully control. It’s secure, lightweight, and easy to update, just rebuild and re-upload the public/ folder.\nThis setup is perfect if you want full control and minimal overhead for a personal blog or portfolio.\n","date":"May 29, 2025","image":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n\n \u003cimg\n \n src=\"/images/project/project-2_hu_b10de0491c6514dc.webp\" loading=\"lazy\"\n decoding=\"async\"\n \n\n alt=\"\"\n class=\" img\"\n width=\"650\"\n height=\"278\"\n onerror=\"this.onerror='null';\n this.src='\\/images\\/project\\/project-2_hu_3550dd40bf159427.jpg';\" /\u003e\n\n \n \n \n \n \n \n\n\n \n\n","permalink":"/project/project-2/","title":"Building My Hugo Website on a VPS"},{"categories":null,"contents":"DRMDTool is an automation-centric utility designed to streamline the processing of .drmd files by tightly integrating with the N_m3u8DL-RE downloader. The tool offers robust automation via a watch folder and an intuitive web-based interface, significantly reducing the friction for managing and processing DRM-protected streaming content.\nWhat’s New DRMDTool has evolved into a comprehensive platform for batch downloading with enhanced support for user interaction and background processing. It features granular job tracking, dynamic download control (pause, resume, abort), and a refined WebSocket-based console for real-time command output. Subtitle handling now includes automatic downloading and conversion from VTT to SRT, and the downloader adapts based on metadata, organizing content into categorized directories.\nGoals and Use Case The primary aim is to automate .drmd file processing with minimal manual input. Users can configure download formats, specify directories, and enable real-time command broadcasting. DRMDTool is suitable for both interactive use through a web UI and headless automation in pipelines, supporting inotify or polling-based folder watching.\nHow .drmd Files Work A .drmd file is a structured JSON document that defines one or more encrypted media items to be processed by DRMDTool. It contains an Items array, with each item representing a specific media job. DRMDTool parses these entries to generate download commands for N_m3u8DL-RE.\nEach item includes:\nMPD: A DASH manifest, either a direct URL or a base64-encoded version. If base64-encoded, DRMDTool decodes and temporarily saves it before use. Keys: A comma-separated list of KID:key pairs (e.g., abcd1234ef567890:00112233445566778899aabbccddeeff). These are required for decrypting encrypted media streams and are passed directly to N_m3u8DL-RE using --key flags. Filename: The name to be used for the final output file. Subtitles: Comma-separated list of subtitle URLs in .vtt format. DRMDTool downloads and converts these to .srt, then muxes them into the final file. Metadata: A semicolon-separated string like Title;Type;Season (e.g., Example Show;serie;1) used to determine directory structure (Movies/Title or Series/Title/Season). Description and Poster: Optional fields used only for display in the web UI. Example .drmd Structure { \u0026#34;Items\u0026#34;: [ { \u0026#34;MPD\u0026#34;: \u0026#34;aHR0cHM6Ly9leGFtcGxlLmNvbS9zdHJlYW0ubXBk\u0026#34;, \u0026#34;Keys\u0026#34;: \u0026#34;abcd1234ef567890:00112233445566778899aabbccddeeff\u0026#34;, \u0026#34;Filename\u0026#34;: \u0026#34;ExampleShow.S01E01\u0026#34;, \u0026#34;Subtitles\u0026#34;: \u0026#34;https://example.com/sub1.vtt,https://example.com/sub2.vtt\u0026#34;, \u0026#34;Metadata\u0026#34;: \u0026#34;Example Show;serie;1\u0026#34;, \u0026#34;Description\u0026#34;: \u0026#34;Pilot episode\u0026#34;, \u0026#34;Poster\u0026#34;: \u0026#34;\u0026#34; } ] } Processing Steps Detection: DRMDTool either watches a folder or receives .drmd uploads through the web UI. Validation: It waits for the file to finish writing (based on file size stability), then parses its contents. MPD Handling: If base64-encoded, the MPD is decoded and written to a temp file; otherwise, the URL is fetched or passed as-is. Command Generation: Using the MPD, KID:key pairs, output paths, and subtitles, DRMDTool builds a command line for N_m3u8DL-RE. Execution: The download is launched with live progress tracking. Users can pause, resume, or abort jobs, and optionally stream console output via WebSocket. These files serve as portable job definitions. When DRMDTool detects or receives a .drmd file, it parses the items, decodes or downloads the MPD, applies the keys, and builds a download command using N_m3u8DL-RE. Files are saved in organized directories like Movies/Title or Series/Title/Season, and subtitles are embedded if available. Pausing, resuming, and aborting downloads is supported per file.\nArchitecture Overview The configuration is handled via config.toml, with environment variable overrides for containerized or dynamic deployments. Once started, the tool can either monitor a specified folder or allow file uploads through the UI. Each .drmd file is parsed, grouped by series and season (if applicable), and processed sequentially with support for job pausing and resuming.\nWeb UI \u0026amp; CLI To use:\n./drmdtool Visit http://localhost:8080 for the web interface, which supports drag-and-drop uploads, selection of episodes or movies, and real-time progress tracking. For headless operation:\n./drmdtool -f /path/to/file.drmd Jobs can be paused, resumed, or aborted through the web interface, which reflects the backend state via live updates.\nEnhanced Download Logic DRMDTool dynamically builds download commands using metadata from .drmd files and user preferences. It ensures that only the highest quality streams are kept, removing ad periods and duplicate segments from the MPD files. Subtitles are fetched and embedded automatically. Jobs are tracked with robust state management and logs for debugging and visibility.\nRepository Code and setup instructions are hosted here: https://git.directme.in/Joren/DRMDTool\nDRMDtool For advanced usage details, customization, and API structure, refer to the README.md in the repository.\n","date":"May 21, 2025","image":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n\n \u003cimg\n \n src=\"/images/project/project-1_hu_3db5ce4165d1b6f3.webp\" loading=\"lazy\"\n decoding=\"async\"\n \n\n alt=\"\"\n class=\" img\"\n width=\"650\"\n height=\"396\"\n onerror=\"this.onerror='null';\n this.src='\\/images\\/project\\/project-1_hu_7691192a371c30a3.jpg';\" /\u003e\n\n \n \n \n \n \n \n\n\n \n\n","permalink":"/project/project-1/","title":"DRMDTool Project"},{"categories":["cybersecurity","podcast","interview"],"contents":"Red Team Talk: Een Blik Achter de Schermen bij Offensive Security In deze eerste aflevering van Red Team Talk nemen wij, Joren Schipman en Mattia Punjwani, studenten Cybersecurity aan Howest, jullie mee in een gesprek met Thomas Castronovo, ethical hacker en consultant bij Deloitte. Samen duiken we in de wereld van offensieve security, red teaming, en de realiteit van een carrière als pentester.\nVan Interesse tot Loopbaan Thomas deelt hoe zijn interesse in cybersecurity begon tijdens zijn opleiding, met hands-on projecten zoals het hacken van virtuele machines. Een stage bij Deloitte in 2019 zette hem op het pad naar een voltijdse functie binnen het Offensive Security Team. Vandaag werkt hij al drie jaar bij Deloitte België en specialiseert hij zich in offensieve testen.\nOffensive vs. Defensive Security Hoewel zijn hart bij offensieve security ligt, kreeg hij recent ook ervaring aan de defensieve kant. Het leverde hem een breder perspectief op: “Het geeft een heel ander zicht op hoe aanvallen eruitzien vanuit de andere kant.” Toch blijft het red team werk zijn voorkeur behouden.\nWat doet een pentester nu echt? Thomas legt uit hoe een typische pentest verloopt: van het ontvangen van de scope, over het scannen van het netwerk en het zoeken naar kwetsbaarheden, tot het rapporteren van bevindingen. Tools zoals Nessus, BloodHound en PingCastle worden ingezet, vaak gecombineerd met zelfgebouwde scripts die de output analyseren en structureren.\nKwetsbaarheden in Active Directory Een groot deel van zijn werk focust op Active Directory (AD), waar hij telkens weer dezelfde pijnpunten tegenkomt: legacy-instellingen, onvoldoende gepatchte systemen, en misconfiguraties die vaak pas worden rechtgezet na een echte aanval. Twee voorbeelden die hij aanhaalt:\nLLMNR/MDNS/NetBIOS poisoning om credentials te verkrijgen DNS wildcard records die leiden tot man-in-the-middle aanvallen Tools, Tips en Oefenen Voor wie zelf wil beginnen raadt hij aan om zelf een AD op te zetten en tools als PingCastle en BloodHound uit te proberen. De meeste kennis verwerf je volgens Thomas door zelf te oefenen, dingen stuk te maken, en vooral: blijven proberen.\nDe Praktijk vs. Certificaten Hoewel certificaten nuttig zijn (zoals WPT voor webapp testing), benadrukt Thomas dat de echte leerschool het werkveld is. “90% van wat ik weet, heb ik geleerd door het gewoon te doen,” zegt hij. Oefenen op Hack The Box, zelf een netwerk opzetten, en leren van collega’s zijn voor hem essentieel.\nAfsluiter De aflevering toont hoe breed het vakgebied offensive security is: van interne pentests tot phishingcampagnes, van legacy exploits tot zero-days. Maar vooral: het is een vak waar creativiteit en nieuwsgierigheid centraal staan.\n","date":"May 20, 2025","image":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n\n \u003cimg\n \n src=\"/images/blog/blog-4_hu_8ddea2f052660626.webp\" loading=\"lazy\"\n decoding=\"async\"\n \n\n alt=\"\"\n class=\" img\"\n width=\"650\"\n height=\"433\"\n onerror=\"this.onerror='null';\n this.src='\\/images\\/blog\\/blog-4_hu_96cadc46e7508592.jpg';\" /\u003e\n\n \n \n \n \n \n \n\n\n \n\n","permalink":"/blog/post-4/","title":"Red Team Talk: Een Blik Achter de Schermen bij Offensive Security"},{"categories":["cybersecurity","event"],"contents":"Cyber Defence on the Digital Frontline: A Mission with NATO On a Mission with NATO: Cyber Defence on the Frontline Howest’s ongoing commitment to world-class cybersecurity training took center stage again as six lecturers from the Cyber Security program joined forces with experts from Latvia, Luxembourg and Belgium in one of NATO\u0026rsquo;s most intensive simulations: the Locked Shields exercise, hosted by the Cooperative Cyber Defence Centre of Excellence (CCDCOE). Now in its fifth year of participation, the Howest team shared their firsthand experiences at a special evening talk at Howest Bruges.\nThe Exercise: Locked Shields Locked Shields is no ordinary simulation. It is a full-scale, live-fire cyber defence exercise involving more than 6,000 machines and a narrative scenario so detailed it includes geopolitics, disinformation and even fictional countries. This year, the Blue Team 03 (our team) defended a simulated nation’s critical infrastructure including power plants, satellites, 5G networks and banking systems, all while under constant attack from a coordinated Red Team using automated scripts and over 28,000 attacks across two days.\nAnd yes, every team (Red, Blue, Yellow, White) uses Ansible. For everything.\nHigh Stakes, Real Lessons What do you do when a rogue process might be malware, or maybe just a poorly named service? What happens when your teammate refuses to act unless something is “officially malicious”? The team faced cultural clashes, communication breakdowns and stress-testing of both systems and people.\nThe exercise required more than technical fixes. It demanded communication with simulated commanders, media and public stakeholders. Reporting became just as important as patching. It taught participants how to translate technical impact into real-world consequences. Not \u0026ldquo;port 8443 unreachable\u0026rdquo;, but \u0026ldquo;our air defence system is degraded, and we cannot fly planes\u0026rdquo;.\nThe Black Team: Rapid Response in Action A new but powerful presence in the simulation was the Black Team, a rapid-response unit deployed when problems became too complex for any single team. Acting like special forces, they jumped in when incidents crossed team boundaries or demanded unconventional solutions. Their mission was to find out what was happening, assess the impact and suggest fast, creative responses. Introduced just last year, this team quickly proved its value again in 2025. They even embraced the role with style “you can wear sunglasses inside” became their unofficial motto.\nTheir presence underlined a critical lesson: not every problem fits neatly within a team’s silo. Real-world defence requires flexibility, speed and lateral thinking.\nHighlights and Blooper Reel There were plenty of mishaps. Misfired scripts, team mix-ups, and one case where a DNS setup from a previous year was reused by mistake. Someone tried renaming cut to shutdown, breaking essential operations until it was fixed. Systems rebooted into chaos, a manual was uploaded to public GitHub, and the team had to quickly learn the difference between symbolic links and real binaries.\nHuman Factors and Growth From detecting malware with Velociraptor and Q9, to encountering teammates who took orders literally, the learning was intense. One participant noted that while Belgian and Luxembourg teams prioritized knowledge sharing, others preferred strict protocol. This highlighted cultural differences and the importance of interpersonal skills.\nThe biggest lesson? You are never fully prepared. Every iteration of Locked Shields is different. But each one sharpens not only your skills, but also your ability to function as a team under extreme conditions.\nFrom the Battlefield to the Classroom This experience directly impacts the classroom. Inspired by the exercise, Howest is introducing new hands-on courses like “Glutamine” in semester five. Students will be dropped into realistic broken networks, with misconfigurations, fake firewalls and simulated threats. It is chaos, but controlled. And that is the point.\nAs one speaker said: “You don’t win Locked Shields. You just survive it better than the rest.”\nFinal Thoughts The exercise teaches more than just cybersecurity. It builds trust. It proves that knowing your teammates can be as important as knowing the tools. Whether that comes from a shared flight or a pre-exercise barbecue, it all matters when the pressure hits.\nWant to see how cyber defence works in real life? This is it.\n","date":"May 13, 2025","image":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n\n \u003cimg\n \n src=\"/images/blog/blog-1_hu_8def6289c64a2dc8.webp\" loading=\"lazy\"\n decoding=\"async\"\n \n\n alt=\"\"\n class=\" img\"\n width=\"650\"\n height=\"433\"\n onerror=\"this.onerror='null';\n this.src='\\/images\\/blog\\/blog-1_hu_d77be45b273e444.jpg';\" /\u003e\n\n \n \n \n \n \n \n\n\n \n\n","permalink":"/blog/post-1/","title":"Cyber Defence on the Digital Frontline: A Mission with NATO"},{"categories":["cybersecurity","CTF","education"],"contents":"Reversing, Rebuilding, and Failing Better: My Cyber Security Challenge Belgium Qualifier Experience On March 14 and 15, I joined the Cyber Security Challenge Belgium qualifiers with three teammates. For two days, we threw ourselves at CTF challenges covering binary exploitation, Android reversing, cryptography, and more.\nWhat follows is a recap of the challenges I personally worked on, some I solved, some I didn’t—but all of them left me with new skills and new ideas.\nA Buffer Overflow to Warm Up One of the first challenges I picked involved a binary with a basic stack overflow. I used standard techniques, finding the offset, hijacking the return address, and injecting shellcode. Tools like pwntools helped automate the payload crafting. It was a great warm-up and a confidence boost once it worked.\nBinary Exploitation Flag\rOurEncIsSec: Zip Bombs and OEIS Then there was a more elaborate cryptography challenge: 18 zip files, each password-protected. We cracked the first three passwords using John the Ripper and got numeric values from them. I searched the sequence in OEIS and found it matched A007408, which gave us the full pattern of passwords.\nUsing this, I could extract all zip contents automatically, reconstruct the password-protected message, and finally reveal the flag.\nPicture of the solution\rInfinite Luck: One in a Million? One challenge involved “guessing” a thousand random numbers between 1 and 10. The banner claimed it required infinite luck, but of course, the randomness was seeded. After inspecting the generator, I realized it was deterministic. By precomputing seeds and output sequences, I could match the challenge’s banner to a specific seed and regenerate the entire solution.\nChallange picture\rCorrect number order\rAndroid Reversing: FRIDA and JADX Several APKs were part of the qualifier set. I used JADX to decompile them and FRIDA to patch logic at runtime. In one challenge, I bypassed license validation by forcing key methods to return true and unlocking hidden functionality.\nThe Challenge That Stuck with Me: Rebuilding a Split DEX This one stood out.\nThe app used a 4×8 button grid. Pressing buttons loaded a sequence of blockXX files from assets. These were concatenated in-memory and passed into InMemoryDexClassLoader to load a class called be.dauntless.flag.Flag.\nClass loadClass = new InMemoryDexClassLoader(ByteBuffer.wrap(byteArrayOutputStream.toByteArray()), getClassLoader()) .loadClass(\u0026#34;be.dauntless.flag.Flag\u0026#34;); Each block was a fragment of a DEX file, but the app didn’t tell you the right order. I tried manually inspecting the fragments, identifying methods, string constants, and offsets—to infer how to reassemble the full file. I got close, but didn’t crack it in time.\nThat challenge stuck with me because it combined static analysis, runtime introspection, and logic reconstruction. It wasn’t just technical, it was creative.\nThe One That Got Away: TLS Fingerprinting Another challenge involved a Go-based TLS server that rejected all client connections unless they matched a specific fingerprint. I used Go’s tls.Config to replicate the version, cipher suites, and ALPN:\ntls.Config{ MinVersion: tls.VersionTLS13, CipherSuites: []uint16{ tls.TLS_AES_128_GCM_SHA256, // ... }, NextProtos: []string{\u0026#34;h2\u0026#34;}, } Despite that, the server still refused the connection. I suspect it was using JA4 or similar TLS fingerprinting techniques we couldn’t fully emulate. We had to move on, but I’d love to revisit that one someday.\nFinal Thoughts I didn’t solve everything. But that wasn’t the point. Every challenge was a practical puzzle, something to decode, reverse, bypass, or just understand a little better.\nWorking as a team with Evarist, Nathan, and Waut made it even more valuable. We bounced ideas off each other, divided tasks, and got a much broader set of challenges covered.\nThe Cyber Security Challenge Belgium qualifiers weren’t easy. But they were the best kind of difficult, the kind that teaches you something whether you solve the problem or not.\n","date":"March 15, 2025","image":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n\n \u003cimg\n \n src=\"/images/blog/post-2/binexpl_hu_3d36b409c72f3586.webp\" loading=\"lazy\"\n decoding=\"async\"\n \n\n alt=\"\"\n class=\" img\"\n width=\"650\"\n height=\"160\"\n onerror=\"this.onerror='null';\n this.src='\\/images\\/blog\\/post-2\\/binexpl_hu_afca672637b6b98d.png';\" /\u003e\n\n \n \n \n \n \n \n\n\n \n\n","permalink":"/blog/post-2/","title":"Reversing, Rebuilding, and Failing Better: My Cyber Security Challenge Belgium Qualifier Experience"},{"categories":["cybersecurity","event","defense"],"contents":"Securing Cyberspace: Belgian Cyber Command at Howest On November 12, we had the opportunity to attend a Tech\u0026amp;Meet session unlike any other. The speaker was Colonel Gunther Godefridis, Director for Development \u0026amp; Readiness at Belgian Cyber Command, and the topic: safeguarding our country in the digital domain.\nHeld at Howest Campus Brugge Station, the event drew students, researchers, and professionals eager to understand how military-grade cybersecurity operations are run, and why they matter more than ever.\nDefending in the Digital Age Colonel Godefridis began by outlining the core mission of Belgian Cyber Command: protecting Defense’s networks and weapon systems, supporting intelligence operations (ADIV), and conducting defensive and offensive operations in cyberspace. In short, Cyber Command isn’t just watching traffic, it’s actively shaping Belgium’s digital resilience.\nWith society’s increasing reliance on digital infrastructure, the risks of espionage, disinformation, and attacks on critical systems are no longer theoretical. Godefridis highlighted the urgency of being able to respond to, not just detect, those threats.\nWorking Together: Academia, Industry, Government One theme that stood out was collaboration. Cyber Command doesn’t operate in a vacuum. It works closely with national agencies, NATO partners, academic institutions, and the private sector. The colonel emphasized that defending cyberspace requires broad cooperation, and Belgium’s approach is to engage across domains, military, civil, and industrial.\nHe also made it clear that this isn’t just about defense systems or classified data. As the line between civil and military digital infrastructure blurs, vulnerabilities in civilian systems can become national security issues. That’s where cooperation becomes essential.\nLeading with Innovation With over 20 years in military service, Colonel Godefridis brings a unique perspective. From artillery innovation to defense technology strategy, and now to cyber development, his background reflects the evolving nature of conflict and the military\u0026rsquo;s response.\nHe discussed how innovation, including artificial intelligence, is becoming central to cyber defense. Cyber Command is investing in tools and skills to automate threat detection, analyze large datasets, and simulate attack scenarios. It’s not just about building walls, it’s about staying several moves ahead.\nA Transparent, Human Conversation The Q\u0026amp;A session at the end made the evening especially memorable. Questions ranged from technical details of cyber defense capabilities to the human side of cyber careers: how people are trained, what skills are valued, and how students might contribute.\nColonel Godefridis was honest about the challenges. Cyber operations evolve quickly, and so do adversaries. But he was equally clear about the opportunity: Belgium is building a capability that matters, and it needs talent.\nFinal Thoughts If you walked into this talk expecting a dry presentation on military infrastructure, you were wrong. This session was a deep, realistic, and engaging look into how Belgium is preparing for cyber conflict, and how students like us could be a part of that mission.\nWhether you’re in cybersecurity, software development, or systems engineering, there’s a growing role to play. And as Colonel Godefridis made clear: it’s not just a job. It’s part of defending a society that’s more vulnerable, and more connected, than ever before.\nTip\nWant to learn more about Cyber Command? Visit the official website at mil.be\n","date":"November 12, 2024","image":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n\n\n \u003cimg\n \n src=\"/images/blog/blog-3_hu_fdd9e13d0370b160.webp\" loading=\"lazy\"\n decoding=\"async\"\n \n\n alt=\"\"\n class=\" img\"\n width=\"650\"\n height=\"433\"\n onerror=\"this.onerror='null';\n this.src='\\/images\\/blog\\/blog-3_hu_c932299ff2fa7067.jpg';\" /\u003e\n\n \n \n \n \n \n \n\n\n \n\n","permalink":"/blog/post-3/","title":"Securing Cyberspace: Belgian Cyber Command at Howest"}] \ No newline at end of file diff --git a/public/index.xml b/public/index.xml index c56169a..cdc2566 100644 --- a/public/index.xml +++ b/public/index.xml @@ -1,53 +1,53 @@ - Home | Joren on Professors - Personal Portfolio Theme - http://localhost:1313/professors/site/ - Recent content in Home | Joren on Professors - Personal Portfolio Theme + Home | Joren on Joren's Site + http://localhost:1313/ + Recent content in Home | Joren on Joren's Site Hugo en Thu, 29 May 2025 00:00:00 +0000 - + Building My Hugo Website on a VPS - http://localhost:1313/professors/site/project/project-2/ + http://localhost:1313/project/project-2/ Thu, 29 May 2025 00:00:00 +0000 - http://localhost:1313/professors/site/project/project-2/ + http://localhost:1313/project/project-2/ <p>I built my personal blog using <a href="https://gohugo.io/" target="_blank" >Hugo</a> and deployed it on a lightweight Alpine Linux VPS. I chose this setup to have full control, keep things simple, and avoid bloated platforms or services. Here’s how the process went from site generation to live deployment.</p> DRMDTool Project - http://localhost:1313/professors/site/project/project-1/ + http://localhost:1313/project/project-1/ Wed, 21 May 2025 00:00:00 +0000 - http://localhost:1313/professors/site/project/project-1/ + http://localhost:1313/project/project-1/ <p>DRMDTool is an automation-centric utility designed to streamline the processing of <code>.drmd</code> files by tightly integrating with the N_m3u8DL-RE downloader. The tool offers robust automation via a watch folder and an intuitive web-based interface, significantly reducing the friction for managing and processing DRM-protected streaming content.</p> Red Team Talk: Een Blik Achter de Schermen bij Offensive Security - http://localhost:1313/professors/site/blog/post-4/ + http://localhost:1313/blog/post-4/ Tue, 20 May 2025 00:00:00 +0000 - http://localhost:1313/professors/site/blog/post-4/ + http://localhost:1313/blog/post-4/ <h1 id="red-team-talk-een-blik-achter-de-schermen-bij-offensive-security">Red Team Talk: Een Blik Achter de Schermen bij Offensive Security</h1> <p>In deze eerste aflevering van <strong>Red Team Talk</strong> nemen wij, Joren Schipman en Mattia Punjwani, studenten Cybersecurity aan Howest, jullie mee in een gesprek met <strong>Thomas Castronovo</strong>, ethical hacker en consultant bij Deloitte. Samen duiken we in de wereld van offensieve security, red teaming, en de realiteit van een carrière als pentester.</p> Cyber Defence on the Digital Frontline: A Mission with NATO - http://localhost:1313/professors/site/blog/post-1/ + http://localhost:1313/blog/post-1/ Tue, 13 May 2025 00:00:00 +0000 - http://localhost:1313/professors/site/blog/post-1/ + http://localhost:1313/blog/post-1/ <h1 id="cyber-defence-on-the-digital-frontline-a-mission-with-nato">Cyber Defence on the Digital Frontline: A Mission with NATO</h1> <h4 id="on-a-mission-with-nato-cyber-defence-on-the-frontline">On a Mission with NATO: Cyber Defence on the Frontline</h4> <p>Howest’s ongoing commitment to world-class cybersecurity training took center stage again as six lecturers from the Cyber Security program joined forces with experts from Latvia, Luxembourg and Belgium in one of NATO&rsquo;s most intensive simulations: the Locked Shields exercise, hosted by the Cooperative Cyber Defence Centre of Excellence (CCDCOE). Now in its fifth year of participation, the Howest team shared their firsthand experiences at a special evening talk at Howest Bruges.</p> Reversing, Rebuilding, and Failing Better: My Cyber Security Challenge Belgium Qualifier Experience - http://localhost:1313/professors/site/blog/post-2/ + http://localhost:1313/blog/post-2/ Sat, 15 Mar 2025 00:00:00 +0000 - http://localhost:1313/professors/site/blog/post-2/ + http://localhost:1313/blog/post-2/ <h1 id="reversing-rebuilding-and-failing-better-my-cyber-security-challenge-belgium-qualifier-experience">Reversing, Rebuilding, and Failing Better: My Cyber Security Challenge Belgium Qualifier Experience</h1> <p>On March 14 and 15, I joined the Cyber Security Challenge Belgium qualifiers with three teammates. For two days, we threw ourselves at CTF challenges covering binary exploitation, Android reversing, cryptography, and more.</p> Securing Cyberspace: Belgian Cyber Command at Howest - http://localhost:1313/professors/site/blog/post-3/ + http://localhost:1313/blog/post-3/ Tue, 12 Nov 2024 00:00:00 +0000 - http://localhost:1313/professors/site/blog/post-3/ + http://localhost:1313/blog/post-3/ <h1 id="securing-cyberspace-belgian-cyber-command-at-howest">Securing Cyberspace: Belgian Cyber Command at Howest</h1> <p>On November 12, we had the opportunity to attend a Tech&amp;Meet session unlike any other. The speaker was <strong>Colonel Gunther Godefridis</strong>, Director for Development &amp; Readiness at Belgian Cyber Command, and the topic: safeguarding our country in the digital domain.</p> diff --git a/public/manifest.webmanifest b/public/manifest.webmanifest index 900b9d3..c8cb539 100644 --- a/public/manifest.webmanifest +++ b/public/manifest.webmanifest @@ -1,10 +1,10 @@ { - "name": "Professors - Personal Portfolio Theme", - "short_name": "Professors - Personal Portfolio Theme", + "name": "Joren's Site", + "short_name": "Joren's Site", "lang": "en", "display": "fullscreen", "orientation" : "portrait", - "start_url": "http://localhost:1313/professors/site/?utm_source=web_app_manifest", + "start_url": "http://localhost:1313/?utm_source=web_app_manifest", "background_color": "#0e1015", "theme_color": "#18b0a2", @@ -20,33 +20,33 @@ "icons": [ { - "src": "/professors/site/images/favicon_hu_6da0167f32a32123.png", + "src": "/images/favicon_hu_6da0167f32a32123.png", "sizes": "48x48", "type": "image/png" }, { - "src": "/professors/site/images/favicon_hu_d4d33babbe6805bc.png", + "src": "/images/favicon_hu_d4d33babbe6805bc.png", "sizes": "72x72", "type": "image/png" }, { - "src": "/professors/site/images/favicon_hu_78447c6bde7c0620.png", + "src": "/images/favicon_hu_78447c6bde7c0620.png", "sizes": "96x96", "type": "image/png" }, { - "src": "/professors/site/images/favicon_hu_50a8dfcefba7e8a8.png", + "src": "/images/favicon_hu_50a8dfcefba7e8a8.png", "sizes": "144x144", "type": "image/png" }, { - "src": "/professors/site/images/favicon_hu_302f3e1abb47ae13.png", + "src": "/images/favicon_hu_302f3e1abb47ae13.png", "sizes": "192x192", "type": "image/png", "purpose": "any maskable" }, { - "src": "/professors/site/images/favicon_hu_997547777bc65c3.png", + "src": "/images/favicon_hu_997547777bc65c3.png", "sizes": "512x512", "type": "image/png" } diff --git a/public/post-2/index.html b/public/post-2/index.html deleted file mode 100644 index 3f39c80..0000000 --- a/public/post-2/index.html +++ /dev/null @@ -1,9380 +0,0 @@ - - - - - - -Cyber Defence on the Digital Frontline: A Mission with NATO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Cyber Defence on the Digital Frontline: A Mission with NATO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
-
- -

Cyber Defence on the Digital Frontline: A Mission with NATO

- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Cyber Defence on the Digital Frontline: A Mission with NATO - - - - - - - - - - - -
- - -
-

Cyber Defence on the Digital Frontline: A Mission with NATO

-

On a Mission with NATO: Cyber Defence on the Frontline

-

Howest’s ongoing commitment to world-class cybersecurity training took center stage again as six lecturers from the Cyber Security program joined forces with experts from Latvia, Luxembourg and Belgium in one of NATO’s most intensive simulations: the Locked Shields exercise, hosted by the Cooperative Cyber Defence Centre of Excellence (CCDCOE). Now in its fifth year of participation, the Howest team shared their firsthand experiences at a special evening talk at Howest Bruges.

-

The Exercise: Locked Shields

-

Locked Shields is no ordinary simulation. It is a full-scale, live-fire cyber defence exercise involving more than 6,000 machines and a narrative scenario so detailed it includes geopolitics, disinformation and even fictional countries. This year, the Blue Team 03 (our team) defended a simulated nation’s critical infrastructure including power plants, satellites, 5G networks and banking systems, all while under constant attack from a coordinated Red Team using automated scripts and over 28,000 attacks across two days.

-

And yes, every team (Red, Blue, Yellow, White) uses Ansible. For everything.

-

High Stakes, Real Lessons

-

What do you do when a rogue process might be malware, or maybe just a poorly named service? What happens when your teammate refuses to act unless something is “officially malicious”? The team faced cultural clashes, communication breakdowns and stress-testing of both systems and people.

-

The exercise required more than technical fixes. It demanded communication with simulated commanders, media and public stakeholders. Reporting became just as important as patching. It taught participants how to translate technical impact into real-world consequences. Not “port 8443 unreachable”, but “our air defence system is degraded, and we cannot fly planes”.

-

The Black Team: Rapid Response in Action

-

A new but powerful presence in the simulation was the Black Team, a rapid-response unit deployed when problems became too complex for any single team. Acting like special forces, they jumped in when incidents crossed team boundaries or demanded unconventional solutions. Their mission was to find out what was happening, assess the impact and suggest fast, creative responses. Introduced just last year, this team quickly proved its value again in 2025. They even embraced the role with style — “you can wear sunglasses inside” became their unofficial motto.

-

Their presence underlined a critical lesson: not every problem fits neatly within a team’s silo. Real-world defence requires flexibility, speed and lateral thinking.

-

Highlights and Blooper Reel

-

There were plenty of mishaps. Misfired scripts, team mix-ups, and one case where a DNS setup from a previous year was reused by mistake. Someone tried renaming cut to shutdown, breaking essential operations until it was fixed. Systems rebooted into chaos, a manual was uploaded to public GitHub, and the team had to quickly learn the difference between symbolic links and real binaries.

-

Human Factors and Growth

-

From detecting malware with Velociraptor and Q9, to encountering teammates who took orders literally, the learning was intense. One participant noted that while Belgian and Luxembourg teams prioritized knowledge sharing, others preferred strict protocol. This highlighted cultural differences and the importance of interpersonal skills.

-

The biggest lesson? You are never fully prepared. Every iteration of Locked Shields is different. But each one sharpens not only your skills, but also your ability to function as a team under extreme conditions.

-

From the Battlefield to the Classroom

-

This experience directly impacts the classroom. Inspired by the exercise, Howest is introducing new hands-on courses like “Glutamine” in semester five. Students will be dropped into realistic broken networks, with misconfigurations, fake firewalls and simulated threats. It is chaos, but controlled. And that is the point.

-

As one speaker said: “You don’t win Locked Shields. You just survive it better than the rest.”

-

Final Thoughts

-

The exercise teaches more than just cybersecurity. It builds trust. It proves that knowing your teammates can be as important as knowing the tools. Whether that comes from a shared flight or a pre-exercise barbecue, it all matters when the pressure hits.

-

Want to see how cyber defence works in real life? This is it.

-
- -
-
-
-
-
-
- - -
- -
-
-
-
- -
-
-
-
- - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/project/index.html b/public/project/index.html index 13b1eb9..1b28277 100644 --- a/public/project/index.html +++ b/public/project/index.html @@ -1,7 +1,7 @@ - + Recent Projects @@ -28,11 +28,11 @@ - - - - - + + + + + @@ -41,7 +41,7 @@ - + @@ -70,7 +70,6 @@ - @@ -156,8 +155,8 @@ - - + + @@ -184,7 +183,7 @@ - + @@ -268,7 +267,7 @@ - + @@ -297,27 +296,27 @@ @@ -329,29 +328,17 @@ @@ -388,7 +375,7 @@
- + @@ -468,27 +455,27 @@ Building My Hugo Website on a VPS

- Building My Hugo Website on a VPS + Building My Hugo Website on a VPS

How I built and deployed my personal blog using Hugo and hosted it on a minimal Alpine Linux VPS.

- Discover + Discover
@@ -522,7 +509,7 @@
- + @@ -602,27 +589,27 @@ DRMDTool Project

- DRMDTool Project + DRMDTool Project

DRMDTool is a complete solution for handling `.drmd` files with automated decryption and downloading via N …

- Discover + Discover
@@ -9462,7 +9449,7 @@ diff --git a/public/project/index.xml b/public/project/index.xml index 88922ba..d129938 100644 --- a/public/project/index.xml +++ b/public/project/index.xml @@ -1,25 +1,25 @@ - Recent Projects on Professors - Personal Portfolio Theme - http://localhost:1313/professors/site/project/ - Recent content in Recent Projects on Professors - Personal Portfolio Theme + Recent Projects on Joren's Site + http://localhost:1313/project/ + Recent content in Recent Projects on Joren's Site Hugo en Thu, 29 May 2025 00:00:00 +0000 - + Building My Hugo Website on a VPS - http://localhost:1313/professors/site/project/project-2/ + http://localhost:1313/project/project-2/ Thu, 29 May 2025 00:00:00 +0000 - http://localhost:1313/professors/site/project/project-2/ + http://localhost:1313/project/project-2/ <p>I built my personal blog using <a href="https://gohugo.io/" target="_blank" >Hugo</a> and deployed it on a lightweight Alpine Linux VPS. I chose this setup to have full control, keep things simple, and avoid bloated platforms or services. Here’s how the process went from site generation to live deployment.</p> DRMDTool Project - http://localhost:1313/professors/site/project/project-1/ + http://localhost:1313/project/project-1/ Wed, 21 May 2025 00:00:00 +0000 - http://localhost:1313/professors/site/project/project-1/ + http://localhost:1313/project/project-1/ <p>DRMDTool is an automation-centric utility designed to streamline the processing of <code>.drmd</code> files by tightly integrating with the N_m3u8DL-RE downloader. The tool offers robust automation via a watch folder and an intuitive web-based interface, significantly reducing the friction for managing and processing DRM-protected streaming content.</p> diff --git a/public/project/project-1/index.html b/public/project/project-1/index.html index 3e71199..74f99cb 100644 --- a/public/project/project-1/index.html +++ b/public/project/project-1/index.html @@ -1,7 +1,7 @@ - + DRMDTool Project @@ -28,11 +28,11 @@ - - - - - + + + + + @@ -41,7 +41,7 @@ - + @@ -70,7 +70,6 @@ - @@ -159,8 +158,8 @@ - - + + @@ -187,7 +186,7 @@ - + @@ -271,7 +270,7 @@ - + @@ -300,27 +299,27 @@ @@ -332,29 +331,17 @@ @@ -473,27 +460,27 @@ DRMDTool Project - if ('serviceWorker' in navigator){navigator.serviceWorker.register("/professors/site/service-worker.js");} + if ('serviceWorker' in navigator){navigator.serviceWorker.register("/service-worker.js");} diff --git a/public/project/project-2/index.html b/public/project/project-2/index.html index 13bcf09..8fbb007 100644 --- a/public/project/project-2/index.html +++ b/public/project/project-2/index.html @@ -1,7 +1,7 @@ - + Building My Hugo Website on a VPS @@ -28,11 +28,11 @@ - - - - - + + + + + @@ -41,7 +41,7 @@ - + @@ -70,7 +70,6 @@ - @@ -159,8 +158,8 @@ - - + + @@ -187,7 +186,7 @@ - + @@ -271,7 +270,7 @@ - + @@ -300,27 +299,27 @@ @@ -332,29 +331,17 @@ @@ -473,27 +460,27 @@ Building My Hugo Website on a VPS - if ('serviceWorker' in navigator){navigator.serviceWorker.register("/professors/site/service-worker.js");} + if ('serviceWorker' in navigator){navigator.serviceWorker.register("/service-worker.js");} diff --git a/public/project/project-3/index.html b/public/project/project-3/index.html deleted file mode 100644 index ff2afc6..0000000 --- a/public/project/project-3/index.html +++ /dev/null @@ -1,9556 +0,0 @@ - - - - - - -Book Mockup - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Book Mockup - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
-
-
-
- -
-

Book Mockup

- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Book Mockup - - - - - - - - - - - -
- - -
-

Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. -Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea -commodi consequatur. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

-
-

Project Goal

-

Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. -Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea -commodi consequatur. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

-
-

When referring to Lorem ipsum, different expressions are used, namely fill text , fictitious text , blind text or placeholder text -in short, its meaning can also be zero, but its usefulness is so clear as to go through the centuries and resist the ironic -and modern versions that came with the arrival of the web.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Solution

-

Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. -Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea -commodi consequatur. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

-
-

Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. -Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea -commodi consequatur. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

- -
-
-
-
-
-
- -
- -
-
-
-
- -
-
-
-
- - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/project/project-4/index.html b/public/project/project-4/index.html deleted file mode 100644 index c03a2d5..0000000 --- a/public/project/project-4/index.html +++ /dev/null @@ -1,9556 +0,0 @@ - - - - - - -Autumn Cartoon Fun - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Autumn Cartoon Fun - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
-
-
-
- -
-

Autumn Cartoon Fun

- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Autumn Cartoon Fun - - - - - - - - - - - -
- - -
-

Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. -Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea -commodi consequatur. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

-
-

Project Goal

-

Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. -Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea -commodi consequatur. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

-
-

When referring to Lorem ipsum, different expressions are used, namely fill text , fictitious text , blind text or placeholder text -in short, its meaning can also be zero, but its usefulness is so clear as to go through the centuries and resist the ironic -and modern versions that came with the arrival of the web.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Solution

-

Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. -Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea -commodi consequatur. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

-
-

Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. -Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea -commodi consequatur. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

- -
-
-
-
-
-
- -
- -
-
-
-
- -
-
-
-
- - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/project/project-5/index.html b/public/project/project-5/index.html deleted file mode 100644 index 3758cf9..0000000 --- a/public/project/project-5/index.html +++ /dev/null @@ -1,9556 +0,0 @@ - - - - - - -Machine Learning for Airbnb Data - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Machine Learning for Airbnb Data - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
-
-
-
- -
-

Machine Learning for Airbnb Data

- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Machine Learning for Airbnb Data - - - - - - - - - - - -
- - -
-

Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. -Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea -commodi consequatur. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

-
-

Project Goal

-

Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. -Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea -commodi consequatur. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

-
-

When referring to Lorem ipsum, different expressions are used, namely fill text , fictitious text , blind text or placeholder text -in short, its meaning can also be zero, but its usefulness is so clear as to go through the centuries and resist the ironic -and modern versions that came with the arrival of the web.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Solution

-

Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. -Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea -commodi consequatur. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

-
-

Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. -Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea -commodi consequatur. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

- -
-
-
-
-
-
- -
- -
-
-
-
- -
-
-
-
- - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/project/project-6/index.html b/public/project/project-6/index.html deleted file mode 100644 index 9346c0d..0000000 --- a/public/project/project-6/index.html +++ /dev/null @@ -1,9556 +0,0 @@ - - - - - - -Survey about Covid-19 in Boston - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Survey about Covid-19 in Boston - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
-
-
-
- -
-

Survey about Covid-19 in Boston

- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Survey about Covid-19 in Boston - - - - - - - - - - - -
- - -
-

Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. -Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea -commodi consequatur. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

-
-

Project Goal

-

Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. -Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea -commodi consequatur. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

-
-

When referring to Lorem ipsum, different expressions are used, namely fill text , fictitious text , blind text or placeholder text -in short, its meaning can also be zero, but its usefulness is so clear as to go through the centuries and resist the ironic -and modern versions that came with the arrival of the web.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Solution

-

Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. -Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea -commodi consequatur. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

-
-

Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. -Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea -commodi consequatur. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

- -
-
-
-
-
-
- -
- -
-
-
-
- -
-
-
-
- - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/project/project-7/index.html b/public/project/project-7/index.html deleted file mode 100644 index 69bb7af..0000000 --- a/public/project/project-7/index.html +++ /dev/null @@ -1,9556 +0,0 @@ - - - - - - -Survey about Covid-19 in Boston - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Survey about Covid-19 in Boston - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
-
-
-
- -
-

Survey about Covid-19 in Boston

- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Survey about Covid-19 in Boston - - - - - - - - - - - -
- - -
-

Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. -Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea -commodi consequatur. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

-
-

Project Goal

-

Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. -Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea -commodi consequatur. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

-
-

When referring to Lorem ipsum, different expressions are used, namely fill text , fictitious text , blind text or placeholder text -in short, its meaning can also be zero, but its usefulness is so clear as to go through the centuries and resist the ironic -and modern versions that came with the arrival of the web.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Solution

-

Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. -Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea -commodi consequatur. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

-
-

Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. -Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea -commodi consequatur. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

- -
-
-
-
-
-
- -
- -
-
-
-
- -
-
-
-
- - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/sitemap.xml b/public/sitemap.xml index b92a2ed..8648c3c 100644 --- a/public/sitemap.xml +++ b/public/sitemap.xml @@ -2,60 +2,57 @@ - http://localhost:1313/professors/site/project/project-2/ + http://localhost:1313/project/project-2/ 2025-05-29T00:00:00+00:00 - http://localhost:1313/professors/site/ + http://localhost:1313/ 2025-05-29T00:00:00+00:00 - http://localhost:1313/professors/site/project/ + http://localhost:1313/project/ 2025-05-29T00:00:00+00:00 - http://localhost:1313/professors/site/project/project-1/ + http://localhost:1313/project/project-1/ 2025-05-21T00:00:00+00:00 - http://localhost:1313/professors/site/categories/ + http://localhost:1313/categories/ 2025-05-20T00:00:00+00:00 - http://localhost:1313/professors/site/categories/cybersecurity/ + http://localhost:1313/categories/cybersecurity/ 2025-05-20T00:00:00+00:00 - http://localhost:1313/professors/site/categories/interview/ + http://localhost:1313/categories/interview/ 2025-05-20T00:00:00+00:00 - http://localhost:1313/professors/site/categories/podcast/ + http://localhost:1313/categories/podcast/ 2025-05-20T00:00:00+00:00 - http://localhost:1313/professors/site/blog/ + http://localhost:1313/blog/ 2025-05-20T00:00:00+00:00 - http://localhost:1313/professors/site/blog/post-4/ + http://localhost:1313/blog/post-4/ 2025-05-20T00:00:00+00:00 - http://localhost:1313/professors/site/blog/post-1/ + http://localhost:1313/blog/post-1/ 2025-05-13T00:00:00+00:00 - http://localhost:1313/professors/site/categories/event-recap/ + http://localhost:1313/categories/event/ 2025-05-13T00:00:00+00:00 - http://localhost:1313/professors/site/categories/ctf/ + http://localhost:1313/categories/ctf/ 2025-03-15T00:00:00+00:00 - http://localhost:1313/professors/site/categories/education/ + http://localhost:1313/categories/education/ 2025-03-15T00:00:00+00:00 - http://localhost:1313/professors/site/blog/post-2/ + http://localhost:1313/blog/post-2/ 2025-03-15T00:00:00+00:00 - http://localhost:1313/professors/site/categories/defense/ + http://localhost:1313/categories/defense/ 2024-11-12T00:00:00+00:00 - http://localhost:1313/professors/site/categories/event/ + http://localhost:1313/blog/post-3/ 2024-11-12T00:00:00+00:00 - http://localhost:1313/professors/site/blog/post-3/ - 2024-11-12T00:00:00+00:00 - - http://localhost:1313/professors/site/tags/ + http://localhost:1313/tags/ diff --git a/public/tags/index.html b/public/tags/index.html index 4e70090..e003df3 100644 --- a/public/tags/index.html +++ b/public/tags/index.html @@ -1,2 +1,2 @@ - + diff --git a/public/tags/index.xml b/public/tags/index.xml index 8c2b9b8..37bd219 100644 --- a/public/tags/index.xml +++ b/public/tags/index.xml @@ -1,11 +1,11 @@ - Tags on Professors - Personal Portfolio Theme - http://localhost:1313/professors/site/tags/ - Recent content in Tags on Professors - Personal Portfolio Theme + Tags on Joren's Site + http://localhost:1313/tags/ + Recent content in Tags on Joren's Site Hugo en - +