Bystroushaak's blog / English section / Weekly updates / Newsletter 2022-02-20; Small projects

Newsletter 2022-02-20; Small projects

The time from the last newsletter, for me, was mostly about people. Maybe I am growing up, but I am noticing more and more that the world is about people. So, I try to appreciate them more.

tinySelf progress

No progress, sorry. But this may be of interest: https://github.com/Bystroushaak/tinySelfEE/issues/19.

Object wiki update

I've refactored the 📂objWiki section. More specifically, I've moved there some of my internal documents containing links to inspiration, analysis and so on. There is still a lot that I have internally, but I plan to move it to public sections when I feel like it.

I did a bit of work on the code itself, but nothing really to show in screenshots or in features. Stay tuned for the updates, if you are interested.

OpenSource / other coding

After what I wrote last time (Newsletter 2021-10-29; Monster post) about almost burning out, I felt like the best approach to getting myself together will be to start working on smaller projects. Things that take maybe three days of programming, or maybe a week or two, not monster projects like tinySelf and objWiki. So, I worked on these:

dhtmlparser3

I completely rewrote one of my oldest still maintained project dhtmlparser to python3 (now called dhtmlparser3).

I didn’t just update the code for python3, but completely rewrote everything; the parser, algorithms used, API, tests and documentation. It still does the same thing, but now it makes much more sense, especially when it comes to naming conventions. It should also be faster, and more importantly, maintainable.

Now I need to slowly port all my other projects to use it (like the generator for this blog, for example).

result_obj & result_obj_gui

This is something I’ve been working on for several weeks. It is one of the projects, that grow from my personal pains (filesystems, configurations, logs, metrics, debugging on server, cronjobs, ..), and it’s not much complicated, so I expect to finish it in the relatively short time. The basic idea is something like this:

result_obj is a tool which provides one object for all the “results”, everything that goes out from your script. Instead of initializing loggers, setting path for logfiles, rotations, setting metrics server, handling restore points and so on, you initialize one ResultObject. Then, when you want something logged, you just use result.logger.info("asd"). If you want to store some metric, you use result.metrics.program_started.start() and result.metrics.program_started.stop(). There are start/stop metrics, counters, and value metrics, all created automatically when you use them.

You can store “restore point” (state of the program at that time to be able to restore it later), by just saving it into “.restore_point” property. The object is automatically pickled and unpickled when you read from it. The same goes for the end-result of your program run. You don’t have to think about where and how to store results, you just save them into the .result property.

Everything you store is automatically serialized to a sqlite file. You can then take this sqlite file and look into it using result_obj_gui. Or if you restart your program, it can automatically read the values from this file and continue where it ended. If you need to work with results later from some kind of other script, you don’t have to care about how to get the data to it. Just one simple ResultObj("data.sqlite").result, and you are good to go. The same goes for the logs; you don’t have to grep them in some kind of text format, just iterate over them in the simple database structure.

I have plans to make it work with some global config, so you don’t have to even care about locations of the result.sqlite files. This way, you could just add a few lines to a global config when you create a new project, and it would take care of everything.

At this moment, result_obj is maybe 90% done, and result_obj_gui is probably 70% done. When it is finished, there will definitely be a blogpost about that.

Blog improvements

I've added a folder icons to categories, and the category names are now underlined, to suggest a clickable link:


📂tinySelf section was cleaned and partially rewritten.


Thumbnails are now by default 1200px wide, so they should look much better, especially on the displays with higher resolution.


100+ followers on Twitter. I use it mostly just for posting blogs I write because some people I know can’t be bothered to use RSS, so it’s not like it means a lot, but it feels somewhat good.

Annoying shadowbans

I was starting to wonder if I am shadowbanned on the lobste.rs and hackernews, as I've seen the same situation multiple times now:

  1. I write some blog, publish it on lobste.rs and hackernews. It has exactly 1 upvote (mine, set by default) even a day after I posted it.
  1. I write some blog, don't even bother to post it anywhere. Someone else comes, posts it on hackernews, and immediately, I get thousands of people coming, and it has hundreds of upvotes.

