HNHacker News
TopNewBestAskShowJobs

grishka

13,482 karma · joined February 20, 2017

Android/Java developer. Ex VKontakte, Telegram.

https://grishka.me

meet.hn/city/ru-Saint-Petersburg/Saint-Petersburg

Socials: - mastodon:mastodon.social/@grishka

---

submissionscomments
grishka··on Turn off Apple Intelligence on macOS 27 and get its disk space back
This one is easy. Find its updater service plist in ~/Library/LaunchAgents, delete it, and create a directory with the same name so it won't be able to overwrite it.
grishka··on Apple has added persistent 'ads' to iOS, and it's driving users crazy
Firstly, I'm talking about PMs, not group chats. Group chats have different requirements because they have to be moderated.

Of course, I have nothing against being able to delete your own messages for both. A time limit within which you can do that is nice but I can live without one. But Telegram lets you delete every message in any PM conversation, including incoming ones, for both people. Or even the entire conversation, and make it disappear from the other person's list without a trace.

grishka··on Apple has added persistent 'ads' to iOS, and it's driving users crazy
But you can no longer trust Telegram that things you had in your chat will still be there tomorrow. This feature feels like someone has hacked into your device and deleted files they didn't like.
grishka··on Apple has added persistent 'ads' to iOS, and it's driving users crazy
Questionable features like being able to delete anything in the conversation on both sides. Tacky UI choices like liquid glass on Android or the excessive use of Lottie animations every-damn-where. All while being completely deaf to feedback, both from within the team (any criticism makes you "toxic") and from the public. The way he treats his employees isn't exactly good either.
grishka··on Apple has added persistent 'ads' to iOS, and it's driving users crazy
That's not a given. Visionary people sometimes go mildly insane over time. Source: worked at VKontakte and Telegram and watched it slowly happen to Durov.
grishka··on Dropbox's Jan 1st 2027 terms of service
Don't most countries give people their first IDs before 18? Mine does it at 14.
grishka··on English: A vs. An
As a Russian who's fluent in English, I feel like I ended up learning it mostly by example (Slavic languages lack articles, but we have other fun things for people learning them to trip up on, like cases). But a more general rule seems to be that it's "the" if you can point your finger at that particular thing or rephrase it with "that", otherwise it's "a".
grishka··on Minimal Phone 2
The product page explicitly mentions an unlockable bootloader.
grishka··on macOS 27 Golden Gate – Review
Android used to work kinda like that. You got the system partition that's a fixed size, and that's it. You also had the data partition for apps and their data on the same internal flash. For everything else, you inserted a micro SD card. You could move some apps to the SD card as well.
grishka··on Apple Reference Image: A New Approach for Verified Photography
You still have to trust the parts you can neither observe nor reverse engineer. So, everything organizational and everything that happens on their infrastructure.
grishka··on Apple Reference Image: A New Approach for Verified Photography
And why does someone have to trust Apple? Everything "security"-related that comes out of Apple lately somehow always assumes that Apple is to be unquestionably trusted.

And, yeah, I'm incredibly tired of this whole concept of a device you own acting in someone else's interests. This needs to stop and it needs to happen 10 years ago.

grishka··on iPhone Duo
Android actually has one real way to build UIs — it's the views and the resource system. Everything else is just Google's abstractions over that, which are either beta or deprecated.

I'm not sure what kinds of tools do you expect. You do have to make layouts for different screen sizes, no real way around that. You'd usually want two breakpoints, so you have phones, small tablets (and foldable inner screens), and large tablets.

grishka··on Copyright does more harm than good and should be abolished
I'm from a country that transitioned from free market and private property to planned economy and socialism, and then, 70 years later, back again. I'm sure it'll be fine. You can't scare me with such things :)
grishka··on Copyright does more harm than good and should be abolished
> You'll throw Hollywood and most of the publishing industry out of business overnight

Any downsides?

