Redo website styling
@@ -1,31 +1,37 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Johannes Olzem</title>
|
||||
<meta name="description" content="Johannes Olzem"s personal website">
|
||||
<title>404 Not found - Johannes Olzem</title>
|
||||
<meta name="description" content="Johannes Olzem's personal website">
|
||||
<meta charset="utf-8">
|
||||
<link rel="stylesheet" href="/css/style.css">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" href="/favico.ico">
|
||||
</head>
|
||||
<body class="body">
|
||||
<header>
|
||||
<a href="/">
|
||||
<img src="/img/logo.png">
|
||||
<body>
|
||||
<nav>
|
||||
<a href="/" class="header-logo">
|
||||
<img src="/img/header-logo.webp" alt="logo">
|
||||
</a>
|
||||
<span class="header-text">Johannes Olzem</span>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/about/">About</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/blog/">Blog</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/contact/">Contact</a>
|
||||
</header>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<main>
|
||||
<h1>Johannes Olzem</h1>
|
||||
<blockquote>Less is more</blockquote>
|
||||
<h2>404 Not Found</h2>
|
||||
<h1>404 Not found</h1>
|
||||
<p>
|
||||
The resource you requested was not found on this server. Click
|
||||
<a href="/">here</a> to return home.
|
||||
The page you want to reach was not found on this server.<br>
|
||||
Click <a href="/">here</a> to return home.
|
||||
</p>
|
||||
|
||||
</main>
|
||||
<footer>
|
||||
© 2021 - <script>document.write(new Date().getFullYear())</script> Johannes Olzem
|
||||
|
||||
@@ -8,21 +8,28 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" href="/favico.ico">
|
||||
</head>
|
||||
<body class="body">
|
||||
<header>
|
||||
<a href="/">
|
||||
<img src="/img/logo.png">
|
||||
<body>
|
||||
<nav>
|
||||
<a href="/" class="header-logo">
|
||||
<img src="/img/header-logo.webp" alt="logo">
|
||||
</a>
|
||||
<span class="header-text">Johannes Olzem</span>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/about/">About</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/blog/">Blog</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/contact/">Contact</a>
|
||||
</header>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<main>
|
||||
<h1>Johannes Olzem</h1>
|
||||
<blockquote>Less is more</blockquote>
|
||||
<h2>About me</h2>
|
||||
<h1>About me</h1>
|
||||
<p>
|
||||
Hey there!
|
||||
Hey there!<br>
|
||||
My name is Johannes, and I'm a computer enthusiast born and raised in
|
||||
Germany. Recently, I graduated from school, majoring in IT and English,
|
||||
and I am now training to become an IT specialist. I am passionate about
|
||||
@@ -34,10 +41,14 @@
|
||||
from computers I enjoy making my own pourover coffee, I am a big fan of
|
||||
technical fashion and I like cars.
|
||||
</p>
|
||||
<h2>My Skills</h2>
|
||||
<p>I have at least basic knowledge in the following technologies:</p>
|
||||
<h1>
|
||||
My Skills
|
||||
</h1>
|
||||
<p>
|
||||
I have at least basic knowledge in the following technologies:
|
||||
</p>
|
||||
<div style="float:left" class="skills">
|
||||
<h3>Languages</h3>
|
||||
<h2>Languages</h2>
|
||||
<ul>
|
||||
<li>HTML & CSS</li>
|
||||
<li>Java</li>
|
||||
@@ -46,7 +57,7 @@
|
||||
</ul>
|
||||
</div>
|
||||
<div style="float:right" class="skills">
|
||||
<h3>Other technologies</h3>
|
||||
<h2>Other technologies</h2>
|
||||
<ul>
|
||||
<li>Linux</li>
|
||||
<li>Git</li>
|
||||
@@ -55,26 +66,35 @@
|
||||
<li>Docker</li>
|
||||
</ul>
|
||||
</div>
|
||||
<br>
|
||||
<h2>About this website</h2>
|
||||
<h1>About this website</h1>
|
||||
<p>
|
||||
While I might not have been using the internet much or at all during the
|
||||
web 1.0 times (which this site is heavily modeled after) I do believe that
|
||||
modern websites are unnecessarly bloated in many ways. They contain ads and
|
||||
trackers (that's just how capitalism works, I can't really complain about
|
||||
that) but also so much useless JavaScript. I agree that it is very useful
|
||||
in certain areas but sometimes it is just not needed. Like in the case of a
|
||||
news site, or a recipe site, which in my opinion could just be served
|
||||
statically without much (or any) JavaScript. Because of this, I created
|
||||
this website, to make a small contribution to the debloated minimal web.
|
||||
Just pure HTML and CSS with some (useful) quality of life JavaScript.
|
||||
No ads, trackers, or cookies.
|
||||
web 1.0 times (which this site was originally modeled after) I do believe
|
||||
that modern websites are unnecessarly bloated in many ways. They contain
|
||||
ads and trackers (that's just how capitalism works, I can't really
|
||||
complain about that) but also so much useless JavaScript. I agree that it
|
||||
is very useful in certain areas but sometimes it is just not needed. Like
|
||||
in the case of a news site, or a recipe site, which in my opinion could
|
||||
just be served statically without much (or any) JavaScript. Because of
|
||||
this, I created this website, to make a small contribution to the
|
||||
debloated minimal web. Just pure HTML and CSS with some (useful) quality
|
||||
of life JavaScript. No ads, trackers, or cookies.
|
||||
<br>
|
||||
It is also free and Open Source under the GNU General Public License V3,
|
||||
which you can find <a href="/LICENSE.txt">here.</a>
|
||||
<br>
|
||||
<a href="https://git.olzem.org/jolzem/olzem.org">Source code</a>
|
||||
</p>
|
||||
<h1>What happened to this site?</h1>
|
||||
<p>
|
||||
I have recently taken an interest in a lot of different elements of
|
||||
design. While I was previously already quite interested in interior
|
||||
design, my recent deep dive into the design rabbit hole led me to learn
|
||||
about a lot of different design languages, different designers, and
|
||||
aspects of design like product design or, more importantly, graphic
|
||||
design. After seeing a few different images online, I felt inspired and
|
||||
decided to redesign my own website.
|
||||
</p>
|
||||
</main>
|
||||
<footer>
|
||||
© 2021 - <script>document.write(new Date().getFullYear())</script> Johannes Olzem
|
||||
|
||||
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 12 KiB |
@@ -8,33 +8,40 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" href="/favico.ico">
|
||||
</head>
|
||||
<body class="body">
|
||||
<header>
|
||||
<a href="/">
|
||||
<img src="/img/logo.png">
|
||||
<body>
|
||||
<nav>
|
||||
<a href="/" class="header-logo">
|
||||
<img src="/img/header-logo.webp" alt="logo">
|
||||
</a>
|
||||
<span class="header-text">Johannes Olzem</span>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/about/">About</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/blog/">Blog</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/contact/">Contact</a>
|
||||
</header>
|
||||
<main class="blog-entry">
|
||||
<h1>Johannes Olzem</h1>
|
||||
<blockquote>Less is more</blockquote>
|
||||
<h2>How to create a Rust server on Linux</h2>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<main>
|
||||
<h1>How to create a Rust server on Linux</h1>
|
||||
<div class="author">Johannes Olzem</div>
|
||||
<div class="date">May 23, 2023</div>
|
||||
<h2>Table of Contents</h2>
|
||||
<ul>
|
||||
<li><a href="#Requirements">Requirements</a></li>
|
||||
<li><a href="#SteamCMD">SteamCMD</a><br /></li>
|
||||
<li><a href="#Installing">Installing</a><br /></li>
|
||||
<li><a href="#SteamCMD">SteamCMD</a><br></li>
|
||||
<li><a href="#Installing">Installing</a><br></li>
|
||||
<li><a href="#Running">Running</a></li>
|
||||
</ul>
|
||||
<h2 id="Requirements">Requirements</h2>
|
||||
<ul>
|
||||
<li>Debian Linux</li>
|
||||
<li>>5GB of RAM</li>
|
||||
<li>>4.5GB of free disc space</li>
|
||||
<li>>5GB of RAM</li>
|
||||
<li>>4.5GB of free disc space</li>
|
||||
</ul>
|
||||
<h2 id="SteamCMD">SteamCMD</h2>
|
||||
<h3>Configuring the envoirenment</h3>
|
||||
@@ -47,9 +54,9 @@
|
||||
<p class="code cmd">
|
||||
sudo passwd steam
|
||||
</p>
|
||||
<br />
|
||||
<br>
|
||||
<p>
|
||||
When prompted, enter a new password for the "steam" user. <br />
|
||||
When prompted, enter a new password for the "steam" user. <br>
|
||||
Then switch to the "steam" user and go to its home folder.
|
||||
</p>
|
||||
<p class="code cmd">
|
||||
@@ -58,19 +65,19 @@
|
||||
<p class="code cmd">
|
||||
cd
|
||||
</p>
|
||||
<br />
|
||||
<br>
|
||||
<p>
|
||||
Enable the contrib and non-free repositories by changing your <code>/etc/apt/sources.list</code> to resemble the following:
|
||||
</p>
|
||||
<p class="code no-dollar" style="text-align:left;">
|
||||
deb http://deb.debian.org/debian bullseye main contrib non-free<br />
|
||||
deb-src http://deb.debian.org/debian bullseye main contrib non-free<br />
|
||||
<br />
|
||||
deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free<br />
|
||||
deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free<br />
|
||||
<br />
|
||||
deb http://deb.debian.org/debian bullseye-updates main contrib non-free<br />
|
||||
deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free<br />
|
||||
<p class="code" style="text-align:left;">
|
||||
deb http://deb.debian.org/debian bullseye main contrib non-free<br>
|
||||
deb-src http://deb.debian.org/debian bullseye main contrib non-free<br>
|
||||
<br>
|
||||
deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free<br>
|
||||
deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free<br>
|
||||
<br>
|
||||
deb http://deb.debian.org/debian bullseye-updates main contrib non-free<br>
|
||||
deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free<br>
|
||||
</p>
|
||||
<h3>Installing SteamCMD</h3>
|
||||
<p>
|
||||
@@ -79,7 +86,7 @@
|
||||
<p class="code cmd">
|
||||
sudo apt install steamcmd
|
||||
</p>
|
||||
<br />
|
||||
<br>
|
||||
<h2 id="Installing">Installing</h2>
|
||||
<p>
|
||||
Run SteamCMD
|
||||
@@ -87,15 +94,15 @@
|
||||
<p class="code cmd">
|
||||
steamcmd
|
||||
</p>
|
||||
<br />
|
||||
<br>
|
||||
<p>
|
||||
After a short update period, a prompt like <code>Steam></code> should appear.<br />
|
||||
After a short update period, a prompt like <code>Steam></code> should appear.<br>
|
||||
To login anonymously type:
|
||||
</p>
|
||||
<p class="code">
|
||||
login anonymous
|
||||
</p>
|
||||
<br />
|
||||
<br>
|
||||
<p>
|
||||
Now install the Rust Dedicated Server application.
|
||||
</p>
|
||||
@@ -103,15 +110,15 @@
|
||||
app_update 258550
|
||||
</p>
|
||||
<p>
|
||||
This will install and verify the Rust server.<br />
|
||||
On my ~100 Mbit/s connection this took around 15-20 Minutes. <br />
|
||||
<br />
|
||||
This will install and verify the Rust server.<br>
|
||||
On my ~100 Mbit/s connection this took around 15-20 Minutes. <br>
|
||||
<br>
|
||||
Afterwards you can quit the SteamCMD shell.
|
||||
</p>
|
||||
<p class="code">
|
||||
quit
|
||||
</p>
|
||||
<br />
|
||||
<br>
|
||||
<h2 id="Running">Running</h2>
|
||||
<p>
|
||||
First navigate to the Rust server directory.
|
||||
@@ -119,18 +126,18 @@
|
||||
<p class="code cmd">
|
||||
cd ~/Steam/steamapps/common/rust_dedicated
|
||||
</p>
|
||||
<br />
|
||||
<br>
|
||||
<p>
|
||||
Finally, start up the Rust server by running:
|
||||
</p>
|
||||
<p class="code cmd">
|
||||
./RustDedicated -batchmode
|
||||
</p>
|
||||
<br />
|
||||
<br>
|
||||
<p>
|
||||
There are several arguments you can pass to the server to change its behaviour.
|
||||
</p>
|
||||
<br />
|
||||
<br>
|
||||
<table>
|
||||
<tbody><tr>
|
||||
<th>Parameter
|
||||
@@ -235,17 +242,19 @@
|
||||
</td>
|
||||
<td><code>gamelog.txt</code>
|
||||
</td>
|
||||
<td>If you"re using a script, you"d better put the current date as a filename, otherwise, it"ll be erased on every start.
|
||||
<td>If you're using a script, you'd better put the current date as a
|
||||
filename, otherwise, it'll be erased on every start.
|
||||
</td></tr>
|
||||
<tr>
|
||||
<td><code>-silent-crashes</code>
|
||||
</td>
|
||||
<td><code> - </code>
|
||||
</td>
|
||||
<td>Won"t display a crash dialog and will restart automatically if server is installed as service.
|
||||
<td>Won't display a crash dialog and will restart automatically if server
|
||||
is installed as service.
|
||||
</td></tr></tbody>
|
||||
</table>
|
||||
<br />
|
||||
<br>
|
||||
<h2>Sources</h2>
|
||||
<ul>
|
||||
<li>
|
||||
@@ -262,6 +271,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
</main>
|
||||
</main>
|
||||
<footer>
|
||||
© 2021 - <script>document.write(new Date().getFullYear())</script> Johannes Olzem
|
||||
<br>
|
||||
|
||||
@@ -8,26 +8,36 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" href="/favico.ico">
|
||||
</head>
|
||||
<body class="body">
|
||||
<header>
|
||||
<a href="/">
|
||||
<img src="/img/logo.png">
|
||||
<body>
|
||||
<nav>
|
||||
<a href="/" class="header-logo">
|
||||
<img src="/img/header-logo.webp" alt="logo">
|
||||
</a>
|
||||
<span class="header-text">Johannes Olzem</span>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/about/">About</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/blog/">Blog</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/contact/">Contact</a>
|
||||
</header>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<main>
|
||||
<h1>Johannes Olzem</h1>
|
||||
<blockquote>Less is more</blockquote>
|
||||
<h2>Blog</h2>
|
||||
<h1>Blog</h1>
|
||||
<p>
|
||||
Anything I write will go here:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/blog/quick-fixes/">Quick fixes</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/blog/how-to-create-a-rust-server-on-linux/">
|
||||
How to create a Rust server on linux.
|
||||
23.05.23: How to create a Rust server on linux.
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -8,24 +8,29 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" href="/favico.ico">
|
||||
</head>
|
||||
<body class="body">
|
||||
<header>
|
||||
<a href="/">
|
||||
<img src="/img/logo.png">
|
||||
<body>
|
||||
<nav>
|
||||
<a href="/" class="header-logo">
|
||||
<img src="/img/header-logo.webp" alt="logo">
|
||||
</a>
|
||||
<span class="header-text">Johannes Olzem</span>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/about/">About</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/blog/">Blog</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/contact/">Contact</a>
|
||||
</header>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<main>
|
||||
<h1>Johannes Olzem</h1>
|
||||
<blockquote>Less is more</blockquote>
|
||||
<h2>
|
||||
Connected without internet on Android after setting PiHole as DNS server.
|
||||
</h2>
|
||||
<h1>Quick fix</h1>
|
||||
<h2>Connected without internet on Android after setting PiHole as DNS server.</h2>
|
||||
<p>
|
||||
Make sure you forward both TCP and UDP of port 53 from your Docker
|
||||
container.
|
||||
Make sure you forward both TCP and UDP of port 53 from your Docker container.
|
||||
</p>
|
||||
</main>
|
||||
<footer>
|
||||
|
||||
@@ -8,39 +8,55 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" href="/favico.ico">
|
||||
</head>
|
||||
<body class="body">
|
||||
<header>
|
||||
<a href="/">
|
||||
<img src="/img/logo.png">
|
||||
<body>
|
||||
<nav>
|
||||
<a href="/" class="header-logo">
|
||||
<img src="/img/header-logo.webp" alt="logo">
|
||||
</a>
|
||||
<span class="header-text">Johannes Olzem</span>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/about/">About</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/blog/">Blog</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/contact/">Contact</a>
|
||||
</header>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<main>
|
||||
<h1>Johannes Olzem</h1>
|
||||
<blockquote>Less is more</blockquote>
|
||||
<h1>Quick fix</h1>
|
||||
<h2>HomeAssistant not connecting over reverse proxy</h2>
|
||||
<p>
|
||||
Make sure you have enabled <em>Websockets Supports</em> or similar
|
||||
functionality in your reverse proxy client.<br><br>
|
||||
If you are getting a <em>400 Bad Request</em> error, find the
|
||||
HomeAssistant log file and look for the following error message:<br>
|
||||
<code>A request from a reverse proxy was received from 12.34.56.78, but
|
||||
your HTTP integration is not set-up for reverse proxies</code><br><br>
|
||||
In your <code>configuration.yaml</code> file, add the following lines:<br>
|
||||
<pre>
|
||||
http:<br>
|
||||
use_x_forwarded_for: true<br>
|
||||
trusted_proxies:<br>
|
||||
- 12.34.56.78 # The IP address from the error message
|
||||
</pre>
|
||||
Make sure you have enabled <em>Websockets Support</em> or similar
|
||||
functionality in your reverse proxy client.
|
||||
</p>
|
||||
<p>
|
||||
If you are getting a <code>400 Bad Request</code> error, find the
|
||||
HomeAssistant log file and look for the following error message:
|
||||
</p>
|
||||
<p class="code">
|
||||
A request from a reverse proxy was received from 12.34.56.78, but your
|
||||
HTTP integration is not set-up for reverse proxies
|
||||
</p>
|
||||
<p>
|
||||
In your <code>configuration.yaml</code> file, add the following lines:
|
||||
</p>
|
||||
<p class="code">
|
||||
http:<br>
|
||||
 use_x_forwarded_for: true<br>
