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

Paul Tarvydas 2025-01-01 22:01:56

I'm thinking about compiling this diagram to code. I don't know if this thought experiment should be posted to thinking-together or devlog-together.

📝 Towards Diagram Compilation

Towards Higher Level Syntax for Programming Languages 2025-12-01-1

Kartik Agaram 2025-01-01 22:24:16

Belongs great here!

Kartik Agaram 2025-01-01 22:47:22

Could you link to some example files that you allude to in the post?

  • The original graphML
  • The culled graphML
  • The graphML for the large drawio drawing which OhmJS took up too much memory for.

In general, it seems to me that you're depending on too many tools, and the essential complexity is getting lost in the shuffle between them. You like to complain about the epicycles of function calls, but to me they're miniscule next to the epicycles of too many tools. Which is why I tend to first focus on minimizing the tools I depend on..

If you get me the files I'll take a stab at parsing them in Lua. It's hard to imagine a drawing so large that parsing it takes up a lot of memory on anything close to a modern machine..

As a meta point, Substack is another external tool you're depending on that introduces epicycles for your reader. I think it didn't always require Javascript to dismiss the nag popup to read the article, but it does now. Didn't you used to have everything on Github pages? Do you derive benefit from moving to Substack? (Sorry to side-track. It's boring, I know. I won't bring it up every time, just nag you say once in 10 times 🙂)

Tom Larkworthy 2025-01-02 09:48:36

I have a few ideas in my head about diagrams but they are not a priority.

  • visualizing the static code analysis is not that interesting. Tons of attempts. More interesting is if the current state of a running system is superimposed upon the static state diagram. Stately does this
  • If you had to pick code to diagram or diagram to code. I think I pick code -> diagram as thats the least maintenance. But I think I want to aim for bidirectionality.

To that end I have a tiny prototype of super imposing the active state of a FSM on the FSM diagram. observablehq.com/@tomlarkworthy/fsm

I just read Red Blob Game's excellent drag handler post. But wouldn't it be even more communicative if the diagrams were synced to the runtime state?!

redblobgames.com/making-of/draggable

📝 Stately - Build complex logic intelligently

Build and deploy workflows and app logic with Stately’s AI enhanced, collaborative tools.

📝 :wave: Hello, javascript-state-machine ⨯ Plot

Paul Tarvydas 2025-01-02 14:45:44

Kartik Agaram re. meta: Argh, as the substack author, I don't get to see what you see. My ideal would be to divide writing into WX and RX (Writing eXperience, Reading eXperience). Right now, for WX, I most like Keynote (basically Powerpoint) for editing one page of points with automatic-flexi-font (to instantly show me when I'm not being concise-enough - it's not the slides, but the instant feedback I want), along with Apple Pages (like Word, but more features ... it's a word-processor and a page-layout tool) and pasting .pngs (screenshots, draw.io and excalidraw exports ; .pngs instead of .svgs due to Apple) into the doc. For RX, I want both text and drawings to show immediately with no extra clicking (PDF would work, but github, Obsidian, substack, etc., etc. require extra clicking to show PDFs). But,,, I have to settle for Apple Pages and cut/paste into substack (annoying workflow for me, but, displays diagrams instantly, and, no paywall required). I tried Scrivener, github+emacs, Obsidian (I have to pay to publish - they deleted something like 100 posts when I didn't send money), YouTube+Descript, Gumroad, but, ultimately no cigar. I expected to use something off-the-shelf, instead of futzing with zillions of options or rolling my own. I guess I expect Apple to take care of the writing tools for me (it comes closer to this ideal than Linux). Maybe I need to re-visit these wishes? Hmm, maybe I just need to write an .RTF parser in OhmJS, then transpile my Apple .pages docs to markdown? How hard could that be?

Kartik Agaram 2025-01-02 16:21:35

You used to have github pages containing links to pdfs. I didn't appreciate them back then, but absence has made the heart grow fonder.

Paul Tarvydas 2025-01-04 14:32:28

Kartik Agaram, I was very inspired by your comments and meta-comments! They caused me to create a YouTube Video Future of Programming converted to a Substack article Future of Programming and another set of articles on Pond'ring Aloud: Writing Articles and Blog Posts. [I'm on #3 or #4 now].

If you honestly want to get rid of tools, first, get rid of time-sharing, memory-sharing and context-switching and Windows and MacOS and Linux. These things, all, cause software bloat. Use all that stuff during software development but don't include them in the shipped app .

Use a version of Lua that runs on bare hardware, not on an operating system. Forth did that. Lisp 1.5 did that. Smalltalk kinda did that.

Kartik Agaram 2025-01-04 14:55:43

Why, though? Why is the OS more irksome here than Substack?

Paul Tarvydas 2025-01-04 16:14:10

To me, it's the very same thing. Function-based programming needs an O/S for scaffolding. I guess that I'm playing with camera positions and trying to find one that works. It doesn't sound like I've found it, yet :-).

