diff options
author | Thomas Letan <lthms@soap.coffee> | 2023-05-18 19:19:59 +0200 |
---|---|---|
committer | Thomas Letan <lthms@soap.coffee> | 2023-05-18 19:19:59 +0200 |
commit | 26c9de157bac7355404c9bc788655ceab687eff6 (patch) | |
tree | 68f8064b54d01ebd317e93256935d1fdc59b9780 | |
parent | Ignore highlighting theme (diff) |
New what happened blogpost
-rw-r--r-- | site/posts/May2023.md | 166 | ||||
-rw-r--r-- | site/posts/November2022.md | 1 |
2 files changed, 167 insertions, 0 deletions
diff --git a/site/posts/May2023.md b/site/posts/May2023.md new file mode 100644 index 0000000..8b80b32 --- /dev/null +++ b/site/posts/May2023.md @@ -0,0 +1,166 @@ +--- +published: 2023-05-18 +tags: + - emacs + - meta + - neovim + - releases + - spatial-shell +series: + parent: series/Retrospectives.html + prev: posts/November2022.html +abstract: | + “Regularity is key.” But sometimes, it is a bit hard to get right. + Anyway, let’s catch up. +--- + +# What happened since December 2022? + +Initially, I started this “What happened” series as an exercise to publish +more regularly on this website. Suffice to say, I haven’t done a particularly +impressive job in that regard, which only means I have a lot of room for +improvement. + +Anyway, if the first few months of 2023 has been mostly `$WORK`{.bash} focus, +the same cannot be said for April and May. For one, I have started +[running](/running.html) again. But this is only the tip of the iceberg. + +## Spatial Shell got its first releases + +[Spatial Shell](https://github.com/lthms/spatial-shell) is probably the hobby +project of mine I am most excited about. The [“call for testers” +article](/posts/CFTSpatialShell.html) I have published recently managed to +catch the attention of a few folks[^fail]. The perspective to publish such a +write-up was a very strong source of motivation for me to clean up a project I +was using daily for several months now, and I am very satisfied with the result. + +[^fail]: About that write-up, you want to hear a lesson I learned after + publishing it? Before calling for testers, it is better to [be sure your + project can actually be compiled easily by the potential + volunteers](https://github.com/lthms/spatial-shell/issues/2#issuecomment-1527193430). + +Even if mass adoption is still a distant horizon, but still, the project is now +mainstream enough that it has already been mentioned in [a random topic on the +OCaml discourse by someone who isn’t +me](https://discuss.ocaml.org/t/window-manager-xmonad-in-ocaml/12048/4). 🎉 + +This led me to formally release a first version of Spatial Shell in the end of +April, and a second today. For the first time, I have also published [an +Archlinux package](https://aur.archlinux.org/packages/spatial-shell), to make +the life of potential early adopters even easier. Do not hesitate to upvote it +so that it can find its way to the `extra` repository some day. + +## Goodbye Emacs! Remember me, Neovim? + +In 2015, I started using Coq for my PhD thesis and at the time, there was no +real support for (Neo)vim[^coq]. Everyone was using [Proof +General](https://proofgeneral.github.io/) and Emacs, so I was left with little +choice but to follow through. With only my courage and the [good advice of a +fellow “vimer” who had also made a similar +journey](https://juanjoalvarez.net/posts/2014/vim-emacsevil-chaotic-migration-guide/), +I started using Emacs. + +[^coq]: The situation later improved. Nowadays, you can implement your theories + using [Coqtail](https://github.com/whonore/Coqtail), and [Coq + LSP](https://github.com/ejgallego/coq-lsp) will probably become a viable + and interesting setup in a near future. + +Fast forward 8 years later, and my [Emacs +configuration](https://src.soap.coffee/dotfiles/emacs.d) has become a project +of its own. Overall, I was pretty happy with my setup, but in the same time, I +always remained a bit nostalgic of my Neovim days. This is probably why I +decided to give this old friend a try when my company bought me a new laptop. I +also used this as an opportunity to try out this LSP-thing everyone was talking +about. + +It has been a month now, and I do not plan to come back to my previous habits. +There are still some few edges here and there, I still need to get my head +around lua, but LSP is nice, and plugins like +[telescope](https://github.com/nvim-telescope/telescope.nvim) are simply too +beautiful. + +That being said, there was one aspect of moving from Emacs to Neovim I had not +anticipated: Org mode. Which constitutes a perfect transition to the next +session. + +## Website redesign, again + +Did you notice this website has been revamping recently? The changes are +actually deeper than “just” a redesign, to a point where I had to port *all* my +write-ups to a different markup language[^transition]. + +Why, you ask? Well, it’s actually pretty simple: as time goes, I’ve grown +lazier. + +[^transition]: Are you starting to understand why “Org mode” was the perfect + transition to move on to this section? + +Let me give you some context. Until very recently, my website was built around +the idea to have literate programming as a first-class citizen of my author +tools. For instance, you can have a look at [what used to be the literate +program which was responsible for generating the +website](/posts/CleopatraV1.html). Similarly, most of [my write-ups about +Coq](/tags/coq.html) were actually Coq documents. Literate programming is +actually a very nice paradigm for authoring technical contents, because it +gives you the tools to keep said contents accurate and up-to-date. In a +nutshell, you cannot have a typo in one of your code snippets which would +prevent it from compiling, because you actually +compile the snippet and catch the typo when you try to generate your website. +Or at least, it is what I used to do. + +I decided to stop because, for all its benefits, this approach has one major +drawback: it is hard to maintain. I had invested quite some time and efforts to +keep my website sources under control, but it really was an everyday fight. +There are some strange things which start happening when you fully commit to +this, as I think I did. For instance, software dependencies tie your article +together. Suddenly, you cannot talk about this new fancy feature of the latest +Coq release without upgrading *all* your write-ups implemented as Coq +documents[^actually]. + +[^actually]: Well, in theory you can. Just have each Coq document specifies the + Coq version it requires, and support this level of customization in your + build toolchain. But then, your blog takes forever to build from a cold + repository. + +That being said, most of the work had already been done. This website *was* a +collection of literate programs, and I was pretty proud of the state of things. +I could deal with the annoyances[^coqdoc]. But then, as I explained in the +previous section, I decided to move away from Emacs. The first time I tried to +start a new write-up, it hit me. + +[^coqdoc]: Like using Coqdoc syntax to write my articles, for instance. I could + write about how the Coqdoc syntax irks me for ages. + +I used to write most of my contents using Org mode. Org mode, also known as +*the* Emacs markup language. + +I know of at least [one “Org plugin” for +Neovim](https://github.com/nvim-orgmode/orgmode), but instead of giving it a +try, I decided to use this opportunity to tackle my “maintenance problem” once +and for all. *I gave up on literate programming for this website.* As a result, +this website is now generated from Markdown files only (using +[markdown-it](https://github.com/markdown-it/markdown-it) with many plugins). +As a consequence, the generated HTML is way more “predictable.” This was enough +to motivate me at giving a try at [Soupault’s +indexes](https://soupault.app/reference-manual/#metadata-extraction-and-rendering), +which are way more powerful than I anticipated. Now, this website has + +- Tags. Each write-up can be labeled with as many tags as I want, there is [a + page which lists all the tags used in the website](/tags), and each tag has + its own page (for instance, the [`coq` tag](/tags/coq.html). +- A [RSS feed](/posts/index.xml). It was actually one of the main features I + really wanted to get with this revamp. +- Automatically generated list of articles in the [home page](/), for each + series (see the [Ltac series](/series/Ltac.html) for instance). Before, I was + publishing “curated indexes,” or put in other words: I was writing these + indexes myself, by hand. And again, I’ve grown lazier. + +It took me a week to go through this rework. Translating manually every write-up +was tedious, to say the least, as was implementing the Lua plugins for Soupault +since I have neither proficiency nor tooling to help me write Lua code. But I +am very glad for the final result. + +Also, I have invested in an Antidote license, so hopefully, this website will +have fewer typos and English butchering as of now. A clean text, delivered with +a nice and simple design, from a sane and maintainable [Git +repository](https://src.soap.coffee/soap.coffee/lthms.git/). diff --git a/site/posts/November2022.md b/site/posts/November2022.md index 6f7d5e5..b136276 100644 --- a/site/posts/November2022.md +++ b/site/posts/November2022.md @@ -5,6 +5,7 @@ tags: ['spatial-shell', 'nanowrimo', 'coqffi'] series: parent: series/Retrospectives.html prev: posts/September2022.html + next: posts/May2023.html abstract: | Spatial Sway has basically reached the MVP stage, I failed to fully commit to this year’s NaNoWriMo, and someone has worked on adding some support for |