Category: Uncategorized

  • Web platform is a total mess

    Web platform is a total mess

    After years of work in a serious in-browser app, I found myself in a mood that “pure-web” is not designed for literally anything serious, beyond “place likes and swipes on endless stream of useless bullshit mistakenly called content ” or “jump between read-only pieces of (now auto-generated) garbage and disinfo.

    What is not web designed for is the cross-platform no-installation applications development.

    Here is the simplest proof: even with all these advancements web API got over last decades, there is still not available a reliable API a web app (ok, a web page) to save something larger than 1-2kb of plain text to browser in a way that would reliably will be saved no matter why page is being unloaded.

    There are so many ways to “unload” page:

    • Person types new address to address bar and navigates there right as app does something finite but asynchronous in nature.
    • If page has links to other pages opening in this tab and persons clicks such link – navigating to other page in current tab, see above item in this list.
    • close browser window or tab.
    • switch to another tab with current moving to background, and depending on implementation, no guarantee that browser will keep background tabs “alive” even for time until browser window closed.
    • On mobile platforms this goes worse – switching from browser to other app is another equivalent of “switching to another tab”. Mobile OS can drop running but at-front/current app out of existence, without too much of care about what it does. Browsers have deal with this quickly so they can’t dispatch too much events to pages about this.

    The list probably not full. Lets restrict these options to desktop platforms only and drop away mobile-specific scenarios.

    Just go the simplest path: imagine an app, some editor of anything more complicated than 1 kb of text, and try to save something (editor state or description of operation being done) to the indexeddb as soon as visibilitystatechange event happened due current tab being hidden.

    Yes, you can send some http requests to app server. But what of browser/device is offline now? E. g. due airplane mode or due to connectivity glitch or power outage rendering communication devices like wifi-router a dead brick for time of power outage, and few minutes after?

    One may suggest to use indexedDb via service worker with interception of fetch requests to special urls like /api/local/queue-action which does not exist at the web server, with usage of fetch event of ServiceWorker. But will such requests keepAlive requests be respected with the browser lifecycle for pages? What if operation being processed require more than 1 fetch requests? Which is surely very likely to happen for any more or less sophisticated app.

    Yes you can say it is some grumpy rant of some not-so-skilled developer who never used the Service Workers (just because did not have any tasks at hand which required them).

    What i think web platform needs is combination of these:

    1. Adding a kind of keepAlive flag on IndexedDb transactions to be completed/commited even after the visibilityStateChange event completed.
    2. Adding a special method like waitForAll at the visibilityStateChange event of window that would wait for all promises provided before marking the handling of visibilityStateChange event completed.

    Both above mechanisms can have some reasonable timeout after which the JS events loop stopped and window thread discarded anyway if it takes so long, like 5 seconds. Page can ask for longer timeout, e. g. via waitForAll call with options coming as first parameter, or via other different method waitForLallLonger where these options can be supplied. Page can call beforehand, e. g. when it can decide by own logic it will have to save more data, or larger piece of data to call some different API, like requestLongerShutdown(timeoutMS) to be added to navigator.storage or to indexedDb or to navigator itself, but not longer than some specific time, e. g. 1 minute.

    Having such API available to web pages, it would be possible to avoid usage of beforeUnload and alike when app has some changes to be persisted, and then web page could just stop data processing when tab is hidden, and remember where to resume from when it visible again, or give a chance to reopen the flow and continue the processing from the previously saved state…

    But all this is just a grumpy dreaming. In reality, years of work on some web app seems to be jeopardized by inconsistencies between various parts of Web API, where all more or less usable storage APIs are async in nature while there is no way to ask to save some data on visibilityStateChange when page is being hidden, no matter why.

    One can say we should stop to elevate more and more expectations from web pages. But today more and more complicated pages are being created out of JavaScript glue, designed in 10 days to implement a bit of interactivity at web pages, which grown up now into own ecosystem of software development, not web pages creation. As result, people expect that their work and data will be “reliably saved” by web page in same way how it is likely to happen on a desktop app.

    We can’t stop now and demand from common people to treat something, e. g. “web pages” – as something more limited than a desktop app,and have different expectations from web apps and desktop apps.

    Well, some can say that we can to impose such requirements on people, to be more technical, and so on, but “good luck” with that. It never worked.

    We, web apps developers, behave same way with Web API from Web Specs authors point of view, how people use our software.

    we use Web API how it was not intended, not for what it has been ever designed. And people do the same – use web apps we create not the way we expect.

    Fediverse Reactions
  • Yes, I was impressed too!

    Djembro, RO, supports 🇺🇦🇬🇪

    @magical_cat
    Very interesting. Thanks for sharing.

    May 1, 2026, 09:12 0 boosts 0 favorites

    I know also about other place where paganism takes noticeable place, this is Tusheti region of Georgia.

    Scientists say that this is sort of “old neo-paganism” situation, when after arrival of Christianity it was not able to settle and start deep roots due quite complicate mountains landscape and isolated life. Tusheti paganism revived since 1500s, as I remember article from 1994.

    That article mentions how icon of St. George there become visual representations of local semigod (mythical hero) Amirani. Also candles were incorporated into rituals via Christianity influence.

    Fediverse Reactions
  • Age verification is not what it seems

    Age verification is not what it seems

    Reblog via rogue_corq

    Турецький парламент обмежив доступ до соцмереж дітям до 15 років eurointegration.com.ua/news/20

    The more and more politicians and government finally discovered that simplest way to deanonymize internet and suppress dissent online is to made a spectacle of care about children.

    New decentralized alternative to internet is necessary for oppressed and vulnerable communities, anarchists and other freedom-loving people, or get used to some pre-internet ways of life, if want stay more or less private.

    Fediverse Reactions
  • Workaround for the Android closure?

    Workaround for the Android closure?

    Can it be solved via creating single super-duper app that is runner some pieces of functionality that are plugins for the officially registered single “shell” app? The single purpose of shell app is to provide native android “environment” and “services”, which technically is some “browser” app, which supports some extensions to run some apps which are can not be run outside of that shell app, which would create shortcuts/icons to these plugins at the launch screen?

    These plugins can use some exotic package format like zip with special structure, and use html or xml like files for UI and webassembly like files (or even standard Java class files but native android classes are never touched) for compiled code, or even bunch of js files, and json for preset data like localization files and other “textual/non-binary resources”?

    I asking this in context of for example apps for DeltaChat. Would Google demand full registration flow for DeltaChat app, with developer identification, registration paperwork and related fee collection?

    Registering such app via a NGO/foundation would keep a temporary sneakhole for Android, until free mobile devices, e. g. some mobile distros for linux (or some other compatible OS without systemd and US-compliant eerie code in kernel), able to start AOSP-compiled apps?) will get some wider adoption.

    Sadly, due the nature of IT and how adoption of new OSes and other such stuff happens, such “plugin hole” is single way to go, as I see.

    Fediverse Reactions
  • How far this from mass appeal…

    How far this from mass appeal…

    Not everyone would scroll down to the end of the https://keepandroidopen.org page. Not everyone would even open it. Not everyone would even heard the news of what Google plans to do.

    You bought an Android phone because Google told you it was open. You could install what you wanted, and that was the deal.

    This is first words most people read opening the website.

    This sounds quite detached of why people buy Android phones in the first place. Most of the time mostivations are like:

    • “my old phone broke and does not turn on, so I bought some random phone cheap enough for my pocket”
    • “I was looking for some affordable phone with a good camera, bluetooth, wifi, internet hostspot, and not too big in size”
    • “I was looking for a new phone because I was bored of slowness of my current 6-years old phone, seen a fancy ad about youth having fun with nature around, and it clicked”.
    • “My 5 year son dropped my phone from the kitchen table at the floor and it cracked failing apart. I was need an urgent replacement”

    These are just random guesses on how and why people are buying android phones. Most common motivation for buying android phone is its affordable price.

    People en masse even does not know that formally Android OS is somehow “open”, or that AOSP exists, or that it is technically possible to install an OS to an android phone that supports bootloader unlocking.

    How I chose my current android phone?

    First, I was already aware of Sigma Mobile, Ukrainian mobile devices (feature phones, smartphones, tablets, powerbanks and accessories) brand.

    Second, my last phone battery got old and charged out quite quickly. So I was looking for phone with very good/high capacity/ battery, and found their X-treme PQ57 phone.

    None of these was about whether the OS of phone (Android 13) is “open” or not.

    I suspect that most people actually feel overwhelmed with available formal choice of the apps at Google App Store and does not scroll beyond 2nd page of app when looking for an app.

    Most people even never installed Windows on their PCs.

    Some may even not read down to the further explanation:

    Google is now rewriting that deal, retroactively, on hardware you already own. After the update lands, you can only run software that Google has pre-approved. On your phone: your property, that you paid for.

    For most people this already true, because most people using android already install only apps from the Google App Store.

    The mobile phones inherently lack many features of PCs, such as:

    1. option to open the case, extract a part and replace with another one (upgradeability).
    2. option to install different OS (many new phones lack option to unlock the bootloader, did not checked this on my phone yet).
    3. There is no enough screen space to show a terminal for command line, even if you would install such app.
    4. Many phones lack support of connecting external keyboard and mouse (but not mine at least).

    The last 2 parts is about the day to day usability, as mobile devices sacrifices a lot usability in favor of compactness.

    I am not telling about all these not to say that call to action against Google to prevent total locking of Google a-la Apple ecosystem is useless.

    All I wanting to say that alternative IT, let it be new phones, new or alternative OSes for them, or new software, should be helping people in their day to day life, not become some obstacle. Because the transition outside of the Google/Apple duopoly is difficult, and often means fighting or dodging various gotchas from banks, and now – government with their obsession with “age verification”.

    Current IT is doomed from the start, so may be it will require to go into abyss down to the smelly pit of digital gulag, before really free open alternative will be created, or finally it would be discovered that humanity does not need IT to survive and prosper?

    Fediverse Reactions
  • Self-exposure via too much security

    Self-exposure via too much security

    Reblog via 🦜 Civil Georgia

    Georgia Closing Airspace Over Abastumani ‘Ivanishvili Whim’, Sources Tell RFE/RL

    civil.ge/archives/730573

    On April 16, Georgia is to close airspace over the area of Abastumani, a health resort in the country’s south, with officials citing the need to ensure clear skies above the local astrophysical observatory. However, sources told Radio Free Europe/Radio…

    This move by Bidzina Ivanishvili with declaration of no-fly zone gives me some hint: if you want to fully unmask this putin pet faster, you should rally not on famous Rustaveli avenue or even near headquarters of his “Georgian Dream” pet party. The most sensitive place for Ivanishvili now is where he imposed so hardcore security measures, going so far up to declaring no-fly zone. So opposition should rally in Abastumani where his family residence is.

    I guess this kind of self-exposure via excess security is common among dictators and billionaires alike.

    The illustration picked as reminder that the Death does not care about your security measures. it even does not care whether you have enemies who ready to give you ticket for Kobzon concert. It simply comes in its own time no matter what you do.

    Fediverse Reactions
  • Found a self-hosting compromise

    Found a self-hosting compromise

    I decided not switch for now from wordpress-based stack, but rather migrate from “raw VPS” setup on Hostinger to their dedicated hosting for WP.

    At first glance it looks as some balanced option between “you are admin of your server which demands attention all the time” and “you are just yet another account for some other admin without any customization options or some extensibility”.

    It is something between, when the most boring part offloaded to someone else who have dedicated skills and get paid for “the boring part” of server administration. Will check this setup for some time.

    May be later I will try to create something local-first with server working as more like relay or “briar mailbox” with support of ActivityPub and some UI suitable for long posts editing.

    Idea of creating something like this comes from fact that I don’t seen anything like that thing described above yet.

    Fediverse Reactions
  • Now you can get deported from Georgia for burning Bidzina Ivanishvili portrait

    Now you can get deported from Georgia for burning Bidzina Ivanishvili portrait

    Here is quote from https://civil.ge Monday Cable for 6 April 2026:

    On March 31, less than a week before Afgan Sadigov’s deportation, the journalist publicly burned the portrait of Georgian Dream founder Bidzina Ivanishvili during the daily parliament rally in Tbilisi.

    Simply speaking, now, if you foreigner in Georgia, you can be deported to country you run from for burning portrait of Bidzina Ivanishvili, a Kremlin-friendly billionaire who “become rich” in russia’s 1990s, and who now being informal ruler of Georgia country. Bidizina hurry to build a russia-like dictatorship, and pushes via disputed parliament repressive laws that reminds me late-USSR jokes like this (voice of Gorbachev):

    Can’t I sleep, Raisa,

    Whole Russia is for Boris!

    You adopt a law, Raisa,

    That allow to love only us!

    Or in russian:

    Не могу уснуть, Раиса,

    Вся Россия за Бориса!

    Ты издай такой указ,

    Чтоб любили только нас!

    Boris Yeltsin is referred here, and his mass popularity in Russia in last years of USSR existence, what Gorbachev, the President of USSR, has been concerned about. Among that joke refers supposed leadership of Raisa, wife of Mikhail Gorbachev, in their family.

    So, this “Georgian Dream” leadership obsession over (their questionable, from my personal point of view!) legitimacy, matched the personal traits of Bidzina Ivanishvili, including paranoia and belief on supernatural effects of common protest performances like burning of his portrait and seeing them as magical rituals and spiritual attacks.

    Of course, any foreigners in today Georgia may notice that today Georgia is not a safe harbor like it was a decade ago.

    But note that Bidzina Ivanishvili is officially just a honorary chairman of “Georgian Dream” ruling party without any special duties and formal power or accountability. So why Bidzina Ivanishvili portrait that important? Because Ivanishvili is actual ruler of Georgia country and he builds a dictatorship here as soon as possible.

    Fediverse Reactions
  • Question of deltachat is more complicated

    Later I was able to recover from a backup the related key. But Now I decided that I should not use same email for delta chat and normal email communication.

    I guess I either should use some standard relay or run own relay but for completely different addresses, like magical.cat@kitchen.legends.house or magical.cat@stove.legends.house but I don’t sure about it and how exactly organize it, because I just had to pour extra money into VPS, and due the way how WordPress + ActivityPub + Friends work, I can’t reliably be sure it will not require more monthly fees even for being single-person internet pod.

    Or I will have to write own Fediverse-friendly long-reads authoring-capable software, which would not use so much memory and CPU for very basic tasks.

    And I sorta have few ideas about that, but spend months of all that time on such thing?!

    Using same address for ChatMail and for classic email via thunderbird makes confused the both software, and me too with double notifications per email.

    This sorta would be a puzzle for me to solve or to decide to keep unsolved by doing nothing.

    PS: key I published on default Open PGP server is still usable, if need send encrypted emails to magical.cat@legends.house address.

    Fediverse Reactions