News for hackers. Stuff that matters.

vilterp

Re:Solving the 1+N Query Problem on Tuesday August 25, 2026 @01:48PM (#49437826)
> [Datalog] is a subset of Prolog that lacks recursion

Datalog does allow for recursion — a common example is graph reachability:

reachable(a, b) :- edge(a, b). reachable(a, c) :- edge(a, b), reachable(b, c).

(Evan mentioned implementing kCFA, which would require recursion like this...)

'Base datalog' guarantees termination by requiring all input relations to be finite. Notably this means that it doesn't have numerical operations like addition or multiplication, since `plus(a, b)` or `times(a, b)` would be infinite relations.

More practical Datalog engines like Souffle (https://souffle-lang.github.io/) have numerical operations but don't guarantee termination.

Recursive queries are not needed by most applications, but maybe Acadia could allow them (compiling to recursive CTEs) by proving that recursion only goes through finite relations.

Re:Dogalog: A realtime Prolog-based livecoding music environment on Thursday December 18, 2025 @01:44PM (#46316766)
Very neat. Would love to see events for each instrument laid out along a timeline!
Re:Turning the IDE Inside Out with Datalog on Sunday July 19, 2020 @11:39PM (#23894465)
Hi, author here. Thank you so much for this unfudging! I knew I was fudging things up a bit, and I didn't really understand the relationships between Prolog, Datalog, Horn clauses, and first-order logic. This clears things up a lot, though I think I'll need to read it a couple more times for it to sink in! Thanks again.
Re:Turning the IDE Inside Out with Datalog on Sunday July 19, 2020 @05:51PM (#23892747)
Oh hey Sam! Been a while! Thanks for reading man :)
Re:Are RethinkDB and Horizon abandoned? on Wednesday October 05, 2016 @09:36PM (#12649481)
Really sad to hear this; you guys were doing really cool work.
Re:Making Elm faster and friendlier in 0.16 on Thursday November 19, 2015 @03:33PM (#10597412)
Maybe the answer is for elm-html to put a cursor-state attribute on textual input elements, and have event handlers for selection change? Then you can have the cursor state in your atom if you need it without ports....
Re:Compiler Errors for Humans on Tuesday June 30, 2015 @01:48PM (#9807108)
`elm-make --report=json MyFile.elm` gives the error messages as JSON; very easy to parse out line & col. It's how the vim plugin that there's a video of in the post was made.
Re:Bret Victor: Seeing Spaces [video] on Thursday June 12, 2014 @12:06PM (#7884199)
Yeah, I actually agree. Him just open sourcing the Stop Drawing Dead Fish tool for instance would move things forward a lot -- just to see how the internal data structures & algos work.
Re:Bret Victor: Seeing Spaces [video] on Wednesday June 11, 2014 @09:41PM (#7881408)
Both the Light Table team (http://www.lighttable.com/2014/06/10/light-table-and-apples-...) and the Apple Swift lead (Playgrounds feature: http://nondot.org/sabre/) have explicictly cited Bret as an important influence — his ideas are certainly not going to waste.
Re:Please Steal These webOS Features on Tuesday February 21, 2012 @10:11PM (#3619250)
Hopefully we can hope to see some of this good design thinking in Android, since the design lead of webOS, Matias Duarte, is now design lead at Android (http://en.wikipedia.org/wiki/Matias_Duarte)