Kartik Agaram 2025-01-04 16:20:18

They're not the same thing, though. As technical artifacts, yes maybe it's a matter of fiddling with "camera positions" as you put it. But you ignore that there's an alien organism constantly moving your camera for its own ends. You have to first have stability before you can learn anything with your instruments.

Kartik Agaram 2025-01-04 16:23:31

(I assumed you were teasing me when you responded to my comment about taking on alien organisms as epicycles by adding yet another epicycle in the form of Youtube. But now I'm not so sure. Maybe we're just speaking different languages.)

KP Kaiser 2025-01-02 14:57:26

on a similar note, I'd like to have animations on diagrams of ideas for a blog post I'm working on. what sorts of tools or libraries should I be using to make this easier?

I'd like to add a button to send a message, and animate how it flows from the encoder to the decoder

Untitled (1).png

Tom Larkworthy 2025-01-02 15:06:40

Whats the animation? if its simple like a dot or a text label moving around you can achieve that with animated SVGs

developer.mozilla.org/en-US/docs/Web/SVG/Element/animate

Tom Larkworthy 2025-01-02 15:07:57

to make it triggered by a button you can add the animate element onClick

KP Kaiser 2025-01-02 15:08:05

this is great! is there a good tool to do this? or do people mostly do this manually?

KP Kaiser 2025-01-02 15:08:55

like am I going to have to go down the greensock or whatever with after effects pipeline or is there something else?

KP Kaiser 2025-01-02 15:09:15

seems like a giant gap between svg animations and greensock / after effects

KP Kaiser 2025-01-02 15:09:31

feels like I'm missing something obvious

Tom Larkworthy 2025-01-02 15:10:41

I do it manually. I jsut did quick research an illistrator does not export SVG animations and the counter suggestion was svgator.com but I have not used it

📝 SVGator: Free SVG Animation Creator Online - No Coding

It's SVG animation made easy - Create impressive SVG animations online, without any coding skills. Add them easily to your website. Get started for free!

Tom Larkworthy 2025-01-02 15:11:38

does look like it has potential I will try it!

KP Kaiser 2025-01-02 15:11:50

cool will check it out, thanks

Tom Larkworthy 2025-01-02 15:13:44

this is why I do it manually

image.png

KP Kaiser 2025-01-02 17:09:41

yeah the ui for this is kinda terrible too... hmm

Paul Tarvydas 2025-01-02 17:29:11

wondering: has anyone tried to generate SVG animation by asking ChatGPT/Claude?

KP Kaiser 2025-01-02 17:29:39

I tried but I got mostly bad interpretations of my original image

KP Kaiser 2025-01-02 17:29:44

can share a screen shot hang on

KP Kaiser 2025-01-02 17:31:40

currently trying two.js

KP Kaiser 2025-01-02 17:31:49

and have something mostly not too terrible

KP Kaiser 2025-01-02 17:32:34

here's another version with claude using threejs: claude.site/artifacts/db47ee10-d98f-4e6d-b3cc-aa553d963ad4

KP Kaiser 2025-01-02 17:51:03

... and here's one: claude.site/artifacts/2f23f5e2-1400-4e24-b1d3-6ccf8701905c

for the prompt:

can you help me generate an animated svg using schramm's theory of media choice? Probability of Choice = Possible Rewards / Required Effort
Paul Tarvydas 2025-01-02 18:07:33

FWIW: My knee-jerk reaction would be to work from the bottom up: feed your raw, manually-generated SVG to Claude and ask it to create a path on it from (x1,y1) to (x2,y2), then ask it to move a red dot along the path in NN seconds... I wouldn't ask it to generate the picture, only to modify the picture that you drew.

KP Kaiser 2025-01-02 18:08:56

