mirror of
https://codeberg.org/mclemens/qrz.is.git
synced 2024-11-19 07:46:03 -05:00
fixed a lot of typos
added automatic generation of gemini files
This commit is contained in:
parent
18bf678719
commit
2fdda3840d
28
config.toml
28
config.toml
@ -8,8 +8,25 @@ dateFormat = "2006-01-02" # default
|
||||
|
||||
publishDir = "/var/www/qrz.is"
|
||||
|
||||
[mediaTypes]
|
||||
[mediaTypes."text/gemini"]
|
||||
suffixes = ["gmi"]
|
||||
|
||||
|
||||
[outputFormats]
|
||||
[outputFormats.Gemini]
|
||||
name = "GEMINI"
|
||||
isPlainText = true
|
||||
isHTML = false
|
||||
mediaType = "text/gemini"
|
||||
protocol = "gemini://"
|
||||
permalinkable = true
|
||||
path ="gemini/"
|
||||
|
||||
[outputs]
|
||||
home = ["HTML", "RSS", "GEMINI"]
|
||||
page = ["HTML", "GEMINI"]
|
||||
|
||||
# Menu links
|
||||
[menu]
|
||||
[[menu.main]]
|
||||
@ -24,6 +41,14 @@ publishDir = "/var/www/qrz.is"
|
||||
name = "About"
|
||||
weight = 4
|
||||
url = "/about/"
|
||||
[[menu.main]]
|
||||
name = "Impressum"
|
||||
weight = 5
|
||||
url = "/impressum/"
|
||||
[[menu.main]]
|
||||
name = "Datenschutz"
|
||||
weight = 6
|
||||
url = "/privacy/"
|
||||
[[menu.footer]]
|
||||
name = "Git"
|
||||
weight = 5
|
||||
@ -41,8 +66,7 @@ publishDir = "/var/www/qrz.is"
|
||||
weight = 8
|
||||
url = "/privacy/"
|
||||
[[menu.footer]]
|
||||
name = "Impress/Impressum"
|
||||
name = "Imprint/Impressum"
|
||||
weight = 9
|
||||
url = "/impressum/"
|
||||
|
||||
|
||||
|
@ -8,19 +8,12 @@ showthedate: false
|
||||
|
||||
Hi, I'm Michael Clemens. I'm an information security engineer with many years of experience in information technology. My first computer was a Commodore C64 (1989), followed by an Amiga (1992) and finally, in 1995, I got my first PC. In 1998 I installed my first Linux distribution (S.u.S.E. Linux 5.3), moved to Debian in 2002, tried a lot of BSDs and Linux distributions but always came back to Debian.
|
||||
|
||||
I support the [Free Software Foundation Europe (fsfe.org)][1]. Everything I code in my freetime is therefore published as open source software. If you are interested, you can have a look at my projects [here][2]. I also try to document interesting stuff on my [blog][4].
|
||||
I support the [Free Software Foundation Europe (fsfe.org)](https://wiki.fsfe.org/Fellows/clemens). Everything I code in my freetime is therefore published as open source software. If you are interested, you can have a look at my [projects](/projects/). I also try to document interesting stuff on my [blog](/post/).
|
||||
|
||||
Besides that, I enjoy gaming on everything 8-bit (C64, Atari 2600, NES etc.) or fantasy consoles (PICO-8, TIC-80).
|
||||
|
||||
Apart from computer related hobbies, I love analog photography, bicycles, reading and many more.
|
||||
|
||||
I am a licensed ham radio operator and member of the [DARC][3]. My callsign is DL6MHC. You can find some information about my station on my [QRZ.com page][6].
|
||||
I am a licensed ham radio operator and member of the [DARC](https://www.darc.de). My callsign is DL6MHC. You can find some information about my station on my [QRZ.com page](https://qrz.com/DB/DL6MHC).
|
||||
|
||||
If you'd like to contact me, please send me a mail to [contact_0x7E5@qrz.is](mailto:contact_0x7E5@qrz.is) or send me a toot on [Mastodon][5].
|
||||
|
||||
[1]: https://wiki.fsfe.org/Fellows/clemens
|
||||
[2]: /projects/
|
||||
[3]: https://www.darc.de
|
||||
[4]: /blog/
|
||||
[5]: https://mastodon.radio/@DL6MHC
|
||||
[6]: https://qrz.com/DB/DL6MHC
|
||||
If you'd like to contact me, please send me a mail to [contact_0x7E5@qrz.is](mailto:contact_0x7E5@qrz.is) or send me a toot on [Mastodon](https://mastodon.radio/@DL6MHC).
|
||||
|
@ -1,61 +1,47 @@
|
||||
---
|
||||
title: The Laundruino
|
||||
type: post
|
||||
date: 2011-08-05T09:58:52+00:00
|
||||
url: /the-arduino-enabled-washing-machine/
|
||||
categories:
|
||||
- arduino
|
||||
tags:
|
||||
- arduino
|
||||
|
||||
---
|
||||
My washing machine is located in the basement. Unfortunately, the time data displayed on the front panel is always inaccurate. So instead of constantly running down the stairs and checking if the laundry is done, I decided to connect the washing machine to my LAN and extend it’s features by a simple http server. This is what I needed for it:
|
||||
|
||||
* 1 [arduino uno][1]
|
||||
* 1 [ethernet shield][2]
|
||||
My washing machine is located in the basement. Unfortunately, the time data displayed on the front panel is always inaccurate. So instead of constantly running down the stairs and checking if the laundry is done, I decided to connect the washing machine to my LAN and extend it's features by a simple http server. This is what I needed for it:
|
||||
|
||||
* 1 [arduino uno](http://arduino.cc/en/Main/ArduinoBoardUno)
|
||||
* 1 [ethernet shield](http://arduino.cc/en/Main/ArduinoBoardEthernet)
|
||||
* 1 opto-coupler (CNY17)
|
||||
* 1 perfboard
|
||||
* 1 resistor (150 Ohm)
|
||||
|
||||
In my case, getting the right signal from the washing machine was simple: It has a „Finished“ LED on the front panel, so all I needed to do, was to solder it out and replace it with a two-core wire.
|
||||
In my case, getting the right signal from the washing machine was simple: It has a "Finished" LED on the front panel, so all I needed to do, was to solder it out and replace it with a two-core wire.
|
||||
|
||||
|
||||
![image][3]
|
||||
![image](/img/laundruino1_panel_small.jpg)
|
||||
|
||||
![image][4]
|
||||
![image](/img/laundruino2_cuircuit_board_small.jpg)
|
||||
|
||||
![image][5]
|
||||
![image](/img/laundruino3_washer_small.jpg)
|
||||
|
||||
To connect my washing machine with the arduino, I built a minimal shield with a prefboard and a CNY17. Here’s how everything is put together:
|
||||
To connect my washing machine with the arduino, I built a minimal shield with a prefboard and a CNY17. Here's how everything is put together:
|
||||
|
||||
![image][6]
|
||||
![image](/img/laundruino4_schematics_small.jpg)
|
||||
|
||||
![image][7]
|
||||
![image](/img/laundruino5_shield_small.jpg)
|
||||
|
||||
![image][8]
|
||||
![image](/img/laundruino6_shield_small.jpg)
|
||||
|
||||
Now I have a LOW signal on pin A2 (digital mode) when the laundry is done and a HIGH signal if the machine is running or turned off. In my case, a loop of 100ms duration is needed every time to watch the signal because I don’t get a steady voltage here (I guess the front panel LEDs might be multiplexed). If the signal becomes LOW once in this time window, the washing machine has finished and the LED would have turned on.
|
||||
Now I have a LOW signal on pin A2 (digital mode) when the laundry is done and a HIGH signal if the machine is running or turned off. In my case, a loop of 100ms duration is needed every time to watch the signal because I don't get a steady voltage here (I guess the front panel LEDs might be multiplexed). If the signal becomes LOW once in this time window, the washing machine has finished and the LED would have turned on.
|
||||
|
||||
![image][9]
|
||||
![image](/img/laundruino7_debug_small.jpg)
|
||||
|
||||
Screenshots:
|
||||
|
||||
![image][10]
|
||||
![image](/img/laundruino8_screen1.jpg)
|
||||
|
||||
![image][11]
|
||||
![image](/img/laundruino9_screen2.jpg)
|
||||
|
||||
You can download the code on github: [https://git.qrz.is/clemens/laundruino ][12]
|
||||
|
||||
|
||||
|
||||
[1]: http://arduino.cc/en/Main/ArduinoBoardUno
|
||||
[2]: http://arduino.cc/en/Main/ArduinoBoardEthernet
|
||||
[3]: /img/laundruino1_panel_small.jpg
|
||||
[4]: /img/laundruino2_cuircuit_board_small.jpg
|
||||
[5]: /img/laundruino3_washer_small.jpg
|
||||
[6]: /img/laundruino4_schematics_small.jpg
|
||||
[7]: /img/laundruino5_shield_small.jpg
|
||||
[8]: /img/laundruino6_shield_small.jpg
|
||||
[9]: /img/laundruino7_debug_small.jpg
|
||||
[10]: /img/laundruino8_screen1.jpg
|
||||
[11]: /img/laundruino9_screen2.jpg
|
||||
[12]: https://git.qrz.is/clemens/laundruino
|
||||
You can download the code here: [git.qrz.is](https://git.qrz.is/clemens/laundruino)
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: The One Button Audiobook Player
|
||||
type: post
|
||||
author: micha
|
||||
date: 2012-10-29T23:20:05+00:00
|
||||
url: /the-one-button-audiobook-player/
|
||||
@ -9,14 +10,14 @@ tags:
|
||||
- raspberry audiobook
|
||||
|
||||
---
|
||||
This little Raspberry Pi based project is a gift for my wife’s grandmother for her 90th birthday. Being visually impaired, she is hard to entertain but loves to listen to audiobooks. The problem is, that she isn’t able to handle a ghetto blaster or MP3 player.
|
||||
This little Raspberry Pi based project is a gift for my wife's grandmother for her 90th birthday. Being visually impaired, she is hard to entertain but loves to listen to audiobooks. The problem is, that she isn't able to handle a ghetto blaster or MP3 player.
|
||||
|
||||
The solution to this problem was – tadaaaah – a one button audiobook player 🙂
|
||||
|
||||
It basically consists of:
|
||||
|
||||
* 1 Raspberry Pi
|
||||
* 1 [ModMyPi enclosure][1]
|
||||
* 1 [ModMyPi enclosure](https://www.modmypi.com/)
|
||||
* 1 button
|
||||
* 2 resistors (330 Ohm, 10 Kilo-Ohm)
|
||||
* 1 blue LED
|
||||
@ -26,7 +27,7 @@ It basically consists of:
|
||||
|
||||
The following software has been used:
|
||||
|
||||
* Raspbian minimal image ([http://www.linuxsystems.it/2012/06/raspbian-wheezy-armhf-raspberry-pi-minimal-image][2])
|
||||
* Raspbian minimal image ([http://www.linuxsystems.it/2012/06/raspbian-wheezy-armhf-raspberry-pi-minimal-image](http://www.linuxsystems.it/2012/06/raspbian-wheezy-armhf-raspberry-pi-minimal-image/))
|
||||
* mpd (music player daemon)
|
||||
* mpc
|
||||
* mpd-python
|
||||
@ -44,9 +45,9 @@ The features are the following:
|
||||
|
||||
Some pics and a video:
|
||||
|
||||
![image][3]
|
||||
![image](/img/obabp_1.jpg)
|
||||
|
||||
![image][4]
|
||||
![image](/img/obabp_2.jpg)
|
||||
|
||||
<iframe frameborder="0" width="525" height="295" src="https://www.dailymotion.com/embed/video/xup7rg" allowfullscreen allow="autoplay"></iframe>
|
||||
|
||||
@ -54,15 +55,15 @@ Some pics and a video:
|
||||
|
||||
If you like to build your own one button audio book player, here are the super simple schematics:
|
||||
|
||||
![image][5]
|
||||
![image](/img/obabp_schematics.jpg)
|
||||
|
||||
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://git.qrz.is/clemens/theonebuttonaudiobookplayer)
|
||||
|
||||
**Update (2013-11-26)**
|
||||
|
||||
Here’s what Russel wrote in a comment to this post:
|
||||
Here's what Russel wrote in a comment to this post:
|
||||
|
||||
I just completed building this and have some addendum notes adding more details:
|
||||
Install the following packages:
|
||||
@ -122,9 +123,3 @@ Here’s what Russel wrote in a comment to this post:
|
||||
sudo reboot
|
||||
|
||||
Then retest again to be sure all is well.
|
||||
|
||||
[1]: https://www.modmypi.com/
|
||||
[2]: http://www.linuxsystems.it/2012/06/raspbian-wheezy-armhf-raspberry-pi-minimal-image/
|
||||
[3]: /img/obabp_1.jpg
|
||||
[4]: /img/obabp_2.jpg
|
||||
[5]: /img/obabp_schematics.jpg
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: Adressenmeister
|
||||
type: post
|
||||
author: micha
|
||||
date: 2013-01-29T12:39:02+00:00
|
||||
url: /adressenmeister/
|
||||
@ -7,19 +8,16 @@ categories:
|
||||
- Uncategorized
|
||||
|
||||
---
|
||||
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 🙂
|
||||
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 github repository where the source code is available: [https://github.com/exitnode/adressenmeister][1]
|
||||
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)
|
||||
|
||||
Here’s a little screen-cap of it:
|
||||
Here's a little screen-cap of it:
|
||||
|
||||
<iframe frameborder="0" width="525" height="371" src="https://www.dailymotion.com/embed/video/xx3xfk" allowfullscreen allow="autoplay"></iframe>
|
||||
|
||||
Update:
|
||||
|
||||
Here’s a pic of the floppy disk:
|
||||
Here's a pic of the floppy disk:
|
||||
|
||||
![image][2]
|
||||
|
||||
[1]: https://git.qrz.is/clemens/adressenmeister "https://git.qrz.is/clemens/adressenmeister"
|
||||
[2]: /img/diskette.jpg
|
||||
![image](/img/diskette.jpg)
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: Little Helper
|
||||
type: post
|
||||
author: micha
|
||||
date: 2013-03-23T11:49:38+00:00
|
||||
url: /little-helper/
|
||||
@ -7,11 +8,11 @@ categories:
|
||||
- Uncategorized
|
||||
|
||||
---
|
||||
Here’s the result of my attempt to recreate [Gyro Gearloose’s Little Helper (in German: Daniel Düsentrieb’s Helferlein)][1]:
|
||||
Here's the result of my attempt to recreate [Gyro Gearloose's Little Helper (in German: Daniel Düsentrieb's Helferlein)](https://www.duckipedia.de/Helferlein):
|
||||
|
||||
![image][2]
|
||||
![image](/img/helferlein_final_small.jpg)
|
||||
|
||||
It’s built out of:
|
||||
It's built out of:
|
||||
|
||||
* aluminium tubes
|
||||
* brass sticks
|
||||
@ -20,6 +21,3 @@ It’s built out of:
|
||||
* a 12V 40W bulb with E27 thread
|
||||
* some wire
|
||||
* a AC/DC converter 12V 3A
|
||||
|
||||
[1]: https://www.duckipedia.de/Helferlein
|
||||
[2]: /img/helferlein_final_small.jpg
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: One-button audiobook player features in new book
|
||||
type: post
|
||||
author: micha
|
||||
date: 2013-05-03T13:16:03+00:00
|
||||
url: /one-button-audiobook-player-features-in-new-book/
|
||||
@ -9,13 +10,10 @@ categories:
|
||||
---
|
||||
The One-button audiobook player has been included in the new book Raspberry Pi For Dummies by Sean McManus and Mike Cook. The book covers setting up the Raspberry Pi, using Linux on it, using the Pi for work and play, programming the Raspberry Pi in Scratch and Python, and creating electronics projects.
|
||||
|
||||
![image][1]
|
||||
![image](/img/rapidcover250.jpg)
|
||||
|
||||
Co-author Sean McManus told me: “We wanted to finish the book by highlighting some inspiring projects that would give people an idea of what they could do by taking their new programming and electronics skills further. The one-button audiobook player is a nice example of an electronics project, but I particularly like the way it’s really improving someone’s quality of life, by making it possible for your wife’s grandmother to listen to audiobooks. I get a lot of enjoyment from audiobooks myself, so I can imagine how much it means to her to be able to listen to them, especially given her visual impairment.”
|
||||
|
||||
Other inspiring Raspberry Pi projects mentioned in the book include a synthesiser, a bird feeder webcam, a weather station and a jukebox.
|
||||
|
||||
You can [find out more about Raspberry Pi For Dummies at Sean’s website][2].
|
||||
|
||||
[1]: /img/rapidcover250.jpg
|
||||
[2]: http://www.sean.co.uk/books/raspberry-pi-for-dummies/index.shtm
|
||||
You can [find out more about Raspberry Pi For Dummies at Sean’s website](http://www.sean.co.uk/books/raspberry-pi-for-dummies/index.shtm).
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: 'NSE-Script: SQLite output for Nmap'
|
||||
type: post
|
||||
author: micha
|
||||
date: 2014-05-05T13:36:29+00:00
|
||||
url: /nse-script-sqlite-output-for-nmap/
|
||||
@ -7,16 +8,19 @@ categories:
|
||||
- Uncategorized
|
||||
|
||||
---
|
||||
I wrote this little NSE script that allows you to store the output of Nmap into a SQLite database: <a href="https://git.qrz.is/clemens/nmap-sqlite-output" title="sqlite-output" target="_blank">https://github.com/exitnode/nmap-sqlite-output<br /> </a>
|
||||
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)
|
||||
|
||||
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.
|
||||
|
||||
**Example:**
|
||||
|
||||
`$ nmap -sS -A -F --script sqlite-output scanme.nmap.org<br />
|
||||
[...]<br />
|
||||
$ sqlite3 scan.sqlite<br />
|
||||
[...]<br />
|
||||
sqlite> select * from scandata;<br />
|
||||
scanme.nmap.org|74.207.244.221|22|tcp|ssh|open|OpenSSH5.3p1 Debian 3ubuntu7.1<br />
|
||||
scanme.nmap.org|74.207.244.221|80|tcp|http|open|Apache httpd2.2.14`
|
||||
## Example
|
||||
|
||||
```
|
||||
$ nmap -sS -A -F --script sqlite-output scanme.nmap.org
|
||||
[...]
|
||||
$ sqlite3 scan.sqlite
|
||||
[...]
|
||||
sqlite> select * from scandata;
|
||||
scanme.nmap.org|74.207.244.221|22|tcp|ssh|open|OpenSSH5.3p1 Debian 3ubuntu7.1
|
||||
scanme.nmap.org|74.207.244.221|80|tcp|http|open|Apache httpd2.2.14
|
||||
```
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: Patch for the CLI password manager „pass“
|
||||
type: post
|
||||
author: micha
|
||||
date: 2016-05-25T21:47:20+00:00
|
||||
url: /patch-for-the-cli-password-manager-pass/
|
||||
@ -9,7 +10,7 @@ categories:
|
||||
---
|
||||
I use Pass (https://www.passwordstore.org/) to store and synchronize all my passwords.
|
||||
|
||||
When I use Pass via SSH on a remote system in order to retrieve a password, I cannot make use of it’s clipboard feature. In order to output the password without actually displaying it, I wrote the following patch which prints the password in red on a red background while still being able to be manually copied to the clipboard:
|
||||
When I use Pass via SSH on a remote system in order to retrieve a password, I cannot make use of it's clipboard feature. In order to output the password without actually displaying it, I wrote the following patch which prints the password in red on a red background while still being able to be manually copied to the clipboard:
|
||||
|
||||
```
|
||||
src/password-store.sh | 19 +++++++++++++------
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: Correlation Rule Documentation Generator for McAfee SIEM
|
||||
type: post
|
||||
author: micha
|
||||
date: 2018-04-29T13:09:57+00:00
|
||||
url: /correlation-rule-documentation-generator-for-mcafee-siem/
|
||||
@ -7,11 +8,8 @@ categories:
|
||||
- Uncategorized
|
||||
|
||||
---
|
||||
Since we are required to document all custom correlation rules inside our SIEM (McAfee Enterprise Security Manager) for our customers, I wrote a Python script that converts XML rule exports to Markdown. Afterwards its easy to convert teh resulting file e.g. to PDF, DOCX, HTML or even variuous wiki-formats with e.g. Pandoc. This way it’s possible to generate a PDF documentation of all rules with just a few clicks/commands.
|
||||
Since we are required to document all custom correlation rules inside our SIEM (McAfee Enterprise Security Manager) for our customers, I wrote a Python script that converts XML rule exports to Markdown. Afterwards its easy to convert teh resulting file e.g. to PDF, DOCX, HTML or even variuous wiki-formats with e.g. Pandoc. This way it's possible to generate a PDF documentation of all rules with just a few clicks/commands.
|
||||
|
||||
![image][1]
|
||||
![image](/img/esm2markdown.png)
|
||||
|
||||
On the long shot that this is useful for you, you can find the script [here][2].
|
||||
|
||||
[1]: /img/esm2markdown.png
|
||||
[2]: https://git.qrz.is/clemens/esm2markdown
|
||||
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).
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: Dynamic DNS for NSD
|
||||
type: post
|
||||
author: micha
|
||||
date: 2018-05-03T02:26:11+00:00
|
||||
url: /dynamic-dns-for-nsd/
|
||||
@ -40,7 +41,7 @@ Create an empty _update.html_:
|
||||
# mkdir /var/www/htdocs/dyndns/
|
||||
# touch /var/www/htdocs/dyndns/update.html
|
||||
|
||||
After reloading HTTPD, try to access <a href="http://update.example.com/update.html" rel="nofollow">http://update.example.com/update.html</a> The request should show up in _/var/www/logs/dyndns.log_
|
||||
After reloading HTTPD, try to access [http://update.example.com/update.html] The request should show up in _/var/www/logs/dyndns.log_
|
||||
|
||||
## **Create a zone file for dyn.example.com**
|
||||
|
||||
@ -65,11 +66,11 @@ Create a new zone file (e.g. at _/var/nsd/zones/dyn.example.com.zone_) with the
|
||||
update IN A 123.123.123.123
|
||||
dyn IN A 123.123.123.123
|
||||
|
||||
Don’t forget to set your own domain names, name servers and ip addresses Furthermore, add this zone file to your _/var/nsd/etc/nsd.conf_
|
||||
Don't forget to set your own domain names, name servers and ip addresses Furthermore, add this zone file to your _/var/nsd/etc/nsd.conf_
|
||||
|
||||
## Configure and Install nsd-dyndns
|
||||
|
||||
* Download the scripts from here: https://git.qrz.is/clemens/nsd-dyndns
|
||||
* Download the scripts from here: [https://git.qrz.is/clemens/nsd-dyndns](https://git.qrz.is/clemens/nsd-dyndns)
|
||||
* Copy _dyndns.conf-dist_ to _/etc/dyndns.conf_
|
||||
* _\# cp dyndns.conf-dist /etc/dyndns.conf_
|
||||
* Edit _/etc/dyndns.conf_ to your needs
|
||||
@ -85,7 +86,7 @@ Configure your router to query the following URL:
|
||||
|
||||
http://update.example.com/update.html?qwertzuiop1234567890
|
||||
|
||||
Don’t forgert to set your own domain name and to replace the string after „?“ with the password you configured in the config file.
|
||||
Don't forgert to set your own domain name and to replace the string after "?" with the password you configured in the config file.
|
||||
|
||||
# What it does
|
||||
|
||||
@ -97,7 +98,7 @@ When the script is executed e.g. via cron, the following happens:
|
||||
|
||||
* It greps the last line of _/var/www/logs/dyndns.log_ where the correct password was found and extracts the requesting IP address
|
||||
* It checks if this IP is the same than the last time
|
||||
* If it’s a new IP, then it replaces the forth line in your zone file – the line with the version number – with a new version (current unix time stamp)
|
||||
* If it's a new IP, then it replaces the forth line in your zone file (the line with the version number) with a new version (current unix time stamp)
|
||||
* As a second step, it updates the A record of you DynDNS domain (dyn.example.com in our example)
|
||||
* It then stores the new IP in the file _/tmp/last\_dyndns\_ip.txt_
|
||||
* Finally it reloads NSD
|
||||
|
@ -1,6 +1,7 @@
|
||||
---
|
||||
title: "Shortened 30m Dipole"
|
||||
date: 2020-02-02T15:00:00+02:00
|
||||
type: post
|
||||
url: /30m-dipole/
|
||||
---
|
||||
|
||||
@ -10,7 +11,7 @@ This aricle describes the construction of a 9,50 m long dipole for the 30 m band
|
||||
|
||||
The following diagram shows the dipole in theory:
|
||||
|
||||
![image][1]
|
||||
![image](/img/30m_dipole_schematics.jpg)
|
||||
|
||||
# Bill of materials
|
||||
|
||||
@ -27,7 +28,7 @@ The following diagram shows the dipole in theory:
|
||||
|
||||
Drill a hole into the 16 mm installation tube and stick a few centimeters of the 1.5 mm2 wire through it. Afterwards tightly wind the wire around it 37 times. After the 37th turn, drill a hole closely to the wire into the tube and stick the wire through it. It now should look like this:
|
||||
|
||||
![image][2]
|
||||
![image](/img/30m_dipole_coil.jpg)
|
||||
|
||||
Repeat this step to build a second coil.
|
||||
|
||||
@ -37,16 +38,10 @@ Connect 1 m antenna wire to each side of the feed point connector (or the 1:1 ba
|
||||
|
||||
The result should look like this:
|
||||
|
||||
![image][3]
|
||||
![image](/img/30m_dipole.jpg)
|
||||
|
||||
# Result
|
||||
|
||||
The antenna ended up being 9,30 m long (including feed point, excluding isolators). The following photos show how nicely this antenna can be tuned:
|
||||
|
||||
![image][4]
|
||||
|
||||
|
||||
[1]: /img/30m_dipole_schematics.jpg
|
||||
[2]: /img/30m_dipole_coil.jpg
|
||||
[3]: /img/30m_dipole.jpg
|
||||
[4]: /img/30m_dipole_nanovna.jpg
|
||||
![image](/img/30m_dipole_nanovna.jpg)
|
||||
|
@ -1,19 +1,15 @@
|
||||
---
|
||||
title: "Remote Antenna Switch"
|
||||
type: post
|
||||
author: micha
|
||||
date: 2020-03-13T15:00:00+02:00
|
||||
url: /antenna-switch/
|
||||
---
|
||||
New project: raspberry pi controlled remote antenna switch. One remote rpi for triggering the 4 relais inside the antenna switch and one rpi connected to the TRX in the shack measuring the ATU port's voltage to fully automatically choose the correct antenna for each band.
|
||||
|
||||
![image][1]
|
||||
|
||||
|
||||
![image](/img/antenna-switch-1.jpg)
|
||||
|
||||
|
||||
Update: The antenna switch itself is assembled and working. Next step: interfacing the pi and coding a simple web service which will be used to select an antenna via network.
|
||||
|
||||
![image][2]
|
||||
|
||||
[1]: /img/antenna-switch-1.jpg
|
||||
[2]: /img/antenna-switch-2.jpg
|
||||
![image](/img/antenna-switch-2.jpg)
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: "ATU-100"
|
||||
type: post
|
||||
author: micha
|
||||
date: 2021-01-09T15:00:00+02:00
|
||||
url: /atu-100/
|
||||
@ -8,16 +9,10 @@ url: /atu-100/
|
||||
Just finished my ATU-100 build. It's fun to build, super affordable and works without problems so far.
|
||||
|
||||
|
||||
![image](/img/atu-100_1.jpg)
|
||||
|
||||
![image][1]
|
||||
![image](/img/atu-100_2.jpg)
|
||||
|
||||
![image][2]
|
||||
![image](/img/atu-100_3.jpg)
|
||||
|
||||
![image][3]
|
||||
|
||||
![image][4]
|
||||
|
||||
[1]: /img/atu-100_1.jpg
|
||||
[2]: /img/atu-100_2.jpg
|
||||
[3]: /img/atu-100_3.jpg
|
||||
[4]: /img/atu-100_4.jpg
|
||||
![image](/img/atu-100_4.jpg)
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: "HF Signals Bitx40"
|
||||
type: post
|
||||
author: micha
|
||||
date: 2021-05-13T15:00:00+02:00
|
||||
url: /bitx40/
|
||||
@ -7,7 +8,4 @@ url: /bitx40/
|
||||
|
||||
Finally fixed some issues with the BITX40 and had my first QSO with it today (YU1XA, report 55) - two years after I purchased the kit. There are still some issues but I am on the right track.
|
||||
|
||||
![image][1]
|
||||
|
||||
|
||||
[1]: /img/bitx40.jpg
|
||||
![image](/img/bitx40.jpg)
|
||||
|
@ -1,22 +0,0 @@
|
||||
---
|
||||
title: "Cif / Bearded Avenger"
|
||||
date: 2018-10-28T20:09:18+01:00
|
||||
draft: true
|
||||
---
|
||||
|
||||
# Introduction
|
||||
|
||||
cif@cif:~$ cif --itype fqdn --tags malware --limit 1 --fields tlp,indicator,count,tags,description,confidence,rdata,provider
|
||||
+-------+----------------+-------+---------+----------------+------------+-------+--------------+
|
||||
| tlp | indicator | count | tags | description | confidence | rdata | provider |
|
||||
+-------+----------------+-------+---------+----------------+------------+-------+--------------+
|
||||
| white | erxxxxxxzq.com | 2 | malware | malware domain | 9.0 | None | spamhaus.org |
|
||||
+-------+----------------+-------+---------+----------------+------------+-------+--------------+
|
||||
cif@cif:~$ cif --indicator 2xx.xx.xx.xx7 --format table --fields tlp,indicator,count,tags,description,confidence,rdata,provider --limit 3
|
||||
+-------+---------------+-------+--------------------+------------------+------------+-------+---------------------+
|
||||
| tlp | indicator | count | tags | description | confidence | rdata | provider |
|
||||
+-------+---------------+-------+--------------------+------------------+------------+-------+---------------------+
|
||||
| green | 2xx.xx.xx.xx7 | 1 | malware | compromised host | 8.0 | None | emergingthreats.net |
|
||||
| green | 2xx.xx.xx.xx7 | 6 | bruteforce,scanner | None | 9.0 | None | dataplane.org |
|
||||
| amber | 2xx.xx.xx.xx7 | 7 | search | None | 10.0 | None | admin |
|
||||
+-------+---------------+-------+--------------------+------------------+------------+-------+---------------------+
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: "DX Century Club Award"
|
||||
type: post
|
||||
author: micha
|
||||
date: 2021-07-03T15:00:00+02:00
|
||||
url: /dxcc-phone/
|
||||
@ -7,6 +8,4 @@ url: /dxcc-phone/
|
||||
|
||||
I finally managed to work 100 confirmed entities (SSB/Phone) and have now received the ARRL DXCC Phone award. My new adventures will be working QRP with my recently purchased FT-817ND and building a small PA for the times I need a small boost.
|
||||
|
||||
![image][1]
|
||||
|
||||
[1]: /img/dxcc.jpg
|
||||
![image](/img/dxcc.jpg)
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: "Xiegu G1M Stand"
|
||||
type: post
|
||||
author: micha
|
||||
date: 2021-06-05T15:00:00+02:00
|
||||
url: /g1m-stand/
|
||||
@ -7,7 +8,4 @@ url: /g1m-stand/
|
||||
|
||||
A $0 Xiegu G1M stand:
|
||||
|
||||
![image][1]
|
||||
|
||||
|
||||
[1]: /img/Xiegu_G1M_stand.jpg
|
||||
![image](/img/Xiegu_G1M_stand.jpg)
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: "Xiegu G90 Mods"
|
||||
type: post
|
||||
author: micha
|
||||
date: 2020-01-17T15:00:00+02:00
|
||||
url: /g90-mods/
|
||||
@ -15,7 +16,7 @@ The original power cable is too thin and should be replaced with silicone 14AWG
|
||||
|
||||
Mine looks like this now:
|
||||
|
||||
![image][1]
|
||||
![image](/img/g90_power_cable.jpg)
|
||||
|
||||
## Microphone Mod
|
||||
|
||||
@ -23,7 +24,7 @@ When using the original G90 microphone, your voice might be too bassy. To solve
|
||||
|
||||
The following image shows both capacitors (taken from https://xiegug90.groups.io/g/main/message/1219):
|
||||
|
||||
![image][2]
|
||||
![image](/img/g90_mic_mod.jpg)
|
||||
|
||||
## Ferrite Beads
|
||||
|
||||
@ -40,7 +41,7 @@ Not essential but nice: A larger VFO knob. I bought a black aluminium potentiome
|
||||
|
||||
The G90 with a larger VFO knob:
|
||||
|
||||
![image][3]
|
||||
![image](/img/g90_vfo_knob.jpg)
|
||||
|
||||
## Head Unit Stand
|
||||
|
||||
@ -53,8 +54,3 @@ I like [this 3D printable design over at thingiverse.com](https://www.thingivers
|
||||
* [CI-V Reference](https://xiegug90.groups.io/g/main/files/G90%20CI-V%20REFERENCE.pdf)
|
||||
* [Cheat Sheet](https://xiegug90.groups.io/g/main/files/XIEGU%20G90%20CHEAT%20SHEET%20v1.73%2012-15-2019.pdf)
|
||||
* [ini file for OnmiRig](https://xiegug90.groups.io/g/main/files/XieguG90.ini)
|
||||
|
||||
|
||||
[1]: /img/g90_power_cable.jpg
|
||||
[2]: /img/g90_mic_mod.jpg
|
||||
[3]: /img/g90_vfo_knob.jpg
|
||||
|
@ -2,6 +2,7 @@
|
||||
title: "Heated Trackball"
|
||||
date: 2014-12-22T14:34:34+02:00
|
||||
draft: false
|
||||
type: post
|
||||
url: /heated-trackball/
|
||||
---
|
||||
|
||||
@ -17,7 +18,7 @@ consume more than 150mAh, the wire might consume 350mAh. Knowing the
|
||||
voltage of 5V and the desired power consumption, it is easy to
|
||||
calculate the needed resistor:
|
||||
|
||||
![image][1]
|
||||
![image](/img/resistance.png)
|
||||
|
||||
The heating wire has a resistance of 43,95 Ohm per meter, the wire
|
||||
needs to be 33cm long in order to consume 350mAh:
|
||||
@ -27,21 +28,14 @@ Icalculation of the wire length /pics/length.png
|
||||
|
||||
Glueing the wire to the inner side of the housing:
|
||||
|
||||
![image][2]
|
||||
![image](/img/trackball1.jpg)
|
||||
|
||||
After reassembling the mouse buttons:
|
||||
|
||||
![image][3]
|
||||
![image](/img/trackball2.jpg)
|
||||
|
||||
The finished trackball:
|
||||
|
||||
![image][4]
|
||||
![image](/img/trackball3.jpg)
|
||||
|
||||
![image][5]
|
||||
|
||||
|
||||
[1]: /img/resistance.png
|
||||
[2]: /img/trackball1.jpg
|
||||
[3]: /img/trackball3.jpg
|
||||
[4]: /img/trackball2.jpg
|
||||
[5]: /img/trackball4.jpg
|
||||
![image](/img/trackball4.jpg)
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: "MikroTik: Auto-Backup der Routerkonfiguration via FTP"
|
||||
type: post
|
||||
author: micha
|
||||
date: 2019-01-04T22:00:11+02:00
|
||||
url: /mikrotik-auto-backup/
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: "MikroTik: Zentrales WiFi-Management mit CAPsMAN"
|
||||
type: post
|
||||
author: micha
|
||||
date: 2018-12-31T16:00:11+02:00
|
||||
url: /mikrotik-capsman-setup/
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: "MikroTik: Ausführen von Skripten per SMS"
|
||||
type: post
|
||||
author: micha
|
||||
date: 2018-12-30T13:00:11+02:00
|
||||
url: /mikrotik-exec-scripts-via-sms/
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: "qrz.sh - a CLI QRZ.com query tool"
|
||||
type: post
|
||||
author: micha
|
||||
date: 2020-11-09T17:00:00+02:00
|
||||
url: /qrz-sh/
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: "qrzlogger"
|
||||
type: post
|
||||
author: micha
|
||||
date: 2021-07-13T15:00:00+02:00
|
||||
url: /qrzlogger/
|
||||
@ -31,8 +32,4 @@ python3 -m pip install qrzlogger
|
||||
|
||||
# Screenshot
|
||||
|
||||
![image][1]
|
||||
|
||||
|
||||
|
||||
[1]: /img/qrzlogger.jpg
|
||||
![image](/img/qrzlogger.jpg)
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: "The AntennaPi"
|
||||
type: post
|
||||
author: micha
|
||||
date: 2019-07-05T13:29:09+02:00
|
||||
url: /the-antennapi/
|
||||
@ -29,30 +30,21 @@ to upgrade easily by adding a second module.
|
||||
|
||||
Drill the holes for the PL sockets:
|
||||
|
||||
![image][1]
|
||||
![image](/img/antennapi01.jpg)
|
||||
|
||||
Install the sockets:
|
||||
|
||||
![image][2]
|
||||
![image](/img/antennapi02.jpg)
|
||||
|
||||
Mount the relay module and use some antenna wire to connect the sockets with the relay module like this:
|
||||
|
||||
![image][3]
|
||||
![image](/img/antennapi03.jpg)
|
||||
|
||||
In the end it looks like this:
|
||||
|
||||
![image][4]
|
||||
![image](/img/antennapi04.jpg)
|
||||
|
||||
![image][5]
|
||||
![image](/img/antennapi05.jpg)
|
||||
|
||||
![image][6]
|
||||
![image](/img/antennapi06.jpg)
|
||||
|
||||
## Software
|
||||
|
||||
|
||||
[1]: /img/antennapi01.jpg
|
||||
[2]: /img/antennapi02.jpg
|
||||
[3]: /img/antennapi03.jpg
|
||||
[4]: /img/antennapi04.jpg
|
||||
[5]: /img/antennapi05.jpg
|
||||
[6]: /img/antennapi06.jpg
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: "uBitx v6"
|
||||
type: post
|
||||
author: micha
|
||||
date: 2021-05-18T15:00:00+02:00
|
||||
url: /uBitx_v6/
|
||||
@ -9,7 +10,4 @@ Yesterday I received and built my new uBitx v6 QRP transceiver. Connected to a L
|
||||
|
||||
The first mod will be the addition of an AGC.
|
||||
|
||||
![image][1]
|
||||
|
||||
|
||||
[1]: /img/ubitx_v6.jpg
|
||||
![image](/img/ubitx_v6.jpg)
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: "uBitx AGC Mod"
|
||||
type: post
|
||||
author: micha
|
||||
date: 2021-06-15T15:00:00+02:00
|
||||
url: /uBitx_agc/
|
||||
@ -7,10 +8,6 @@ url: /uBitx_agc/
|
||||
|
||||
uBitx v6 modifications, Part I: The uBitx is a very nice radio but the missing AGC is an ear killer. I decided to purchase an AGC board from kit-projects and soldered it onto the radio main board. It's tiny and I was afraid to damage something but it turned out fine.
|
||||
|
||||
![image][1]
|
||||
![image](/img/ubitx_agc.jpg)
|
||||
|
||||
![image][2]
|
||||
|
||||
|
||||
[1]: /img/ubitx_agc.jpg
|
||||
[2]: /img/ubitx_agc_2.jpg
|
||||
![image](/img/ubitx_agc_2.jpg)
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: "uBitx VFO Knob Mod"
|
||||
type: post
|
||||
author: micha
|
||||
date: 2021-06-18T15:00:00+02:00
|
||||
url: /uBitx_vfo_knob/
|
||||
@ -7,7 +8,4 @@ url: /uBitx_vfo_knob/
|
||||
|
||||
uBitx v6 modifications, Part III: 3D printed knobs (I like VFO knobs with a finger recess) and chassis tilt bails.
|
||||
|
||||
![image][1]
|
||||
|
||||
|
||||
[1]: /img/ubitx_printed_knobs.jpg
|
||||
![image](/img/ubitx_printed_knobs.jpg)
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: "uBitx S-Meter Mod"
|
||||
type: post
|
||||
author: micha
|
||||
date: 2021-06-16T15:00:00+02:00
|
||||
url: /uBitx_smeter/
|
||||
@ -8,13 +9,8 @@ url: /uBitx_smeter/
|
||||
uBitx v6 modifications, Part II: Since the AGC board has a S-Meter tap, the next mod was obvious :) The S-Meter of a dead Yaesu FT-290R was a perfect fit for the uBitx case and I think it looks nice.
|
||||
|
||||
|
||||
![image][1]
|
||||
![image](/img/ubitx_s-meter_1.jpg)
|
||||
|
||||
![image][2]
|
||||
![image](/img/ubitx_s-meter_2.jpg)
|
||||
|
||||
![image][3]
|
||||
|
||||
|
||||
[1]: /img/ubitx_s-meter_1.jpg
|
||||
[2]: /img/ubitx_s-meter_2.jpg
|
||||
[3]: /img/ubitx_s-meter_3.jpg
|
||||
![image](/img/ubitx_s-meter_3.jpg)
|
||||
|
@ -5,49 +5,30 @@ draft: false
|
||||
---
|
||||
|
||||
#### Software Projects
|
||||
* [TSM Monitor][1] - A PHP application for monitoring IBM's Tivoli Storage Manager
|
||||
* [TSM Monitor 2][2] - An enhanced PHP application for monitoring IBM's Tivoli Storage Manager
|
||||
* [MSTerminology][3] - Translates strings used in all kind of Microsoft products
|
||||
* [Nmap-sqlite-output][4] - Nmap NSE script for writing the scan output into a sqlite3 database
|
||||
* [Adressenmeister][5] - Adressenmeister - my very first "software project" (C64 BASIC)
|
||||
* [Shellfolio][6] - A command line cryptocurrency portfolio manager and price tracker
|
||||
* [esm2markdown][7] - A converter for McAfee SIEM rule export files to Markdown documents
|
||||
* [nsd-dyndns][8] - Dynamic DNS for NSD
|
||||
* [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
|
||||
|
||||
#### Hardware Projects
|
||||
* [The Laundruino][9] - Washing machine monitoring with an Arduino
|
||||
* [The One Button Audio Book Player][10] - The one button audiobook player
|
||||
* [Little Helper][11] - Daniel Duesentrieb's Little Helper
|
||||
* [Heated Trackball][14] - Heating mod for Logitech trackballs
|
||||
* [The Laundruino](/the-arduino-enabled-washing-machine/) - Washing machine monitoring with an Arduino
|
||||
* [The One Button Audio Book Player](/the-one-button-audiobook-player/) - The one button audiobook player
|
||||
* [Little Helper](/little-helper/) - Daniel Duesentrieb's Little Helper
|
||||
* [Heated Trackball](/heated-trackball/) - Heating mod for Logitech trackballs
|
||||
|
||||
#### Amateur Radio
|
||||
* [qrzlogger][19] - A python application to log QSOs directly to QRZ.com from the command line
|
||||
* [pyBMNotify][20] - Python script for monitoring the Brandmeister network and sending push notifications
|
||||
* [qrz.sh][21] - QRZ.com callsign data query script written in Bash
|
||||
* [The AntennaPi][17] - Raspberry Pi based remote antenna switch
|
||||
* [Shortened 30m Dipole][18] - Dipole for the 30m band, designed for a 10m long attic
|
||||
* [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
|
||||
* [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
|
||||
|
||||
#### Organizations / Projects I like and support
|
||||
|
||||
* [Free Software Foundation Europe][15] - a charity that empowers users to control technology.
|
||||
* [Super Dimension Fortress][16] - SDF Public Access UNIX System .. Est. 1987
|
||||
* [Free Software Foundation Europe](http://fsfe.org) - a charity that empowers users to control technology.
|
||||
* [Super Dimension Fortress](http://sdf.org) - SDF Public Access UNIX System .. Est. 1987
|
||||
|
||||
[1]: https://git.qrz.is/clemens/tsmmonitor
|
||||
[2]: https://git.qrz.is/clemens/tsmmonitor2
|
||||
[3]: https://git.qrz.is/clemens/MSTerminology
|
||||
[4]: https://git.qrz.is/clemens/nmap-sqlite-output
|
||||
[5]: https://git.qrz.is/clemens/adressenmeister
|
||||
[6]: https://git.qrz.is/clemens/shellfolio
|
||||
[7]: https://git.qrz.is/clemens/esm2markdown
|
||||
[8]: https://git.qrz.is/clemens/nsd-dyndns
|
||||
[9]: /the-arduino-enabled-washing-machine/
|
||||
[10]: /the-one-button-audiobook-player/
|
||||
[11]: /little-helper/
|
||||
[14]: /heated-trackball/
|
||||
[15]: http://fsfe.org
|
||||
[16]: http://sdf.org
|
||||
[17]: /the-antennapi/
|
||||
[18]: /30m-dipole/
|
||||
[19]: https://git.qrz.is/clemens/qrzlogger
|
||||
[20]: https://git.qrz.is/clemens/pyBMNotify
|
||||
[21]: https://git.qrz.is/clemens/qrz.sh
|
||||
|
37
layouts/_default/single.gmi
Normal file
37
layouts/_default/single.gmi
Normal file
@ -0,0 +1,37 @@
|
||||
# {{ .Title }}{{ $scratch := newScratch }}
|
||||
{{ $content := .RawContent -}}
|
||||
{{ $content := $content | replaceRE `#### ` "### " -}}
|
||||
{{ $content := $content | replaceRE `\n- (.+?)` "\n* $1" -}}
|
||||
{{ $content := $content | replaceRE `\n(\d+). (.+?)` "\n* $2" -}}
|
||||
{{ $content := $content | replaceRE `\[\^(.+?)\]:?` "" -}}
|
||||
{{ $content := $content | replaceRE `<br/??>` "\n" -}}
|
||||
{{ $content := $content | replaceRE `<a .*href="(.+?)".*>(.+?)</a>` "[$2]($1)" -}}
|
||||
{{ $content := $content | replaceRE `\sgemini://(\S*)` " [gemini://$1](gemini://$1)" -}}
|
||||
{{ $content := $content | replaceRE `{{ < audio "(.+?)" >}}` "=> https://brainbaking.com/$1 Embedded Audio link - $1" -}}
|
||||
{{ $content := $content | replaceRE `{{ < video "(.+?)" >}}` "=> https://brainbaking.com/$1 Embedded Video link - $1" -}}
|
||||
{{ $content := $content | replaceRE `{{ < youtube (.+?) >}}` "=> https://www.youtube.com/watch?v=$1 YouTube Video link to $1" -}}
|
||||
{{ $content := $content | replaceRE `{{ < vimeo (.+?) >}}` "=> https://vimeo.com/$1 Vimeo Video link to $1" -}}
|
||||
{{ $content := $content | replaceRE "([^`])<.*?>([^`])" "$1$2" -}}
|
||||
{{ $content := $content | replaceRE `\n\n!\[.*\]\((.+?) \"(.+?)\"\)` "\n\n=> $1 Image: $2" -}}
|
||||
{{ $content := $content | replaceRE `\n\n!\[.*]\((.+?)\)` "\n\n=> $1 Embedded Image: $1" -}}
|
||||
{{ $links := findRE `\n=> ` $content }}{{ $scratch.Set "ref" (add (len $links) 1) }}
|
||||
{{ $refs := findRE `\[.+?\]\(.+?\)` $content }}
|
||||
{{ $scratch.Set "content" $content }}{{ range $refs }}{{ $ref := $scratch.Get "ref" }}{{ $contentInLoop := $scratch.Get "content" }}{{ $url := (printf "%s #%d" . $ref) }}{{ $contentInLoop := replace $contentInLoop . $url -}}{{ $scratch.Set "content" $contentInLoop }}{{ $scratch.Set "ref" (add $ref 1) }}{{ end }}{{ $content := $scratch.Get "content" | replaceRE `\[(.+?)\]\((.+?)\) #(\d+)` "$1 [$3]" -}}
|
||||
{{ $content | safeHTML }}
|
||||
|
||||
---
|
||||
Written by Michael Clemens on {{ .Lastmod.Format (.Site.Params.dateFormat | default "2 January 2006") }}.
|
||||
|
||||
## References
|
||||
{{ $scratch.Set "ref" (add (len $links) 1) }}{{ range $refs }}{{ $ref := $scratch.Get "ref" }}{{ $url := (printf "%s #%d" . $ref) }}
|
||||
=> {{ $url | replaceRE `\[(.+?)\]\((.+?)\) #(\d+)` "$2 [$3] $1 ($2)" -}}
|
||||
{{ $scratch.Set "ref" (add $ref 1) }}{{ end}}
|
||||
{{ $related := first 3 (where (where .Site.RegularPages.ByDate.Reverse ".Params.tags" "intersect" .Params.tags) "Permalink" "!=" .Permalink) }}
|
||||
{{ if $related }}
|
||||
## Related articles
|
||||
{{ range $related }}
|
||||
=> {{ replace .RelPermalink "/gemini" "" 1}} {{ .Title }}: {{ .Params.Subtitle }}{{ end }}{{ end }}
|
||||
---
|
||||
|
||||
=> / Back to the Index
|
||||
=> https://qrz.is{{ replace (replace .RelPermalink "/gemini" "" 1) "index.gmi" "" }} View this article on the WWW
|
27
layouts/index.gmi
Normal file
27
layouts/index.gmi
Normal file
@ -0,0 +1,27 @@
|
||||
```
|
||||
██████╗ ██████╗ ███████╗ ██╗ ██████╗
|
||||
██╔═══██╗██╔══██╗╚════██║ ██║██╔════╝
|
||||
██║██╗██║██████╔╝ ███╔═╝ ██║╚█████╗
|
||||
╚██████╔╝██╔══██╗██╔══╝ ██║ ╚═══██╗
|
||||
╚═██╔═╝ ██║ ██║███████╗██╗██║██████╔╝
|
||||
╚═╝ ╚═╝ ╚═╝╚══════╝╚═╝╚═╝╚═════╝
|
||||
```
|
||||
|
||||
# QRZ.is
|
||||
|
||||
This is the personal gemini capsule of Michael Clemens. Most of what you will find here is related to amateur radio, software development and hardware projects.
|
||||
|
||||
## Pages
|
||||
|
||||
=> gemini://qrz.is/projects/index.gmi Software/Hardware Projects
|
||||
=> gemini://qrz.is/about/index.gmi About me
|
||||
|
||||
## Posts
|
||||
|
||||
{{ range (where (where (where .Site.Pages "Section" "in" (slice "post")) ".Params.type" "eq" "post") ".Params.concept" "ne" "true").GroupByDate "2006" "desc" }}{{ $year := .Key -}}
|
||||
### {{ .Key }}
|
||||
{{ range .Pages.ByDate.Reverse }}
|
||||
=> {{ replace .Permalink "/gemini" "" 1}} {{ .Date.Format ("2006/01/02") }} - {{ .Title }}
|
||||
{{- end }}
|
||||
|
||||
{{ end }}
|
@ -10,13 +10,15 @@
|
||||
</a>
|
||||
|
||||
</div>
|
||||
<hr style="border-style: solid; size: 1px; border-color: orange" />
|
||||
<nav>
|
||||
/ <a style="text-decoration: none" href="/"><b>Home</b></a>
|
||||
<a style="text-decoration: none" href="/"><b>Home</b></a>
|
||||
{{ with .Site.Menus.main }}
|
||||
{{ range . }}
|
||||
/ <a style="text-decoration: none" href="{{ .URL | relURL }}"><b>{{ .Name }}</b></a>
|
||||
{{ end }} /
|
||||
- <a style="text-decoration: none" href="{{ .URL | relURL }}"><b>{{ .Name }}</b></a>
|
||||
{{ end }}
|
||||
</nav>
|
||||
</p>
|
||||
{{ end }}
|
||||
</header>
|
||||
<hr style="border-style: solid; size: 1px; border-color: orange" />
|
||||
</p>
|
||||
|
Loading…
Reference in New Issue
Block a user