Improved frontpage and styles

This commit is contained in:
Eduard Urbach 2025-02-25 23:09:01 +01:00
parent 4fe7787ad3
commit d191fe1496
Signed by: akyoto
GPG Key ID: C874F672B1AF20C0
5 changed files with 49 additions and 114 deletions

View File

@ -1,53 +1,14 @@
--- ---
title: About title: Hi 👋
tags: about tags: about
created: 2023-07-09T20:04:03Z created: 2025-02-25T21:50:08Z
published: true published: true
--- ---
In an age where technology is meant to simplify our lives, it's ironic how often we find ourselves grappling with bloated software - programs that are swollen with unnecessary features, bogged down by excessive complexity, and burdened with what feels like digital excess baggage. I'm Eduard Urbach and I like making complex things look simple.
Welcome to the era of feature creep, where software developers seem to prioritize quantity over quality, overwhelming users with an avalanche of functionalities that they never asked for nor needed.
## Simplicity My main project is the [q](https://git.akyoto.dev/cli/q) programming language.
As a wise man once said: I've also made a minimalistic HTTP [server](https://git.urbach.dev/go/web) and [router](https://git.urbach.dev/go/router).
> Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away. All of these are very fast, feel free to benchmark them :)
We shouldn't ask ourselves how much we can add, but how much we can remove, while still maintaining the core task of the software. This leads to simpler and easier to understand code.
> An idiot admires complexity, a genius admires simplicity.
Making a topic look complex is easy, but making it simple and easy to understand is what truly takes skill. Instead of complex and over-engineered solutions that make us "feel intelligent" just because they're complex we should strive for simplicity.
## Software
I like [Arch Linux](https://archlinux.org) as my operating system for multiple reasons:
- minimal system
- rolling release
- pacman is awesome
- wiki is amazing
My desktop is now based on [Hyprland](https://hyprland.org) after having used [Gnome Shell](https://gnome.org) for the past 10 years.
I use [Neovim](https://neovim.io) as my lightweight editor and [VS Code](https://code.visualstudio.com) only if it has better plugins for the project I'm working on.
I am currently experimenting with [fish](https://fishshell.com) as my daily shell replacing [zsh](https://zsh.org).
## Languages
I spent 8 years of my life in Japan and Korea.
This helped me understand some of the subtle differences between Western and Eastern cultures.
I speak the following languages to varying degrees:
- 🇬🇧 English
- 🇩🇪 German
- 🇯🇵 Japanese
- 🇰🇷 Korean
- 🇷🇺 Russian
## Community
In case you want to contribute to any projects, join [#community:urbach.dev](https://matrix.to/#/#community:urbach.dev) with a client you like.
I recommend [Cinny](https://cinny.in/) because it has a beautiful design and closely resembles Discord.

16
posts/languages.md Normal file
View File

@ -0,0 +1,16 @@
---
title: Languages
tags: about
created: 2023-07-09T20:04:03Z
published: true
---
I spent 8 years of my life in Japan and Korea.
This helped me understand some of the subtle differences between Western and Eastern cultures.
I speak the following languages to varying degrees:
- 🇬🇧 English
- 🇩🇪 German
- 🇯🇵 Japanese
- 🇰🇷 Korean
- 🇷🇺 Russian

19
posts/software.md Normal file
View File

@ -0,0 +1,19 @@
---
title: Software
tags: about
created: 2023-07-09T20:04:03Z
published: true
---
I like [Arch Linux](https://archlinux.org) as my operating system for multiple reasons:
- minimal system
- rolling release
- pacman is awesome
- wiki is amazing
My desktop is based on [Hyprland](https://hyprland.org) after having used [Gnome Shell](https://gnome.org) for the past 10 years.
I use [Neovim](https://neovim.io) as my lightweight editor and [VS Code](https://code.visualstudio.com) for bigger projects.
I am currently using [fish](https://fishshell.com) which has replaced [zsh](https://zsh.org) as my daily shell.

View File

@ -1,14 +1,14 @@
:root { :root {
--hue: 220; --hue: 220;
--body-color: hsl(var(--hue), 20%, 12%); --body-color: hsl(var(--hue), 20%, 12%);
--text-color: hsl(var(--hue), 20%, 77%); --text-color: hsl(var(--hue), 20%, 80%);
--dim-color: hsl(var(--hue), 20%, 61%);
--main-color: hsl(calc(var(--hue) + 180), 100%, 75%); --main-color: hsl(calc(var(--hue) + 180), 100%, 75%);
--header-color: hsl(0, 0%, 100%); --header-color: hsl(0, 0%, 100%);
--grey-color: hsl(0, 0%, 61%);
--highlight-color: hsla(0, 0%, 100%, 0.05); --highlight-color: hsla(0, 0%, 100%, 0.05);
--font-family: system-ui, sans-serif; --font-family: system-ui, sans-serif;
--font-family-mono: monospace; --font-family-mono: monospace;
--font-size: 18px; --font-size: 20px;
--line-height: 1.6; --line-height: 1.6;
--letter-spacing: -0.02em; --letter-spacing: -0.02em;
--max-width: 65ch; --max-width: 65ch;
@ -162,7 +162,7 @@ nav {
} }
nav a { nav a {
color: var(--grey-color); color: var(--dim-color);
} }
nav a:hover { nav a:hover {
@ -174,8 +174,8 @@ nav a:hover {
} }
article header time { article header time {
font-size: 0.8rem; font-size: 0.9rem;
color: var(--grey-color); color: var(--dim-color);
} }
img { img {
@ -190,53 +190,7 @@ img {
.blog li time { .blog li time {
flex: 1; flex: 1;
text-align: right; text-align: right;
color: var(--grey-color); color: var(--dim-color);
}
.comment {
color: gray;
font-style: italic;
}
.char,
.string {
color: greenyellow;
}
.keyword {
color: var(--main-color);
}
.function {
color: var(--main-color);
}
.builtin {
color: #fffab5;
}
.number {
color: cyan;
}
.variable {
color: gray;
}
.parameter {
color: orange;
}
.section {
color: lightgreen;
}
.operator {
color: white;
}
.punctuation {
color: gray;
} }
@media (min-width: 800px) { @media (min-width: 800px) {

View File

@ -1,25 +1,10 @@
package pages package pages
import ( import (
"fmt"
"strings"
"git.urbach.dev/go/web" "git.urbach.dev/go/web"
"git.urbach.dev/web/urbach.dev/server/app" "git.urbach.dev/web/urbach.dev/server/app"
) )
func Frontpage(ctx web.Context) error { func Frontpage(ctx web.Context) error {
head := fmt.Sprintf(`<title>%s</title><meta name="keywords" content="%s">`, "Projects", "projects") return app.RenderPost(ctx, "about")
body := strings.Builder{}
body.WriteString(`<h2>Projects</h2>`)
for i, markdown := range app.Projects {
body.WriteString(markdown)
if i != len(app.Projects)-1 {
body.WriteString(`<hr>`)
}
}
return app.Render(ctx, head, body.String())
} }