diff options
-rw-r--r-- | content/about.md | 14 | ||||
-rw-r--r-- | content/book-reviews/relevant-search.md | 12 | ||||
-rw-r--r-- | content/book-reviews/xkcd-what-if.md | 8 | ||||
-rw-r--r-- | content/posts/2021-01-02-wordpress.fr.md | 16 | ||||
-rw-r--r-- | content/posts/2021-01-11-openring.fr.md | 10 | ||||
-rw-r--r-- | content/posts/2021-01-11-openring.md | 10 | ||||
-rw-r--r-- | content/posts/2021-02-08-naming.md | 6 | ||||
-rw-r--r-- | content/posts/2021-05-01-accessible-web.md | 18 | ||||
-rw-r--r-- | content/posts/2021-05-30-css-stylus.md | 4 | ||||
-rw-r--r-- | content/posts/2021-06-13-jq.md | 4 | ||||
-rw-r--r-- | content/posts/2021-06-21-ipwhl-update.md | 22 | ||||
-rw-r--r-- | content/posts/2021-07-03-decentral-contribution.md | 4 | ||||
-rw-r--r-- | content/projects/mastodon.md | 8 | ||||
-rw-r--r-- | content/rss.md | 10 | ||||
-rw-r--r-- | content/works.md | 10 | ||||
-rw-r--r-- | layouts/_default/comic.html | 2 |
16 files changed, 79 insertions, 79 deletions
diff --git a/content/about.md b/content/about.md index 2c4cf76..1fc1277 100644 --- a/content/about.md +++ b/content/about.md @@ -5,7 +5,7 @@ ref: about disable_feed: true --- -# Me +## Me ![I literally used this duck image for debugging](rubber-duck.png) @@ -23,18 +23,18 @@ I am Huy[^0], a Vietnamese undergraduate student in ICT[^1]. - [plain text email][plain] - [no Word document][no-word] or other proprietary format like RAR -## Works +### Works I write [free software][free-sw], but unfortunately not as a professional job. If you're an employer, you can find my [CV][cv] in PDF format. I am not available for hire at the moment, however. -## Donate +### Donate I receive donation on [liberapay][liberapay] and [patreon][patreon]. -# This blog +## This blog I write about: @@ -46,12 +46,12 @@ I write about: But it's primarily about technology in general. -## Correct mistakes +### Correct mistakes Any correction is appreciated, whether I state a wrong fact or make a grammar mistake. -## Copying +### Copying <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"> <img alt="Creative Commons License" style="border-width:0" @@ -67,7 +67,7 @@ This means you are free to share the posts and modify them, provided that you attribute properly, link to the original content, and state your changes. Additionally, you have to share those changes under the same license. -## Source +### Source The source code for generating this website can be found on [source hut][srht-blog]. diff --git a/content/book-reviews/relevant-search.md b/content/book-reviews/relevant-search.md index 23b7374..e46ac91 100644 --- a/content/book-reviews/relevant-search.md +++ b/content/book-reviews/relevant-search.md @@ -13,8 +13,8 @@ lang: en layout: books --- -# Summary -## The search relevance problem +## Summary +### The search relevance problem Given an increasingly large amount of information, it is infeasible for users to retrieve what they needed. Relevance scoring is therefore essential for @@ -33,7 +33,7 @@ Even the academic field that thoroughly study this problem, information retrieval is not a one-size-fit all solution. Relevance is strongly tied with the field and the application purpose. -## Tackling the problem +### Tackling the problem The book approaches the problem first by a top-down analysis of how a typical search engine works. It then shows how a search query is processed by the @@ -44,9 +44,9 @@ authors also approach the problem from business view: they note that interdiscipline collaboration is important in order to define and increase relevance. -# Comments +## Comments -## What I like +### What I like The book approaches the problem from various views: business view, algorithmic view, and practical view (giving examples). The book accentuates the diversity @@ -54,7 +54,7 @@ of problems and thereby encouraging readers to critically think of their own problems. While it suggests that search results should be influenced by sponsors, it also notes that without balance that will as well lead to failure. -## What I don't like +### What I don't like Its structure is somewhat unclear and flow to me. I think some chapters can be re-ordered so it's more logical. Also, I find weighing sponsors' priorities diff --git a/content/book-reviews/xkcd-what-if.md b/content/book-reviews/xkcd-what-if.md index 40f4f9b..1f93402 100644 --- a/content/book-reviews/xkcd-what-if.md +++ b/content/book-reviews/xkcd-what-if.md @@ -14,9 +14,9 @@ lang: en layout: books --- -# Summary -# Comments +## Summary +## Comments -## What I like +### What I like -## What I don't like +### What I don't like diff --git a/content/posts/2021-01-02-wordpress.fr.md b/content/posts/2021-01-02-wordpress.fr.md index 35df353..209355a 100644 --- a/content/posts/2021-01-02-wordpress.fr.md +++ b/content/posts/2021-01-02-wordpress.fr.md @@ -11,7 +11,7 @@ Pendant la semaine dernière, j'installe à peine ma propre instance de WordPress, parce que j'ai accès à un serveur et je peux utiliser un nom de domaine gratuit. Mais c'était quel horreur. <!--more--> -# Pourquoir écrire un [blog] +## Pourquoir écrire un [blog] J'écris pour le faire mieux (et pour me défier d'écrire des articles en langues à part anglais). Il y avait longtemps que je n'ai rien écrit que le code. Mais @@ -25,7 +25,7 @@ divertissement, et Mastodon a une limitation de caractères pour une publication. Les catégories et les tags sont aussi des aides pour mettre des publications en ordre. -# Choisir WordPress +## Choisir WordPress WordPress c'est une plate-forme populaire pour [blog]uer. Au début je pensais de choisir wordpress.com, car il est déjà hébergé. Mais j'ai découvert qu'il @@ -45,7 +45,7 @@ mettre quelque chose en panne cependant (et de plus, je suis paresseux ;)). Alors, c'est ça, j'utilise Apache, ce n'est pas une mauvaise chose, et j'utilise nginx comme proxy inverse. Ça a marché. -# Utiliser Docker +## Utiliser Docker J'ai aussi essayé docker. Je me demandais pourquoi je n'avais pas pensé à cette solution plus tôt. J'ai récemment utilisé docker très fréquemment, par exemple @@ -58,7 +58,7 @@ on peut être sûr que ça marche. Et ça marche merveilleusement. -# Redirection de port +## Redirection de port Ce n'était pas un problème que WordPress a créé, c'était ma faute, mais comme la faute est aussi une leçon, je la raconte quand même. @@ -67,7 +67,7 @@ Pour ne pas faire la même faute à l'avenir : il faut lier les fichiers configs dans `/etc/nginx/sites-available/` à `/etc/nginx/sites-enabled/` avec des paths absolus, sinon le lien serait cassé et ne marcherait pas. -# Changer le nom casse les liens +## Changer le nom casse les liens WordPress utilise apparemment des liens absolus (`example.com/[blog]/quelque-chose`) au lieu des liens relatifs @@ -76,7 +76,7 @@ ou le nom de domaine (qui arrivera sûrement, car les noms de domaine gratuits expireront tôt ou tard). Je l'ai découvert quand je changeais d'IP de l'hébergeur au nom de domaine. -# Des expériences déçues +## Des expériences déçues WordPress n'est pas la chose pour moi. Il contient trop de drag-and-drop pour écrire un post que je trouve difficile à utiliser. Il contient aussi beaucoup @@ -84,7 +84,7 @@ de widgets que je n'utilise jamais et qui prend trop de temps à charger. Étant résultat, je n'ai pas envie d'y écrire. -# Write.as +## Write.as Et puis quelqu'un sur Mastodon m'a fait savoir de WriteAs. Ce service utilise Markdown pour rendre les posts, et comme Markdown est si facile à @@ -94,7 +94,7 @@ utilise Markdown pour rendre les posts, et comme Markdown est si facile à J'ai hébergé une instance moi-même, et il marchait exactement comme j'en ai attendu. -# Mise à jour +## Mise à jour J'ai essayé [jekyll][jekyll], et c'est merveilleux. diff --git a/content/posts/2021-01-11-openring.fr.md b/content/posts/2021-01-11-openring.fr.md index 9c2bde8..7a9508f 100644 --- a/content/posts/2021-01-11-openring.fr.md +++ b/content/posts/2021-01-11-openring.fr.md @@ -18,12 +18,12 @@ dans mon blog. Ce post va vous apprendre comment l'ajouter à votre blog. -# Installer openring +## Installer openring Je ne suis pas sûr qu'il y ait un paquet precompilé pour openring, donc on va l'installer de la source. -## Installer des dépendances +### Installer des dépendances Openring dépends de golang. Quand ça marche avec go1.14, la version la plus récente sur le dépôt de mon distro Tumbleweed, mais je recommande installer la @@ -31,7 +31,7 @@ plus récente sur [golang]. Vous pouvez lire l'instruction de [golang]. -## Compiler openring de la source +### Compiler openring de la source D'abord, clonez le dépôt: @@ -46,7 +46,7 @@ go build -o openring sudo cp openring /usr/local/bin/ ``` -# Customiser l'apparence +## Customiser l'apparence Selon le README de openring : @@ -98,7 +98,7 @@ partagé avec un licence MIT), avec des modifications : } ``` -# Chose à faire? +## Chose à faire? Je génère le flux manuellement quand je mis mon blog à jour en ce moment. C'est probablement pas une bonne chose si je veux que le webring soit à jour diff --git a/content/posts/2021-01-11-openring.md b/content/posts/2021-01-11-openring.md index b00e66b..993ea5c 100644 --- a/content/posts/2021-01-11-openring.md +++ b/content/posts/2021-01-11-openring.md @@ -17,18 +17,18 @@ to endorse authors we want to support and share cool things we read to our audie In this blog, I will write a tutorial to use this with jekyll. -# Install openring +## Install openring I am not aware of any prebuilt packages for openring, so let's build it from source. -## Install dependencies +### Install dependencies Openring depends on golang. This works on go1.14, the latest version on Tumbleweed repository, but I recommend installing the latest version from [golang]. You can refer to [golang]'s installation instruction for details. -## Build from source +### Build from source Firstly, clone the repository: @@ -43,7 +43,7 @@ go build -o openring sudo cp openring /usr/local/bin/ ``` -# Customize looks +## Customize looks From openring's README: @@ -91,7 +91,7 @@ with a little modification: } ``` -# Future works? +## Future works? Currently, I generate the feed manually when I update my blog. This probably is not good enough if I want the webring to be updated diff --git a/content/posts/2021-02-08-naming.md b/content/posts/2021-02-08-naming.md index d7f9175..2d35199 100644 --- a/content/posts/2021-02-08-naming.md +++ b/content/posts/2021-02-08-naming.md @@ -10,7 +10,7 @@ title: "Enough for first name/last name BS" I keep seeing registration where I have to input my "First name" and my "Last name". What's the point? Isn't the user's full name just enough, if it's even needed? -# Why you should avoid that +## Why you should avoid that It's blatantly ignorant! @@ -30,12 +30,12 @@ but when full name is required (e.g. my school G-Suite account or for IELTS regi it is problematic how they represent my name. A few lecturers whom I'm not close with keep referring to me by my middle name due to how Google displays my name. -# Who do this? +## Who do this? - Many web services, e.g. Facebook, Google, LinkedIn - Language certification tests: IELTS, TCF, DELF/DALF, ... -# Proposed alternative +## Proposed alternative - Just ask for full name. Governments do that and they're fine. - Ask how users want to be referred as, don't assume. diff --git a/content/posts/2021-05-01-accessible-web.md b/content/posts/2021-05-01-accessible-web.md index 8d7f584..a1489ae 100644 --- a/content/posts/2021-05-01-accessible-web.md +++ b/content/posts/2021-05-01-accessible-web.md @@ -11,7 +11,7 @@ as blindness or deafness. In this post I mainly discuss the wider sense, which also includes the narrower sense, but as I don't usually use technologies specifically for them, I can't affirm how effective my approach can be. -# Why is it important? +## Why is it important? If you are a content creator, certainly you would want your content to reach as many people as possible. From an ethical point of view, it is unfair to people @@ -30,9 +30,9 @@ These people also benefit from it: I have personally experienced difficulties in all the above five cases. -# How to do it +## How to do it -## Semantic HTML +### Semantic HTML Semantic HTML is HTML elements used with its intended purpose. Don't use `<div>` for paragraphs. @@ -43,9 +43,9 @@ That helps both screen readers and text browsers to render contents correctly. Semantic HTML also helps SEO, which makes your content more findable[^1]. -## Less is more +### Less is more -### Less unnecessary media +#### Less unnecessary media Can this logo be done as a simple vector image instead of a full HD 8K png?[^2] Can it be simply just text?[^3] @@ -60,7 +60,7 @@ WP themes promote this) Of course, images and videos have their place, just don't spam it and keep it mind that it prevents someone from loading your website. -### Less JavaScript +#### Less JavaScript Making your website dependent on JS is a big no-no. There is a reason "JS bad" is a thing. @@ -70,7 +70,7 @@ support it. There are a larger number of people who intentionally block JS, because of privacy concerns -- JS can do nasty things fyi. Nonstandard JS API not supported by browser is even a more commonplace. -### Less options in the navigation bar +#### Less options in the navigation bar Too much navigation is bad navigation. I have a terrible experience (two, actually) using only my keyboard for @@ -88,7 +88,7 @@ But at least Google in text browser is not that bad. GitHub is much worse: It has more than two pages for just navigation! Compare that to SourceHut, on which the main content already appears in the first page. -## Don't put ads! +### Don't put ads! Privacy concerns aside, ads is terrible for accessibility: @@ -102,7 +102,7 @@ using adblockers, but also people who don't use JS (see above). I would recommend everyone to put such websites on block list so they won't waste any more bandwith with them. -# Further reading +## Further reading There are too much bad practices nowadays I can't cover within a post. I found these websites helpful to learn to avoid these bad practices: diff --git a/content/posts/2021-05-30-css-stylus.md b/content/posts/2021-05-30-css-stylus.md index b5206ae..81a3839 100644 --- a/content/posts/2021-05-30-css-stylus.md +++ b/content/posts/2021-05-30-css-stylus.md @@ -5,7 +5,7 @@ categories: [blog] tags: [recommendation, css, custom, stylus, "browser addon"] --- -# No more theme-switcher +## No more theme-switcher So, I dropped the theme switcher to `auto` theme, which means it will switch theme automagically according to your system setting. @@ -24,7 +24,7 @@ privacy policy: > Your questionable browsing history should remain between you and the NSA. > Stylus collects nothing. Period. -# Applying to my website +## Applying to my website I've customized my theme to look a bit like my vim theme, badwolf, but with a lighter background: diff --git a/content/posts/2021-06-13-jq.md b/content/posts/2021-06-13-jq.md index 49d2148..2d416cf 100644 --- a/content/posts/2021-06-13-jq.md +++ b/content/posts/2021-06-13-jq.md @@ -9,7 +9,7 @@ So lately I've been using `jq` quite a bit. It is a CLI JSON processor that makes your life easier if you have to deal with a lot of JSON. Here I'm going to give two examples of how it's used. -# Search response +## Search response I've been dealing with JSON from Elasticsearch API[^0], but as they would not release their documents under a free license, I will take an example from @@ -133,7 +133,7 @@ taken. There might be the option to write that in the search query DSL, which also reduces the data transferred, but I bet this is much easier to write. -# Wallpaper +## Wallpaper I use `feh` for setting wallpaper, which can take an image from the internet. Previously, I used a static list that I collected myself, but I recently diff --git a/content/posts/2021-06-21-ipwhl-update.md b/content/posts/2021-06-21-ipwhl-update.md index fc8d3f2..a4af78f 100644 --- a/content/posts/2021-06-21-ipwhl-update.md +++ b/content/posts/2021-06-21-ipwhl-update.md @@ -15,7 +15,7 @@ introduction. [ipwhl-annonce]: https://lists.sr.ht/~cnx/ipwhl-announce/%3CCC8HUR1YAFDL.YHJBG1SM70WE%40nix%3E [ipwhl]: https://sr.ht/~cnx/ipwhl/ -# Les Cheeses +## Les Cheeses In short, IPWHL is a PyPI alternative (though, initially the package database would be collected from there). What it provides: @@ -24,7 +24,7 @@ would be collected from there). What it provides: - Security - Reproducibility -## Decentralization +### Decentralization IPWHL uses [IPFS][ipfs] for storing packages. This provides several advantages: @@ -38,7 +38,7 @@ to use our cheeses. [ipfs]: https://ipfs.io/ -## Security +### Security No single point of failure is a security feature itself, but besides that, IPWHL also is more secure because: @@ -46,18 +46,18 @@ IPWHL also is more secure because: - We have CIDs and we cryptographically sign the packages thanks to merkle dag - We avoid packaging packages that are typosquat attacks -## Reproducibility +### Reproducibility IPWHL has a pre-resolved dependency and its packaging strategy is similar to NixOS, a distro known for its reproducibility. The installer can uses the CID and the package name to reproduce exactly the package. -# Current problems +## Current problems Despite the theoretical advantages, IPWHL is a new project and thus has several problems -## Lack of packages +### Lack of packages A distribution doesn't mean anything without packages, and IPWHL is indeed in need of them. @@ -69,7 +69,7 @@ sole maintainers, keep up with too many packages and make sure they're all up-to-date. Therefore, please, come help us if you're interested in this project. -## Dependency Hell +### Dependency Hell Maybe you've heard of `npm install is-even` meme, if you hang out in some programming meme groups. It represents an underlying problem of having too @@ -124,7 +124,7 @@ Or, in some cases, such as for `tox`, it can even be like this: </figcaption> </figure> -# How to help +## How to help <picture> <source srcset="/images/begging-for-help.webp" type="image/webp"> @@ -137,13 +137,13 @@ To start, please take a look at [the manual page][ipwhl-man] [ipwhl-man]: https://man.sr.ht/~cnx/ipwhl/guides/contrib.md -## Help declaring packages information +### Help declaring packages information Currently, the packages with high priority is listed here: https://todo.sr.ht/~cnx/ipwhl/5 -## Write docs +### Write docs User and contribution manuals are not really clearly written, and some information are scattered across the [mailing lists][lists]. You can help by @@ -151,7 +151,7 @@ compile them into a comprehensive structured manual. [lists]: https://sr.ht/~cnx/ipwhl/lists -## Help resolving dependency conflicts +### Help resolving dependency conflicts > *Maybe the real cheeses are the packages we helped along the way* diff --git a/content/posts/2021-07-03-decentral-contribution.md b/content/posts/2021-07-03-decentral-contribution.md index b3cade5..d747afd 100644 --- a/content/posts/2021-07-03-decentral-contribution.md +++ b/content/posts/2021-07-03-decentral-contribution.md @@ -23,7 +23,7 @@ How ironic, because *free software developers* use a *non-free service* for development, which is a *centralized* service that wraps around a *decentralized* protocol. -# Decentralized hosting +## Decentralized hosting Let's ignore that thread for a moment. If you want to avoid GitHub (and you should), there are two solutions: @@ -60,7 +60,7 @@ git and is what happens behind the scene in GitHub pull request (except a GitHub PR pull directly to maintainer's remote and the remotes must be hosted by them). -# Mailing list workflow +## Mailing list workflow It is reasonable to assume everyone has an email. After all, most services require emails for registration, and more importantly, to `git commit` you have diff --git a/content/projects/mastodon.md b/content/projects/mastodon.md index 180682b..bcdf775 100644 --- a/content/projects/mastodon.md +++ b/content/projects/mastodon.md @@ -21,7 +21,7 @@ tags: ["social network", "federation", "fediverse"] [fedi]: https://en.wikipedia.org/wiki/Fediverse -# Features +## Features - Content feeds: **home** (posts from accounts you follow), **local** (public posts from accounts on the same instance), and **federated** (public posts @@ -39,7 +39,7 @@ tags: ["social network", "federation", "fediverse"] - Accounts can be exported and migrated to another server (posts are not migrated, however) -# Forks +## Forks Mastodon has a few forks, the most two popular ones are [Mastodon Glitch Edition][gs] and [hometown][ht], which provides some extra features. @@ -47,7 +47,7 @@ Edition][gs] and [hometown][ht], which provides some extra features. [gs]: https://github.com/glitch-soc/mastodon [ht]: https://github.com/hometown-fork/hometown/ -# Personal opinions +## Personal opinions Overall, Mastodon gives a nice and intuitive user interface. It also provides quite flexible tools for moderating your timeline. However, this can be abused @@ -59,7 +59,7 @@ Mastodon doesn't support markups (the [glitch-soc][gs] fork does, embedding links into the text. For this reason, I prefer [Pleroma][pleroma]. -# See also +## See also - Guides: - [Kev's guide][kevq] diff --git a/content/rss.md b/content/rss.md index 398ce91..1302013 100644 --- a/content/rss.md +++ b/content/rss.md @@ -8,35 +8,35 @@ disable_feed: true If your RSS Feed Reader cannot get the feed from the link, you can find the feeds here: -# The entire page +## The entire page - [English](/index.xml) - [French](/fr/index.xml) - [German](/de/index.xml) - [Vietnamese](/vi/index.xml) -# Posts +## Posts - [English](/posts/index.xml) - [French](/fr/posts/index.xml) - [German](/de/posts/index.xml) - [Vietnamese](/vi/posts/index.xml) -# TIL (Today I learned) +## TIL (Today I learned) - [English](/til/index.xml) - [French](/fr/til/index.xml) - [German](/de/til/index.xml) - [Vietnamese](/vi/til/index.xml) -# Book reviews +## Book reviews - [English](/book-reviews/index.xml) - [French](/fr/book-reviews/index.xml) - [German](/de/book-reviews/index.xml) - [Vietnamese](/vi/book-reviews/index.xml) -# Suspicious permission +## Suspicious permission - [English](/sus-perm/index.xml) - [French](/fr/sus-perm/index.xml) diff --git a/content/works.md b/content/works.md index 738abea..f6b3512 100644 --- a/content/works.md +++ b/content/works.md @@ -14,16 +14,16 @@ well. You can look at my projects on: See my CV in PDF format [here][cv]. -# Education +## Education - Bachelor: University of Science and Technology of Hanoi, 2018-2021 -# Free Software work +## Free Software work I support free software by writing it and contribute to some projects within my ability. Below are some projects I've participated in development. -## My own +### My own - [Discord meme bot](/projects/discord-meme-bot/), a meme bot for Discord - [Acanban](/projects/acanban/), a project management system @@ -33,7 +33,7 @@ ability. Below are some projects I've participated in development. - [GenWord][genword] a word generator on Android, alternative to [its JS equivalent][gen] -## Contribution +### Contribution - [IPWHL (floating cheeses)](/projects/ipwhl/), a Python binary distributions - [Palace](/projects/palace/), a 3D audio library @@ -42,7 +42,7 @@ ability. Below are some projects I've participated in development. - A [small feature][cras-patch] in [cras][cras], an anti-procrastination TODO list -### Super short contribution +#### Super short contribution - [Nine-line PR][alt-client] for a software listing - [Three-line PR][site-envs] for envs.net website diff --git a/layouts/_default/comic.html b/layouts/_default/comic.html index edc574b..d13b76e 100644 --- a/layouts/_default/comic.html +++ b/layouts/_default/comic.html @@ -21,7 +21,7 @@ <img title="{{ .Params.TitleText }}" alt={{ readFile (delimit (slice "/static/comics/" .Params.ComicId "/transcript.txt") "")}} src="/comics/{{ .Params.ComicId }}/{{ .Params.ComicTitle }}.png" - srcset="/comics/{{ .Params.ComicId }}/{{ .Params.ComicTitle }}_full.png 5x" + srcset="/comics/{{ .Params.ComicId }}/{{ .Params.ComicTitle }}_full.png 2x" > {{ partial "comicNav.html" . }} {{ .Content }} |