scryer-prolog
materialize
scryer-prolog | materialize | |
---|---|---|
64 | 129 | |
2,261 | 6,047 | |
1.0% | 0.9% | |
9.2 | 10.0 | |
3 days ago | 4 days ago | |
Rust | Rust | |
BSD 3-clause "New" or "Revised" License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
scryer-prolog
- Lisp and Prolog Appear in the European Commission's EGovernment Benchmark 2025
- Recreational programming: Tacit programming in Prolog
- The Third Annual Scryer Prolog Meetup
-
I want a good parallel computer
You probably already know about https://github.com/mthom/scryer-prolog are you saying we should accelerate scryer-prolog with a Grayskull board?
- Scryer Prolog Distribution via Pkgx
- The Semantics of Testing. Also, Quads
- Scryer Prolog NPM package (experimental)
-
Using UV as Your Shebang Line
From my original comment https://github.com/mthom/scryer-prolog/issues/2170#issuecomm... :
> The way this works is that this test.pl is both a valid shell file and prolog file. So when executing as a shell file the first line finds and executes /usr/bin/env after searching for the glob pattern /usr/bin/env. env then executes scryer-prolog "test.pl" which runs the prolog file as a module and halts; of course it ignores the first line as a comment / ... /. Then the shell continues and executes the next command after ;, which is exit which stops execution so the rest of the file (which is not valid shell) is ignored. The # makes the shell evaluator ignore the / that closes the comment for prolog.
-
The Simplicity of Prolog
No, unless you count cancer research[1], particle physics experiments, and government funding allocations[3].
[1]: https://dcnorris.github.io/precautionary/index.html
[2]: https://github.com/mthom/scryer-prolog/discussions/2441
[3]: https://link.springer.com/chapter/10.1007/978-981-97-2300-3_...
Regarding how, check out Power of Prolog on YouTube.
- Pure regex implementation using rational trees and if_/3
materialize
-
The Missing Manual for Signals: State Management for Python Developers
This triggered some associations for me.
Strongest was Cells[0], a library for Common Lisp CLOS. The earliest reference I can find is 2002[1], making it over 20 years old.
Second is incremental view maintenance systems like Feldera[2] or Materialize[3]. These use sophisticated theories (z-sets and differential dataflow) to apply efficient updates over sets of data, which generalizes the case of single variables.
The third thing I'm reminded of is Modelica[4], a language where variables are connected by relations (in the mathematical sense). So A = B + C can update on demand and, as well, you can update just A and B, then find out what C must have become.
[0] https://cells.common-lisp.dev
[1] https://web.archive.org/web/20021216222614/http://www.tilton...
[2] https://www.feldera.com
[3] https://materialize.com
[4] https://modelica.org
- Ask HN: What's your go-to message queue in 2025?
-
Turning the Database Inside-Out
https://materialize.com/ provides another approach, based on "timely dataflow" (https://timelydataflow.github.io/timely-dataflow/) - originated at MS.
-
Category Theory in Programming
It's hard to write something that is both accessible and well-motivated.
The best uses of category theory is when the morphisms are far more exotic than "regular functions". E.g. it would be nice to describe a circuit of live queries (like https://materialize.com/ stuff) with proper caching, joins, etc. Figuring this out is a bit of an open problem.
Haskell's standard library's Monad and stuff are watered down to the point that they are barely category theory, but they are also quite useful and would not have been readily invented without category theory. See even if you have no taste for "abstract nonsense", maybe you can still accept the fact that its left a trail of more accessible "semi-abstract semi-nonsense" in its wake.
This stuff takes time. If it's not your cup of tea, no need to make yourself an early adopter. See also things like Lean where fancy type systems are finally reaching "regular non-CS" mathematicians with great success.
-
Building Databases over a Weekend
I agree. So many disparate solutions. The streaming sql primitives are by themselves good enough (e.g. `tumble`, `hop` or `session` windows), but the infrastructural components are always rough in real life use cases.
crossing fingers for solutions like `https://github.com/feldera/feldera` to be wrapped in a nice database, `https://materialize.com/` to solve their memory issues, or `https://clickhouse.com/docs/en/materialized-view` to solve reliable streaming consumption.
Various streaming processing frameworks often have domain specific languages with a lot of limitations of how to express aggregations and transformations.
- Drasi: Microsoft's open source data processing platform for event-driven systems
- Rama on Clojure's terms, and the magic of continuation-passing style
- Feldera Incremental Compute Engine
-
Ask HN: Who is hiring? (July 2024)
Materialize | https://materialize.com/ | Staff Security Engineer 200k | $200- 230k
NYC (HQ) or United States
We are looking for a Staff Security Engineer on our Cloud team who will own the security of our infrastructure and product. (5+) years of experience as a security-focused engineer.
https://boards.greenhouse.io/materialize/jobs/5220351004
-
The Notifier Pattern for Applications That Use Postgres
Those updates are not retroactive. They apply on a go forward basis. Each day's changes become Apache 2.0 licensed on that day four years in the future.
For example, v0.28 was released on October 18, 2022, and becomes Apache 2.0 licensed four years after that date (i.e., 2.5 years from today), on October 18, 2026.
[0]: https://github.com/MaterializeInc/materialize/blob/76cb6647d...
What are some alternatives?
adventofcode - My solutions to the Advent of Code challenges
risingwave - Stream processing and management platform.
differential-datalog - DDlog is a programming language for incremental computation. It is well suited for writing programs that continuously update their output in response to input changes. A DDlog programmer does not write incremental algorithms; instead they specify the desired input-output mapping in a declarative manner.
ClickHouse - ClickHouse® is a real-time analytics database management system
swipl-devel - SWI-Prolog Main development repository
kubesql - Experimental tool to query K8s API using plain SQL