From 933d1e511f2a6de3b9fd2a8ba281bf238baeb633 Mon Sep 17 00:00:00 2001 From: "this.ven" Date: Thu, 29 Feb 2024 15:41:18 +0100 Subject: [PATCH] Fix formatting and spelling --- content/about/_index.md | 24 +++---- content/about/privacy/_index.md | 27 ++++---- content/docs/graphics/logo-design/_index.md | 65 +++++++++++-------- content/docs/graphics/profile-image/_index.md | 6 +- content/docs/infrastructure/_index.md | 11 ++-- content/docs/infrastructure/eturnal/_index.md | 20 +++--- content/docs/infrastructure/forgejo/_index.md | 13 ++-- .../docs/infrastructure/forgejo/submodules.md | 8 +-- content/docs/infrastructure/icecast/_index.md | 21 +++--- .../infrastructure/icecast/streaming-setup.md | 40 ++++++------ content/docs/infrastructure/matrix/_index.md | 17 ++--- .../matrix/public-server-list.md | 14 ++-- content/docs/infrastructure/matrix/synapse.md | 26 ++++---- .../docs/infrastructure/nextcloud/_index.md | 18 +++-- content/docs/tinkering/_index.md | 13 ++-- content/docs/tinkering/vocal-booth/_index.md | 18 +++-- content/docs/website/hugo/_index.md | 19 +++--- content/docs/website/hugo/archetypes.md | 10 +-- content/docs/website/hugo/shortcodes.md | 31 ++++----- content/talks/modep-with-pisound/_index.md | 10 ++- 20 files changed, 202 insertions(+), 209 deletions(-) diff --git a/content/about/_index.md b/content/about/_index.md index 891a354..cdf7987 100644 --- a/content/about/_index.md +++ b/content/about/_index.md @@ -18,16 +18,10 @@ discuss issues: > For framing, hustle and isolation
> — this.ven[^1] -[^1]: This quote is from the lyrics of the song [Layer 8](/music/inconvenient-ep/layer-8/). - Whenever engaging in a project I typically use FLOSS[^2] and GNU/Linux[^3]. As a graduate of media engineering and computer science I focus on networked audio, IT security and privacy. -[^2]: [Free Software](https://fsfe.org/freesoftware/comparison.en.html) or Free, -Libre and Open Source (FLOSS) definition by the Free Software Foundation Europe. -[^3]: Switch to FLOSS: [get GNU/Linux!](https://www.getgnulinux.org/) - ### Profile {{< figure src="/img/profile.jpg" title="this.ven" width="50%" @@ -38,9 +32,6 @@ Libre and Open Source (FLOSS) definition by the Free Software Foundation Europe. Talk with me in the Matrix[^4] room: -[^4]: Learn about the [Matrix](https://matrix.org/) protocol for -instant messaging. - ``` #talk2this:ven.uber.space ``` @@ -60,10 +51,8 @@ Otherwise [contact](imprint/#contact) me via email. ## This site I don't use tracking tools and your IP address is anonymized, if I need to -enable logging. Please use the Tor Browser[^5] to make some cryptonoise[^6]. - -[^5]: Use [Tor](https://www.torproject.org/) to browse privately. -[^6]: Make [cryptonoise](https://cryptonoise.org/) to protect digital rights. +enable logging. Please use the [Tor Browser](https://www.torproject.org/) to +make some [cryptonoise](https://cryptonoise.org/). {{< callout type="info" >}} Let's put it this way: Your personal information is yours, and my content is @@ -75,4 +64,11 @@ enable logging. Please use the Tor Browser[^5] to make some cryptonoise[^6]. This work is licensed under [CC BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/) {{< icon creative-commons >}} {{< icon creative-commons-by >}} -{{< icon creative-commons-sa >}} \ No newline at end of file +{{< icon creative-commons-sa >}} + +[^1]: This quote is from the lyrics of the song [Layer 8](/music/inconvenient-ep/layer-8/). +[^2]: [Free Software](https://fsfe.org/freesoftware/comparison.en.html) +comparison by the Free Software Foundation Europe. +[^3]: Switch to FLOSS: [get GNU/Linux!](https://www.getgnulinux.org/) +[^4]: Learn about the [Matrix](https://matrix.org/) protocol for +instant messaging. diff --git a/content/about/privacy/_index.md b/content/about/privacy/_index.md index 46dd24e..c689402 100644 --- a/content/about/privacy/_index.md +++ b/content/about/privacy/_index.md @@ -7,8 +7,6 @@ draft: true The hosting[^1] and [the way this site is built](/docs/website/) allows a high degree of data minimization in addition to privacy. -[^1]: [Privacy policy](https://uberspace.de/en/about/privacy/) of Uberspace. - ## Privacy policy The EU General Data Protection Regulation (GDPR)[^2] has ensured data protection @@ -18,8 +16,6 @@ found on this page. Accountability can be found in the [imprint](../imprint/). -[^2]: [Legal text](https://gdpr-info.eu/) of the GDPR. - ### Principles of data processing Personal data includes any information that identifies a natural person, such as @@ -29,28 +25,20 @@ transmitting) such data requires a legal basis or your consent. Once personal data is processed and no longer needed, it will be deleted unless there is a legal obligation to retain it. -[^3]: [IP address](https://en.wikipedia.org/wiki/IP_address) in the Wikipedia. - ### Use of this Website In general, you can browse this site without providing any personal data. The chosen [Hugo theme](/docs/website/hugo/#choosing-a-theme) provides some convenient functions, including a search bar, a dark and light mode, a code copy -and scroll-to-top button, which are implemented using JavaScript (JS) [^4]. Feel +and scroll-to-top button, which are implemented using JavaScript (JS)[^4]. Feel free to turn JS off or block certain scripts, if this is your security model. -[^4]: [Sources](https://github.com/imfing/hextra/tree/main/assets/js) of the -theme's JavaScript code at GitHub. - ### Web server logs The web server logs are currently disabled by default. Therefor your IP address is not recorded. If enabled, this information will be saved in an anonymized way and deleted after 7 days as per Uberspace policy[^5]. -[^5]: [Privacy](https://manual.uberspace.de/web-logs.html#privacy) of web logs -at Uberspace. - ### Cookies, social network plugins, tracking and analytics tools None of these technologies are used on this site. @@ -71,10 +59,17 @@ operators, which you can recognize by a changed URL[^6] in the browser. Please note that any issues concerning those websites are beyond the scope of this policy. -[^6]: [URL](https://en.wikipedia.org/wiki/URL) in the Wikipedia. - ### Data security Finally, it is your responsibility to ensure data protection. Other individuals or organizations may not adhere to data protection regulations, so be cautious, -use encryption for emails etc. to prevent unauthorized access to your data. \ No newline at end of file +use encryption for emails etc. to prevent unauthorized access to your data. + +[^1]: [Privacy policy](https://uberspace.de/en/about/privacy/) of Uberspace. +[^2]: [Legal text](https://gdpr-info.eu/) of the GDPR. +[^3]: [IP address](https://en.wikipedia.org/wiki/IP_address) in the Wikipedia. +[^4]: [Sources](https://github.com/imfing/hextra/tree/main/assets/js) of the +theme's JavaScript code at GitHub. +[^5]: [Privacy](https://manual.uberspace.de/web-logs.html#privacy) of web logs +at Uberspace. +[^6]: [URL](https://en.wikipedia.org/wiki/URL) in the Wikipedia. \ No newline at end of file diff --git a/content/docs/graphics/logo-design/_index.md b/content/docs/graphics/logo-design/_index.md index 4608b84..c46d54a 100644 --- a/content/docs/graphics/logo-design/_index.md +++ b/content/docs/graphics/logo-design/_index.md @@ -17,10 +17,9 @@ the terms `music` and `logo` in the [Pixabay](https://pixabay.com/) community. {{< icon "link" >}} URL: https://pixabay.com/vectors/search/music%20logo/ The idea of using notes appeals to me and as I also want to convey the spirit of -[FLOSS](https://fsfe.org/freesoftware/comparison.en.html) I need to extend it by -something that represents its characteristics. I remember that in the logo of -the Gitea fork [Forgejo](https://forgejo.org/) the letter `F` is shown as a -forking path and want to combine it with notes. +FLOSS[^1] I need to extend it by something that represents its characteristics. +I remember that in the logo of the Gitea fork [Forgejo](https://forgejo.org/) +the letter `F` is shown as a forking path and want to combine it with notes. ## Creating shapes @@ -47,7 +46,7 @@ another iteration to realize that the symbol of a note may be misleading as it is typically associated with sheet music and notation programs. Thus, I start a new approach and play around with the Pen tool to create a music wave that forks into two different directions. The wave form is just a single path with -some [Bezier curve](https://en.wikipedia.org/wiki/B%C3%A9zier_curve) handles. +some Bezier curve[^2] handles. This drawing technique and a lot of useful applications are described in the [advanced](https://inkscape.org/doc/tutorials/advanced/tutorial-advanced.html) Inkscape tutorial. @@ -55,21 +54,20 @@ Inkscape tutorial. {{< figure src="img/inkscape-edit-path.png" alt="Inkscape edit path" caption="Editing a path using Bezier curve handles in Inkscape" >}} -Before saving the document as [SVG](https://en.wikipedia.org/wiki/SVG), useful -meta data can be added by opening the document settings (``) and -selecting the *Meta data* tab. Additionally, the *License* tab allows to -integrate URLs and the license deed and granted rights. Besides saving this file -for further editing, I use the export dialog (``) to create a -*Plain SVG* file leaving out Inkscape specific meta data which supports to -decrease the file size. +Before saving the document as SVG[^3], useful meta data can be added by opening +the document settings (``) and selecting the *Meta data* tab. +Additionally, the *License* tab allows to integrate URLs and the license deed +and granted rights. Besides saving this file for further editing, I use the +export dialog (``) to create a *Plain SVG* file leaving out +Inkscape specific meta data which supports to decrease the file size. ## Serving diversity The shapes of the logo are simple and recognizable. Thus, it can be perfectly -used as [favicon](https://en.wikipedia.org/wiki/Favicon) for the website. Though -recent browsers and devices can render SVG files for this resource, it's good -practice to serve other file types. Consequently, the last step is to convert -(and if necessary scale) the SVG file to support older browsers and devices. +used as Favicon[^4] for the website. Though recent browsers and devices can +render SVG files for this resource, it's good practice to serve other file +types. Consequently, the last step is to convert (and if necessary scale) the +SVG file to support older browsers and devices. I open the SVG file in GIMP and confirm the dialog to render the Scalable Vector Graphics using default settings. Depending on the target file type and device I [scale](https://docs.gimp.org/en/gimp-image-scale.html) the image and convert it @@ -104,23 +102,21 @@ convert favicon-tmp.png favicon.ico rm favicon-tmp.png ``` -In addition to [ICO](https://en.wikipedia.org/wiki/ICO_(file_format)) file type -conversion best practice is to stack smaller size versions on top of the 48 x 48 -pixels one. This can achieved by opening the `favicon.ico` in GIMP, copying and -scaling the original layer down to 32 x 32 and 16 x 16 pixels, and inserting it -as a [new layer](https://docs.gimp.org/en/gimp-using-layers.html) (``). -The new layer is inserted into the center of the image and has to be dragged to -the top left corner. +In addition to ICO[^5] file type conversion best practice is to stack smaller +size versions on top of the 48 x 48 pixels one. This can achieved by opening the +`favicon.ico` in GIMP, copying and scaling the original layer down to 32 x 32 +and 16 x 16 pixels, and inserting it as a [new layer](https://docs.gimp.org/en/gimp-using-layers.html) +(``). The new layer is inserted into the center of the image and has to +be dragged to the top left corner. {{< figure src="img/gimp-stack-layers.png" alt="GIMP stack layers" caption="Stacking layers of scaled image versions in GIMP" >}} ## Adding a manifest -For a [Progressive Web App](https://en.wikipedia.org/wiki/Progressive_web_app) -(PWA) create a [manifest](https://developer.mozilla.org/en-US/docs/Web/Manifest) -file. At least provide the following values to serve different icon sizes and -change `` to fit your needs: +For a Progressive Web App[^6] (PWA) create a Manifest[^7] file. At least provide +the following values to serve different icon sizes and change `` to +fit your needs: ```json {filename="site.webmanifest"} { @@ -149,4 +145,17 @@ MDN Web Docs. ## Resources -Repository: https://dri.ven.uber.space/thisven/Identity/src/branch/main/logo \ No newline at end of file +Repository: https://dri.ven.uber.space/thisven/Identity/src/branch/main/logo + +[^1]: [Free Software](https://fsfe.org/freesoftware/comparison.en.html) +comparison by the Free Software Foundation Europe +[^2]: [Bezier curve](https://en.wikipedia.org/wiki/B%C3%A9zier_curve) in the +Wikipedia +[^3]: [SVG](https://en.wikipedia.org/wiki/SVG) in the Wikipedia +[^4]: [Favicon](https://en.wikipedia.org/wiki/Favicon) in the Wikipedia +[^5]: [ICO (file format)](https://en.wikipedia.org/wiki/ICO_(file_format)) in +the Wikipedia +[^6]: [Progressive Web App](https://en.wikipedia.org/wiki/Progressive_web_app) +in the Wikipedia +[^7]: [Manifest](https://developer.mozilla.org/en-US/docs/Web/Manifest) in the +MDN Web Docs \ No newline at end of file diff --git a/content/docs/graphics/profile-image/_index.md b/content/docs/graphics/profile-image/_index.md index acfbf2d..d5406d3 100644 --- a/content/docs/graphics/profile-image/_index.md +++ b/content/docs/graphics/profile-image/_index.md @@ -70,7 +70,7 @@ size can be varying. As I drastically reduced the colors by posterization the color [mode](https://docs.gimp.org/en/gimp-image-mode.html) can be changed to [Indexed](https://docs.gimp.org/en/gimp-image-convert-indexed.html). However, in my case this doesn't decrease the file size significantly. Thus, for images in -[JPEG](https://en.wikipedia.org/wiki/JPEG) format the quality is a key value for +JPEG[^1] format the quality is a key value for [compressing images](https://docs.gimp.org/en/gimp-tutorial-quickie-jpeg.html). This value is set in another dialog that appears after specifying the file name and `.jpg` extension in the *Export image* dialog. A quality of 75 percent @@ -92,4 +92,6 @@ advance. ## Resources -Repository: https://dri.ven.uber.space/thisven/Identity/src/branch/main/profile-image \ No newline at end of file +Repository: https://dri.ven.uber.space/thisven/Identity/src/branch/main/profile-image + +[^1]: [JPEG](https://en.wikipedia.org/wiki/JPEG) in the Wikipedia \ No newline at end of file diff --git a/content/docs/infrastructure/_index.md b/content/docs/infrastructure/_index.md index 35c4b32..4e58174 100644 --- a/content/docs/infrastructure/_index.md +++ b/content/docs/infrastructure/_index.md @@ -4,9 +4,9 @@ date: 2024-02-06T22:25:56+01:00 draft: true --- -[Self-hosting](https://en.wikipedia.org/wiki/Self-hosting_(web_services)) is a -great way for decentralization, autonomy and privacy. As I'm trying to be a good -role model I share my knowledge by documenting the whole infrastructure setup. +Self-hosting[^1] is a great way for decentralization, autonomy and privacy. As +I'm trying to be a good role model I share my knowledge by documenting the whole +infrastructure setup. {{< cards >}} {{< card link="eturnal/" title="eturnal" @@ -24,4 +24,7 @@ role model I share my knowledge by documenting the whole infrastructure setup. {{< card link="nextcloud/" title="Nextcloud" image="nextcloud/img/nextcloud-logo-blue.svg" subtitle="Running a Nextcloud for file shares" >}} -{{< /cards >}} \ No newline at end of file +{{< /cards >}} + +[^1]: [Self-hosting (web services)](https://en.wikipedia.org/wiki/Self-hosting_%28web_services%29) +in the Wikipedia \ No newline at end of file diff --git a/content/docs/infrastructure/eturnal/_index.md b/content/docs/infrastructure/eturnal/_index.md index 4a6d1f6..8d427c6 100644 --- a/content/docs/infrastructure/eturnal/_index.md +++ b/content/docs/infrastructure/eturnal/_index.md @@ -10,15 +10,6 @@ another solution as drop-in service for STUN[^2] and TURN[^3]. Erlang[^4]. Clients can connect using UDP, TCP, or TLS over IPv4 or IPv6. It supports the mechanism described in an IETF draft[^5] for authentication. -[^1]: [Issue #844](https://github.com/Uberspace/lab/issues/844) at GitHub -[^2]: Session Traversal Utilities for NAT -([STUN](https://en.wikipedia.org/wiki/STUN)) in the Wikipedia -[^3]: [Traversal Using Relays arount NAT](https://en.wikipedia.org/wiki/Traversal_Using_Relays_around_NAT) -(TURN) in the Wikipedia -[^4]: [Erlang](https://erlang.org/)/OTP website -[^5]: [REST API for Access to TURN Services](https://datatracker.ietf.org/doc/html/draft-uberti-behave-turn-rest-00) -specification as IETF draft - {{< figure src="img/stun-turn-server.svg" alt="STUN/TURN server symbol" width="25%" >}} @@ -32,4 +23,13 @@ file. ## Logging level To investigate configuration errors, I can change the `log_level` setting value -to `debug`, for example. Afterwards the eturnal service has to be restarted. \ No newline at end of file +to `debug`, for example. Afterwards the eturnal service has to be restarted. + +[^1]: [Issue #844](https://github.com/Uberspace/lab/issues/844) at GitHub +[^2]: Session Traversal Utilities for NAT +([STUN](https://en.wikipedia.org/wiki/STUN)) in the Wikipedia +[^3]: [Traversal Using Relays arount NAT](https://en.wikipedia.org/wiki/Traversal_Using_Relays_around_NAT) +(TURN) in the Wikipedia +[^4]: [Erlang](https://erlang.org/)/OTP website +[^5]: [REST API for Access to TURN Services](https://datatracker.ietf.org/doc/html/draft-uberti-behave-turn-rest-00) +specification as IETF draft \ No newline at end of file diff --git a/content/docs/infrastructure/forgejo/_index.md b/content/docs/infrastructure/forgejo/_index.md index 4e2bf38..a4149d1 100644 --- a/content/docs/infrastructure/forgejo/_index.md +++ b/content/docs/infrastructure/forgejo/_index.md @@ -10,9 +10,6 @@ and use version control[^1] during iteration. As a it compares to other platforms and providers (BitBucket, GitHub, etc.) in that it provides most crucial features while being a lightweigt, self-hostable solution. -[^1]: [Version control](https://en.wikipedia.org/wiki/Version_control) in the -Wikipedia - {{< figure src="img/forgejo-wordmark.svg" alt="Forgejo logo" width="25%" >}} {{< callout type="info" >}} @@ -40,11 +37,13 @@ Two-Factor authentication[^2] is found in the user drop down menu in *Settings* \> *Security* and *SSH / GPG keys* is another separate menu entry in the settings page. -[^2]: [Multi-factor authentication](https://en.wikipedia.org/wiki/Multi-factor_authentication) -in the Wikipedia - ## Guides {{< cards >}} {{< card link="submodules" title="Submodules" icon="puzzle" >}} -{{< /cards >}} \ No newline at end of file +{{< /cards >}} + +[^1]: [Version control](https://en.wikipedia.org/wiki/Version_control) in the +Wikipedia +[^2]: [Multi-factor authentication](https://en.wikipedia.org/wiki/Multi-factor_authentication) +in the Wikipedia \ No newline at end of file diff --git a/content/docs/infrastructure/forgejo/submodules.md b/content/docs/infrastructure/forgejo/submodules.md index 0bcaddf..2134e4f 100644 --- a/content/docs/infrastructure/forgejo/submodules.md +++ b/content/docs/infrastructure/forgejo/submodules.md @@ -14,9 +14,6 @@ in this repo and want to access the folder `hidden @ `, you'll get a 404 page as this is a link to the private repo. Only authenticated users can access it. -[^1]: [Software repository](https://en.wikipedia.org/wiki/Software_repository) -in the Wikipedia - ## Enabling auto-update To automatically update submodules on `git clone` and `git pull` I enable [submodule.rescurse](https://git-scm.com/docs/git-config#Documentation/git-config.txt-submodulerecurse): @@ -54,4 +51,7 @@ git submodule update --remote ``` If you are cloning an existing main repo that contains submodules, you can use -`git clone` with the `--recurse-submodules` option. \ No newline at end of file +`git clone` with the `--recurse-submodules` option. + +[^1]: [Software repository](https://en.wikipedia.org/wiki/Software_repository) +in the Wikipedia \ No newline at end of file diff --git a/content/docs/infrastructure/icecast/_index.md b/content/docs/infrastructure/icecast/_index.md index ec55f80..2665bc8 100644 --- a/content/docs/infrastructure/icecast/_index.md +++ b/content/docs/infrastructure/icecast/_index.md @@ -9,8 +9,6 @@ standards such as the Ogg Vorbis[^1] container format. You can used it to create an internet radio station or live streaming applications. My [streaming setup](streaming-setup/) is based on Icecast and drives live streaming without 3rd party services. -[^1]: [Vorbis](https://en.wikipedia.org/wiki/Vorbis) in the Wikipedia - {{< figure src="img/icecast-logo.svg" alt="Icecast logo" width="25%" >}} ## Basic setup @@ -29,9 +27,6 @@ Additionally, specify a `` in the [](https://www.icecast. block and provide a file containing the cert and private key in sequence at the specified location. Finally, restart Icecast server to reload new configuration. -[^2]: [Transport Layer Security](https://en.wikipedia.org/wiki/Transport_Layer_Security) -(TLS) in the Wikipedia - {{< callout type="info" >}} If Icecast refuses to start, increase the [logging level](#logging-level), analyze the logfiles and check if it has been compiled against @@ -60,9 +55,6 @@ Change `/file.ogg` to fit your needs. The provided file should have the same encoding parameters (for example: 192 kbps CBR[^3]) to prevent listener dropouts and must exist in Icecast's webroot to be accessible. [Fileserving](https://www.icecast.org/docs/icecast-trunk/config_file/#general-settings) must also be activated. (Enabled by default.) -[^3]: [Constant bitrate](https://en.wikipedia.org/wiki/Constant_bitrate) (CBR) -in the Wikipedia - ## No-cache Applications playing streams may automatically cache data. This behaviour can @@ -85,8 +77,6 @@ cannot be disabled, but written to a Null device[^4]. This can be done by removing the standard log files `access.log` and `error.log` and creating symbolic links as follows: -[^4]: [Null device](https://en.wikipedia.org/wiki/Null_device) in the Wikipedia - ```bash rm /var/log/icecast/access.log rm /var/log/icecast/error.log @@ -97,7 +87,12 @@ ln -s /dev/null /var/log/icecast/error.log ## Applications {{< cards >}} + {{< card link="streaming-setup" title="Streaming setup" icon="play" >}} +{{< /cards >}} -{{< card link="streaming-setup" title="Streaming setup" icon="play" >}} - -{{< /cards >}} \ No newline at end of file +[^1]: [Vorbis](https://en.wikipedia.org/wiki/Vorbis) in the Wikipedia +[^2]: [Transport Layer Security](https://en.wikipedia.org/wiki/Transport_Layer_Security) +(TLS) in the Wikipedia +[^3]: [Constant bitrate](https://en.wikipedia.org/wiki/Constant_bitrate) (CBR) +in the Wikipedia +[^4]: [Null device](https://en.wikipedia.org/wiki/Null_device) in the Wikipedia \ No newline at end of file diff --git a/content/docs/infrastructure/icecast/streaming-setup.md b/content/docs/infrastructure/icecast/streaming-setup.md index 1a6cb32..d40936a 100644 --- a/content/docs/infrastructure/icecast/streaming-setup.md +++ b/content/docs/infrastructure/icecast/streaming-setup.md @@ -6,12 +6,7 @@ draft: true Live streaming[^1] can be done independently from 3rd parties by using a streaming media server[^2] such as [Icecast](../) and a [source client](https://icecast.org/apps/#source-clients) -for encoding and streaming to that server. - -[^1]: [Live streaming](https://en.wikipedia.org/wiki/Live_streaming) in the -Wikipedia -[^2]: [Media server](https://en.wikipedia.org/wiki/Media_server) in the -Wikipedia +for encoding and streaming to that server. I'm using Icecast and [oggfwd](https://r-w-x.org/r/oggfwd) in combination with [ffmpeg](https://ffmpeg.org/) as source client to realize live streaming @@ -38,30 +33,27 @@ also necessary. Get the ffmpeg and oggfwd package by using your distribution's package manager or compile from sources. You need to have [mpv](https://mpv.io/) installed in -order to play waiting music and [wget](https://www.gnu.org/software/wget/) for -triggering tasks via Icecast's [Admin Interface](https://www.icecast.org/docs/icecast-trunk/admin_interface/). In ArchLinux, ffmpeg and wget are provided in the official repositories and [oggfwd in the AUR](https://aur.archlinux.org/packages/oggfwd). +order to play waiting music and `wget`[^3] for triggering tasks via Icecast's +[Admin Interface](https://www.icecast.org/docs/icecast-trunk/admin_interface/). +In ArchLinux, ffmpeg and wget are provided in the official repositories and +[oggfwd in the AUR](https://aur.archlinux.org/packages/oggfwd). ## Start live streaming The following chapters document how to manage the live streaming in detail by -describing the steps and providing numbered Bash[^3] scripts. Create the files +describing the steps and providing numbered Bash[^4] scripts. Create the files using the filenames in the code block header, copy and paste the code, and make the files executable. -[^3]: [GNU Bash](https://www.gnu.org/software/bash/) project website - {{% steps %}} ### Setting up the environment To simply copy and paste the commands used in this guide, I set the following -environment variables[^4] to my needs. Most of the values depend on the settings +environment variables[^5] to my needs. Most of the values depend on the settings applied in the [Icecast basic setup](../#basic-setup). The following script is an example and needs to be adapted: -[^4]: [Environment variable](https://en.wikipedia.org/wiki/Environment_variable) -in the Wikipedia - ```bash{filename="1-setting-up-env.sh"} # ffmpeg options export CONCERT_TITLE="My streaming concert" @@ -91,12 +83,9 @@ and arm the desired tracks using the [audio track controls](https://manual.ardou The output of ardour must be encoded to the Ogg Vorbis container format and provided at `stdout` to be forwarded by oggfwd. This can be achieved by using -ffmpeg's JACK input device, audio encoding parameters and piping[^5] the output +ffmpeg's JACK input device, audio encoding parameters and piping[^6] the output to oggfwd using the `|` operator: -[^5]: [Pipeline (Unix)](https://en.wikipedia.org/wiki/Pipeline_(Unix)) in the -Wikipedia - ```bash{filename="2-encoding-forwarding.sh"} ffmpeg -f $AUDIO_BACKEND -i $JACK_CLIENT1 \ -vn \ @@ -227,4 +216,15 @@ killall ffmpeg oggfwd mpv In ardour, I can stop the recording and save the session for later production. -{{% /steps %}} \ No newline at end of file +{{% /steps %}} + +[^1]: [Live streaming](https://en.wikipedia.org/wiki/Live_streaming) in the +Wikipedia +[^2]: [Media server](https://en.wikipedia.org/wiki/Media_server) in the +Wikipedia +[^3]: [GNU Wget](https://www.gnu.org/software/wget/) website +[^4]: [GNU Bash](https://www.gnu.org/software/bash/) website +[^5]: [Environment variable](https://en.wikipedia.org/wiki/Environment_variable) +in the Wikipedia +[^6]: [Pipeline (Unix)](https://en.wikipedia.org/wiki/Pipeline_(Unix)) in the +Wikipedia \ No newline at end of file diff --git a/content/docs/infrastructure/matrix/_index.md b/content/docs/infrastructure/matrix/_index.md index 3657278..2d4544d 100644 --- a/content/docs/infrastructure/matrix/_index.md +++ b/content/docs/infrastructure/matrix/_index.md @@ -12,10 +12,6 @@ homeserver like [Synapse](synapse/). To connect with me, register at another [public server](public-server-list/) and join my Matrix room found at the [about](/about/#contact) page. -[^1]: [End-to-end encryption](https://en.wikipedia.org/wiki/End-to-end_encryption) -in the Wikipedia -[^2]: [Federation](https://en.wikipedia.org/wiki/Federation_(information_technology)) in the Wikipedia - {{< figure src="img/matrix-logo.svg" alt="Matrix logo" width="25%" >}} ## Basic concepts @@ -46,8 +42,6 @@ the following syntax for a room alias: #room_alias:exmaple.org ``` -[^3]: [Internet Relay Chat (IRC)](https://en.wikipedia.org/wiki/Intenet_Relay_Chat) in the Wikipedia - There's a web service at https://matrix.to/ provided by the Matrix.org Foundation for linking users, rooms and messages, which can ease onboarding. Additionally, https://view.matrix.org lists rooms that can be joined without @@ -57,8 +51,11 @@ their links displays a history of messages in this room. ## Guides {{< cards >}} + {{< card link="public-server-list" title="Public server list" icon="login" >}} + {{< card link="synapse" title="Synapse" icon="server" >}} +{{< /cards >}} -{{< card link="public-server-list" title="Public server list" icon="login" >}} -{{< card link="synapse" title="Synapse" icon="server" >}} - -{{< /cards >}} \ No newline at end of file +[^1]: [End-to-end encryption](https://en.wikipedia.org/wiki/End-to-end_encryption) +in the Wikipedia +[^2]: [Federation](https://en.wikipedia.org/wiki/Federation_(information_technology)) in the Wikipedia +[^3]: [Internet Relay Chat (IRC)](https://en.wikipedia.org/wiki/Intenet_Relay_Chat) in the Wikipedia \ No newline at end of file diff --git a/content/docs/infrastructure/matrix/public-server-list.md b/content/docs/infrastructure/matrix/public-server-list.md index e8af4bc..095246f 100644 --- a/content/docs/infrastructure/matrix/public-server-list.md +++ b/content/docs/infrastructure/matrix/public-server-list.md @@ -19,10 +19,6 @@ Provider | Homeserver URL | Status page | Special features (selection) [sp-codes](https://sp-codes.de/en/services/matrix) | `matrix.sp-codes.de` | https://the-federation.info/node/matrix.sp-codes.de | Run by a security and privacy enthusiast[^3] providing a [german guide](https://sp-codes.de/de/services/matrix/setup/part-1) [tchncs.de](https://tchncs.de/matrix) | `tchncs.de` | https://the-federation.info/node/tchncs.de | Bridges: Discord, Signal, Telegram, WhatsApp -[^1]: [Freifunk](https://freifunk.net/) community website -[^2]: [About page of Nitrokey](https://www.nitrokey.com/about) -[^3]: [Personal website](https://samuel-philipp.com/) of the sp-code provider - Although I'm trying to keep this list up to date, it might be outdated once in a while. Therefore, you may check if the homeserver of your choice still provides open signups on its status page before registering. @@ -40,11 +36,15 @@ Federation. Be patient when opening this site as it renders statistics on demand and may take some time to load. {{< callout type="warning" >}} -Last but not at least there's another unofficial list -of public Matrix servers at hello-matrix.net, but it seems rather outdated. + Last but not at least there's another unofficial list of public Matrix servers + at hello-matrix.net, but it seems rather outdated. {{< /callout >}} ## Join at my server There's no open registration for my Matrix homeserver, but you can talk to me by -joining the matrix room in the [contact](/about/#contact) section. \ No newline at end of file +joining the matrix room in the [contact](/about/#contact) section. + +[^1]: [Freifunk](https://freifunk.net/) community website +[^2]: [About page of Nitrokey](https://www.nitrokey.com/about) +[^3]: [Personal website](https://samuel-philipp.com/) of the sp-code provider \ No newline at end of file diff --git a/content/docs/infrastructure/matrix/synapse.md b/content/docs/infrastructure/matrix/synapse.md index f9516d0..a25f20e 100644 --- a/content/docs/infrastructure/matrix/synapse.md +++ b/content/docs/infrastructure/matrix/synapse.md @@ -11,13 +11,6 @@ For running a Matrix server on Raspberry Pi[^2], for example, consider a more lightweight solution such as Conduit or Dendrite[^3]. The source code of Synapse is written in Python3/Twisted[^4] and can be found at GitHub. -[^1]: [About Matrix](https://matrix.org/foundation) website -[^2]: [Raspberry Pi](https://en.wikipedia.org/wiki/Raspberry_Pi) in the -Wikipedia -[^3]: [Conduit](https://conduit.rs) and [Dendrite](https://github.com/matrix-org/dendrite) projects -[^4]: [Twisted](https://en.wikipedia.org/wiki/Twisted_(software)) in the -Wikipedia - ## Basic setup The [Synapse — UberLab 7 documentation](https://lab.uberspace.de/guide_synapse) @@ -41,9 +34,6 @@ of my webserver containing: } ``` -[^5]: [Well-known URI](https://spec.matrix.org/latest/client-server-api/#well-known-uri) -in the Matrix specification - {{< callout type="info" >}} If you're running [Nextcloud](../../nextcloud) in the Document_Root, its `.htaccess` file needs editing for proper [redirection](#nextcloud_redirects). @@ -74,9 +64,6 @@ report_stats: false When using Push notifications[^6], the message content isn't encrypted. For this reason, I create a push section and set `include_content` to `false`. -[^6]: [Push notifications](https://en.wikipedia.org/wiki/Push_technology#Push_notification) -in the Wikipedia - ### Profile data As I don't want my profile information to be visible to the public and shared in @@ -112,4 +99,15 @@ inside the `.htaccess` file in both sections before the rewrite rules: ``` RewriteCond %{REQUEST_URI} !^/\.well-known/matrix/server -``` \ No newline at end of file +``` + +[^1]: [About Matrix](https://matrix.org/foundation) website +[^2]: [Raspberry Pi](https://en.wikipedia.org/wiki/Raspberry_Pi) in the +Wikipedia +[^3]: [Conduit](https://conduit.rs) and [Dendrite](https://github.com/matrix-org/dendrite) projects +[^4]: [Twisted](https://en.wikipedia.org/wiki/Twisted_(software)) in the +Wikipedia +[^5]: [Well-known URI](https://spec.matrix.org/latest/client-server-api/#well-known-uri) +in the Matrix specification +[^6]: [Push notifications](https://en.wikipedia.org/wiki/Push_technology#Push_notification) +in the Wikipedia \ No newline at end of file diff --git a/content/docs/infrastructure/nextcloud/_index.md b/content/docs/infrastructure/nextcloud/_index.md index ba5bbff..b481ee8 100644 --- a/content/docs/infrastructure/nextcloud/_index.md +++ b/content/docs/infrastructure/nextcloud/_index.md @@ -9,10 +9,6 @@ file sharing[^2] solution for me. Due to its extensible design it can also be a communication hub and project management platform. If you'd like to host your own Nextcloud take a look at [Nextcloud at home](https://nextcloud.com/athome/). -[^1]: [PHP website](https://www.php.net/) by The PHP Foundation -[^2]: [File sharing](https://en.wikipedia.org/wiki/File_sharing) in the -Wikipedia - {{< figure src="img/nextcloud-logo-blue.svg" alt="Nextcloud Logo" width="25%">}} ## Basic setup @@ -70,8 +66,6 @@ with the [Etar Calendar](https://github.com/Etar-Group/Etar-Calendar) app. To access and synchronize notes and task on Android I use the official [Notes](https://github.com/nextcloud/notes-android) app and [Tasks.org](https://tasks.org/). -[^3]: [CardDAV](https://en.wikipedia.org/wiki/CardDAV) in the Wikipedia - ### Cookbook One of my favorites is the [Cookbook](https://apps.nextcloud.com/apps/cookbook) @@ -84,9 +78,6 @@ The [Talk](https://apps.nextcloud.com/apps/spreed) app offers video conferencing within Nextcloud and is backed by [eturnal](../eturnal/) in my infrastructure to support users in NAT[^4] environments. -[^4]: [Network address translation](https://en.wikipedia.org/wiki/Network_address_translation) -(NAT) in the Wikipedia - ## Known issues This section is about issues I came accross in relation to the interaction with @@ -100,4 +91,11 @@ introduced due to [code signing](https://docs.nextcloud.com/server/latest/admin_ complains about the extra file `.well-known/matrix/server` and an invalid hash for `.htaccess`. As there is no option to exclude files by design and any code alterations also affect the integrity check, there's currently no way to get rid -of that error message. \ No newline at end of file +of that error message. + +[^1]: [PHP website](https://www.php.net/) by The PHP Foundation +[^2]: [File sharing](https://en.wikipedia.org/wiki/File_sharing) in the +Wikipedia +[^3]: [CardDAV](https://en.wikipedia.org/wiki/CardDAV) in the Wikipedia +[^4]: [Network address translation](https://en.wikipedia.org/wiki/Network_address_translation) +(NAT) in the Wikipedia \ No newline at end of file diff --git a/content/docs/tinkering/_index.md b/content/docs/tinkering/_index.md index 770bb35..e79a1b9 100644 --- a/content/docs/tinkering/_index.md +++ b/content/docs/tinkering/_index.md @@ -4,14 +4,15 @@ date: 2024-02-28T12:10:00+01:00 draft: true --- -The art of [tinkering](https://en.wikipedia.org/wiki/Tinkering) is a great way -to construct yourself tools and learn about the details of various crafts. -Usually, I tinker constructions that I want to customize or can't afford. If a -product doesn't serve my individual needs or is too expensive, I try to find a -tinkerer solution. +The art of tinkering[^1] is a great way to construct yourself tools and learn +about the details of various crafts. Usually, I tinker constructions that I want +to customize or can't afford. If a product doesn't serve my individual needs or +is too expensive, I try to find a tinkerer solution. {{< cards >}} {{< card link="vocal-booth/" title="Vocal booth" image="vocal-booth/img/carton-wall.jpg" subtitle="Building a vocal booth from carton boxes and blankets" >}} -{{< /cards >}} \ No newline at end of file +{{< /cards >}} + +[^1]: [Tinkering](https://en.wikipedia.org/wiki/Tinkering) in the Wikipedia \ No newline at end of file diff --git a/content/docs/tinkering/vocal-booth/_index.md b/content/docs/tinkering/vocal-booth/_index.md index f3a90ec..c7f5baa 100644 --- a/content/docs/tinkering/vocal-booth/_index.md +++ b/content/docs/tinkering/vocal-booth/_index.md @@ -11,11 +11,6 @@ cheap and flexible DIY[^2] approach is to build a small room out of moving boxes and blankets. Even though there isn't the same amount of noise reduction achieved, this solution minimizes reverberation. -[^1]: [Spill (audio)](https://en.wikipedia.org/wiki/Spill_(audio)) in the -Wikipedia -[^2]: [Do it Yourself](https://en.wikipedia.org/wiki/Do_it_yourself) (DIY) in -the Wikipedia - ## Conception Before building a DIY vocal booth, I choose a location inside my room that @@ -26,8 +21,6 @@ the vocal booth upon it. By this, I can place a display, keyboard and mouse in front of the microphone stand for reading the lyrics and controlling the DAW during performance. -[^3]: [Room modes](https://en.wikipedia.org/wiki/Room_modes) in the Wikipedia - ## Building The building process is easy. I fold the moving boxes and form walls around the @@ -43,8 +36,6 @@ I arrange the microphone stand and other equipment, and try to establish a cable layout carrying the connectors preferably outside of the box. I set up my computer and other noisy hardware outside of the booth, ideally in another room. -[^4]: [Cable tie](https://en.wikipedia.org/wiki/Cable_tie) in the Wikipedia - ## Sound check Finally, I can set up my equipment and enter the DIY vocal booth. I place myself @@ -67,4 +58,11 @@ You can listen to the acapella version of *WEAK* from the {{< callout type="info" >}} If the embedded audio player is cumbersome, access this song directly via [{{< icon "funkwhale" >}} Funkwhale](https://open.audio/library/tracks/398355/). -{{< /callout >}} \ No newline at end of file +{{< /callout >}} + +[^1]: [Spill (audio)](https://en.wikipedia.org/wiki/Spill_(audio)) in the +Wikipedia +[^2]: [Do it Yourself](https://en.wikipedia.org/wiki/Do_it_yourself) (DIY) in +the Wikipedia +[^3]: [Room modes](https://en.wikipedia.org/wiki/Room_modes) in the Wikipedia +[^4]: [Cable tie](https://en.wikipedia.org/wiki/Cable_tie) in the Wikipedia \ No newline at end of file diff --git a/content/docs/website/hugo/_index.md b/content/docs/website/hugo/_index.md index 56f8521..400ed18 100644 --- a/content/docs/website/hugo/_index.md +++ b/content/docs/website/hugo/_index.md @@ -5,8 +5,7 @@ draft: true --- After some years of manually creating`.html` source files I switch to using a -[static site generator](https://en.wikipedia.org/wiki/Static_site_generator). -I got used to the [Markdown](https://www.markdownguide.org/) format and like the +static site generator[^1]. I got used to the Markdown[^2] format and like the idea of self-contained applications. Thus, the [Hugo](https://gohugo.io/) framework seems to be a promising solution. @@ -57,8 +56,8 @@ git clone https://dri.ven.uber.space/thisven/Website ### Configuring a site Though the Hextra theme documentation recommends installing it as a Hugo module -I prefer a [Git submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules) -setup in [getting started](https://imfing.github.io/hextra/docs/getting-started/#setup-hextra-as-git-submodule): +I prefer a [Git submodule](/docs/infrastructure/forgejo/submodules/) setup in +[getting started](https://imfing.github.io/hextra/docs/getting-started/#setup-hextra-as-git-submodule): ```bash hugo new site --force Website --format=yaml @@ -116,12 +115,14 @@ quirks that I found useful. ## Customizations {{< cards >}} - -{{< card link="archetypes" title="Archetypes" icon="book-open" >}} -{{< card link="shortcodes" title="Shortcodes" icon="collection" >}} - + {{< card link="archetypes" title="Archetypes" icon="book-open" >}} + {{< card link="shortcodes" title="Shortcodes" icon="collection" >}} {{< /cards >}} ## Resources -Repository: https://dri.ven.uber.space/thisven/Website \ No newline at end of file +Repository: https://dri.ven.uber.space/thisven/Website + +[^1]: [Static site generator](https://en.wikipedia.org/wiki/Static_site_generator) +in the Wikipedia +[^2]: [Markdown Guide](https://www.markdownguide.org/) website \ No newline at end of file diff --git a/content/docs/website/hugo/archetypes.md b/content/docs/website/hugo/archetypes.md index 93be088..11ab160 100644 --- a/content/docs/website/hugo/archetypes.md +++ b/content/docs/website/hugo/archetypes.md @@ -6,9 +6,9 @@ draft: true ## Default front matter format -As the Hextra theme prefers the [YAML](https://yaml.org) format in its docs and -the Hugo [configuration](https://gohugo.io/getting-started/configuration/) has -also been [created in this format](../#step-3-configuring-a-site), I switch the +As the Hextra theme prefers the YAML[^1] format in its docs and the Hugo +[configuration](https://gohugo.io/getting-started/configuration/) has also been +[created in this format](../#step-3-configuring-a-site), I switch the [front matter](https://gohugo.io/content-management/front-matter/) format to YAML as well. Therefor, I create the file `archetype/default.md` containing: @@ -22,4 +22,6 @@ draft: true Using this [archetype](https://gohugo.io/content-management/archetypes/) the front matter format for a content file created by the `hugo new content` command -is specified to be YAML. \ No newline at end of file +is specified to be YAML. + +[^1]: [YAML](https://en.wikipedia.org/wiki/YAML) in the Wikipedia \ No newline at end of file diff --git a/content/docs/website/hugo/shortcodes.md b/content/docs/website/hugo/shortcodes.md index 89550b5..8524fe9 100644 --- a/content/docs/website/hugo/shortcodes.md +++ b/content/docs/website/hugo/shortcodes.md @@ -9,13 +9,13 @@ draft: true Hugo provides [built-in shortcodes](https://gohugo.io/content-management/shortcodes/#use-hugos-built-in-shortcodes), Hextra adds [some more](https://imfing.github.io/hextra/docs/guide/shortcodes/). However, I need to embed other media sources and want to migrate some of my own -HTML and CSS structures. For this purpose there is a official guide on how to -[create your own shortcodes](https://gohugo.io/templates/shortcode-templates/). +HTML[^1] and CSS[^2] structures. For this purpose there is an official guide on +[creating own shortcodes](https://gohugo.io/templates/shortcode-templates/). ### iFrame To embed arbitrary media `layouts/shortcodes/iframe.html` is created containing -the following [HTML](https://en.wikipedia.org/wiki/HTML) code: +the following code: ```html {filename="layouts/shortcodes/iframe.html"} {{ $src := .Get "src" -}} @@ -60,9 +60,9 @@ variables and inserted, if not null. Additionally, the file } ``` -The definitions of the [CSS](https://en.wikipedia.org/wiki/CSS) classes -`wrap-element` and `wrapped-iframe` are applied to the `div` and `iframe`element -to make the embeded resource responsible. This idea originates from a snippet of +The definitions of the CSS classes `wrap-element` and `wrapped-iframe` are +applied to the `div` and `iframe`element to make the embeded resource +responsible. This idea originates from a snippet of [W3Schools](https://www.w3schools.com/howto/howto_css_responsive_iframes.asp). The `funkwhale` class is used for embedding Funkwhale media in order to decrease the height of the iframe on bigger screens. @@ -89,12 +89,9 @@ closing `{{}}` shortcode. The idea is taken from a blog post by ### Media figure -Audio and video sources can be enclosed in a `
`[^1] element providing additional description in a caption and a link to the source file. My audio +Audio and video sources can be enclosed in a `
`[^3] element providing additional description in a caption and a link to the source file. My audio shortcode is inspired by the [solution in the Zen theme](https://github.com/frjo/hugo-theme-zen/blob/main/layouts/shortcodes/audio.html): -[^1]: [Figure](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/figure) -in the MDN Web Docs. - ```html {filename="layouts/shortcodes/audio.html"} {{ $caption := .Get "caption" -}} {{ $preload := .Get "preload" | default "none" -}} @@ -137,7 +134,7 @@ playing back the video:
``` -The additional `
` and `` elements are organized by a grid[^2] +The additional `
` and `` elements are organized by a grid[^4] using the following CSS code added to the `assets/css/custom.css` file: ```css {filename="assets/css/custom.css"} @@ -175,9 +172,6 @@ figure.media a { } ``` -[^2]: [CSS grid layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout) -in the MDN Web Docs - ## Nesting In order to nest several shortcodes using the Hextra theme, I have to explicitly @@ -209,4 +203,11 @@ of a figure for a thumbnail image small I add the following CSS code to the figure.thumbnail { width: 200px; } -``` \ No newline at end of file +``` + +[^1]: [HTML](https://en.wikipedia.org/wiki/HTML) in the Wikipedia +[^2]: [CSS](https://en.wikipedia.org/wiki/CSS) in the Wikipedia +[^3]: [Figure](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/figure) +in the MDN Web Docs. +[^4]: [CSS grid layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout) +in the MDN Web Docs \ No newline at end of file diff --git a/content/talks/modep-with-pisound/_index.md b/content/talks/modep-with-pisound/_index.md index a06ef91..ddebdc1 100644 --- a/content/talks/modep-with-pisound/_index.md +++ b/content/talks/modep-with-pisound/_index.md @@ -13,10 +13,8 @@ draft: true In this talk I present the MODEP virtual pedalboard with the Pisound HAT for Raspberry Pi powered by Patchbox OS. {{< details title="Details" >}} - -{{< icon "location-marker" >}} Event: [Sonoj 2023](https://sonoj.org/2023/) -{{< icon "calendar" >}} Date: 2023-10-07 -{{< icon "link" >}} Source: [media.ccc.de](https://media.ccc.de/v/sonoj2023-23004-modep-pisound) -{{< icon "document" >}} Slides: [modep-with-pisound.pdf](slides/modep-with-pisound.pdf) - + {{< icon "location-marker" >}} Event: [Sonoj 2023](https://sonoj.org/2023/) + {{< icon "calendar" >}} Date: 2023-10-07 + {{< icon "link" >}} Source: [media.ccc.de](https://media.ccc.de/v/sonoj2023-23004-modep-pisound) + {{< icon "document" >}} Slides: [modep-with-pisound.pdf](slides/modep-with-pisound.pdf) {{< /details >}} \ No newline at end of file