Fix formatting and spelling

This commit is contained in:
this.ven 2024-02-29 15:41:18 +01:00
parent 343caffbc8
commit 933d1e511f
20 changed files with 202 additions and 209 deletions

View file

@ -18,16 +18,10 @@ discuss issues:
> For framing, hustle and isolation<br>
> — <cite>this.ven[^1]</cite>
[^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 >}}
{{< 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.

View file

@ -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.
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.

View file

@ -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 (`<Ctrl><Shift><D>`) 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 (`<Ctrl><Shift><E>`) 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 (`<Ctrl><Shift><D>`) 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 (`<Ctrl><Shift><E>`) 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) (`<Ctrl><V>`).
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)
(`<Ctrl><V>`). 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 `<your-name>` 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 `<your-name>` 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
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

View file

@ -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
Repository: https://dri.ven.uber.space/thisven/Identity/src/branch/main/profile-image
[^1]: [JPEG](https://en.wikipedia.org/wiki/JPEG) in the Wikipedia

View file

@ -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 >}}
{{< /cards >}}
[^1]: [Self-hosting (web services)](https://en.wikipedia.org/wiki/Self-hosting_%28web_services%29)
in the Wikipedia

View file

@ -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.
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

View file

@ -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 >}}
{{< /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

View file

@ -14,9 +14,6 @@ in this repo and want to access the folder `hidden @ <hash>`, 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.
`git clone` with the `--recurse-submodules` option.
[^1]: [Software repository](https://en.wikipedia.org/wiki/Software_repository)
in the Wikipedia

View file

@ -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 `<tls-certificate>` in the [<path>](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 >}}
[^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

View file

@ -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 %}}
{{% /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

View file

@ -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 >}}
[^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

View file

@ -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.
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

View file

@ -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
```
```
[^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

View file

@ -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.
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

View file

@ -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 >}}
{{< /cards >}}
[^1]: [Tinkering](https://en.wikipedia.org/wiki/Tinkering) in the Wikipedia

View file

@ -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 >}}
{{< /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

View file

@ -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
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

View file

@ -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.
is specified to be YAML.
[^1]: [YAML](https://en.wikipedia.org/wiki/YAML) in the Wikipedia

View file

@ -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 `{{</* /rawhtml */>}}` shortcode. The idea is taken from a blog post by
### Media figure
Audio and video sources can be enclosed in a `<figure>`[^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 `<figure>`[^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:
</figure>
```
The additional `<figcaption>` and `<a>` elements are organized by a grid[^2]
The additional `<figcaption>` and `<a>` 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;
}
```
```
[^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

View file

@ -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 >}}