yeah, Unfortunately claude doesn't take svg uploads for some reason

KP Kaiser 2025-01-02 18:09:06

you have to paste as text

KP Kaiser 2025-01-02 18:12:10

📝 Claude Artifact

Try out Artifacts created by Claude users

KP Kaiser 2025-01-02 18:12:20

I'll take that one I think

Maikel van de Lisdonk 2025-01-02 19:00:39

I use developer.mozilla.org/en-US/docs/Web/API/SVGGeometryElement/getPointAtLength and getTotalLength for paths other then bezier curves. And in a requestAnimationFrame handler a regular html element is positioned on the path using css transform. Something like this: potatodie.nl/diffuse-write-ups/move-a-dot-along-a-path

📝 SVGGeometryElement: getPointAtLength() method - Web APIs | MDN

The SVGGeometryElement.getPointAtLength() method returns the point at a given distance along the path.

📝 Move a dot along a path – potatoDie

Move a dot along a path

Tom Larkworthy 2025-01-02 19:51:08

More specifically I do it manually in observable but attach sliders to the artistic values so I can manually bring the diagram to the feel I want. Try playing with the sliders

observablehq.com/d/2c4b1ae7e1ffbd94

KP Kaiser 2025-01-02 19:57:53

The move a dot on a path blog post is super useful, thanks

Andrew Beyer 2025-01-03 01:36:55

you might also try schem.io

I ran across it recently and haven't had a chance to do anything real with it, but seems like the right kind of tool for this

KP Kaiser 2025-01-03 16:49:51

here's what I managed to get out of manim with a bit of finagling... I can just embed this and loop it, or render out to gif

Daniel Harris 2025-01-04 15:08:20

"Our tech is shaped by our need to make money". Apps and services are discrete items because they need to be packaged for sale or hire. These are my New Year musings. I'm curious if anyone else has thought about what influence our need to make money has made on the shape of our tech. App stores definitely promote the idea of discrete units that can be sold/hired because they make a cut of the transaction. I'm sure there's also an I made this factor playing out. I guess I'm wondering what if collaboration was the pervasive modus operandi? What would our tech look like then? What if we didn't need to package apps up as discrete branded units? What would the tech world look like? How would we build functionality? What if we never needed to earn anything from software? How much better could it be? What restrictions do we place on apps because we need to make money from them? And how much better would they be if we didn't need to do that? Purely from a technology angle. Even though there are loads of non-profit open source projects creating tech we are still stuck in the more pervasive paradigm of packaged units of code. How much better could we be? Of course, this is a pretty simplistic view of the world but anyone ever thought about this stuff?

Andrew F 2025-01-04 15:46:16

Open source is already kind of like this, right? We still like packages for legibility and ease of distribution.

Edit: let me try to do better. The notion of an independently distributable piece of software, with a limited interface to the rest of the system, will be reinvented almost immediately, regardless of the economic situation, for roughly the same reasons we like modularity inside our projects. It will help organize any collaboration that happens. That's 80% of the way to "apps" IMO.

The packages can have more wildly varying sizes, that's true. You wouldn't have NPM-level micro packages if each one had to make a case for people to pay for it.

FWIW I know this has come up here before, so you're in the right place.

Roma Komarov 2025-01-04 15:46:59

The “need to make money”, as well as all other obligations people can have, are something that prevent the progress in general, in my opinion. Successful open-source and side projects that people have, are often the result of their authors' privilege.

Either, they don't have to think about money and are free to work on whatever they want. Or they're lucky and can do so as a part of their main job. Or they're benefiting from others doing chores.

See the Maslow's hierarchy of needs — when you have to survive, you don't have the time and the resources for the upper levels of the pyramid (or still do them, which can result in both physical and psychological issues like burnout, etc.)

Things like UBI (universal basic income), as well as anything that improves equality (both economical and sociological) could elevate everyone and lead to faster progress.

Erik Stel 2025-01-04 16:08:54

