potomushto https://potomushto.com/ journal of work & experiments | Dmitrii Loktev en-us Sun, 26 Apr 2026 10:08:17 +0000 whoop https://potomushto.com//2026/whoop https://potomushto.com//2026/whoop Sun, 26 Apr 2026 10:08:17 +0000 Dmitrii Loktev Ask Your AI To Fill This https://potomushto.com//2026/tell-your-ai https://potomushto.com//2026/tell-your-ai Tue, 10 Feb 2026 10:00:00 +0000 Dmitrii Loktev What if <input type="ai"> I have a small web-site in the garage that calculates additional stats for Strava activities. Mostly for cycling. And also mute repetitive activities from other users' feed. For that muting I need rules. A rule can be very complex. Might consist of different stats, like distance. All of them can be combined, but I started small.

Constructor UI

So I need a special UI. First version looked like this: old ui for rules

It can be polished, thought-out, optimized.

But I quickly understood I need even more complicated engine. Do not want to implement it, will not want to use it.

Code editor

Why not instead adding a single huge text area, give some example for pseudo-language that can express condition, add validation and autocomplete?

A code editor. Something I have experience with. This I can deal with. Could be fun. Text-editor with parser, validator and auto-complete. It could have been an assignment task a 5 years back.

Natural Language input

In 2026 writing formal expressions is considered old-fashion and waste of keystrokes. People probably will never write regexes, Excel formulas and home brew DSL rules again. Almost certainly, tot at the site like this.

It's simple. Let's add a request that some LLM on the backend will transform into a rule? But I don't want to deal with LLM keys, and local ones that I'm able to run on my tiny server are bad. And what will happen with that LLM in two years?

Local LLM compiled in browser? That's much better. At the time of writing this, it's not yet there, but someday.

Just Ask Your AI

Okay, don't keen on embedding LLMs, but can't ignore it. Instead: just a copyable json schema and an input - past to UI and ask for writing. Last model, no complicated copyright.

weirdstats ask ui

This is what I ended up with. Requires copy pasting, and still ocassionaly break. Not a problem, and it's future proof in a way that agents can use it too.

Browser or OS-level standard in the future

If LLM progress were frozen, we would have eventually something like this:

<input type="ai" validation="schema.json">

A special input, that browser recognizes and use AI that is tailored to you, making it very simple to create a rule.

But really, no need to bother. All browsers soon if not already will be able to do it anyway, without any hints from developers and just help with any kind of input everywhere.

And even then, only useful we have traditional interfaces. If OpenClaw shown us anything, we may rethink the whole idea and people will just interact with the single entity. It'll solve prloblems by implementing Weirdstats under the hood, but you'll never even know about it.

]]>
Lost in time https://potomushto.com//2025/lost-in-time https://potomushto.com//2025/lost-in-time Mon, 15 Dec 2025 10:00:00 +0000 Dmitrii Loktev What do you feel when you look at your oldest family photos? The Year Is 2050

You are not “checking your old projects” the way you used to check old photos. It is more like opening a drawer of odd objects you once built by hand: a tiny wooden box, a key you no longer own the lock for, a perfectly shaped stone you picked up because it felt important at the time.

Your projects are like that now. Some still open with a satisfying click. Some fight you. Some are just labels pointing at places that do not exist anymore. You start with the easy ones.

A directory called potomushto.com is mostly text files. Markdown. A few HTML pages you once generated and never touched again. You open one and it just appears. Instantly. No “restore environment,” no “dependency mismatch,” no “this plugin can’t be verified.”

It feels the way it feels to find an old printed photo: slightly too sharp, slightly too honest, and strangely immune to time. The rendering is different than it was in 2026. Fonts drift, spacing changes a little, but the words are the words. Links still point somewhere or they do not. Either way the text stays. And that is the trick: plain content does not need an ecosystem to survive. It needs a surface.

Then you open the harder drawer.

A little macOS app you were proud of. Sleek, minimal, “native.” It used to feel permanent because it lived inside the operating system, not on some website. But the OS has evolved the way cities evolve. It did not “break” your old apartment, it just stopped building roads to that neighborhood. Code signing rules changed. Sandboxing got stricter. A security model shifted after some global incident you barely remember now. The app still exists as a binary like a fossil exists as a shape. Recognizable, but not quite alive.

