aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile9
-rw-r--r--bin/func18
-rwxr-xr-xbin/rssg14
-rw-r--r--src/a/curated-content.md22
-rw-r--r--src/a/gear.md44
-rw-r--r--src/a/homelab.md2
-rw-r--r--src/a/index.md15
-rw-r--r--src/a/level-design.md2
-rw-r--r--src/a/random-thoughts.md2
-rw-r--r--src/a/resume.md55
-rw-r--r--src/a/rice.md2
-rw-r--r--src/b/2020-07-archlinux-installation.md2
-rw-r--r--src/b/2020-08-wireguard-and-ipv6.md2
-rw-r--r--src/b/2021-08-status.md2
-rw-r--r--src/b/2021-09-status.md2
-rw-r--r--src/b/2021-10-thoughts-from-cold-autumn.md2
-rw-r--r--src/b/2021-11-status.md2
-rw-r--r--src/b/2021-12-status.md2
-rw-r--r--src/b/2022-01-status.md2
-rw-r--r--src/b/2022-07-organizing-qutebrowser-hyperlinks.md130
-rw-r--r--src/b/2022-12-human-ingress.md29
-rw-r--r--src/b/2023-01-03-in-the-mood-to-reset.md29
-rw-r--r--src/b/2023-05-computers-praha.md46
-rw-r--r--src/index.md2
-rw-r--r--src/style/style.css1
-rw-r--r--src/w/dell-r710.md2
-rw-r--r--src/w/index.md2
-rw-r--r--src/w/sun-x4170.md2
-rw-r--r--src/w/thinkpad-x220.md2
29 files changed, 402 insertions, 44 deletions
diff --git a/Makefile b/Makefile
index e1b9bab..76261af 100644
--- a/Makefile
+++ b/Makefile
@@ -2,6 +2,8 @@
REMOTE := root@dc0
REMOTE_DIR := /var/www/htdocs/rgoncalves.se
+OUTPUT_DIR := ./out
+TEMPORARY_DIR := ./tmp
.PHONY: all \
site \
@@ -11,9 +13,12 @@ site: clean
./bin/ssg
./bin/rssg
+preview: site
+ python3 -m http.server --directory $(OUTPUT_DIR) --bind 127.0.0.1
+
clean:
- - rm -r out tmp
+ - rm -r $(OUTPUT_DIR) $(TEMPORARY_DIR)
deploy: site
- rsync -e ssh -avz --delete ./out/ $(REMOTE):$(REMOTE_DIR)
+ rsync -e ssh -avz --delete $(OUTPUT_DIR)/ $(REMOTE):$(REMOTE_DIR)
ssh $(REMOTE) chown -R www:www $(REMOTE_DIR)
diff --git a/bin/func b/bin/func
index 97688f5..0468b29 100644
--- a/bin/func
+++ b/bin/func
@@ -22,6 +22,12 @@ date_default_timezone="+0200"
uname=$(uname)
+__sha256="sha256"
+
+if [ "${uname}" = "Linux" ]; then
+ __sha256="sha256sum"
+fi
+
__to_html_id() {
cat /dev/stdin | sed 's/ /%20/g'
}
@@ -96,7 +102,7 @@ __get_out_filename() {
_filename="${1}"
if $(__get_value "${1}" draft || false); then
- _filename="$(dirname ${1})/$(basename ${1} | sha256).html"
+ _filename="$(dirname ${1})/$(basename ${1} | "${__sha256}").html"
fi
echo "${_filename}" |
@@ -145,6 +151,10 @@ __lowdown() {
lowdown --html-no-skiphtml --html-no-escapehtml "${1}"
}
+__generate_rss_body() {
+ lowdown -tgemini "${1}" | sed 's/&/\&amp;/g; s/</\&lt;/g; s/>/\&gt;/g; s/"/\&quot;/g; s/'"'"'/\&#39;/g'
+}
+
__apply_template() {
# 1: template name or default
m4 "templates/${1:-default}"
@@ -223,14 +233,14 @@ __handle_md() {
__generate_metadata "${1}" > "${tmp_file}.metadata"
- if [ ! "$(__get_value ${1} index)" = "" ]; then
+ if [ ! "$(__get_value "${1}" index)" = "" ]; then
__generate_index "${1}" > "${tmp_file}.index"
else
[ -f "${tmp_file}.index" ] && rm "${tmp_file}.index"
fi
- __apply_template "$(__get_value ${1} template)" > "${tmp_file}"
- __install "${tmp_file}" "$(__get_out_filename ${1})"
+ __apply_template "$(__get_value "${1}" template)" > "${tmp_file}"
+ __install "${tmp_file}" "$(__get_out_filename "${1}")"
}
__handle() {
diff --git a/bin/rssg b/bin/rssg
index d42ff14..aee5735 100755
--- a/bin/rssg
+++ b/bin/rssg
@@ -5,7 +5,6 @@
set -e
current_date=$(date +"%a, %d %b %Y %H:%M:%S %z")
-uname=$(uname)
cat <<-EOF > "${rss_out_file}"
<rss version="2.0">
@@ -25,21 +24,20 @@ cat <<-EOF > "${rss_out_file}"
EOF
for file in $(__list_files_date "${rss_dir}"); do
+ __get_value "${file}" "draft" >/dev/null && continue
+
title=$(__get_value_title "${file}")
date=$(__get_value_date_publication "${file}")
- link="${website_link}/$(__get_final_filename ${file})"
- if [ "${uname}" = "Linux" ]; then
- guid="$(echo ${link} | sha256sum | cut -d ' ' -f 1)"
- else
- guid="$(echo ${link} | sha256)"
- fi
-
+ link="${website_link}/$(__get_final_filename "${file}")"
+ guid="$(echo "${link}" | "${__sha256}" | cut -d ' ' -f 1)"
+ description=$(__generate_rss_body "${file}")
cat <<-EOF >> "${rss_out_file}"
<item>
<title>${title}</title>
<link>${link}</link>
<pubDate>${date}</pubDate>
<guid>${guid}</guid>
+ <description>${description}</description>
</item>
EOF
done
diff --git a/src/a/curated-content.md b/src/a/curated-content.md
index ef587d0..f11006e 100644
--- a/src/a/curated-content.md
+++ b/src/a/curated-content.md
@@ -1,10 +1,14 @@
+---
title: Curated content
+---
## books
- [Out of the Tar Pit](http://curtclifton.net/papers/MoseleyMarks06a.pdf)
- [Raw Thought, Raw Nerve](https://archive.org/details/RawThoughtRawNerveInsideTheMindOfAaronSwartz/page/n5/mode/2up)
- [Team Geek](https://www.oreilly.com/library/view/team-geek/9781449329839)
+- [The Pragmatic Programmer](https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/)
+- [The Subtle Art of Not Giving a Fuck](https://en.wikipedia.org/wiki/The_Subtle_Art_of_Not_Giving_a_F*ck)
## blogs
@@ -13,14 +17,17 @@ title: Curated content
- https://dabase.com
- https://dkb.io
- https://drewdevault.com
+- https://fenollp.github.io/
- https://geohot.github.io
- https://grimgrains.com
- https://jcs.org
- https://johnnyrodgers.is
- https://mrshll.com
- https://natalian.org
+- https://simonmenner.com
- https://webzine.puffy.cafe
- https://www.xyte.ch
+- https://www.yannick.acephale.fr
- https://yukiisbo.red
## devices
@@ -33,7 +40,9 @@ thinkpad laptops!
## engineering
- [getting unstuck](https://www.kevinlondon.com/2021/10/14/asking-for-help.html)
-- [Make met think!](https://xsrus.com/life-school-and-the-80-20-rule)
+- [things your manager might not know](https://jvns.ca/blog/things-your-manager-might-not-know/)
+- [staff engineer](https://staffeng.com/)
+- [feeling stuck is the creative process](https://writing.fm/feeling-stuck-is-the-creative-process/)
## life
@@ -42,18 +51,29 @@ thinkpad laptops!
- [Life, School, and the 80:20 Rule](https://xsrus.com/life-school-and-the-80-20-rule)
- [impostor syndrome and me](https://www.kevinlondon.com/2015/05/27/impostor-syndrome-and-me.html)
- [your time is the furthest thing from free](https://teddit.net/r/nosurf/comments/awujub/your_time_is_the_furthest_thing_from_free)
+- [Just Don't](https://www.tbray.org/ongoing/When/202x/2022/11/07/Just-Dont)
## music
+- Massive attack
- Nine inch nails
+- Ratatat
- Sister machine gun
+- Vangelis
## movies
+- 2046
+- Aftersun
+- Being john malkovich
- Bladerunner
+- Enter the void
- Fight club
+- In the mood for love
- Matrix
- Office space
+- Point break
+- Stalker
## webrings
diff --git a/src/a/gear.md b/src/a/gear.md
index 0358961..367c5b3 100644
--- a/src/a/gear.md
+++ b/src/a/gear.md
@@ -1,4 +1,6 @@
+---
title: Gear
+---
> I don't have any intentions to have monthly blog posts about my current gear,
> mostly because I have spent a lot of time finding the right devices for the
@@ -9,18 +11,10 @@ title: Gear
## Machines
-- Thinkpad X220, **Laptop**:
- - *i5-2540M, 8GB of RAM, IPS Panel*
- - Secondary development machine running Archlinux.
- - Two different boot config: with and without CPU mitigations for maximum
- performance.
-
-- Thinkpad X220, **Laptop**:
- - *i5-2540M, 16GB of RAM, TN Panel*
- - OpenBSD development laptop running -current.
- - One of the right USB slot has been scrapped and replaced with a USB Type-C
- female slot that I hand soldered myself (useful for Yubikeys, as the
- motherboard only supports USB 2.0 for that slot).
+- Thinkpad X330, **Laptop**:
+ - *i7-3520M, 8GB of RAM, IPS Panel*
+ - Current main station on Archlinux
+ - X220 keyboard mode, BIOS mode, USB-C mode
- Dell XPS 9370, **Laptop**:
- *i7-xxx?, 16GB of RAM, Touchscreen + 4K + glossy*
@@ -48,6 +42,21 @@ title: Gear
- *32GB of RAM*
- Currently unused!
+---
+
+- Thinkpad X220, **Laptop**:
+ - *i5-2540M, 8GB of RAM, IPS Panel*
+ - Secondary development machine running Archlinux.
+ - Two different boot config: with and without CPU mitigations for maximum
+ performance.
+
+- Thinkpad X220, **Laptop**:
+ - *i5-2540M, 8GB of RAM, TN Panel*
+ - OpenBSD development laptop running -current.
+ - One of the right USB slot has been scrapped and replaced with a USB Type-C
+ female slot that I hand soldered myself (useful for Yubikeys, as the
+ motherboard only supports USB 2.0 for that slot).
+
## Accessories
- HHKB Professial Classic, **Keyboard**:
@@ -65,13 +74,20 @@ title: Gear
- two Benq xxx?, **Monitor**:
- dual-screen for my primary development machine.
-- Fairphone 2, **Smartphone**:
- - *Lineageos 11, microG, transparent case*
+- Pixel One, **Smartphone**:
+ - *Lineageos 18, microG*
- Primary phone.
+ - Battery feels old but performances are excellent for a 2016 phone.
+
+- Fairphone 2, **Smartphone**:
+ - *Lineageos 17, microG, transparent case*
+ - Backup phone.
- Used as a *dumbphone* as much as I can (black and white screen, no extra or
so-called social apps).
- Perfect network hotspot via USB when I am on the move.
+---
+
- Motorola G7 Power, **Smartphone**:
- *Lineageos 11, microG*
- Backup phone. I screw up my primary phone occasionally!
diff --git a/src/a/homelab.md b/src/a/homelab.md
index 726b141..4b73319 100644
--- a/src/a/homelab.md
+++ b/src/a/homelab.md
@@ -1,4 +1,6 @@
+---
title: Homelab
+---
## Bill of materials
diff --git a/src/a/index.md b/src/a/index.md
index 3cdc446..99e040c 100644
--- a/src/a/index.md
+++ b/src/a/index.md
@@ -1,6 +1,15 @@
+---
title: about
+---
-Software developer, devops, hacker.
+Software engineer, ~~devops~~, hacker.
+
+I can work on various tasks: from software engineering to infrastructure
+automation, system administration, deployment pipelines, hacky shell scripts,
+...
+
+I am comfortable and want to work with: BSD operating systems,
+system programming, git + rebase/squash workflow, suckless software, ...
## contact
@@ -24,3 +33,7 @@ Software developer, devops, hacker.
- [random thoughts](random-thoughts.html)
- [rice](rice.html)
- [resume](resume.html)
+
+## resources
+
+- [my dotfiles](https://git.rgoncalves.se/dots/tree)
diff --git a/src/a/level-design.md b/src/a/level-design.md
index d726ebd..50f0edc 100644
--- a/src/a/level-design.md
+++ b/src/a/level-design.md
@@ -1,4 +1,6 @@
+---
title: Level design
+---
## Source Engine
diff --git a/src/a/random-thoughts.md b/src/a/random-thoughts.md
index 7852287..9ea77aa 100644
--- a/src/a/random-thoughts.md
+++ b/src/a/random-thoughts.md
@@ -1,4 +1,6 @@
+---
title: Random thoughts
+---
> Skills first
diff --git a/src/a/resume.md b/src/a/resume.md
index 5b0fecd..830d80c 100644
--- a/src/a/resume.md
+++ b/src/a/resume.md
@@ -1,17 +1,19 @@
+---
header: false
footer: false
template: none
+---
# [Romain Gonçalves](/)
-> Devops engineer at VIPERdev
+> Software engineer
## about
-- Besançon, France
+- Paris, France
- me@rgoncalves.se
- [linkedin](https://linkedin.com/in/rgoncalvesse)
-- [generic infomations](/a)
+- [generic informations](/a)
## skills
@@ -24,9 +26,10 @@ template: none
### programming
-- Python + Django
+- Python + Django + FastAPI + SQLAlchemy
- POSIX shell
- The C Programming Language
+- gRPC + Protobuf
- Dart, TypeScript, Java, PHP
### languages
@@ -36,9 +39,21 @@ template: none
## experiences
-- Devops engineer
+- *burnout recovery and enjoying life (since 2023-06)*
+
+- Hardware Devops Engineer
+ - *at [Scaleway](https://www.scaleway.com)*
+ - *from 2022-04 to 2023-06*
+ - software engineering, maintenance and automation of internal toolings
+ - agnostic firmware management: configuration + flash for dozens of server
+ types
+ - site-reliability of pre-production assembly line: software + system
+ debugging
+ - orchestration of BMCs, NICs, BIOS configuration
+
+- Devops Engineer
- *at [VIPERdev](https://viperdev.io)*
- - *from 2021-07 (ongoing)*
+ - *from 2021-07 to 2022-03*
- infrastructure maintenance and deployments to production
- backend development, agile methodology and code review
- cloud providers such as: digitalocean / scaleway / netlify
@@ -47,13 +62,13 @@ template: none
- Intern (django/devops)
- *at [VIPERdev](https://viperdev.io)*
- - *from 2020-04 to 2020-06*
+ - *from 2021-04 to 2021-06*
- backend development and code review
- contribution to existing projects
- Homelab and internal network
- *for fun!*
- - *from 2020 (ongoing)*
+ - *since 2020 (ongoing)*
- with OpenBSD + FreeBSD, AlpineLinux and love!
- Level designer
@@ -71,15 +86,29 @@ template: none
- 32 players maps with bot support and game-engine scripting
- creation and modifications to 2D and 3D assets
+## certifications
+
+- Electrical accreditation (France): H0 - B0 - BS - Be manoeuvre
+
+## preferences
+
+- git rebase + squash workflow
+- atomic commits with nice commit title + body
+- [stupid and simple implementations](https://peps.python.org/pep-0020/)
+
+## conferences
+
+- OCP Regional Summit 2023 *(visitor*)
+- FOSDEM 2023 *(visitor)*
+
## extra
When I am not playing *factorio* or *squashing my commits*, I enjoy *riding my
-bicycle*, *going for a run* or *even hiking*!
+bicycle*, *going for a run*, *hiking*, *climbing* or even *exploring the
+catacombs*!
I have had a lot of fun being a *dungeon master* when playing
*Dungeons and Dragons* with my friends!
-I love using my *Thinkpad X220* with *OpenBSD* for daily life =)
-
-And yes, I do have two entreprise servers running next to me 24/7! I am always
-open to talk about them!
+I love using my *Thinkpad X330* with *Archlinux/OpenBSD*. *dwm* + *st* + *tmux*
+is the perfect combo, change my mind!
diff --git a/src/a/rice.md b/src/a/rice.md
index 9675f71..d5507ee 100644
--- a/src/a/rice.md
+++ b/src/a/rice.md
@@ -1,4 +1,6 @@
+---
title: Rice
+---
> Even if all the cool kids seems to be on
> [r/unixporn](https://www.reddit.com/r/unixporn) (which is not true) I have
diff --git a/src/b/2020-07-archlinux-installation.md b/src/b/2020-07-archlinux-installation.md
index 86a6c45..4f47b14 100644
--- a/src/b/2020-07-archlinux-installation.md
+++ b/src/b/2020-07-archlinux-installation.md
@@ -1,5 +1,7 @@
+---
date: 2020-07-01
title: Archlinux Bulletproof Installation
+---
Through my 5 years with different Archlinux installations, I made up my mind to
document the one that fullfills my needs. The main goal is a minimal arch install
diff --git a/src/b/2020-08-wireguard-and-ipv6.md b/src/b/2020-08-wireguard-and-ipv6.md
index 9a91dc8..e5f8040 100644
--- a/src/b/2020-08-wireguard-and-ipv6.md
+++ b/src/b/2020-08-wireguard-and-ipv6.md
@@ -1,5 +1,7 @@
+---
date: 2020-08-26
title: Wireguard and IPV6
+---
> I decided to connect all my services and servers behind my domain controller,
> which has a dedicated IPv4 and IPv6 address, and which basically host that
diff --git a/src/b/2021-08-status.md b/src/b/2021-08-status.md
index 33fac8f..9e52f92 100644
--- a/src/b/2021-08-status.md
+++ b/src/b/2021-08-status.md
@@ -1,5 +1,7 @@
+---
title: Status update, August 2021
date: 2021-08-12
+---
This is the first status update!
You can expect regular status updates each month.
diff --git a/src/b/2021-09-status.md b/src/b/2021-09-status.md
index f6f70eb..b63cd4e 100644
--- a/src/b/2021-09-status.md
+++ b/src/b/2021-09-status.md
@@ -1,5 +1,7 @@
+---
title: Status update, September 2021
date: 2021-09-19
+---
## Analog
diff --git a/src/b/2021-10-thoughts-from-cold-autumn.md b/src/b/2021-10-thoughts-from-cold-autumn.md
index 1873d27..0f4d9ce 100644
--- a/src/b/2021-10-thoughts-from-cold-autumn.md
+++ b/src/b/2021-10-thoughts-from-cold-autumn.md
@@ -1,5 +1,7 @@
+---
title: Thoughts from a cold autumn
date: 2021-10-23
+---
Some thoughts that need to get out and written there. They might be turned into
individual blog posts later, once I sort them out.
diff --git a/src/b/2021-11-status.md b/src/b/2021-11-status.md
index 3021d09..c930f7b 100644
--- a/src/b/2021-11-status.md
+++ b/src/b/2021-11-status.md
@@ -1,5 +1,7 @@
+---
title: Status update, November 2021
date: 2021-11-24
+---
It has been colder and colder, although I still go running two or three times
a week!
diff --git a/src/b/2021-12-status.md b/src/b/2021-12-status.md
index c9a2507..62a9071 100644
--- a/src/b/2021-12-status.md
+++ b/src/b/2021-12-status.md
@@ -1,5 +1,7 @@
+---
title: Status update, December 2021
date: 2021-12-19
+---
## Software development
diff --git a/src/b/2022-01-status.md b/src/b/2022-01-status.md
index 7d680a0..80019bb 100644
--- a/src/b/2022-01-status.md
+++ b/src/b/2022-01-status.md
@@ -1,5 +1,7 @@
+---
title: Status update, January 2022
date: 2022-01-19
+---
## Thinkpad madness
diff --git a/src/b/2022-07-organizing-qutebrowser-hyperlinks.md b/src/b/2022-07-organizing-qutebrowser-hyperlinks.md
new file mode 100644
index 0000000..b8f5655
--- /dev/null
+++ b/src/b/2022-07-organizing-qutebrowser-hyperlinks.md
@@ -0,0 +1,130 @@
+---
+title: Organizing qutebrowser hyperlinks
+date: 2022-07-18
+---
+
+## Actual state
+
+Qutebrowser offers two strategies for saving an hyperlink [^1]:
+
+- `bookmark`: a link relates to a title (without any format constraint).
+- `quickmark`: a link relates to a tag (which must be unique).
+
+I have always used the bookmark strategy, but it lacks a propper
+quality-of-life update for sorting and formatting entries.
+
+## Intended workflow
+
+I have decided to pick the following workflow:
+
+1. Do not use the quickmark strategy.
+2. Store hyperlinks as bookmarks.
+3. Format the bookmarks titles, but allow duplicates.
+4. Sort the bookmarks per title.
+5. Show the same ui of quickmark-add when adding a new bookmark.
+
+A bookmark entry in `.config/qutebrowser/bookmarks/urls` would then look like
+this:
+
+```
+[hyperlink] [tag+1] [tag+2] ... [tag+n]
+
+https://beej.us/guide/bgnet/html/ +network +soft +wiki
+http://cat-v.org/ +wiki
+https://why-vi.rocks/ +wiki
+```
+
+While (1) and (2) are purely related to human behaviors, (3), (4) and (5)
+requires the implementation of logic on qutebrowser side, which does not exist
+on the upstream (yet).
+
+I originally produced multiple hacky scripts for sorting and formatting my
+bookmark file, but ended up doing Python injection from the qutebrowser
+configuration file. Thanks to the functions injection, the sorting and
+formatting operations are hooked to the `bookmark-add` keybind.
+
+![qutebrowser-bookmark-popup](/img/b/qutebrowser-bookmark-popup.jpg)
+
+## Implementation
+
+1. Sort the tags of each bookmark entries, then sort the bookmarks entries by
+ their title:
+
+ ```
+ from os import path
+ from io import SEEK_SET
+
+ from qutebrowser.browser.urlmarks import UrlMarkManager
+
+
+ def sort_bookmarks(url_filepath: str) -> None:
+ file = open(url_filepath, 'r+')
+ marks = (
+ (link, sorted(tags.split())) for link, tags in
+ (line.split(maxsplit=1) for line in file.readlines())
+ )
+ lines = (
+ f'{link} {" ".join(tags)}' for link, tags in
+ sorted(marks, key=lambda mark: mark[1])
+ )
+ file.seek(SEEK_SET)
+ file.writelines('\n'.join(lines))
+ file.close()
+```
+
+2. Hook the sort function when an new entry is added to the url file (Note: I
+ wanted to reuse the original `UrlMarkManager.save` method and extend it, but
+ pythonic shenanigans forced me to copy/paste two loc from the source code):
+
+
+ ```
+ def urlmarkmanager_save(manager: UrlMarkManager, configdir: str) -> None:
+ """Override Qutebrowser builtin method for saving bookmarks."""
+ manager._lineparser.data = [' '.join(tpl) for tpl in manager.marks.items()]
+ manager._lineparser.save()
+ sort_bookmarks(path.join(configdir, 'bookmarks/urls'))
+
+ from qutebrowser.browser.urlmarks import UrlMarkManager
+
+ UrlMarkManager.save = (
+ lambda manager: urlmarkmanager_save(manager, config.configdir)
+ )
+ ```
+
+3. Hook the save function with an homemade pop-up, that appears when adding a
+ new bookmark entry:
+
+ ```
+ from qutebrowser.api import cmdutils
+
+ @cmdutils.register()
+ def bookmark_save(url: QUrl):
+ """Save the current page as a bookmark."""
+ manager = objreg.get('bookmark-manager')
+ tags = message.ask(
+ title="Add bookmark:",
+ mode=PromptMode.text,
+ url=url.toString(QUrl.RemovePassword | QUrl.FullyEncoded),
+ text=(
+ "Please enter bookmark tags for<br/><b>"
+ f"{html.escape(url.toDisplayString())}</b>"
+ ),
+ )
+
+ if not tags:
+ return
+
+ try:
+ manager.add(url, tags)
+ except UrlAlreadyExistsError:
+ message.warning("Bookmark already exists.")
+ ```
+
+Now all my bookmark entries are sorted by their titles automatically, and it
+looks way better when I preview them!
+
+![qutebrowser-bookmark-entries](/img/b/qutebrowser-bookmark-entries.jpg)
+
+(Next step: integrate a fuzzy-finder for searching bookmarks)
+
+[^1]: https://github.com/qutebrowser/qutebrowser/issues/882
diff --git a/src/b/2022-12-human-ingress.md b/src/b/2022-12-human-ingress.md
new file mode 100644
index 0000000..fc97302
--- /dev/null
+++ b/src/b/2022-12-human-ingress.md
@@ -0,0 +1,29 @@
+---
+title: Human ingress
+date: 2022-12-18
+---
+
+```sh
+$ curl https://rgoncalves.se/robots.txt
+User-agent: *
+Disallow: /
+```
+
+```sh
+$ curl -s https://rgoncalves.se/index.html | grep "googlebot"
+<meta name="googlebot" content="noindex">
+```
+
+```sh
+$ wc -l /etc/hosts
+224395 /etc/hosts
+```
+
+---
+
+Computers and technologies are cool, but don't waste too much time with them.
+They ultimately suck and create more problem than they solve.
+
+Embrace real human interactions.
+
+Read a book or start here: http://www.aaronsw.com/weblog/rawnerve
diff --git a/src/b/2023-01-03-in-the-mood-to-reset.md b/src/b/2023-01-03-in-the-mood-to-reset.md
new file mode 100644
index 0000000..c1bdb4b
--- /dev/null
+++ b/src/b/2023-01-03-in-the-mood-to-reset.md
@@ -0,0 +1,29 @@
+---
+title: In the mood to reset
+date: 2023-01-03
+---
+
+[Remember that computers suck](/b/2022-12-human-ingress.html).
+
+I do not get the point of daily routines consisting of commuting to work
+just for [pushing buttons](https://en.wikipedia.org/wiki/The_Stanley_Parable).
+Pushing or not those buttons for days, months, then years. Nothing ultimately
+changes in the grand scheme of things.
+
+I am in the mood for better writing habits.
+
+I am in the mood for
+[taking notes more often](http://www.aaronsw.com/weblog/productivity),
+especially when my mind has been wandering.
+
+I am in the mood for consistent reading habits.
+
+I am in the mood for driving recruiters nuts.
+
+I am in the mood to listen to other people.
+
+I am in the mood for not giving a fuck about your bullshit startups and your
+sterile ten word job title.
+
+And I am in the mood for believing in Weihnachtsmann. Everything was so simple
+back then.
diff --git a/src/b/2023-05-computers-praha.md b/src/b/2023-05-computers-praha.md
new file mode 100644
index 0000000..a87a2f6
--- /dev/null
+++ b/src/b/2023-05-computers-praha.md
@@ -0,0 +1,46 @@
+---
+title: Computers in Praha
+date: 2023-05-03
+---
+
+![cell-site-in-praha](/img/b/praha-cell-site.jpg)
+
+## Open Compute
+
+Watercooled and Open Rack V3 chassis + racks were displayed in the exposition
+hall:
+
+- Prototype of a 3U liquid cooled Nokia AirFrame Edge chassis.
+- Qarnot server: around 20 units are deployed per site, for an average of 240
+ motherboards.
+- HPE latest ARM server with an Ampere cpu: RL300, supporting
+ [OpenBMC](https://en.wikipedia.org/wiki/OpenBMC).
+
+## Frontier
+
+This is [the world's first and fastest supercomputer](https://en.wikipedia.org/wiki/Frontier_(supercomputer)).
+I have visited one of the assembly line and server room used in the fabrication
+process.
+
+### Components
+
+The chassis are 1U tall, composed of two servers spread on one motherboard,
+with a total of 8 cpus. The BMCs are on one extension card, directly plugged
+on one side of the motherboard, and connected via a cable to the opposite side
+for controlling the second server.
+
+The chassis are stacked at the backside of the rack, while the power units and
+water pipes are present at the fronside.
+
+Note that each power unit can draw up to 15KW and is vertically plugged in the
+rack.
+
+### Water leaks
+
+Big drainage pipes circulate above the racks, probably the closed water loop.
+Huge recipients with water detectors are present underneath, avoiding the
+fluid to fall down over the chassis.
+
+Thin conductive wires are also present in each chassis. They seem to be
+connected to the motherboard or BMCs extension card. This helps to detect any
+internal leak and gracefully shutdown the servers.
diff --git a/src/index.md b/src/index.md
index 86451aa..9371915 100644
--- a/src/index.md
+++ b/src/index.md
@@ -1,3 +1,5 @@
+---
index: b
index_date: true
show_title: false
+---
diff --git a/src/style/style.css b/src/style/style.css
index b8c073c..1c47ae6 100644
--- a/src/style/style.css
+++ b/src/style/style.css
@@ -2,7 +2,6 @@
* {
font-family: monospace, monospace;
- text-align: justify;
}
html {
diff --git a/src/w/dell-r710.md b/src/w/dell-r710.md
index 80c2070..6a05ee8 100644
--- a/src/w/dell-r710.md
+++ b/src/w/dell-r710.md
@@ -1,4 +1,6 @@
+---
title: dell r710
+---
## internal ssd
diff --git a/src/w/index.md b/src/w/index.md
index 1c32de5..e22c745 100644
--- a/src/w/index.md
+++ b/src/w/index.md
@@ -1,2 +1,4 @@
+---
title: wiki
index: w
+---
diff --git a/src/w/sun-x4170.md b/src/w/sun-x4170.md
index fbb9aa7..cb31fdb 100644
--- a/src/w/sun-x4170.md
+++ b/src/w/sun-x4170.md
@@ -1,3 +1,5 @@
+---
title: sun x4170
+---
// todo
diff --git a/src/w/thinkpad-x220.md b/src/w/thinkpad-x220.md
index 2cb7f7e..5c58737 100644
--- a/src/w/thinkpad-x220.md
+++ b/src/w/thinkpad-x220.md
@@ -1,4 +1,6 @@
+---
title: thinkpad x220
+---
## performances
remember that computers suck.