HNHacker News
TopNewBestAskShowJobs

ivanb

519 karma · joined June 19, 2012

Software developer, contractor.
submissionscomments
ivanb··on Rock n'Roll Racing in Unity: game is controlled by NES emulator
Car coordinates are mirrored from a live NES emulator running the original game side by side with the Unity port. It gives the game controls authenticity. To my knowledge, it is the first such attempt.
ivanb··on Why Clojure?
I'm assuming you replied to the wrong comment. If not, then all I see is straw men about performance, and I didn't mention none.
ivanb··on Why Clojure?
The parent comment illustrates the problem with one clear example. In real-world code functions pass around amorphous maps, they add, subtract and transform fields. There is no way to know what's being passed around without reading the source of the whole chain.

Statically typed languages reduce the need to know how the data is structured or manipulated. The market has clearly chosen this benefit over what Clojure can provide.

ivanb··on We are destroying software
If this post was written by a non-celebrity, then it would have been immediately buried. But here were are at 771 points for some cheap maxims.
ivanb··on GW-BASIC User's Guide (1987)
My first language and IDE :_) By chance I had this thick beige manual in my household. Once, when I was a kid, I caught chickenpox. I spent a week or two in bed with GW-BASIC manual and an English dictionary. That's how I learned two most useful tools of my trade: English and programming.
ivanb··on SQL style guide by Simon Holywell
SQL is around 40 and there is still no reliable tool for SQL formatting comparable to Prettier or gofmt. At least not for Postgres. There are several formatters but they break on advanced features like stored procedures. If someone is looking for an open source project to contribute to, a tool like this would be greatly appreciated.
ivanb··on For those who hear voices, the ‘broken brain’ explanation is harmful
Thank you for sharing. The trait of using incorrect synonyms is interesting. Perhaps this shows the limit of their cognitive ability.
ivanb··on For those who hear voices, the ‘broken brain’ explanation is harmful
Very interesting and well written. I have a thought that if you have entities in your head, you may as well make them pay rent. If you record the conversations or just your experience, other people would be willing to pay to learn about it. Youtube, Patreon, Tiktok, whatever. I for one am interested in what the entities think about themselves. How old are they? Can they tell you something you don't know besides the sanskrit thing. Maybe they are too deceitful to get any real information, but also maybe they can give you some creative output.
ivanb··on First Contact with SQLite
Indeed. In practice, SQLite is the only embedded SQL OLTP DB. It doesn't have a rival. What we need is more competition in this space. I for one would love to have something with a feature set and strictness comparable to Postgres. A drop-in replacement would be extra nice.
ivanb··on The many faces of undefined in JavaScript
This was probably the single worst design decision of JavaScript. It is the only language I know of that has two "absent value" types. If null was a billion dollar mistake, then undefined adds an order of magnitude to the problem. There is absolutely no reason for undefined to exist.

We've generally adopted strict mode. I think it is now time to come up with and adopt a new no-undefined mode. And yes, it should break the standard library. It is worth it.

ivanb··on I am using AI to drop hats outside my window onto New Yorkers
If the goal is to make a window-based store, then why do you need AI at all? Just release the hat once payment goes through.

This reminds me of thousands of blockchain projects that used the technology to flip on light switch.

ivanb··on New gel breaks down alcohol in the body
Lemon juice.
ivanb··on Xkcd: Greenhouse Effect
Yes, but during the last ice age we were under a kilometer of ice: https://xkcd.com/1225/

On the other hand, we've been "staving off the next ice age" too zealously: https://xkcd.com/1732/

ivanb··on Ask HN: 9-yo son wants to build a game, I'm lost. What can I do?
You are a lucky parent.

I would start with Scratch and then move to a Basic with 2D drawing capabilities and then to Blitz3D which is a Basic with a 3D engine. Have a look at all the positive reviews.

ivanb··on Biscuit authorization
> Revocation is essentially the Achilles heel of JWTs

By the nature of the problem you have to store some kind of a list of tokens. Either a black list as with JWTs or a white list as with classic session tokens. There is no way around it. This makes both approaches practically the same.

One can argue that the black list will in general be shorter than the white list, but in a case of a serious attack, would it really be so?

I am afraid that the community will now abandon JWTs and move to biscuits, macaroons, buns and meringues as they did with classic session tokens, throwing away the tools and security practices.

ivanb··on Henry Kissinger Has Died
On a practical side of things, how did he manage to make it to 100? Did he maintain a nutrition plan, was he physically active?

Fun fact: Henry Kissinger was elected an international member of Russian Academy of Sciences in 2016.

