Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
jlouis
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
28 ms
·
271.
▲
by
jlouis
11y ago
I'm talking about getting academia onboarded back in 1996 here. If you look at the industrial market, then sure, but I'm looking at what it takes to get languages that doesn't look like the normal imperative piece of crap to
272.
▲
by
jlouis
11y ago
The JVM could have had like 99% of all the VM market by now had Sun just opted to fix two things back in the day: * GC intrinsics, so you could implement functional languages easily. * Tail calls, so you could implement functional languages
273.
▲
by
jlouis
11y ago
With jitter, the call time for a constant, in a dynamically linked library, is around 1200ns: enacl_nif:crypto_box_ZEROBYTES/0 value ------------- Distribution ------------- count 10
274.
▲
by
jlouis
11y ago
I think Russ showed the translated code produces the same binaries as the Go 1.4 C variant. So this isn't very likely given he has the option to pipe roughly any Open Source Go project through the compiler.
275.
▲
by
jlouis
11y ago
Google needs a platform they control. They don't control the Erlang ecosystem, and they have learned the hard way how that fares (Java+Oracle+Android). The other problem is that Google needs to build tooling that fits into their existi
276.
▲
by
jlouis
11y ago
In large setups, it is usually clever to isolate job execution policy into a separate system. This simplifies a lot of contextual configuration of the system at large. You can have cron emit the cascading event if you want but you often nee
277.
▲
by
jlouis
11y ago
As other say: it is converging to Hawaii-prices, but most of that is Taxation. In Denmark, the policy has been to put taxes on resource usage in the later years and not only on income. In this case the resource usage is on fossil fuels. The
278.
▲
by
jlouis
11y ago
1.4 focused on getting the GC ready for the changes in 1.5. First, the code was rewritten from C to Go. Second, the GC was made precise, which is a major improvement to a GC. The GC was not made truly concurrent however, and short pause tim
279.
▲
by
jlouis
11y ago
HotSpot doesn't matter that much in this test. You end up spending 80% of the time in the kernel and when I tested, the Erlang code only spent a fraction of it's time in the emulator loop. In other words, the speed comes from ever
280.
▲
by
jlouis
11y ago
The TechEmpower Benchmarks measures the maximal number of requests per second you can churn through a server. They don't care for the number of connections, but simply pick the best result from trying different connection counts. Also,
281.
▲
by
jlouis
11y ago
I'm aware of Zing and I'm pretty sure it would fare way better in this kind of problem. However, I'm inclined to guess that every time you sink 1 hour of work into BEAM, there is somewhere between 5-15 hours sunk into OpenJDK
282.
▲
by
jlouis
11y ago
Maybe I should make the argument as to why ETS is not garbage collected. It is a pragmatic solution to an often occurring problem in software. You have a lot of data. You rarely change that data. You still have to walk over it when you garb
283.
▲
by
jlouis
11y ago
Take the fastest webserver written for Java and for Erlang. Now run static requests around 2048 bytes, 10k connections, 3 req/s on each connection for 5 minutes. Measure the 99.9th percentile latency. Erlang wins by a large margin beca
284.
▲
by
jlouis
11y ago
Frej's JIT is going strong! Maybe it will be present experimentally in the next Erlang release. But such things may change over time.
285.
▲
by
jlouis
11y ago
You will be using ETS directly way more often than you will be using Mnesia in many Erlang systems, so I wouldn't really say you'll use it rarely.
286.
▲
by
jlouis
11y ago
The 'timer' module is not the timer wheel in the BEAM VM. The 'timer' module is a slow, old, module which works really well for small developments, but fails in the large scale. The common caveat against its use still ho
287.
▲
by
jlouis
11y ago
`erlang:unique_integer(Opts)` is not cluster unique! It isn't even unique if a node restarts, but it is unique over a system instances lifetime. It's speed depends on what options you set. If you request `erlang:unique_integer([mo
288.
▲
by
jlouis
11y ago
It is ongoing work. Killing locks have been a major part of the BEAM VM optimization for the last 10 years, approximately. But doing so correctly takes time. So each part of the system is addressed based on what fruit is the lowest hanging.
289.
▲
by
jlouis
11y ago
One may wonder why all these changes in Erlang/OTP 18.0? The reason, as the chapter by ferd states, is lock contention. Often, when you enabled the `lcnt` subsystem to find lock conflicts in busy systems, you would run into the timer w
290.
▲
by
jlouis
11y ago
Yes and no. Erlang/OTP has a pretty extensive test suite which takes several hours to run. There is a nightly test run on a multitide of architectures. So it is some times the case that a fault is caught at night and fixed the followin
291.
▲
by
jlouis
11y ago
The base is the same, but Quviq QuickCheck for Erlang provides some libraries which are far more developed than most QuickCheck implementations out there. On the other hand, it is not a free tool if you want the full version. Since you are
292.
▲
by
jlouis
11y ago
It currently lives in its own repository: https://github.com/jlouis/maps_eqc There is also an accompanying series of blog posts: https://medium.com/@jlouis666/breaking-erlang-maps-4-4ebc3c6... (Pa
293.
▲
by
jlouis
11y ago
You could tell the `ssl` application to avoid SSL-3.0, TLS-1.0 and RC4. Here is an explanation by RabbitMQ: https://www.rabbitmq.com/ssl.html It is different from an end-user application in the sense that you can configure
294.
▲
by
jlouis
11y ago
I think a patch for this would be welcomed. Usually there are some subtle complications from such ports which tend to also affect other systems. So fixing it in one place often helps other porting efforts as well.
295.
▲
by
jlouis
11y ago
Something you may find interesting is that the new faster maps are loosely based on Rich Hickey's HAMT implementation that is used in Clojure. Jose and co. in Elixir adapted/is-adapting their internals to use maps as well, as they
296.
▲
by
jlouis
11y ago
It pays eternal homage to a toy-repository by phk in which that commit message occurs. I found it more fun than `git yolo`. And easier to type as well. The other reason I have it is that when you are first building up a piece of software, y
297.
▲
by
jlouis
11y ago
I have the following in my git config for handling these kinds of discussions: [jlouis@lady-of-pain ~]$ cat .gitconfig | grep phk phk = commit -a -m 'upd'
298.
▲
by
jlouis
11y ago
If you are willing to pay with execution speed, you can get fast compiles for generics. But C++ opted for fast execution speed and hence pay with long compile times. I'd much rather have fast compilation and slower execution and some k
299.
▲
by
jlouis
11y ago
The complexity in language theory does not stem from a single concept, but from their mix. If you take something like generics on its own, it is rather simple to add to a language. But once you mix it with other concepts, the complexity ris
300.
▲
by
jlouis
11y ago
Don't forget the race detector! It has also gotten easier to detect subtle concurrency errors which in turn means less deterministic execution is easier to handle.
More ›