|
||||
 trusted_proxies:<br>
|
||||
  - 12.34.56.78 # The IP address from the error message
|
||||
</p>
|
||||
<h2>Explanation</h2>
|
||||
<p>
|
||||
HomeAssistant uses websockets to communicate with the browser.
|
||||
</p>
|
||||
<h3>Explanation</h3>
|
||||
<p>
|
||||
HomeAssistant uses websockets to communicate with the browser.<br><br>
|
||||
If you are using a reverse proxy, the IP address of the incoming
|
||||
connection is not trusted and gets rejected by HomeAssistant.<br>
|
||||
connection is not trusted and gets rejected by HomeAssistant.
|
||||
</p>
|
||||
</main>
|
||||
<footer>
|
||||
|
||||
@@ -1,59 +1,61 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang='en'>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Quick fixes - Johannes Olzem</title>
|
||||
<meta name='description' content='Johannes Olzem's personal website'>
|
||||
<meta charset='utf-8'>
|
||||
<link rel='stylesheet' href='/css/style.css'>
|
||||
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
|
||||
<link rel='icon' href='/favico.ico'>
|
||||
<meta name="description" content="Johannes Olzem's personal website">
|
||||
<meta charset="utf-8">
|
||||
<link rel="stylesheet" href="/css/style.css">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" href="/favico.ico">
|
||||
</head>
|
||||
<body class='body'>
|
||||
<header>
|
||||
<a href='/'>
|
||||
<img src='/img/logo.png'>
|
||||
<body>
|
||||
<nav>
|
||||
<a href="/" class="header-logo">
|
||||
<img src="/img/header-logo.webp" alt="logo">
|
||||
</a>
|
||||
<a href='/about/'>About</a>
|
||||
<a href='/blog/'>Blog</a>
|
||||
<a href='/contact/'>Contact</a>
|
||||
</header>
|
||||
<span class="header-text">Johannes Olzem</span>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/about/">About</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/blog/">Blog</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/contact/">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<main>
|
||||
<h1>Johannes Olzem</h1>
|
||||
<blockquote>Less is more</blockquote>
|
||||
<h2>Quick fixes</h2>
|
||||
<h1>Quick fixes</h1>
|
||||
<p>
|
||||
This is a page with small problems, to which I have found easy
|
||||
solutions, so as to not litter the blog page.
|
||||
This is a page with small problems, to which I have found easy solutions,
|
||||
so as to not litter the blog page.
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='/blog/quick-fixes/android-pihole-no-internet/'>
|
||||
<a href="/blog/quick-fixes/android-pihole-no-internet/">
|
||||
Connected without internet on Android after setting PiHole as DNS
|
||||
server
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='/blog/quick-fixes/homeassistant-proxy/'>
|
||||
<a href="/blog/quick-fixes/homeassistant-proxy/">
|
||||
HomeAssistant not connecting over reverse proxy
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='/blog/quick-fixes/nextcloud-file-not-supported/'>
|
||||
<a href="/blog/quick-fixes/nextcloud-file-not-supported/">
|
||||
Nextcloud file not supported error
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='/blog/quick-fixes/pacman-404/'>
|
||||
Pacman install fails with 404
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='/blog/quick-fixes/proton-audio-stuttering/'>
|
||||
<a href="/blog/quick-fixes/proton-audio-stuttering/">
|
||||
Proton / Wine audio stuttering when using qpaeq equalizer
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='/blog/quick-fixes/thinkpad-r61-beep/'>
|
||||
<a href="/blog/quick-fixes/thinkpad-r61-beep/">
|
||||
Thinkpad R61 repeated beep on startup
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -8,27 +8,35 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" href="/favico.ico">
|
||||
</head>
|
||||
<body class="body">
|
||||
<header>
|
||||
<a href="/">
|
||||
<img src="/img/logo.png">
|
||||
<body>
|
||||
<nav>
|
||||
<a href="/" class="header-logo">
|
||||
<img src="/img/header-logo.webp" alt="logo">
|
||||
</a>
|
||||
<span class="header-text">Johannes Olzem</span>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/about/">About</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/blog/">Blog</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/contact/">Contact</a>
|
||||
</header>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<main>
|
||||
<h1>Johannes Olzem</h1>
|
||||
<blockquote>Less is more</blockquote>
|
||||
<h1>Quick fix</h1>
|
||||
<h2>Nextcloud file not supported error</h2>
|
||||
<h3>
|
||||
<code>
|
||||
<p class="code">
|
||||
exif_read_data(): File not supported at
|
||||
/var/www/html/lib/private/Metadata/Provider/ExifProvider.php#59
|
||||
</code>
|
||||
</h3>
|
||||
<p>Upload over IP and port rather than over nginx proxy.</p>
|
||||
<h3>Explanation</h3>
|
||||
</p>
|
||||
<p>
|
||||
Upload over IP and port rather than over nginx proxy.
|
||||
</p>
|
||||
<h2>Explanation</h2>
|
||||
<p>
|
||||
The request payload (the data your are trying to upload) is too large for
|
||||
nginx.
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Quick fix - Johannes Olzem</title>
|
||||
<meta name="description" content="Johannes Olzem's personal website">
|
||||
<meta charset="utf-8">
|
||||
<link rel="stylesheet" href="/css/style.css">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" href="/favico.ico">
|
||||
</head>
|
||||
<body class="body">
|
||||
<header>
|
||||
<a href="/">
|
||||
<img src="/img/logo.png">
|
||||
</a>
|
||||
<a href="/about/">About</a>
|
||||
<a href="/blog/">Blog</a>
|
||||
<a href="/contact/">Contact</a>
|
||||
</header>
|
||||
<main>
|
||||
<h1>Johannes Olzem</h1>
|
||||
<blockquote>Less is more</blockquote>
|
||||
<h2>Pacman install fails with 404</h2>
|
||||
<h3><code>error: failed retrieving file 'X' from Y : The requested URL
|
||||
returned error: 404</code></h3>
|
||||
<p>
|
||||
Replace <code>/etc/pacman.d/mirrorlist</code> with a new file generated
|
||||
at
|
||||
<a href='https://archlinux.org/mirrorlist/'>
|
||||
https://archlinux.org/mirrorlist/
|
||||
</a>.
|
||||
<br>
|
||||
Then run <code>sudo pacman -Syyu</code> to update the package database
|
||||
with the new mirrorlist. Make sure to use 2 y's, to force the new changes.
|
||||
</p>
|
||||
<h3>Explanation</h3>
|
||||
<p>
|
||||
Your mirrorlist is outdated, possibly due to the recent
|
||||
<a href='https://archlinux.org/news/git-migration-completed/'>
|
||||
pacman git migration
|
||||
</a>.
|
||||
</p>
|
||||
</main>
|
||||
<footer>
|
||||
© 2021 - <script>document.write(new Date().getFullYear())</script> Johannes Olzem
|
||||
<br>
|
||||
<small>This website is free software. You can redistribute and modify it under the terms of the GNU General Public License V3.</small>
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
@@ -8,20 +8,30 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" href="/favico.ico">
|
||||
</head>
|
||||
<body class="body">
|
||||
<header>
|
||||
<a href="/">
|
||||
<img src="/img/logo.png">
|
||||
<body>
|
||||
<nav>
|
||||
<a href="/" class="header-logo">
|
||||
<img src="/img/header-logo.webp" alt="logo">
|
||||
</a>
|
||||
<span class="header-text">Johannes Olzem</span>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/about/">About</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/blog/">Blog</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/contact/">Contact</a>
|
||||
</header>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<main>
|
||||
<h1>Johannes Olzem</h1>
|
||||
<blockquote>Less is more</blockquote>
|
||||
<h1>Quick fix</h1>
|
||||
<h2>Proton / Wine audio stuttering when using qpaeq equalizer</h2>
|
||||
<p>Switch to normal audio device.</p>
|
||||
<p>
|
||||
Switch to normal audio device.
|
||||
</p>
|
||||
</main>
|
||||
<footer>
|
||||
© 2021 - <script>document.write(new Date().getFullYear())</script> Johannes Olzem
|
||||
|
||||
@@ -8,24 +8,33 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" href="/favico.ico">
|
||||
</head>
|
||||
<body class="body">
|
||||
<header>
|
||||
<a href="/">
|
||||
<img src="/img/logo.png">
|
||||
<body>
|
||||
<nav>
|
||||
<a href="/" class="header-logo">
|
||||
<img src="/img/header-logo.webp" alt="logo">
|
||||
</a>
|
||||
<span class="header-text">Johannes Olzem</span>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/about/">About</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/blog/">Blog</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/contact/">Contact</a>
|
||||
</header>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<main>
|
||||
<h1>Johannes Olzem</h1>
|
||||
<blockquote>Less is more</blockquote>
|
||||
<h2>Title</h2>
|
||||
<h3>Problem</h3>
|
||||
<p>Fix</p>
|
||||
<h3>Explanation</h3>
|
||||
<h1>Quick fix</h1>
|
||||
<h2>::Title::</h2>
|
||||
<p>
|
||||
Explanation
|
||||
::Solution
|
||||
</p>
|
||||
<h2>Explanation</h2>
|
||||
<p>
|
||||
::Explanation
|
||||
</p>
|
||||
</main>
|
||||
<footer>
|
||||
|
||||
@@ -8,22 +8,34 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" href="/favico.ico">
|
||||
</head>
|
||||
<body class="body">
|
||||
<header>
|
||||
<a href="/">
|
||||
<img src="/img/logo.png">
|
||||
<body>
|
||||
<nav>
|
||||
<a href="/" class="header-logo">
|
||||
<img src="/img/header-logo.webp" alt="logo">
|
||||
</a>
|
||||
<span class="header-text">Johannes Olzem</span>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/about/">About</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/blog/">Blog</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/contact/">Contact</a>
|
||||
</header>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<main>
|
||||
<h1>Johannes Olzem</h1>
|
||||
<blockquote>Less is more</blockquote>
|
||||
<h1>Quick fix</h1>
|
||||
<h2>Thinkpad R61 repeated beep on startup</h2>
|
||||
<h3>(or any older ThinkPad model, I believe)</h3>
|
||||
<p>Check keyboard connector / swap out keyboard.</p>
|
||||
<h3>Explanation</h3>
|
||||
<p>
|
||||
(or any older ThinkPad model, I believe)
|
||||
</p>
|
||||
<p>
|
||||
Check keyboard connector / swap out keyboard.
|
||||
</p>
|
||||
<h2>Explanation</h2>
|
||||
<p>
|
||||
No keyboard detected on bootup.
|
||||
</p>
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>{{ Title }} - Johannes Olzem</title>
|
||||
<meta name="description" content="Johannes Olzem's personal website">
|
||||
<meta charset="utf-8">
|
||||
<link rel="stylesheet" href="/css/style.css">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" href="/favico.ico">
|
||||
</head>
|
||||
<body class="body">
|
||||
<header>
|
||||
<a href="/">
|
||||
<img src="/img/logo.png">
|
||||
</a>
|
||||
<a href="/about/">About</a>
|
||||
<a href="/blog/">Blog</a>
|
||||
<a href="/contact/">Contact</a>
|
||||
</header>
|
||||
<main class="blog-entry">
|
||||
<h1>Johannes Olzem</h1>
|
||||
<blockquote>Less is more</blockquote>
|
||||
<h2>Title</h2>
|
||||
<div class="author">Johannes Olzem</div>
|
||||
<div class="date"></div>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
</main>
|
||||
<footer>
|
||||
© 2021 - <script>document.write(new Date().getFullYear())</script> Johannes Olzem
|
||||
<br>
|
||||
<small>This website is free software. You can redistribute and modify it under the terms of the GNU General Public License V3.</small>
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
@@ -2,29 +2,45 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Contact - Johannes Olzem</title>
|
||||
<meta name="description" content="Johannes Olzem"s personal website">
|
||||
<meta name="description" content="Johannes Olzem's personal website">
|
||||
<meta charset="utf-8">
|
||||
<link rel="stylesheet" href="/css/style.css">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" href="/favico.ico">
|
||||
</head>
|
||||
<body class="body">
|
||||
<header>
|
||||
<a href="/">
|
||||
<img src="/img/logo.png">
|
||||
<body>
|
||||
<nav>
|
||||
<a href="/" class="header-logo">
|
||||
<img src="/img/header-logo.webp" alt="logo">
|
||||
</a>
|
||||
<span class="header-text">Johannes Olzem</span>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/about/">About</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/blog/">Blog</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/contact/">Contact</a>
|
||||
</header>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<main>
|
||||
<h1>Johannes Olzem</h1>
|
||||
<blockquote>Less is more</blockquote>
|
||||
<h2>Contact</h2>
|
||||
<h1>Contact</h1>
|
||||
<p>
|
||||
Email me: <a href="mailto:johannes@olzem.org">johannes@olzem.org</a>
|
||||
<br>
|
||||
Find me on <a href="https://github.com/jolzem">Github</a>
|
||||
If you want to get in touch with me you can do so via e-mail at:
|
||||
<a href="mailto:johannes@olzem.org">johannes@olzem.org</a>
|
||||
</p>
|
||||
<p>
|
||||
Additionally we can also connect via
|
||||
<a href="https://github.com/jolzem">GitHub</a>.
|
||||
</p>
|
||||
<p>
|
||||
Also feel free to visit my other site
|
||||
<a href="https://keebparts.eu/">keepbarts.eu</a> where I listed a few
|
||||
keyboard part stores within the EU to safely shop without worrying about
|
||||
customs or import taxes.
|
||||
</p>
|
||||
</main>
|
||||
<footer>
|
||||
|
||||
@@ -1,95 +1,239 @@
|
||||
@font-face {
|
||||
font-family: "DM Sans";
|
||||
src: url("/css/fonts/DM_Sans/DMSans-Regular.ttf");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "DM Sans";
|
||||
src: url("/css/fonts/DM_Sans/DMSans-Italic.ttf");
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "DM Mono";
|
||||
src: url("/css/fonts/DM_Mono/DMMono-Regular.ttf");
|
||||
}
|
||||
|
||||
:root {
|
||||
--bg: #152528;
|
||||
--dark-bg: #0f1c1e;
|
||||
--txt: #e6eaea;
|
||||
--header-txt: #e85c51;
|
||||
--sec-header-txt: #ff8349;
|
||||
--link-txt: #5a93aa;
|
||||
--black: #14110F;
|
||||
--white: #D5DCF9;
|
||||
|
||||
--green-bg: #AABD8C;
|
||||
--beige-bg: #E9E3B4;
|
||||
--orange-bg: #F39B6D;
|
||||
--gray-bg: #788896;
|
||||
|
||||
--beige-fg: #654236;
|
||||
}
|
||||
|
||||
::selection {
|
||||
background-color: var(--orange-bg);
|
||||
color: var(--black);
|
||||
}
|
||||
|
||||
body {
|
||||
background: var(--bg);
|
||||
color: var(--txt);
|
||||
font-family: 'Consolas', 'Courier', monospace;
|
||||
font-size: 130%
|
||||
background-color: var(--beige-bg);
|
||||
font-family: "DM Sans", "Helvetica", "Arial", sans-serif;
|
||||
margin: 0 auto;
|
||||
font-size: 130%;
|
||||
}
|
||||
|
||||
header {
|
||||
min-height: 52pt;
|
||||
nav {
|
||||
padding: 2rem;
|
||||
width: calc(100% - 4rem);
|
||||
height: 5rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
max-width: 95vw;
|
||||
justify-content: space-between;
|
||||
background: var(--gray-bg);
|
||||
}
|
||||
|
||||
.landing nav {
|
||||
position: fixed;
|
||||
background: none;
|
||||
}
|
||||
|
||||
nav li {
|
||||
display: inline;
|
||||
white-space: nowrap;
|
||||
margin: 0 .5rem;
|
||||
padding: .5rem;
|
||||
}
|
||||
|
||||
@media (max-width: 465px) {
|
||||
nav li {
|
||||
padding: .5rem;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.header-text {
|
||||
display: inline-block;
|
||||
opacity: 0;
|
||||
white-space: nowrap;
|
||||
font-size: 1.75rem;
|
||||
margin: 0 1.75rem;
|
||||
overflow: hidden;
|
||||
transition: opacity calc(.8s * 1.5);
|
||||
}
|
||||
|
||||
.header-logo:hover + .header-text {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* Don't display header text to avoid nav collapsing */
|
||||
@media (max-width: 740px) {
|
||||
.header-text {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
nav a {
|
||||
text-decoration-color: rgba(0,0,0,0);
|
||||
color: var(--black);
|
||||
transition: .4s;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
nav a:hover {
|
||||
text-decoration: underline;
|
||||
text-decoration-color: var(--black);
|
||||
}
|
||||
|
||||
.landing nav .header-text {
|
||||
display: none;
|
||||
}
|
||||
|
||||
body:not(.landing) main {
|
||||
min-height: calc(100vh - 11rem);
|
||||
max-width: 60vw;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
header a {
|
||||
display: inline-block;
|
||||
padding: 4pt 12pt;
|
||||
.landing-grid {
|
||||
display: grid;
|
||||
width: 100%;
|
||||
min-height: 100vh;
|
||||
|
||||
grid-template-columns: 1fr 1fr;
|
||||
grid-template-rows: 1fr 1fr;
|
||||
}
|
||||
|
||||
header img {
|
||||
height: 24pt;
|
||||
|
||||
.tl {
|
||||
background: var(--beige-bg);
|
||||
}
|
||||
|
||||
blockquote {
|
||||
.tr {
|
||||
background: var(--green-bg);
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
font-size: 3rem;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.bl {
|
||||
background: var(--orange-bg);
|
||||
padding: .5rem;
|
||||
font-size: 1.5rem;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.br {
|
||||
background: var(--gray-bg);
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
}
|
||||
|
||||
@keyframes floatChev {
|
||||
0% { transform: translate(-23px, -5px); }
|
||||
50% { transform: translate(-23px, 5px); }
|
||||
100% { transform: translate(-23px, -5px); }
|
||||
}
|
||||
|
||||
.br span {
|
||||
font-size: 46px;
|
||||
animation: floatChev 3s ease-in-out infinite;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.landing-lower {
|
||||
width: 100%;
|
||||
min-height: 56vh;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
}
|
||||
|
||||
.ll {
|
||||
background: var(--green-bg);
|
||||
text-align: justify;
|
||||
padding: 0 2rem;
|
||||
}
|
||||
|
||||
@media (min-width: 790px) {
|
||||
.ll {
|
||||
padding-left: 20vw;
|
||||
}
|
||||
}
|
||||
|
||||
.ll h2 {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.landing h2 {
|
||||
font-size: 3rem;
|
||||
font-weight: 400;
|
||||
font-style: italic;
|
||||
padding-bottom: 24pt;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
main {
|
||||
max-width: min(800px, 80vw);
|
||||
margin: 0 auto;
|
||||
padding-bottom: 24pt;
|
||||
}
|
||||
|
||||
.cowsay-wrapper {
|
||||
min-width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.cowsay {
|
||||
font-family: monospace;
|
||||
text-align: left;
|
||||
white-space: pre;
|
||||
max-width: fit-content;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.cards {
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
margin-bottom:48pt;
|
||||
}
|
||||
|
||||
.portrait {
|
||||
max-width: min(220px, 60vw);
|
||||
.lr {
|
||||
background: var(--beige-bg);
|
||||
padding-left: 2rem;
|
||||
padding-right: 10vw;
|
||||
}
|
||||
|
||||
.skills {
|
||||
float: left !important;
|
||||
width: 100%;
|
||||
margin-bottom: 24pt;
|
||||
width: 50%;
|
||||
height: 17rem;
|
||||
}
|
||||
|
||||
/* float right when on desktop */
|
||||
@media (min-width: 500px) {
|
||||
.portrait {
|
||||
float: right;
|
||||
height: 300px;
|
||||
margin-left: 2rem;
|
||||
|
||||
|
||||
@media (max-width: 580px) {
|
||||
.landing-grid {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
.landing {
|
||||
min-height: calc(100vh/4);
|
||||
}
|
||||
|
||||
.br {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.br span {
|
||||
transform: translate(0, -2rem) !important;
|
||||
}
|
||||
|
||||
.landing-lower {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.ll {
|
||||
padding: 0 1rem;
|
||||
}
|
||||
|
||||
.skills {
|
||||
width: 50%;
|
||||
height: 14rem;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.blog-entry p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.author {
|
||||
float: left;
|
||||
max-width: 400px;
|
||||
@@ -103,41 +247,28 @@ main {
|
||||
}
|
||||
|
||||
.code {
|
||||
background: var(--dark-bg);
|
||||
background: var(--green-bg);
|
||||
font-family: "DM Mono", monospace;
|
||||
padding: 1rem;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: "DM Mono", monospace;
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
.cmd::before {
|
||||
content: '$ ';
|
||||
}
|
||||
|
||||
footer {
|
||||
width: 100%;
|
||||
height: 4rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h1 {
|
||||
color: var(--header-txt);
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
color: var(--sec-header-txt);
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 16pt;
|
||||
display: block;
|
||||
text-align: justify;
|
||||
line-height: 1.25;
|
||||
background: var(--green-bg);
|
||||
}
|
||||
|
||||
a {
|
||||
color: var(--link-txt);
|
||||
text-decoration-color: rgba(0,0,0,0);
|
||||
transition: text-decoration .3s;
|
||||
}
|
||||
|
||||
a:hover, a:active {
|
||||
text-decoration-color: var(--link-txt);
|
||||
color: var(--beige-fg);
|
||||
}
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang='en'>
|
||||
<head>
|
||||
<title> - Johannes Olzem</title>
|
||||
<meta name='description' content='Johannes Olzem's personal website'>
|
||||
<meta charset='utf-8'>
|
||||
<link rel='stylesheet' href='/css/style.css'>
|
||||
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
|
||||
<link rel='icon' href='/favico.ico'>
|
||||
</head>
|
||||
<body class='body'>
|
||||
<header>
|
||||
<a href='/'>
|
||||
<img src='/img/logo.png'>
|
||||
</a>
|
||||
<a href='/about/'>About</a>
|
||||
<a href='/blog/'>Blog</a>
|
||||
<a href='/contact/'>Contact</a>
|
||||
</header>
|
||||
<main>
|
||||
<h1>Johannes Olzem</h1>
|
||||
<blockquote>Less is more</blockquote>
|
||||
<h2></h2>
|
||||
|
||||
</main>
|
||||
<footer>
|
||||
© 2021 - <script>document.write(new Date().getFullYear())</script> Johannes Olzem
|
||||
<br>
|
||||
<small>This website is free software. You can redistribute and modify it under the terms of the GNU General Public License V3.</small>
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 857 B |
|
After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 1006 B |
|
Before Width: | Height: | Size: 7.2 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 581 B |
|
Before Width: | Height: | Size: 760 B |
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -2,65 +2,70 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Johannes Olzem</title>
|
||||
<meta name="description" content="Johannes Olzem"s personal website">
|
||||
<meta name="description" content="Johannes Olzem's personal website">
|
||||
<meta charset="utf-8">
|
||||
<link rel="stylesheet" href="/css/style.css">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" href="/favico.ico">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||||
<link rel="manifest" href="/site.webmanifest">
|
||||
</head>
|
||||
<body class="body">
|
||||
<header>
|
||||
<a href="/">
|
||||
<img src="/img/logo.png">
|
||||
<body class="landing">
|
||||
<nav>
|
||||
<a href="/" class="header-logo">
|
||||
<img src="/img/header-logo.webp" alt="logo">
|
||||
</a>
|
||||
<span class="header-text">Johannes Olzem</span>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/about/">About</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/blog/">Blog</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/contact/">Contact</a>
|
||||
</header>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<main>
|
||||
<h1>Johannes Olzem</h1>
|
||||
<blockquote>Less is more</blockquote>
|
||||
<h2>Welcome to my webspace</h2>
|
||||
<div class="landing-grid">
|
||||
<div class="landing tl"></div>
|
||||
<div class="landing tr">Johannes Olzem</div>
|
||||
<div class="landing bl">less is more</div>
|
||||
<div class="landing br"><span>⌄</span></div>
|
||||
</div>
|
||||
<div class="landing-lower">
|
||||
<div class="landing ll">
|
||||
<h2>Welcome</h2>
|
||||
<p>
|
||||
Welcome to my Webspace!
|
||||
I'm Johannes, a computer enthusiast from Germany. On this website I
|
||||
maintain my <a href="blog">blog</a> about various topics and you can
|
||||
learn more about me <a href="/about/">here.</a> If you want to get in
|
||||
touch with me, you can do that <a href="/contact/">here</a>.
|
||||
maintain my
|
||||
<a href="/blog/">blog</a> about various topics and you can learn more
|
||||
about me
|
||||
<a href="/about">here.</a> If you want to get in touch with me, feel
|
||||
free to do that
|
||||
<a href="/contact/">here.</a>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class="landing lr">
|
||||
<h2>Why run this website?</h2>
|
||||
<p>
|
||||
The internet used to be a place of personal expression, not just
|
||||
corporate dominance. I believe in keeping that spirit alive.
|
||||
<br>
|
||||
This site is a small step towards a more independent web.
|
||||
It also allows me to share my experiences, how I do things, and other
|
||||
stuff that I want to put out into the world.
|
||||
<br>
|
||||
Please feel free to explore every crevasse of this site! Don't know where
|
||||
to start? Try the <a href="/about/">about</a> page, to learn more about
|
||||
who I am.
|
||||
</p>
|
||||
<br>
|
||||
<div class="cowsay-wrapper">
|
||||
<p class="cowsay">
|
||||
_____________________________
|
||||
< Have fun on this website! >
|
||||
-----------------------------
|
||||
\ ^__^
|
||||
\ (oo)\_______
|
||||
(__)\ )\/\
|
||||
||----w |
|
||||
|| ||
|
||||
corporate dominance. I believe in keeping that spirit alive.<br>
|
||||
This site is a small step towards a more independent web. It also
|
||||
allows me to share my experiences, how I do things, and other stuff
|
||||
that I want to put out into the world.<br>
|
||||
Please feel free to explore every crevasse of this site! Don't know
|
||||
where to start? Try the
|
||||
<a href="/about/">about</a> page, to learn more about who I am.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
<br>
|
||||
<div class="cards">
|
||||
<img src="/img/linux_powered.gif" alt="Linux powered">
|
||||
<img src="/img/vim.gif" alt="vim">
|
||||
<img src="/img/nocookie.gif" alt="No Cookies">
|
||||
<img src="/img/bestvieweddesktop.gif" alt="Best viewed with desktop">
|
||||
<img src="/img/internetprivacy.gif" alt="Internet privacy now!">
|
||||
<img src="/img/smile.gif" alt="Have a smile">
|
||||
</div>
|
||||
</main>
|
||||
<footer>
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{"name":"Johannes Olzem's personal website","short_name":"Johannes Olzem","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#AABD8C","background_color":"#AABD8C","display":"standalone"}
|
||||