I'm also musing this same topic and also taking the first steps in making the change. Currently I'm working on 2 projects (building 2 apps) for which I do not get paid. In my work I don't cut any corners to finish it (like with the littlest amount of work). I love the ideas and people working on these projects, so I put in effort because of the journey as well as the planned result. I've simply started to move away from the money system (make the first step instead of waiting for a better solution). I'm sure something good will come off it in whatever way. I don't like the 'old' money system. Not sure how or with what it will be replaced (others are better at this topic to come up with something clever or it will happen organically), Maybe someone does something for me for free at some point in time. Or maybe it brings new projects for which I do get paid (I can't live without money just yet 😉). We'll see. I'm positive 😄.

Kartik Agaram 2025-01-04 16:13:37

Andrew F is right, this has come up before and is very important. Some examples:

  • Me, 2018-10: "One test for whether something is reducible to money is: can you get equivalent results by paying someone vs finding someone directly involved." Arguing that you can't hire someone (or rely on a for-profit company) to write software because software can be broken in so many ways you might take a while to notice.
  • Gregg Tavares, 2018-10

There are other examples in the archives if you search for 'money' or 'capitalism'. Bear in mind the top-level channel pages are reverse-chronological. Also, in the early years we unfortunately weren't so good about creating threads back then, so you'll need to scroll upwards to see responses.

Kartik Agaram 2025-01-04 16:17:03

Oh, this one speaks even more directly to your collaboration angle. Earlier in the same conversation, I said:

I've been mulling for some time an open source project that explicitly privileges contributors over other non-participating users.

Ivan Reese 2025-01-05 00:31:25

This is something we talk about not infrequently at Ink & Switch, as it's one challenge (or, perhaps better, detail) explored by both local-first but also and especially malleable software. In both cases, control that was previously wielded by the vendors of software must be surrendered to the user. This invalidates a handful of dominant business models, like holding user data hostage or forcing users onto an upgrade treadmill. These movements (local-first / malleable software) are interesting because they started with a strong technical argument — if we change how we do things, our software will be greatly improved — and later revealed the perverse incentives that stopped things from evolving this way naturally. So, yeah, I complete agree with everything you said @Daniel Harris.

Josh Bleecher Snyder 2025-01-05 00:39:38

Constraints play an important role in engineering (and in creativity!). I agree that needing to make money dominates tech, and that that is bad, but if removed, money will be replaced by other (similar!) constraints, such as time and motivation. And money can also help overcome some time/motivation challenges. So it's not quite as simple as "money/capitalism bad".

Josh Bleecher Snyder 2025-01-05 00:41:55

Interestingly, in the last year, I've done a lot more non-financially-motivated projects. The reason isn't that I don't need money...it's that it's now easier to get a prototype going, thanks to LLMs. That is, the other costs (time, motivation) were in practice more significant for me. This will obviously vary a lot for different life situations, though.

Eli Mellen 2025-01-05 01:29:45

I’m a little nervous to wade into this topic…but here goes. Whenever folks talk about money and how it is shaping a thing, I think we should try to not talk about money and instead talk about how it centralizes power.

I think that, despite what some economists say no one is actually a singular “neoliberal,” instead, we live under the conditions neoliberalism produces. Similarly, if you are alive within culture today you live, regardless of your choice, wishes, or attempts otherwise, under capitalism.

As such, the forms we are capable of producing are inherently shaped by the culture we inescapably live within and beneath…so anything we want to make “outside” of it I think will inherently fail 100% of the time because there is no outside…so instead I think a more productive space of exploration is to consider how to resist or break the culture we’re already stuck in — movements from feminist thinking like queering and weirding are examples of this at play.

A more concrete example of this, for me, is that in my own explorations I often use tools that I think corporate bodies will see as undesirable, and I mostly refuse licensing because they’re a power structure that fits the shape of our existing culture…I don’t wanna play into that.

Konrad Hinsen 2025-01-05 11:32:55

@Eli Mellen Could you expand on "I mostly refuse licensing"? Is that about software you write, or about software you use? What then is the legal context of this software?

Daniel Harris 2025-01-05 11:36:48

Glad you overcame your nervousness and waded in @Eli Mellen. 😉 Yeah, I get that we all exist in a society that has a badge of "capitalism". Society and indeed capitalism might seem like fixed terms but the implementation on the ground and day to day can vary wildly and is potentially very malleable. The world doesn't just pop from one cultural paradigm to another. There's a lot of grey fuzzy space and in-betweenness.

I'm not sure that trying to change things from the inside is doomed to failure. Let's review in 5 years and see how I did. In fact, let's see how we all did in 5 years! ;-) But I do know I'm personally not comfortable with the idea of "resist or break the culture". It doesn't feel nice in my body when I resist or break stuff. I feel much better when I love and create. Of course, we might be talking about exactly the same thing – it's quite hard to tell with text sometimes, eh? By the way, have you ever heard of "what you resist persists"?

In terms of strategy, I'm pretty bought into the current paradigm. Registered a nonprofit org. Applied for government grants – and got some. Pay employees. Pay taxes. So, I'm not saying that the system is wrong or anything. I do feel that the system is not optimal for sure. I'm just musing about how we can make it better from within . And still have relatively pleasant lives.

Golly gosh! Seems like 2025 is going to be a real deep year! 😉

Daniel Harris 2025-01-05 11:38:51

Yes Ivan Reese, local-first and malleable software are great examples of technologies that promote personal empowerment and collaboration. And interestingly we kind of had the same journey in Kendraio where we wanted to make it easy to demo what the world would look like if there was interoperability, open protocols and data-portability everywhere. We started building an app to quickly show different rough ideas. Then we realised that the app itself was far more inline with our actual unspoken goals of personal empowerment and collaboration. And then we got the ah-ha moment that also "revealed the perverse incentives" why no one else was (or very few were) building such an app.

So, I guess I'm wondering if we reverse engineer the process and come from the other (human experience intention) direction, can we discover technologies that would foster personal empowerment and collaboration? I mean rather than just happening on them by mistake almost. Funny games!

Erik Stel 2025-01-05 11:56:34

100% with ‘love and create’. And 2025 is the year for a lot of that! ❤

Eli Mellen 2025-01-05 11:59:50

Konrad Hinsen mostly that I don’t use them much. Not as a rule, but also not as a habit.

Elsewise they’re sort of unavoidable. I also don’t have heaps of occasion to use other people’s code in my hobby stuff, so it’s an easy thing for me to say without having to try real hard.

@Daniel Harris yeah, we are defo aligned on that. I think that resisting and breaking culture are how culture grows and evolves, and that creativity and love can 100% be modes for achieving that resistance.

John Christensen 2025-01-05 18:59:51

This has been on my mind a lot for the last few years as I've transitioned from the big tech software development world to the public university research world. While I've noticed a lot of big differences in the incentive structures and how they shape the work being done, it has been eye opening to see how pervasive these power structures are. Removing the "how will this make money" requirement is really nice, but at least in the academic world, it still falls short from enabling people to work on research that is not closely connected to making someone money/ strengthening the centralization of power.

An example of where I've seen this is the difference in the amount of funding and number of people working on different medical imaging techniques: MRI and ultrasound. My partner and I both work in medical physics, which is the field where a lot of medical imaging research is done. I'm a part of an MRI research group, my partner is part of an ultrasound research group. MRI machines are big, and expensive. Ultrasound machines are relatively cheap, and portable. Both imaging techniques can be hugely beneficial tools, but Ultrasound is used around 10x more frequently than MRI and costs significantly less. Despite this, there is significantly more funding for MRI research. Both from things like NIH grants and from corporate funded grants from companies like Phillips and GE(who make the big expensive MRI machines, and cheap ultrasound machines).

I have had to reshape some of my naive beliefs that "science" is ideologically neutral. It has been interesting to notice how widespread this belief is and how it shapes the problems people work on. I'm having a hard time trying to learn how to approach research when it feels like many people around me start from the implicit assumption that scientific work is inherently neutral. I'm very interested if anyone has advice or suggested resources in this vein!

I've found Felienne Hermans recent talk/paper to be really helpful for re-examining my own assumptions

Daniel Harris 2025-01-05 19:50:49

Hi @John Christensen, your MRI case is a really great example of how money skews technology advancement. I don't think we can necessarily get away from this situation in our current paradigm. But being aware of it and bringing it into conversation is a good thing. And even imagining what it might be like if we created technology from different motivations might be an interesting thought game.

Konrad Hinsen 2025-01-06 08:01:53

A related observation that I made in the three decades I have been working in academia is that money corrupts in terms of reliability. Disciplines with few resources (mathematics, fundamental physics, ...) have higher quality standards, and invest larger efforts to increase them, than "rich" disciplines such as biology or medical research. Part of it is the available resources per researcher: the less you have, the more ingenuity you need to invest to get results. But I suspect the main driver to be inequality in terms of resources, which attracts a different kind of person, more interest in status than in knowledge.