diff options
-rw-r--r-- | assets/other/nonbot_pledged_logo.svg | 1 | ||||
l--------- | content-org/.#emacs.org | 1 | ||||
-rw-r--r-- | content-org/emacs.org | 31 | ||||
-rw-r--r-- | content/about.md | 7 | ||||
-rw-r--r-- | content/emacs/elfeed-literate-config.md | 4 | ||||
-rw-r--r-- | content/emacs/literate-programing-in-emacs.md | 116 | ||||
-rw-r--r-- | content/emacs/moving-my-rss-reading-to-emacs-with-elfeed.md | 4 | ||||
-rw-r--r-- | content/emacs/notmuch.md | 4 | ||||
-rw-r--r-- | content/me/contact.md | 12 | ||||
-rw-r--r-- | layouts/_default/index.html | 13 | ||||
-rw-r--r-- | static/style.css | 9 |
11 files changed, 172 insertions, 30 deletions
diff --git a/assets/other/nonbot_pledged_logo.svg b/assets/other/nonbot_pledged_logo.svg new file mode 100644 index 0000000..b532b9b --- /dev/null +++ b/assets/other/nonbot_pledged_logo.svg @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 287 250" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;"><rect id="Pending" x="0" y="0" width="286.289" height="249.785" style="fill:none;"/><g id="Pending1" serif:id="Pending"><path d="M250.123,62.996c-0,-13.806 -11.209,-25.016 -25.016,-25.016l-163.925,0c-13.807,0 -25.016,11.21 -25.016,25.016l-0,123.471c-0,13.807 11.209,25.016 25.016,25.016l163.925,-0c13.807,-0 25.016,-11.209 25.016,-25.016l-0,-123.471Z" style="fill:#fff;stroke:#525252;stroke-width:10px;"/><path d="M114.761,105.349l-11.744,-0l-18.574,-32.339l-0.209,0.07l-0,32.269l-11.813,-0l-0,-50.739l11.813,0l18.574,32.339l0.209,-0.07l-0,-32.269l11.744,0l-0,50.739Z" style="fill:#16a34a;fill-rule:nonzero;"/><path d="M164.698,84.545c-0,6.249 -1.981,11.401 -5.942,15.455c-3.961,4.054 -9.136,6.081 -15.525,6.081c-6.435,-0 -11.65,-2.027 -15.646,-6.081c-3.996,-4.054 -5.994,-9.206 -5.994,-15.455l-0,-9.13c-0,-6.227 1.992,-11.372 5.976,-15.438c3.985,-4.066 9.183,-6.098 15.595,-6.098c6.365,-0 11.546,2.032 15.542,6.098c3.996,4.066 5.994,9.211 5.994,15.438l-0,9.13Zm-11.744,-9.2c-0,-3.624 -0.854,-6.598 -2.561,-8.921c-1.708,-2.323 -4.118,-3.485 -7.231,-3.485c-3.183,0 -5.617,1.156 -7.301,3.467c-1.684,2.312 -2.526,5.291 -2.526,8.939l-0,9.2c-0,3.67 0.853,6.667 2.561,8.99c1.707,2.324 4.153,3.485 7.335,3.485c3.09,0 5.483,-1.161 7.179,-3.485c1.696,-2.323 2.544,-5.32 2.544,-8.99l-0,-9.2Z" style="fill:#16a34a;fill-rule:nonzero;"/><path d="M213.868,105.349l-11.744,-0l-18.574,-32.339l-0.209,0.07l0,32.269l-11.813,-0l-0,-50.739l11.813,0l18.574,32.339l0.209,-0.07l0,-32.269l11.744,0l0,50.739Z" style="fill:#16a34a;fill-rule:nonzero;"/><path d="M70.08,162.143l-0,-50.738l17.424,-0c6.296,-0 11.209,1.167 14.74,3.502c3.532,2.335 5.297,5.814 5.297,10.437c0,2.416 -0.569,4.565 -1.707,6.447c-1.139,1.881 -2.893,3.299 -5.262,4.251c2.973,0.674 5.169,2.027 6.586,4.06c1.417,2.033 2.126,4.373 2.126,7.022c-0,4.948 -1.661,8.688 -4.984,11.221c-3.322,2.532 -8.084,3.798 -14.287,3.798l-19.933,0Zm11.813,-21.78l0,12.72l8.12,-0c2.509,-0 4.391,-0.494 5.645,-1.481c1.255,-0.988 1.882,-2.504 1.882,-4.548c-0,-2.207 -0.54,-3.874 -1.621,-5.001c-1.08,-1.126 -2.828,-1.69 -5.244,-1.69l-8.782,0Zm0,-7.806l5.855,0c2.671,-0.046 4.669,-0.563 5.993,-1.55c1.325,-0.988 1.987,-2.434 1.987,-4.339c-0,-2.161 -0.674,-3.735 -2.021,-4.722c-1.348,-0.987 -3.415,-1.481 -6.203,-1.481l-5.611,0l0,12.092Z" style="fill:#16a34a;fill-rule:nonzero;"/><path d="M216.209,120.465l-13.382,0l0,41.678l-11.813,0l-0,-41.678l-13.277,0l-0,-9.06l38.472,-0l-0,9.06Z" style="fill:#16a34a;fill-rule:nonzero;"/><path d="M111.799,136.774l-0,12.685c-0,1.754 1.417,3.171 3.171,3.171l3.171,-0l-0,-19.027l-3.171,-0c-1.754,-0 -3.171,1.417 -3.171,3.171Zm45.981,-15.856l-11.099,0l0,-6.342c0,-1.754 -1.417,-3.171 -3.171,-3.171c-1.754,-0 -3.171,1.417 -3.171,3.171l0,6.342l-11.099,0c-4.38,0 -7.928,3.548 -7.928,7.928l0,26.955c0,3.498 2.844,6.342 6.342,6.342l31.712,0c3.498,0 6.342,-2.844 6.342,-6.342l0,-26.955c0,-4.38 -3.547,-7.928 -7.928,-7.928Zm-20.612,31.712l-6.342,-0l-0,-3.171l6.342,-0l-0,3.171Zm-3.171,-11.892c-2.19,-0 -3.964,-1.774 -3.964,-3.964c-0,-2.19 1.774,-3.964 3.964,-3.964c2.19,-0 3.964,1.774 3.964,3.964c-0,2.19 -1.774,3.964 -3.964,3.964Zm12.684,11.892l-6.342,-0l0,-3.171l6.342,-0l0,3.171Zm9.514,-0l-6.342,-0l-0,-3.171l6.342,-0l-0,3.171Zm-3.171,-11.892c-2.19,-0 -3.964,-1.774 -3.964,-3.964c-0,-2.19 1.774,-3.964 3.964,-3.964c2.19,-0 3.964,1.774 3.964,3.964c-0,2.19 -1.774,3.964 -3.964,3.964Zm19.027,-7.135l-3.172,-0l0,19.027l3.172,-0c1.754,-0 3.171,-1.417 3.171,-3.171l-0,-12.685c-0,-1.754 -1.417,-3.171 -3.171,-3.171Z" style="fill:#16a34a;fill-rule:nonzero;"/><path d="M250.123,167.69l-213.957,0.232l-0,25.084c-0,8.819 7.138,15.974 15.957,15.993c39.532,0.089 141.692,0.319 181.643,0.408c4.335,0.01 8.495,-1.705 11.564,-4.767c3.068,-3.062 4.793,-7.218 4.793,-11.553l-0,-25.397Z" style="fill:#525252;"/><g><path d="M85.449,193.252l-0,8.677l-5.895,0l0,-25.318l10.277,0c3.002,0 5.384,0.768 7.146,2.304c1.763,1.536 2.644,3.545 2.644,6.026c-0,2.492 -0.881,4.5 -2.644,6.025c-1.762,1.524 -4.144,2.286 -7.146,2.286l-4.382,0Zm-0,-4.521l4.382,0c1.275,0 2.246,-0.35 2.912,-1.052c0.667,-0.701 1,-1.602 1,-2.704c0,-1.124 -0.333,-2.046 -1,-2.764c-0.666,-0.719 -1.637,-1.079 -2.912,-1.079l-4.382,0l-0,7.599Z" style="fill:#fff;fill-rule:nonzero;"/><rect x="102.872" y="174.803" width="5.895" height="27.126" style="fill:#fff;fill-rule:nonzero;"/><path d="M120.956,202.294c-2.77,0 -4.981,-0.869 -6.633,-2.608c-1.652,-1.739 -2.478,-3.918 -2.478,-6.538l-0,-0.661c-0,-2.863 0.75,-5.202 2.252,-7.016c1.501,-1.814 3.648,-2.716 6.442,-2.704c2.55,0 4.55,0.765 5.999,2.295c1.449,1.531 2.174,3.606 2.174,6.225l-0,3.078l-10.746,0l-0.035,0.105c0.127,0.962 0.521,1.753 1.182,2.373c0.661,0.62 1.542,0.93 2.643,0.93c1.113,0 2.003,-0.087 2.669,-0.26c0.667,-0.174 1.51,-0.476 2.53,-0.905l1.392,3.582c-0.823,0.603 -1.887,1.105 -3.191,1.505c-1.304,0.399 -2.704,0.599 -4.2,0.599Zm-0.417,-15.006c-0.846,0 -1.481,0.301 -1.904,0.904c-0.423,0.603 -0.681,1.409 -0.774,2.417l0.052,0.087l5.06,0l0,-0.452c0,-0.95 -0.197,-1.681 -0.591,-2.191c-0.394,-0.51 -1.008,-0.765 -1.843,-0.765Z" style="fill:#fff;fill-rule:nonzero;"/><path d="M130.416,192.557c-0,-2.933 0.64,-5.298 1.921,-7.095c1.281,-1.797 3.087,-2.695 5.417,-2.695c0.869,0 1.655,0.2 2.356,0.6c0.701,0.4 1.33,0.971 1.887,1.713l-0,-10.277l5.877,0l0,27.126l-5.095,0l-0.417,-2.312c-0.58,0.869 -1.255,1.533 -2.026,1.991c-0.771,0.458 -1.643,0.686 -2.617,0.686c-2.318,0 -4.115,-0.857 -5.39,-2.573c-1.276,-1.716 -1.913,-3.982 -1.913,-6.799l-0,-0.365Zm5.877,0.365c0,1.53 0.223,2.721 0.67,3.573c0.446,0.852 1.197,1.278 2.251,1.278c0.615,0 1.157,-0.113 1.626,-0.339c0.47,-0.226 0.855,-0.559 1.157,-1l-0,-7.598c-0.302,-0.499 -0.684,-0.881 -1.148,-1.148c-0.464,-0.267 -0.997,-0.4 -1.6,-0.4c-1.043,0 -1.797,0.481 -2.26,1.443c-0.464,0.962 -0.696,2.238 -0.696,3.826l0,0.365Z" style="fill:#fff;fill-rule:nonzero;"/><path d="M150.43,192.557c0,-2.933 0.638,-5.298 1.913,-7.095c1.275,-1.797 3.078,-2.695 5.408,-2.695c0.997,0 1.872,0.235 2.625,0.704c0.754,0.47 1.403,1.139 1.948,2.009l0.4,-2.365l5.147,-0l-0,18.084c-0,2.516 -0.864,4.533 -2.591,6.051c-1.727,1.519 -4.052,2.278 -6.973,2.278c-0.974,0 -1.994,-0.133 -3.06,-0.4c-1.067,-0.266 -2.081,-0.626 -3.043,-1.078l0.956,-4.347c0.858,0.371 1.675,0.646 2.452,0.826c0.777,0.18 1.663,0.269 2.66,0.269c1.206,0 2.128,-0.324 2.765,-0.973c0.638,-0.65 0.957,-1.536 0.957,-2.661l-0,-0.956c-0.534,0.684 -1.154,1.203 -1.861,1.556c-0.707,0.354 -1.513,0.53 -2.417,0.53c-2.319,0 -4.112,-0.857 -5.382,-2.573c-1.269,-1.716 -1.904,-3.982 -1.904,-6.799l0,-0.365Zm5.86,0.365c0,1.53 0.223,2.721 0.67,3.573c0.446,0.852 1.196,1.278 2.251,1.278c0.638,0 1.186,-0.098 1.644,-0.295c0.458,-0.197 0.837,-0.499 1.139,-0.904l-0,-7.895c-0.29,-0.44 -0.664,-0.782 -1.122,-1.026c-0.458,-0.243 -1,-0.365 -1.626,-0.365c-1.043,0 -1.797,0.481 -2.26,1.443c-0.464,0.962 -0.696,2.238 -0.696,3.826l0,0.365Z" style="fill:#fff;fill-rule:nonzero;"/><path d="M179.817,202.294c-2.771,0 -4.982,-0.869 -6.634,-2.608c-1.652,-1.739 -2.478,-3.918 -2.478,-6.538l0,-0.661c0,-2.863 0.751,-5.202 2.252,-7.016c1.501,-1.814 3.649,-2.716 6.443,-2.704c2.55,0 4.55,0.765 5.999,2.295c1.449,1.531 2.173,3.606 2.173,6.225l0,3.078l-10.746,0l-0.035,0.105c0.128,0.962 0.522,1.753 1.183,2.373c0.661,0.62 1.542,0.93 2.643,0.93c1.113,0 2.002,-0.087 2.669,-0.26c0.667,-0.174 1.51,-0.476 2.53,-0.905l1.391,3.582c-0.823,0.603 -1.887,1.105 -3.191,1.505c-1.304,0.399 -2.704,0.599 -4.199,0.599Zm-0.417,-15.006c-0.847,0 -1.481,0.301 -1.904,0.904c-0.424,0.603 -0.682,1.409 -0.774,2.417l0.052,0.087l5.06,0l0,-0.452c0,-0.95 -0.197,-1.681 -0.591,-2.191c-0.394,-0.51 -1.009,-0.765 -1.843,-0.765Z" style="fill:#fff;fill-rule:nonzero;"/><path d="M189.276,192.557c0,-2.933 0.641,-5.298 1.922,-7.095c1.281,-1.797 3.086,-2.695 5.416,-2.695c0.87,0 1.655,0.2 2.357,0.6c0.701,0.4 1.33,0.971 1.886,1.713l0,-10.277l5.878,0l-0,27.126l-5.095,0l-0.418,-2.312c-0.579,0.869 -1.255,1.533 -2.025,1.991c-0.771,0.458 -1.644,0.686 -2.617,0.686c-2.319,0 -4.116,-0.857 -5.391,-2.573c-1.275,-1.716 -1.913,-3.982 -1.913,-6.799l0,-0.365Zm5.878,0.365c-0,1.53 0.223,2.721 0.669,3.573c0.446,0.852 1.197,1.278 2.252,1.278c0.614,0 1.156,-0.113 1.626,-0.339c0.469,-0.226 0.855,-0.559 1.156,-1l0,-7.598c-0.301,-0.499 -0.684,-0.881 -1.147,-1.148c-0.464,-0.267 -0.997,-0.4 -1.6,-0.4c-1.044,0 -1.797,0.481 -2.261,1.443c-0.463,0.962 -0.695,2.238 -0.695,3.826l-0,0.365Z" style="fill:#fff;fill-rule:nonzero;"/></g></g></svg>
\ No newline at end of file diff --git a/content-org/.#emacs.org b/content-org/.#emacs.org new file mode 120000 index 0000000..7cd8d26 --- /dev/null +++ b/content-org/.#emacs.org @@ -0,0 +1 @@ +mms@voyager.24577:1705180510
\ No newline at end of file diff --git a/content-org/emacs.org b/content-org/emacs.org index cc5012e..5434306 100644 --- a/content-org/emacs.org +++ b/content-org/emacs.org @@ -148,21 +148,22 @@ The great thing about FIDO is that it, like Icomplete, uses Minibuffer API[fn:mi #+END_SRC [fn:minibuffer] [[https://www.gnu.org/software/emacs/manual/html_node/elisp/Minibuffer-Completion.html][Guide on Minibuffer completition]] -** TODO Introduction to Literate programming +** DONE Introduction to Literate programming +CLOSED: [2024-01-30 Tue 19:10] :PROPERTIES: :EXPORT_FILE_NAME: literate-programing-in-emacs -:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract A short intro into the idea of literate programing +:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract A short introduction into the idea of literate programming :EXPORT_HUGO_MENU: :menu emacs-guides :name "Literate programing" :END: *** Abstract -Here I give a short, theoretical introduction to the idea of Literate programing +In this article I give a short, theoretical introduction to the idea of Literate programming -*** Preface +*** Introduction -Literate programing is not a subject that comes out often, except if you are talking with an Emacs enthusiast. -There is a signifcant chance, that most programmers don't even know the term. +Literate programming is not a subject that comes out often, except if you are talking with an Emacs enthusiast. +There is a significant chance that most programmers don't even know the term. Let's fix that with a quote: #+begin_quote @@ -175,8 +176,8 @@ At the most casual level, a literate program should at least make its own workin -- Christopher Lee[fn:lee] #+end_quote -The idea is therefore an convertion of an entity out of which one can extract code or documentation. -An semi-abstract in-between called "web[fn:web]". +The idea is therefore a conversion of an entity out of which one can extract code or documentation. +A semi-abstract in-between called "web[fn:web]". The process of creating code is called "tangling", and generation of document is a "weave". *** An example @@ -208,24 +209,24 @@ And then we compile it After the compilation finishes, add executable to your .xinit -#+begin_src +#+begin_src shell echo "exec dwm" >> ~/.xinit #+end_src #+end_quote So yeah, it's a blog post. -A blog post which one can exeute. +A blog post which one can execute. The example assumes shell, but the actual language can be anything. We can /tangle/ C code without any problems. -*** Literate programing +*** Literate programming -This is *not* the way we do programing. -We smack spagetti code together, add a random sentence here and there, commit is as "bug fix" and voila! +This is *not* the way we do programming. +We smack spaghetti code together, add a random sentence here and there, commit is as "bug fix" and voilà! In a few months no one knows what's going on. Success, up to the next JIRA task. -Very often code comments are treated as an harmful or (at best) a neccessar evil. +Very often code comments are treated as an harmful or (at best) a necessary evil. We think that code should be self-documenting. And this is completely valid. A developer needs to understand what given code does, just by reading it. @@ -241,7 +242,7 @@ Since the code coexists with documentation, the reader gets the whole picture. [fn:lee] [[https://web.archive.org/web/20170603045917/http://vasc.ri.cmu.edu:80/old_help/Programming/Literate/literate.html]["Literate Programming -- Propaganda and Tools", Christopher Lee, 1997]] [fn:babel] [[https://orgmode.org/worg/org-contrib/babel/intro.html][Org Babel]] [fn:jupyter] I know that Jupyter is not strictly a literate program, but it's close enough. -[fn:web] the name was choosen, because at the time it was not in use ralated to computing. +[fn:web] this name was choosen, because at the time it was not in use related to computing. We're dealing with history here! *** Conclusion diff --git a/content/about.md b/content/about.md index cfa0144..9ea5555 100644 --- a/content/about.md +++ b/content/about.md @@ -23,13 +23,6 @@ Here are a few cool links: More cool links can be found under [links](/links). -### Contact - -I try not use social media except for YouTube. Therefore, you won't find me on Twitter, TikTok. - -**Email**: [contact@michal.sapka.me](mailto:contact@michal.sapka.me) -**Mastodon**: [https://emacs.ch/@ms](https://emacs.ch/@ms) - ### Causes Some causes I support or believe in: diff --git a/content/emacs/elfeed-literate-config.md b/content/emacs/elfeed-literate-config.md index 47a4666..6ad965c 100644 --- a/content/emacs/elfeed-literate-config.md +++ b/content/emacs/elfeed-literate-config.md @@ -4,11 +4,11 @@ author = ["Michał Sapka"] date = 2023-06-02T23:00:00+02:00 categories = ["emacs"] draft = false -weight = 2003 +weight = 2004 abstract = "Setting up config inside an org file" [menu] [menu.emacs-guides] - weight = 2003 + weight = 2004 identifier = "literate-configuration-of-elfeed" parent = "elfeed" name = "Literate configuration" diff --git a/content/emacs/literate-programing-in-emacs.md b/content/emacs/literate-programing-in-emacs.md new file mode 100644 index 0000000..8df4841 --- /dev/null +++ b/content/emacs/literate-programing-in-emacs.md @@ -0,0 +1,116 @@ ++++ +title = "Introduction to Literate programming" +author = ["Michał Sapka"] +date = 2024-01-30T19:10:00+01:00 +categories = ["emacs"] +draft = false +weight = 2002 +abstract = "A short introduction into the idea of literate programming" +[menu] + [menu.emacs-guides] + weight = 2002 + identifier = "introduction-to-literate-programming" + name = "Literate programing" ++++ + +## Abstract {#abstract} + +In this article I give a short, theoretical introduction to the idea of Literate programming + + +## Introduction {#introduction} + +Literate programming is not a subject that comes out often, except if you are talking with an Emacs enthusiast. +There is a significant chance that most programmers don't even know the term. +Let's fix that with a quote: + +> Literate programming is an approach to programming which emphasises that programs should be written to be read by people as well as compilers. +> From a purist standpoint, a program could be considered a publishable-quality document that argues mathematically for its own correctness. +> A different approach is that a program could be a document that teaches programming to the reader through its own example. +> A more casual approach to literate programming would be that a program should be documented at least well enough that someone could maintain the code properly and make informed changes in a reasonable amount of time without direct help from the author. +> At the most casual level, a literate program should at least make its own workings plain to the author of the program so that at least the author can easily maintain the code over its lifetime. +> +> -- Christopher Lee[^fn:1] + +The idea is therefore a conversion of an entity out of which one can extract code or documentation. +A semi-abstract in-between called "web[^fn:2]". +The process of creating code is called "tangling", and generation of document is a "weave". + + +## An example {#an-example} + +Let's say we want to show the reader how to install DWM. +We can create a document in a style: + +> DWM is a window manager that can be changed only via source code modification. +> Here, we will fetch and compile it. +> First, we need to download the tarball: +> +> ```shell +> wget https://dl.suckless.org/dwm/dwm-6.4.tar.gz +> ``` +> +> then, simply extract it +> +> ````shell +> tar - xvzf dwm-6.4.tar.gz +> ```` +> +> And then we compile it +> +> `````shell +> cd dwm-6.4 +> doas make clean install +> ````` +> +> After the compilation finishes, add executable to your .xinit +> +> ``````shell +> echo "exec dwm" >> ~/.xinit +> `````` + +So yeah, it's a blog post. +A blog post which one can execute. +The example assumes shell, but the actual language can be anything. +We can _tangle_ C code without any problems. + + +## Literate programming {#literate-programming} + +This is **not** the way we do programming. +We smack spaghetti code together, add a random sentence here and there, commit is as "bug fix" and voilà! +In a few months no one knows what's going on. +Success, up to the next JIRA task. + +Very often code comments are treated as an harmful or (at best) a necessary evil. +We think that code should be self-documenting. +And this is completely valid. +A developer needs to understand what given code does, just by reading it. +If your function is so convoluted, nested and complicated that it's impossible to comprehend without a descriptive comment. + +But this is not the whole story. +A function may be very simple, but there is always _context_ in which it is used. + +Literate Programming promotes telling story to the reader. +You are free to do narration giving all extra info in one place. +Since the code coexists with documentation, the reader gets the whole picture. + + +## Conclusion {#conclusion} + +Now, this is not a generic fix for all programs. +We work on massive systems with hundreds of intertwined, moving parts. +It is impossible to create a cohesive narrative when the program jumps all over the place. + +Literate programing, however, found a different home. +It is loved by scientists (just look at Jupyter Notebooks[^fn:3]) who use it for reproducible resarch. +We, amongts Emacs crowed, use it extensively for literate configuration of our environments. +It could be used for scripts, runbooks, debugging logs and so on. +Wherever one can see a logical A, B and C points, we can explain the interconnections. + +You can learn more (including much better example) by reading the [original Knuth's paper](https://michal.sapka.me/papers/literate_programming_knuth_1984.pdf). + +[^fn:1]: ["Literate Programming -- Propaganda and Tools", Christopher Lee, 1997](https://web.archive.org/web/20170603045917/http://vasc.ri.cmu.edu:80/old_help/Programming/Literate/literate.html) +[^fn:2]: this name was choosen, because at the time it was not in use related to computing. + We're dealing with history here! +[^fn:3]: I know that Jupyter is not strictly a literate program, but it's close enough.
\ No newline at end of file diff --git a/content/emacs/moving-my-rss-reading-to-emacs-with-elfeed.md b/content/emacs/moving-my-rss-reading-to-emacs-with-elfeed.md index a6925c2..f923ab5 100644 --- a/content/emacs/moving-my-rss-reading-to-emacs-with-elfeed.md +++ b/content/emacs/moving-my-rss-reading-to-emacs-with-elfeed.md @@ -4,11 +4,11 @@ author = ["Michał Sapka"] date = 2023-05-19T23:00:00+02:00 categories = ["emacs"] draft = false -weight = 2002 +weight = 2003 abstract = "Setting up config inside an org file" [menu] [menu.emacs-guides] - weight = 2002 + weight = 2003 identifier = "elfeed" name = "Following RSS with Elfeed" +++ diff --git a/content/emacs/notmuch.md b/content/emacs/notmuch.md index f7a32e1..0a7cc29 100644 --- a/content/emacs/notmuch.md +++ b/content/emacs/notmuch.md @@ -4,11 +4,11 @@ author = ["Michał Sapka"] date = 2023-07-03T23:00:00+02:00 categories = ["emacs"] draft = false -weight = 2004 +weight = 2005 abstract = "My email based workflow for GitHub Pull Review Requests" [menu] [menu.emacs-guides] - weight = 2004 + weight = 2005 identifier = "managing-email-with-notmuch-and-emacs" name = "Reading and automating email using Notmuch" +++ diff --git a/content/me/contact.md b/content/me/contact.md index 5720630..ed7bc23 100644 --- a/content/me/contact.md +++ b/content/me/contact.md @@ -1,5 +1,5 @@ --- -title: "GPG key" +title: "Contact" category: - me - update @@ -7,7 +7,15 @@ abstract: Ways to contact me date: 2023-11-30T21:52:39+01:00 draft: false --- -### GPG keys + +## Contact + +I try not use social media except for YouTube. Therefore, you won't find me on Twitter, TikTok. + +**Email**: [contact@michal.sapka.me](mailto:contact@michal.sapka.me) +**Mastodon**: [https://emacs.ch/@ms](https://emacs.ch/@ms) + +## GPG keys If you want, you can use my GPG key to validate signature (all emails from me should be signed) or to encrypt a message. You can find the key [here](/mms.gpg). diff --git a/layouts/_default/index.html b/layouts/_default/index.html index 4df8057..7733a2c 100644 --- a/layouts/_default/index.html +++ b/layouts/_default/index.html @@ -2,6 +2,19 @@ <h2>About</h2> Hey! I'm Michał Sapka, a computer programmer living in Kraków, Poland. This website is not dedicated to any particular one thing. Instead, I write whatever interests me most at the moment. No content here is auto-generated, so any bugs, problems, or controversies are entirely on me! +<br><br> +<nav class="personal"> + <a href="/me/contact/">Contact</a> // + <a href="/me/uses/">Uses<a> // + <a href="/about/">About<a> // + <a href="/links/">Links<a> +</nav> +<div> + <a href="https://nonbot.org/pledged/view/9b37caf2-57c1-4934-9bea-69c54eb46452" target="_blank"> + <img style="height:128px;margin-top:10px;margin-bottom:10px;" src="https://nonbot.org/images/nonbot_pledged_logo.svg" alt="Human-made Content"> + </a> +</div> + <h2>Recent updates and publications </h2> {{ range first 10 diff --git a/static/style.css b/static/style.css index fc3e4cb..36cc172 100644 --- a/static/style.css +++ b/static/style.css @@ -304,6 +304,15 @@ article.article-abstract-list-item > a > aside { /* article_list_end */ +/* index_start */ +nav.personal { +} +nav.personal > a { + font-weight: bold; +} + +/* index_end */ + /* legacy_code_start */ /* ---------- Main */ |