HNHacker News
TopNewBestAskShowJobs

cgrand-net

225 karma · joined October 2, 2009

submissionscomments
cgrand-net··on Show HN: Celest – Flutter Cloud Platform
Hi, ClojureDart co-author here. Join us on #clojuredart of the Clojurians slack, we will help. Can code in `celest/functions` import from lib? We cou
cgrand-net··on Show HN: Celest – Flutter Cloud Platform
I can’t speak for web but mobile apps written in Flutter are accessible https://docs.flutter.dev/ui/accessibility-and-internationali....
cgrand-net··on Show HN: Programming Google Flutter with Clojure
Not yet but we are working on it. Sponsor ClojureDart to make it happen sooner! https://github.com/tensegritics/ClojureDart
cgrand-net··on CRDT: Fractional Indexing
The algorithm exposed in the article would be better served by a Stern-Brocot than average + jitter.
cgrand-net··on Clojure Dart
ClojureDart co-author here. It happens in Dart too. Some changes are not compatible with the current application state. It may occur a bit more frequently because of Clojure being less stringent than dart about giving names to everything (which is tedious but definitely helps with hotreloading).
cgrand-net··on Ask HN: Can you discuss CS in your native language?
It’s also a matter of habit. We are just too used to English words even when French ones exist. Go try and read Principes d’Implantation (sic) de Scheme et Lisp (the original Lisp In Small Pieces): pure unadulterated French and, to me, a constant struggle as I have to translate expressions to English!
cgrand-net··on Show HN: FalsiScan – Make it look like a PDF has been hand signed and scanned
My bank used to reject scans but accept faxes... bureaucratic reasons.
cgrand-net··on Citroën introduces a two-seat EV that costs €2,644 and then €19.99 a month
That’s it: required courses (20h).
cgrand-net··on Identifying a person through walls from video footage, using only WiFi
> "This scene on the other side is shown solely for presentation and was not used for identification". Why not show the actual footage of the experiment?

My understanding is that the video on the left (the one showing the other side of the wall) is just here to illustrate what's the wifi setup senses and was not used for identification as the whole point is to identify without (optically) seeing what's on the other side.

cgrand-net··on Nonplanar Printing
Similar work: “CurviSlicer: Slightly curved slicing for 3-axis printers” presented at this year’s SIGGRAPH https://hal.archives-ouvertes.fr/hal-02120033/document
cgrand-net··on Many-valued logic
UNKNOWN or TRUE is TRUE
cgrand-net··on Why CRDT didn't work out as well for collaborative editing xi-editor
Stern Brocot is a better way to do fractional indexing (pathological cases are not aligned with common uses cases like putting something to the front).

https://en.m.wikipedia.org/wiki/Stern%E2%80%93Brocot_tree?wp...

cgrand-net··on Prolog's Death (2010)
Datalog is the safe subset of Prolog. http://abiteboul.blogspot.com/2012/08/datalog-revival-for-da...
cgrand-net··on Prolog's Death (2010)
I would argue that lambda calculus without pervasive lazy evaluation is not lambda calculus. Lisps in general don’t have it (unlike Haskell) and make them not so removed from hardware (once hardware stacks were added to CPUs). For long Lisps didn’t even have lexical closures!
cgrand-net··on Why did Clojure gain so much popularity?
No, it's hierarchical (because we nest collection types) vs relational.
cgrand-net··on What Is Idempotence?
Isn’t it a fix point rather?
cgrand-net··on The Essence of Datalog (2018)
A Datalog program is guaranteed to terminate (if finite databases). A prolog or miniKanren one doesn’t. Datalog is not Turing-complete.
cgrand-net··on Janet – A dynamic language and bytecode VM
I don't know if letters can be considered as gendered. Anyway, there are some feminine nouns: Lua (moon, feminine in Portuguese), Cassandra, Miranda, MariaDB, Clara Rules (off the top of my head too).
cgrand-net··on First contact made with melted nuclear fuel at Fukushima plant
> The truth is that accidents like this can never be cleaned up or salvaged.

While global warming is easily solved.

Coal or nuclear are both bad but differently. Which one is less bad depends on your risk model

