diff options
| author | Mitja Felicijan <m@mitjafelicijan.com> | 2023-08-05 12:09:37 +0200 |
|---|---|---|
| committer | Mitja Felicijan <m@mitjafelicijan.com> | 2023-08-05 12:09:37 +0200 |
| commit | 2f5ea5f4982d6276881c9a3342ed8847ebc7d326 (patch) | |
| tree | c405cf24bce11c00d7d453bdd18995cf8cda97aa /content/posts | |
| parent | c181dc5c37435029a0f5f2c51d6f36da4d32afd5 (diff) | |
| download | mitjafelicijan.com-2f5ea5f4982d6276881c9a3342ed8847ebc7d326.tar.gz | |
Moved assets to posts
Diffstat (limited to 'content/posts')
22 files changed, 83 insertions, 83 deletions
diff --git a/content/posts/2017-03-07-golang-profiling-simplified.md b/content/posts/2017-03-07-golang-profiling-simplified.md index ee3a210..f0821c5 100644 --- a/content/posts/2017-03-07-golang-profiling-simplified.md +++ b/content/posts/2017-03-07-golang-profiling-simplified.md | |||
| @@ -121,6 +121,6 @@ go tool pprof -pdf ./cpu cpu.pprof > cpu.pdf | |||
| 121 | 121 | ||
| 122 | This will generate PDF document with visualized profile. | 122 | This will generate PDF document with visualized profile. |
| 123 | 123 | ||
| 124 | - [Memory PDF profile example](/assets/go-profiling/golang-profiling-mem.pdf) | 124 | - [Memory PDF profile example](/posts/go-profiling/golang-profiling-mem.pdf) |
| 125 | - [CPU PDF profile example](/assets/go-profiling/golang-profiling-cpu.pdf) | 125 | - [CPU PDF profile example](/posts/go-profiling/golang-profiling-cpu.pdf) |
| 126 | 126 | ||
diff --git a/content/posts/2017-04-21-profiling-python-web-applications-with-visual-tools.md b/content/posts/2017-04-21-profiling-python-web-applications-with-visual-tools.md index d1cea7c..8617abe 100644 --- a/content/posts/2017-04-21-profiling-python-web-applications-with-visual-tools.md +++ b/content/posts/2017-04-21-profiling-python-web-applications-with-visual-tools.md | |||
| @@ -21,7 +21,7 @@ If you are using MacOS you should check out [Profiling | |||
| 21 | Viewer](http://www.profilingviewer.com/) or | 21 | Viewer](http://www.profilingviewer.com/) or |
| 22 | [MacCallGrind](http://www.maccallgrind.com/). | 22 | [MacCallGrind](http://www.maccallgrind.com/). |
| 23 | 23 | ||
| 24 |  | 24 |  |
| 25 | 25 | ||
| 26 | We will be dividing this post into two main categories: | 26 | We will be dividing this post into two main categories: |
| 27 | 27 | ||
| @@ -146,7 +146,7 @@ will be using Profilling Viewer under MacOS. You can open image in new tab. As | |||
| 146 | you can see from this example there is hierarchy of execution order of your | 146 | you can see from this example there is hierarchy of execution order of your |
| 147 | code. | 147 | code. |
| 148 | 148 | ||
| 149 |  | 149 |  |
| 150 | 150 | ||
| 151 | > Make sure you convert output of the cProfile output every time you want to | 151 | > Make sure you convert output of the cProfile output every time you want to |
| 152 | refresh and take a look at your possible optimizations because cProfile updates | 152 | refresh and take a look at your possible optimizations because cProfile updates |
| @@ -177,7 +177,7 @@ $ snakeviz awesome_random_number.prof | |||
| 177 | # shows visualized profile | 177 | # shows visualized profile |
| 178 | ``` | 178 | ``` |
| 179 | 179 | ||
| 180 |  | 180 |  |
| 181 | 181 | ||
| 182 | Reddit user [ccharles](https://www.reddit.com/user/ccharles) suggested a better | 182 | Reddit user [ccharles](https://www.reddit.com/user/ccharles) suggested a better |
| 183 | way for installing pip software by targeting user level instead of using sudo. | 183 | way for installing pip software by targeting user level instead of using sudo. |
diff --git a/content/posts/2017-08-11-simple-iot-application.md b/content/posts/2017-08-11-simple-iot-application.md index 00a7802..e31ac55 100644 --- a/content/posts/2017-08-11-simple-iot-application.md +++ b/content/posts/2017-08-11-simple-iot-application.md | |||
| @@ -50,7 +50,7 @@ to API and another to serving HTML with chart. | |||
| 50 | Schema below represents what we will try to achieve and how different parts | 50 | Schema below represents what we will try to achieve and how different parts |
| 51 | correlates to each other. | 51 | correlates to each other. |
| 52 | 52 | ||
| 53 |  | 53 |  |
| 54 | 54 | ||
| 55 | ## Simple Python API | 55 | ## Simple Python API |
| 56 | 56 | ||
| @@ -218,12 +218,12 @@ available via POST method on /api route. | |||
| 218 | After testing the service with Restlet Client you should be able to view your | 218 | After testing the service with Restlet Client you should be able to view your |
| 219 | data in a database file ```data.db```. | 219 | data in a database file ```data.db```. |
| 220 | 220 | ||
| 221 |  | 221 |  |
| 222 | 222 | ||
| 223 | You can also check the contents of new database file by using desktop client | 223 | You can also check the contents of new database file by using desktop client |
| 224 | for SQLite → [DB Browser for SQLite](http://sqlitebrowser.org/). | 224 | for SQLite → [DB Browser for SQLite](http://sqlitebrowser.org/). |
| 225 | 225 | ||
| 226 |  | 226 |  |
| 227 | 227 | ||
| 228 | Table structure is as simple as it can be. We have ts (timestamp) and value | 228 | Table structure is as simple as it can be. We have ts (timestamp) and value |
| 229 | (value from Arduino). As you can see timestamp is generated on API side. If you | 229 | (value from Arduino). As you can see timestamp is generated on API side. If you |
| @@ -585,10 +585,10 @@ every 5 seconds. | |||
| 585 | If you navigate to ```http://0.0.0.0:5000``` you should see rendered chart as | 585 | If you navigate to ```http://0.0.0.0:5000``` you should see rendered chart as |
| 586 | shown on picture below. | 586 | shown on picture below. |
| 587 | 587 | ||
| 588 |  | 588 |  |
| 589 | 589 | ||
| 590 | Complete application with all the code is available for | 590 | Complete application with all the code is available for |
| 591 | [download](/assets/iot-application/simple-iot-application.zip). | 591 | [download](/posts/iot-application/simple-iot-application.zip). |
| 592 | 592 | ||
| 593 | ## Conclusion | 593 | ## Conclusion |
| 594 | 594 | ||
diff --git a/content/posts/2018-01-16-using-digitalocean-spaces-object-storage-with-fuse.md b/content/posts/2018-01-16-using-digitalocean-spaces-object-storage-with-fuse.md index d2fa558..5ba7b64 100644 --- a/content/posts/2018-01-16-using-digitalocean-spaces-object-storage-with-fuse.md +++ b/content/posts/2018-01-16-using-digitalocean-spaces-object-storage-with-fuse.md | |||
| @@ -55,7 +55,7 @@ Instuctions on how to use SSH keys and how to setup them are available in | |||
| 55 | article [How To Use SSH Keys with DigitalOcean | 55 | article [How To Use SSH Keys with DigitalOcean |
| 56 | Droplets](https://www.digitalocean.com/community/tutorials/how-to-use-ssh-keys-with-digitalocean-droplets). | 56 | Droplets](https://www.digitalocean.com/community/tutorials/how-to-use-ssh-keys-with-digitalocean-droplets). |
| 57 | 57 | ||
| 58 |  | 58 |  |
| 59 | 59 | ||
| 60 | After we created Droplet it's time to create new Space. This is done by clicking | 60 | After we created Droplet it's time to create new Space. This is done by clicking |
| 61 | on a button [Create](https://cloud.digitalocean.com/spaces/new) (right top | 61 | on a button [Create](https://cloud.digitalocean.com/spaces/new) (right top |
| @@ -68,7 +68,7 @@ key](https://cloud.digitalocean.com/settings/api/tokens). This link will guide | |||
| 68 | to the page when you can generate this key. After you create new one, please | 68 | to the page when you can generate this key. After you create new one, please |
| 69 | save provided Key and Secret because Secret will not be shown again. | 69 | save provided Key and Secret because Secret will not be shown again. |
| 70 | 70 | ||
| 71 |  | 71 |  |
| 72 | 72 | ||
| 73 | Now that we have new Space and Access key we should SSH into our machine. | 73 | Now that we have new Space and Access key we should SSH into our machine. |
| 74 | 74 | ||
| @@ -147,7 +147,7 @@ please send me your data. I would be interested in seeing results. | |||
| 147 | 147 | ||
| 148 | **Here are plotted results** | 148 | **Here are plotted results** |
| 149 | 149 | ||
| 150 | You can download [raw result here](/assets/do-fuse/copy-benchmarks.tsv). | 150 | You can download [raw result here](/posts/do-fuse/copy-benchmarks.tsv). |
| 151 | Measurements are in seconds. | 151 | Measurements are in seconds. |
| 152 | 152 | ||
| 153 | <script src="//cdn.plot.ly/plotly-latest.min.js"></script> | 153 | <script src="//cdn.plot.ly/plotly-latest.min.js"></script> |
| @@ -155,7 +155,7 @@ Measurements are in seconds. | |||
| 155 | <script> | 155 | <script> |
| 156 | (function(){ | 156 | (function(){ |
| 157 | var request = new XMLHttpRequest(); | 157 | var request = new XMLHttpRequest(); |
| 158 | request.open("GET", "/assets/do-fuse/copy-benchmarks.tsv", true); | 158 | request.open("GET", "/posts/do-fuse/copy-benchmarks.tsv", true); |
| 159 | request.onload = function() { | 159 | request.onload = function() { |
| 160 | if (request.status >= 200 && request.status < 400) { | 160 | if (request.status >= 200 && request.status < 400) { |
| 161 | var payload = request.responseText.trim(); | 161 | var payload = request.responseText.trim(); |
| @@ -271,7 +271,7 @@ result_time = CLOSE = end_time - start_time | |||
| 271 | print("CLOSE: %g seconds" % (result_time)) | 271 | print("CLOSE: %g seconds" % (result_time)) |
| 272 | ``` | 272 | ``` |
| 273 | 273 | ||
| 274 | You can download [raw result here](/assets/do-fuse/sqlite-benchmarks.tsv). And | 274 | You can download [raw result here](/posts/do-fuse/sqlite-benchmarks.tsv). And |
| 275 | again, these results are done on a local block storage and do not represent | 275 | again, these results are done on a local block storage and do not represent |
| 276 | capabilities of object storage. With my current approach and state of the test | 276 | capabilities of object storage. With my current approach and state of the test |
| 277 | code these can not be done. I would need to make Python code much more robust | 277 | code these can not be done. I would need to make Python code much more robust |
| @@ -281,7 +281,7 @@ and check locking etc. | |||
| 281 | <script> | 281 | <script> |
| 282 | (function(){ | 282 | (function(){ |
| 283 | var request = new XMLHttpRequest(); | 283 | var request = new XMLHttpRequest(); |
| 284 | request.open("GET", "/assets/do-fuse/sqlite-benchmarks.tsv", true); | 284 | request.open("GET", "/posts/do-fuse/sqlite-benchmarks.tsv", true); |
| 285 | request.onload = function() { | 285 | request.onload = function() { |
| 286 | if (request.status >= 200 && request.status < 400) { | 286 | if (request.status >= 200 && request.status < 400) { |
| 287 | var payload = request.responseText.trim(); | 287 | var payload = request.responseText.trim(); |
diff --git a/content/posts/2019-01-03-encoding-binary-data-into-dna-sequence.md b/content/posts/2019-01-03-encoding-binary-data-into-dna-sequence.md index b285756..f003fc3 100644 --- a/content/posts/2019-01-03-encoding-binary-data-into-dna-sequence.md +++ b/content/posts/2019-01-03-encoding-binary-data-into-dna-sequence.md | |||
| @@ -109,7 +109,7 @@ The nucleotide in DNA consists of a sugar (deoxyribose), one of four bases | |||
| 109 | Cytosine and thymine are pyrimidine bases, while adenine and guanine are purine | 109 | Cytosine and thymine are pyrimidine bases, while adenine and guanine are purine |
| 110 | bases. The sugar and the base together are called a nucleoside. | 110 | bases. The sugar and the base together are called a nucleoside. |
| 111 | 111 | ||
| 112 |  | 112 |  |
| 113 | 113 | ||
| 114 | *DNA (a) forms a double stranded helix, and (b) adenine pairs with thymine and | 114 | *DNA (a) forms a double stranded helix, and (b) adenine pairs with thymine and |
| 115 | cytosine pairs with guanine. (credit a: modification of work by Jerome Walker, | 115 | cytosine pairs with guanine. (credit a: modification of work by Jerome Walker, |
| @@ -300,13 +300,13 @@ Then we encode FASTA file from previous operation to encode this data into PNG. | |||
| 300 | 300 | ||
| 301 | After encoding into PNG format this file looks like this. | 301 | After encoding into PNG format this file looks like this. |
| 302 | 302 | ||
| 303 |  | 303 |  |
| 304 | 304 | ||
| 305 | The larger the input stream is the larger the PNG file would be. | 305 | The larger the input stream is the larger the PNG file would be. |
| 306 | 306 | ||
| 307 | Compiled basic Hello World C program with | 307 | Compiled basic Hello World C program with |
| 308 | [GCC](https://www.gnu.org/software/gcc/) would [look | 308 | [GCC](https://www.gnu.org/software/gcc/) would [look |
| 309 | like](/assets/dna-sequence/sample.png). | 309 | like](/posts/dna-sequence/sample.png). |
| 310 | 310 | ||
| 311 | ```c | 311 | ```c |
| 312 | // gcc -O3 -o sample sample.c | 312 | // gcc -O3 -o sample sample.c |
| @@ -372,7 +372,7 @@ dd if=<(openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count= | |||
| 372 | Our freshly generated 1KB file looks something like this (its full of garbage | 372 | Our freshly generated 1KB file looks something like this (its full of garbage |
| 373 | data as intended). | 373 | data as intended). |
| 374 | 374 | ||
| 375 |  | 375 |  |
| 376 | 376 | ||
| 377 | We create following binary files: | 377 | We create following binary files: |
| 378 | 378 | ||
| @@ -398,9 +398,9 @@ gzip -9 < 10MB.fa > 10MB.fa.gz | |||
| 398 | 398 | ||
| 399 | [Download ODS file with benchmarks](/dna-sequence/benchmarks.ods). | 399 | [Download ODS file with benchmarks](/dna-sequence/benchmarks.ods). |
| 400 | 400 | ||
| 401 |  | 401 |  |
| 402 | 402 | ||
| 403 |  | 403 |  |
| 404 | 404 | ||
| 405 | ## References | 405 | ## References |
| 406 | 406 | ||
diff --git a/content/posts/2019-10-19-using-sentiment-analysis-for-clickbait-detection.md b/content/posts/2019-10-19-using-sentiment-analysis-for-clickbait-detection.md index 8322e70..d5729ed 100644 --- a/content/posts/2019-10-19-using-sentiment-analysis-for-clickbait-detection.md +++ b/content/posts/2019-10-19-using-sentiment-analysis-for-clickbait-detection.md | |||
| @@ -92,12 +92,12 @@ plt.show() | |||
| 92 | longer period of time and then perform analysis again and use either machine | 92 | longer period of time and then perform analysis again and use either machine |
| 93 | learning or deep learning on top of it. | 93 | learning or deep learning on top of it. |
| 94 | 94 | ||
| 95 |  | 95 |  |
| 96 | 96 | ||
| 97 | Figure above displays difference between title and description sentiment for | 97 | Figure above displays difference between title and description sentiment for |
| 98 | specific RSS feed item. 1 means positive and -1 means negative sentiment. | 98 | specific RSS feed item. 1 means positive and -1 means negative sentiment. |
| 99 | 99 | ||
| 100 | [» Download Jupyter Notebook](/assets/sentiment-analysis/sentiment-analysis.ipynb) | 100 | [» Download Jupyter Notebook](/posts/sentiment-analysis/sentiment-analysis.ipynb) |
| 101 | 101 | ||
| 102 | ## Going further | 102 | ## Going further |
| 103 | 103 | ||
diff --git a/content/posts/2020-03-22-simple-sse-based-pubsub-server.md b/content/posts/2020-03-22-simple-sse-based-pubsub-server.md index 8e46138..cf5a5d9 100644 --- a/content/posts/2020-03-22-simple-sse-based-pubsub-server.md +++ b/content/posts/2020-03-22-simple-sse-based-pubsub-server.md | |||
| @@ -38,7 +38,7 @@ simple. We have subscribers that receive messages, and we have publishers that | |||
| 38 | create and post messages. Similar model is also well know pattern that works on | 38 | create and post messages. Similar model is also well know pattern that works on |
| 39 | a premise of consumers and producers, and they take similar roles. | 39 | a premise of consumers and producers, and they take similar roles. |
| 40 | 40 | ||
| 41 |  | 41 |  |
| 42 | 42 | ||
| 43 | **These are some naive characteristics we want to achieve:** | 43 | **These are some naive characteristics we want to achieve:** |
| 44 | 44 | ||
| @@ -74,7 +74,7 @@ page](https://html.spec.whatwg.org/multipage/server-sent-events.html). | |||
| 74 | 74 | ||
| 75 | ### Current browser support | 75 | ### Current browser support |
| 76 | 76 | ||
| 77 |  | 77 |  |
| 78 | 78 | ||
| 79 | Check | 79 | Check |
| 80 | [https://caniuse.com/#feat=eventsource](https://caniuse.com/#feat=eventsource) | 80 | [https://caniuse.com/#feat=eventsource](https://caniuse.com/#feat=eventsource) |
| @@ -142,7 +142,7 @@ which is quite nice and available from Developer Tools under Network tab. | |||
| 142 | > ones. For debugging server events add `console.log` to `server.js` code and | 142 | > ones. For debugging server events add `console.log` to `server.js` code and |
| 143 | > print out events. | 143 | > print out events. |
| 144 | 144 | ||
| 145 |  | 145 |  |
| 146 | 146 | ||
| 147 | ## Server implementation | 147 | ## Server implementation |
| 148 | 148 | ||
| @@ -281,7 +281,7 @@ nicer and maintanable. | |||
| 281 | 281 | ||
| 282 | ### Publisher and subscriber in action | 282 | ### Publisher and subscriber in action |
| 283 | 283 | ||
| 284 | <video src="/assets/simple-pubsub-server/clients.m4v" controls></video> | 284 | <video src="/posts/simple-pubsub-server/clients.m4v" controls></video> |
| 285 | 285 | ||
| 286 | You can download [the code](../simple-pubsub-server/sse-pubsub-server.zip) and | 286 | You can download [the code](../simple-pubsub-server/sse-pubsub-server.zip) and |
| 287 | follow along. | 287 | follow along. |
diff --git a/content/posts/2020-09-06-esp-and-micropython.md b/content/posts/2020-09-06-esp-and-micropython.md index 6a2d5fe..4591811 100644 --- a/content/posts/2020-09-06-esp-and-micropython.md +++ b/content/posts/2020-09-06-esp-and-micropython.md | |||
| @@ -19,7 +19,7 @@ but I could easily choose | |||
| 19 | contains which tools I use and how I prepared my workspace to code for | 19 | contains which tools I use and how I prepared my workspace to code for |
| 20 | [ESP8266](https://www.espressif.com/en/products/socs/esp8266). | 20 | [ESP8266](https://www.espressif.com/en/products/socs/esp8266). |
| 21 | 21 | ||
| 22 |  | 22 |  |
| 23 | 23 | ||
| 24 | This guide covers: | 24 | This guide covers: |
| 25 | 25 | ||
diff --git a/content/posts/2020-09-08-bind-warning-on-login.md b/content/posts/2020-09-08-bind-warning-on-login.md index f213cd9..cb1e0e5 100644 --- a/content/posts/2020-09-08-bind-warning-on-login.md +++ b/content/posts/2020-09-08-bind-warning-on-login.md | |||
| @@ -30,7 +30,7 @@ bind '"\e[Z":menu-complete-backward' | |||
| 30 | I haven't noticed anything wrong with this and all was working fine until I | 30 | I haven't noticed anything wrong with this and all was working fine until I |
| 31 | restarted my machine and then I got this error. | 31 | restarted my machine and then I got this error. |
| 32 | 32 | ||
| 33 |  | 33 |  |
| 34 | 34 | ||
| 35 | When I pressed OK, I got into the [Gnome | 35 | When I pressed OK, I got into the [Gnome |
| 36 | shell](https://wiki.gnome.org/Projects/GnomeShell) and all was working fine, but | 36 | shell](https://wiki.gnome.org/Projects/GnomeShell) and all was working fine, but |
diff --git a/content/posts/2021-01-24-replacing-dropbox-with-s3.md b/content/posts/2021-01-24-replacing-dropbox-with-s3.md index a44a1aa..7724c9c 100644 --- a/content/posts/2021-01-24-replacing-dropbox-with-s3.md +++ b/content/posts/2021-01-24-replacing-dropbox-with-s3.md | |||
| @@ -105,7 +105,7 @@ You can use this script in a combination with [Cron](https://en.wikipedia.org/wi | |||
| 105 | When you start syncing your local stuff with a remote server you can review your | 105 | When you start syncing your local stuff with a remote server you can review your |
| 106 | items on DigitalOcean. | 106 | items on DigitalOcean. |
| 107 | 107 | ||
| 108 |  | 108 |  |
| 109 | 109 | ||
| 110 | I have been using this script now for quite some time, and it's working | 110 | I have been using this script now for quite some time, and it's working |
| 111 | flawlessly. I also uninstalled Dropbox and stopped using it completely. | 111 | flawlessly. I also uninstalled Dropbox and stopped using it completely. |
diff --git a/content/posts/2021-01-25-goaccess.md b/content/posts/2021-01-25-goaccess.md index 0eb2461..06c3999 100644 --- a/content/posts/2021-01-25-goaccess.md +++ b/content/posts/2021-01-25-goaccess.md | |||
| @@ -41,10 +41,10 @@ all the functionalities I need, and it's a single binary. Written in Go. | |||
| 41 | 41 | ||
| 42 | GoAccess can be used in two different modes. | 42 | GoAccess can be used in two different modes. |
| 43 | 43 | ||
| 44 |  | 44 |  |
| 45 | <center><i>Running in a terminal</i></center> | 45 | <center><i>Running in a terminal</i></center> |
| 46 | 46 | ||
| 47 |  | 47 |  |
| 48 | <center><i>Running in a browser</i></center> | 48 | <center><i>Running in a browser</i></center> |
| 49 | 49 | ||
| 50 | I, however, need this to run in a browser. So, the second option is the way to | 50 | I, however, need this to run in a browser. So, the second option is the way to |
diff --git a/content/posts/2021-06-26-simple-world-clock.md b/content/posts/2021-06-26-simple-world-clock.md index 0c17f09..6f6e137 100644 --- a/content/posts/2021-06-26-simple-world-clock.md +++ b/content/posts/2021-06-26-simple-world-clock.md | |||
| @@ -23,7 +23,7 @@ have a bunch of [Raspberry Pi's | |||
| 23 | Zero](https://www.raspberrypi.org/products/raspberry-pi-zero/) lying around that | 23 | Zero](https://www.raspberrypi.org/products/raspberry-pi-zero/) lying around that |
| 24 | I really need to use. | 24 | I really need to use. |
| 25 | 25 | ||
| 26 |  | 26 |  |
| 27 | 27 | ||
| 28 | Since the Inky [Inky | 28 | Since the Inky [Inky |
| 29 | pHAT](https://shop.pimoroni.com/products/inky-phat?variant=12549254217811) is | 29 | pHAT](https://shop.pimoroni.com/products/inky-phat?variant=12549254217811) is |
| @@ -94,7 +94,7 @@ Then we add a cronjob with `crontab -e`. | |||
| 94 | 94 | ||
| 95 | So, we end up with a result like this. | 95 | So, we end up with a result like this. |
| 96 | 96 | ||
| 97 |  | 97 |  |
| 98 | 98 | ||
| 99 | And for the enclosure that can be 3D printed, but I haven't yet something like | 99 | And for the enclosure that can be 3D printed, but I haven't yet something like |
| 100 | this can be used. | 100 | this can be used. |
| @@ -102,7 +102,7 @@ this can be used. | |||
| 102 | <iframe id="vs_iframe" src="https://www.viewstl.com/?embedded&url=https%3A%2F%2Fmitjafelicijan.com%2Fassets%2Fworld-clock%2Fenclosure.stl&color=gray&bgcolor=white&edges=no&orientation=front&noborder=no" style="border:0;margin:0;width:100%;height:400px;"></iframe> | 102 | <iframe id="vs_iframe" src="https://www.viewstl.com/?embedded&url=https%3A%2F%2Fmitjafelicijan.com%2Fassets%2Fworld-clock%2Fenclosure.stl&color=gray&bgcolor=white&edges=no&orientation=front&noborder=no" style="border:0;margin:0;width:100%;height:400px;"></iframe> |
| 103 | 103 | ||
| 104 | You can download my [STL file for the enclosure | 104 | You can download my [STL file for the enclosure |
| 105 | here](/assets/world-clock/enclosure.stl), but make sure that dimensions make | 105 | here](/posts/world-clock/enclosure.stl), but make sure that dimensions make |
| 106 | sense and also opening for USB port should be added or just use a drill and some | 106 | sense and also opening for USB port should be added or just use a drill and some |
| 107 | hot glue to make it stick in the enclosure. | 107 | hot glue to make it stick in the enclosure. |
| 108 | 108 | ||
diff --git a/content/posts/2021-12-03-debian-based-riced-up-distribution-for-developers.md b/content/posts/2021-12-03-debian-based-riced-up-distribution-for-developers.md index 58c9b0d..8c2a870 100644 --- a/content/posts/2021-12-03-debian-based-riced-up-distribution-for-developers.md +++ b/content/posts/2021-12-03-debian-based-riced-up-distribution-for-developers.md | |||
| @@ -76,35 +76,35 @@ Fonts being applied across the distro and things like that. | |||
| 76 | First, I choose terminal installer and left it to load additional components. | 76 | First, I choose terminal installer and left it to load additional components. |
| 77 | Avoid using graphical installer in this case. | 77 | Avoid using graphical installer in this case. |
| 78 | 78 | ||
| 79 |  | 79 |  |
| 80 | 80 | ||
| 81 | After that I selected hostname and created a normal user and set password for | 81 | After that I selected hostname and created a normal user and set password for |
| 82 | that user and root user and choose guided mode for disk partitioning. | 82 | that user and root user and choose guided mode for disk partitioning. |
| 83 | 83 | ||
| 84 |  | 84 |  |
| 85 | 85 | ||
| 86 | I left it run to install all the things required for the base system and opted | 86 | I left it run to install all the things required for the base system and opted |
| 87 | out of scanning additional media for use by the package manager. Those will be | 87 | out of scanning additional media for use by the package manager. Those will be |
| 88 | downloaded from the internet during installation. | 88 | downloaded from the internet during installation. |
| 89 | 89 | ||
| 90 |  | 90 |  |
| 91 | 91 | ||
| 92 | I opted out of the popularity contest, and **now comes the important part**. | 92 | I opted out of the popularity contest, and **now comes the important part**. |
| 93 | Uncheck all the boxes in Software selection and only leave 'standard system | 93 | Uncheck all the boxes in Software selection and only leave 'standard system |
| 94 | utilities'. I also left an SSH server, so I was able to log in to the machine | 94 | utilities'. I also left an SSH server, so I was able to log in to the machine |
| 95 | from my main PC. | 95 | from my main PC. |
| 96 | 96 | ||
| 97 |  | 97 |  |
| 98 | 98 | ||
| 99 | At this point, I installed GRUB bootloader on the disk where I installed the | 99 | At this point, I installed GRUB bootloader on the disk where I installed the |
| 100 | system. | 100 | system. |
| 101 | 101 | ||
| 102 |  | 102 |  |
| 103 | 103 | ||
| 104 | That concluded the installation of base Debian and after restarting the computer | 104 | That concluded the installation of base Debian and after restarting the computer |
| 105 | I was prompted with the login screen. | 105 | I was prompted with the login screen. |
| 106 | 106 | ||
| 107 |  | 107 |  |
| 108 | 108 | ||
| 109 | Now that I had the base installation, it was time to choose what software do I | 109 | Now that I had the base installation, it was time to choose what software do I |
| 110 | want to include in this so-called distribution. I wanted out of the box | 110 | want to include in this so-called distribution. I wanted out of the box |
| @@ -141,7 +141,7 @@ What I was doing in Gnome was having windows in a layout like the diagram | |||
| 141 | below. This is my common practice. And if you look at it you can clearly see I | 141 | below. This is my common practice. And if you look at it you can clearly see I |
| 142 | was replicating tiling window manager setup in Gnome. | 142 | was replicating tiling window manager setup in Gnome. |
| 143 | 143 | ||
| 144 |  | 144 |  |
| 145 | 145 | ||
| 146 | That made me look into a bunch of tiling window managers and then tested them | 146 | That made me look into a bunch of tiling window managers and then tested them |
| 147 | out. Candidates I was looking at were: | 147 | out. Candidates I was looking at were: |
| @@ -211,7 +211,7 @@ something similar. | |||
| 211 | 211 | ||
| 212 | This is some of the output from the installation script. | 212 | This is some of the output from the installation script. |
| 213 | 213 | ||
| 214 |  | 214 |  |
| 215 | 215 | ||
| 216 | Let's take a look at some examples in the installation script. | 216 | Let's take a look at some examples in the installation script. |
| 217 | 217 | ||
| @@ -273,4 +273,4 @@ And this is how it looks with two terminals side by side. I really like the | |||
| 273 | simplicity and clean interface. I will polish the colors and stuff like that, | 273 | simplicity and clean interface. I will polish the colors and stuff like that, |
| 274 | but I really do like the results. | 274 | but I really do like the results. |
| 275 | 275 | ||
| 276 |  | 276 |  |
diff --git a/content/posts/2021-12-25-running-golang-application-as-pid1.md b/content/posts/2021-12-25-running-golang-application-as-pid1.md index 10543f2..251ef4f 100644 --- a/content/posts/2021-12-25-running-golang-application-as-pid1.md +++ b/content/posts/2021-12-25-running-golang-application-as-pid1.md | |||
| @@ -23,7 +23,7 @@ Really worth a read. | |||
| 23 | If we compare a normal operating system to a unikernel side by side, they would | 23 | If we compare a normal operating system to a unikernel side by side, they would |
| 24 | look something like this. | 24 | look something like this. |
| 25 | 25 | ||
| 26 |  | 26 |  |
| 27 | 27 | ||
| 28 | From this image, we can see how the complexity significantly decreases with | 28 | From this image, we can see how the complexity significantly decreases with |
| 29 | the use of Unikernels. This comes with a price, of course. Unikernels are hard | 29 | the use of Unikernels. This comes with a price, of course. Unikernels are hard |
| @@ -252,7 +252,7 @@ Hello from Golang | |||
| 252 | Hello from Golang | 252 | Hello from Golang |
| 253 | ``` | 253 | ``` |
| 254 | 254 | ||
| 255 | The whole [log file here](/assets/pid1/qemu.log). | 255 | The whole [log file here](/posts/pid1/qemu.log). |
| 256 | 256 | ||
| 257 | ## Size comparison | 257 | ## Size comparison |
| 258 | 258 | ||
| @@ -328,7 +328,7 @@ genisoimage -R \ | |||
| 328 | This will produce `GoAsPID1.iso` which you can use with [Virtualbox](https://www.virtualbox.org/) | 328 | This will produce `GoAsPID1.iso` which you can use with [Virtualbox](https://www.virtualbox.org/) |
| 329 | or [Gnome Boxes](https://apps.gnome.org/app/org.gnome.Boxes/). | 329 | or [Gnome Boxes](https://apps.gnome.org/app/org.gnome.Boxes/). |
| 330 | 330 | ||
| 331 | <video src="/assets/pid1/boxes.mp4" controls></video> | 331 | <video src="/posts/pid1/boxes.mp4" controls></video> |
| 332 | 332 | ||
| 333 | ## Is running applications as PID 1 even worth it? | 333 | ## Is running applications as PID 1 even worth it? |
| 334 | 334 | ||
diff --git a/content/posts/2021-12-30-wap-mobile-web-before-the-web.md b/content/posts/2021-12-30-wap-mobile-web-before-the-web.md index 442943b..5e7ff38 100644 --- a/content/posts/2021-12-30-wap-mobile-web-before-the-web.md +++ b/content/posts/2021-12-30-wap-mobile-web-before-the-web.md | |||
| @@ -32,7 +32,7 @@ These phones were rocking: | |||
| 32 | 32 | ||
| 33 | Let's take a look at these beauties. | 33 | Let's take a look at these beauties. |
| 34 | 34 | ||
| 35 |  | 35 |  |
| 36 | 36 | ||
| 37 | ## WAP - Wireless Application Protocol | 37 | ## WAP - Wireless Application Protocol |
| 38 | 38 | ||
| @@ -184,7 +184,7 @@ emulator. And it was really hard to find one. I found [WAP | |||
| 184 | Proof](http://wap-proof.sharewarejunction.com/) on shareware junction, and it | 184 | Proof](http://wap-proof.sharewarejunction.com/) on shareware junction, and it |
| 185 | did the job well enough. I will try to find and actual device to test it on. | 185 | did the job well enough. I will try to find and actual device to test it on. |
| 186 | 186 | ||
| 187 | <video src="/assets/wap/emulator.mp4" controls></video> | 187 | <video src="/posts/wap/emulator.mp4" controls></video> |
| 188 | 188 | ||
| 189 | If you are using Nginx to serve the contents, add a directive to the hosts file | 189 | If you are using Nginx to serve the contents, add a directive to the hosts file |
| 190 | that will automatically server `index.wml` file. | 190 | that will automatically server `index.wml` file. |
diff --git a/content/posts/2022-06-30-trying-out-helix-editor.md b/content/posts/2022-06-30-trying-out-helix-editor.md index 305d4b7..dc4cfed 100644 --- a/content/posts/2022-06-30-trying-out-helix-editor.md +++ b/content/posts/2022-06-30-trying-out-helix-editor.md | |||
| @@ -47,7 +47,7 @@ popups that show you what the keyboard shortcuts are. | |||
| 47 | And it comes us packed with many | 47 | And it comes us packed with many |
| 48 | [really good themes](https://github.com/helix-editor/helix/wiki/Themes). | 48 | [really good themes](https://github.com/helix-editor/helix/wiki/Themes). |
| 49 | 49 | ||
| 50 |  | 50 |  |
| 51 | 51 | ||
| 52 | It's still young but has this mature feeling to it. It has sane defaults and | 52 | It's still young but has this mature feeling to it. It has sane defaults and |
| 53 | mimics Vim (works a bit differently, but the overall idea is similar). | 53 | mimics Vim (works a bit differently, but the overall idea is similar). |
diff --git a/content/posts/2022-07-05-what-would-dna-sound-if-synthesized.md b/content/posts/2022-07-05-what-would-dna-sound-if-synthesized.md index 968341c..cf0755f 100644 --- a/content/posts/2022-07-05-what-would-dna-sound-if-synthesized.md +++ b/content/posts/2022-07-05-what-would-dna-sound-if-synthesized.md | |||
| @@ -174,10 +174,10 @@ sox output.wav -n spectrogram -o spectrogram.png | |||
| 174 | An example spectrogram of Ludwig van Beethoven Symphony No. 6 First movement. | 174 | An example spectrogram of Ludwig van Beethoven Symphony No. 6 First movement. |
| 175 | 175 | ||
| 176 | <audio controls> | 176 | <audio controls> |
| 177 | <source src="/assets/dna-synthesized/symphony-no6-1st-movement.mp3" type="audio/mpeg"> | 177 | <source src="/posts/dna-synthesized/symphony-no6-1st-movement.mp3" type="audio/mpeg"> |
| 178 | </audio> | 178 | </audio> |
| 179 | 179 | ||
| 180 |  | 180 |  |
| 181 | 181 | ||
| 182 | The other option could also be in combination with | 182 | The other option could also be in combination with |
| 183 | [gnuplot](http://www.gnuplot.info/). This would require an intermediary step, | 183 | [gnuplot](http://www.gnuplot.info/). This would require an intermediary step, |
| @@ -229,10 +229,10 @@ spectrogram based on a WAV file. | |||
| 229 | ### Niels Bohr quote | 229 | ### Niels Bohr quote |
| 230 | 230 | ||
| 231 | <audio controls> | 231 | <audio controls> |
| 232 | <source src="/assets/dna-synthesized/quote/out.mp3" type="audio/mpeg"> | 232 | <source src="/posts/dna-synthesized/quote/out.mp3" type="audio/mpeg"> |
| 233 | </audio> | 233 | </audio> |
| 234 | 234 | ||
| 235 |  | 235 |  |
| 236 | 236 | ||
| 237 | ### Mouse | 237 | ### Mouse |
| 238 | 238 | ||
| @@ -241,10 +241,10 @@ can get [genom data | |||
| 241 | here](http://ftp.ensembl.org/pub/release-106/fasta/mus_musculus/dna/). | 241 | here](http://ftp.ensembl.org/pub/release-106/fasta/mus_musculus/dna/). |
| 242 | 242 | ||
| 243 | <audio controls> | 243 | <audio controls> |
| 244 | <source src="/assets/dna-synthesized/mouse/out.mp3" type="audio/mpeg"> | 244 | <source src="/posts/dna-synthesized/mouse/out.mp3" type="audio/mpeg"> |
| 245 | </audio> | 245 | </audio> |
| 246 | 246 | ||
| 247 |  | 247 |  |
| 248 | 248 | ||
| 249 | ### Bison | 249 | ### Bison |
| 250 | 250 | ||
| @@ -253,10 +253,10 @@ get [genom data | |||
| 253 | here](http://ftp.ensembl.org/pub/release-106/fasta/bison_bison_bison/cdna/). | 253 | here](http://ftp.ensembl.org/pub/release-106/fasta/bison_bison_bison/cdna/). |
| 254 | 254 | ||
| 255 | <audio controls> | 255 | <audio controls> |
| 256 | <source src="/assets/dna-synthesized/bison/out.mp3" type="audio/mpeg"> | 256 | <source src="/posts/dna-synthesized/bison/out.mp3" type="audio/mpeg"> |
| 257 | </audio> | 257 | </audio> |
| 258 | 258 | ||
| 259 |  | 259 |  |
| 260 | 260 | ||
| 261 | ### Taurus | 261 | ### Taurus |
| 262 | 262 | ||
| @@ -265,10 +265,10 @@ This is part of a taurus genome `Bos_taurus.ARS-UCD1.2.cdna`. You can get | |||
| 265 | here](http://ftp.ensembl.org/pub/release-106/fasta/bos_taurus/cdna/). | 265 | here](http://ftp.ensembl.org/pub/release-106/fasta/bos_taurus/cdna/). |
| 266 | 266 | ||
| 267 | <audio controls> | 267 | <audio controls> |
| 268 | <source src="/assets/dna-synthesized/taurus/out.mp3" type="audio/mpeg"> | 268 | <source src="/posts/dna-synthesized/taurus/out.mp3" type="audio/mpeg"> |
| 269 | </audio> | 269 | </audio> |
| 270 | 270 | ||
| 271 |  | 271 |  |
| 272 | 272 | ||
| 273 | ## Making a drummer out of a DNA sequence | 273 | ## Making a drummer out of a DNA sequence |
| 274 | 274 | ||
| @@ -281,11 +281,11 @@ Elektron is connected to my MacBook via USB cable and audio out is patched to a | |||
| 281 | Sony Bluetooth speaker I have that supports 3.5 mm audio in. Elektron doesn't | 281 | Sony Bluetooth speaker I have that supports 3.5 mm audio in. Elektron doesn't |
| 282 | have internal speakers. | 282 | have internal speakers. |
| 283 | 283 | ||
| 284 |  | 284 |  |
| 285 | 285 | ||
| 286 |  | 286 |  |
| 287 | 287 | ||
| 288 |  | 288 |  |
| 289 | 289 | ||
| 290 | For communicating with Elektron, I choose `pygame` Python module that has MIDI | 290 | For communicating with Elektron, I choose `pygame` Python module that has MIDI |
| 291 | built in. With this, it was rather simple to send notes to the device. All I did | 291 | built in. With this, it was rather simple to send notes to the device. All I did |
| @@ -294,7 +294,7 @@ was map MIDI notes to the actual Nucleotides. | |||
| 294 | Before all of this I also checked Audio MIDI Setup app under MacOS and checked | 294 | Before all of this I also checked Audio MIDI Setup app under MacOS and checked |
| 295 | MIDI Studio by pressing ⌘-2. | 295 | MIDI Studio by pressing ⌘-2. |
| 296 | 296 | ||
| 297 |  | 297 |  |
| 298 | 298 | ||
| 299 | The whole script that parses and send notes to the Elektron looks like this. | 299 | The whole script that parses and send notes to the Elektron looks like this. |
| 300 | 300 | ||
| @@ -336,7 +336,7 @@ del player | |||
| 336 | pygame.midi.quit() | 336 | pygame.midi.quit() |
| 337 | ``` | 337 | ``` |
| 338 | 338 | ||
| 339 | <video src="/assets/dna-synthesized/elektron/elektron.mp4" controls></video> | 339 | <video src="/posts/dna-synthesized/elektron/elektron.mp4" controls></video> |
| 340 | 340 | ||
| 341 | All of this could be made much more interesting if I choose different | 341 | All of this could be made much more interesting if I choose different |
| 342 | instruments for different Nucleotides, or doing more funky stuff with Elektron. | 342 | instruments for different Nucleotides, or doing more funky stuff with Elektron. |
diff --git a/content/posts/2022-08-13-algae-spotted-on-river-sava.md b/content/posts/2022-08-13-algae-spotted-on-river-sava.md index ba2dd2b..34d891e 100644 --- a/content/posts/2022-08-13-algae-spotted-on-river-sava.md +++ b/content/posts/2022-08-13-algae-spotted-on-river-sava.md | |||
| @@ -14,17 +14,17 @@ This is the first time I've seen something like this in my whole life. | |||
| 14 | 14 | ||
| 15 | Below are some photographs taken from a DJI drone capturing the event. | 15 | Below are some photographs taken from a DJI drone capturing the event. |
| 16 | 16 | ||
| 17 |  | 17 |  |
| 18 | 18 | ||
| 19 |  | 19 |  |
| 20 | 20 | ||
| 21 |  | 21 |  |
| 22 | 22 | ||
| 23 |  | 23 |  |
| 24 | 24 | ||
| 25 |  | 25 |  |
| 26 | 26 | ||
| 27 |  | 27 |  |
| 28 | 28 | ||
| 29 | I will try to get more photos of this in the future days and if something | 29 | I will try to get more photos of this in the future days and if something |
| 30 | intriguing shows up will post it again on the blog. | 30 | intriguing shows up will post it again on the blog. |
diff --git a/content/posts/2022-10-06-state-of-web-technologies-in-year-2022.md b/content/posts/2022-10-06-state-of-web-technologies-in-year-2022.md index e5a0b74..e0beed8 100644 --- a/content/posts/2022-10-06-state-of-web-technologies-in-year-2022.md +++ b/content/posts/2022-10-06-state-of-web-technologies-in-year-2022.md | |||
| @@ -65,7 +65,7 @@ call them [transpilers](https://devopedia.org/transpiler), and I don’t care! ð | |||
| 65 | And if you want to fight this, take a look at this little chart and be mad at | 65 | And if you want to fight this, take a look at this little chart and be mad at |
| 66 | it! | 66 | it! |
| 67 | 67 | ||
| 68 |  | 68 |  |
| 69 | 69 | ||
| 70 | The first one that I ever used was [webpack](https://webpack.js.org/), and it | 70 | The first one that I ever used was [webpack](https://webpack.js.org/), and it |
| 71 | was an absolute horrific experience. Saying this, it is an absolutely fantastic | 71 | was an absolute horrific experience. Saying this, it is an absolutely fantastic |
| @@ -202,7 +202,7 @@ six months. There is elegance in simplicity. | |||
| 202 | > (and even more revolutionary) framework pops up to usurp the throne. | 202 | > (and even more revolutionary) framework pops up to usurp the throne. |
| 203 | > — Ian Allen | 203 | > — Ian Allen |
| 204 | 204 | ||
| 205 |  | 205 |  |
| 206 | 206 | ||
| 207 | And this jab at these libraries and cloud providers is not done out of malice. | 207 | And this jab at these libraries and cloud providers is not done out of malice. |
| 208 | It is a real concern that I have about them. In my life, I have seen | 208 | It is a real concern that I have about them. In my life, I have seen |
diff --git a/content/posts/2022-10-16-that-sound-that-machine-makes-when-struggling.md b/content/posts/2022-10-16-that-sound-that-machine-makes-when-struggling.md index 47a6212..7eb4029 100644 --- a/content/posts/2022-10-16-that-sound-that-machine-makes-when-struggling.md +++ b/content/posts/2022-10-16-that-sound-that-machine-makes-when-struggling.md | |||
| @@ -62,5 +62,5 @@ procedure. You can feel your sanity breaking down. | |||
| 62 | I also made this little cow animation. Go into full screen to see the effects in | 62 | I also made this little cow animation. Go into full screen to see the effects in |
| 63 | more details. | 63 | more details. |
| 64 | 64 | ||
| 65 | <video src="/assets/microsoundtrack/cow.m4v" controls loop></video> | 65 | <video src="/posts/microsoundtrack/cow.m4v" controls loop></video> |
| 66 | 66 | ||
diff --git a/content/posts/2023-05-22-crafting-stories-in-zed-editor.md b/content/posts/2023-05-22-crafting-stories-in-zed-editor.md index dc22e95..a3104b8 100644 --- a/content/posts/2023-05-22-crafting-stories-in-zed-editor.md +++ b/content/posts/2023-05-22-crafting-stories-in-zed-editor.md | |||
| @@ -29,7 +29,7 @@ server)](https://en.wikipedia.org/wiki/Language_Server_Protocol). The list of | |||
| 29 | supported languages is not extensive, but it's still impressive. It's a great | 29 | supported languages is not extensive, but it's still impressive. It's a great |
| 30 | example of how to create a product that stays out of your way. | 30 | example of how to create a product that stays out of your way. |
| 31 | 31 | ||
| 32 |  | 32 |  |
| 33 | 33 | ||
| 34 | For C development it downloaded [clangd](https://clangd.llvm.org/) and setting | 34 | For C development it downloaded [clangd](https://clangd.llvm.org/) and setting |
| 35 | up missing dependencies in code was rather easy. For this project I use | 35 | up missing dependencies in code was rather easy. For this project I use |
| @@ -70,7 +70,7 @@ marketing speak there but the product is still amazing! | |||
| 70 | For me the speed and the simplicity of the product was the most impressive | 70 | For me the speed and the simplicity of the product was the most impressive |
| 71 | thing. You get that: it just works feeling. A rare thing in 2023. | 71 | thing. You get that: it just works feeling. A rare thing in 2023. |
| 72 | 72 | ||
| 73 |  | 73 |  |
| 74 | 74 | ||
| 75 | They also managed to add [Github Copilot](https://github.com/features/copilot) | 75 | They also managed to add [Github Copilot](https://github.com/features/copilot) |
| 76 | in a non obtrusive way. To me, everything feels very intentional and | 76 | in a non obtrusive way. To me, everything feels very intentional and |
diff --git a/content/posts/2023-08-05-floods-in-slovenia.md b/content/posts/2023-08-05-floods-in-slovenia.md index 1ca580b..571911b 100644 --- a/content/posts/2023-08-05-floods-in-slovenia.md +++ b/content/posts/2023-08-05-floods-in-slovenia.md | |||
| @@ -6,14 +6,14 @@ type: post | |||
| 6 | draft: false | 6 | draft: false |
| 7 | --- | 7 | --- |
| 8 | 8 | ||
| 9 | <video src="/assets/floods/IMG_1471.mp4" controls></video> | 9 | <video src="/posts/floods/IMG_1471.mp4" controls></video> |
| 10 | 10 | ||
| 11 | <video src="/assets/floods/IMG_1474.mp4" controls></video> | 11 | <video src="/posts/floods/IMG_1474.mp4" controls></video> |
| 12 | 12 | ||
| 13 |  | 13 |  |
| 14 | 14 | ||
| 15 |  | 15 |  |
| 16 | 16 | ||
| 17 | <video src="/assets/floods/IMG_1461.mp4" controls></video> | 17 | <video src="/posts/floods/IMG_1461.mp4" controls></video> |
| 18 | 18 | ||
| 19 | <video src="/assets/floods/IMG_1466.mp4" controls></video> | 19 | <video src="/posts/floods/IMG_1466.mp4" controls></video> |