You can revive it. Of course you can! Everything can be revived now with AI. But reviving is never free. It costs attention, and attention in 2050 is expensive in the way your free evenings used to be expensive.

And then the games.

Some run in a compatibility bubble and feel right in a weird way, like hearing an old song on new speakers. Others load but the magic is not there: the physics are off, the controller mapping is wrong, the timing feels like someone retold a joke with different pauses.

You remember, suddenly, that games are performance more than just software. Timing. Latency. Input. A particular kind of friction. And time changes friction.

You scroll through a neat list of services that were once cheap because each one felt like nothing: a small site here, a webhook there, a little worker, a domain redirect, an analytics script, some uptime monitor, a storage bucket with “just a couple files.” Each one was fine. Together they are a constellation with a monthly price tag that looks more like a utility bill than a hobby.

Every project that stays alive demands a little ongoing payment, like a tiny aquarium in someone else’s house.

So you consider the other route: the home machine.

Not romantic, just practical. A quiet box that you replace every so often, and the maintenance cost spreads out across years like buying a good tool instead of renting one forever. It is not free, but it is predictable. It feels like owning a shelf in your own basement rather than renting drawers in a hundred different buildings.

One machine in the corner of your future home, humming gently. Some projects hosted there, most archived there, all of them yours in a literal sense.

And then you hit the real graveyard: the integration projects. The ones that talked to other services like WeirdStats. Most of them are gone, not because your code rotted, but because the other side disappeared. APIs closed. Companies pivoted. Services merged, rebranded, died, got regulated, got acquired, got sunset. The internet changed its furniture.

Those projects feel like old screenshots of conversations with people you no longer know. Not sad exactly, just un-runnable.

2075

You are older now, older enough that you stop trusting anything that depends on a company staying interested.

By 2075 it is harder to imagine that a hosted blog still sits quietly on some free tier, unchanged, faithfully served from the same place. Even if the page still exists, it is a miracle you do not want to budget for.

But the repository feels different. It may survive, not nesseceraly as a git, but as some source control. Filesystems still exist in 2075, one way or another.

A hosted site can disappear like a storefront. A repository is more like a box of papers. It gets copied. It gets mirrored. It gets bundled into backups and exports and “takeout” archives. It ends up inside someone else’s cold storage the way family photo albums end up in attics. Even if the original platform is gone, a bundle often survives somewhere because it was small, easy to copy, and once copied, hard to fully erase.

Maybe the GitHub Pages version is gone by then. Maybe your domain points to nothing. But the git history, zipped into some archive you forgot you made, still has all the posts. Markdown is still there. HTML is still there. The shape of your thinking is still there.

And then a stranger question appears, because by 2075 software preservation does not feel like a heroic act. It feels optional. By then, much earlier even, AI have eaten so much of the internet that “the past” is accessible in a new way. Not as exact files, but as a kind of memory. Slightly compressed. Slightly vague. Full of smooth edges where details used to be sharp. But ready to be regenerated almost instantly into something you can touch.

You ask yourself: if a model can reconstruct the feeling of your old app from something by accessing your memory directly, does it matter whether the binary still runs?

If a model can recompile your game into whatever the current modern emulator is, does it matter that the original engine died? If a model can take your old blogposts and lay them out in any style you want, does it matter which generator you used? It is tempting to say no. It is tempting to accept the new kind of preservation, the kind that keeps the gist but not the grain. But then you look again at the printed photos.

A printed photo does not try to help. It does not summarize your childhood. It does not improve the framing. It does not infer what you meant. It just sits there with all its awkwardness intact. It preserves the exact light that happened to fall on the scene that day.

That is the difference.

A model gives you a version that is usable. A file gives you a version that is true. Maybe nobody needs it except you. Maybe this museum is private.

Maybe in 2075 it is not about future generations at all. It is about having a few artifacts that do not negotiate with you. A few things that remain stubbornly themselves, even when everything else in the world prefers to be regenerated.

