diff --git a/.gitmodules b/.gitmodules index 7b762d5..cf740d2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -12,4 +12,4 @@ url = https://github.com/colorchestra/smol [submodule "themes/amberterm"] path = themes/amberterm - url = git@git.qrz.is:clemens/amberterm.git + url = https://codeberg.org/mclemens/amberterm diff --git a/config.toml b/config.toml index f455f04..87856b4 100644 --- a/config.toml +++ b/config.toml @@ -60,10 +60,6 @@ publishDir = "/var/www/qrz.is" name = "About" weight = 6 url = "/about/" -[[menu.main]] - name = "Impressum" - weight = 7 - url = "/impressum/" [[menu.main]] name = "RSS" weight = 6 @@ -71,7 +67,7 @@ publishDir = "/var/www/qrz.is" [[menu.footer]] name = "Git" weight = 5 - url = "https://git.qrz.is/clemens/" + url = "https://codeberg.org/mclemens/" [[menu.footer]] name = "Mastodon" weight = 6 @@ -80,35 +76,3 @@ publishDir = "/var/www/qrz.is" name = "QRZ" weight = 7 url = "https://qrz.com/DB/DK1MI" -[[menu.footer]] - name = "Privacy/Datenschutz" - weight = 8 - url = "/privacy/" -[[menu.main]] - name = "About" - weight = 5 - url = "/about/" -[[menu.main]] - name = "Impressum" - weight = 7 - url = "/impressum/" -[[menu.main]] - name = "RSS" - weight = 6 - url = "/index.xml" -[[menu.footer]] - name = "Git" - weight = 5 - url = "https://git.qrz.is/clemens/" -[[menu.footer]] - name = "Mastodon" - weight = 6 - url = "https://mastodon.radio/@michael" -[[menu.footer]] - name = "QRZ" - weight = 7 - url = "https://qrz.com/DB/DK1MI" -[[menu.footer]] - name = "Privacy/Datenschutz" - weight = 8 - url = "/privacy/" diff --git a/content/impressum.md b/content/impressum.md deleted file mode 100644 index 707f956..0000000 --- a/content/impressum.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: "Impressum" -slug: "impressum" -date: 2018-05-03T16:42:59+02:00 -draft: false -showthedate: false ---- - -Michael Clemens -c/o Block Services -Stuttgarter Str. 106 -70736 Fellbach - -Telefon: 0162/3522778 -E-Mail: [impressum_0x7E5@qrz.is](mailto:impressum_0x7E5@qrz.is) - -**Verantwortlich für den Inhalt** (gem. § 55 Abs. 2 RStV): -Michael Clemens -c/o Block Services -Stuttgarter Str. 106 -70736 Fellbach - - - - -## Disclaimer – rechtliche Hinweise - -### § 1 Warnhinweis zu Inhalten -Die kostenlosen und frei zugänglichen Inhalte dieser Webseite wurden mit größtmöglicher Sorgfalt erstellt. Der Anbieter dieser Webseite übernimmt jedoch keine Gewähr für die Richtigkeit und Aktualität der bereitgestellten kostenlosen und frei zugänglichen journalistischen Ratgeber und Nachrichten. Namentlich gekennzeichnete Beiträge geben die Meinung des jeweiligen Autors und nicht immer die Meinung des Anbieters wieder. Allein durch den Aufruf der kostenlosen und frei zugänglichen Inhalte kommt keinerlei Vertragsverhältnis zwischen dem Nutzer und dem Anbieter zustande, insoweit fehlt es am Rechtsbindungswillen des Anbieters. - -### § 2 Externe Links -Diese Website enthält Verknüpfungen zu Websites Dritter ("externe Links"). Diese Websites unterliegen der Haftung der jeweiligen Betreiber. Der Anbieter hat bei der erstmaligen Verknüpfung der externen Links die fremden Inhalte daraufhin überprüft, ob etwaige Rechtsverstöße bestehen. Zu dem Zeitpunkt waren keine Rechtsverstöße ersichtlich. Der Anbieter hat keinerlei Einfluss auf die aktuelle und zukünftige Gestaltung und auf die Inhalte der verknüpften Seiten. Das Setzen von externen Links bedeutet nicht, dass sich der Anbieter die hinter dem Verweis oder Link liegenden Inhalte zu Eigen macht. Eine ständige Kontrolle der externen Links ist für den Anbieter ohne konkrete Hinweise auf Rechtsverstöße nicht zumutbar. Bei Kenntnis von Rechtsverstößen werden jedoch derartige externe Links unverzüglich gelöscht. - -### § 3 Urheber- und Leistungsschutzrechte -Die auf dieser Website veröffentlichten Inhalte unterliegen dem deutschen Urheber- und Leistungsschutzrecht. Jede vom deutschen Urheber- und Leistungsschutzrecht nicht zugelassene Verwertung bedarf der vorherigen schriftlichen Zustimmung des Anbieters oder jeweiligen Rechteinhabers. Dies gilt insbesondere für Vervielfältigung, Bearbeitung, Übersetzung, Einspeicherung, Verarbeitung bzw. Wiedergabe von Inhalten in Datenbanken oder anderen elektronischen Medien und Systemen. Inhalte und Rechte Dritter sind dabei als solche gekennzeichnet. Die unerlaubte Vervielfältigung oder Weitergabe einzelner Inhalte oder kompletter Seiten ist nicht gestattet und strafbar. Lediglich die Herstellung von Kopien und Downloads für den persönlichen, privaten und nicht kommerziellen Gebrauch ist erlaubt. - -Die Darstellung dieser Website in fremden Frames ist nur mit schriftlicher Erlaubnis zulässig. - -### § 4 Besondere Nutzungsbedingungen -Soweit besondere Bedingungen für einzelne Nutzungen dieser Website von den vorgenannten Paragraphen abweichen, wird an entsprechender Stelle ausdrücklich darauf hingewiesen. In diesem Falle gelten im jeweiligen Einzelfall die besonderen Nutzungsbedingungen. - -Quelle: [Hier aufrufen](https://www.juraforum.de) diff --git a/content/post/2011-08-05-the-arduino-enabled-washing-machine.md b/content/post/2011-08-05-the-arduino-enabled-washing-machine.md index f74e654..f89abca 100644 --- a/content/post/2011-08-05-the-arduino-enabled-washing-machine.md +++ b/content/post/2011-08-05-the-arduino-enabled-washing-machine.md @@ -42,4 +42,4 @@ Screenshots: ![image](/img/laundruino9_screen2.jpg) -You can download the code here: [git.qrz.is](https://git.qrz.is/clemens/laundruino) +You can download the code here: [codeberg.org/mclemens](https://codeberg.org/mclemens/laundruino) diff --git a/content/post/2012-10-30-the-one-button-audiobook-player.md b/content/post/2012-10-30-the-one-button-audiobook-player.md index 47c4358..cba37cb 100644 --- a/content/post/2012-10-30-the-one-button-audiobook-player.md +++ b/content/post/2012-10-30-the-one-button-audiobook-player.md @@ -58,7 +58,7 @@ If you like to build your own one button audio book player, here are the super s And last but not least – the python script. The code might be crappy, please comment if you have improvements (especially regarding loadMusic). You can find it here: -[https://git.qrz.is/clemens/theonebuttonaudiobookplayer](https://git.qrz.is/clemens/theonebuttonaudiobookplayer) +[https://codeberg.org/mclemens/theonebuttonaudiobookplayer](https://codeberg.org/mclemens/theonebuttonaudiobookplayer) **Update (2013-11-26)** diff --git a/content/post/2013-01-29-adressenmeister.md b/content/post/2013-01-29-adressenmeister.md index fef96ce..ac9119a 100644 --- a/content/post/2013-01-29-adressenmeister.md +++ b/content/post/2013-01-29-adressenmeister.md @@ -11,7 +11,7 @@ url: /adressenmeister/ --- I'd like to share my very first software project from 1992 with you which was written in BASIC 2.0 on my C64. It has never really been finished but had a nice intro screen with moving sprites and was able to print labels on a wire printer 🙂 -In order to archive it for myself, I've set up a git repository where the source code is available: [https://git.qrz.is/clemens/adressenmeister](https://git.qrz.is/clemens/adressenmeister) +In order to archive it for myself, I've set up a git repository where the source code is available: [https://codeberg.org/mclemens/adressenmeister](https://codeberg.org/mclemens/adressenmeister) Here's a little screen-cap of it: diff --git a/content/post/2014-05-05-nse-script-sqlite-output-for-nmap.md b/content/post/2014-05-05-nse-script-sqlite-output-for-nmap.md index 7ae128e..b7d6775 100644 --- a/content/post/2014-05-05-nse-script-sqlite-output-for-nmap.md +++ b/content/post/2014-05-05-nse-script-sqlite-output-for-nmap.md @@ -8,7 +8,7 @@ tags: - Software - Nmap --- -I wrote this little NSE script that allows you to store the output of Nmap into a SQLite database: [https://git.qrz.is/clemens/nmap-sqlite-output](https://git.qrz.is/clemens/nmap-sqlite-output) +I wrote this little NSE script that allows you to store the output of Nmap into a SQLite database: [https://codeberg.org/mclemens/nmap-sqlite-output](https://codeberg.org/mclemens/nmap-sqlite-output) This might come in handy when performing large inventory scans. The SQLite database can be queried and sorted easily or exported as a CSV file. This way you can, for example, easily generate tables for your assessment report. diff --git a/content/post/2018-04-29-correlation-rule-documentation-generator-for-mcafee-siem.md b/content/post/2018-04-29-correlation-rule-documentation-generator-for-mcafee-siem.md index 232088d..c95f5f6 100644 --- a/content/post/2018-04-29-correlation-rule-documentation-generator-for-mcafee-siem.md +++ b/content/post/2018-04-29-correlation-rule-documentation-generator-for-mcafee-siem.md @@ -14,4 +14,4 @@ Since we are required to document all custom correlation rules inside our SIEM ( ![image](/img/esm2markdown.png) -On the long shot that this is useful for you, you can find the script on [git.qrz.is](https://git.qrz.is/clemens/esm2markdown). +On the long shot that this is useful for you, you can find the script on [codeberg.org/mclemens](https://codeberg.org/mclemens/esm2markdown). diff --git a/content/post/2018-05-03-dynamic-dns-for-nsd.md b/content/post/2018-05-03-dynamic-dns-for-nsd.md index 0fdfae0..8184fea 100644 --- a/content/post/2018-05-03-dynamic-dns-for-nsd.md +++ b/content/post/2018-05-03-dynamic-dns-for-nsd.md @@ -73,7 +73,7 @@ Don't forget to set your own domain names, name servers and ip addresses Further ## Configure and Install nsd-dyndns - * Download the scripts from here: [https://git.qrz.is/clemens/nsd-dyndns](https://git.qrz.is/clemens/nsd-dyndns) + * Download the scripts from here: [https://codeberg.org/mclemens/nsd-dyndns](https://codeberg.org/mclemens/nsd-dyndns) * Copy _dyndns.conf-dist_ to _/etc/dyndns.conf_ * _\# cp dyndns.conf-dist /etc/dyndns.conf_ * Edit _/etc/dyndns.conf_ to your needs diff --git a/content/post/amberterm.md b/content/post/amberterm.md index 34ab055..0dd8952 100644 --- a/content/post/amberterm.md +++ b/content/post/amberterm.md @@ -9,7 +9,7 @@ tags: url: /gemini-amberterm/ --- -For the relaunch of my personal website, I first used the brilliant theme [smol](https://github.com/colorchestra/smol/). After having customized numerous files of the theme, I have now decided to create my own Hugo theme called ["Amberterm" (git.qrz.is)](https://git.qrz.is/clemens/amberterm). This is largely based on "smol", but contains some cosmetic adjustments as well as all layout files in order to be able to generate [Gemini](https://gemini.circumlunar.space/) files with the help of [Hugo](https://gohugo.io/). In this way it is now possible for me - without any additional effort - to publish a new post for the [WWW version of my website](https://qrz.is) as well as for the [Gemini version](gemini://qrz.is). +For the relaunch of my personal website, I first used the brilliant theme [smol](https://github.com/colorchestra/smol/). After having customized numerous files of the theme, I have now decided to create my own Hugo theme called ["Amberterm"](https://codeberg.org/mclemens/amberterm). This is largely based on "smol", but contains some cosmetic adjustments as well as all layout files in order to be able to generate [Gemini](https://gemini.circumlunar.space/) files with the help of [Hugo](https://gohugo.io/). In this way it is now possible for me - without any additional effort - to publish a new post for the [WWW version of my website](https://qrz.is) as well as for the [Gemini version](gemini://qrz.is). To view the Gemini version of this page, you either need a Gemini client or you use a Gemini http proxy. diff --git a/content/post/colorspot.md b/content/post/colorspot.md index 98630be..4fca8a6 100644 --- a/content/post/colorspot.md +++ b/content/post/colorspot.md @@ -21,7 +21,7 @@ I just released a first version of ColorSpot, a command line DX cluster client w # Code -You can find the code and some more information [here](https://git.qrz.is/clemens/colorspot). +You can find the code and some more information [here](https://codeberg.org/mclemens/colorspot). # Installation diff --git a/content/post/hr50-remote-display.md b/content/post/hr50-remote-display.md index 742661c..3270863 100644 --- a/content/post/hr50-remote-display.md +++ b/content/post/hr50-remote-display.md @@ -11,7 +11,7 @@ tags: url: /hardrock50-remote-display/ --- -UPDATE: I moved the client and the server into one repository: https://git.qrz.is/clemens/hr50-remote-display. It furthermore now supports user actions via a button. +UPDATE: I moved the client and the server into one repository: https://codeberg.org/mclemens/hr50-remote-display. It furthermore now supports user actions via a button. Original post: @@ -25,7 +25,7 @@ This is a small python script that connects from e.g. a Raspberry Pi to the HR50 * remotely gather information from the HR50 * remotely execute commands -It is basically a serial to HTTP converter. You can find more information here: [https://git.qrz.is/clemens/hr50-api](https://git.qrz.is/clemens/hr50-api) +It is basically a serial to HTTP converter. You can find more information here: [https://codeberg.org/mclemens/hr50-api](https://codeberg.org/mclemens/hr50-api) ### HR50-Remote-Display @@ -39,4 +39,4 @@ This is how the device looks like in action: I plan to add buttons so that e.g. the keying mode can be changed via this device. The projects are only two days old so I will certainly put more love into it. There are several things missing like error handling, comments etc. -You can find more information here: [https://git.qrz.is/clemens/hr50-remote-display](https://git.qrz.is/clemens/hr50-remote-display) +You can find more information here: [https://codeberg.org/mclemens/hr50-remote-display](https://codeberg.org/mclemens/hr50-remote-display) diff --git a/content/post/qrz-sh.md b/content/post/qrz-sh.md index 565fa03..5449999 100644 --- a/content/post/qrz-sh.md +++ b/content/post/qrz-sh.md @@ -17,7 +17,7 @@ This script queries the QRZ.com callsign database and returns the result to the command line. A XML subscription plan with QRZ.com is required for full functionality. -You can download the script here: [https://git.qrz.is/clemens/qrz.sh](https://git.qrz.is/clemens/qrz.sh) +You can download the script here: [https://codeberg.org/mclemens/qrz.sh](https://codeberg.org/mclemens/qrz.sh) ![screenshot](/img/qrz-sh.jpg) diff --git a/content/post/qrzlogger.md b/content/post/qrzlogger.md index 8b77d08..bb6ab71 100644 --- a/content/post/qrzlogger.md +++ b/content/post/qrzlogger.md @@ -24,7 +24,7 @@ It does the following: # Code -You can find the code and some more information [here](https://git.qrz.is/clemens/qrzlogger). +You can find the code and some more information [here](https://codeberg.org/mclemens/qrzlogger). # Installation diff --git a/content/privacy.md b/content/privacy.md deleted file mode 100644 index 65a738f..0000000 --- a/content/privacy.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: "Datenschutzerklärung" -slug: "privacy" -date: 2018-05-03T16:42:59+02:00 -draft: false -showthedate: false ---- - -Verantwortlicher im Sinne der Datenschutzgesetze, insbesondere der EU-Datenschutzgrundverordnung (DSGVO), ist: - -Michael Clemens -c/o Block Services -Stuttgarter Str. 106 -70736 Fellbach -Deutschland -E-Mail-Adresse: datenschutz_0x7E5@qrz.is - -Ihre Betroffenenrechte ----------------------- - -Unter den angegebenen Kontaktdaten unseres Datenschutzbeauftragten können Sie jederzeit folgende Rechte ausüben: - -* Auskunft über Ihre bei uns gespeicherten Daten und deren Verarbeitung (Art. 15 DSGVO), -* Berichtigung unrichtiger personenbezogener Daten (Art. 16 DSGVO), -* Löschung Ihrer bei uns gespeicherten Daten (Art. 17 DSGVO), -* Einschränkung der Datenverarbeitung, sofern wir Ihre Daten aufgrund gesetzlicher Pflichten noch nicht löschen dürfen (Art. 18 DSGVO), -* Widerspruch gegen die Verarbeitung Ihrer Daten bei uns (Art. 21 DSGVO) und -* Datenübertragbarkeit, sofern Sie in die Datenverarbeitung eingewilligt haben oder einen Vertrag mit uns abgeschlossen haben (Art. 20 DSGVO). - -Sofern Sie uns eine Einwilligung erteilt haben, können Sie diese jederzeit mit Wirkung für die Zukunft widerrufen. - -Sie können sich jederzeit mit einer Beschwerde an eine Aufsichtsbehörde wenden, z. B. an die zuständige Aufsichtsbehörde des Bundeslands Ihres Wohnsitzes oder an die für uns als verantwortliche Stelle zuständige Behörde. - -Eine Liste der Aufsichtsbehörden (für den nichtöffentlichen Bereich) mit Anschrift finden Sie unter: [https://www.bfdi.bund.de/DE/Service/Anschriften/Laender/Laender-node.html](https://www.bfdi.bund.de/DE/Service/Anschriften/Laender/Laender-node.html). - -Erfassung allgemeiner Informationen beim Besuch unserer Website ---------------------------------------------------------------- - -### Art und Zweck der Verarbeitung: - -Wenn Sie auf unsere Website zugreifen, d.h., wenn Sie sich nicht registrieren oder anderweitig Informationen übermitteln, werden automatisch Informationen allgemeiner Natur erfasst. Diese Informationen (Server-Logfiles) beinhalten etwa die Art des Webbrowsers, das verwendete Betriebssystem, den Domainnamen Ihres Internet-Service-Providers, Ihre IP-Adresse und ähnliches. - -Sie werden insbesondere zu folgenden Zwecken verarbeitet: - -* Sicherstellung eines problemlosen Verbindungsaufbaus der Website, -* Sicherstellung einer reibungslosen Nutzung unserer Website, -* Auswertung der Systemsicherheit und -stabilität sowie -* zur Optimierung unserer Website. - -Wir verwenden Ihre Daten nicht, um Rückschlüsse auf Ihre Person zu ziehen. Informationen dieser Art werden von uns ggfs. anonymisiert statistisch ausgewertet, um unseren Internetauftritt und die dahinterstehende Technik zu optimieren. - -### Rechtsgrundlage und berechtigtes Interesse: - -Die Verarbeitung erfolgt gemäß Art. 6 Abs. 1 lit. f DSGVO auf Basis unseres berechtigten Interesses an der Verbesserung der Stabilität und Funktionalität unserer Website. - -### Empfänger: - -Empfänger der Daten sind ggf. technische Dienstleister, die für den Betrieb und die Wartung unserer Webseite als Auftragsverarbeiter tätig werden. - -### Speicherdauer: - -Die Daten werden gelöscht, sobald diese für den Zweck der Erhebung nicht mehr erforderlich sind. Dies ist für die Daten, die der Bereitstellung der Website dienen, grundsätzlich der Fall, wenn die jeweilige Sitzung beendet ist. - -### Bereitstellung vorgeschrieben oder erforderlich: - -Die Bereitstellung der vorgenannten personenbezogenen Daten ist weder gesetzlich noch vertraglich vorgeschrieben. Ohne die IP-Adresse ist jedoch der Dienst und die Funktionsfähigkeit unserer Website nicht gewährleistet. Zudem können einzelne Dienste und Services nicht verfügbar oder eingeschränkt sein. Aus diesem Grund ist ein Widerspruch ausgeschlossen. - -SSL-Verschlüsselung -------------------- - -Um die Sicherheit Ihrer Daten bei der Übertragung zu schützen, verwenden wir dem aktuellen Stand der Technik entsprechende Verschlüsselungsverfahren (z. B. SSL) über HTTPS. - -* * * - -Information über Ihr Widerspruchsrecht nach Art. 21 DSGVO ---------------------------------------------------------- - -### Einzelfallbezogenes Widerspruchsrecht - -Sie haben das Recht, aus Gründen, die sich aus Ihrer besonderen Situation ergeben, jederzeit gegen die Verarbeitung Sie betreffender personenbezogener Daten, die aufgrund Art. 6 Abs. 1 lit. f DSGVO (Datenverarbeitung auf der Grundlage einer Interessenabwägung) erfolgt, Widerspruch einzulegen; dies gilt auch für ein auf diese Bestimmung gestütztes Profiling im Sinne von Art. 4 Nr. 4 DSGVO. - -Legen Sie Widerspruch ein, werden wir Ihre personenbezogenen Daten nicht mehr verarbeiten, es sei denn, wir können zwingende schutzwürdige Gründe für die Verarbeitung nachweisen, die Ihre Interessen, Rechte und Freiheiten überwiegen, oder die Verarbeitung dient der Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen. - -### Empfänger eines Widerspruchs - -Michael Clemens -c/o Block Services -Stuttgarter Str. 106 -70736 Fellbach -Deutschland -E-Mail-Adresse: datenschutz_0x7E5@qrz.is - -* * * - -Änderung unserer Datenschutzbestimmungen ----------------------------------------- - -Wir behalten uns vor, diese Datenschutzerklärung anzupassen, damit sie stets den aktuellen rechtlichen Anforderungen entspricht oder um Änderungen unserer Leistungen in der Datenschutzerklärung umzusetzen, z.B. bei der Einführung neuer Services. Für Ihren erneuten Besuch gilt dann die neue Datenschutzerklärung. - -_Die Datenschutzerklärung wurde mithilfe der activeMind AG erstellt, den Experten für [externe Datenschutzbeauftragte](https://www.activemind.de/datenschutz/datenschutzbeauftragter/) (Version #2020-09-30)._ diff --git a/content/projects.md b/content/projects.md index 51c4af6..4ce08e3 100644 --- a/content/projects.md +++ b/content/projects.md @@ -6,14 +6,14 @@ showthedate: false --- #### Software Projects - * [TSM Monitor](https://git.qrz.is/clemens/tsmmonitor) - A PHP application for monitoring IBM's Tivoli Storage Manager - * [TSM Monitor 2](https://git.qrz.is/clemens/tsmmonitor2) - An enhanced PHP application for monitoring IBM's Tivoli Storage Manager - * [MSTerminology](https://git.qrz.is/clemens/MSTerminology) - Translates strings used in all kind of Microsoft products - * [Nmap-sqlite-output](https://git.qrz.is/clemens/nmap-sqlite-output) - Nmap NSE script for writing the scan output into a sqlite3 database - * [Adressenmeister](https://git.qrz.is/clemens/adressenmeister) - Adressenmeister - my very first "software project" (C64 BASIC) - * [Shellfolio](https://git.qrz.is/clemens/shellfolio) - A command line cryptocurrency portfolio manager and price tracker - * [esm2markdown](https://git.qrz.is/clemens/esm2markdown) - A converter for McAfee SIEM rule export files to Markdown documents - * [nsd-dyndns](https://git.qrz.is/clemens/nsd-dyndns) - Dynamic DNS for NSD + * [TSM Monitor](https://codeberg.org/mclemens/tsmmonitor) - A PHP application for monitoring IBM's Tivoli Storage Manager + * [TSM Monitor 2](https://codeberg.org/mclemens/tsmmonitor2) - An enhanced PHP application for monitoring IBM's Tivoli Storage Manager + * [MSTerminology](https://codeberg.org/mclemens/MSTerminology) - Translates strings used in all kind of Microsoft products + * [Nmap-sqlite-output](https://codeberg.org/mclemens/nmap-sqlite-output) - Nmap NSE script for writing the scan output into a sqlite3 database + * [Adressenmeister](https://codeberg.org/mclemens/adressenmeister) - Adressenmeister - my very first "software project" (C64 BASIC) + * [Shellfolio](https://codeberg.org/mclemens/shellfolio) - A command line cryptocurrency portfolio manager and price tracker + * [esm2markdown](https://codeberg.org/mclemens/esm2markdown) - A converter for McAfee SIEM rule export files to Markdown documents + * [nsd-dyndns](https://codeberg.org/mclemens/nsd-dyndns) - Dynamic DNS for NSD #### Hardware Projects * [The Laundruino](/the-arduino-enabled-washing-machine/) - Washing machine monitoring with an Arduino @@ -22,12 +22,12 @@ showthedate: false * [Heated Trackball](/heated-trackball/) - Heating mod for Logitech trackballs #### Amateur Radio - * [colorspot](https://git.qrz.is/clemens/colorspot) - A colorful command line DX cluster client with LotW integration + * [colorspot](https://codeberg.org/mclemens/colorspot) - A colorful command line DX cluster client with LotW integration * [AllStarLink Node](/allstarlink-node-build/) - My build of an AllStarLink node * [Hardrock-50 Remote Display](https://qrz.is/hardrock50-remote-display/) - ESP32 based remote display for the Hardrock-50 power amplifier - * [qrzlogger](https://git.qrz.is/clemens/qrzlogger) - A python application to log QSOs directly to QRZ.com from the command line - * [pyBMNotify](https://git.qrz.is/clemens/pyBMNotify) - Python script for monitoring the Brandmeister network and sending push notifications - * [qrz.sh](https://git.qrz.is/clemens/qrz.sh) - QRZ.com callsign data query script written in Bash + * [qrzlogger](https://codeberg.org/mclemens/qrzlogger) - A python application to log QSOs directly to QRZ.com from the command line + * [pyBMNotify](https://codeberg.org/mclemens/pyBMNotify) - Python script for monitoring the Brandmeister network and sending push notifications + * [qrz.sh](https://codeberg.org/mclemens/qrz.sh) - QRZ.com callsign data query script written in Bash * [The AntennaPi](/the-antennapi/) - Raspberry Pi based remote antenna switch * [Shortened 30m Dipole](/30m-dipole/) - Dipole for the 30m band, designed for a 10m long attic