RSSAmplifier

Blog

Smagin

Sergei Smagin writes a blog. Expect takes on design, random programming topics, personal finance tool devlog.

smagin.fyiRSS feed ↗15 posts

Latest posts

Popovers

Here is what I know about popovers. Most of popovers are avoidable Or, to put it strongly, popover is the most stupid thing you can do ( in Russian, use browser translation ). Really, putting content into a popover doesn’t require you to think how to put it on the screen. So, with some effort, most of the content could either become their own pages or put into existing pages. I have to…

Neovim colorscheme doesn't have to be about colors

I have an nvim theme called Boring Tomorrow that highlights different things in and around the code than most of the themes. I have a post about it. I changed the theme recently to use terminal colors instead of colors set in neovim, splitting things I want to highlight from the the colors I like. Incidentally, this brings dark mode switch a problem of the terminal. TL;DR: Terminals support hex…

Software on Its Users Side

When I try to pitch my budget app people always say that they have some kind of analytics in their bank app. I then tell that banks and their apps are not on the side of the clients. This article is to explain what I mean by that. Your bank and you have different goals Here is how I imagine a normal person relations with money: you are in charge of your budget, so you need to be in control of it.…

Spacing Over Cards

This post is a rationalisation of “I don’t like cards”. I say that in most cases where cards are used, they don’t need to be used. Specifically, they take space, they let you skip gestalt principles and be lazy and undisciplined, and being so easy to implement they are often used by developers. To multiply the effect, you can put a card into a card, and it seems so hard not…

AI for Personal Finance?

Y Combinator published their latest request for startups , and one area they’d want to see startups from is called AI for Personal Finance. I make a personal finance tool . This post is a brainstorm where AI could enhance it, and the conclusion is it’s better if AI is involved on a higher level. What Personal finance tools as I understand them should be very different for people in…

Ordinary Life Improvements since 2018

Gwern wrote a post about his ordinary life improvements in 2018. I feel like now is a good time to write a follow-up. Obviously, we’re different people who live in different places and have different habits. What’s better, people in comments live in other places, and have other habits and hobbies and I hope would bring 10x of what I can think about. So, for me, compared to 2018,…

I Need your Help to Improve Money Formatting on the Internet

I noticed the other day that a popular ruby library for all things money, Money , formats Serbian Dinar incorrectly. I spent several evenings to learn and describe what the correct formatting would be and how to achieve that. The answer requires croudsourcing, which you probably figured already. TL;DR: Unicode categorised it all; ECMA 402 contains lots of wisdom; if you make a money formatting…

Cross-Site Requests

Hello, Internet. I thought about cross-site requests and realised we have both CSRF protection and CORS and it doesn’t make sense from the first glance. It does generally, but I need a thousand words to make it so. CSRF stands for Cross-Site Request Forgery. It was rather popular in the earlier internet but now it’s almost a non-issue thanks to standard prevention mechanisms built into…

I had questions about CSRF

CSRF stands for Cross-Site Request Forgery. It was rather popular in the earlier internet but now it’s almost a non-issue thanks to standard prevention mechanisms built into most of popular web frameworks. So I knew about it but never thought too much and assumed it just works. It does, but understanding why it does required me to R more than one FM. According to OWASP , A Cross-Site Request…

Ultranormal Signal

UPD 25.04.2026: Turns out this blow is about a widely known phenomenon, it’s just called Supernormal Stimulus and I mistranslated it. Well, happens. There’s a concept I first saw (in Russian) in relation to Anime and birds, which I’ve ended up using a lot in other contexts. The concept is that you can abuse pattern recognition of receivers of all sorts by giving them patterns you…

dict-to-flashcard: Local-first spaced repetition with macOS Dictionary and Logseq

TL;DR I made a tiny alfred workflow that gets the word definition from macOS dictionary (with extra steps), converts it to logseq flashcard. This allows me to practice words I met while reading, on the phone too, offline too. repo . alfred workflow . twitter shitposting as I made this . Introduction I learn languages. At the time of writing, Serbian. This is not a very popular language, so I…

Improving CSS in Firefox Reader Mode

TL;DR gist . patch . Introduction Firefox reader mode is a great idea. Most of the websites, including this one, are not as pleasant to read as gwern.net , and it’s fine. Writing a blog post doesn’t have to be a design exercise. In reader mode, Firefox takes the content of the page and renders it in a different layout, supposedly better for reading. You can set up some of the things…

Code Highlighting

Introduction Code highlighting is usually treated as highlighting as many things as possible. For example: This is darkula-light, but colorschemes are all the same for the sake of the argument. There is A LOT happening on the image, everything is of the different color and as a result nothing is really highlighted. Well, the apple logo draws the attention the most, is that the expected result?…

Forms in Vue

Introduction Every SPA has its library of input groups. And when such an extensive work as wrapping every input type into a label and adding consistent styles between them is done, developers are tempted to handle forms by themselves. It doesn’t look too hard but turns into Greenspun’s tenth rule all the time. Any sufficiently complicated C or Fortran program contains an ad-hoc,…

Hello World

Hi, I’m Sergei. Sometimes I don’t fit into 280 symbols. Very rarely sometimes. I make Within Means on weekends. I also made dict-to-flashcard . Sometimes I change jobs. If that’s the case, here is my CV Schedule a meeting: cal.com/smagin Me on the internet: s-mage@github @smagin@mastodon.online s_mage@twitter

Smagin · RSS Amplifier