ivanb··on Reality Labs has lost $11.4B during 2023 (there's still one quarter left)
AR is for seeing what the customer is seeing and feeding customized ads and specialized offers. It is the ability to show smaller prices to poor and bigger prices to wealthy, increasing margins. It is an invaluable tool for marketers. It is potentially big big money for Facebook but meager offering for customers. VR is for luring users into AR advertising dystopia. Metaverse is a masquerade. Too bad for them they spent so much on the 3D red herring.
ivanb··on Police raid mosque in Moscow, forcibly take worshippers to enlistment office
And that's assuming independent judicial system. Such a precious thing should not be taken for granted.
ivanb··on Warp drive's best hope dies, as antimatter falls down
I can give an example. If something moves back in time, it interacts as if it has negative mass relative to us, who move forward in time. Of course nothing moves back in time but tachyons which exist only on paper. The worlds of things moving forward in time and backward in time never meet because they are just two different solutions to the same equation and we have absolutely no evidence that the second world exists. Inverted matter from Tenet should have received negative mass but we most likely will never see it because time may be an illusion likewise to rotation.
ivanb··on We migrated to SQL. Our biggest learning? Don't use Prisma
Yes. Maybe I took it too far. I was implying that the fewer choices you give to the user the better scalability you will be able to achieve.
ivanb··on We migrated to SQL. Our biggest learning? Don't use Prisma
Indeed. A query builder is only really useful for dynamic queries and in practice they are few. I would argue that for performance and complexity reasons dynamic queries in real-world applications should be avoided.
ivanb··on We migrated to SQL. Our biggest learning? Don't use Prisma
It looks like one poor choice leading to another poor choice. They probably chose Prisma because it may have helped them with GraphQL, whereas they most likely don't need any GraphQL at all.

Then they are screwing around with AWS Lambdas and package size, but what is the advantage of the Lambdas if they don't make your deployment easier? Just have a ECS and run whatever you want for better price/performance ratio and much higher performance ceiling.

I don't get which of their tools are improving developer productivity or software quality. It looks like every tool stands in their way. Why won't they just learn SQL and use it? What's is so low productivity about it? It's the highest level data manipulation language there is. Now they are bringing Kysely for supposed type safety. Yeah, good luck debugging, optimizing or changing the queries in any way. You'll have to convert from SQL to TypeScript and back whenever you'd want to develop the query in your SQL console.

What I see is a bunch of poor choices. Shiny tools standing in the way of getting stuff done.

ivanb··on Pentax K-3 III Monochrome: A DSLR Just for B&W Photo Lovers
Now that they got K-3 III Monochrome off their hands I hope they can dedicate effort to the camera that really matters - Ricoh GR IV.
ivanb··on The guide to software development with Guix
The whole thing is enticing. I'm looking at it as a replacement for tool version managers like NVM, pyenv, asdf and probably as a replacement for local Docker. There is, however, a doubt that I might fight it more than I would benefit from it. After all, the IDEs were not designed to work in Guix environment. There is no way to tell without trying, I guess.
ivanb··on The guide to software development with Guix
How would one use a modern IDE in this environment especially when you have multiple projects with different dependencies open at the same time? Would one need to install the IDE as a dependency of a project? Would all the IDEs have different settings?
ivanb··on Clojure Turns 15 panel discussion video
The ultimate failing of Clojure as a tool is its inefficiency measured in $ per feature.

The language is not very approachable for junior programmers. You can grab a Python programmer and graft them on a Java or TS project and the same week they will deliver features and bugfixes. Reading other's people code in Clojure is much harder especially when coming from imperative world. The language is terse. The documentation is terse and lacks examples. Library documentation is insufficient or non-existent. You have to read other people's code. It is a really demanding activity aggravated by lack of static typing. You cannot just hover over a map in your IDE and see its structure. The value may have come through several transformations that add, transform and remove fields. To understand what arguments a function expects you have to decipher destructuring bindings which in real code can be ingenious, i.e. unreadable. And hold on to your butts when a clever teammate invents a flow of control macro and uses it throughout.

These and other reasons make the pool of candidates small, candidates "over-qualified" and expensive. If your expert quits, your whole endeavor is screwed.

I helped to rewrite a Clojure project that stalled due to lack of affordable talent. It's been chugging along since then at a considerable pace. The new language is very popular and much less affected by the mentioned problems.

There is a mention of Penpot in this thread. Mark my words, when it comes a time to scale, they will rewrite the whole thing in a popular statically typed language.

ivanb··on Ask HN: Programs that saved you 100 hours? (2022 edition)
Cursive is manufactured by Ideogram Limited, not JetBrains.
ivanb··on How to move a running process into a tmux session (2020)
The ability to attach a detached process to any terminal should be a coreutil.
ivanb··on Australian activist can't use encrypted apps, must let police access phone
Is there a decent country left in the world? One that values privacy, family values, private property and freedoms, knows a man from a woman and is not at war?
ivanb··on With no fuel and no cash, Sri Lanka grinds to a halt
Sri Lankan's can live off the land and the sea. I asked one of them about the upcoming crisis. He showed me his very modest house on a relatively small plot of land and said: "See: there are coconut trees on my land. We will not starve."
← PreviousPage 2 of 7Next →