Skip to content

jerry-sky/personal-notebook

Repository files navigation

lang title author description keywords
en-GB
Jerry Sky’s personal notebook
Jerry Sky
Software is cool. \ View this repository on [the web](https://personal.jerry-sky.me) or on [GitHub](https://github.com/jerry-sky/personal-notebook).
notebook, notes, personal, dotfiles, python, latex, languages, programming, computer science, linux

Computer Science

Environment configuration

My outlook on how to setup a Linux-based Operating System. The “dotfiles” part of this repository.

Plumbing notes

Notes on various issues that came up during my work and solutions with applicable tools that help in handling them.

DevOps

Sysadmin, Linux, virtual infrastructure, tooling, all that jazz.

Web-dev

Everything web development.

Meta

Not directly related to a specific technology, meta talk.

Read

List of valuable sources of knowledge.

Learning platforms

Interactive way of learning stuff.


Curriculum Vitae

Based on the AltaCV template.


Hardware


Arts


The arbitrary collection


Archive

Archived notes.


Some remarks

This repository serves the purpose of one of my main note-taking solutions. Almost all notes on the tools I use and issues that I encounter are documented here, alongside with multiple lists of valuable external resources.

For a long time, I thought that this notebook would be my designated final note-taking solution that will replace all the others. I was wrong, as handwritten notes are still better in some use-cases, or they serve the purpose of being a buffer containing raw thoughts that are not article-worthy yet.

One field where hand-written notes are better is language learning. Freedom of an open non-linear infinite physical space to save pen strokes is very important to me.

OneNote

A Markdown-based repository is the successor of my previous note-taking solution, which was OneNote. I have since abandoned OneNote for a few simple, but compelling reasons:

  • I’ve switched to Linux full-time as my main OS which leaves me with a very underwhelming browser app and no desktop program for note-taking,
  • OneNote is Microsoft’s proprietary technology with poor exporting tools,
  • general very slow performance as per usual with Microsoft software.

For handwritten notes I use Nebo on my iPad. It has excellent set of features amongst which the handwriting recognition feature is most appealing to me, as one can search through a notebook contents like it was written using a keyboard.

Markdown and $\LaTeX$

A Markdown-based solution is better because it involves just normal text documents — basic, but in most cases sufficient.

After the switch the only thing I was missing, was the ability to write down mathematical expressions. So, the solution that enabled maths in Markdown was $\LaTeX$, because this is the industry standard when it comes to writing maths using a keyboard. Of course, $\LaTeX$ is not even mentioned in most specification sheets of various Markdown flavours, but that also is not a problem.

Workflow

Because Markdown is very loosely defined, it is not uncommon in the Markdown world to add various features that were not intended to be added by the original creator. For example Pandoc, a powerful markup conversion tool, allows for $\LaTeX$ expressions in Markdown. You just have to provide some Maths engine that would render out these expressions when converting from Markdown to HTML for example. How I deal with that will be explained later.

For editing Markdown documents I use VS Code with the Markdown All-in-one extension. This enables me to see my documents in both their raw and rendered out forms, as this extension adds a Markdown preview tab that understands $\LaTeX$ expressions. It also gives some useful commands, and automatization tools like auto-generating table of contents.

Website pipeline

As mentioned above, Pandoc allows for $\LaTeX$ expressions in Markdown documents. It doesn’t do a great job with converting $\LaTeX$ to HTML by default, but you can just tell it to use KaTeX or MathJax.

For presenting my Markdown-based notebook repositories I’m using a GH Action I created that uses Pandoc to render Markdown documents into HTML documents. Apart from Pandoc it also uses Pandoc-KaTeX — a Rust package that renders static HTML pages, instead of leaving raw expressions and letting the client browser render the $\LaTeX$ expressions. Such solution is elegant and much more performant, as the output HTML documents do not contain any JavaScript, only CSS that puts the static $\LaTeX$ elements into place.

Both of my notebooks (personal notebook and academic notebook) are rendered into websites using VYROW — my GH Action.

You can view them on the web:

Figures

When it comes to graph drawing or any type of graphical figures it can be done with OneNote, GIMP, any other graphical program or e.g. a note-taking app on a tablet.

An alternative would be to use code blocks. Characters such as \, |, /, _, <, >, , , _, , , , , and all can be used as strokes while regular Latin alphabet characters as e.g. graph nodes.