grishka··on Copyright does more harm than good and should be abolished
Very much this. And another problem is that the US forced most of the world to adopt similar laws through various cartels, oh, sorry, trade agreements. I distinctly remember when suddenly it was no longer okay to openly sell pirated software in Russia "because we're joining WTO". I still have no idea why we joined it.
grishka··on TiVo to charge money for skipping commercials in your own recordings
I'm surprised there's an online component to that. I've never seen such a device in real life but I've always assumed that these have some sort of automatic commercial break recognition and that such features were first introduced way back in the 90s when requiring an internet connection was impractical to say the least.
grishka··on Nitter and XCancel resume service after legal advice
Adversarial interoperability works well for this. Facebook did it in its early days — it let you connect your account on then-popular competing social media website (MySpace, probably, I don't remember for sure) and would import your social graph and crosspost on your behalf.
grishka··on Gateside by TSA Precheck
I've always had the impression that they don't start loading the bags until after the gate is closed.
grishka··on Gateside by TSA Precheck
Yeah, I meant doing that intentionally to send something to someone else for the cost of flight without having to wait days for shipping. Could you even get to the baggage claim area of an airport pre-9/11 without having flown into it?
grishka··on Gateside by TSA Precheck
> ensuring checked bags have boarded passengers

You mean you used to be able to just send a bag without flying yourself, and have someone else pick it up at the destination airport? Was this something that people did intentionally or did it happen accidentally?

grishka··on Actively exploited sandbox RCE in all Chromium versions
By that definition, Smithereen, my fediverse server software, is also an SPA, since it does what I call "ajax navigation" on desktop, so that the notifications websocket doesn't get disconnected and reconnected every time you click a link. It's technically a single page that gets most of its content replaced at runtime when you click a link, after all, right?
grishka··on Actively exploited sandbox RCE in all Chromium versions
Well, I'm an old-school guy. I'm all for developer ergonomics, as long as they don't affect the runtime. I use PostCSS and TypeScript in my own projects precisely for this reason, because they both make things more convenient for me yet leave no trace in the finished product that the users see.

> But now that LLMs are writing the code

Hopefully that's a temporary state of affairs and everyone will eventually go back to writing code by hand. I've never even considered using an LLM to get my job done, the whole idea is as alien to me as are these types of UI frameworks. To me, the best language to describe what you want from a computer isn't English, it's a programming language.

grishka··on Actively exploited sandbox RCE in all Chromium versions
I wouldn't consider that an SPA at all, it's just a page with an interactive element. An SPA is something that renders everything client-side and uses a generic client API to talk to the backend. A telltale sign of an SPA is that the first thing you see when you open it is some sort of loading indicator instead of the actual page you're visiting.
grishka··on Actively exploited sandbox RCE in all Chromium versions
> One seemingly small change to a page (like setting innerText) can have many ripple effects with reflow on mamy parts of a page.

I haven't looked into how browsers actually do it, but my mental model for it is that if something changes, this merely sets a flag on that element or its parent that its layout is not valid any more. Then, on next vsync, all the elements that have this flag set have their layout recalculated, potentially going up the tree as necessary. The only exception is if your script tries to get any layout-related property, e.g. offsetWidth. Then, as if as part of the getter of such a property, the layout recalculation will run immediately.

That is to say, if you need to make a lot of changes to the DOM, you should make them within one JS invocation so only one layout pass happens sometime after you're done.

grishka··on Actively exploited sandbox RCE in all Chromium versions
> See most of the ecosystem around React, for reference.

I've never used React myself, but what I've heard about it makes me question my own sanity. So are you going to tell me that instead of just updating the DOM tree directly I'm going to apply the changes to my data, then pass the entire model to the framework, which would then diff it with the previous version to get the changes back out, it would then call my functions that return components, and it would then diff the virtual DOM to find out what changed, and only then would it update the actual page? Why the fuck would anyone ever want that? What's so hard about simply changing the innerText or inserting elements or whatever?

Oh and now Google and Apple are insisting that this is the way to do UIs in native apps as well, with Compose and SwiftUI respectively.

The way the front end developer community seems to largely encourage learning top-down isn't helping either. I'll forever remember that one guy we made a small project with. He learned React but had no clue what "send a request" and "pass a parameter" means, and I had to explain him how to use XHR.

grishka··on Actively exploited sandbox RCE in all Chromium versions
At this point SPA pretty much implies React. But even if you optimize everything the best you could and avoid any third-party runtime dependencies, it's still going to be significantly more work to make API requests and do client-side rendering vs just rendering HTML server-side.
grishka··on Actively exploited sandbox RCE in all Chromium versions
Running code by itself isn't that bad, it's the fact that browser developers have decided for some reason that this code needs to be as performant as possible, so, JIT.

I don't get it! The way JS is typically used, it doesn't even benefit from JIT all that much. Making ajax requests, doing stuff with strings, and moving DOM elements around doesn't need every CPU clock cycle to be used as optimally as possible. It's exceedingly rare for websites to actually be doing something that needs raw performance. And SPAs will be slow no matter what.

grishka··on Cores in space: The core memory module from a 1980 Spacelab computer
It's one of those technologies that makes you wonder what would've happened if they just kept advancing it instead of outright replacing it with something else entirely. How tiny could cores be made? Could modern chip manufacturing techniques be used to make nano-scale core memory?

See also: vacuum tubes (there were attempts to miniaturize them to try to compete with transistors), CRT displays (there were some wild concepts like a flat-panel CRT where the gun is at the top and the beam makes a 180° turn at the bottom before it gets deflected into the screen; also late CRT TVs that had slimmer tubes).

grishka··on Verschlimmbesserung: The Word Your Software Updates Need
The modern tech industry is fundamentally broken, the incentive structure is wrong. No one even knows how to ship finished software any more. Everything's a perpetual beta now. It makes me really sad.
grishka··on We found a division by zero bug in FFmpeg with a vibecoded fuzzer
The Cloudflare captcha checkbox fingerprints the crap out of your browser. It's an opaque risk-based thing, which is the worst. Anubis just makes your browser brute force hashes, that's it.
← PreviousPage 2 of 34Next →