Closed marianoguerra closed 2 years ago
✍ Drawing Languages 🖱 Analyzing Visual Programming 📊 Datalog Data Science λ Drawing Lambdas
🎥 Geometric programming language update #3 - "meh" to pictogrammatic programming? via Hamish Todd
Hey folks 😁 here's an update on my geometric algebra programming environment project
🎙 Hest Podcast: comparing and contrasting Crosscut and Hest via Ivan Reese
Last week, Ink & Switch published the Crosscut essay, which describes our (@Szymon Kaliski, Marcel Goethals, and my) work on a prototype tool for drawing dynamic models of your thoughts. It's a fount of FoC-relevant ideas. For instance, combining the place where the programming happens with the place where the program runs, but even further using the same tools for building and working inside the program. Also, Crosscut tries to not feel like programming, and present a minimalist interface that is ruthlessly focused on emulating the best aspects of traditional pen & paper. If you haven't taken the time to read the essay, you're.. probably busy, I shouldn't bother you, sorry. I'll just leave a note on the door.
Before working on Crosscut, I had been slowly chipping away at my own FoC project called Hest (yeah, still just that one blog post). I also made a podcast just to think out loud about the project, so that I could self-reflect and thus hone my ideas and goals, and maybe someday build another prototype. But when the Crosscut project started, it drew all my attention, and the podcast stopped.
Today, with Crosscut done and released to the world, I'm here to share a new Hest podcast episode — 46 minutes long — in which I compare and contrast Crosscut and Hest.
To find out, kindly use this hand-crafted RSS feed, search for Hest or Ivan Reese in your podcast player of choice, or click one of the buttons here: pod.link/1559446316
And stay tuned for more episodes. They won't be on a schedule, but they will be about as relevant and entertaining as this fine slack message. So, fifty-fifty, eh? ;)
📝 The Causes of Latency in Computing Systems, and Why Exactly It Frustrates Us via Nick Arner
Wrote a post on Latency in Computer Systems - what causes it, and why it frustrates us
🎥 Lisperanto - in browser IDE via Oleksandr Kryvonos
made an intro video about my Lisperanto project
Anyone here know about in-browser ML tools for building models using images? In this case, we'd like to annotate ("draw" where relevant lines are present) some subset of an image corpus to build a model, and to do so interactively, feeding this training data into some easily configurable NN tool. Is there anything like this that is simple from a UI point of view?
💬 Joakim Ahnfelt-Rønne
Inspired by the recent post on Crosscut, I started thinking about geometric programming, and what it might look like.
I came up with the idea of using areas and line segments of 2D shapes as inputs and outputs.
For example, a rectangle gives us addition (the half circumference), multiplication (the area), square root (using area as an input and measuring one of the sides):
One could imagine an iteration construct ala the one in Bret Victors computational drawing program, or similar to the one in Crosscut, that allowed expressing e.g. Fibonacci iteratively:
Here the green arrows connect inputs lines to output lines, and the dots show where line segments begin and end.
The dotted rectangles represent iteration, where the first rectangle is used to specify the relation to previous rectangles (exactly how is a bit vague, I know). The green line sets the distance between each iteration.
Similarly, a unit circle could show the angle as a bent line (in radians, as the circumference is 2*pi), and sin/cos as shown. Using sin/cos as inputs and measuring the bent line you get asin and acos:
Thoughts? Maybe it already exists?
📝 some Lisp via Chris Knott
People admire Lisp's "elegance" in that it only has a single built-in datastructure - lists (a b c)
. Clojure, on the other hand is generally admired for being more "practical". One of the main things Clojure introduced is vectors [a b c]
, and maps {:a b, :c d}
as first class syntax. I was reading some Lisp this week and my brain kept grating/complaining because I was seeing what are conceptually hashmaps written as what I was interpreting as a lists of pairs, something which I "know" to be different.
Conversely, I have always thought it was annoying that C++ has three different operators (::
, .
, ->
) that all essentially mean "member of". Would C# be better if you had to say System::Console.Print()
instead of System.Console.Print()
? No, I think most people would rarely feel the need to conceptually distinguish between these things, the C++ syntax is just annoying noise to me.
What is it that distinguishes Clojure's brilliant decision to expand the syntax, from C# brilliant decision to compress the syntax?
It implies to me that if there is a scale of simplicity-to-expressiveness, then humans just happen to sit at particular point on it. There's no particular "reason" for why these changes were right other than "they'd gone too far that way, go back this way". There's a local maximum somewhere in the middle.
I have been thinking about this simplicity-to-expressiveness scale recently as it irrationally annoys me that on WikiData, "instance of" is "just another relationship" (it's P31 - "citizen of" is P27!).
I think that RDF is far too far towards the "elegance" end of the spectrum and would greatly benefit from a Clojure-style acknowledgement that some things are more different, and should be more differentiated. Yeah, it's mildly interesting that Node-Rel-Node triples is all you need to describe an ontology, but that's not actually how people think about the world...
🔗 Diagramming techniques for analysts and programmers : Martin, James, 1933 via Christopher Shank
A book called “Diagramming Techniques for Analysts and Programmers” (1985). Found it through a paper by David Harel. He descibed it as:
The state of the art on diagrammatic languages at the time can be gleaned from the book by Martin and McClure titled > Diagramming Techniques for Analysts and Programmers> . This book discussed many visual techniques, but little attention was given to the need for solid semantics and/or executability. Curiously, this book could have helped convince people that visual languages should not be taken seriously as means to actually program a system the way a standard programming language can.
📝 Usability Analysis of Visual Programming Environments: a ‘cognitive dimensions’ framework via Christopher Shank
Also started reading through “Usability Analysis of Visual Programming Environments: a ‘cognitive dimensions’ framework” by Green and Petre (1996).
The dimensions in outline: The list of dimensions that we shall use in this paper follows. For each dimension we supply a thumb-nail description. A lengthier account of the dimension and its relation to the underlying evidence will be found in the appropriate section below.
📝 https://twoville.org/#index via Jack Rusher
Code + direct manipulation interface with two-way binding for building diagrams
💻 percival.ink: an interactive in-browser notebook for declarative data analysis and visualization via Mariano Guerra
Percival is an interactive in-browser notebook for declarative data analysis and visualization. It combines the power of compiled Datalog queries with the flexibility of modern plotting libraries for the web.
✍ Project Overview ‹ λ-2D: An Exploration of Drawing as Programming Language, Featuring Ideas from Lambda Calculus via Jimmy Miller
Draw executable lambda expression diagrams
📝 Visual Programming Languages and the Empirical Evidence For and Against via Christopher Shank
"Visual Programming Languages and the Empirical Evidence For and Against" (Whitley, 1996)
The past decade has witnessed the emergence of an active visual programming research community. Yet there has also been a noteworthy shortage of empirical the resulting research. This paper summarizes empirical data relevant to visual programming languages both to show the current empirical status and to act as a call to arms for further empirical work.
[x] Change Month and Week Number
[x] focWeekExport 2022-01-19 2022-01-26
[ ] Summary
[ ] Hashtags
[ ] Check that comment links work (push weekly dump with channel summaries)
[x] Check to mention right person for moved messages
[x] Update Search Index
[x] Download New Attachments
[x] Update links
https://tinyletter.com/
https://tinyletter.com/marianoguerra/letters/
http://localhost:8000/history/
https://marianoguerra.github.io/future-of-coding-weekly/
https://stackedit.io/