aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--content/notes/2023-05-23-parse-rss-with-lua.md3
-rw-r--r--content/notes/2023-05-25-show-xterm-colors.md3
-rw-r--r--content/notes/2023-06-01-ewd-manuscripts-ebook.md4
-rw-r--r--content/posts/2020-03-30-my-love-and-hate-relationship-with-nodejs.md2
-rw-r--r--content/posts/2023-07-08-who-knows-what-the-world-will-look-like-tomorrow.md27
-rwxr-xr-xpublic/ewd-manuscripts-ebook.html2
-rwxr-xr-xpublic/index.html2
-rwxr-xr-xpublic/index.xml29
-rwxr-xr-xpublic/my-love-and-hate-relationship-with-nodejs.html2
-rwxr-xr-xpublic/notes.xml10
-rwxr-xr-xpublic/parse-rss-with-lua.html2
-rwxr-xr-xpublic/sitemap.xml2
-rwxr-xr-xpublic/who-knows-what-the-world-will-look-like-tomorrow.html27
-rwxr-xr-xpublic/xterm-color-palette.html112
14 files changed, 170 insertions, 57 deletions
diff --git a/content/notes/2023-05-23-parse-rss-with-lua.md b/content/notes/2023-05-23-parse-rss-with-lua.md
index c2cdcbc..ecd33d5 100644
--- a/content/notes/2023-05-23-parse-rss-with-lua.md
+++ b/content/notes/2023-05-23-parse-rss-with-lua.md
@@ -16,7 +16,7 @@ Example of parsing RSS feeds with Lua. Before running the script install:
16local http = require("socket.http") 16local http = require("socket.http")
17local feedparser = require("feedparser") 17local feedparser = require("feedparser")
18 18
19local feed_url = "https://mitjafelicijan.com/feed.rss" 19local feed_url = "https://mitjafelicijan.com/index.xml"
20 20
21local response, status, _ = http.request(feed_url) 21local response, status, _ = http.request(feed_url)
22if status == 200 then 22if status == 200 then
@@ -38,4 +38,3 @@ else
38 print("! Request failed. Status:", status) 38 print("! Request failed. Status:", status)
39end 39end
40``` 40```
41
diff --git a/content/notes/2023-05-25-show-xterm-colors.md b/content/notes/2023-05-25-show-xterm-colors.md
index cc5eca4..1e6d526 100644
--- a/content/notes/2023-05-25-show-xterm-colors.md
+++ b/content/notes/2023-05-25-show-xterm-colors.md
@@ -1,6 +1,6 @@
1--- 1---
2title: Display xterm color palette 2title: Display xterm color palette
3url: write-iso-usb.html 3url: xterm-color-palette.html
4date: 2023-05-25T12:00:00+02:00 4date: 2023-05-25T12:00:00+02:00
5type: note 5type: note
6draft: false 6draft: false
@@ -82,4 +82,3 @@ case ${1-none} in
82 ;; 82 ;;
83esac | less --raw-control-chars --QUIT-AT-EOF --no-init 83esac | less --raw-control-chars --QUIT-AT-EOF --no-init
84``` 84```
85
diff --git a/content/notes/2023-06-01-ewd-manuscripts-ebook.md b/content/notes/2023-06-01-ewd-manuscripts-ebook.md
index 0a81adf..1ce597e 100644
--- a/content/notes/2023-06-01-ewd-manuscripts-ebook.md
+++ b/content/notes/2023-06-01-ewd-manuscripts-ebook.md
@@ -13,8 +13,8 @@ MOBI version. I converted it into ePub as well.
13 13
14Downloads: 14Downloads:
15 15
16- [MOBI version of all Manuscripts](https://files.mitjafelicijan.com/haphazard/ewd-manuscripts.mobi) 16- [MOBI version of all Manuscripts](https://mitjafelicijan.fra1.digitaloceanspaces.com/haphazard/ewd-manuscripts.mobi)
17- [ePub version of all Manuscripts](https://files.mitjafelicijan.com/haphazard/ewd-manuscripts.epub) 17- [ePub version of all Manuscripts](https://mitjafelicijan.fra1.digitaloceanspaces.com/haphazard/ewd-manuscripts.epub)
18 18
19Sources and credits: 19Sources and credits:
20 20
diff --git a/content/posts/2020-03-30-my-love-and-hate-relationship-with-nodejs.md b/content/posts/2020-03-30-my-love-and-hate-relationship-with-nodejs.md
index dec6f8d..d083890 100644
--- a/content/posts/2020-03-30-my-love-and-hate-relationship-with-nodejs.md
+++ b/content/posts/2020-03-30-my-love-and-hate-relationship-with-nodejs.md
@@ -108,4 +108,4 @@ quickly and do impossible things in crazy limited time.
108 108
109I hate to admit it. But I love Node.js. Dammit, I love it :) 109I hate to admit it. But I love Node.js. Dammit, I love it :)
110 110
1112023 Update: I hate Node.js! 111**2023 Update**: I hate Node.js!
diff --git a/content/posts/2023-07-08-who-knows-what-the-world-will-look-like-tomorrow.md b/content/posts/2023-07-08-who-knows-what-the-world-will-look-like-tomorrow.md
index 46e6167..4743694 100644
--- a/content/posts/2023-07-08-who-knows-what-the-world-will-look-like-tomorrow.md
+++ b/content/posts/2023-07-08-who-knows-what-the-world-will-look-like-tomorrow.md
@@ -12,7 +12,7 @@ tested probably 10s of them my now. From homebrew solutions to the biggest and
12the baddest. From Bash scripts to Node.js disasters. I've seen some things, no 12the baddest. From Bash scripts to Node.js disasters. I've seen some things, no
13doubt. Not all bad. 13doubt. Not all bad.
14 14
15I'have been closely observing the web and where the trends are going, and I 15I have been closely observing the web and where the trends are going, and I
16don't like what I see. Instead of internet being this weird place where 16don't like what I see. Instead of internet being this weird place where
17experimentation is happening, it all became stale and formulized. Boring, 17experimentation is happening, it all became stale and formulized. Boring,
18actually. Really boring. And sad. Where is that old, revolutionary FU spirit I 18actually. Really boring. And sad. Where is that old, revolutionary FU spirit I
@@ -25,7 +25,7 @@ hating people without actual reasons, just because it's fashionable to hate and
25crowd is saying so. Sad state of affairs. 25crowd is saying so. Sad state of affairs.
26 26
27All this is contributing to this overall negativity masked as apathy. Everybody 27All this is contributing to this overall negativity masked as apathy. Everybody
28walking in lockstep. Instead of being creative are bold, we are just 28walking in lockstep. Instead of being creative and bold, we are just
29re-inventing the world and making the same mistakes. Maybe, just maybe, some 29re-inventing the world and making the same mistakes. Maybe, just maybe, some
30things are good enough and there is no need to try to be too smart for our own 30things are good enough and there is no need to try to be too smart for our own
31good. After N-attempts, maybe something should click inside our heads to maybe 31good. After N-attempts, maybe something should click inside our heads to maybe
@@ -43,14 +43,15 @@ It's gotten to a point where you can with great certainty deduce a person's
43personality based on one or two opinions. How boring have we become. No wonder 43personality based on one or two opinions. How boring have we become. No wonder
44people can't talk to each other. These would be very quick conversations anyway. 44people can't talk to each other. These would be very quick conversations anyway.
45 45
46I just got remembered of a song, "Hi Ren". The ending talks about being stiff 46I just got remembered of a song, ["Hi
47and not being able to dance. Such an amazing metaphor. And we as people have 47Ren"](https://www.youtube.com/watch?v=s_nc1IVoMxc). The ending talks about being
48gone so far, we can't even walk or even crawl normally anymore. We have 48stiff and not being able to dance. Such an amazing metaphor. And we as people
49have gone so far, we can't even walk or even crawl normally anymore. We have
49forgotten that the most beautiful things in life have a great deal of 50forgotten that the most beautiful things in life have a great deal of
50uncertainty about them. We want instant gratification. Not only that, but we 51uncertainty about them. We want instant gratification. Not only that, but we
51want absolute obedience. Complete control over others, because we have zero 52want absolute obedience. Complete control over others, because we have zero
52control of ourselves. And all the lies we could tell ourselves will not help us 53control of ourselves. And all the lies we could tell ourselves will not help us
53in this situation. 54out of this situation.
54 55
55It is funny how I catch myself from time to time being a complete idiot. It's 56It is funny how I catch myself from time to time being a complete idiot. It's
56like having an outer body experience. I can see myself being an idiot, and 57like having an outer body experience. I can see myself being an idiot, and
@@ -59,12 +60,12 @@ think before saying. And to crawl before walking.
59 60
60So there is still time. We can dance once more. All we need to do is stop for a 61So there is still time. We can dance once more. All we need to do is stop for a
61second. Me and you. Us two is a start. Let's not try to change the world, but 62second. Me and you. Us two is a start. Let's not try to change the world, but
62rather nudge ourselves just a tiny bit. And if we only did that. Each of us 63rather nudge ourselves just a tiny bit. And if we only did that?! Just
63nudged ourselves a small, tiny bit, the world would heal. If we would just put 64imagine. Each of us nudged ourselves a small, tiny bit, the world would heal. If
64down the phones and ignored Internet for a day or two. Put visiting websites 65we would just put down the phones and ignored Internet for a day or two. Put
65that feed on us on hold. Listened to just one sentence and try to understand it 66visiting websites that feed on us on hold. Listened to just one sentence and try
66from a person who we completely disagree with. I truly believe that this is 67to understand it from a person who we completely disagree with. I truly believe
67possible. 68that this is possible.
68 69
69Life is about suffering and joy. And instead of wishing suffering on others and 70Life is about suffering and joy. And instead of wishing suffering on others and
70excepting joy for yourselves, we should for a brief moment want suffering for 71excepting joy for yourselves, we should for a brief moment want suffering for
@@ -94,6 +95,6 @@ create instead of destroy.
94I don't have an ending for this post, so I will say this. We live in the most 95I don't have an ending for this post, so I will say this. We live in the most
95amazing times in the recorded history, and we should be internally grateful for 96amazing times in the recorded history, and we should be internally grateful for
96it. Create and study, this should be my mantra. Just create and let the world 97it. Create and study, this should be my mantra. Just create and let the world
97happen. And you feel yourself to be too certain, stop and check how deep in the 98happen. And when you feel yourself to be too certain, stop and check how deep in the
98shit you are already. Strong opinions are a sign of a weak and uneducated 99shit you are already. Strong opinions are a sign of a weak and uneducated
99mind. Hate and disdain is for the weak. 100mind. Hate and disdain is for the weak.
diff --git a/public/ewd-manuscripts-ebook.html b/public/ewd-manuscripts-ebook.html
index f726505..612eb6b 100755
--- a/public/ewd-manuscripts-ebook.html
+++ b/public/ewd-manuscripts-ebook.html
@@ -8,7 +8,7 @@
8<a href=/curriculum-vitae.html>CV</a> 8<a href=/curriculum-vitae.html>CV</a>
9<a href=/index.xml target=_blank class=hob>RSS</a></nav></header><main role=main><article itemtype=http://schema.org/Article><h1 itemtype=headline>Edsger W. Dijkstra Manuscripts ebook</h1><p><cap>note</cap>, Jun 1, 2023 on <a href=https://mitjafelicijan.com>Mitja Felicijan's blog</a><div><p>I love reading the original manuscripts of Edsger W. Dijkstra. They are 9<a href=/index.xml target=_blank class=hob>RSS</a></nav></header><main role=main><article itemtype=http://schema.org/Article><h1 itemtype=headline>Edsger W. Dijkstra Manuscripts ebook</h1><p><cap>note</cap>, Jun 1, 2023 on <a href=https://mitjafelicijan.com>Mitja Felicijan's blog</a><div><p>I love reading the original manuscripts of Edsger W. Dijkstra. They are
10available online at the University of Texas at Austin website, but I also found 10available online at the University of Texas at Austin website, but I also found
11MOBI version. I converted it into ePub as well.<p>Downloads:<ul><li><a href=https://files.mitjafelicijan.com/haphazard/ewd-manuscripts.mobi>MOBI version of all Manuscripts</a><li><a href=https://files.mitjafelicijan.com/haphazard/ewd-manuscripts.epub>ePub version of all Manuscripts</a></ul><p>Sources and credits:<ul><li><a href=https://www.cs.utexas.edu/users/EWD/index00xx.html>Original manuscripts from University of Texas at Austin</a><li><a href=https://github.com/evmn/The-Manuscripts-of-Edsger-W.-Dijkstra>Original repository of MOBI version</a></ul></div></article></main><section><hr><h2>Posts from blogs I follow around the net</h2><ul><li><a href=https://utcc.utoronto.ca/~cks/space/blog/linux/NFSv4ServerLockClients target=_blank rel=noopener>Finding which NFSv4 client owns a lock on a Linux NFS(v4) server</a> — <a href=https://utcc.utoronto.ca/~cks/space/blog/>Chris's Wiki :: blog</a><div>A while back I wrote an entry about finding which NFS client owns 11MOBI version. I converted it into ePub as well.<p>Downloads:<ul><li><a href=https://mitjafelicijan.fra1.digitaloceanspaces.com/haphazard/ewd-manuscripts.mobi>MOBI version of all Manuscripts</a><li><a href=https://mitjafelicijan.fra1.digitaloceanspaces.com/haphazard/ewd-manuscripts.epub>ePub version of all Manuscripts</a></ul><p>Sources and credits:<ul><li><a href=https://www.cs.utexas.edu/users/EWD/index00xx.html>Original manuscripts from University of Texas at Austin</a><li><a href=https://github.com/evmn/The-Manuscripts-of-Edsger-W.-Dijkstra>Original repository of MOBI version</a></ul></div></article></main><section><hr><h2>Posts from blogs I follow around the net</h2><ul><li><a href=https://utcc.utoronto.ca/~cks/space/blog/linux/NFSv4ServerLockClients target=_blank rel=noopener>Finding which NFSv4 client owns a lock on a Linux NFS(v4) server</a> — <a href=https://utcc.utoronto.ca/~cks/space/blog/>Chris's Wiki :: blog</a><div>A while back I wrote an entry about finding which NFS client owns
12a lock on a Linux NFS server, which turned 12a lock on a Linux NFS server, which turned
13out to be specific to NFS v3 (which I really should have seen coming, 13out to be specific to NFS v3 (which I really should have seen coming,
14since it involved NLM and lockd). Finding the NFS v4 client that 14since it involved NLM and lockd). Finding the NFS v4 client that
diff --git a/public/index.html b/public/index.html
index d66622a..bd7d835 100755
--- a/public/index.html
+++ b/public/index.html
@@ -6,7 +6,7 @@
6<a href=https://github.com/mitjafelicijan target=_blank>Code</a> 6<a href=https://github.com/mitjafelicijan target=_blank>Code</a>
7<a href=/mitjafelicijan.pgp.pub.txt target=_blank class=hob>PGP</a> 7<a href=/mitjafelicijan.pgp.pub.txt target=_blank class=hob>PGP</a>
8<a href=/curriculum-vitae.html>CV</a> 8<a href=/curriculum-vitae.html>CV</a>
9<a href=/index.xml target=_blank class=hob>RSS</a></nav></header><main role=main><div><p>You do not learn by relaxing. You learn by violently assaulting your problem until it surrenders its mysteries to you.<h2><a name=posts></a>More long form, ramblings etc</h2><ul itemscope itemtype=https://schema.org/SiteNavigationElement class=list><meta itemprop=name content="Article list"><li><a href=/who-knows-what-the-world-will-look-like-tomorrow.html>Who knows what the world will look like tomorrow</a><li><a href=/bringing-all-of-my-projects-together-under-one-umbrella.html>Bringing all of my projects together under one umbrella</a><li><a href=/re-inventing-task-runner-that-i-actually-used-daily.html>Re-Inventing Task Runner That I Actually Used Daily</a><li><a href=/i-was-wrong-about-git-workflows.html>I think I was completely wrong about Git workflows</a><li><a href=/rekindling-my-love-for-programming.html>Rekindling my love for programming and enjoying the act of creating</a><li><a href=/trying-to-build-a-new-kind-of-terminal-emulator.html>Trying to build a New kind of terminal emulator for the modern age</a><li><a href=/that-sound-that-machine-makes-when-struggling.html>Microsoundtrack — That sound that machine makes when struggling</a><li><a href=/state-of-web-technologies-and-web-development-in-year-2022.html>State of Web Technologies and Web development in year 2022</a><li><a href=/aerial-photography-of-algae-spotted-on-river-sava.html>Aerial photography of algae spotted on river Sava</a><li><a href=/what-would-dna-sound-if-synthesized.html>What would DNA sound if synthesized to an audio file</a><li><a href=/tying-out-helix-code-editor.html>Trying out Helix code editor as my main editor</a><li><a href=/wap-mobile-web-before-the-web.html>Wireless Application Protocol and the mobile web before the web</a><li><a href=/running-golang-application-as-pid1.html>Running Golang application as PID 1 with Linux kernel</a><li><a href=/debian-based-riced-up-distribution-for-developers-and-devops-folks.html>Debian based riced up distribution for Developers and DevOps folks</a><li><a href=/linux-cheatsheet.html>List of essential Linux commands for server management</a><li><a href=/from-internet-consumer-to-full-hominum-again.html>My journey from being an internet über consumer to being a full hominum again</a><li><a href=/simple-world-clock-with-eiink-display-and-raspberry-pi-zero.html>Simple world clock with eInk display and Raspberry Pi Zero</a><li><a href=/using-goaccess-with-nginx-to-replace-google-analytics.html>Using GoAccess with Nginx to replace Google Analytics</a><li><a href=/replacing-dropbox-in-favor-of-digitalocean-spaces.html>Replacing Dropbox in favor of DigitalOcean spaces</a><li><a href=/digitalocean-spaces-to-sync-between-computers.html>Using Digitalocean Spaces to sync between computers</a><li><a href=/bind-warning-on-login-in-ubuntu.html>Fix bind warning in .profile on login in Ubuntu</a><li><a href=/esp8266-and-micropython-guide.html>Getting started with MicroPython and ESP8266</a><li><a href=/disable-mouse-wake-from-suspend-with-systemd-service.html>Disable mouse wake from suspend with systemd service</a><li><a href=/remote-work.html>Remote work and how it affects the daily lives of people</a><li><a href=/my-love-and-hate-relationship-with-nodejs.html>My love and hate relationship with Node.js</a><li><a href=/the-strange-case-of-elasticsearch-allocation-failure.html>The strange case of Elasticsearch allocation failure</a><li><a href=/create-placeholder-images-with-sharp.html>Create placeholder images with sharp Node.js image processing library</a><li><a href=/simple-server-sent-events-based-pubsub-server.html>Simple Server-Sent Events based PubSub Server</a><li><a href=/using-sentiment-analysis-for-clickbait-detection-in-rss-feeds.html>Using sentiment analysis for clickbait detection in RSS feeds</a><li><a href=/simplifying-and-reducing-clutter.html>Simplifying and reducing clutter in my life and work</a><li><a href=/encoding-binary-data-into-dna-sequence.html>Encoding binary data into DNA sequence</a><li><a href=/using-digitalocean-spaces-object-storage-with-fuse.html>Using DigitalOcean Spaces Object Storage with FUSE</a><li><a href=/simple-iot-application.html>Simple IOT application supported by real-time monitoring and data history</a><li><a href=/profiling-python-web-applications-with-visual-tools.html>Profiling Python web applications with visual tools</a><li><a href=/what-i-ve-learned-developing-ad-server.html>What I've learned developing ad server</a><li><a href=/golang-profiling-simplified.html>Golang profiling simplified</a><li><a href=/software-development-pitfalls.html>Software development and my favorite pitfalls</a><li><a href=/wireless-sensor-networks.html>Wireless sensor networks</a><li><a href=/led-technology-not-so-eco.html>LED technology might not be as eco-friendly as you think</a><li><a href=/most-likely-to-succeed-in-year-of-2011.html>Most likely to succeed in the year of 2011</a></ul><h2><a name=notes></a>Notes?! Maybe useful</h2><h2></h2><ul itemscope itemtype=https://schema.org/SiteNavigationElement class=list><meta itemprop=name content="Note list"><li><a href=/compile-drawterm-on-fedora-38.html>Compile drawterm on Fedora 38</a><li><a href=/aws-eb-pyyaml-fix.html>AWS EB PyYAML fix</a><li><a href=/floods-in-slovenia.html>Floods in Slovenia up close</a><li><a href=/make-b-w-svg-charts-with-matplotlib.html>Make B/W SVG charts with matplotlib</a><li><a href=/set-color-temperature-of-displays-on-i3.html>Set color temperature of displays on i3</a><li><a href=/fix-screen-tearing-on-debian-12-xorg-and-i3.html>Fix screen tearing on Debian 12 Xorg and i3</a><li><a href=/online-radio-streaming-with-mpv-from-terminal.html>Online radio streaming with MPV from terminal</a><li><a href=/60s-ibm-computers-commercial.html>60's IBM Computers Commercial</a><li><a href=/10gui-10-finger-multitouch-user-interface.html>10/GUI 10 Finger Multitouch User Interface</a><li><a href=/alacritty-open-links-with-modifier.html>Alacritty open links with modifier</a><li><a href=/development-environments-with-nix.html>Development environments with Nix</a><li><a href=/making-cgit-look-nicer.html>Making cgit look nicer</a><li><a href=/presentations-with-markdown.html>Simple presentations with Markdown</a><li><a href=/bulk-make-thumbnails.html>Bulk thumbnails</a><li><a href=/ewd-manuscripts-ebook.html>Edsger W. Dijkstra Manuscripts ebook</a><li><a href=/extending-dte-editor.html>Extending dte editor</a><li><a href=/grep-to-less-maintain-colors.html>Grep to Less that maintain colors</a><li><a href=/easy-time-took-in-bash.html>Easy measure time took in a bash script</a><li><a href=/dcss-on-4k-display.html>Make DCSS playable on 4k displays</a><li><a href=/drawing-pixels-in-plan9.html>Drawing Pixels in Plan9</a><li><a href=/cronjobs-github-with-actions.html>Cronjobs on Github with Github Actions</a><li><a href=/dcss-new-player-guide.html>Dungeon Crawl Stone Soup - New player guide</a><li><a href=/write-iso-usb.html>Display xterm color palette</a><li><a href=/tmux-sane-defaults.html>Sane defaults for tmux with more visible statusbar</a><li><a href=/fresh-9front-desktop.html>My brand new Plan9/9front desktop</a><li><a href=/parse-rss-with-lua.html>Parse RSS feeds with Lua</a><li><a href=/extend-lua-with-custom-c.html>Extend Lua with custom C functions using Clang</a><li><a href=/non-blocking-shell-exec-csharp.html>Execute not blocking async shell command in C#</a><li><a href=/mass-set-permission.html>Change permissions of matching files recursively</a><li><a href=/preview-troff-man-pages.html>Previews how man page written in Troff will look like</a><li><a href=/convert-mkv.html>Convert all MKV files into other formats</a><li><a href=/download-youtube-videos.html>Download list of YouTube files</a><li><a href=/install-plan9port-linux.html>Install Plan9port on Linux</a><li><a href=/fix-plan9-bootloader.html>Fix bootloader not being written in Plan9</a><li><a href=/plan9-screenshot.html>Take a screenshot in Plan9</a><li><a href=/catv-weechat-config.html>#cat-v on weechat configuration</a><li><a href=/write-iso-usb.html>Write ISO to USB Key</a><li><a href=/mount-plan9-over-network.html>Mount Plan9 over network</a><li><a href=/git-push-multiple-origins.html>Push to multiple origins at once in Git</a><li><a href=/run-9front-in-qemu.html>Run 9front in Qemu</a><li><a href=/cachebusting-in-hugo.html>Cache busting in Hugo</a></ul><h2><a name=sideprojects></a>Side projects I work/worked on</h2><ul itemscope itemtype=https://schema.org/SiteNavigationElement class=list><meta itemprop=name content="Note list"><li><a href=https://git.mitjafelicijan.com/cord.h.git/ target=_blank>cord.h</a> — Small C library for handling strings<li><a href=https://git.mitjafelicijan.com/mprogress.git/ target=_blank>mprogress</a> — Tiny utility that displays progress bar in terminal<li><a href=https://git.mitjafelicijan.com/journalctl-proxy.git/ target=_blank>journalctl-proxy</a> — Exposes your systemd logs to web via web interface<li><a href=https://git.mitjafelicijan.com/redis-marshal.git/ target=_blank>redis-marshal</a> — Lightweight Redis data exploration tool<li><a href=https://git.mitjafelicijan.com/vertex.git/ target=_blank>vertex</a> — Create mock API's and add basic logic to simplify prototyping<li><a href=https://git.mitjafelicijan.com/dna-encoding.git/ target=_blank>dna-encoding</a> — Tools for encoding files to DNA sequence<li><a href=https://git.mitjafelicijan.com/scarecrow.git/ target=_blank>scarecrow</a> — Minimal configuration reverse proxy</ul></div></main><section><hr><h2>Posts from blogs I follow around the net</h2><ul><li><a href=https://utcc.utoronto.ca/~cks/space/blog/linux/NFSv4ServerLockClients target=_blank rel=noopener>Finding which NFSv4 client owns a lock on a Linux NFS(v4) server</a> — <a href=https://utcc.utoronto.ca/~cks/space/blog/>Chris's Wiki :: blog</a><div>A while back I wrote an entry about finding which NFS client owns 9<a href=/index.xml target=_blank class=hob>RSS</a></nav></header><main role=main><div><p>You do not learn by relaxing. You learn by violently assaulting your problem until it surrenders its mysteries to you.<h2><a name=posts></a>More long form, ramblings etc</h2><ul itemscope itemtype=https://schema.org/SiteNavigationElement class=list><meta itemprop=name content="Article list"><li><a href=/who-knows-what-the-world-will-look-like-tomorrow.html>Who knows what the world will look like tomorrow</a><li><a href=/bringing-all-of-my-projects-together-under-one-umbrella.html>Bringing all of my projects together under one umbrella</a><li><a href=/re-inventing-task-runner-that-i-actually-used-daily.html>Re-Inventing Task Runner That I Actually Used Daily</a><li><a href=/i-was-wrong-about-git-workflows.html>I think I was completely wrong about Git workflows</a><li><a href=/rekindling-my-love-for-programming.html>Rekindling my love for programming and enjoying the act of creating</a><li><a href=/trying-to-build-a-new-kind-of-terminal-emulator.html>Trying to build a New kind of terminal emulator for the modern age</a><li><a href=/that-sound-that-machine-makes-when-struggling.html>Microsoundtrack — That sound that machine makes when struggling</a><li><a href=/state-of-web-technologies-and-web-development-in-year-2022.html>State of Web Technologies and Web development in year 2022</a><li><a href=/aerial-photography-of-algae-spotted-on-river-sava.html>Aerial photography of algae spotted on river Sava</a><li><a href=/what-would-dna-sound-if-synthesized.html>What would DNA sound if synthesized to an audio file</a><li><a href=/tying-out-helix-code-editor.html>Trying out Helix code editor as my main editor</a><li><a href=/wap-mobile-web-before-the-web.html>Wireless Application Protocol and the mobile web before the web</a><li><a href=/running-golang-application-as-pid1.html>Running Golang application as PID 1 with Linux kernel</a><li><a href=/debian-based-riced-up-distribution-for-developers-and-devops-folks.html>Debian based riced up distribution for Developers and DevOps folks</a><li><a href=/linux-cheatsheet.html>List of essential Linux commands for server management</a><li><a href=/from-internet-consumer-to-full-hominum-again.html>My journey from being an internet über consumer to being a full hominum again</a><li><a href=/simple-world-clock-with-eiink-display-and-raspberry-pi-zero.html>Simple world clock with eInk display and Raspberry Pi Zero</a><li><a href=/using-goaccess-with-nginx-to-replace-google-analytics.html>Using GoAccess with Nginx to replace Google Analytics</a><li><a href=/replacing-dropbox-in-favor-of-digitalocean-spaces.html>Replacing Dropbox in favor of DigitalOcean spaces</a><li><a href=/digitalocean-spaces-to-sync-between-computers.html>Using Digitalocean Spaces to sync between computers</a><li><a href=/bind-warning-on-login-in-ubuntu.html>Fix bind warning in .profile on login in Ubuntu</a><li><a href=/esp8266-and-micropython-guide.html>Getting started with MicroPython and ESP8266</a><li><a href=/disable-mouse-wake-from-suspend-with-systemd-service.html>Disable mouse wake from suspend with systemd service</a><li><a href=/remote-work.html>Remote work and how it affects the daily lives of people</a><li><a href=/my-love-and-hate-relationship-with-nodejs.html>My love and hate relationship with Node.js</a><li><a href=/the-strange-case-of-elasticsearch-allocation-failure.html>The strange case of Elasticsearch allocation failure</a><li><a href=/create-placeholder-images-with-sharp.html>Create placeholder images with sharp Node.js image processing library</a><li><a href=/simple-server-sent-events-based-pubsub-server.html>Simple Server-Sent Events based PubSub Server</a><li><a href=/using-sentiment-analysis-for-clickbait-detection-in-rss-feeds.html>Using sentiment analysis for clickbait detection in RSS feeds</a><li><a href=/simplifying-and-reducing-clutter.html>Simplifying and reducing clutter in my life and work</a><li><a href=/encoding-binary-data-into-dna-sequence.html>Encoding binary data into DNA sequence</a><li><a href=/using-digitalocean-spaces-object-storage-with-fuse.html>Using DigitalOcean Spaces Object Storage with FUSE</a><li><a href=/simple-iot-application.html>Simple IOT application supported by real-time monitoring and data history</a><li><a href=/profiling-python-web-applications-with-visual-tools.html>Profiling Python web applications with visual tools</a><li><a href=/what-i-ve-learned-developing-ad-server.html>What I've learned developing ad server</a><li><a href=/golang-profiling-simplified.html>Golang profiling simplified</a><li><a href=/software-development-pitfalls.html>Software development and my favorite pitfalls</a><li><a href=/wireless-sensor-networks.html>Wireless sensor networks</a><li><a href=/led-technology-not-so-eco.html>LED technology might not be as eco-friendly as you think</a><li><a href=/most-likely-to-succeed-in-year-of-2011.html>Most likely to succeed in the year of 2011</a></ul><h2><a name=notes></a>Notes?! Maybe useful</h2><h2></h2><ul itemscope itemtype=https://schema.org/SiteNavigationElement class=list><meta itemprop=name content="Note list"><li><a href=/compile-drawterm-on-fedora-38.html>Compile drawterm on Fedora 38</a><li><a href=/aws-eb-pyyaml-fix.html>AWS EB PyYAML fix</a><li><a href=/floods-in-slovenia.html>Floods in Slovenia up close</a><li><a href=/make-b-w-svg-charts-with-matplotlib.html>Make B/W SVG charts with matplotlib</a><li><a href=/set-color-temperature-of-displays-on-i3.html>Set color temperature of displays on i3</a><li><a href=/fix-screen-tearing-on-debian-12-xorg-and-i3.html>Fix screen tearing on Debian 12 Xorg and i3</a><li><a href=/online-radio-streaming-with-mpv-from-terminal.html>Online radio streaming with MPV from terminal</a><li><a href=/60s-ibm-computers-commercial.html>60's IBM Computers Commercial</a><li><a href=/10gui-10-finger-multitouch-user-interface.html>10/GUI 10 Finger Multitouch User Interface</a><li><a href=/alacritty-open-links-with-modifier.html>Alacritty open links with modifier</a><li><a href=/development-environments-with-nix.html>Development environments with Nix</a><li><a href=/making-cgit-look-nicer.html>Making cgit look nicer</a><li><a href=/presentations-with-markdown.html>Simple presentations with Markdown</a><li><a href=/bulk-make-thumbnails.html>Bulk thumbnails</a><li><a href=/ewd-manuscripts-ebook.html>Edsger W. Dijkstra Manuscripts ebook</a><li><a href=/extending-dte-editor.html>Extending dte editor</a><li><a href=/grep-to-less-maintain-colors.html>Grep to Less that maintain colors</a><li><a href=/easy-time-took-in-bash.html>Easy measure time took in a bash script</a><li><a href=/dcss-on-4k-display.html>Make DCSS playable on 4k displays</a><li><a href=/drawing-pixels-in-plan9.html>Drawing Pixels in Plan9</a><li><a href=/cronjobs-github-with-actions.html>Cronjobs on Github with Github Actions</a><li><a href=/dcss-new-player-guide.html>Dungeon Crawl Stone Soup - New player guide</a><li><a href=/xterm-color-palette.html>Display xterm color palette</a><li><a href=/tmux-sane-defaults.html>Sane defaults for tmux with more visible statusbar</a><li><a href=/fresh-9front-desktop.html>My brand new Plan9/9front desktop</a><li><a href=/parse-rss-with-lua.html>Parse RSS feeds with Lua</a><li><a href=/extend-lua-with-custom-c.html>Extend Lua with custom C functions using Clang</a><li><a href=/non-blocking-shell-exec-csharp.html>Execute not blocking async shell command in C#</a><li><a href=/mass-set-permission.html>Change permissions of matching files recursively</a><li><a href=/preview-troff-man-pages.html>Previews how man page written in Troff will look like</a><li><a href=/convert-mkv.html>Convert all MKV files into other formats</a><li><a href=/download-youtube-videos.html>Download list of YouTube files</a><li><a href=/install-plan9port-linux.html>Install Plan9port on Linux</a><li><a href=/fix-plan9-bootloader.html>Fix bootloader not being written in Plan9</a><li><a href=/plan9-screenshot.html>Take a screenshot in Plan9</a><li><a href=/catv-weechat-config.html>#cat-v on weechat configuration</a><li><a href=/write-iso-usb.html>Write ISO to USB Key</a><li><a href=/mount-plan9-over-network.html>Mount Plan9 over network</a><li><a href=/git-push-multiple-origins.html>Push to multiple origins at once in Git</a><li><a href=/run-9front-in-qemu.html>Run 9front in Qemu</a><li><a href=/cachebusting-in-hugo.html>Cache busting in Hugo</a></ul><h2><a name=sideprojects></a>Side projects I work/worked on</h2><ul itemscope itemtype=https://schema.org/SiteNavigationElement class=list><meta itemprop=name content="Note list"><li><a href=https://git.mitjafelicijan.com/cord.h.git/ target=_blank>cord.h</a> — Small C library for handling strings<li><a href=https://git.mitjafelicijan.com/mprogress.git/ target=_blank>mprogress</a> — Tiny utility that displays progress bar in terminal<li><a href=https://git.mitjafelicijan.com/journalctl-proxy.git/ target=_blank>journalctl-proxy</a> — Exposes your systemd logs to web via web interface<li><a href=https://git.mitjafelicijan.com/redis-marshal.git/ target=_blank>redis-marshal</a> — Lightweight Redis data exploration tool<li><a href=https://git.mitjafelicijan.com/vertex.git/ target=_blank>vertex</a> — Create mock API's and add basic logic to simplify prototyping<li><a href=https://git.mitjafelicijan.com/dna-encoding.git/ target=_blank>dna-encoding</a> — Tools for encoding files to DNA sequence<li><a href=https://git.mitjafelicijan.com/scarecrow.git/ target=_blank>scarecrow</a> — Minimal configuration reverse proxy</ul></div></main><section><hr><h2>Posts from blogs I follow around the net</h2><ul><li><a href=https://utcc.utoronto.ca/~cks/space/blog/linux/NFSv4ServerLockClients target=_blank rel=noopener>Finding which NFSv4 client owns a lock on a Linux NFS(v4) server</a> — <a href=https://utcc.utoronto.ca/~cks/space/blog/>Chris's Wiki :: blog</a><div>A while back I wrote an entry about finding which NFS client owns
10a lock on a Linux NFS server, which turned 10a lock on a Linux NFS server, which turned
11out to be specific to NFS v3 (which I really should have seen coming, 11out to be specific to NFS v3 (which I really should have seen coming,
12since it involved NLM and lockd). Finding the NFS v4 client that 12since it involved NLM and lockd). Finding the NFS v4 client that
diff --git a/public/index.xml b/public/index.xml
index 9bf469f..e116c7f 100755
--- a/public/index.xml
+++ b/public/index.xml
@@ -32,7 +32,7 @@ in Flask and Bottle to moving on to static site generators. I have used and
32tested probably 10s of them my now. From homebrew solutions to the biggest and 32tested probably 10s of them my now. From homebrew solutions to the biggest and
33the baddest. From Bash scripts to Node.js disasters. I&#39;ve seen some things, no 33the baddest. From Bash scripts to Node.js disasters. I&#39;ve seen some things, no
34doubt. Not all bad.&lt;/p&gt; 34doubt. Not all bad.&lt;/p&gt;
35&lt;p&gt;I&#39;have been closely observing the web and where the trends are going, and I 35&lt;p&gt;I have been closely observing the web and where the trends are going, and I
36don&#39;t like what I see. Instead of internet being this weird place where 36don&#39;t like what I see. Instead of internet being this weird place where
37experimentation is happening, it all became stale and formulized. Boring, 37experimentation is happening, it all became stale and formulized. Boring,
38actually. Really boring. And sad. Where is that old, revolutionary FU spirit I 38actually. Really boring. And sad. Where is that old, revolutionary FU spirit I
@@ -43,7 +43,7 @@ something has started happening. With all the insanity around the world. People
43hating people without actual reasons, just because it&#39;s fashionable to hate and 43hating people without actual reasons, just because it&#39;s fashionable to hate and
44crowd is saying so. Sad state of affairs.&lt;/p&gt; 44crowd is saying so. Sad state of affairs.&lt;/p&gt;
45&lt;p&gt;All this is contributing to this overall negativity masked as apathy. Everybody 45&lt;p&gt;All this is contributing to this overall negativity masked as apathy. Everybody
46walking in lockstep. Instead of being creative are bold, we are just 46walking in lockstep. Instead of being creative and bold, we are just
47re-inventing the world and making the same mistakes. Maybe, just maybe, some 47re-inventing the world and making the same mistakes. Maybe, just maybe, some
48things are good enough and there is no need to try to be too smart for our own 48things are good enough and there is no need to try to be too smart for our own
49good. After N-attempts, maybe something should click inside our heads to maybe 49good. After N-attempts, maybe something should click inside our heads to maybe
@@ -58,26 +58,27 @@ this.&lt;/p&gt;
58&lt;p&gt;It&#39;s gotten to a point where you can with great certainty deduce a person&#39;s 58&lt;p&gt;It&#39;s gotten to a point where you can with great certainty deduce a person&#39;s
59personality based on one or two opinions. How boring have we become. No wonder 59personality based on one or two opinions. How boring have we become. No wonder
60people can&#39;t talk to each other. These would be very quick conversations anyway.&lt;/p&gt; 60people can&#39;t talk to each other. These would be very quick conversations anyway.&lt;/p&gt;
61&lt;p&gt;I just got remembered of a song, &amp;quot;Hi Ren&amp;quot;. The ending talks about being stiff 61&lt;p&gt;I just got remembered of a song, &lt;a href=&#34;https://www.youtube.com/watch?v=s_nc1IVoMxc&#34;&gt;&amp;quot;Hi
62and not being able to dance. Such an amazing metaphor. And we as people have 62Ren&amp;quot;&lt;/a&gt;. The ending talks about being
63gone so far, we can&#39;t even walk or even crawl normally anymore. We have 63stiff and not being able to dance. Such an amazing metaphor. And we as people
64have gone so far, we can&#39;t even walk or even crawl normally anymore. We have
64forgotten that the most beautiful things in life have a great deal of 65forgotten that the most beautiful things in life have a great deal of
65uncertainty about them. We want instant gratification. Not only that, but we 66uncertainty about them. We want instant gratification. Not only that, but we
66want absolute obedience. Complete control over others, because we have zero 67want absolute obedience. Complete control over others, because we have zero
67control of ourselves. And all the lies we could tell ourselves will not help us 68control of ourselves. And all the lies we could tell ourselves will not help us
68in this situation.&lt;/p&gt; 69out of this situation.&lt;/p&gt;
69&lt;p&gt;It is funny how I catch myself from time to time being a complete idiot. It&#39;s 70&lt;p&gt;It is funny how I catch myself from time to time being a complete idiot. It&#39;s
70like having an outer body experience. I can see myself being an idiot, and 71like having an outer body experience. I can see myself being an idiot, and
71cannot stop myself. It serves as a learning lesson to stop before speaking. To 72cannot stop myself. It serves as a learning lesson to stop before speaking. To
72think before saying. And to crawl before walking.&lt;/p&gt; 73think before saying. And to crawl before walking.&lt;/p&gt;
73&lt;p&gt;So there is still time. We can dance once more. All we need to do is stop for a 74&lt;p&gt;So there is still time. We can dance once more. All we need to do is stop for a
74second. Me and you. Us two is a start. Let&#39;s not try to change the world, but 75second. Me and you. Us two is a start. Let&#39;s not try to change the world, but
75rather nudge ourselves just a tiny bit. And if we only did that. Each of us 76rather nudge ourselves just a tiny bit. And if we only did that?! Just
76nudged ourselves a small, tiny bit, the world would heal. If we would just put 77imagine. Each of us nudged ourselves a small, tiny bit, the world would heal. If
77down the phones and ignored Internet for a day or two. Put visiting websites 78we would just put down the phones and ignored Internet for a day or two. Put
78that feed on us on hold. Listened to just one sentence and try to understand it 79visiting websites that feed on us on hold. Listened to just one sentence and try
79from a person who we completely disagree with. I truly believe that this is 80to understand it from a person who we completely disagree with. I truly believe
80possible.&lt;/p&gt; 81that this is possible.&lt;/p&gt;
81&lt;p&gt;Life is about suffering and joy. And instead of wishing suffering on others and 82&lt;p&gt;Life is about suffering and joy. And instead of wishing suffering on others and
82excepting joy for yourselves, we should for a brief moment want suffering for 83excepting joy for yourselves, we should for a brief moment want suffering for
83ourselves and wish joy on others. Wouldn&#39;t that be an amazing sight to see?&lt;/p&gt; 84ourselves and wish joy on others. Wouldn&#39;t that be an amazing sight to see?&lt;/p&gt;
@@ -102,7 +103,7 @@ create instead of destroy.&lt;/p&gt;
102&lt;p&gt;I don&#39;t have an ending for this post, so I will say this. We live in the most 103&lt;p&gt;I don&#39;t have an ending for this post, so I will say this. We live in the most
103amazing times in the recorded history, and we should be internally grateful for 104amazing times in the recorded history, and we should be internally grateful for
104it. Create and study, this should be my mantra. Just create and let the world 105it. Create and study, this should be my mantra. Just create and let the world
105happen. And you feel yourself to be too certain, stop and check how deep in the 106happen. And when you feel yourself to be too certain, stop and check how deep in the
106shit you are already. Strong opinions are a sign of a weak and uneducated 107shit you are already. Strong opinions are a sign of a weak and uneducated
107mind. Hate and disdain is for the weak.&lt;/p&gt; 108mind. Hate and disdain is for the weak.&lt;/p&gt;
108</content:encoded> 109</content:encoded>
@@ -3428,7 +3429,7 @@ whole JavaScript ecosystem:&lt;/p&gt;
3428&lt;p&gt;But on the other hand. As I did, you will also learn to love it. Learn to use it 3429&lt;p&gt;But on the other hand. As I did, you will also learn to love it. Learn to use it
3429quickly and do impossible things in crazy limited time.&lt;/p&gt; 3430quickly and do impossible things in crazy limited time.&lt;/p&gt;
3430&lt;p&gt;I hate to admit it. But I love Node.js. Dammit, I love it :)&lt;/p&gt; 3431&lt;p&gt;I hate to admit it. But I love Node.js. Dammit, I love it :)&lt;/p&gt;
3431&lt;p&gt;2023 Update: I hate Node.js!&lt;/p&gt; 3432&lt;p&gt;&lt;strong&gt;2023 Update&lt;/strong&gt;: I hate Node.js!&lt;/p&gt;
3432</content:encoded> 3433</content:encoded>
3433 </item> 3434 </item>
3434 3435
diff --git a/public/my-love-and-hate-relationship-with-nodejs.html b/public/my-love-and-hate-relationship-with-nodejs.html
index de525a7..55a3382 100755
--- a/public/my-love-and-hate-relationship-with-nodejs.html
+++ b/public/my-love-and-hate-relationship-with-nodejs.html
@@ -72,7 +72,7 @@ application. And you don't get this in <strong>marketing material</strong> for E
72etc. They never tell you this. Making Node.js scale on infrastructure or in 72etc. They never tell you this. Making Node.js scale on infrastructure or in
73codebase is really <strong>more of an art than a science</strong>. And just like with the 73codebase is really <strong>more of an art than a science</strong>. And just like with the
74whole JavaScript ecosystem:<ul><li>impossible to master,<li>half of your time you work on your tooling,<li>just accept transpilers that convert one code into another (holly smokes),<li>error handling is a joke,<li>standards? What standards?</ul><p>But on the other hand. As I did, you will also learn to love it. Learn to use it 74whole JavaScript ecosystem:<ul><li>impossible to master,<li>half of your time you work on your tooling,<li>just accept transpilers that convert one code into another (holly smokes),<li>error handling is a joke,<li>standards? What standards?</ul><p>But on the other hand. As I did, you will also learn to love it. Learn to use it
75quickly and do impossible things in crazy limited time.<p>I hate to admit it. But I love Node.js. Dammit, I love it :)<p>2023 Update: I hate Node.js!</div></article></main><section><hr><h2>Posts from blogs I follow around the net</h2><ul><li><a href=https://utcc.utoronto.ca/~cks/space/blog/linux/NFSv4ServerLockClients target=_blank rel=noopener>Finding which NFSv4 client owns a lock on a Linux NFS(v4) server</a> — <a href=https://utcc.utoronto.ca/~cks/space/blog/>Chris's Wiki :: blog</a><div>A while back I wrote an entry about finding which NFS client owns 75quickly and do impossible things in crazy limited time.<p>I hate to admit it. But I love Node.js. Dammit, I love it :)<p><strong>2023 Update</strong>: I hate Node.js!</div></article></main><section><hr><h2>Posts from blogs I follow around the net</h2><ul><li><a href=https://utcc.utoronto.ca/~cks/space/blog/linux/NFSv4ServerLockClients target=_blank rel=noopener>Finding which NFSv4 client owns a lock on a Linux NFS(v4) server</a> — <a href=https://utcc.utoronto.ca/~cks/space/blog/>Chris's Wiki :: blog</a><div>A while back I wrote an entry about finding which NFS client owns
76a lock on a Linux NFS server, which turned 76a lock on a Linux NFS server, which turned
77out to be specific to NFS v3 (which I really should have seen coming, 77out to be specific to NFS v3 (which I really should have seen coming,
78since it involved NLM and lockd). Finding the NFS v4 client that 78since it involved NLM and lockd). Finding the NFS v4 client that
diff --git a/public/notes.xml b/public/notes.xml
index e8cacad..89e9881 100755
--- a/public/notes.xml
+++ b/public/notes.xml
@@ -633,8 +633,8 @@ available online at the University of Texas at Austin website, but I also found
633MOBI version. I converted it into ePub as well.&lt;/p&gt; 633MOBI version. I converted it into ePub as well.&lt;/p&gt;
634&lt;p&gt;Downloads:&lt;/p&gt; 634&lt;p&gt;Downloads:&lt;/p&gt;
635&lt;ul&gt; 635&lt;ul&gt;
636&lt;li&gt;&lt;a href=&#34;https://files.mitjafelicijan.com/haphazard/ewd-manuscripts.mobi&#34;&gt;MOBI version of all Manuscripts&lt;/a&gt;&lt;/li&gt; 636&lt;li&gt;&lt;a href=&#34;https://mitjafelicijan.fra1.digitaloceanspaces.com/haphazard/ewd-manuscripts.mobi&#34;&gt;MOBI version of all Manuscripts&lt;/a&gt;&lt;/li&gt;
637&lt;li&gt;&lt;a href=&#34;https://files.mitjafelicijan.com/haphazard/ewd-manuscripts.epub&#34;&gt;ePub version of all Manuscripts&lt;/a&gt;&lt;/li&gt; 637&lt;li&gt;&lt;a href=&#34;https://mitjafelicijan.fra1.digitaloceanspaces.com/haphazard/ewd-manuscripts.epub&#34;&gt;ePub version of all Manuscripts&lt;/a&gt;&lt;/li&gt;
638&lt;/ul&gt; 638&lt;/ul&gt;
639&lt;p&gt;Sources and credits:&lt;/p&gt; 639&lt;p&gt;Sources and credits:&lt;/p&gt;
640&lt;ul&gt; 640&lt;ul&gt;
@@ -986,9 +986,9 @@ don&#39;t hold back!&lt;/li&gt;
986 986
987 <item> 987 <item>
988 <title>Display xterm color palette</title> 988 <title>Display xterm color palette</title>
989 <link>https://mitjafelicijan.com/write-iso-usb.html</link> 989 <link>https://mitjafelicijan.com/xterm-color-palette.html</link>
990 <pubDate>Thu, 25 May 2023 12:00:00 &#43;0200</pubDate> 990 <pubDate>Thu, 25 May 2023 12:00:00 &#43;0200</pubDate>
991 <guid>https://mitjafelicijan.com/write-iso-usb.html</guid> 991 <guid>https://mitjafelicijan.com/xterm-color-palette.html</guid>
992 <description>bash xterm-palette.</description> 992 <description>bash xterm-palette.</description>
993 <content:encoded>&lt;ul&gt; 993 <content:encoded>&lt;ul&gt;
994&lt;li&gt;&lt;code&gt;bash xterm-palette.sh&lt;/code&gt; - will show you number of max colors available&lt;/li&gt; 994&lt;li&gt;&lt;code&gt;bash xterm-palette.sh&lt;/code&gt; - will show you number of max colors available&lt;/li&gt;
@@ -1139,7 +1139,7 @@ my desktop looks like.&lt;/p&gt;
1139&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;&#34;&gt;&lt;code&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;local&lt;/span&gt; http = require(&lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34;socket.http&amp;#34;&lt;/span&gt;) 1139&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;&#34;&gt;&lt;code&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;local&lt;/span&gt; http = require(&lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34;socket.http&amp;#34;&lt;/span&gt;)
1140&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;local&lt;/span&gt; feedparser = require(&lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34;feedparser&amp;#34;&lt;/span&gt;) 1140&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;local&lt;/span&gt; feedparser = require(&lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34;feedparser&amp;#34;&lt;/span&gt;)
1141&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 1141&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
1142&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;local&lt;/span&gt; feed_url = &lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34;https://mitjafelicijan.com/feed.rss&amp;#34;&lt;/span&gt; 1142&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;local&lt;/span&gt; feed_url = &lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34;https://mitjafelicijan.com/index.xml&amp;#34;&lt;/span&gt;
1143&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 1143&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
1144&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;local&lt;/span&gt; response, status, _ = http.request(feed_url) 1144&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;local&lt;/span&gt; response, status, _ = http.request(feed_url)
1145&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;if&lt;/span&gt; status == 200 &lt;span style=&#34;color:#00f&#34;&gt;then&lt;/span&gt; 1145&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;if&lt;/span&gt; status == 200 &lt;span style=&#34;color:#00f&#34;&gt;then&lt;/span&gt;
diff --git a/public/parse-rss-with-lua.html b/public/parse-rss-with-lua.html
index e81f127..db879c9 100755
--- a/public/parse-rss-with-lua.html
+++ b/public/parse-rss-with-lua.html
@@ -9,7 +9,7 @@
9<a href=/index.xml target=_blank class=hob>RSS</a></nav></header><main role=main><article itemtype=http://schema.org/Article><h1 itemtype=headline>Parse RSS feeds with Lua</h1><p><cap>note</cap>, May 23, 2023 on <a href=https://mitjafelicijan.com>Mitja Felicijan's blog</a><div><p>Example of parsing RSS feeds with Lua. Before running the script install:<ul><li>feedparser with <code>luarocks install feedparser</code><li>luasocket with <code>luarocks install luasocket</code></ul><pre tabindex=0 style=background-color:#fff><code><span style=display:flex><span><span style=color:#00f>local</span> http = require(<span style=color:#a31515>&#34;socket.http&#34;</span>) 9<a href=/index.xml target=_blank class=hob>RSS</a></nav></header><main role=main><article itemtype=http://schema.org/Article><h1 itemtype=headline>Parse RSS feeds with Lua</h1><p><cap>note</cap>, May 23, 2023 on <a href=https://mitjafelicijan.com>Mitja Felicijan's blog</a><div><p>Example of parsing RSS feeds with Lua. Before running the script install:<ul><li>feedparser with <code>luarocks install feedparser</code><li>luasocket with <code>luarocks install luasocket</code></ul><pre tabindex=0 style=background-color:#fff><code><span style=display:flex><span><span style=color:#00f>local</span> http = require(<span style=color:#a31515>&#34;socket.http&#34;</span>)
10</span></span><span style=display:flex><span><span style=color:#00f>local</span> feedparser = require(<span style=color:#a31515>&#34;feedparser&#34;</span>) 10</span></span><span style=display:flex><span><span style=color:#00f>local</span> feedparser = require(<span style=color:#a31515>&#34;feedparser&#34;</span>)
11</span></span><span style=display:flex><span> 11</span></span><span style=display:flex><span>
12</span></span><span style=display:flex><span><span style=color:#00f>local</span> feed_url = <span style=color:#a31515>&#34;https://mitjafelicijan.com/feed.rss&#34;</span> 12</span></span><span style=display:flex><span><span style=color:#00f>local</span> feed_url = <span style=color:#a31515>&#34;https://mitjafelicijan.com/index.xml&#34;</span>
13</span></span><span style=display:flex><span> 13</span></span><span style=display:flex><span>
14</span></span><span style=display:flex><span><span style=color:#00f>local</span> response, status, _ = http.request(feed_url) 14</span></span><span style=display:flex><span><span style=color:#00f>local</span> response, status, _ = http.request(feed_url)
15</span></span><span style=display:flex><span><span style=color:#00f>if</span> status == 200 <span style=color:#00f>then</span> 15</span></span><span style=display:flex><span><span style=color:#00f>if</span> status == 200 <span style=color:#00f>then</span>
diff --git a/public/sitemap.xml b/public/sitemap.xml
index 1a08f57..37366d7 100755
--- a/public/sitemap.xml
+++ b/public/sitemap.xml
@@ -126,7 +126,7 @@
126 </url> 126 </url>
127 127
128 <url> 128 <url>
129 <loc>https://mitjafelicijan.com/write-iso-usb.html</loc> 129 <loc>https://mitjafelicijan.com/xterm-color-palette.html</loc>
130 <lastmod>2023-05-25T12:00:00+00:00</lastmod> 130 <lastmod>2023-05-25T12:00:00+00:00</lastmod>
131 </url> 131 </url>
132 132
diff --git a/public/who-knows-what-the-world-will-look-like-tomorrow.html b/public/who-knows-what-the-world-will-look-like-tomorrow.html
index 33be5c9..718965b 100755
--- a/public/who-knows-what-the-world-will-look-like-tomorrow.html
+++ b/public/who-knows-what-the-world-will-look-like-tomorrow.html
@@ -10,7 +10,7 @@
10in Flask and Bottle to moving on to static site generators. I have used and 10in Flask and Bottle to moving on to static site generators. I have used and
11tested probably 10s of them my now. From homebrew solutions to the biggest and 11tested probably 10s of them my now. From homebrew solutions to the biggest and
12the baddest. From Bash scripts to Node.js disasters. I've seen some things, no 12the baddest. From Bash scripts to Node.js disasters. I've seen some things, no
13doubt. Not all bad.<p>I'have been closely observing the web and where the trends are going, and I 13doubt. Not all bad.<p>I have been closely observing the web and where the trends are going, and I
14don't like what I see. Instead of internet being this weird place where 14don't like what I see. Instead of internet being this weird place where
15experimentation is happening, it all became stale and formulized. Boring, 15experimentation is happening, it all became stale and formulized. Boring,
16actually. Really boring. And sad. Where is that old, revolutionary FU spirit I 16actually. Really boring. And sad. Where is that old, revolutionary FU spirit I
@@ -19,7 +19,7 @@ mediocrity and formulaic boredom.<p>It almost feels like that the internet stopp
19something has started happening. With all the insanity around the world. People 19something has started happening. With all the insanity around the world. People
20hating people without actual reasons, just because it's fashionable to hate and 20hating people without actual reasons, just because it's fashionable to hate and
21crowd is saying so. Sad state of affairs.<p>All this is contributing to this overall negativity masked as apathy. Everybody 21crowd is saying so. Sad state of affairs.<p>All this is contributing to this overall negativity masked as apathy. Everybody
22walking in lockstep. Instead of being creative are bold, we are just 22walking in lockstep. Instead of being creative and bold, we are just
23re-inventing the world and making the same mistakes. Maybe, just maybe, some 23re-inventing the world and making the same mistakes. Maybe, just maybe, some
24things are good enough and there is no need to try to be too smart for our own 24things are good enough and there is no need to try to be too smart for our own
25good. After N-attempts, maybe something should click inside our heads to maybe 25good. After N-attempts, maybe something should click inside our heads to maybe
@@ -31,24 +31,25 @@ hearing or reading a thing on internet and let's fucking goooooo! Strong
31opinions are a sign of a weak and uneducated mind. I am more and more sure of 31opinions are a sign of a weak and uneducated mind. I am more and more sure of
32this.<p>It's gotten to a point where you can with great certainty deduce a person's 32this.<p>It's gotten to a point where you can with great certainty deduce a person's
33personality based on one or two opinions. How boring have we become. No wonder 33personality based on one or two opinions. How boring have we become. No wonder
34people can't talk to each other. These would be very quick conversations anyway.<p>I just got remembered of a song, "Hi Ren". The ending talks about being stiff 34people can't talk to each other. These would be very quick conversations anyway.<p>I just got remembered of a song, <a href="https://www.youtube.com/watch?v=s_nc1IVoMxc">"Hi
35and not being able to dance. Such an amazing metaphor. And we as people have 35Ren"</a>. The ending talks about being
36gone so far, we can't even walk or even crawl normally anymore. We have 36stiff and not being able to dance. Such an amazing metaphor. And we as people
37have gone so far, we can't even walk or even crawl normally anymore. We have
37forgotten that the most beautiful things in life have a great deal of 38forgotten that the most beautiful things in life have a great deal of
38uncertainty about them. We want instant gratification. Not only that, but we 39uncertainty about them. We want instant gratification. Not only that, but we
39want absolute obedience. Complete control over others, because we have zero 40want absolute obedience. Complete control over others, because we have zero
40control of ourselves. And all the lies we could tell ourselves will not help us 41control of ourselves. And all the lies we could tell ourselves will not help us
41in this situation.<p>It is funny how I catch myself from time to time being a complete idiot. It's 42out of this situation.<p>It is funny how I catch myself from time to time being a complete idiot. It's
42like having an outer body experience. I can see myself being an idiot, and 43like having an outer body experience. I can see myself being an idiot, and
43cannot stop myself. It serves as a learning lesson to stop before speaking. To 44cannot stop myself. It serves as a learning lesson to stop before speaking. To
44think before saying. And to crawl before walking.<p>So there is still time. We can dance once more. All we need to do is stop for a 45think before saying. And to crawl before walking.<p>So there is still time. We can dance once more. All we need to do is stop for a
45second. Me and you. Us two is a start. Let's not try to change the world, but 46second. Me and you. Us two is a start. Let's not try to change the world, but
46rather nudge ourselves just a tiny bit. And if we only did that. Each of us 47rather nudge ourselves just a tiny bit. And if we only did that?! Just
47nudged ourselves a small, tiny bit, the world would heal. If we would just put 48imagine. Each of us nudged ourselves a small, tiny bit, the world would heal. If
48down the phones and ignored Internet for a day or two. Put visiting websites 49we would just put down the phones and ignored Internet for a day or two. Put
49that feed on us on hold. Listened to just one sentence and try to understand it 50visiting websites that feed on us on hold. Listened to just one sentence and try
50from a person who we completely disagree with. I truly believe that this is 51to understand it from a person who we completely disagree with. I truly believe
51possible.<p>Life is about suffering and joy. And instead of wishing suffering on others and 52that this is possible.<p>Life is about suffering and joy. And instead of wishing suffering on others and
52excepting joy for yourselves, we should for a brief moment want suffering for 53excepting joy for yourselves, we should for a brief moment want suffering for
53ourselves and wish joy on others. Wouldn't that be an amazing sight to see?<p>I caught myself hating on Rust. And I deeply thought about it afterward. Why did 54ourselves and wish joy on others. Wouldn't that be an amazing sight to see?<p>I caught myself hating on Rust. And I deeply thought about it afterward. Why did
54I do it? It is obviously not for me. So why the hell was I being so negative 55I do it? It is obviously not for me. So why the hell was I being so negative
@@ -68,7 +69,7 @@ the world is trying to take from you, you are the only one who can say no. And
68create instead of destroy.<p>I don't have an ending for this post, so I will say this. We live in the most 69create instead of destroy.<p>I don't have an ending for this post, so I will say this. We live in the most
69amazing times in the recorded history, and we should be internally grateful for 70amazing times in the recorded history, and we should be internally grateful for
70it. Create and study, this should be my mantra. Just create and let the world 71it. Create and study, this should be my mantra. Just create and let the world
71happen. And you feel yourself to be too certain, stop and check how deep in the 72happen. And when you feel yourself to be too certain, stop and check how deep in the
72shit you are already. Strong opinions are a sign of a weak and uneducated 73shit you are already. Strong opinions are a sign of a weak and uneducated
73mind. Hate and disdain is for the weak.</div></article></main><section><hr><h2>Posts from blogs I follow around the net</h2><ul><li><a href=https://utcc.utoronto.ca/~cks/space/blog/linux/NFSv4ServerLockClients target=_blank rel=noopener>Finding which NFSv4 client owns a lock on a Linux NFS(v4) server</a> — <a href=https://utcc.utoronto.ca/~cks/space/blog/>Chris's Wiki :: blog</a><div>A while back I wrote an entry about finding which NFS client owns 74mind. Hate and disdain is for the weak.</div></article></main><section><hr><h2>Posts from blogs I follow around the net</h2><ul><li><a href=https://utcc.utoronto.ca/~cks/space/blog/linux/NFSv4ServerLockClients target=_blank rel=noopener>Finding which NFSv4 client owns a lock on a Linux NFS(v4) server</a> — <a href=https://utcc.utoronto.ca/~cks/space/blog/>Chris's Wiki :: blog</a><div>A while back I wrote an entry about finding which NFS client owns
74a lock on a Linux NFS server, which turned 75a lock on a Linux NFS server, which turned
diff --git a/public/xterm-color-palette.html b/public/xterm-color-palette.html
new file mode 100755
index 0000000..00252fc
--- /dev/null
+++ b/public/xterm-color-palette.html
@@ -0,0 +1,112 @@
1<!doctype html><html lang=en-us><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=generator content="JBMAFP - github.com/mitjafelicijan/jbmafp"><link href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL69vf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv76+/8LBwQkAAAAAAAAAAAAAAAC+vb3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL+9vf/Bv78JAAAAAAAAAAAAAAAAu7q6/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7ubr/vr29CAAAAAAAAAAAy8nJAZ6foP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnqGj/6GipAoAAAAAHLjU/xcXHf/BwsL/I8XY/yPK3v8XGiD/IbjL/yPF2f8XGiD/Fxkf/yLF2f8gnK3/Fxog/62ztv8fwNf/FRcd/x271v8mz93/GRsi/xkXHf8p097/GiIp/xobIv8p0t3/KdPe/xocIv8fYmr/KNPe/xoZH/8aHCL/J87c/xy81/8VFxz/IsPZ/8zS0/8XGiD/Ir/R/yPH2/8XGiD/Fxkf/yPH2/8dd4T/GBog/yPJ3f8jyNr/uru9/xcUGv8cudb/EhITDKi5vRKlvMP/RUpOERwcHRAdOj4QHTk8EBwdHRAdNTgQHTo/EBwcHRAcHB0QSGduEKW4vf+koqQfHzg+EBqz0ewSFRv7EyMr/xq51vsTERb7ExUb+xq41fsau9j7ExUb+xiPp/sZudb7ExUb+xMVG/sZuNX/GKvI/BIUGfMdvdn/IrfL/xcaIP8n1eb/J9Dh/xkcIf8ZGR7/J8/f/xxCSv8ZGyH/J9Dg/ybQ4P8ZHCL/FSQs/yPK3/8UExj/GE1b/ybS5P8ZGB7/Ghwj/ynW5P8p2Ob/Ghwi/yWrtv8p1eH/Ghwi/xocIv8p1uT/J8XT/xkcIv8m1un/Hb7d/xUYH/8hzOr/HtHu/xcaIf8XGB//I8vi/xgxOv8XGSD/I8rg/yPK4P8XGiD/GUFL/yPP6f8SERj/Fhkh/x3A4f8AAAAAJ2f9/ydr//8mZPH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlYu38J2v//ydo/f8AAAAAAAAAAAd8/fkFqf//Iob8sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMY39awWr//8FfP3/AAAAAAAAAAAFm/7/SfD//wR+/f8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOB/f9B7v//BaX+/wAAAAAAAAAAQ878SAyZ/v9n1v4KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADu9v8DDJb+/z3N/XgAAAAA3/sAAN/7AADf+wAA3/sAAAAAAAAAAAAAAAAAAN/7AAAAAAAAAAAAAAAAAAAAAAAAj/EAAI/5AACP8QAA3/sAAA==" rel=icon type=image/x-icon><title>Display xterm color palette</title><meta name=description content="bash xterm-palette."><meta name=author content="Mitja Felicijan"><link rel=alternate type=application/rss+xml title="Mitja Felicijan's posts" href=https://mitjafelicijan.com/index.xml><link rel=alternate type=application/rss+xml title="Mitja Felicijan's notes" href=https://mitjafelicijan.com/notes.xml><style>:root{--border-color:gainsboro;--border-size:2px;--link-color:blue;--bg-color:#eee}body{padding:2.5rem;max-width:1900px;background:#fff;font-family:sans-serif;line-height:1.35rem;font-size:16px}hr{border:0;border-bottom:var(--border-size)solid var(--border-color);margin-block-start:1.5rem}a{color:var(--link-color);text-decoration:none}h1,h2,h3{line-height:initial}h1{font-size:xx-large}footer{margin-block-start:2rem}cap{text-transform:capitalize}blockquote{font-style:italic}table{max-width:100%;border:var(--border-size)solid var(--border-color);border-collapse:separate;border-spacing:0}table thead tr th{border-bottom:var(--border-size)solid var(--border-color);text-align:left}table th,table td{padding:.5em .8em}ul.list li{padding:.2em 0}ul{line-height:1.35em}pre{text-wrap:nowrap;overflow-x:auto;padding:0 1em;border:var(--border-size)solid var(--border-color)}code{padding:0 3px;font-size:14px;border:0;background:var(--bg-color)}pre code{line-height:1.3em;background:#fff}pre,code,pre *,code *{font-family:monospace}figure{margin-inline-start:0;margin-inline-end:0}figure img{}figcaption{text-align:center}figcaption p{margin:.3em 0 0}img,video,audio{width:800px;max-width:100%;border:var(--border-size)solid var(--border-color);padding:.5em}header nav{display:flex;gap:.9rem}article iframe{margin:0!important}audio::-webkit-media-controls-enclosure{border-radius:0}@media only screen and (max-width:600px){body{padding:.5em;word-wrap:break-word}header nav{gap:.7rem}header nav .hob{display:none}a{word-wrap:break-word}}</style><header><nav class=main itemscope itemtype=http://schema.org/SiteNavigationElement role=toolbar><a href=/>Home</a>
2<a href=/#posts>Posts</a>
3<a href=/#notes>Notes</a>
4<a href=/#sideprojects class=hob>Side Projects</a>
5<a href=/vault.html>Vault</a>
6<a href=https://github.com/mitjafelicijan target=_blank>Code</a>
7<a href=/mitjafelicijan.pgp.pub.txt target=_blank class=hob>PGP</a>
8<a href=/curriculum-vitae.html>CV</a>
9<a href=/index.xml target=_blank class=hob>RSS</a></nav></header><main role=main><article itemtype=http://schema.org/Article><h1 itemtype=headline>Display xterm color palette</h1><p><cap>note</cap>, May 25, 2023 on <a href=https://mitjafelicijan.com>Mitja Felicijan's blog</a><div><ul><li><code>bash xterm-palette.sh</code> - will show you number of max colors available<li><code>bash xterm-palette.sh -v</code> - will create a list of all colors with codes</ul><figure><img src=/notes/xterm-palette.png alt="xterm color palette"></figure><pre tabindex=0 style=background-color:#fff><code><span style=display:flex><span><span style=color:#00f>#!/usr/bin/env bash
10</span></span></span><span style=display:flex><span><span style=color:#00f></span><span style=color:green># xterm-palette.sh</span>
11</span></span><span style=display:flex><span>
12</span></span><span style=display:flex><span>trap <span style=color:#a31515>&#39;tput sgr0&#39;</span> exit <span style=color:green># Clean up even if user hits ^C</span>
13</span></span><span style=display:flex><span>
14</span></span><span style=display:flex><span><span style=color:#00f>function</span> setfg () {
15</span></span><span style=display:flex><span> printf <span style=color:#a31515>&#39;\e[38;5;%dm&#39;</span> $1
16</span></span><span style=display:flex><span>}
17</span></span><span style=display:flex><span>
18</span></span><span style=display:flex><span><span style=color:#00f>function</span> setbg () {
19</span></span><span style=display:flex><span> printf <span style=color:#a31515>&#39;\e[48;5;%dm&#39;</span> $1
20</span></span><span style=display:flex><span>}
21</span></span><span style=display:flex><span>
22</span></span><span style=display:flex><span><span style=color:#00f>function</span> showcolors() {
23</span></span><span style=display:flex><span> <span style=color:green># Given an integer, display that many colors</span>
24</span></span><span style=display:flex><span> <span style=color:#00f>for</span> ((i=0; i&lt;$1; i++))
25</span></span><span style=display:flex><span> <span style=color:#00f>do</span>
26</span></span><span style=display:flex><span> printf <span style=color:#a31515>&#39;%4d &#39;</span> $i
27</span></span><span style=display:flex><span> setbg $i
28</span></span><span style=display:flex><span> tput el
29</span></span><span style=display:flex><span> tput sgr0
30</span></span><span style=display:flex><span> echo
31</span></span><span style=display:flex><span> <span style=color:#00f>done</span>
32</span></span><span style=display:flex><span> tput sgr0 el
33</span></span><span style=display:flex><span>}
34</span></span><span style=display:flex><span>
35</span></span><span style=display:flex><span><span style=color:green># First, test if terminal supports OSC 4 at all.</span>
36</span></span><span style=display:flex><span>printf <span style=color:#a31515>&#39;\e]4;%d;?\a&#39;</span> 0
37</span></span><span style=display:flex><span>read -d <span style=color:#a31515>$&#39;\a&#39;</span> -s -t 0.1 &lt;/dev/tty
38</span></span><span style=display:flex><span><span style=color:#00f>if</span> [ -z <span style=color:#a31515>&#34;</span>$REPLY<span style=color:#a31515>&#34;</span> ]
39</span></span><span style=display:flex><span><span style=color:#00f>then</span>
40</span></span><span style=display:flex><span> <span style=color:green># OSC 4 not supported, so we&#39;ll fall back to terminfo</span>
41</span></span><span style=display:flex><span> max=<span style=color:#00f>$(</span>tput colors<span style=color:#00f>)</span>
42</span></span><span style=display:flex><span><span style=color:#00f>else</span>
43</span></span><span style=display:flex><span> <span style=color:green># OSC 4 is supported, so use it for a binary search</span>
44</span></span><span style=display:flex><span> min=0
45</span></span><span style=display:flex><span> max=256
46</span></span><span style=display:flex><span> <span style=color:#00f>while</span> [[ <span style=color:#00f>$((</span>min+1<span style=color:#00f>))</span> -lt $max ]]
47</span></span><span style=display:flex><span> <span style=color:#00f>do</span>
48</span></span><span style=display:flex><span> i=<span style=color:#00f>$((</span> (min+max)/2 <span style=color:#00f>))</span>
49</span></span><span style=display:flex><span> printf <span style=color:#a31515>&#39;\e]4;%d;?\a&#39;</span> $i
50</span></span><span style=display:flex><span> read -d <span style=color:#a31515>$&#39;\a&#39;</span> -s -t 0.1 &lt;/dev/tty
51</span></span><span style=display:flex><span> <span style=color:#00f>if</span> [ -z <span style=color:#a31515>&#34;</span>$REPLY<span style=color:#a31515>&#34;</span> ]
52</span></span><span style=display:flex><span> <span style=color:#00f>then</span>
53</span></span><span style=display:flex><span> max=$i
54</span></span><span style=display:flex><span> <span style=color:#00f>else</span>
55</span></span><span style=display:flex><span> min=$i
56</span></span><span style=display:flex><span> <span style=color:#00f>fi</span>
57</span></span><span style=display:flex><span> <span style=color:#00f>done</span>
58</span></span><span style=display:flex><span><span style=color:#00f>fi</span>
59</span></span><span style=display:flex><span>
60</span></span><span style=display:flex><span>
61</span></span><span style=display:flex><span><span style=color:green># If -v is given, show all the colors</span>
62</span></span><span style=display:flex><span><span style=color:#00f>case</span> <span style=color:#a31515>${</span>1-none<span style=color:#a31515>}</span> in
63</span></span><span style=display:flex><span> none)
64</span></span><span style=display:flex><span> echo $max
65</span></span><span style=display:flex><span> ;;
66</span></span><span style=display:flex><span> -v)
67</span></span><span style=display:flex><span> showcolors $max
68</span></span><span style=display:flex><span> ;;
69</span></span><span style=display:flex><span> *)
70</span></span><span style=display:flex><span> <span style=color:#00f>if</span> [[ <span style=color:#a31515>&#34;</span>$1<span style=color:#a31515>&#34;</span> -gt 0 ]]; <span style=color:#00f>then</span>
71</span></span><span style=display:flex><span> showcolors $1
72</span></span><span style=display:flex><span> <span style=color:#00f>else</span>
73</span></span><span style=display:flex><span> echo $max
74</span></span><span style=display:flex><span> <span style=color:#00f>fi</span>
75</span></span><span style=display:flex><span> ;;
76</span></span><span style=display:flex><span><span style=color:#00f>esac</span> | less --raw-control-chars --QUIT-AT-EOF --no-init
77</span></span></code></pre></div></article></main><section><hr><h2>Posts from blogs I follow around the net</h2><ul><li><a href=https://utcc.utoronto.ca/~cks/space/blog/linux/NFSv4ServerLockClients target=_blank rel=noopener>Finding which NFSv4 client owns a lock on a Linux NFS(v4) server</a> — <a href=https://utcc.utoronto.ca/~cks/space/blog/>Chris's Wiki :: blog</a><div>A while back I wrote an entry about finding which NFS client owns
78a lock on a Linux NFS server, which turned
79out to be specific to NFS v3 (which I really should have seen coming,
80since it involved NLM and lockd). Finding the NFS v4 client that
81owns a lock is, depending on your perspective, either simpl…<li><a href=http://www.landley.net/notes-2023.html#28-10-2023 target=_blank rel=noopener>October 28, 2023</a> — <a href=http://www.landley.net/notes-2023.html>Rob Landley's Blog Thing for 2023</a><div>Oh good grief, two of my least favorite licensing people, Larry Rosen
82and Bradley Kuhn, are interacting on the OSI's license-discuss
83list where the're doing
84bad computer history and insisting that a guy Larry Rosen
85coincidentally interviewed for a book years ago is clearly the origin of
86somethin…<li><a href="http://offbeatpursuit.com:80/blog/?id=25" target=_blank rel=noopener>A fix by any other name</a> — <a href=http://offbeatpursuit.com:80/blog/>WLOG - blog</a><div>tags:
87i2c, plan9
88Another month, another file system.
89Well, if you can’t fix it in software, fix it in hardware (looking at
90you, bme680, we’re not
91done yet). The show must go on, as they say, and I would like my
92experiments to go on.
93So a “new” addition to the environmental sensor family connected to
94the h…<li><a href=https://mirzapandzo.com/next-image-url-parameter-is-valid-but-upstream-response-is-invalid target=_blank rel=noopener>Next/Image "url" parameter is valid but upstream response is invalid</a> — <a href=https://mirzapandzo.com/>Mirza Pandzo's Blog</a><div>Getting "url" parameter is valid but upstream response is invalid error with Next/Image on WSL2<li><a href=https://drewdevault.com/2023/10/13/Going-off-script.html target=_blank rel=noopener>Going off-script</a> — <a href=https://drewdevault.com>Drew DeVault's blog</a><div>There is a phenomenon in society which I find quite bizarre. Upon our entry to
95this mortal coil, we are endowed with self-awareness, agency, and free will.
96Each of the 8 billion members of this human race represents a unique person, a
97unique worldview, and a unique agency. Yet, many of us have the sam…<li><a href=https://szymonkaliski.com/writing/2023-10-02-building-a-diy-pen-plotter/ target=_blank rel=noopener>Building a DIY Pen Plotter</a> — <a href=http://github.com/dylang/node-rss>Szymon Kaliski</a><div>This article documents my learnings from designing and building a DIY Pen Plotter during the summer of 2023.
98My ultimate goal is to build my…<li><a href=https://neil.computer/notes/chart-of-accounts-for-startups-and-saas-companies/ target=_blank rel=noopener>Chart of Accounts for Startups and SaaS Companies</a> — <a href=https://neil.computer/>Neil Panchal</a><div>Accounting is fundamental to starting a business. You need to have a basic understanding of accounting principles and essential bookkeeping. I had to learn it. There was no choice. For filing taxes, your CPA is going to ask you for an Income Statement (also known as P/L statement). If<li><a href=https://journal.valeriansaliou.name/deploy-a-nomad-cluster-on-alpine-linux-with-vultr/ target=_blank rel=noopener>Deploy a Nomad Cluster on Alpine Linux with Vultr</a> — <a href=https://journal.valeriansaliou.name/>Valerian Saliou</a><div>After spending countless hours trying to understand how to deploy my apps on Kubernetes for the first time to host Mirage, an AI API service that I run, I ended up making myself a promise that the next app I work on would be using a more productive & simpler<li><a href=https://jcs.org/2023/10/25/wifi_da target=_blank rel=noopener>BlueSCSI Wi-Fi Desk Accessory 1.0 Released</a> — <a href=https://jcs.org/>joshua stein</a><div>BlueSCSI Wi-Fi Desk Accessory
991.0 has been released:
100wifi_da-1.0.sit
101(StuffIt 3 archive)
102SHA256: ccfc9d27dd5da7412d10cef73b81119a1fec3848e4d1d88ff652a07ffdc6a69aSHA1: ff124972f202ceda6d7fa4788110a67ccda6a13a
103This is the initial public release of my BlueSCSI Wi-Fi Desk Accessory for
104classic MacOS.<li><a href=https://michael.stapelberg.ch/posts/2023-10-25-my-all-flash-zfs-network-storage-build/ target=_blank rel=noopener>My 2023 all-flash ZFS NAS (Network Storage) build</a> — <a href=https://michael.stapelberg.ch/>Michael Stapelbergs Website</a><div>For over 10 years now, I run two self-built NAS (Network Storage) devices which serve media (currently via Jellyfin) and run daily backups of all my PCs and servers.
105In this article, I describe my goals, which hardware I picked for my new build (and why) and how I set it up.
106Design Goals
107I use my netw…</ul><p>Generated with <a href=https://git.sr.ht/~sircmpwn/openring target=_blank rel=noopener>openring</a>.</section><footer><hr><p><big><strong>Want to comment or have something to add?</strong></big><p>You can write me an email
108at <a href=mailto:mitja.felicijan@gmail.com>mitja.felicijan@gmail.com</a> or
109catch up with me <a href=https://telegram.me/mitjafelicijan target=_blank>on Telegram</a>.<hr><p>This website does not track you. Content is made available under the <a href=https://creativecommons.org/licenses/by/4.0/ target=_blank rel=noreferrer>CC BY 4.0 license</a> unless
110specified otherwise. Blog is also available as <a href=/index.xml target=_blank>RSS feed</a>.</footer><script>
111 window.va = window.va || function () { (window.vaq = window.vaq || []).push(arguments); };
112 </script><script defer src=/_vercel/insights/script.js></script> \ No newline at end of file