This lets you meet your earlier self.

]]>
We are so back https://potomushto.com//2025/return https://potomushto.com//2025/return Wed, 15 Oct 2025 10:00:00 +0000 Dmitrii Loktev Waited for 10 years to resurrect this blog There’s this popular meme. I won’t use to visualize it, so describe it instead. As time goes by, you sometimes realize that the things you cared about in the beginning turn out to be true again. Some people say life moves in a spiral.

  1. stand-alone personal blog
  2. do not care just give me engagement
  3. stand-alone personal blog

I’ve had several phases in my life when I tried blogging. potomushto.com is probably 4th reincarnation of it. At one point, I created a separate Tumblr just for a seven-day trip and I still love that blog. Going back and rereading it once every five years gives me chills. Maybe I’ll bring it over here someday, when I figure out a proper way to separate things.

Another time, I used a throwaway name on Blogspot or WordPress. Something that cost me nothing and required zero hassle. And it’s still there. Still working. Still openable after all these years. Still close to zero readers and visitors.

Twenty years ago, I loved writing so much that I did it almost every day. After a while, I decided that what I was producing didn’t look serious enough, and that I needed a more professional blog. Then I decided I wanted to write essays. Exquisitely bad pieces. I guess I just loved the act of typing on a keyboard. They were so bad that I came to an inevitable conclusion: not just to stop, but to shut the whole site down.

And then, ten years later, at 2015 it became obvious that social media gave you a much bigger boost. It felt great riding that wave: you could easily discover new, interesting people, and they could find you just as easily.

That went on until I started my new full-time job. I had less and less time to write. Ny energy for “extra” writing was slowly running out. I felt no need, and that was a mistake.

Compare these two images:

GitHub public contributions "green tiles" in 2025
GitHub public contributions in 2025

GitHub private contributions
Private contributions on GitHub in 2025

Now, in 2025, when most of my social network circles have dissolved and scattered across multiple platforms, I feel a bit of regret. I feel like I missed out having personal web-site empty all these years. So now I care much more about having a permanent place — something that can still be referenced in the future.

And technologically, all pieces have always been right here. It turns out RSS is great. Owning your content feels right.

The only thing left to solve is me having insufficient writing skill.

What makes blog good

Let's start from a weak definition, not saying anything about intristic quality. A blog can be good as a private intellectual artifact, and better if it resonates outward. RSS subscribers makes me happy.

And for that I need consistency. Consistency in writing attempts but keeping the same core, angle, principles. Consistency not in producing reliable mediocrity but in thinking. Keeping posts in drafts for years, never publishing them because they are not good enough is something inevitable.

Üben macht den Meister
— Practice makes perfect

This is the most naive but hard truth phrase that everyone hears constantly during any kind of German classes. Another version is that to perfect a new thing, you'll need to do it 10 thousand times. Of course the devil is in the detail. You need Tight Feedback Loop, Deliberate Difficulty (Not Comfort) and Reflection + Correction. A similar take is here on Veritasium.

My plans to try out different things for feedback loop:

  • Reading the draft out loud and fixing awkward English
  • Rewriting the same paragraph 3 times in one sitting
  • A trusted peer review
  • A review from AI but not a rewrite

So it's muscle memory for writing. And I love to train muscle memory, which usually gained by drills.

You need to have a taste for being self critical and edit in place, so reading and noticing what works for others, a long-term work I'm doing frankly not sufficient for English. Not reading nearly as much books.

Deliberate difficulty is just inishing any post that will pass my internal quality gate. That is deliberate difficulty. Partially because writing in a non-native language increases cognitive load, partially because of an internal quality gate. And of course I want to touch difficult topics. Exposing this definetly makes it risk and increases demand.

Reflection is most confusing to me. Writing and reflecting on your past work instead of touching and silently editing it, is not something I'm used to. I should embrace and track posts I'm embarassed about.

New Year Resolution

Having said that, my goal for next year is simple: to write regularly and finish posts. Not to optimize for reach, and not to wait for confidence, but to treat writing as practice. Let's say 12 posts a year.

Most of the time there will be no feedback. No comments, no replies, no visible signal that anything landed. That silence is part of the process.

So when it’s time to share, I will do it anyway. Publish, step out of my comfort zone, and repeat, trusting that consistency in thinking, difficulty, and reflection compounds, even when no one is watching. How naive.(

]]>