HNHacker News
TopNewBestAskShowJobs

romero-jk

30 karma · joined October 31, 2021

submissionscomments
romero-jk··on How to make any immutable data structure distributed
This is how clojure does it: https://clojure.org/reference/atoms

It's very costly though.

romero-jk··on How JavaScript engines achieve great performance
True but for a dynamic lang is very close[0] and if your application lives in the Java collection framework(most do) instead of using arrays the performance is even closer.

[0] https://benchmarksgame-team.pages.debian.net/benchmarksgame/...

romero-jk··on How I helped build a profitable MVP over a weekend
If finding couriers is the bottleneck for the restaurants then sure. I can see that as the sales pitch.
romero-jk··on How I helped build a profitable MVP over a weekend
I'm sure you sound very smart saying that but in this case, there were no restaurant listings nor customer portals.
romero-jk··on How I helped build a profitable MVP over a weekend
Why would the restaurant want to pay a cut from their menu prices and use this service then?
romero-jk··on How I helped build a profitable MVP over a weekend
So we “scaled down” all the way to B2B. Turns out, more than a few restaurants in town would gladly handle the sales and marketing themselves and keep 100% of the order value minus fixed delivery fees.

What value does this MVP offered, bookkeeping orders? Couldn't the restaurants just contact the courier directly too? Looks like the restaurants were already doing it.

I'm assuming the burden of filling up the web form would be the same as contacting the courier. In many places couriers will use their own cash to pay for the order, so the restaurant gets the payment immediately.

romero-jk··on PlanetScale is now generally available
They swithed to spanner.
romero-jk··on PlanetScale is now generally available
Heavy toll on performance and is not really postgres. For the same workload pg can be up to 30x faster or more than cockroach. At some point of course, pg won't be able to keep up and the horizontal scaling of crdb will beat it.
romero-jk··on PlanetScale is now generally available
DyanmoDB is truly serverless, they give you a http endpoint and that's it, you don't have to deal with database connections.
romero-jk··on Making life easier for newcomers to the .NET ecosystem
In that case, the elephant in the room is of course Javascript ;) It can be up to 50x faster than python or ruby.
romero-jk··on Rust Is the Future of JavaScript Infrastructure
Sure maybe, but here we are talking about short running CLI applications not long running processes. IMO, Go is better suited at this 'js infrastructure' stuff.
romero-jk··on Rich Harris joins Vercel to work on Svelte full time
You can "sprinkle" react too
romero-jk··on Clerk: Local-First Notebooks for Clojure
I do prefer immutability too and think it should be the default for most programming, my original point was that for me, the trade-off of using clojure (small ecosystem) instead javascript for single server CRUD apps is not worth it but as a language I'll take clojure over javascript any day.
romero-jk··on Clerk: Local-First Notebooks for Clojure
99% of variables are local to your function, is not like program a thousand of global variables.
romero-jk··on Clerk: Local-First Notebooks for Clojure
They give me a guarantee that nobody else is going to be changing the data, somewhere deep down the call stack. I've had cases in production Python code where some seemingly unrelated code module somewhere was mutating data without my knowledge, breaking whatever I was working on.

Since we are talking about single-threaded single stack context, immutability wouldn't have saved you here, even with immutability you could have receive the wrong value/data from some function in another module down the call stack. The problem was not mutation but a function returning bad output.

You are implying some code modified data underneath you, which can't happen in a single thread.

romero-jk··on Memory leaks are crippling my M1 MacBook Pro
A gmail tab consumes a lot of memory for me in safari but no int chrome. Maybe it has something to do with google products ?
romero-jk··on Common Lisp code optimisation
That's a big problem in clojure too, were you have to write lots of javaish clojure to get decent performance.
romero-jk··on Spending $5k to learn how database indexes work
If you take out online schema changes and sharding, what's the use case for vitess?
romero-jk··on Never update anything
Except for chromium.
romero-jk··on Why Co–Star Uses Haskell
To Scala yes, to Elixir? wut?
romero-jk··on Why Co–Star Uses Haskell
At least JS can be 50X faster than Python and it has TS.
romero-jk··on Things to say when you're losing a technical argument (2001)
How?

One could answer, "Sure, but that will take away time from current things that need attention."

romero-jk··on Async Python is not faster (2020)
No, in his benchmarks the async version should still be faster, the problem is python is just slow.
romero-jk··on Clerk: Local-First Notebooks for Clojure
I was referring to Clojure's immutable data structures, not immutability in general. My nodejs apps are just transformations pipelines of pure functions with postgres being my global mutable state. Clojure doesn't offer me anything here that I can't easily do with JS/node.

Sure Clojure is a better language but not better enough to justify the additional abstraction layer IMO.

romero-jk··on Clerk: Local-First Notebooks for Clojure
What do most here use Clojure for? For me, there was little value in using it over nodejs for single server CRUD apps with postgres. Some things I liked are namespace keywords, REPl integrated with your editor, immutability. But still, it felt like swimming against the current. Immutability is not as useful in a single-threaded event-loop like nodejs. No third party SDKs, even though I know Java using the Java SDKs was tedious labor, most Clojure wrappers are pretty bad too, so more interop.
romero-jk··on Why and how to use service injection in Node.js
It's just a thing to make statically typed languages more dynamic. Java devs want to bring their patterns to TS/JS.