Changes to project structure
This commit is contained in:
parent
7d71c4bfda
commit
fb63da2836
51 changed files with 801 additions and 586 deletions
27
src/articles.json
Normal file
27
src/articles.json
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"articles": [
|
||||
{
|
||||
"author": "Never",
|
||||
"date": "9.1.2026",
|
||||
"subtitle": "Some unintuitive quirks of Latex",
|
||||
"summary": "Latex undoubtedly has some quirks. Some of them have a rather unintuitive solution. In this article I cover some quirks and solutions I have encountered.",
|
||||
"title": "Latex Endeavors",
|
||||
"filename": " latex-endeavors"
|
||||
},
|
||||
{
|
||||
"author": "Never",
|
||||
"date": "25.7.2025",
|
||||
"subtitle": "Neat things I picked up along the way",
|
||||
"summary": "Tricks and tools I learned about, while tweaking my Linux sytem or trying to do productive things.",
|
||||
"title": "Random linux utilities",
|
||||
"filename": " random-linux-utils"
|
||||
},
|
||||
{
|
||||
"author": "Never",
|
||||
"date": "12.01.2026",
|
||||
"summary": "As Spotify is getting enshittified by capitalism, keeping a music library is kind of essential. Here I use rsync to syncronise my library with my Android smartphone.",
|
||||
"title": "Using rsync on Android to syncronise my Music library",
|
||||
"filename": " rsync-android"
|
||||
}
|
||||
]
|
||||
}
|
||||
16
src/articles/latex-endeavors.md
Normal file
16
src/articles/latex-endeavors.md
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
---
|
||||
title: Latex Endeavors
|
||||
subtitle: Some unintuitive quirks of Latex
|
||||
author: Never
|
||||
date: 9.1.2026
|
||||
summary: Latex undoubtedly has some quirks. Some of them have a rather unintuitive solution.
|
||||
In this article I cover some quirks and solutions I have encountered.
|
||||
---
|
||||
|
||||
# BibLaTeX and Biber
|
||||
## Biber doesn't run
|
||||
Biber doens't run if the (fedora) package `libxcrypt-compat` is missing.
|
||||
It will fail with the error message
|
||||
```
|
||||
biber: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
|
||||
```
|
||||
18
src/articles/random-linux-utils
Normal file
18
src/articles/random-linux-utils
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
[1m[23m[39m[49m[24m[29mLatex Endeavors[0m
|
||||
Some unintuitive quirks of Latex
|
||||
|
||||
Never
|
||||
|
||||
[22m[3m[39m[49m[24m[29m9.1.2026[0m
|
||||
|
||||
────────────────────
|
||||
|
||||
[1m[23m[39m[49m[24m[29mBIBLATEX AND BIBER[0m
|
||||
|
||||
[1m[23m[39m[49m[24m[29mBiber doesn’t run[0m
|
||||
|
||||
Biber doens’t run if the (fedora) package [22m[23m[31m[47m[24m[29m libxcrypt-compat [0m is missing.
|
||||
It will fail with the error message
|
||||
|
||||
[22m[23m[31m[49m[24m[29mbiber: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory[0m
|
||||
[0m]8;;\
|
||||
80
src/articles/random-linux-utils.html
Normal file
80
src/articles/random-linux-utils.html
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="pandoc" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||
<meta name="author" content="Never" />
|
||||
<title>Latex Endeavors</title>
|
||||
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
||||
<style>
|
||||
code{white-space: pre-wrap;}
|
||||
span.smallcaps{font-variant: small-caps;}
|
||||
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||||
div.column{flex: auto; overflow-x: auto;}
|
||||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||
/* The extra [class] is a hack that increases specificity enough to
|
||||
override a similar rule in reveal.js */
|
||||
ul.task-list[class]{list-style: none;}
|
||||
ul.task-list li input[type="checkbox"] {
|
||||
font-size: inherit;
|
||||
width: 0.8em;
|
||||
margin: 0 0.8em 0.2em -1.6em;
|
||||
vertical-align: middle;
|
||||
}
|
||||
</style>
|
||||
<link rel="stylesheet" href="style.css" />
|
||||
</head>
|
||||
<body>
|
||||
<canvas id="tv-screen"></canvas>
|
||||
<header id="page-header">
|
||||
<ul>
|
||||
<li><a href="index.html">Home</a></li><li><a href="about.html">About</a></li>
|
||||
</ul>
|
||||
<!--
|
||||
<ul>
|
||||
<li>
|
||||
<span id="dark-mode">
|
||||
<input id="dark-mode-toggle" type="checkbox"><label for="dark-mode-toggle">Dark mode</label>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
-->
|
||||
</header>
|
||||
<header id="title-block-header">
|
||||
<h1 class="title">Latex Endeavors</h1>
|
||||
<p class="subtitle">Some unintuitive quirks of Latex</p>
|
||||
<p class="author">Never</p>
|
||||
<p class="date">9.1.2026</p>
|
||||
</header>
|
||||
<section id="content">
|
||||
<nav id="TOC" role="doc-toc">
|
||||
<ul>
|
||||
<li><a href="#biblatex-and-biber" id="toc-biblatex-and-biber">BibLaTeX
|
||||
and Biber</a>
|
||||
<ul>
|
||||
<li><a href="#biber-doesnt-run" id="toc-biber-doesnt-run">Biber doesn’t
|
||||
run</a></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article>
|
||||
<h1 id="biblatex-and-biber">BibLaTeX and Biber</h1>
|
||||
<h2 id="biber-doesnt-run">Biber doesn’t run</h2>
|
||||
<p>Biber doens’t run if the (fedora) package
|
||||
<code>libxcrypt-compat</code> is missing. It will fail with the error
|
||||
message</p>
|
||||
<pre><code>biber: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory</code></pre>
|
||||
</article>
|
||||
|
||||
</section>
|
||||
<footer id="page-footer">
|
||||
<!-- <embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;"> -->
|
||||
<p class="cups-light">
|
||||
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left.svg" width="30" height="30/"></a>
|
||||
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo.svg" width="120" height="60/"></a>
|
||||
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right.svg" width="30" height="30/"></a>
|
||||
</p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
20
src/articles/random-linux-utils.md
Normal file
20
src/articles/random-linux-utils.md
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
title: Random linux utilities
|
||||
subtitle: Neat things I picked up along the way
|
||||
author: Never
|
||||
date: 25.7.2025
|
||||
summary: Tricks and tools I learned about, while tweaking my Linux sytem or trying to do productive things.
|
||||
---
|
||||
|
||||
# Merge pdfs
|
||||
## Using Ghostscript
|
||||
Ghostscript has a feature to merge multiple pdf files into one.
|
||||
Although ImageMagick also has this feature, I prefer this one, as it doesn't rasterize and scales down
|
||||
the pdf files.
|
||||
|
||||
```bash
|
||||
gs -dNOPAUSE -sDEVICE=pdfwrite \
|
||||
-sOUTPUTFILE=output.pdf \
|
||||
-dBATCH 1.pdf 2.pdf
|
||||
```
|
||||
|
||||
18
src/articles/rsync-android
Normal file
18
src/articles/rsync-android
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
[1m[23m[39m[49m[24m[29mLatex Endeavors[0m
|
||||
Some unintuitive quirks of Latex
|
||||
|
||||
Never
|
||||
|
||||
[22m[3m[39m[49m[24m[29m9.1.2026[0m
|
||||
|
||||
────────────────────
|
||||
|
||||
[1m[23m[39m[49m[24m[29mBIBLATEX AND BIBER[0m
|
||||
|
||||
[1m[23m[39m[49m[24m[29mBiber doesn’t run[0m
|
||||
|
||||
Biber doens’t run if the (fedora) package [22m[23m[31m[47m[24m[29m libxcrypt-compat [0m is missing.
|
||||
It will fail with the error message
|
||||
|
||||
[22m[23m[31m[49m[24m[29mbiber: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory[0m
|
||||
[0m]8;;\
|
||||
80
src/articles/rsync-android.html
Normal file
80
src/articles/rsync-android.html
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="pandoc" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||
<meta name="author" content="Never" />
|
||||
<title>Latex Endeavors</title>
|
||||
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
||||
<style>
|
||||
code{white-space: pre-wrap;}
|
||||
span.smallcaps{font-variant: small-caps;}
|
||||
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||||
div.column{flex: auto; overflow-x: auto;}
|
||||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||
/* The extra [class] is a hack that increases specificity enough to
|
||||
override a similar rule in reveal.js */
|
||||
ul.task-list[class]{list-style: none;}
|
||||
ul.task-list li input[type="checkbox"] {
|
||||
font-size: inherit;
|
||||
width: 0.8em;
|
||||
margin: 0 0.8em 0.2em -1.6em;
|
||||
vertical-align: middle;
|
||||
}
|
||||
</style>
|
||||
<link rel="stylesheet" href="style.css" />
|
||||
</head>
|
||||
<body>
|
||||
<canvas id="tv-screen"></canvas>
|
||||
<header id="page-header">
|
||||
<ul>
|
||||
<li><a href="index.html">Home</a></li><li><a href="about.html">About</a></li>
|
||||
</ul>
|
||||
<!--
|
||||
<ul>
|
||||
<li>
|
||||
<span id="dark-mode">
|
||||
<input id="dark-mode-toggle" type="checkbox"><label for="dark-mode-toggle">Dark mode</label>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
-->
|
||||
</header>
|
||||
<header id="title-block-header">
|
||||
<h1 class="title">Latex Endeavors</h1>
|
||||
<p class="subtitle">Some unintuitive quirks of Latex</p>
|
||||
<p class="author">Never</p>
|
||||
<p class="date">9.1.2026</p>
|
||||
</header>
|
||||
<section id="content">
|
||||
<nav id="TOC" role="doc-toc">
|
||||
<ul>
|
||||
<li><a href="#biblatex-and-biber" id="toc-biblatex-and-biber">BibLaTeX
|
||||
and Biber</a>
|
||||
<ul>
|
||||
<li><a href="#biber-doesnt-run" id="toc-biber-doesnt-run">Biber doesn’t
|
||||
run</a></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article>
|
||||
<h1 id="biblatex-and-biber">BibLaTeX and Biber</h1>
|
||||
<h2 id="biber-doesnt-run">Biber doesn’t run</h2>
|
||||
<p>Biber doens’t run if the (fedora) package
|
||||
<code>libxcrypt-compat</code> is missing. It will fail with the error
|
||||
message</p>
|
||||
<pre><code>biber: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory</code></pre>
|
||||
</article>
|
||||
|
||||
</section>
|
||||
<footer id="page-footer">
|
||||
<!-- <embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;"> -->
|
||||
<p class="cups-light">
|
||||
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left.svg" width="30" height="30/"></a>
|
||||
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo.svg" width="120" height="60/"></a>
|
||||
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right.svg" width="30" height="30/"></a>
|
||||
</p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
127
src/articles/rsync-android.md
Normal file
127
src/articles/rsync-android.md
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
---
|
||||
title: Using rsync on Android to syncronise my Music library
|
||||
author: Never
|
||||
date: 12.01.2026
|
||||
summary: As Spotify is getting enshittified by capitalism, keeping a music library
|
||||
is kind of essential. Here I use rsync to syncronise my library with my Android smartphone.
|
||||
---
|
||||
|
||||
# Setup Termux
|
||||
Install Termux using F-Droid.
|
||||
|
||||
Update software repos.
|
||||
```sh
|
||||
pkg update
|
||||
```
|
||||
|
||||
Grant file access permissions using.
|
||||
```sh
|
||||
termux-setup-storage
|
||||
```
|
||||
|
||||
# Establishing an ssh connection
|
||||
|
||||
If network (such as eduroam) is blocking ssh trafic between machines, open a Wi-Fi Hotspot
|
||||
on your Linux machine and connect the Android device to it before using `rsync` or `ssh`.
|
||||
|
||||
## Configuring Android
|
||||
Install the openssh server on Termux.
|
||||
```sh
|
||||
pkg install openssh
|
||||
```
|
||||
|
||||
Start the ssh server daemon.
|
||||
```sh
|
||||
sshd
|
||||
```
|
||||
|
||||
Get the ip address of the Android machine (in the Hotspot).
|
||||
```sh
|
||||
ifconfig
|
||||
```
|
||||
```
|
||||
Warning: cannot open /proc/net/dev (Permission denied). Limited output.
|
||||
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
|
||||
inet 127.0.0.1 netmask 255.0.0.0
|
||||
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
|
||||
|
||||
rmnet0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1280
|
||||
inet 10.200.157.166 netmask 255.255.255.0 destination 10.200.157.166
|
||||
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
|
||||
|
||||
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
|
||||
inet 10.42.0.200 netmask 255.255.255.0 broadcast 10.42.0.210
|
||||
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
|
||||
```
|
||||
|
||||
In this case 10.42.0.200.
|
||||
|
||||
The ssh server should now be running and listening on port 8022.
|
||||
You can check by running
|
||||
```sh
|
||||
nmap -Pn <ip_address>
|
||||
```
|
||||
For me `<ip_address>` whould be 10.42.0.200.
|
||||
|
||||
Get the username.
|
||||
```sh
|
||||
whoami
|
||||
```
|
||||
```
|
||||
u0_a700
|
||||
```
|
||||
|
||||
Set a password for this user.
|
||||
```sh
|
||||
passwd
|
||||
```
|
||||
|
||||
## Connecting to Android via ssh
|
||||
Make sure you have an ssh key pair on the Linux system.
|
||||
If not generate one using `ssh-keygen`.
|
||||
|
||||
Now connect to Android by `ssh`.
|
||||
```sh
|
||||
ssh <username>@<ip_address> -p 8022
|
||||
```
|
||||
|
||||
# Syncronising files with rsync
|
||||
Install `rsync` on Termux and Linux.
|
||||
Make sure to keep your own openssl config.
|
||||
```sh
|
||||
pkg install rsync
|
||||
```
|
||||
|
||||
Now on your Linux machine, syncronise your Music library with rsync.
|
||||
```sh
|
||||
rsync -av -e "ssh -p 8022" ~/Music <username>@<ip_address>:/data/data/com.termux/files/home/storage/music
|
||||
```
|
||||
|
||||
## Refreshing the Android MediaStore
|
||||
Android uses a Database to store files. In order to play your music, this database
|
||||
needs to be refreshed. This can be achieved by a reboot or by using adb to manually
|
||||
refresh it.
|
||||
|
||||
```sh
|
||||
sudo dnf install adb
|
||||
```
|
||||
|
||||
Connect the Android device via USB and see if it is listed.
|
||||
```sh
|
||||
adb devices
|
||||
```
|
||||
|
||||
If it is, restart adb in TCP mode with port 5555
|
||||
```sh
|
||||
adb tcpip 5555
|
||||
```
|
||||
|
||||
Connect to the device using its <ip_address>.
|
||||
```sh
|
||||
adb connect <ip_address>
|
||||
```
|
||||
|
||||
Refresh MediaStore.
|
||||
```sh
|
||||
adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN -d file:///data/data/com.termux/files/home/storage/music/
|
||||
```
|
||||
4
src/index.md
Normal file
4
src/index.md
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: Home
|
||||
---
|
||||
Hello World
|
||||
Loading…
Add table
Add a link
Reference in a new issue