cgrand-net··on In France, Comic Books Are Serious Business
Yes, "roman graphique" is a rather recent term (whose usage has slowly grown over the last 15 years, generally applied to BDs with more "serious" topics; it allowed some people to say they don't read plebeian BDs, they read romans graphiques).

Speaking of broadening people conception of BDs, I highly recommend people to have a look at La Revue Dessinée, a quarterly news magazine in BD https://www.larevuedessinee.fr

cgrand-net··on Rise of Netflix Competitors Has Pushed Consumers Back Toward Piracy
Not all Europe, only in: Magyarország Česko Slovensko România Polska Hrvatska Србија Slovenija Македонија Montenegro България Bosna
cgrand-net··on How innovative is Clojure as a Lisp dialect from Lisp expert's perspective?
Sort of.

First, conses are mutable so lists are persistent as long as they are used in a persistent way -- it has to be enforced through the codebase (and deps).

Second, lists big-O access/update costs are not as interesting as persistent maps and vectors.

cgrand-net··on Industry pushes sugary products, while obfuscating the health hazards
Perfect information and unlimited computing power.
cgrand-net··on 23andMe Informed Me My Husband and I Are Related
According to "An Association Between the Kinship and Fertility of Human Couple" (http://science.sciencemag.org/content/319/5864/813.long), third (or fourth) cousins have optimal reproductive success. Reproductive success is not just the number of children (because 1st or 2nd cousins couples tend to have more children but with associated health and/or reproductive problems), but the whole descendance.
cgrand-net··on Derivatives of Regular Expressions (2007)
A Theory of Changes for Higher-Order Languages - Incrementalizing λ-Calculi by Static Differentiation

> [...] We present a program transformation taking programs to their derivatives, which is fully static and automatic, supports first-class functions, and produces derivatives amenable to standard optimization.

https://arxiv.org/abs/1312.0658

cgrand-net··on Learning Clojure: comparing with Java streams
Flatten is a steam-roller and should be used wisely: it recursively flatten a sequential collection. Most of the time this is not what you want. Most of the rest of the time when you think that’s what you want it’s a code smell telling you that the shape of your items has gone out of control. And there’s the rare occurrence where you can really use it.
cgrand-net··on Modern Microprocessors – A 90-Minute Guide (2001-2016)
"Now I understand that rdi, rsi, etc. are nothing but compressed node identifiers in an interference graph. Ideally we'd have infinite registers: each instruction would read from previous registers and output to a new register. And so we would never reuse any register, and there'd be no data hazards"

I'm under the impression that we don't see the causality flowing in the same direction.

To me we first had a limited set of registers (imposed by the ISA), then to get better perf through out of order execution, cpus had to infer a deps graph and use register renaming.

Ironically all this silicon is spent to recover information that was known to the compiler (eg through SSA) and lost during codegen (register allocation).

cgrand-net··on The Art of Prolog, Second Edition
Not necessarily. One can use tabling (memoization) to prevent that.

Also sometimes reordering clauses in the body of a rule is enough to avoid infinite runtime.

Datalog (or SQL + recursive CTE) don't have this problem.

Mozart/Oz or Alice allow to specify the search strategy.

cgrand-net··on The Birth of Prolog (1992) [pdf]
>> Sure you can

The author spent decades on Datalog and when he says Datalog he talks about the core Datalog not even Datalog¬, he is just stating that the core Datalog is a wonderful seed for building actual applications by extending it.

cgrand-net··on The Birth of Prolog (1992) [pdf]
Datalog is a subset of Prolog syntax and logical semantics, but not of its operational semantics, so in practice the link is tenuous.

I like the honest words of Serge Abiteboul (co-author of Foundations of Databases http://webdam.inria.fr/Alice/) on this topic:

This is back to the advantages of “declarative programming”. The first scam was Prolog: The language is not really declarative. The second scam was Datalog: It is declarative, but there is not much you can do with it.

Datalog is simple and beautiful – Horn clauses. We theory guys had a ball with it. There were beautiful results to obtain even at the cost of further simplifications (e.g., monadic to be able to decide containment). But the scam is that if you want to do anything serious beyond your stupid positive first-order queries, you need more.

There was no fix that I know of for Prolog. There were fixes for Datalog. Extend the language. And this was done during the last 30 years

(http://abiteboul.blogspot.com/2012/08/datalog-revival-for-da...)

Page 1 of 3Next →