Sometimes we fill extra meaning anything, even appearing or disappearing of a large puddle on the street. The puddle I talking about is something I never seen in person, but I follow its fate reading the Dispatch column by at civil.ge
All of three parts of this long story are worth reading.
I can say I feared lighting strikes and thunder in the past.
But when my worldview become closer to animism and polytheism it all changed. My first thought on first thunderstorm of 2026 was “Perun came back!”. Yes, in this joyful manner.
I understand that people in old times feared thunderstorms. And Perun likely had some grim reputation, which produced sincretism of Perun into orthodox Ilija the Prophet.
But for me the first thunderstorm of the year means different thing. Summer will come, it almost at doorsteps.
My life is much more joyful now than when I was a grumpy atheist.
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:
Adding a kind of keepAlive flag on IndexedDb transactions to be completed/commited even after the visibilityStateChange event completed.
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.
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.
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.
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.
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:
option to open the case, extract a part and replace with another one (upgradeability).
option to install different OS (many new phones lack option to unlock the bootloader, did not checked this on my phone yet).
There is no enough screen space to show a terminal for command line, even if you would install such app.
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?
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.
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.