You are viewing archived messages.
Go here to search the history.

Tom Larkworthy 2024-11-18 21:25:05

Content editable Observable runtime based notebooks 🤔 Pretty cool! maxbo.me/a-html-file-is-all-you-need.html

Konrad Hinsen 2024-11-19 06:58:49

Nice! I just wonder if the idea can survive the passage from prototype to robust tool for researchers. Dependencies on resources on the net are fragile and destroy reproducibility. You need to put all external resources under local control and manage them. With Web technology, that requires setting up a server. And that's a big step towards the complexity of today's "standard" notebooks such as Observable or Jupyter.

That is, BTW, my current answer to "why don't researchers use the Web to communicate". It's because the Web wasn't made for their needs. Initially it was, of course. But the priorities quickly drifted towards other use cases.

Mariano Guerra 2024-11-20 09:10:32
Taylor Troesh 2024-11-20 15:38:38

My friend made a query language for KV stores! Already being used on very large production datasets. Check it out:

github.com/janderland/fql

demo.gif

Rafi Khan 2024-11-22 16:02:06

Very cool!

Konrad Hinsen 2024-11-22 09:52:04

"Democratizing Software" Talk at Handmade Seattle, starting at 1:24. Starts out with a statement of goals and values, as the title suggests, and then explains why rewriting techniques are a good way to reach those goals. Ends with a presentation of Nova, a rewriting system for nearly-plain-language.

This is so incredibly similar to my own work over the last years that I am probably going to rewatch this at least once. The only difference is the target audience: Wryl (the speaker) uses everyday language as a building material, addressing games and other use cases that everyone can relate to, whereas I use mathematics as a building block, addressing scientists. I could probably set up a rewriting system for translating their talk to my own scenario.

📝 Handmade Seattle 2024 - Day 2 - abnercoimbre on Twitch

abnercoimbre went live on Twitch. Catch up on their Software and Game Development VOD now.

Paul Tarvydas 2024-11-22 20:26:39

I think that this is just a parallel-universe implementation of Chris Marten's Ceptre. Am I mistaken?

Konrad Hinsen 2024-11-23 09:24:49

