From e252145e2ee734e55af3e34ac751dafdfeb901c1 Mon Sep 17 00:00:00 2001 From: lucidiot Date: Mon, 26 Apr 2021 01:02:12 +0200 Subject: [PATCH] Move a lot of content from the private wiki --- content/agoranomic.md | 74 ++++++++++++ content/books.md | 5 +- content/brainshit.md | 90 ++++++++++++-- content/cybrecluster/carthage.md | 14 +++ content/cybrecluster/index.md | 3 +- content/feeds.md | 5 +- content/links.md | 29 +++++ content/meta.md | 127 ++++++++++++++++++++ content/mountain.md | 114 +++++++++++++++++- content/psp.md | 67 +++++++++++ content/tank.md | 195 +++++++++++++++++++++++++++++++ 11 files changed, 708 insertions(+), 15 deletions(-) create mode 100644 content/agoranomic.md create mode 100644 content/cybrecluster/carthage.md create mode 100644 content/links.md create mode 100644 content/meta.md create mode 100644 content/psp.md create mode 100644 content/tank.md diff --git a/content/agoranomic.md b/content/agoranomic.md new file mode 100644 index 0000000..153eeda --- /dev/null +++ b/content/agoranomic.md @@ -0,0 +1,74 @@ +--- +title: Agora Nomic +--- + +Agora Nomic is a game of Nomic started in 1993 and still running today. + +I have watched over the game since April 2020 and started actually playing +in November. I paused everything due to some family events and health +issues. + +## Discussion media + +* agora-business@agoranomic.org + Mailing list for normal gameplay. +* agora-official@agoranomic.org + Works the same as agora-business, but intended for official reports and + more important messages. +* agora-discussion@agoranomic.org + Mailing list for discussion related to the game, nothing sent here counts + as actual gameplay. +* agora@listserver.tue.nl + Backup mailing list, if the normal lists go down. +* agoranomic@groups.io + Backup mailing list, to circumvent some of tue.nl's limitations. +* Freenode: `##nomic` + IRC channel for discussion related to Agora. +* Discord: Agora Nomic Chat Server + Discord server for Agora discussion, with a bot relaying to IRC. + +## Links + +* Website: +* GitHub: +* Full ruleset: + +## Current status + +Not exactly current as I have months of gameplay to catch up on, if I feel like +coming back again. + +* 174 coins +* 2 Victory Cards +* 1 Justice Card +* 1 Legislative Card +* 1 Voting Card +* 1 Karma +* Ministry Focus: Legacy +* Reportor + * 0 Credit + * Published 2020-11-09.15 + * Published 2020-11-30.12-06 +* Orchador + * Can plant a tree and pick fruit every 7 days + * Orchadoror soon, amendment pending + * Remaining consents: Trigon, Cuddlebeam, P.S.S. + * 1 Tree Tree + * 1 Bread Tree + * 1 Nomic Tree + * 1 Binary Tree + * 1 Potato Tree + * 5 Tree Fruit + * 4 Bread Fruit + * 3 Nomic Fruit + * 2 Binary Fruit + * 1 Potato Fruit +* Farmer + * Can plant once per Agoran week + * Names are unofficial + * 4 Potato + * Lucidot + * Insert Joke Here + * GLaDOS + * 🥔 + * Potato Fruit diff --git a/content/books.md b/content/books.md index 6ec2f00..633a974 100644 --- a/content/books.md +++ b/content/books.md @@ -13,15 +13,17 @@ title: books * Bruce Benamran, Prenez le temps d'e-penser 1 and 2 * Alain, Éléments de philosophie * Roberta Allen, Écrire une histoire en 5 minutes +* Randall Munroe, What If? +* Randall Munroe, How To ## reading Aka books that are on my phone's ebook reader, and that I read at least one page from in the last year… I want to read more often! -* Randall Munroe, How To * Thomas T. Barker, Writing Software Documentation * Sven Ove Hansson, Vincent F. Hendricks, Introduction to Formal Philosophy +* Sönke Ahrens, How to Take Smart Notes ## to read @@ -69,7 +71,6 @@ in the last year… I want to read more often! * Code Lyoko Chronicles, tome 4 : Le retour du Phoenix * Andy Hunt, Pragmatic Thinking and Learning * Ka Wai Cheung, The Developer's Code -* Sönke Ahrens, How to Take Smart Notes * Lori Gottlieb, Maybe You Should Talk to Someone * John Yates, Matthew Immergut, Jeremy Graves, The Mind Illuminated * Celeste Headlee, Do Nothing diff --git a/content/brainshit.md b/content/brainshit.md index 977e438..9186e8a 100644 --- a/content/brainshit.md +++ b/content/brainshit.md @@ -1,13 +1,85 @@ --- -title: brainshit +title: Brainshit --- -Brainshit is my oldest website; a French blog that I initially made as part of -a PHP tutorial, then that grew into a collaborative blog with 200 articles -from me and a friend I met on Habitica. +Brainshit is my personal blog, with some occasional posts from other people +I have given access to. My best friend used to write with me in the early +years, but is now just an avid reader. Lord Vlad joined me there after we +got to know each other through [habitica](./habitica.html). -Started in 2009, it got two full rewrites, three migrations, three name changes -and four domain changes. After moving around on various free hosting services, -I decided to self-host it, at first on a Raspberry Pi Zero-W, then on an Intel -NUC named Carthage. It is now hosted on [mountain](./mountain.html), and is a -part of the [cybrecluster](./cybrecluster.html). +Brainshit is now part of the [cybrecluster](cybrecluster/). + +## History + +* 2009-2010: A very blue and orange website hosted on Freeheberg, using code + from a PHP tutorial on the *Site du Zéro* + ([OpenClassrooms](https://openclassrooms.com/)'s old name), and with + [.tk](https://dot.tk) domain name. +* 2010-2012: Renamed it from my old nickname to *BubbleLand*, redesigned it by + filling it with `` tags and scanning drawings from a notebook, and moved + to Kelio.org, a French non-profit. +* 2013-2015: Made the initial design using [Amaya](https://www.w3.org/Amaya/), + then integrated it again into the old PHP tutorial code. Moved to Hostinger, + another free PHP hosting thing. Rewrote the whole admin page using jQuery UI + once I had learned it during an internship and even tried to make a JSON API. +* 2015-now: Rewrote from scratch using things I learnt from doing a PHP project + at school and reusing that project in an internship. Articles can have just + a summary, or a summary and content, or a summary and chapters. A simple + permissions system is available, as well as comment moderation, private + messaging between writers and an idea board. + +## Next rewrite + +As per my [cybrecluster](cybrecluster/) rules, I want to move Brainshit away +from PHP and MariaDB and use a static site. I wanted to do that long before I +even thought about the cybrecluster. I had written a Python exporter that took +in a MariaDB database export and generated Markdown files and some tar.gz +archives for the features that I would drop during the transition. + +It took me a while to decide, but I chose to just not include comments at all +in the next version of Brainshit. It will just be articles, and that's all. +We got very few comments, half of those were spam, and replying was hard since +there were no email notifications. If we want replies, we'll just publish our +email addresses or other contact info. This makes a static site much easier +to consider; the few solutions available for comments either require me to host +another service that gets backed by a database somewhere, and the whole point +was to remove the dependency on binary files, or require me and the readers to +have GitHub accounts, which is not acceptable considering the fact that GitHub +is an American company, owned by Microsoft, and makes questionable choices +regarding its clients. + +I had considered at one point rewriting Brainshit in Python with Django, before +coming up with the cybrecluster and deciding that Brainshit is simply not large +enough to require something non-static. While I definitely am able to pull off +that rewrite, I don't want to host it. + +I am struggling to find the static site generator that will allow me to make my +transition. I was considering moving Brainshit further away from a blog and +more into a wiki, but now that I have this wiki, this feels less relevant; +these change of plans definitely slowed me down. For now, I am considering +using [Zola](https://getzola.org). + +## Article ideas + +* Going to a public library felt empowering +* Coding for myself or for others + * Introduction on the Lua script generating SQL + * One-off shell scripts, immediate usage + * Learning can be transferred to PKM +* Personal knowledge management +* tilde.town +* breadpunk.club +* twtxt-registry-client +* Urbex adventures in Grenoble +* Minetest +* A d7 throw costing 400 billion euros +* Nomic +* A more abstract approach to ITSB +* On imperfection: "Le talent d'Achille" +* How many points do we get by shooting every basketball in existence + through a hoop at once? +* Literate programming +* A conclusion on my use of the [integrity report](./integrity-report.html) + * Projects that do not follow an integrity report or that do not + seem to matter in some kind of productivity methodology aren't always + negative distractions, they can also be just *hobbies* that we do for fun. diff --git a/content/cybrecluster/carthage.md b/content/cybrecluster/carthage.md new file mode 100644 index 0000000..ffe0f4a --- /dev/null +++ b/content/cybrecluster/carthage.md @@ -0,0 +1,14 @@ +--- +title: carthage +--- + +:::{style="text-align: center"} +Here lies + +[carthage]{style="font-size: 200%"} + +\* 2018-09-08T14:30Z +† 2020-10-27T17:59Z + +R.I.P. +::: diff --git a/content/cybrecluster/index.md b/content/cybrecluster/index.md index 4daafc0..c99d8ae 100644 --- a/content/cybrecluster/index.md +++ b/content/cybrecluster/index.md @@ -94,7 +94,7 @@ This sounds rather close to an [integrity report](../integrity-report.html). * Migrated my French blog to Mountain * Stopped all Docker services on Carthage * Migrated all my Syncthing folders to Mountain -* Sold Carthage to a friend at a fair price +* [Sold Carthage](./carthage.html) to a friend at a fair price * Added a Cybrecluster banner to all of my websites * Started posting about my tilde projects on my self-hosted French blog * Created this wiki @@ -121,6 +121,7 @@ to my French audience and describes the actions to take regarding * Add a Gopher version of my breadsite * Add a Gopher version of this wiki * Add a Gemini version of my french blog +* Add a Gemini version of my town site * Add a Gemini version of my breadsite * Add a Gemini version of this wiki diff --git a/content/feeds.md b/content/feeds.md index c9479fe..c5c7723 100644 --- a/content/feeds.md +++ b/content/feeds.md @@ -5,7 +5,7 @@ title: feeds ## rss * [my french blog](https://brainshit.fr/rss) -* [a quest to identify plants](//tilde.town/~lucidiot/plants/feed.xml) +* [a quest to identify plants](//tilde.town/~lucidiot/plants/feed.xml) (no longer updated) * [#fridaypostcard](//tilde.town/~lucidiot/fridaypostcard.xml) * [rsrsss](./rsrsss/) * [this wiki](./rss.xml) @@ -18,9 +18,10 @@ title: feeds ## everything * hundreds of feeds of [transport accident investigation reports](//tilde.town/~lucidiot/itsb/) - in rss, atom, rdf, [cdf](./cdf.html), … + in rss, atom, rdf, [cdf](./cdf.html), [hina](hina/), [lirs](lirs/), … ## planned feeds * my breadsite +* itsb updates * rocket launches, with georss and/or eventrss support diff --git a/content/links.md b/content/links.md new file mode 100644 index 0000000..a775187 --- /dev/null +++ b/content/links.md @@ -0,0 +1,29 @@ +--- +title: links +--- + +Various things that I want to read sometime later. +Who needs bookmarks anyway? + +* The Coming of Age of Calm Technology +* Anti-Mac Interface +* wsinatra's interview +* ‘Pataphysical Software: (Ridiculous) Technological Solutions for Imaginary Problems + +* TempleOS +* Learn Perl in 2h30 +* In the Beginning Was the Command Line + +* The Prevention of Literature +* Why software has convinced me to believe in the reality of cats and apples + +* Steal Those Buttons +* +* + +## technical writing + +* Write The Docs +* GNOME Style Guide +* The Elements of Style +* Practical UNIX Manuals: mdoc diff --git a/content/meta.md b/content/meta.md new file mode 100644 index 0000000..db18109 --- /dev/null +++ b/content/meta.md @@ -0,0 +1,127 @@ +--- +title: About the wiki +--- + +## Why? + +There has been a recent trend to set up [[zettelkasten]]s, which got me to +look around and see how other people handled their knowledge using a wiki. +Personal wiki articles are often short, and the focus is more on browsing +around and discovering new links between ideas. + +Going public-first instead of private-first is also a trend, with wikis on +Git repos or special websites like Andy Matuschak's [[evergreen]] notes. +Going public encourages curiosity, invites others to notice what you want +to learn on or what you know and give you their input, and inspires others. +It feels less like a waste of time. + +I initially started a private wiki using Vimwiki, as I just needed a space +to store random ideas and notes and wanted something I felt more in control +of than something like HedgeDoc or CryptPad, and something that I could edit +with a proper text editor and not a web browser. + +I decided to move to a public wiki for various reasons: + +* Some pages in my private wiki were worthy of being published, but did not + really fit as blog posts on my french blog or on my other sites. +* Most pages did not fit as blog posts because a blog post gives the feel of + something becoming permanent, becoming something you cannot go back to edit + on. Posting a journal of sorts about your research on a topic to circumvent + this issue just makes it much harder for someone to read your results, as + they need to read through the entire archive. +* Publishing online makes it feel, for me, that an idea I have, a thought, + anything I write will not be lost. +* Publishing makes my writing more worth it than just writing for myself. +* All the arguments mentioned in other personal wikis, blog articles about + personal wikis, research about personal knowledge management, blog articles + about blogging, etc., all apply here too. + +## Links + +* +* +* +* +* +* +* +* + +## Software choice + +Wikis that use relational databases or non-human-editable formats go against +my new ethics on web services: the most static possible, and the less risky +if [[mountain]] goes down, even if i do not set up anything for backups. + +Wikis that would be to annoying to use (not available on every device, not +available offline, …) would make me give up earlier, so the choice of +software is pretty crucial I want to keep up this practice. + +What follows is probably pretty harsh, biased, and not well thought-out enough, +and that's just how most of my software decisions go anyway :D + +Paper +: Basically a Zettelkasten. + I would not have access to it on the go, would not be able to search quickly, + and would not be able to publish easily, but I would definitely not have the + UX or modern tech issues I have with everything else. + +Vimwiki +: Does not use Markdown by default, but well integrated with Vim. I tried it + out for a bit and I actually do not use most of it, so I found out I was just + fine with regular Markdown. + +TiddlyWiki +: I had tried it for a fiction writing project, to describe the entire lore + a la Wikia. The UI is far from being uniform since everything is a plugin, + and it is pretty resource-heavy and requires Node.js; the software does not + easily get out of your way for you to just focus on writing. + +Org-mode +: I have yet to find something that cannot be structured using Org-mode, and + there are many Org-mode-based software out there, but having to learn Emacs + implies that I will very quickly give up on that. + +MediaWiki +: Definitely not text-file-based, can be pretty heavy to host compared to all + my sites. Promotes long-form writing when most personal wikis tend to have + shorter articles and more links, similarly to a Zettelkasten. + +[Weewiki](https://pbat.ch/wiki/weewiki/) +: Interesting, and it uses literate programming which I like, but it still + uses Org-mode and a binary format. + +[Obsidian](https://obsidian.md/) +: Proprietary, paid, and it looks like the UIs you get from Electron apps + so I expect it to be too resource-heavy. + +[Zettelkasten](http://zettelkasten.danielluedecke.de/) (the software, not the method) +: Uses Java and seems to use its own format, not just regular text files. + +[Neuron](https://neuron.zettel.page/) +: Interesting, but felt too complex at the time I started this wiki for what + I expected to need. + +[Dendron](https://wiki.dendron.so/) +: Hierarchical, while what got me more interested in a system such as the + Zettelkasten was the ability to spawn relationships between random unrelated + items (which would not be hierachically related at all). Also requires + Visual Studio Code, which means it will be resource-heavy. + +## Goals + +I am currently moving most of my private Vimwiki-based wiki into this public +wiki or into other places such as my notebooks, my archives, or other sites +on the cybrecluster. + +I want to try to use this wiki more as a tool for research than as yet another +place to publish things, and instead publish the completed research on my +French blog, as I did for the [Chinese date parsing](./cn-date.html) for +example. + +I am reading *How to Take Smart Notes* by Sönke Ahrens, a book that introduces +to the Zettelkasten, and am now considering adding a "reference" folder in this +wiki for various blog articles, books, etc. that I might stumble upon and find +interesting thoughts on, to reproduce the reference system mentioned in that +book. One blog post, for which I had written an incomplete two thousand word +draft, then gave up on it, could benefit from that. diff --git a/content/mountain.md b/content/mountain.md index a130171..6b0b006 100644 --- a/content/mountain.md +++ b/content/mountain.md @@ -13,9 +13,121 @@ the other sectors; Desert, Forest and Ice. I am considering hosting some other small services such as Gopher, Gemini, or Finger. I however want everything to only be purely static; if it does not -fit in a Git repo, it does not get into my server; Syncthing is the only +fit in a Git repo, it does not get into my server. Syncthing is the only exception. A WebDAV server is also hosted there, although it is only exposed to my LAN; I use it purely to make transfers between my IBM ThinkPads running old Windows versions and my Linux systems easier. + +I tried to write some setup docs when I first set it up, but of course I did +not write everything down, that would be too easy. + +## Base setup + +* Boot on an Alpine Linux ISO. +* Run `setup_alpine`. +* Set the keyboard to `fr-oss` (layout `fr`, then `fr-oss` variant) +* Set `mountain` as the hostname +* Set the disks up; `lvm` on all disks +* Reboot once prompted +* Uncomment the `community` repo in `/etc/apk/repositories` +* Recommended installation: `apk add --update vim figlet htop tmux pciutils zsh` +* Edit the `/etc/motd` to taste, including a `:r! figlet mountain` + +## WLAN + +### Manual setup + +* Scan: `iwlist wlan0 scanning` +* Set SSID to `bacon`: `iwlist wlan0 essid bacon` +* Create WPA config: `wpa_passphrase bacon password > /etc/wpa_supplicant/wpa_supplicant.conf` +* Start WPA supplicant: `wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf` +* Start in the background: `wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf` +* DHCP: `udhcpc -i wlan0` + +### Automated setup + +* Perform the above manual setup first. +* Ensure the following is in `/etc/network/interfaces`: + ``` + auto wlan0 + iface wlan0 inet dhcp + ``` +* Nuke the interface: `ifconfig wlan0 down` +* Start WPA supplicant manually: `rc-service wpa_supplicant start` +* If all goes well, `rc-update add wpa_supplicant boot` + +## Graphics + +* Add the graphics driver: `apk add xf86-video-nouveau` (might not be mandatory?) +* To set the screen resolution manually: `fbset -xres 1440 -yres 900 -match` + +> TODO: Keep the screen resolution set permanently + +## SSH + +* The base setup already includes a server + * Check it with `rc-status` + * Otherwise: + ``` + apk add openssh + rc-update add sshd default + rc-service sshd start + ``` +* After updating the config at `/etc/ssh/sshd_config`, restart with `rc-service sshd restart` +* Disable `PasswordAuthentication`, `ChallengeResponseAuthentication` and `PermitRootLogin` + +## Sudo + +* Install sudo: `apk add sudo` +* Add a group: `addgroup sudo` +* Add a user to the group: `adduser lucidiot sudo` +* Use `visudo` to uncomment the line that allows access to the `sudo` group + +## Nginx + +* Install nginx: `apk add nginx` +* Start on boot: `rc-update add nginx default` +* Start manually: `rc-service nginx start` + +## MariaDB + +* Install MariaDB: `apk add mariadb mariadb-client` +* Start on boot: `rc-update add mariadb default` +* Initial setup: `rc-service mariadb setup` +* Start manually: `rc-service mariadb start` +* Run the installation wizard: `mariadb-secure-installation` +* Keep passwordless access for root without UNIX socket so you can do `sudo mariadb` +* Disallow remote login +* Remove anonymous users and the `test` database +* Run `sudo mariadb` +* Run `INSTALL SONAME 'auth_ed25519';` + +## PHP + +* `apk add php7-fpm phpmyadmin` +* `rc-update add php-fpm7 default` +* Edit `/etc/php7/php-fpm.d/www.conf`: + ``` + listen = /run/php-fpm7/php.sock + ``` +* `rc-service php-fpm7 start` + +> TODO + +## Brainshit + +> TODO + +## Let's Encrypt + +> TODO + +## UFW + +> TODO + +## WebDAV + +> TODO diff --git a/content/psp.md b/content/psp.md new file mode 100644 index 0000000..a6cd6ad --- /dev/null +++ b/content/psp.md @@ -0,0 +1,67 @@ +--- +title: PlayStation Portable +--- + +## Games I like (non-exhaustive) + +* Little Big Planet +* Need for Speed Most Wanted 5-1-0 +* Grand Theft Auto: Vice City Stories +* Grand Theft Auto: Liberty City Stories +* Bejeweled 2 +* wipeOut Pure +* wipeOut Pulse + +## Projects + +A PSP is in that strange place in the middle of normal gaming and +retro-gaming; I count it in my retro-computing hobbies. + +When it came out, it was way ahead of its time in terms of hardware, +of graphics quality, or features. It was one of the first handheld consoles +to truly be aimed at the Internet. The PSP's internet features have sadly +been slowly degrading with the evolution of Internet standards and the lack +of interest from various hackers to play with those; most people are only +focused on PSP games. + +### Archival + +Preserve what remains of the PSP's official websites and documentation, +especially what can be relevant to the PSP's internet features. + +### CXML + +Reverse-engineer a format used in multiple files of the PSP, such as +Internet Radios, folder thumbnails, etc. + + + +### SensMe + +While archiving the websites, I re-discovered SensMe Channels. + +With some general knowledge I acquired about machine learning concepts at the +workplace, I want to try to understand how SensMe works by comparing it to +modern music classifiers and analyzing its data structures. + +### PSP Server + +There have been a few attempts at making PSP HTTP servers: + +* [PSP HTTPD](http://web.archive.org/web/20050827120434/http://www.microsith.com/psp-http/) +* [PPSPS](http://web.archive.org/web/20060703011157/http://www.pspproject.net:80/) + +Another interesting project is [Peldet][peldet], a PSP Telnet/IRC client. + +We want to have a new take at this and make a server out of a PSP. Not just +HTTP, anything goes; we just want to see a PSP in the wild being used as a +server. Some ideas: + +* An HTTP server that returns the GPS coordinates +* An HTTP server that returns a picture taken with the PSP's Go!Cam +* A remote job entry service; send some code and the PSP returns its result + +We might place a PSP running the Go!Cam service on a hill, as we had done +before with a Raspberry Pi. + +[peldet]: http://web.archive.org/web/20181215224438/http://localhost.geek.nz/telnet/ diff --git a/content/tank.md b/content/tank.md new file mode 100644 index 0000000..07917f7 --- /dev/null +++ b/content/tank.md @@ -0,0 +1,195 @@ +--- +title: tank +--- + +A Lenovo ThinkPad X201 Tablet. My first ever ThinkPad, a very useful tool for +my studies. It has been my daily driver, on and off, for over a year and a +half in total. I really like it when I compute on the go, especially on +trains or on mountains (not to be confused with [mountain](./mountain.html)). +I now try to bring it with me and use it wherever, just to add to the list on +this page. + +## Specifications + +* Product ID: 45N4955 +* Core i5-520UM +* Intel HD Graphics +* 12.1" 1280×800 (WXGA) TFT display +* Wacom Serial Penabled Pen +* 8GB PC3-8500 RAM +* SanDisk SSD PLUS 240GB 19136F805340 +* Ricoh 5-in-1 Multicard Reader + * I never knew it supported anything other than SD cards… + * TODO: Test with a Memory Stick +* Intel 10/100/1000 Ethernet +* Intel HD audio with CX20585 codec +* ThinkPad Modem (MDC-3.0, 56kbps HDA) +* 2 MiniPCI Express slots: + * Intel Centrino Advanced-N 6200 Wi-Fi card + * Qualcomm Gobi 2000 3G and GPS card, Verizon-locked +* ExpressCard/54 slot +* 2MP webcam +* UPEK Touchstrip TCRD4C fingerprint reader +* Broadcom BCM2046 Bluetooth Controller +* TPM 1.2 embedded security system +* HDAPS support +* UltraNav trackpoint +* Intel Active Management Technology 6.x + +## Places it went to + +Just taking it with me without doing anything does not count; I have to turn +it on and use it for a place to enter this list. This list is unordered. +I sometimes add some fun things I did in each place, when I remember them. + +* Grenoble + * My student room + * Daily driver for a year + * Helped set up [Carthage](cybrecluster/carthage.html) + * My first apartment + * At my best friend's place in Championnet + * On a hill near the Désert de l'Écureuil + * Maintenance on an autonomous webcam and weather station + * IGA (abandoned geography institute) + * Saw the Tour de France on a road down there while listening to the organizer's radio comms + * Institut Dolomieu (abandoned geology institute) + * Tried to draw some floorplans, and ate breakfast there + * Charmant Som (a summit) + * Listed QRZs received during a hamradio contest + * Answered random people's questions about the 6 meter-high antenna we deployed there + * La Coop + * [La Turbine](https://turbine.coop) +* Lille + * Lille-Flandres train station + * Gaston Berger high school + * Removed the Windows partition, making it my first Linux-only computer + * Solved riddles in law class using regexes + * Played games, wrote blog articles, learnt Python during classes + * Lille university + * IUT + * Pierant's room + * Liliad (library) + * Plugged into [a dead drop](https://deaddrops.com/db/?page=view&id=1108) + * On the stairs to the opera + * Walking around a neighborhood + * Got a few WEP passwords using wifite +* Wattrelos + * My great-aunt's house +* Douai + * At home + * Walking around the city center, breaking into WEP passwords using Kali-Linux + * "Le Prince" kebab restaurant + WEP password: `1122334455` + * F.P.'s place +* Brest + * My aunt's apartment + * Configured a router +* Le Folgoët + * My grandparents' house + * Watching movies +* Thionville + * My parents' home + * Daily driver for a few months + * Typed this list +* Paris + * Teklia's previous office +* Carcassonne + * My grandparents' house + * Finished a 4+ month-long group project alone in 2 days +* Trains + * Grenoble → Valence TGV + * Valence TGV → Paris-Lyon + * Grenoble → Lyon Perrache + * Lyon Part-Dieu → Paris-Lyon + * Grenoble → Paris-Lyon + * Paris-Lyon → Grenoble + * Douai → Lille Flandres + * Lille Flandres → Douai + * Worked on my first C# project, a coffee machine simulator + * Played with my Windows 98SE VM + * Rewrote my [French blog](./brainshit.html) + +## Alpine setup + +[wsinatra](https://lambdacreate.com) got me interested in Alpine, and I am +having issues with Ubuntu 20 on most computers with `tank` being the worst +affected, so I am looking into switching it to Alpine. This section has some +notes on setting it up with LVM on LUKS on a virtual machine before I really +switch to it; encryption really matters to me on this specific laptop because +I carry it everywhere. + +* +* + +1. Go through setup-alpine until the disk prompt, then `^C` +2. `apk add lvm2 cryptsetup parted haveged e2fsprogs syslinux` +3. `rc-service haveged start` +4. `parted -a optimal` + 1. `mklabel msdos` + 2. `mkpart primary ext4 0% 100M` + 3. `mkpart primary ext4 100M 100%` + 4. `set 1 boot on` + Use `print` to check. +5. `haveged -n 0 | dd of=/dev/sda2` +6. `cryptsetup luksFormat /dev/sda2` + TODO: try `cryptsetup -v -c serpent-xts-plain64 -s 512 --hash whirlpool --iter-time 5000 --use-random luksFormat /dev/sda2` +7. `cryptsetup luksOpen /dev/sda2 lvmcrypt` +8. `pvcreate /dev/mapper/lvmcrypt` +9. `vgcreate vg0 /dev/mapper/lvmcrypt` +10. `lvcreate -L 9G vg0 -n swap` +11. `lvcreate -l 100%FREE vg0 -n root` + TODO: Also add a separate volume for /home +12. `lvscan` to check +13. `mkfs.ext4 /dev/sda1` +14. `mkfs.ext4 /dev/vg0/root` +15. `mkswap /dev/vg0/swap` +16. `swapon /dev/vg0/swap` +17. `mount -t ext4 /dev/vg0/root /mnt/` +18. `mkdir -v /mnt/boot` +19. `mount -t ext4 /dev/sda1 /mnt/boot` +20. `setup-disk -m sys /mnt/` +21. Add `/dev/vg0/swap\tswap\tdefaults\t0 0` to `/mnt/etc/fstab` +22. Add `cryptsetup` and `keymap` to the `features` in `/mnt/etc/mkinitfs/mkinitfs.conf` +23. `mkinitfs -c /mnt/etc/mkinitfs/mkinitfs.conf -b /mnt/ $(ls /mnt/lib/modules/)` +24. `blkid -s UUID -o value /dev/sda2 > ~/uuid` +25. Set the proper UUID in `/mnt/etc/update-extlinux.conf`: + `default_kernel_opts="… cryptroot=UUID= cryptdm=lvmcrypt"` + Also check this: + ``` + modules=sd-mod,usb-storage,ext4,cryptsetup,keymap,cryptkey,kms,lvm + root=UUID= + ``` +26. `chroot /mnt/` +27. `update-extlinux` + May cause errors on `/boot`, ignore them +28. `exit` +29. `dd bs=440 count=1 conv=notrunc if=/mnt/usr/share/syslinux/mbr.bin of=/dev/sda` +30. `cd` +31. `umount /mnt/boot` +32. `swapoff /dev/vg0/swap` +33. `umount /mnt` +34. `vgchange -a n` +35. `cryptsetup luksClose lvmcrypt` +36. `reboot` +37. Enable the community repo in `/etc/apk/repositories` +38. `apk update` +39. `setup-xorg-base xfce4 xfce4-terminal lightdm-gtk-greeter xfce4-screensaver dbus-x11 sudo` +40. `apk add xf86-video-intel xf86-input-synaptics xf86-input-mouse xf86-input-keyboard setxkbmap elogind polkit-elogind gvfs-fuse gvfs-mtp fuse-openrc thunar-volman udisks2` +41. Update the Xorg config: + ``` + Section "InputClass" + Identifier "Keyboard Default" + MatchIsKeyboard "yes" + Option "XkbLayout" "fr" + Option "XkbVariant" "oss" + Option "XkbOptions" "compose:rctrl" + EndSection + ``` +42. `adduser -g lucidiot lucidiot` +43. `visudo` to allow `lucidiot` +44. `rc-service dbus start` +45. `rc-update add dbus` +46. `rc-service lightdm start` +47. Once everything works, `rc-update add lightdm` +48. `rc-service fuse start` +49. `rc-update add fuse`