about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--config.toml42
-rw-r--r--content/_index.fr.md3
-rw-r--r--content/_index.md4
-rw-r--r--content/about.fr.md87
-rw-r--r--content/about.md105
-rw-r--r--content/about/rubber-duck.pngbin0 -> 44518 bytes
-rw-r--r--content/contact.fr.md36
-rw-r--r--content/contact.md47
-rw-r--r--content/social.fr.md36
-rw-r--r--content/social.md32
-rw-r--r--content/works.md106
-rw-r--r--content/works/axuy.pngbin0 -> 2694045 bytes
-rw-r--r--content/works/wikt-cli.pngbin0 -> 535450 bytes
13 files changed, 209 insertions, 289 deletions
diff --git a/config.toml b/config.toml
index 5455a2b..7a4626d 100644
--- a/config.toml
+++ b/config.toml
@@ -24,23 +24,11 @@ name = "À propos"
 url = "/about/"
 weight = 1
 
-[[language.fr.menu.main]]
-identifier = "contact"
-name = "Contacter"
-url = "/contact/"
-weight = 2
-
-[[languages.fr.menu.main]]
-identifier = "tags"
-name = "Étiquettes"
-url = "/tags/"
-weight = 9
-
-[[languages.fr.menu.main]]
-identifier = "archive"
-name = "Archive"
-url = "/posts/"
-weight = 10
+[[menu.main]]
+identifier = "works"
+name = "Travail"
+url = "/works/"
+weight = 5
 
 [[languages.fr.menu.main]]
 name = "RSS"
@@ -56,16 +44,10 @@ url = "/about/"
 weight = 1
 
 [[menu.main]]
-identifier = "contact"
-name = "Contact"
-url = "/contact/"
-weight = 2
-
-[[menu.main]]
-identifier = "tags"
-name = "Tags"
-url = "/tags/"
-weight = 9
+identifier = "works"
+name = "Works"
+url = "/works/"
+weight = 5
 
 [[menu.main]]
 identifier = "conlang"
@@ -74,12 +56,6 @@ url = "/conlang/"
 weight = 10
 
 [[menu.main]]
-name = "Archive"
-identifier = "archive"
-url = "/posts/"
-weight = 10
-
-[[menu.main]]
 name = "RSS"
 identifier = "rss"
 url = "/rss/"
diff --git a/content/_index.fr.md b/content/_index.fr.md
index a7f431b..9d2790c 100644
--- a/content/_index.fr.md
+++ b/content/_index.fr.md
@@ -1 +1,4 @@
+---
+title: Index
+---
 Voyez les autres sections de ma site
diff --git a/content/_index.md b/content/_index.md
index 82e0d67..abcc872 100644
--- a/content/_index.md
+++ b/content/_index.md
@@ -1 +1,5 @@
+---
+title: Index
+---
+
 Take a look at other sections of my site:
diff --git a/content/about.fr.md b/content/about.fr.md
index 0b311b3..1a4150c 100644
--- a/content/about.fr.md
+++ b/content/about.fr.md
@@ -3,29 +3,37 @@ title: À propos
 language: fr
 languageKey: about
 disable_feed: true
-menu:
-  about:
-    identifier: about
-    name: About
-    url: /about/
-    weight: 1
-  social:
-    identifier: social
-    parent: about
-    name: Social media
-    url: /about/social/
-    weight: 2
-  works:
-    identifier: works
-    parent: about
-    name: Works
-    url: /about/works/
-    weight: 3
 ---
 
