Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
jlouis
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
18 ms
·
151.
▲
by
jlouis
6y ago
I don't think this is so ironic after all. Featherweight Java is an idealized language, small enough for doing experiments. These experiments often involve the necessity of a formal proof. But being a small language, still capturing th
152.
▲
by
jlouis
6y ago
The other classic variant here is when msg is poisonous . Then pushing it back onto the queue means it'll go again at some point, poisoning your system again. In practice, you need some dead-lettering with a message timeout. Something
153.
▲
by
jlouis
6y ago
No. Error handling in Go is very explicit since it doesn't alter the control flow of the program through an exception. I'm hesitant to agree this is just a bad implementation, because you will have to make decisions on error paths
154.
▲
by
jlouis
6y ago
Postgres handles the network connection quite differently. In particular, it can multiplex several queries on the same connection and feed data back in smaller chunks. You may run into bugs, of course, but they are likely to be of a differe
155.
▲
by
jlouis
6y ago
The current way to get a lot of efficient computation on a modern computer is to engage the GPU of said machine. This means that any language hosted on the CPU is going to be at a disadvantage. In short: you are better off writing a compile
156.
▲
by
jlouis
6y ago
And optimization can happen.
157.
▲
by
jlouis
7y ago
Go's strength is not the language. But there are so much more to an ecosystem than the language itself. People pick Go, despite its language shortcomings. That should be telling to a lot of other ecosystems out there. Also, the niche i
158.
▲
by
jlouis
7y ago
I think the key point is that most actor models, at least the ones I know, are truly concurrent with preemption, whereas most models based on OO are sequential. There is only one thread of execution in the OO program, whereas there is no no
159.
▲
by
jlouis
7y ago
You can also just dump them into strings :)
160.
▲
by
jlouis
7y ago
They both exist for a reason. JSON is really nice for your quick proof-of-concept where you have relatively few developers working on a small system. Up to a point, this also scales well. On the other hand, if you have many developers, and
161.
▲
by
jlouis
7y ago
To be fair, the text doesn't seem to say if we are looking at maximum or average latency. Depending on what is being measured, you will have vastly different opinions on what is good and/or bad latency. Also, note ratio of clients
162.
▲
by
jlouis
8y ago
10us is not generally achievable. Expect the lowest granularity you can get to be in the millisecond range. Erlang provides soft real-time, and under load you might see a process come later to the scheduler. You are guaranteed that the dela
163.
▲
by
jlouis
8y ago
Not a priori. In practice, I'd guess that if we destructure a typical video frame, it will have a header which is somewhat tree-like and a payload which we are not going to touch and decode. In that case, we avoid the copy for the heav
164.
▲
by
jlouis
8y ago
The CI angle was my first bet as well. You build and test in the cloud nowadays. Heck, you might develop on MacOS, and deploy on Linux. There are places where it matter, SIMD processing for instance, or low-level kernel development. But if
165.
▲
by
jlouis
8y ago
I'm worried, not because of the standard itself, which seems well thought out, even if rushed. I'm worried because you have a protocol implemented in the userland for a few mainstream languages. It seems everyone now has to pay th
166.
▲
by
jlouis
8y ago
Isolate all memory so a failure is compartamentalized Discriminate between the error-kernel of the program and the rest. The kernel is the part which is not allowed to fail. Goal: keep it small. Discriminate between errors you have seen hap
167.
▲
by
jlouis
8y ago
If you get to the part about monitors, consider erlang:demonitor(Ref, [flush]) in your own code. This also removes the monitor message from your mailbox if it arrived in between, which is a real problem in an async setting. Though in some s
168.
▲
by
jlouis
8y ago
When Javascript projects write "Isomorphic", what do they mean? It certainly isn't isomorphic in the usual sense in Math of a bijection between structures (categories), because even if it were it is a special case of some kin
169.
▲
by
jlouis
8y ago
The recent Erlang release (21) changed a lot of the internal interpreter structure with a nod in Mike Pall's direction. Just by shortening the typical opcode size down, they gained 20% speed boost. And the BEAM is a pretty good interpr
170.
▲
by
jlouis
8y ago
The basic idea of RISC was to reduce the complexity of individual instructions. Rather than having one instruction, you had several, but each of those would be easier to decode and execute. And, as history has shown, it was also quite a bit
171.
▲
by
jlouis
8y ago
In the mathematical sense, a Field is a Commutative Ring with the added constraint that the multiplicative operation has inverses for every non-zero element. Floating point doesn't even form a Ring, because the operation is not associa
172.
▲
by
jlouis
8y ago
The flip side is that you lost the ability to "program" a solution. And they are not always simpler. Good constructive proofs usually goes by "Look at this object, now back at me, now at this object, I'm on a boat, I do
173.
▲
by
jlouis
8y ago
The difference is that in a proof assistant, you cannot gloss over a detail. So many of the lines establishes well-known facts which a mathematician has internalized in their brain. You could store that in a library (and many proof assistan
174.
▲
by
jlouis
8y ago
Steeep learning curve. Baby steps and don't give up. Make judgement after a month or two. Key point is you can program it to do what you prefer.
175.
▲
by
jlouis
8y ago
Another good trick is to never log: report(Msg) -> hopefully_traced. You can then add a trace probe to your report/1 function and this allows you to have debug information when you need it.
176.
▲
by
jlouis
8y ago
I think the typical experienced Erlang user would keep the C/C++ programs, but manage them through a fabric of Erlang code. That is, each part is cut up into a small program, and these are controlled by the Erlang system so it acts lik
177.
▲
by
jlouis
8y ago
Somewhat agree. Supervision trees (or sync.WaitGroup in Go) are good tools for achieving the same end result. But it isn't as semantically protected as the article states. In Trio, the property is given by the programs scope. However,
178.
▲
by
jlouis
8y ago
People have been sitting for 30 years and more for a life sentence. First parole attempt at 12.
179.
▲
by
jlouis
9y ago
The only thing that is passed "efficiently" between processes are large binary blobs. Everything[0] else is copied. Up to a point, this is efficient, as a copy decouples sharing and this is really good for modern caches, and it is
180.
▲
by
jlouis
9y ago
It is also quite likely Apple will try to add some kind of SIMD chip to their ARM efforts. Things just got a hole lot more interesting if we can wrestle Intel from their current leader position.
More ›