So, I wrote to hackernews mods, and they confirmed, that I was indeed shadowbanned, for posting too much from my domain. They concluded that this was an error made by some automated classificator for self-promotion spam they are using, and whitelisted me.

Writing

I published the following blogs:

How I use personal wiki. Something I’ve been promising for far too long.


Antenna from my dreams (3D render). Short write-up about my most complex Blender render yet.


Tools I use: PyCharm / Idea plugins.


Tools I use: PyCharm. Reasoning about why I use PyCharm and list of my favorite features.


📂I used to be a phone card cracker, a small category about my old attempts at cracking phone cards.

Czech section

I have backported countless old blogposts and published two new blogs in Czech language:

Short action and somewhat brutal story in the Czech language called Software. I've had it in the wiki for several (3+ years), and I’ve never been able to get back to it, until recently, when I forced myself to finish it.

And sadly also Poslední hold Bedňovi, “the last tribute to Bedňa", a member of a community portal abclinuxu.cz, who passed away in 2021-11-26.

Abclinuxu (abc-of-linux) is this weird pocket of the "old internet", a Czech portal about Linux, which changed very little since 2009, when I've come there. People there tend to blog about everything and anything. Bedňa was one of those people, and suddenly, he is gone.

I wanted to say something about him, as a person. I knew him more than ten years, discussed with him on dozens of occasions, and it seemed so .. strange. People in my social circle told me about his death, but no one had anything to say. Embarrassed silence, awkward change of topic to something else. I felt a need to say something about him, to remember him, and honor his memory.

I also did something else for the first time; I've spontaneously created specific "art" which you can see at the end of the blog. Sad origami fox modelled in Blender. It is simple, and crude, compared to other things I've created since, but I didn't know I can do until then. It felt somehow right, one last thing I could do for him, to guide him on his last voyage.

And since I've realized that I can do that, you can expect to see more of origami foxes here in various future blogs, as illustration pictures made to make the reading a bit lighter.

In some sense, this feels like a gift he gave me. I wanted to do the one last thing for him, and in the process, I've realized that I can do certain illustrations. It feels like he gave me this ability, so with each 3D origami fox I'll make, I'll remember him.

Book report

As before, I’ve read many books, and here is a sample of those I can recommend to friends:

Crooked Little Vein was a fun read. Perverse, weird, but certainly entertaining story. If you are bored, and just want something quick to read, go for it.

Eastern Standard Tribe is a book by Cory Doctorow, with the idea in some aspects quite similar to the Daemon. It is a relatively simple story, about a tribe, based on the timezone. But it got me thinking, even writing about it on the IRC. Later I’ve picked those logs and maybe one day, they will grow into a blog.

I’ve also decided to re-read Snow Crash because I’ve read it when I was still a teenager and didn’t really remember what it was all about. I’ve enjoyed it, for it’s entertaining value, and much more then when I’ve read it in pretty bad Czech translation years ago. For example, that the main character is called Hiro Protagonist went completely out of my radar on the first reading.

If I had to sum it up, it is basically a weird cyberpunk fairy-tale. But entertaining.

I found out The Man Who Bridged the Mist when I was looking for “engineering fiction”, and it is certainly that, but also much more because of how skillfully it is crafted. I really enjoyed reading it, on multiple levels.

I liked the main idea of the Mist and the bridge, but also how the story is constructed and told. When I’ve read it, I was trying to think about why the author decided to tell the story in the way he did, and that somehow brought a more pleasurable experience.

Improvements

/r/personalWikis

I’ve created /r/personalWikis subreddit to collect and share links to relevant articles. So far, it is almost empty, but I intend to throw articles and tweets there every time I’ll see something interesting.

Various purchases

I’ve got tired of waiting for various things. You know, the things you sometime think that they could make your life easier, but you are uncertain if they are worthy of buying.

20 pairs of bamboo socks