-Je m'appelle Huy. Pour me mentionner utilisez "il".  Je viens de Vietnam et je
-parle la plupart de temps vietnamien et anglais.  Je parle français et allemand
-terriblement, mais c'est l'effort qui compte.
+# Moi
+
+Je m'appelle Huy[^0].  Je suis étudiant vietnamien en informatique.
+
+- pronom: il
+- langues: vienamien, anglais, français, allemand -- le compétence diminue en
+    ordre
+- pour me contacter:
+  - ~~email~~ couriel: [huyngo@disroot.org][mail]
+  - matrix: [huyngo@envs.net][envs-mx] or [huyngo@opensuse.org][opensuse-mx]
+  - mastodon: [huy_ngo@fosstodon.org][fosstodon]
+  - pleroma: [huyngo@envs.net][pleroma]
+- étiquette:
+  - [couriel en texte pur][plain]
+  - [n'envoyez jamais de document Word][no-word] ou d'autres format propriétaire
+
+## Travail
+
+J'écris des [logiciels libres][free-sw] ([traduction française][free-sw-fr]),
+mais malheureusement pas comme boulot.
+
+Si vous êtes un employeur/une employeuse, mon [CV][cv] est disponible en PDF (en
+anglais), mais je ne suis pas disponible pour le moment.
+
+## Donation
+
+Je reçois la donation de [liberapay][liberapay] et [patreon][patreon].
+
+# Ce blog
 
 J'écris sur :
 
@@ -37,11 +45,11 @@ J'écris sur :
 
 Mais le sujet principal c'est la technologie.
 
-# Corriger les erreurs
+## Corriger les erreurs
 
 J'apprecie la correction d'erreur factuelle et grammaire.
 
-# Copie
+## Copie
 
 <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img
 alt="Licence Creative Commons" style="border-width:0"
@@ -57,18 +65,33 @@ proprement, lie le post original et la licence et indiquer si des modifications
 ont été effectuées.  En plus, il faut partager ces modifications avec la même
 licence.
 
-# Donation
-
-Je reçois la donation de [liberapay/huy.ngo][liberapay] et [patreon/\_\_huy_ngo\_\_][patreon].
-
-# Source
+## Source
 
 Le code source pour générer ce website est sur [source hut][srht-blog].
 
+[free-sw]: https://www.gnu.org/philosophy/free-sw.html
+[free-sw-fr]: https://www.gnu.org/philosophy/free-sw.fr.html
+
+<!-- donations -->
 [cv]: https://raw.githubusercontent.com/Huy-Ngo/my-cv/master/huy-cv.pdf
-[jekyll]: https://github.com/jekyll/jekyll
-[minima]: https://github.com/jekyll/minima
-[openring]: https://git.sr.ht/~sircmpwn/openring
-[srht-blog]: https://git.sr.ht/~huyngo/blog
 [liberapay]: https://liberapay.com/huy.ngo/
 [patreon]: https://www.patreon.com/__huy_ngo__
+
+<!-- blog -->
+[openring]: https://git.sr.ht/~sircmpwn/openring
+[srht-blog]: https://git.sr.ht/~huyngo/blog
+
+<!-- contact -->
+[mail]: mailto:huyngo+blog@disroot.org
+[envs-mx]: https://matrix.to/#/@huyngo:envs.net
+[opensuse-mx]: https://matrix.to/#/@huyngo:opensuse.org
+[fosstodon]: https://fosstodon.org/@huy_ngo
+[pleroma]: https://pleroma.envs.net/huyngo
+
+[plain]: https://useplaintext.email
+[no-word]: https://www.gnu.org/philosophy/no-word-attachments.html
+
+[^0]: Je m'appelle Huy, alors ne m'appelle pas par mon nom de familie
+[^2]: [Vietnamese Ministry of Health](https://ncov.moh.gov.vn/dong-thoi-gian),
+  en vietnamien
+[^3]: Pas littéramment
diff --git a/content/about.md b/content/about.md
index 0f8922a..94c9ec2 100644
--- a/content/about.md
+++ b/content/about.md
@@ -3,30 +3,38 @@ title: About
 language: en
 ref: about
 disable_feed: true
-menu:
-  about:
-    identifier: about
-    name: About
-    url: /about/
-    weight: 1
-  social:
-    identifier: social
-    parent: about
-    name: Social media
-    url: /about/social/
-    weight: 2
-  works:
-    identifier: works
-    parent: about
-    name: Works
-    url: /about/works/
-    weight: 3
 ---
 
-I am Huy. Use the pronoun "he" to refer to me in third person.  I'm from
-Vietnam and besides Vietnamese and English; I also speak some French and
-German.  I write mainly in English, since that's the one I'm most comfortable
-with, but I will translate some of my posts to other languages for practice.
+# Me
+
+![I literally used this duck image for debugging](rubber-duck.png)
+
+I am Huy[^0], a Vietnamese undergraduate student in ICT[^1].
+
+- pronoun: he
+- languages: Vietnamese, English, French, German, with proficiency and
+  fluency decrementally sorted
+- Contacts:
+  - Email: [huyngo@disroot.org][mail]
+  - Matrix: [huyngo@envs.net][envs-mx] or [huyngo@opensuse.org][opensuse-mx]
+  - Mastodon: [huy_ngo@fosstodon.org][fosstodon]
+  - Pleroma: [huyngo@envs.net][pleroma]
+- etiquette:
+  - [plain text email][plain]
+  - [no Word document][no-word] or other proprietary format like RAR
+
+## 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
+
+I receive donation on [liberapay][liberapay] and [patreon][patreon].
+
+# This blog
 
 I write about:
 
@@ -38,11 +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.
+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"
@@ -58,18 +67,48 @@ 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.
 
-# Donate
+## Source
+
+The source code for generating this website can be found on
+[source hut][srht-blog].
 
-I receive donate on [liberapay/huy.ngo][liberapay] and [patreon/\_\_huy_ngo\_\_][patreon].
+[free-sw]: https://www.gnu.org/philosophy/free-sw.html
 
-# Source
+<!-- projects -->
 
-The source code for generating this website can be found on [source hut][srht-blog].
+[github]: https://github.com/Huy-Ngo
+[acanban]: https://github.com/Huy-Ngo/acanban
+[minigh]: https://github.com/Huy-Ngo/MiniGH
+[meme-bot]: https://github.com/Huy-Ngo/discord-meme-bot
+[wikt]: https://github.com/Huy-Ngo/wikt-cli
+[cov]: https://github.com/Huy-Ngo/cov-news
 
+[cnx]: https://cnx.srht.site/
+[axuy]: https://sr.ht/~cnx/axuy/
+[ipwhl]: https://sr.ht/~cnx/ipwhl/
+[palace]: https://sr.ht/~cnx/palace/
+
+<!-- donations -->
 [cv]: https://raw.githubusercontent.com/Huy-Ngo/my-cv/master/huy-cv.pdf
-[jekyll]: https://github.com/jekyll/jekyll
-[minima]: https://github.com/jekyll/minima
-[openring]: https://git.sr.ht/~sircmpwn/openring
-[srht-blog]: https://git.sr.ht/~huyngo/blog
 [liberapay]: https://liberapay.com/huy.ngo/
 [patreon]: https://www.patreon.com/__huy_ngo__
+
+<!-- blog -->
+[openring]: https://git.sr.ht/~sircmpwn/openring
+[srht-blog]: https://git.sr.ht/~huyngo/blog
+
+<!-- contact -->
+[mail]: mailto:huyngo+blog@disroot.org
+[envs-mx]: https://matrix.to/#/@huyngo:envs.net
+[opensuse-mx]: https://matrix.to/#/@huyngo:opensuse.org
+[fosstodon]: https://fosstodon.org/@huy_ngo
+[pleroma]: https://pleroma.envs.net/huyngo
+
+[plain]: https://useplaintext.email
+[no-word]: https://www.gnu.org/philosophy/no-word-attachments.html
+
+[^0]: Yes call me Huy.  Don't call me by family name, even in formal context.
+[^1]: Information and Communication Technology
+[^2]: [Vietnamese Ministry of Health](https://ncov.moh.gov.vn/dong-thoi-gian),
+  in Vietnamese
+[^3]: Not literally half
diff --git a/content/about/rubber-duck.png b/content/about/rubber-duck.png
new file mode 100644
index 0000000..e354034
--- /dev/null
+++ b/content/about/rubber-duck.png
Binary files differdiff --git a/content/contact.fr.md b/content/contact.fr.md
deleted file mode 100644
index c6dec52..0000000
--- a/content/contact.fr.md
+++ /dev/null
@@ -1,36 +0,0 @@
----
-title: Contact
-language: en
-translationKey: contact
-disable_feed: true
----
-
-Si vous ne me connaissez pas, ne me contactez que par [courriel][email].
-
-# Langue
-
-- Je préfère anglais, mais une autre langue est ok si elle est pertinente
-- Je m'appelle Huy, pas Ngo. Les Vietnamiens n'utilisent pas le nom de famille
-  pour s'appeler.
-- Pas de « monsieur ».
-
-# Pièces jointe
-
-- [Ne m'envoyez pas de documents Word][no-word], et ne m'obigez pas à l'utiliser.
-- Similairement, ne m'envoyez pas de RAR. Peut-être, c'est mieux que l'on
-  n'envoie pas du tout d'archives.
-- Ne m'envoyez pas de vidéos. Si c'est nécessaire, envoyez un lien pour le vidéo.
-
-# Texte pur
-
-Je ne lirais pas de courriels en HTML, comme ils sont problématiques.
-Lisez [ce page][useplaintext] (en anglais), qui explique comment écrire des
-courriels en texte pur (et aussi pourquoi ceux en HTML sont problématiques).
-
-[disroot]: mailto:huyngo@disroot.org
-[email]: mailto:huyngo@disroot.org
-[fosstodon]: https://fosstodon.org/@huy_ngo
-[gmail]: mailto:duchuy29092000@gmail.com
-[matrix]: https://matrix.to/#/@xarvos:matrix.org
-[no-word]: https://www.gnu.org/philosophy/no-word-attachments.html
-[useplaintext]: https://useplaintext.email
diff --git a/content/contact.md b/content/contact.md
deleted file mode 100644
index 9b78d51..0000000
--- a/content/contact.md
+++ /dev/null
@@ -1,47 +0,0 @@
----
-title: Contact
-language: en
-translationKey: contact
-disable_feed: true
----
-
-If you don't know me, it's probably best to contact me via [email][email].
-
-# Language
-
-- I prefer English as my working language, but feel free to use any other if it's relevant.
-- Call me Huy, not Ngo. Vietnamese people don't refer to each other by family name.
-- No need for Mr., just the name is fine.
-
-# Attachment
-
-- [Don't send Word documents][no-word], and don't tell me to use it.
-- Similarly, don't send RAR archive. Maybe avoid sending archive in general.
-- Avoid sending videos (send a PeerTube link instead for example),
-  executables (send link to source code instead with instruction to build).
-
-# Send in plain text
-
-I probably would not read HTML emails, which are problematic.
-Read [this page][useplaintext] to see how to write mail in plain text file.
-
-## What if I want to include an image?
-
-Attach it as a file and refer to that. Maybe avoid images as a whole
-
-## Links are usually long and I'm afraid it can be disruptive
-
-You can use reference, like this:
-
-    Please read the post [1] for more information.
-    ...
-
-    [1]: https://example.org/this-link-is-long-and-disruptive
-
-[disroot]: mailto:huyngo@disroot.org
-[email]: mailto:huyngo@disroot.org
-[fosstodon]: https://fosstodon.org/@huy_ngo
-[gmail]: mailto:duchuy29092000@gmail.com
-[matrix]: https://matrix.to/#/@xarvos:matrix.org
-[no-word]: https://www.gnu.org/philosophy/no-word-attachments.html
-[useplaintext]: https://useplaintext.email
diff --git a/content/social.fr.md b/content/social.fr.md
deleted file mode 100644
index aa6aa10..0000000
--- a/content/social.fr.md
+++ /dev/null
@@ -1,36 +0,0 @@
----
-title: Média Social
-language: fr
-translationKey: social
-slug: /about/social/
-disable_feed: true
-menu:
-  about:
-    name: About
-    url: /about/
-    weight: 1
-  social:
-    parent: about
-    name: Social media
-    url: /about/social/
-    weight: 2
-  works:
-    parent: about
-    name: Works
-    url: /about/works/
-    weight: 3
----
-
-J'ai abandonné Facebook et les autres.
-Je suis exclusivement sur les médias sociaux fédérés, en particulier :
-
-- [Mastodon]: Pour les posts cours (mais 500 mots c'est plus long que ce que Twitter permit)
-- [PixelFed]: La version fédérée d'Instagram, où je publie des mèmes
-- [Matrix.org]: Pour le message instant, avec E2EE pour des messages privés
-
-You can find my Mastodon account at the footer and in my CV. Ask me further on
-Mastodon or email if you really want to know other two.
-
-[Mastodon]: https://fosstodon.org/@huy_ngo
-[PixelFed]: https://anar.chi.st/xarvos
-[Matrix.org]: https://matrix.to/#/@xarvos:matrix.org
diff --git a/content/social.md b/content/social.md
deleted file mode 100644
index d5d4be1..0000000
--- a/content/social.md
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: Social Media
-language: en
-translationKey: social
-slug: /about/social/
-disable_feed: true
-menu:
-  about:
-    name: About
-    url: /about/
-    weight: 1
-  social:
-    parent: about
-    name: Social media
-    url: /about/social/
-    weight: 2
-  works:
-    parent: about
-    name: Works
-    url: /about/works/
-    weight: 3
----
-
-I practically left Facebook et al. Currently I am on federated social networks, namely:
-
-- [Mastodon]: For short text post, but it's longer than Twitter
-- [PixelFed]: Federated Instagram, where I post memes
-- [Matrix.org]: Instant messaging, with E2EE for private messages
-
-[Mastodon]: https://fosstodon.org/@huy_ngo
-[PixelFed]: https://anar.chi.st/xarvos
-[Matrix.org]: https://matrix.to/#/@xarvos:matrix.org
diff --git a/content/works.md b/content/works.md
index c00890a..73c91f3 100644
--- a/content/works.md
+++ b/content/works.md
@@ -2,23 +2,7 @@
 title: Works
 language: en
 translationKey: works
-slug: /about/works/
 disable_feed: true
-menu:
-  about:
-    name: About
-    url: /about/
-    weight: 1
-  social:
-    parent: about
-    name: Social media
-    url: /about/social/
-    weight: 2
-  works:
-    parent: about
-    name: Works
-    url: /about/works/
-    weight: 3
 ---
 
 I am a web backend developer, though I'm open to experiment in other fields as
@@ -26,7 +10,7 @@ well.  You can look at my project on:
 
 - [GitHub](https://github.com/Huy-Ngo/)
 - [Disroot Git](https://git.disroot.org/huyngo)
-- [source hut](sr.ht/~huyngo/)
+- [source hut](https://sr.ht/~huyngo/)
 
 See my CV in PDF format [here][cv].
 
@@ -34,17 +18,9 @@ See my CV in PDF format [here][cv].
 
 - Bachelor: University of Science and Technology of Hanoi, 2018-2021
 
-# Work Experience
+# Free Software work
 
-## Internship
-
-So far I have only worked as intern in VC Corp. During my internship there, I
-created a disposable mail system as a proof of concept. Afterwards, I have been
-working with their mail system for a short while.
-
-# Projects
-
-## School projects
+## Web apps
 
 ### Acanban
 
@@ -54,31 +30,69 @@ system.
 So far, we have implemented only basic project collaboration features. There is
 much work to be done in the future.
 
+## Libraries
+
 ### Palace
 
 [Palace][palace] is a 3D audio library in Python.  It is a wrapper around
 OpenAL for Python, expecting to provide developers with modern and intuitive
 utilities for audio processing.
 
-## Personal projects
+## Chat bots
+
+### Discord meme bot
+
+[Meme bot][discord-meme-bot] is a meme bot for discord using Reddit API.
+
+## Game
+
+### Axuy
+
+I added face culling and added texture to the 3D shooting game [axuy][axuy] by
+[McSinyx][cnx].
+
+![axuy](axuy.png)
+
+The game uses [palace](#palace) for 3D audio by the way.
 
-- [discord-meme-bot], a meme bot for discord
-- [wikt-cli], a CLI tool to search Wiktionary using its API
-- [cov-news][cov], a crawler for COVID-19 related news 
-- [GenWord][genword] a word generator on Android, alternative to [its JS equivalent][gen]
+## Packaging
+
+### Floating cheeses
+
+> The [interplanetary wheels][ipwhl] (or floating cheeses) are platform-unique,
+> singly-versioned Python binary distributions backed by IPFS for security and
+> reproducibility.
+
+I occasionally participated in packaging for this distribution.
+
+### dictd
+
+I am [packaging](alpine-dictd) [dictd][dictd] for Alpine Linux. It is
+unfortunately not done yet.
 
 ## Miscellaneous
 
-- [YAltaCV], a Python script that generate AltaCV-themed CV from YAML.
-- [Round Robin][rr-sched], a web-based personal time scheduler inspired by
-  process scheduler algorithm of the same name.
+- [YAltaCV], a Python script that generate AltaCV-themed CV from YAML data
+- [cov-news][cov], a scraper for COVID-19 related news 
+- [Wikt CLI][wikt-cli] is a CLI Wiktionary client using its API.
+- [GenWord][genword] a word generator on Android, alternative to
+  [its JS equivalent][gen]
+- [IPA keyboard layout][ipa] for FlorisBoard
+- [One-character PR][publiccode] for Public Code standard
+
+# Non-free software work
 
-# Languages
+Not all of us can afford the luxury of being able to work full-time as free
+software developer.  I still appreciate my time working in a non-free software
+company for the knowledge and experience I gained from there.
 
-I'm most comfortable with Vietnamese for casual conversations and English for
-working (such as for documentation and commit messages). I also can speak some
-French and German with low fluency and read/write them with the help of a
-dictionary.
+## Internship
+
+During my internship at VCCorp, I have worked with several problems related to
+mail, namely:
+
+- disposable mail service
+- mail tracking[^1]
 
 [cv]: https://raw.githubusercontent.com/Huy-Ngo/my-cv/master/huy-cv.pdf
 [palace]: https://git.sr.ht/~cnx/palace
@@ -89,3 +103,15 @@ dictionary.
 [genword]: https://git.sr.ht/~huyngo/GenWord
 [cov]: https://github.com/Huy-Ngo/cov-news
 [gen]: www.zompist.com/gen.html
+[ipwhl]: https://sr.ht/~cnx/ipwhl/
+
+[alpine-dictd]: https://lists.alpinelinux.org/~alpine/aports/%3C20210504151538.25378-1-huyngo%40disroot.org%3E#%3C20210505015044.lqjmzxevnqwdggux@linux.local%3E
+[dictd]: https://sourceforge.net/projects/dict/files/
+[axuy]: https://sr.ht/~cnx/axuy/
+[cnx]: https://cnx.srht.site/
+[ipa]: https://github.com/florisboard/florisboard/pull/560
+[publiccode]: https://github.com/publiccodenet/standard/pull/439#issuecomment-774983961
+
+
+[^1]: I feel guilty working with a privacy-invading feature, but given the
+  context that it is business email, it probably does not matter much.
diff --git a/content/works/axuy.png b/content/works/axuy.png
new file mode 100644
index 0000000..7c3cd44
--- /dev/null
+++ b/content/works/axuy.png
Binary files differdiff --git a/content/works/wikt-cli.png b/content/works/wikt-cli.png
new file mode 100644
index 0000000..eed4370
--- /dev/null
+++ b/content/works/wikt-cli.png
Binary files differ