Finally, I am not sick with cold and I feel generally good. As I am staying home and I wear FFP3 mask every time I go outside, I expect to stay this way for some time.
I am now 31 years old, and my quarter-life crisis is in full swing. I read a books I've already read, think about what I originally wanted to be, before I became what I am. I am reviewing my skills, doubting my choices and intelligence. It sux, but also kinda opens new possibilities.
I've used a 150mg of Modafinil split into two pieces. This resulted into two days full of productivity. I've actually written and done so much, that I've decided to split publishing to several days, because otherwise I would flood too much.
Object wiki update
- Saving / loading works.
- Node switching works.
- Toolbar work and switches itself depending on the context.
- Inlined date objects with custom widgets work and are interactive.
- You can add new paragraphs, so far only by clicking on
+on the left side, notion style.
You could use it as a simple text editor.
Pardon the weird ratio and font sizes. I am developing this on the 32" 4k LCD, so it may look weird on smaller displays. I'll tweak that later.
Each of the mentioned steps was full of (Py)Qt fuckery, and everything was at least five times more complicated than expected. I did some GUI programming back at the university in the C# / VisualStudio and everything just worked. Now, I am fighting with the designer half of the time. It's not a bad software, but it feels like it is about a generation behind the VisualStudio from 2010.
Anyway, I've decided, that GUI is now good enough for the rapid prototyping of other features, and that now is the time to disconnect the GUI from the rest of the application.
I've begun to work on transformation from this
To something like this:
I've decided to use ZeroMQ as server protocol, and I am not yet sure what I'll use as data format. Naturally, I am tempted to use pickle serialization format from python, but because I want this to be usable from multiple languages, I am also looking into Protocol Buffers and other solutions.
I did a short study of the P2P libraries / frameworks for python: Python p2p libraries and frameworks, because I want a federation as a feature. Originally, I wanted to support matrix protocol, and I thought why not to use it also for communication with the server. Sadly, there is probably no small enough server side library for matrix. Then I thought I could maybe use some kind of p2p library, but everything is either really huge and complicated or some amateur's product that is not safe to use and it requires rendezvous server anyway.
Other than that, I've added placeholder section 📂objWiki, where I'll be publishing future articles about objWiki. So far, there is only a list of (bi)weekly updates where it is mentioned.
OpenSource / other coding
Several years ago, I've published a bottle-rest package:
Last week, I've got a third pull request. Nice.
I actually did a lot of work in work, although I have a home office for several weeks now.
During last year, I've done a huge amount of work on a series of scripts with a graphical interface, that allow easy building, deployment and monitoring of OpenShift containers.
In our company, we have multiple language environments, each containing four sub-environments, dev, test, stage and prod. When you have to build some service and then push it through all sub-environments and then through multiple language mutations, it may be a pain in the ass and combinatorial explosion of work.
My script allows you to define basic metadata and then instantiate containers with this metadata. It handles shared encrypted vaults, triggering of openshfit builds, deployments, copying of images between various registries and so on.
It also has a nice GUI, where you can do all of this with just few clicks. For example to delete or copy image between several registries is now really easy.
This whole thing broke for some reason when used via VPN and it took me several days to fix it. This required debugging of the REST API for Docker (which is a horrible piece of shit btw), and also some black websocket fuckery.
core dumps in production
One of our products is a cash desk application. We have thousands of physical machines in several countries, which run PyQt code. Service desk in our company reported, that some of our production machines cash desk applications randomly restarted.
My boss logged in and found that they segfaulted, which in PyQt is never good sign. I was foolish enough to take this task voluntarily.
I've discovered that indeed, sometimes, it randomly segfaults. And core dump is not enabled on the machines where it runs. Also, a process of obtaining and grepping the logs was tedious, so I've spent a couple of days and created segfault tools; a set of scripts that can automatically log on the machine, detect segfaults, download them and so on. There are scripts that can enable, or disable, or download core dumps with simple command.
It is really just a simple work, but it felt good doing it, because it automates boring stuff forever. Next time anyone will have this problem, they'll just run one script and core dumps will be enabled, and then second, and they'll get all kinds of information about the target system and also download the core dumps.
Off course, I have yet to catch the core dump and I suspect that looking for the source of the bug will be "fun" too.
I've also added 📩Contact info.
Post Apocalypse Blues
7503 is much better than single use respirators;
Decontamination is pain in the ass:
Every woman from my social circle made masks. Mother of my child did not slept and made hundred masks for friends and neighbours. My mother made masks, my sister made masks. I gave some masks to the post post box, for post officers, and some other to bulletin board in the building where I live. I gave some to friends.
I was really impressed by this personal API project:
From the blogpost:
TLDR: I'm using HPI (Human Programming Interface) package as a means of unifying, accessing and interacting with all of my personal data.
It's a Python library (named
my), a collection of modules for:
- social networks: posts, comments, favorites
- reading: e-books and pdfs
- annotations: highlights and comments
- todos and notes
- health data: sleep, exercise, weight, heart rate, and other body metrics
- photos & videos
- browser history
- instant messaging
The package hides the gory details of locating data, parsing, error handling and caching. You simply 'import' your data and get to work with familiar Python types and data structures.
I should write something about my attempts to create similar personal API and how it went.
This guy has an amazing talent. I am really glad I am supporting him on patreon.
I really love to watch reactions to Astartes, where people record themselves watching it and then analyze what happened and appreciate the scene composition, W40K lore and such things.
What Everyone’s Getting Wrong About the Toilet Paper Shortage is a great article explaining that there are actually two kinds of toilet paper; for end-users and for companies.
You can't really sell toilet paper for companies to end-users, because it is a different product, with fewer layers, and packaged into huge rolls. When suddenly people stopped going to the companies, it created not only spike in demand for end-user product, but also full warehouses of company toilet paper. This is also made in different factories, with different contracts, and it is hard to retune whole supply chain for different situation.