-
Can we do without cookies?
March 16, 2023Yet another stupid idea. more... -
Chunked file uploader
March 15, 2023How to implement chunked file uploader in 2023. Templates, drag and drop, and asynchronous code. more... -
Which compression method is the best for API?
December 14, 2022When I worked at work I did not care about such niceties. API returns too many data? Let's turn gzip on in NGINX! Given that we have no other options for HTTP so far, nobody cares. But what if they did? more... -
Declassed Plausible Deniability Toolkit
December 3, 2022A friend of mine told me recently: "What the fuck does your Denial Plausibility mean?" "Obsfucator!" I argued. "You're one of last standing old farts who cracked win95. Nobody understands you today. Sit and document your crap!" So, thanks to his criticism here it is: Declassed Plausible Deniability Toolkit. This is yet another story how to make your computer looking an innocent toy, used only to play tux racer and watch cats on youtube. Forensics would find the data with abnormally high entropy in unused sectors, a few suspicious tweaks in your system, but none of explicit evidences of encryption. This may help to avoid rubber-hose cryptanalysis, highly possible if you used LUKS, Tomb, Shufflecake, or simply encrypted your files. more... -
torcontrol and Tor circuits managers
November 29, 2022Stem did not encourage me to read specifications. I fucked error handling up and now proudly introduce my own minimalistic Tor controller. more... -
My Long Way To PostgreSQL
November 28, 2022Database hopping around my shitproject based on NanoPI-3: SQLite ➝ MySQL ➝ MongoDB ➝ PostgreSQL. Just rants without too many tech details. more... -
Work On Mistakes
November 22, 2022Integrated aspell and proselint to my site generator. Caught a lot of spelling errors and only three stylistic ones. And the latter were warnings, not errors. Damn I fucking good at American language! more... -
Setting up a mail server with OpenSMTPD and Dovecot without Rspamd
August 2, 2022This blog post summarizes my experience in installing OpenSMTPD and Dovecot in a LXC container on a tiny OrangePI Nano 3 SBC running Armbian. I no longer use Rspamd because it seems to be broken on Linux and I had to find a replacement for DKIM signing. more... -
Using LXC
August 1, 2022While the mainstream tendency was migrating to clouds, at my past work we continued using bare metal servers. So I dug into virtualization quite lazily, occasionally using VirtualBox and giving Qubes OS a try (yuck!). However, during the recent overhaul of my home network I finally moved to Linux containers. This blog post summarizes my experience, focusing on Armbian. more... -
Orange Pi 3: moving the system to eMMC
July 28, 2022My Orange Pi 3 has 8GB of eMMC flash installed so microSD is unnecessary. Well, it's necessary for the first boot and then the system can be moved to eMMC. Armbian installer can do that but I prefer to do everything myself. more... -
From Sid down to Bullseye: installing Armbian on NanoPi M4 v2
July 25, 2022Well, as on July 2022 Armbian Bullseye release did not boot on my NanoPi M4v2. Shit happens. Reflashed microSD with Sid and it seems to work well. After installation I downgraded the system to Bullseye. This note describes the process in details with all tweaks to the base system, logging, ssh server, LED control, and desktop environment with VNC server. As of now this is a summary of my best practices. more... -
ethwifi: throw away networking tools and keep simple things simple
July 22, 2022Not mentioning systemd, which I'm going to get rid of, I suddenly realized that all those network managers, netplan.io, and even old good ifupdown with ifplugd are simply obstacles to implement same old thing: automatic switching from wifi to ethernet when network cable is plugged in and vice versa. I purged all those packages. A simple python script looks much clearer and does the job without any quirks. more... -
Asoke: a simple dispatcher for ASGI apps using Hypercorn and Starlette
July 6, 2022For years I loved CherryPy dispatching, the approach originating from Plone, as I remember. However, I dislike its complexity. I dislike Flask and Routes, as well as all other frameworks. I never understood REST, from its very beginning. Especially for APIs. I had to follow this approach at work, but I dislike it. What could be simpler than a mapping {urlpath: handler}? So an app would look like this: more... -
A note on multiple inheritance in Python
July 2, 2022Once I was asked at an interview (which I seemed to fail because they did not contact me anymore): what's special in multiple inheritance in Python? Well, such a question is somewhat weird. What special? Special implies among others, or in comparison with others. Which others? C++? I barely remember the details, I need to open the ABC book to recall. So, nothing special. That's my answer. Inheritance as inheritance. Multiple as multiple. The only thing we have to worry about is MRO, method resolution order, which also applies to attributes more... -
Clabate: minimalistic class-based templates for Python
June 29, 2022Clabate does not offer yet another mini-language for templates. It is based on class hierarchy and PEP 3101 string formatting. Everything is declared in Python, natively. In the very basic layer Clabate implements bare textual templates which can be used, for example, to generate configuration files. And that basic layer is extended by MarkupTemplate, which escapes everything by default, trying to minimize chances to overlook unescaped substitutions. more... -
A way to hide your secrets and denial plausibility
June 23, 2022How to make your computer looking an innocent toy, used only to play tux racer and watch cats on facebook. Forensics would find the data with abnormally high entropy in unused sectors, a few suspicious tweaks in your system, but none of explicit evidences of encryption. This may help to avoid rubber-hose cryptanalysis, highly possible if you used LUKS, Tomb, or simply encrypted your files. more... -
Running systemd without systemd-journald
June 19, 2022An attempt to get rid of systemd-journald in Debian running in a LXC container. Quite successful, but it's better to disable journald storage in /etc/systemd/journald.conf and try to find a better distro. more... -
Keyboard is our everything
January 14, 2022For us, programmers, keyboard is our everything. It's another instance of 101+1. The next one will be Thai version. more... -
Children are Picasso killers.
January 10, 2022Children are Picasso killers. I just added some of my modest experience to my son's drawing. more... -
Christmas Lights Rarity.
December 28, 2021I could not leave these lights in the attic of the old house we sold. These Christmas lights are from early 80s, from my childhood. I'll give them another life. more... -
Smoke test passed
December 26, 2021At last finished mounting electronics and plugged power cord into the outlet. more... -
JY01 and HDD
December 21, 2021Basically, JY01 drives HDD spindle well but can't spin it up. more... -
Moonshining
December 18, 2021And while primers and colors are drying up I'm preparing to meet new 2022 year. more... -
Under the pressure
December 16, 2021New panel for new artwork. more... -
Another instance of 101+1. First layer.
December 14, 2021Started painting a copy of 101+1. This first layer took two days. more... -
Under the pressure
December 12, 2021In recent times I paint mainly on masonite panels. Not because I prefer them, just because I have a lot of masonite offcuts and preparing such panels is quite simple task. But there are also a few simple points which make the result absolutely perfect. In this blog post I'll share my experience with you, my lonely reader. more... -
ไม้กวาด
December 11, 2021One of sources of my inspiration we've got on the way from Krabi to Phuket in 2016. All passengers and staff of both HKT and OVB airports laughed at us, they did not let us take it to the cabin, it did not fit in luggage bags, but we brought it home intact. more... -
Oops... Rspamd DKIM signing does not work for subdomains.
December 8, 2021Rspamd DKIM signing does not work for subdomains. Initially I thought it was a problem with selection of proper key because rejected messages included base domain in DKIM-Signature field, not subdomain. I tried to change the selector. This did not help. But when I removed base domain from the rspamd configuration completely and left subdomain only, it stopped signing messages at all. more... -
Clabate 0.3.0 is out!
December 3, 2021Clabate is a minimalistic class-based template engine for the Python programming language. This 0.3.0 is a way too premature release, but I needed it in pypi to ease upgrading my web sites. So it's in production now, including this declassed.art website. There's still a lot to do: add some extras, update documentation, add examples and tests. more... -
An idea for artwork
December 2, 2021A couple of days ago I found my refrigerator magnets organized this way. By my son, as it turned out. "Nice idea," I thought. "She needs a man and I have enough parts for him." more... -
Clabate 0.2.0 is out
September 19, 2021Clabate is a pythonic class-based template engine in less than 200 SLOC. This template engine allows you to define templates directly in python code with standard string formatting and all the power of subclassing. more... -
Traditional Art and IT: my Web Technologies artwork
September 1, 2021Web Technologies, my unfinished oil painting, 19x70 inches, followed by my thoughts how to paint more and code less, how to connect traditional art with NFT, the future work, and the history of creation. more... -
Farewell, AWS
August 5, 2021Finally, I moved a couple of expiring domains to other registrar. I'm no longer an AWS user. I started disliking their services a year ago for a variety of reasons and the final drop was the absence of DNSSEC support for their Route53 hosted zones, a service they charged $0.5 per zone! I don't know any other registrar who charges for maintaining a zone for registered domain. more... -
What a crap facebook is
August 3, 2021Each time I try to use facebook I wonder are those people really graduated Harvard? Not an agricultural college as me? They really hire best of the best? Fuck. This world is really rolling to hell. Someone should have raised the fallen flag. Me? Well, I'm trying as I can. more... -
Java and something to do
August 2, 2021It was more than 10 years ago when I coded something in Java. I even tried to find a Java job but I did not pass the interview. This does not mean I did not work with Java all this time. I did, but it was in my own way: I used Java libraries from Python. But recently I had a chance to look at Java code again and realized how miserable would be my life if my work was closely tied with this language... more... -
A tiny example how design decisions affect the implementation
August 1, 2021This blog post is about how good design decisions lead to clear solutions and how “best practices” bloat the code by example of command line parsing. more... -
Red and White
July 29, 2021My daughter brought a couple of bottles from Turkey. As for me I have no idea when I'll have a vacation. more... -
How to setup your own mail server
July 27, 2021In this blog post I'll tell you about my experience with setting up my own mail server based on OpenSMTPD and Dovecot with all those DKIM, DMARC, SPF, and Let's Encrypt. more... -
Mercurial
July 26, 2021At last I've integrated Mercurial SCM into my site and published some code. For seamless integration I wrote Clabate templates that generate templates for hgweb. That was an interesting experience. more... -
Stupid and Naive
July 23, 2021Well, they all might be psychics over there. They told me, indirectly, that I'm stupid and naive. more... -
Social crap
July 17, 2021My apologies for FB share button, it's temporary, really. more... -
A bit of beauty: another tool for IT professionals
July 8, 2021I haven't taken my welding machine in hands so long. Meet my new tool for system administrators and software developers! more... -
TX offload
July 7, 2021Features developed for good may become evil, such as TX offload. more... -
HDD notes
July 7, 2021Miscellaneous notes about hard disk drives. more... -
FreeBSD hype
July 6, 2021Choices made by hype may lead to unexpected problems. On the example of FreeBSD NAT. more... -
DNSSEC
July 4, 2021How to setup DNSSEC with BIND9. more... -
Apologies
July 3, 2021I hate to be rude. But in some cases I'm unable to keep myself calm. Sometimes I'm simply disappointed and may write rude messages. After that I feel myself a numskull, I probably could find a better solution, but what's done is done. more... -
Hit The Road
June 28, 2021Packed my suitcase. Don't expect any beauty in coming months. more... -
Start of week 25 of 2021
June 21, 2021I have no idea for the title, let it be as is. This is about things happened in past three weeks. more... -
Wasted week 21
May 31, 2021Yes, in terms of Art an Beauty, this week has been wasted. Not exactly, though. more... -
About crap
May 25, 2021I hear sometimes "Why you're always saying crap, crap, crap... Don't you know other words? Is there anything good in your opinion, at last?" more... -
I need to paint more
May 24, 2021So, today is May 24, it's a new Monday, and it's going to be the second week when I won't take a brush in hand. The society requires more crappy code than the beauty... more... -
Gear-motors have arrived
May 18, 2021At last I've received a parcel from AliExpress. Now I can play with frames! more... -
NIH syndrome
May 14, 2021Actually, my fingers just got itchy. The moulding I've got a month ago was still unused, I tried it on 101+1 and it looked wery well. And I could not stop. more... -
Electro Art Works by Andy Hill
May 12, 2021When I've got an idea to mix classic oil painting with electronics I became curious if anyone does the same... more...