I’ve sampled various bamboo socks from the internet and when I found ones that are not so bad, I’ve bought 20 pairs and replaced all my previous socks with them. This is something I’ve wanted to do for several years, but never got time for it, so I am happy that I’ve finally managed to do it.

Wireless version of the 3Dconnexion SpaceMouse

Since the old model of SpaceMouse took a lot of desk space, I’ve decided to upgrade to the newer wireless version, which is much smaller and also comes with a nice dust cover.

Robot vacuum cleaner

And as you can probably see from the picture above, I’ve got a lot of dust in my apartment. Which is really weird, when I think about it because I have no idea where it is coming from. I mean, it is a modern flat in the city, with central heating. The only possible sources are from the outside (windows, kitchen exhaust hood), or from me and the clothes I wear.

Few months back, I’ve got so annoyed at the never-ending battle with dust (I am allergic), that I’ve bought a robot vacuum cleaner with mopping ability. The only regret I have is that I didn’t buy it earlier because it is really cool and effective. For example, this, after two days since last cleaning:

I can understand the bigger pieces in the collector above, since I’ve been repairing something and this is the resulting debris, but the fine fluff on the filter in the bottom I just don’t get. And this is every time, after a day or two. Wtf.

Anyway, I also 3D printed these adjusters for the cabinet, so the robot is able to get under it:

New toolbox

I’ve had this old plastic toolbox I’ve been using ever since I started in high school (I’ve studied what was then called “mechanic-eletronic with focus on computers”) and after more than 17 years, I’ve got really tired of it, so I bought this nice new box, which really helped me to organize my tools:

Yubikey bio

I ordered two Yubikey bio 2-factor authentication sticks with fingerprint reader, since I’ve been waiting for their availability for more than a year now.

When they arrived, I’ve been really disappointed because I’ve learned that they don’t support PGP/GPG. Which is really my fault, I should have read the documentation before I bought them. But it somehow never even entered my mind. I am using Yubikey since 2016, I’ve been delighted with it, and I just didn’t imagine they would make a version without GPG support.

It is still useful, for GitHub and other similar sites, as the plan was to have one permanently in home PC and one on keychain, so I can log in using 2factor every time. But now I have to keep the old one as well for use with GPG.

If you are wondering why I complain about GPG, it is because I use it almost daily. Not because I am so into cryptography, or I would use it for email, but because I have a policy of doing various backups frequently, and every backup that leaves my computer is encrypted.

GPG is really ideal for various low-trust environments because you can export your public key there and then encrypt the data for yourself without the need to trust the system with a password. So for example, if an attacker gains access to my server, he can access various data, but not old logs, which are automatically encrypted and decrypted only when I have to access them. Backups, which are uploaded there from my PC, are also encrypted. And so on.

Keyboard

Second great disappointment was this beautiful keyboard I’ve bought when I've come across it in some random youtube video:

As you can notice, it has a “tenkeyless” layout, which means it doesn’t have a numeric block. I am using tenkeyless keyboards for several years now, and I was quite okay with it, but what I didn’t understand when I ordered it, is that it doesn’t have PageUp/Down keys. I mean, I thought that they will be there accessible using FN+up/down, or something like that. But they aren’t.

I’ve spent more than 4 hours trying to make it work using various layout modificators on Linux (xmodmap, xkb, xbindkeys and several others), and I’ve failed miserably. So, for now, I’ve put it back in the box, and I am waiting for firmware release, which could help with this.

It may sound a bit weird, but I really use PgUp/Down a lot. I mean, probably more than a hundred times every day. For switching tabs, for going up/down in webpages and editors, but most importantly, for searching in history in bash. I gave it a shot, but it felt like I amputated one of my fingers. My brain cringes profoundly every time I want to use it and can’t.

