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:
- 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.
- 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
- Finish working on smaller projects and finally fully return to the development of the objWiki.
- Donāt go crazy from the work, life and everything else.
- 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.