Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
sklogic
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
98 ms
·
931.
▲
by
sklogic
11y ago
> those two particular examples are very easy to explain Explanations do not affect intuition at all, it's too primal to listen to any reason. Even despite the fact that everybody heard this explanation from the elementary school, w
932.
▲
by
sklogic
11y ago
> Reverse engineering software is completely different from penetration testing How is it so? You cannot find funny vulnerabilities without reverse engineering the binaries. > It doesn't make sense for it to be illegal to forbid
933.
▲
by
sklogic
11y ago
No, it got nothing to do with open source. Reverse engineering and pen testing the binary, closed source software is a standard practice and in many countries it is illegal not to allow doing it.
934.
▲
by
sklogic
11y ago
> every non-trivial software is a compiler Actually this is even more true than you probably think it is.
935.
▲
by
sklogic
11y ago
I never watch videos (what's wrong with you, post-literates? Forgot how to read and write?), so commenting on the title only. Yes, compilers indeed have a lot in common with databases. Datalog (and therefore a relational algebra) is a
936.
▲
by
sklogic
11y ago
Yes, the DNA encoded information is classic (please do not consider my comments as any kind of an endorsment of the OP article). But, as I said, this is only a half of the information you need to get any sensible predictions of the results
937.
▲
by
sklogic
11y ago
The problem with the OoO is that it's a way too expensive (in terms of power and area) in many cases. You won't ever see OoO in GPUs and DSPs, unlikely in the microcontrollers. So, VLIW and the other "stupid core, smart compi
938.
▲
by
sklogic
11y ago
Exactly, you got it right. One indirection less, and no jump table in the cache. And CPUs are very well optimised for this kind of indirect jumps, because of vtables. There is also one step further - emit the actual jump instructions, makin
939.
▲
by
sklogic
11y ago
> Wait a minute, how is that even possible? Or rather, what do you mean? It means that the stream of bytecodes (32-bit numbers in OCaml) is replaced with the corresponding label addresses (for 64-bit hosts - addresses minus a fixed offse
940.
▲
by
sklogic
11y ago
Even with a lack of formal proof, a reproducible, and therefore thoroughly testable black-box AI is still much safer than a diverse human drivers population which include drink-drivers, partially blind, psychopaths and so on.
941.
▲
by
sklogic
11y ago
Yes, that's a good example. The recipe I used for such demos was based on an old Soviet electric shaver and a standard bicycle wheel spoke, it's a known combination to get an inverted pendulum (even at funny angles, not necessaril
942.
▲
by
sklogic
11y ago
DNA encodes the amino acid sequence. Quantum mechanics defines the folding. These two things combined determine the colour of your eyes, etc., etc. Encoding per se is meaningless without the folding. Also, the way how RNA polymerase work (i
943.
▲
by
sklogic
11y ago
Protein folding is a quantum thing indeed. And folding matters no less than the amino acids sequence.
944.
▲
by
sklogic
11y ago
Our intuition is so poor that it even gets many classical mechanics problems wrong. Most hilariously the various resonance-related things (my favourite practical example is a pendulum swinging upwards, which looks like pure magic). Intuitio
945.
▲
by
sklogic
11y ago
People are doing deep learning even on mobile GPUs. Even on VC4 on Raspberry Pi.
946.
▲
by
sklogic
11y ago
The article is missing one important difference between a primitive Python use of jump threading and the OCaml bytecode interpreter which pre-compiles the bytecode into a threaded code. A difference in performance between these two is hug
947.
▲
by
sklogic
11y ago
There are architectures that require manual pipeline control. MIPS, for example, or any VLIW architecture (including many of the modern GPUs). Cache is also often programmable (see scratch memory in Sparc, local memory in GPUs, etc.)
948.
▲
by
sklogic
11y ago
> You can definitely not provide any guarantee for arbitrary DSLs implemented in your system, but claim you do. No, I never claimed so. It's a responsibility of a DSL developer, although it is very easy, because of the small size of
949.
▲
by
sklogic
11y ago
> Because I care about soundness. And what's the problem with soundness? I can even derive formal proofs for simple DSLs when I have too. I never had any issues with mixing semantic properties of DSLs on any level of abstraction - a
950.
▲
by
sklogic
11y ago
In this case you need four DSLs - your core model and three DSLs for mapping the model to the specific storage backends.
951.
▲
by
sklogic
11y ago
In this case domain itself is language construction: I built a system of DSLs that make implementing any other DSLs easy. And I am using this and the other similar toolchains (like Racket) to build DSLs for a very wide range of domains.
952.
▲
by
sklogic
11y ago
I'm talking about efficiently compiled embedded DSLs built on top of meta-language hosts (with potentially more than one backend).
953.
▲
by
sklogic
11y ago
> such a property would depend upon the set of semantic components having some incredibly strong properties. Why? You can have as many semantic building blocks as you like. My current tool belt contains, among the others, a generic high
954.
▲
by
sklogic
11y ago
Yes, tell me more. I build eDSLs professionally. You can take a look at some of the stuff I'm building: https://github.com/combinatorylogic
955.
▲
by
sklogic
11y ago
> When I say DSL I mean external DSL, not a fluent interface If you're using a meta-language, there is no difference between external and embedded DSLs. External (or standalone) DSLs also should be built exactly the same way, on top
956.
▲
by
sklogic
11y ago
> Writing a spec is HARD. Chances are that you're severely over-engineering it. Just take the English specification for any particular problem your DSL is supposed to solve and slightly tweak it into looking like a formal language.
957.
▲
by
sklogic
11y ago
> I actually find compilers for transformation of DSL AST to target languages much more costly then designing the DSL syntax. Mind explaining why? What can be costly and complex in a chain of trivial transforms, each being very simple, f
958.
▲
by
sklogic
11y ago
> Not only maintaining and growing a DSL is challenging but also designing it at first. It's not that challenging if you do it the right way. > DSLs are costly. Plainly wrong. DSLs are the easiest and cheapest way of eliminating
959.
▲
by
sklogic
11y ago
In order for DSLs not to evolve into a mess they must be made of high quality semantic components, which you simply mix together and alter syntax a bit in order to get a new DSL. When you develop your DSLs this way the problems you're
960.
▲
by
sklogic
11y ago
To avoid this issue DSLs must be highly modular, which is easily achivable if you're implementing them as eDSLs on top of a meta-language (i.e., mixing DSLs is trivial and interop is not a problem).
More ›