I may give it another try, but I’ve got so frustrated with all the Linux keyboard bullshit, that I seriously think that it may be simpler to write a custom keyboard driver for kernel. Believe me, I’ve tried everything I can think of (and google), to make it work using user space configuration, but it gets hard, especially since it doesn’t send key codes for various events, like FN+up/down or FN+left/right. And various other approaches like mapping it using something like alt+up don’t work because they are clashing with alt, which is already pressed. Meh.

Leatherman Skeletool

I've got a "Dx p2p award" in work for my contributions to a new project. I could pick up from like ten items, and I've picked up Leatherman Skeletool, as it was the only thing that appeared to be useful, and I don't have it already.

I've got this Swiss knife for my 18th birthday, and I still use it from time to time, so I think the Leatherman will be handy too.

Two Blender plugins

After quite some consideration, I’ve decided to buy two blender plugins:

First is for the trees and various other vegetation, second is for all kinds of textures. These two plugins made the antenna render I’ve created possible.

Tourbox elite

I’ve also preordered Tourbox elite in Kickstarter, as I was told by several people, that I may be interested in it and that it may be useful for Blender. Since I use SpaceMouse a lot, and it really gives me the benefit of much better control, I’ve decided to give this weird device a chance.

Flipper zero

And I’ve finished preorder of the Flipper zero, I’ve signed for during the summer last year, when guys from the company where I work gave a tech talk about hacking RF.

Random drawing time

Huh, this happened: I was in the office around 18:00, when a colleague came and told me that there is random drawing lesson by someone. I've decided to join after some self-doubts because I can't draw at all, and I concluded that I'll never be able to draw anything a long time ago. But I've also decided to be more social, say "yes" to new things, so I embraced it.

At the end, it wasn't really a lesson, just "here, take these paints (don't eat them, they are poisonous), here you have brushes and paint whatever you want". So I made this.

I've enjoyed the process, it was more relaxing than expected. Of course, it looks like a potato, it was the first thing I've drawn after many years, and I still can't draw at all. If I had to draw something specific, I couldn't do it. And paints are assholes, always mixing in unpredictable ways.

But I think I may give it another chance, as it was highly relaxing, and I felt almost happy after a very long time. Not because of the result, but because it was quite social, we were chatting and joking, and in the end I've created something.

Countless calls with my brother

My brother was locked in the mental asylum, again. He is there almost every year for the last ten years, always at the same time (around November). He is suffering from the paranoid schizophrenia, and it gets worse in autumn.

Usually, he comes there voluntarily, and can go home at any time, but this time, it was quite different. Mostly because of corona, but also because he was brought there by relatives, when they concluded that he is loosing his shit. He typically starts seeing things that are not there and worries that there are people who want to kill him. So, this time, they wanted to keep him there, until he finishes some treatments, which took months.

He felt quite down, so I've spoken with him almost every day, for an hour or longer. It may not seem like something worthy of a note here, but we don't keep in touch. Typically, on a family occasions, we tend to say a few words to each other and quickly notice, that we have almost nothing in common, and nothing to talk about.

This time, I put an effort into it, and found out, that after all, we have things to talk about. Women, relationships, plans for the future, dreams, shared experiences, places we would like to visit. If nothing else, I hope I've helped him to kill some time until he was released. And it made us closer.

And apparently, I am now a Pokémon

Reddit gave me this, out of random:

Plans for immediate future

  1. Finish working on smaller projects and finally fully return to the development of the objWiki.
  1. Don’t go crazy from the work, life and everything else.
  1. Start exercising again. A friend invited me to try yoga, so maybe I’ll give that a chance.

Random stuff

This seems like great future technology, doesn’t it?


Really funny:



Saxo-Didge:

From time to time, I am searching for alternative music styles, and LSM is one of my finds:

I am very interested in people mixing (old) ethnic music or instruments, with modern styles, like DNB. For example, throat singing, didgeridoo, slavic music, or asian style. I think there is massive potential in combining those. When I hear some of those things, I can feel the power hiding there, in our genes. It is just waiting to be mined out by someone.

I've created /r/etnomix on reddit some time ago, but so far, I am the only one who is posting there.

Become a Patron