Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
jlouis
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
35 ms
·
331.
▲
by
jlouis
12y ago
May I recommend using percentiles over the average? Reporting the 50th, 75th, 90th, 95th and 99th percentile is much better at describing the situation. Even better is to report a histogram or a kernel density plot of the the observed value
332.
▲
by
jlouis
12y ago
It shouldn't bother you. It is just how moderns systems are .
333.
▲
by
jlouis
12y ago
This proves a very important pet peeve of mine: Your modern application has a highly dynamic operating point. There is no way you can deploy a system and expect it to be static for eternity. Back in the day with low interconnectivity you co
334.
▲
by
jlouis
12y ago
Author here. I've been using Mnesia successfully for other things as well, among that a billing system. The key is to have another data source from which you can reconstruct data should the need arise. The advantage you get is very ver
335.
▲
by
jlouis
12y ago
It is very easy to solve. Two solutions: * Implement open types for the language. OCaml did this in 4.02, and it is very useful. * Heterogenous containers: https://github.com/MLton/mlton/blob/master/lib&#
336.
▲
by
jlouis
12y ago
I love a good troll :) I'd say: evaluate both and pick what suits you.
337.
▲
by
jlouis
12y ago
Somewhat haphazardly: * You don't have the C# baggage * You have a modern module system, which is only paralleled in Standard ML. This is very important for large developments where the need to split your code base into manageble chunk
338.
▲
by
jlouis
12y ago
The whole point of this series is to pick people who are knowledgeable in their respective language. Jose wrote Elixir and Fred is a known personality in the Erlang community. It is so much more powerful when it is people with knowledge w
339.
▲
by
jlouis
12y ago
Hunch: It is very workload dependent.
340.
▲
by
jlouis
12y ago
Time is fun. You have to essentially mock it. Write a system in which you can control how time advances and then define your postconditions in the stateful system such that time is not violated. I have an approach here, taken for the '
341.
▲
by
jlouis
12y ago
There is no easy way around this if you really want a collection which is heterogenous, but often, you would just cook up a struct/record-like object for these things. Trading off easy heterogenous lists buys you a better type checker,
342.
▲
by
jlouis
12y ago
A good way of getting at this is to call things at runtime "classes" or "tags" to make it apparent that their discrimination happens at runtime, not compile-time. The problem is that if you call both things types, you qu
343.
▲
by
jlouis
12y ago
Beware here! There are a couple of different products you can sensibly form on data. So you have to make it very explicit which you mean when you talk about them. You can't generally interchange them in all contexts, but in some contex
344.
▲
by
jlouis
12y ago
It does produce results, but the results are probably more hidden. Rumor has it that 50% or more of all telecommunication uses Erlang, a mostly-functional programming language. This is a tremendous success, but few people know of the fact.
345.
▲
by
jlouis
12y ago
Generational collectors can pick any strategy for each of their generations. What to pick depends on language, and what characteristics you want to get easily.
346.
▲
by
jlouis
12y ago
First priority is about modularity and elegance. An elegant program is often fast, correct and with a short time-to-market. It is the numerous scores of small hacks that bogs down programmers nowadays.
347.
▲
by
jlouis
12y ago
As for 1. do test! This is not always the case.
348.
▲
by
jlouis
12y ago
Indeed. This is done better and with more care in Standard ML.
349.
▲
by
jlouis
12y ago
It would seem the important feature of a modern language is how it handles modularization. The ability to program-at-large requires a language to make trade-offs here and there. I do note that the Go-centric world would naturally make the
350.
▲
by
jlouis
12y ago
A couple of hints: 1. Use a finite-state-machine REST framework like webmachine or cowboy_rest. This will help you in the long run once you grok how they work. 2. Your intention here is that the user might have done something silly. Write a
351.
▲
by
jlouis
12y ago
I stole the "intentional" part from Joe Armstrong in turn :)
352.
▲
by
jlouis
12y ago
Erlang routinely runs 100,000 processes in the same memory space and scales very well. The reason it is possible to even handle this is that it is not based on shared memory but on message passing. There are two things at play here: a) Is
353.
▲
by
jlouis
12y ago
How could you forget Erlang? It has been avoiding events for years and has done so with high success. Same with Haskell and Standard ML :)
354.
▲
by
jlouis
13y ago
This is exactly what ETS in Erlang provides :)
355.
▲
by
jlouis
13y ago
The idea of having arbitrary subtrees is to support an efficient compression scheme. But you are indeed right that a keyset cache would be extremely effective at limiting the size of maps.
356.
▲
by
jlouis
13y ago
If you do that, it is better to create an arbitrary caching construction of subtrees and then reap the benefit by tighter packing of data in general. I agree a keyset cache could be really nice to have going forward. It would resemble what
357.
▲
by
jlouis
13y ago
The first one: Yes, it has to. Otherwise the keyset would be shared among processes and that is generally not possible in Erlang (Immutable binary data being the exception) The second one: yes and no. The format is described at http:
358.
▲
by
jlouis
13y ago
Well, there are three types of databases: Relational, Columnar, and finally massively distributed. They throw away different feature sets in order to handle a certain subset better. The primary reason Relational databases are so friggin
359.
▲
by
jlouis
13y ago
You would be correct, sir :)
360.
▲
by
jlouis
13y ago
There are some parts of rabbitmq which is highly CPU-bound. This will probably help RabbitMQ in those areas.
More ›