Ceptre is described as a logic programming language (I didn't look into the details). Nova is a multiset rewriting system. So the two have very different foundations, even if the target application areas overlap.

Wryl argues that rewriting is easier to get into for newcomers (no programming experience at all) than the more popular PL paradigms, and that's the main argument for Nova in the talk. This affirmation sounds credible to me but not obviously true.

Paul Tarvydas 2024-11-23 11:09:05

Konrad Hinsen I got interested in Ceptre for other reasons. If I strip away the haughty words, I see no technical difference between Ceptre and the technology that Wryl describes. Basically: Factbase that allows the existence of duplicate facts. A way to pattern match against the factbase. Rules that rewrite the factbase based on the results of the matches (including removal of matched facts and insertion of new facts). Looks trivial to implement in Lisp, or Prolog, or ???. Actually, the big win is the use of a declarative syntax. Don't code actions, relegate all action-oriented details into the engine. Prolog does this. Ceptre does this. Nova does this. Martens' github contains numerous examples of games implemented this way. If interested, I can dig out some references from my notes...

Konrad Hinsen 2024-11-23 19:23:19

When I see "logic programming", I expect an inference engine as in Prolog. A rewriting system doesn't have that, it simply evolves the factbase over time until it reaches a stable state. And yes, rewriting is easy to implement and has a nice declarative syntax. Good reasons to adopt it.

Paul Tarvydas 2024-11-24 04:19:59

I think that Nova and Ceptre work in 2 stages. (1) search, (2) do something with the matched stuff (i.e. mutate the factbase). In my mind, the basic function of Prolog is to do "exhaustive search". In function-based languages, exhaustive search would be written as nested loops. Both, Nova and Ceptre need to do exhaustive search in step (1), hence, they both need the basic exhaustive-search-function of Prolog (or bug-inviting nested loops). In step (2) they, both, need to do only very simple things - retract facts from the factbase, insert facts into the factbase.

At 2:05:26, Wryl shows syntax with dark-background text and grey-background text. I see the dark text as "constants" and the grey stuff as "holes". Prolog syntax uses lower-case for constants and Upper case for holes. Ceptre uses the same syntax and adds the "lolli" operator ("o-" in ASCII) to separate step (1) from step (2). And, Ceptre uses a circle-X ("*" in ASCII) to separate pattern matching clauses (in Prolog that would be ","). Off the cuff, I think Wryl's example is:

image(Name,X,Y,R,G,B)

palette(Color,R,G,B) 

--->

image(Name, X, Y, Color)

and, would be written in Prolog as:

image(Name,X,Y,R,G,B) ,

palette(Color,R,G,B) ,

retract(image(Name,X,Y,R,G,B)),

retract(image(Name,X,Y,Color)),

assert(image(Name, X, Y, Color)).

And, in Ceptre it might be written as

image(Name,X,Y,R,G,B) * palette(Color,R,G,B) o- image(Name, X, Y, Color).

[My knee-jerk reaction would be to use t2t or OhmJS to rewrite the Ceptre syntax into Prolog syntax, then to run SWIPL on the result. Then, I would write yet another t2t program that would allow extending the Prolog-ish syntax by adding JS externals, then, spit that out as a /bin/bash pipeline (example syntax from an unrelated experiment github.com/guitarvydas/das/blob/main/das2f/layerboundingbox.md)]. [Some months ago, I dissected the Ceptre dungeon crawler example and hand-mapped it to DPL syntax: guitarvydas.github.io/2024/01/19/Ceptre-Dungeon-Crawler-Example-Walk-Through.html]

📝 Ceptre dungeon crawler example walk Through

Oops! Your browser doesn't support PDFs! Download Instead

Paul Tarvydas 2024-11-22 11:05:39

Konrad Hinsen I haven't watched this yet, but the words you use are tickling my neurons.

  1. "rewriting"
  • makes me think that this may be incredibly similar to my t2t ("text to text" rewriting)

  • "a rewriting system for nearly-plain-language"

  • makes me think of Steve Phillips' work with ChatGPT / Claude. He used LLMs to generate OhmJS. The generated OhmJS implemented his new programming language by using Golang as an assembler. It mapped his new language into legal Go code that he would run. I.e. new-lang -> new-age assembler -> executable, where new-age assembler == Go. (Private communication, details available, the only blocker is writing this up in a readable manner)
  • I'm currently using Python as an assembler in defining an HHLL and am compiling a 1,400 LOC HHLL program (into Python [done] and am working on generating Common Lisp, with an eye on generating JS).
  • Kinopio to markdown. I use the Kinopio app as a mind mapping / bubble-charting / brainstorming device. I invoke a Prolog program to rearrange the mind map in hierarchical order and to spit out the points as markdown (.md). I told ChatGPT to turn the point-form .md file into full-blown prose and generated at least one blog post in English that way.

(Details and repos available, if interested).

Konrad Hinsen 2024-11-22 15:13:56
  • Yes, your t2t stuff is a variant of rewriting.
  • The author (Wryl) would probably not approve of LLM-based methods, given his focus on simplicity and low-resource computing. His language uses statements in simplified and restricted English. Similar to the language used in text adventure games.
Kartik Agaram 2024-11-23 00:54:15

FYI wryl's pronouns are they/them.

Konrad Hinsen 2024-11-23 09:30:38

Right, found it. But... let me rant a bit: I hate this "everyone picks their pronoun" business. Not that I have political or philosophical objections, it sounds just fine. But in practice: how am I supposed to figure out someone's preferred pronouns? Some put them on their home page, others in their Mastodon profile, etc. In a conversation, am I supposed to stop, take out my phone, and do five minutes of search before I continue my sentence?

Language is a collective property of its speaker community, so pronoun choice needs to follow agreed-on rules in that community. For nothing other than pragmatic reasons.

Kartik Agaram 2024-11-23 14:30:47

I didn't mean to police, was just offering information. In this case I actually made the same mistake a couple of months and got corrected. Hmm, I did get corrected in private, though. That was thoughtless of me, sorry..

I think of it as simple courtesy. Calling people as they would like to be called. Like, I've known two Andrews in my life who hated being called 'Andy'. But yes it's hard in this decentered world of ours to keep track of this stuff. I try to do my best and otherwise not think about it too much when I make a mistake..

Konrad Hinsen 2024-11-23 19:28:42

I am also happy to call people as they would like to be called, but I can manage that only for a small number of people I am in contact with regularly. And pronouns are worse (from a memorization point of view) than names, because names are relatively unique, whereas for pronouns, everyone picks one of a small number of combinations.

Mariano Guerra 2024-11-22 22:30:46
Eli Mellen 2024-11-23 14:49:11

A potentially future of coding shaped CS prof. role is available at COA up on MDI in Maine

I can talk to what the school is like and make intros if anyone is interested.

📝 Careers

Career opportunities at the College of the Atlantic in Bar Harbor Maine.