diff options
| author | Paul Buetow <paul@buetow.org> | 2024-07-24 22:38:10 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2024-07-24 22:38:10 +0300 |
| commit | ceaf027da17c9214199086f90751b05e4e9abbd4 (patch) | |
| tree | 92f47ae0fa51bec45451f83989b11102176e711f /gemfeed | |
| parent | ec46fa28a79c3a842b2097ef70dd2700b019c9b9 (diff) | |
Update content for md
Diffstat (limited to 'gemfeed')
| -rw-r--r-- | gemfeed/2008-12-29-using-my-nokia-n95-for-fixing-my-mta.md | 2 | ||||
| -rw-r--r-- | gemfeed/2015-12-05-run-debian-on-your-phone-with-debroid.md | 2 | ||||
| -rw-r--r-- | gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux.md | 12 | ||||
| -rw-r--r-- | gemfeed/2021-04-22-dtail-the-distributed-log-tail-program.md | 6 | ||||
| -rw-r--r-- | gemfeed/2021-04-24-welcome-to-the-geminispace.md | 4 | ||||
| -rw-r--r-- | gemfeed/2021-06-05-gemtexter-one-bash-script-to-rule-it-all.md | 2 | ||||
| -rw-r--r-- | gemfeed/2021-07-04-the-well-grounded-rubyist.md | 4 | ||||
| -rw-r--r-- | gemfeed/2022-05-27-perl-is-still-a-great-choice.md | 4 | ||||
| -rw-r--r-- | gemfeed/2022-06-15-sweating-the-small-stuff.md | 4 | ||||
| -rw-r--r-- | gemfeed/2022-12-24-ultrarelearning-java-my-takeaways.md | 4 | ||||
| -rw-r--r-- | gemfeed/2023-06-01-kiss-server-monitoring-with-gogios.md | 2 | ||||
| -rw-r--r-- | gemfeed/2023-12-10-bash-golf-part-3.md | 2 | ||||
| -rw-r--r-- | gemfeed/2024-03-03-a-fine-fyne-android-app-for-quickly-logging-ideas-programmed-in-golang.md | 4 | ||||
| -rw-r--r-- | gemfeed/a-fine-fyne-android-app-for-quickly-logging-ideas-programmed-in-golang/logo-small.png (renamed from gemfeed/2024-03-03-a-fine-fyne-android-app-for-quickly-logging-ideas-programmed-in-golang/logo-small.png) | bin | 63314 -> 63314 bytes | |||
| -rw-r--r-- | gemfeed/a-fine-fyne-android-app-for-quickly-logging-ideas-programmed-in-golang/screenshot-android.png (renamed from gemfeed/2024-03-03-a-fine-fyne-android-app-for-quickly-logging-ideas-programmed-in-golang/screenshot-android.png) | bin | 45089 -> 45089 bytes | |||
| -rw-r--r-- | gemfeed/bash-golf-part-3/bash-fork-bomb.jpg (renamed from gemfeed/2023-12-10-bash-golf-part-3/bash-fork-bomb.jpg) | bin | 209399 -> 209399 bytes | |||
| -rw-r--r-- | gemfeed/dtail-the-distributed-log-tail-program/dgrep.gif (renamed from gemfeed/2021-04-22-dtail-the-distributed-log-tail-program/dgrep.gif) | bin | 142329 -> 142329 bytes | |||
| -rw-r--r-- | gemfeed/dtail-the-distributed-log-tail-program/dtail.gif (renamed from gemfeed/2021-04-22-dtail-the-distributed-log-tail-program/dtail.gif) | bin | 1984520 -> 1984520 bytes | |||
| -rw-r--r-- | gemfeed/dtail-the-distributed-log-tail-program/title.png (renamed from gemfeed/2021-04-22-dtail-the-distributed-log-tail-program/title.png) | bin | 84933 -> 84933 bytes | |||
| -rw-r--r-- | gemfeed/gemtexter-one-bash-script-to-rule-it-all/blog-engine.jpg (renamed from gemfeed/2021-06-05-gemtexter-one-bash-script-to-rule-it-all/blog-engine.jpg) | bin | 41291 -> 41291 bytes | |||
| -rw-r--r-- | gemfeed/kiss-server-monitoring-with-gogios/gogios-small.png (renamed from gemfeed/2023-06-01-kiss-server-monitoring-with-gogios/gogios-small.png) | bin | 56698 -> 56698 bytes | |||
| -rw-r--r-- | gemfeed/perl-is-still-a-great-choice/googletrendsperl.jpg (renamed from gemfeed/2022-05-27-perl-is-still-a-great-choice/googletrendsperl.jpg) | bin | 18537 -> 18537 bytes | |||
| -rw-r--r-- | gemfeed/perl-is-still-a-great-choice/regular_expressions.png (renamed from gemfeed/2022-05-27-perl-is-still-a-great-choice/regular_expressions.png) | bin | 107151 -> 107151 bytes | |||
| -rw-r--r-- | gemfeed/realistic-load-testing-with-ioriot-for-linux/figure1-ioriot-io-recording.png (renamed from gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux/figure1-ioriot-io-recording.png) | bin | 220247 -> 220247 bytes | |||
| -rw-r--r-- | gemfeed/realistic-load-testing-with-ioriot-for-linux/figure2-ioriot-test-preparation.png (renamed from gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux/figure2-ioriot-test-preparation.png) | bin | 208235 -> 208235 bytes | |||
| -rw-r--r-- | gemfeed/realistic-load-testing-with-ioriot-for-linux/figure3-ioriot-replay.png (renamed from gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux/figure3-ioriot-replay.png) | bin | 417034 -> 417034 bytes | |||
| -rw-r--r-- | gemfeed/realistic-load-testing-with-ioriot-for-linux/figure4-ioriot-read-latency.png (renamed from gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux/figure4-ioriot-read-latency.png) | bin | 39552 -> 39552 bytes | |||
| -rw-r--r-- | gemfeed/realistic-load-testing-with-ioriot-for-linux/figure5-ioriot-write-latency.png (renamed from gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux/figure5-ioriot-write-latency.png) | bin | 26547 -> 26547 bytes | |||
| -rw-r--r-- | gemfeed/realistic-load-testing-with-ioriot-for-linux/figure6-iostat.png (renamed from gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux/figure6-iostat.png) | bin | 294346 -> 294346 bytes | |||
| -rw-r--r-- | gemfeed/run-debian-on-your-phone-with-debroid/Deboroid.png (renamed from gemfeed/2015-12-05-run-debian-on-your-phone-with-debroid/Deboroid.png) | bin | 576510 -> 576510 bytes | |||
| -rw-r--r-- | gemfeed/sweating-the-small-stuff/jsmstrade.png (renamed from gemfeed/2022-06-15-sweating-the-small-stuff/jsmstrade.png) | bin | 13636 -> 13636 bytes | |||
| -rw-r--r-- | gemfeed/sweating-the-small-stuff/ninja.jpg (renamed from gemfeed/2022-06-15-sweating-the-small-stuff/ninja.jpg) | bin | 302772 -> 302772 bytes | |||
| -rw-r--r-- | gemfeed/the-well-grounded-rubyist/book-backside.jpg (renamed from gemfeed/2021-07-04-the-well-grounded-rubyist/book-backside.jpg) | bin | 179996 -> 179996 bytes | |||
| -rw-r--r-- | gemfeed/the-well-grounded-rubyist/book-cover.jpg (renamed from gemfeed/2021-07-04-the-well-grounded-rubyist/book-cover.jpg) | bin | 140259 -> 140259 bytes | |||
| -rw-r--r-- | gemfeed/ultrarelearning-java-my-takeaways/effective-java.jpg (renamed from gemfeed/2022-12-24-ultrarelearning-java-my-takeaways/effective-java.jpg) | bin | 187342 -> 187342 bytes | |||
| -rw-r--r-- | gemfeed/ultrarelearning-java-my-takeaways/learnjava.jpg (renamed from gemfeed/2022-12-24-ultrarelearning-java-my-takeaways/learnjava.jpg) | bin | 69628 -> 69628 bytes | |||
| -rw-r--r-- | gemfeed/using-my-nokia-n95-for-fixing-my-mta/nokia-n95.jpg (renamed from gemfeed/2008-12-29-using-my-nokia-n95-for-fixing-my-mta/nokia-n95.jpg) | bin | 379578 -> 379578 bytes | |||
| -rw-r--r-- | gemfeed/welcome-to-the-geminispace/amfora-screenshot.png (renamed from gemfeed/2021-04-24-welcome-to-the-geminispace/amfora-screenshot.png) | bin | 154951 -> 154951 bytes | |||
| -rw-r--r-- | gemfeed/welcome-to-the-geminispace/lagrange-screenshot.png (renamed from gemfeed/2021-04-24-welcome-to-the-geminispace/lagrange-screenshot.png) | bin | 104677 -> 104677 bytes |
39 files changed, 26 insertions, 26 deletions
diff --git a/gemfeed/2008-12-29-using-my-nokia-n95-for-fixing-my-mta.md b/gemfeed/2008-12-29-using-my-nokia-n95-for-fixing-my-mta.md index acb2a67e..7f92733b 100644 --- a/gemfeed/2008-12-29-using-my-nokia-n95-for-fixing-my-mta.md +++ b/gemfeed/2008-12-29-using-my-nokia-n95-for-fixing-my-mta.md @@ -23,7 +23,7 @@ The last week I was in Vidin, Bulgaria with no internet access and I had to fix My first attempt to find an internet café, which was working during Christmastime, failed. However, I found with my N95 phone lots of free WLAN hotspots. The hotspots refused me logging into my server using SSH as I have configured a non-standard port for SSH for security reasons. Without knowing the costs, I used the GPRS internet access of my German phone provider (yes, I had to pay roaming fees). -[](./2008-12-29-using-my-nokia-n95-for-fixing-my-mta/nokia-n95.jpg) +[](./using-my-nokia-n95-for-fixing-my-mta/nokia-n95.jpg) With Putty for N95 and configuring Postfix with Vim and the T9 input mechanism, I managed to fix the problem. But it took half of an hour: diff --git a/gemfeed/2015-12-05-run-debian-on-your-phone-with-debroid.md b/gemfeed/2015-12-05-run-debian-on-your-phone-with-debroid.md index ccb9113b..fd54242c 100644 --- a/gemfeed/2015-12-05-run-debian-on-your-phone-with-debroid.md +++ b/gemfeed/2015-12-05-run-debian-on-your-phone-with-debroid.md @@ -13,7 +13,7 @@ You can use the following tutorial to install a full-blown Debian GNU/Linux Chroot on an LG G3 D855 CyanogenMod 13 (Android 6). First of all, you need to have root permissions on your phone, and you also need to have the developer mode activated. The following steps have been tested on Linux (Fedora 23). -[](./2015-12-05-run-debian-on-your-phone-with-debroid/Deboroid.png) +[](./run-debian-on-your-phone-with-debroid/Deboroid.png) ## Foreword diff --git a/gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux.md b/gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux.md index 4b03f475..3c876f60 100644 --- a/gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux.md +++ b/gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux.md @@ -81,7 +81,7 @@ During recording, ioriot acts as a wrapper and executes all relevant Systemtap c % sudo ioriot -c io.capture ``` -[](./2018-06-01-realistic-load-testing-with-ioriot-for-linux/figure1-ioriot-io-recording.png) +[](./realistic-load-testing-with-ioriot-for-linux/figure1-ioriot-io-recording.png) A Ctrl-C (SIGINT) stops recording prematurely. Otherwise, ioriot terminates itself automatically after 1 hour. Depending on the system load, the output file can grow to several gigabytes. Only metadata is logged, not the read and written data itself. When replaying later, only random data is used. Under certain circumstances, Systemtap may omit some system calls and issue warnings. This is to ensure that Systemtap does not consume too many resources. @@ -105,7 +105,7 @@ The test will most likely want to access existing files. These are files the tes To avoid any damage to the running system, ioreplay only works in special directories. The tool creates a separate subdirectory for each file system mount point (e.g. /, /usr/local, /store/00,...) (here: /.ioriot/TESTNAME, /usr/local/.ioriot/TESTNAME, /store/00/.ioriot/TESTNAME,...). By default, the working directory of ioriot is /usr/local/ioriot/TESTNAME. -[](./2018-06-01-realistic-load-testing-with-ioriot-for-linux/figure2-ioriot-test-preparation.png) +[](./realistic-load-testing-with-ioriot-for-linux/figure2-ioriot-test-preparation.png) You must re-initialize the environment before each run. Data from previous tests will be moved to a trash directory automatically, which can be finally deleted with "sudo ioriot -P". @@ -115,7 +115,7 @@ After initialization, you can replay the log with -r. You can use -R to initiate You can also influence the playback speed: "-s 0" is interpreted as "Playback as fast as possible" and is the default setting. With "-s 1" all operations are performed at original speed. "-s 2" would double the playback speed and "-s 0.5" would halve it. -[](./2018-06-01-realistic-load-testing-with-ioriot-for-linux/figure3-ioriot-replay.png) +[](./realistic-load-testing-with-ioriot-for-linux/figure3-ioriot-replay.png) As an initial test, for example, you could compare the two Linux I/O schedulers CFQ and Deadline and check which scheduler the test runs the fastest. They run the test separately for each scheduler. The following shell loop iterates through all attached block devices of the system and changes their I/O scheduler to the one specified in variable $new_scheduler (in this case either cfq or deadline). Subsequently, all I/O events from the io.replay protocol are played back. At the end, an output file with statistics is generated: @@ -157,13 +157,13 @@ Total time: 1213.00s In any case, you should also set up a time series database, such as Graphite, where the I/O throughput can be plotted. Figures 4 and 5 show the read and write access times of both tests. The break-in makes it clear when the CFQ test ended and the deadline test was started. The reading latency of both tests is similar. Write latency is dramatically improved using the Deadline Scheduler. -[](./2018-06-01-realistic-load-testing-with-ioriot-for-linux/figure4-ioriot-read-latency.png) +[](./realistic-load-testing-with-ioriot-for-linux/figure4-ioriot-read-latency.png) -[](./2018-06-01-realistic-load-testing-with-ioriot-for-linux/figure5-ioriot-write-latency.png) +[](./realistic-load-testing-with-ioriot-for-linux/figure5-ioriot-write-latency.png) You should also take a look at the iostat tool. The iostat screenshot shows the output of iostat -x 10 during a test run. As you can see, a block device is fully loaded with 99% utilization, while all other block devices still have sufficient buffer. This could be an indication of poor data distribution in the storage system and is worth pursuing. It is not uncommon for I/O Riot to reveal software problems. -[](./2018-06-01-realistic-load-testing-with-ioriot-for-linux/figure6-iostat.png) +[](./realistic-load-testing-with-ioriot-for-linux/figure6-iostat.png) ## I/O Riot is Open Source diff --git a/gemfeed/2021-04-22-dtail-the-distributed-log-tail-program.md b/gemfeed/2021-04-22-dtail-the-distributed-log-tail-program.md index 8adf5491..ecfdcfd7 100644 --- a/gemfeed/2021-04-22-dtail-the-distributed-log-tail-program.md +++ b/gemfeed/2021-04-22-dtail-the-distributed-log-tail-program.md @@ -2,7 +2,7 @@ > Published at 2021-04-22T19:28:41+01:00; Updated at 2021-04-26 -[](./2021-04-22-dtail-the-distributed-log-tail-program/title.png) +[](./dtail-the-distributed-log-tail-program/title.png) This article first appeared at the Mimecast Engineering Blog but I made it available here in my personal internet site too. @@ -30,7 +30,7 @@ Why not just use a full-blown log management system? There are various Open-Sour DTail does not aim to replace any of the log management tools already available but is rather an additional tool crafted especially for ad-hoc debugging and troubleshooting purposes. DTail is cheap to operate as it does not require any dedicated hardware for log storage as it operates directly on the source of the logs. It means that there is a DTail server installed on all server boxes producing logs. This decentralized comes with the direct advantages that there is no introduced delay because the logs are not shipped to a central log storage device. The reduced complexity also makes it more robust against outages. You won’t be able to troubleshoot your distributed application very well if the log management infrastructure isn’t working either. -[](./2021-04-22-dtail-the-distributed-log-tail-program/dtail.gif) +[](./dtail-the-distributed-log-tail-program/dtail.gif) As a downside, you won’t be able to access any logs with DTail when the server is down. Furthermore, a server can store logs only up to a certain capacity as disks will fill up. For the purpose of ad-hoc debugging, these are not typically issues. Usually, it’s the application you want to debug and not the server. And disk space is rarely an issue for bare metal and VM-based systems these days, with sufficient space for several weeks’ worth of log storage being available. DTail also supports reading compressed logs. The currently supported compression algorithms are gzip and zstd. @@ -54,7 +54,7 @@ Following the UNIX philosophy, DTail includes multiple command-line commands eac * dgrep: The distributed grep client for searching text files for a regular expression pattern. * dmap: The distributed map-reduce client for aggregating stats from log files. -[](./2021-04-22-dtail-the-distributed-log-tail-program/dgrep.gif) +[](./dtail-the-distributed-log-tail-program/dgrep.gif) ## Usage example diff --git a/gemfeed/2021-04-24-welcome-to-the-geminispace.md b/gemfeed/2021-04-24-welcome-to-the-geminispace.md index a7231f44..e8443ea3 100644 --- a/gemfeed/2021-04-24-welcome-to-the-geminispace.md +++ b/gemfeed/2021-04-24-welcome-to-the-geminispace.md @@ -48,8 +48,8 @@ Around the same time, I discovered a relatively new, more lightweight protocol n The "downside" is that due to the limited capabilities of the Gemini protocol, all sites look very old and spartan. But that is not a downside; that is, in fact, a design choice people made. It is up to the client software how your capsule looks. For example, you could use a graphical client, such as Lagrange, with nice font renderings and colours to improve the appearance. Or you could use a very minimalistic command line black-and-white Gemini client. It's your (the user's) choice. -[](./2021-04-24-welcome-to-the-geminispace/amfora-screenshot.png) -[](./2021-04-24-welcome-to-the-geminispace/lagrange-screenshot.png) +[](./welcome-to-the-geminispace/amfora-screenshot.png) +[](./welcome-to-the-geminispace/lagrange-screenshot.png) Why is there a need for a new protocol? As the modern web is a superset of Gemini, can't we use simple HTML 1.0 instead? That's a good and valid question. It is not a technical problem but a human problem. We tend to abuse the features once they are available. You can ensure that things stay efficient and straightforward as long as you are using the Gemini protocol. On the other hand, you can't force every website on the modern web to only create plain and straightforward-looking HTML pages. diff --git a/gemfeed/2021-06-05-gemtexter-one-bash-script-to-rule-it-all.md b/gemfeed/2021-06-05-gemtexter-one-bash-script-to-rule-it-all.md index 41b23f71..86878339 100644 --- a/gemfeed/2021-06-05-gemtexter-one-bash-script-to-rule-it-all.md +++ b/gemfeed/2021-06-05-gemtexter-one-bash-script-to-rule-it-all.md @@ -51,7 +51,7 @@ This comes with the benefit that I can write content in my favourite text editor Another benefit of using Gemini is that the Gemtext markup language is easy to parse. As my site is dual-hosted (Gemini+HTTP), I could, in theory, just write a shell script to deal with the conversion from Gemtext to HTML; there is no need for a full-featured programming language here. I have done a lot of Bash in the past, but I am also often revisiting old tools and techniques for refreshing and keeping the knowledge up to date here. -[](./2021-06-05-gemtexter-one-bash-script-to-rule-it-all/blog-engine.jpg) +[](./gemtexter-one-bash-script-to-rule-it-all/blog-engine.jpg) I have exactly done that - I wrote a Bash script, named Gemtexter, for that: diff --git a/gemfeed/2021-07-04-the-well-grounded-rubyist.md b/gemfeed/2021-07-04-the-well-grounded-rubyist.md index 290b6518..0e2b2def 100644 --- a/gemfeed/2021-07-04-the-well-grounded-rubyist.md +++ b/gemfeed/2021-07-04-the-well-grounded-rubyist.md @@ -6,11 +6,11 @@ When I was a Linux System Administrator, I have been programming in Perl for yea You should learn or try out one new programming language once yearly anyway. If you end up not using the new language, that's not a problem. You will learn new techniques with each new programming language and this also helps you to improve your overall programming skills even for other languages. Also, having some background in a similar programming language makes it reasonably easy to get started. Besides that, learning a new programming language is kick-a** fun! -[](./2021-07-04-the-well-grounded-rubyist/book-cover.jpg) +[](./the-well-grounded-rubyist/book-cover.jpg) Superficially, Perl seems to have many similarities to Ruby (but, of course, it is entirely different to Perl when you look closer), which pushed me towards Ruby instead of Python. I have tried Python a couple of times before, and I managed to write good code, but I never felt satisfied with the language. I didn't love the syntax, especially the indentations used; they always confused me. I don't dislike Python, but I don't prefer to program in it if I have a choice, especially when there are more propelling alternatives available. Personally, it's so much more fun to program in Ruby than in Python. -[](./2021-07-04-the-well-grounded-rubyist/book-backside.jpg) +[](./the-well-grounded-rubyist/book-backside.jpg) Yukihiro Matsumoto, the inventor of Ruby, said: "I wanted a scripting language that was more powerful than Perl and more object-oriented than Python" - So I can see where some of the similarities come from. I personally don't believe that Ruby is more powerful than Perl, though, especially when you take CPAN and/or Perl 6 (now known as Raku) into the equation. Well, it all depends on what you mean with "more powerful". But I want to stay pragmatic and use what's already used at my workplace. diff --git a/gemfeed/2022-05-27-perl-is-still-a-great-choice.md b/gemfeed/2022-05-27-perl-is-still-a-great-choice.md index 4462b862..e56858e6 100644 --- a/gemfeed/2022-05-27-perl-is-still-a-great-choice.md +++ b/gemfeed/2022-05-27-perl-is-still-a-great-choice.md @@ -2,13 +2,13 @@ > Published at 2022-05-27T07:50:12+01:00; Updated at 2023-01-28 -[](./2022-05-27-perl-is-still-a-great-choice/regular_expressions.png) +[](./perl-is-still-a-great-choice/regular_expressions.png) Perl (the Practical Extraction and Report Language) is a battle-tested, mature, multi-paradigm dynamic programming language. Note that it's not called PERL, neither P.E.R.L. nor Pearl. "Perl" is the name of the language and `perl` the name of the interpreter or the interpreter command. Unfortunately (it makes me sad), Perl's popularity has been declining over the last years as Google trends shows: -[](./2022-05-27-perl-is-still-a-great-choice/googletrendsperl.jpg) +[](./perl-is-still-a-great-choice/googletrendsperl.jpg) So why is that? Once the de-facto standard super-glue language for the web nowadays seems to have a bad reputation. Often, people state: diff --git a/gemfeed/2022-06-15-sweating-the-small-stuff.md b/gemfeed/2022-06-15-sweating-the-small-stuff.md index bf4b2549..cbc0311f 100644 --- a/gemfeed/2022-06-15-sweating-the-small-stuff.md +++ b/gemfeed/2022-06-15-sweating-the-small-stuff.md @@ -47,7 +47,7 @@ But now, let's continue with the small projects worth mentioning :-) Photography is one of my casual hobbies. I love to capture interesting perspectives and motifs. I love to walk new streets and neighbourhoods I never walked before so I can capture those unexpected motifs, colours and moments. Unfortunately, because of time constraints (and sometime weather constraints), I do that on a pretty infrequent basis. -[](./2022-06-15-sweating-the-small-stuff/ninja.jpg) +[](./sweating-the-small-stuff/ninja.jpg) More than 10 years ago I wrote the bespoke small static photo album generator in Bash `photoalbum.sh` which I recently refactored to a modern Bash coding style and also freshened up the Cascading Style Sheets. Last but not least, the new domain name `irregular.ninja` has been registered. @@ -229,7 +229,7 @@ This is a shell script for the Mutt email client for delaying sending out E-Mail `jsmstrade` is a minimalistic graphical Java swing client for sending SMS messages over the SMStrade service. -[](./2022-06-15-sweating-the-small-stuff/jsmstrade.png) +[](./sweating-the-small-stuff/jsmstrade.png) [https://codeberg.org/snonux/jsmstrade](https://codeberg.org/snonux/jsmstrade) [https://smstrade.de](https://smstrade.de) diff --git a/gemfeed/2022-12-24-ultrarelearning-java-my-takeaways.md b/gemfeed/2022-12-24-ultrarelearning-java-my-takeaways.md index 220401a4..90f57d05 100644 --- a/gemfeed/2022-12-24-ultrarelearning-java-my-takeaways.md +++ b/gemfeed/2022-12-24-ultrarelearning-java-my-takeaways.md @@ -2,7 +2,7 @@ > Published at 2022-12-24T23:18:40+02:00 -[](./2022-12-24-ultrarelearning-java-my-takeaways/learnjava.jpg) +[](./ultrarelearning-java-my-takeaways/learnjava.jpg) As a regular participant in the annual Pet Project competition at work, I always try to find a project where I can learn something new. In this post, I would like to share my takeaways after revisiting Java. You can read about my motivations in my "Creative universe" post: @@ -26,7 +26,7 @@ Over time, I had been missing out on many new features that were added to the la This book was recommended by my brother and also by at least another colleague at work to be one of the best, if not the best, book about Java programming. I read the whole book from the beginning to the end and immersed myself in it. I fully agree; this is a great book. Every Java developer or Java software engineer should read it! -[](./2022-12-24-ultrarelearning-java-my-takeaways/effective-java.jpg) +[](./ultrarelearning-java-my-takeaways/effective-java.jpg) I recommend reading the 90-part effective Java Series on `dev.to`. It's a perfect companion to the book as it explains all the chapters again but from a slightly different perspective and helps you to really understand the content. diff --git a/gemfeed/2023-06-01-kiss-server-monitoring-with-gogios.md b/gemfeed/2023-06-01-kiss-server-monitoring-with-gogios.md index 981a63a8..a9a6393b 100644 --- a/gemfeed/2023-06-01-kiss-server-monitoring-with-gogios.md +++ b/gemfeed/2023-06-01-kiss-server-monitoring-with-gogios.md @@ -2,7 +2,7 @@ > Published at 2023-06-01T21:10:17+03:00 -[](./2023-06-01-kiss-server-monitoring-with-gogios/gogios-small.png) +[](./kiss-server-monitoring-with-gogios/gogios-small.png) ## Introduction diff --git a/gemfeed/2023-12-10-bash-golf-part-3.md b/gemfeed/2023-12-10-bash-golf-part-3.md index 570793a7..5efbb1e8 100644 --- a/gemfeed/2023-12-10-bash-golf-part-3.md +++ b/gemfeed/2023-12-10-bash-golf-part-3.md @@ -73,7 +73,7 @@ So, it's a fork bomb. If you run it, your computer will run out of resources eve And here is the cute illustration: -[](./2023-12-10-bash-golf-part-3/bash-fork-bomb.jpg) +[](./bash-golf-part-3/bash-fork-bomb.jpg) ## Inner functions diff --git a/gemfeed/2024-03-03-a-fine-fyne-android-app-for-quickly-logging-ideas-programmed-in-golang.md b/gemfeed/2024-03-03-a-fine-fyne-android-app-for-quickly-logging-ideas-programmed-in-golang.md index 5665b5e9..9da20108 100644 --- a/gemfeed/2024-03-03-a-fine-fyne-android-app-for-quickly-logging-ideas-programmed-in-golang.md +++ b/gemfeed/2024-03-03-a-fine-fyne-android-app-for-quickly-logging-ideas-programmed-in-golang.md @@ -6,7 +6,7 @@ I am an ideas person. I find myself frequently somewhere on the streets with an I have tried many note apps for my Android (I use GrapheneOS) phone. Most of them either don't do what I want, are proprietary software, require Google Play services (I have the main profile on my phone de-googled) or are too bloated. I was never into mobile app development, as I'm not too fond of the complexity of the developer toolchains. I don't want to use Android Studio (as a NeoVim user), and I don't want to use Java or Kotlin. I want to use a language I know (and like) for mobile app development. Go would be one of those languages. -[](2024-03-03-a-fine-fyne-android-app-for-quickly-logging-ideas-programmed-in-golang/logo-small.png) +[](a-fine-fyne-android-app-for-quickly-logging-ideas-programmed-in-golang/logo-small.png) Enter Quick logger – a compact GUI Android (well, cross-platform due to Fyne) app I've crafted using Go and the nifty Fyne framework. With Fyne, the app can be compiled easily into an Android APK. As of this writing, this app's whole Go source code is only 75 lines short!! This little tool is designed for spontaneous moments, allowing me to quickly log my thoughts as plain text files on my Android phone. There are no fancy file formats. Just plain text! @@ -26,7 +26,7 @@ Quick logger's user interface is as minimal as it gets. When I launch Quick logg For the code-savvy folks out there, Quick logger is a neat example of what you can achieve with Go and Fyne. It's a testament to building functional, cross-platform apps without getting bogged down in the nitty-gritty of platform-specific details. Thanks to Fyne, I am pleased with how easy it is to make mobile Android apps in Go. -[](2024-03-03-a-fine-fyne-android-app-for-quickly-logging-ideas-programmed-in-golang/screenshot-android.png) +[](a-fine-fyne-android-app-for-quickly-logging-ideas-programmed-in-golang/screenshot-android.png) My Android apps will never be polished, but they will get the job done, and this is precisely how I want them to be. Minimalistic but functional. I could spend more time polishing Quick logger, but my Quick logger app then may be the same as any other notes app out there (complicated or bloated). diff --git a/gemfeed/2024-03-03-a-fine-fyne-android-app-for-quickly-logging-ideas-programmed-in-golang/logo-small.png b/gemfeed/a-fine-fyne-android-app-for-quickly-logging-ideas-programmed-in-golang/logo-small.png Binary files differindex dc29011c..dc29011c 100644 --- a/gemfeed/2024-03-03-a-fine-fyne-android-app-for-quickly-logging-ideas-programmed-in-golang/logo-small.png +++ b/gemfeed/a-fine-fyne-android-app-for-quickly-logging-ideas-programmed-in-golang/logo-small.png diff --git a/gemfeed/2024-03-03-a-fine-fyne-android-app-for-quickly-logging-ideas-programmed-in-golang/screenshot-android.png b/gemfeed/a-fine-fyne-android-app-for-quickly-logging-ideas-programmed-in-golang/screenshot-android.png Binary files differindex a8a604e3..a8a604e3 100644 --- a/gemfeed/2024-03-03-a-fine-fyne-android-app-for-quickly-logging-ideas-programmed-in-golang/screenshot-android.png +++ b/gemfeed/a-fine-fyne-android-app-for-quickly-logging-ideas-programmed-in-golang/screenshot-android.png diff --git a/gemfeed/2023-12-10-bash-golf-part-3/bash-fork-bomb.jpg b/gemfeed/bash-golf-part-3/bash-fork-bomb.jpg Binary files differindex 6967c03a..6967c03a 100644 --- a/gemfeed/2023-12-10-bash-golf-part-3/bash-fork-bomb.jpg +++ b/gemfeed/bash-golf-part-3/bash-fork-bomb.jpg diff --git a/gemfeed/2021-04-22-dtail-the-distributed-log-tail-program/dgrep.gif b/gemfeed/dtail-the-distributed-log-tail-program/dgrep.gif Binary files differindex e2f2ac64..e2f2ac64 100644 --- a/gemfeed/2021-04-22-dtail-the-distributed-log-tail-program/dgrep.gif +++ b/gemfeed/dtail-the-distributed-log-tail-program/dgrep.gif diff --git a/gemfeed/2021-04-22-dtail-the-distributed-log-tail-program/dtail.gif b/gemfeed/dtail-the-distributed-log-tail-program/dtail.gif Binary files differindex 8f6b56bf..8f6b56bf 100644 --- a/gemfeed/2021-04-22-dtail-the-distributed-log-tail-program/dtail.gif +++ b/gemfeed/dtail-the-distributed-log-tail-program/dtail.gif diff --git a/gemfeed/2021-04-22-dtail-the-distributed-log-tail-program/title.png b/gemfeed/dtail-the-distributed-log-tail-program/title.png Binary files differindex 4e343c4f..4e343c4f 100644 --- a/gemfeed/2021-04-22-dtail-the-distributed-log-tail-program/title.png +++ b/gemfeed/dtail-the-distributed-log-tail-program/title.png diff --git a/gemfeed/2021-06-05-gemtexter-one-bash-script-to-rule-it-all/blog-engine.jpg b/gemfeed/gemtexter-one-bash-script-to-rule-it-all/blog-engine.jpg Binary files differindex 844bc9fc..844bc9fc 100644 --- a/gemfeed/2021-06-05-gemtexter-one-bash-script-to-rule-it-all/blog-engine.jpg +++ b/gemfeed/gemtexter-one-bash-script-to-rule-it-all/blog-engine.jpg diff --git a/gemfeed/2023-06-01-kiss-server-monitoring-with-gogios/gogios-small.png b/gemfeed/kiss-server-monitoring-with-gogios/gogios-small.png Binary files differindex aebe695c..aebe695c 100644 --- a/gemfeed/2023-06-01-kiss-server-monitoring-with-gogios/gogios-small.png +++ b/gemfeed/kiss-server-monitoring-with-gogios/gogios-small.png diff --git a/gemfeed/2022-05-27-perl-is-still-a-great-choice/googletrendsperl.jpg b/gemfeed/perl-is-still-a-great-choice/googletrendsperl.jpg Binary files differindex 397c9f29..397c9f29 100644 --- a/gemfeed/2022-05-27-perl-is-still-a-great-choice/googletrendsperl.jpg +++ b/gemfeed/perl-is-still-a-great-choice/googletrendsperl.jpg diff --git a/gemfeed/2022-05-27-perl-is-still-a-great-choice/regular_expressions.png b/gemfeed/perl-is-still-a-great-choice/regular_expressions.png Binary files differindex acbc2437..acbc2437 100644 --- a/gemfeed/2022-05-27-perl-is-still-a-great-choice/regular_expressions.png +++ b/gemfeed/perl-is-still-a-great-choice/regular_expressions.png diff --git a/gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux/figure1-ioriot-io-recording.png b/gemfeed/realistic-load-testing-with-ioriot-for-linux/figure1-ioriot-io-recording.png Binary files differindex 43ac852f..43ac852f 100644 --- a/gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux/figure1-ioriot-io-recording.png +++ b/gemfeed/realistic-load-testing-with-ioriot-for-linux/figure1-ioriot-io-recording.png diff --git a/gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux/figure2-ioriot-test-preparation.png b/gemfeed/realistic-load-testing-with-ioriot-for-linux/figure2-ioriot-test-preparation.png Binary files differindex 709d7490..709d7490 100644 --- a/gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux/figure2-ioriot-test-preparation.png +++ b/gemfeed/realistic-load-testing-with-ioriot-for-linux/figure2-ioriot-test-preparation.png diff --git a/gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux/figure3-ioriot-replay.png b/gemfeed/realistic-load-testing-with-ioriot-for-linux/figure3-ioriot-replay.png Binary files differindex 3bd66b6f..3bd66b6f 100644 --- a/gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux/figure3-ioriot-replay.png +++ b/gemfeed/realistic-load-testing-with-ioriot-for-linux/figure3-ioriot-replay.png diff --git a/gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux/figure4-ioriot-read-latency.png b/gemfeed/realistic-load-testing-with-ioriot-for-linux/figure4-ioriot-read-latency.png Binary files differindex 160b2305..160b2305 100644 --- a/gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux/figure4-ioriot-read-latency.png +++ b/gemfeed/realistic-load-testing-with-ioriot-for-linux/figure4-ioriot-read-latency.png diff --git a/gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux/figure5-ioriot-write-latency.png b/gemfeed/realistic-load-testing-with-ioriot-for-linux/figure5-ioriot-write-latency.png Binary files differindex e30efdbb..e30efdbb 100644 --- a/gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux/figure5-ioriot-write-latency.png +++ b/gemfeed/realistic-load-testing-with-ioriot-for-linux/figure5-ioriot-write-latency.png diff --git a/gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux/figure6-iostat.png b/gemfeed/realistic-load-testing-with-ioriot-for-linux/figure6-iostat.png Binary files differindex 0d3fc0d8..0d3fc0d8 100644 --- a/gemfeed/2018-06-01-realistic-load-testing-with-ioriot-for-linux/figure6-iostat.png +++ b/gemfeed/realistic-load-testing-with-ioriot-for-linux/figure6-iostat.png diff --git a/gemfeed/2015-12-05-run-debian-on-your-phone-with-debroid/Deboroid.png b/gemfeed/run-debian-on-your-phone-with-debroid/Deboroid.png Binary files differindex f76cf226..f76cf226 100644 --- a/gemfeed/2015-12-05-run-debian-on-your-phone-with-debroid/Deboroid.png +++ b/gemfeed/run-debian-on-your-phone-with-debroid/Deboroid.png diff --git a/gemfeed/2022-06-15-sweating-the-small-stuff/jsmstrade.png b/gemfeed/sweating-the-small-stuff/jsmstrade.png Binary files differindex ce5276f8..ce5276f8 100644 --- a/gemfeed/2022-06-15-sweating-the-small-stuff/jsmstrade.png +++ b/gemfeed/sweating-the-small-stuff/jsmstrade.png diff --git a/gemfeed/2022-06-15-sweating-the-small-stuff/ninja.jpg b/gemfeed/sweating-the-small-stuff/ninja.jpg Binary files differindex 8a036323..8a036323 100644 --- a/gemfeed/2022-06-15-sweating-the-small-stuff/ninja.jpg +++ b/gemfeed/sweating-the-small-stuff/ninja.jpg diff --git a/gemfeed/2021-07-04-the-well-grounded-rubyist/book-backside.jpg b/gemfeed/the-well-grounded-rubyist/book-backside.jpg Binary files differindex 2190e679..2190e679 100644 --- a/gemfeed/2021-07-04-the-well-grounded-rubyist/book-backside.jpg +++ b/gemfeed/the-well-grounded-rubyist/book-backside.jpg diff --git a/gemfeed/2021-07-04-the-well-grounded-rubyist/book-cover.jpg b/gemfeed/the-well-grounded-rubyist/book-cover.jpg Binary files differindex b5a00063..b5a00063 100644 --- a/gemfeed/2021-07-04-the-well-grounded-rubyist/book-cover.jpg +++ b/gemfeed/the-well-grounded-rubyist/book-cover.jpg diff --git a/gemfeed/2022-12-24-ultrarelearning-java-my-takeaways/effective-java.jpg b/gemfeed/ultrarelearning-java-my-takeaways/effective-java.jpg Binary files differindex 213c6e03..213c6e03 100644 --- a/gemfeed/2022-12-24-ultrarelearning-java-my-takeaways/effective-java.jpg +++ b/gemfeed/ultrarelearning-java-my-takeaways/effective-java.jpg diff --git a/gemfeed/2022-12-24-ultrarelearning-java-my-takeaways/learnjava.jpg b/gemfeed/ultrarelearning-java-my-takeaways/learnjava.jpg Binary files differindex 4c3b9e7b..4c3b9e7b 100644 --- a/gemfeed/2022-12-24-ultrarelearning-java-my-takeaways/learnjava.jpg +++ b/gemfeed/ultrarelearning-java-my-takeaways/learnjava.jpg diff --git a/gemfeed/2008-12-29-using-my-nokia-n95-for-fixing-my-mta/nokia-n95.jpg b/gemfeed/using-my-nokia-n95-for-fixing-my-mta/nokia-n95.jpg Binary files differindex 6a11be8b..6a11be8b 100644 --- a/gemfeed/2008-12-29-using-my-nokia-n95-for-fixing-my-mta/nokia-n95.jpg +++ b/gemfeed/using-my-nokia-n95-for-fixing-my-mta/nokia-n95.jpg diff --git a/gemfeed/2021-04-24-welcome-to-the-geminispace/amfora-screenshot.png b/gemfeed/welcome-to-the-geminispace/amfora-screenshot.png Binary files differindex 093aec79..093aec79 100644 --- a/gemfeed/2021-04-24-welcome-to-the-geminispace/amfora-screenshot.png +++ b/gemfeed/welcome-to-the-geminispace/amfora-screenshot.png diff --git a/gemfeed/2021-04-24-welcome-to-the-geminispace/lagrange-screenshot.png b/gemfeed/welcome-to-the-geminispace/lagrange-screenshot.png Binary files differindex 478d2fdd..478d2fdd 100644 --- a/gemfeed/2021-04-24-welcome-to-the-geminispace/lagrange-screenshot.png +++ b/gemfeed/welcome-to-the-geminispace/lagrange-screenshot.png |
