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

Amy Ko 2023-10-31 15:06:38

Wordplay beta is live! We’d love your feedback on everything (language design, APIs, tools, editors), and your contributions, if you’re so inclined.

Blog

Repo

Discord

Arcade Wise 2023-10-31 16:18:00

I love the cute tutorial!

Amy Ko 2023-10-31 17:17:38

Reading challenge: count the puns…

Konrad Hinsen 2023-11-01 06:19:56

Fun indeed! I started the tutorial and put myself into "ignorant mode", trying not to anticipate anything. That got me stuck at the point shown in the attached picture. Why is the string shown in red and in double quotes on the stage, if it's blue and in single quotes in the source editor and in the explanatory text?

Also: "They evaluate to 'hello'" isn't very useful as an explanation to me. First of all, "evaluate" is a transitive verb in non-technical English. But even if I accept its CS usage, the sentence seems to claim that all Text evaluates to "hello".

Screenshot 2023-11-01 at 07.13.45.png

Konrad Hinsen 2023-11-01 06:29:00

A bit later: See? Well, actually, no, I don't see...

Screenshot 2023-11-01 at 07.27.57.png

Amy Ko 2023-11-01 18:45:02

Thanks for the tutorial feedback! I’ve added to our backlog to clarify.

Mike Austin 2023-11-01 22:04:49

Talking about the tutorial, I missed most of it because I hit 15/15 and thought that was it 🙂 I was thinking that didn't provide much of a tour.

I'm going through the full tour now. Maybe showing x / y of the chapters, or showing the outline pinned on the left would help? I know it could be confusing with multiple x / y numbers.

Mike Austin 2023-11-01 22:46:14

Going through the tour, I find the basketball bouncing the most interesting example because of all the Motion and mass, etc. how it implicitly not only animated, but bounces. I would use that example often to show the power underneath the language.

Amy Ko 2023-11-02 00:53:09

Thanks for the feedback! We’ll think about ways to make the full scope of the tutorial clearer, without adding clutter.

Steven Schkolne 2023-11-01 19:43:40

Hey everyone -- long-time lurker, first time poster. Thrilled to share the open beta launch of MightyMeld, a visual dev tool for React I've been building with some friends of mine. mightymeld.com

Just posted this blog post telling the story and why I'm excited -- mightymeld.com/blog/open-beta

Would love to hear your thoughts! I'm a former academic who's been driven into industry out of a desire to make the theoretical practical. MightyMeld is a "visual coding" that is not like any kind of "visual coding" i would've imagined if we hadn't've built this thing starting from real production code and saying "how can we make this more visual".

Duncan Cragg 2023-11-02 11:54:34

Hiya, if you're interested in:

  • End-User Programming, Declarative languages
  • Digital Gardens or Personal Knowledge Managers/Graphers
  • Decentralisation

Then you clearly need to read my latest fine work:

duncancragg.substack.com/p/from-app-trap-to-freedom-space

TL;DR: we can break free of the "app trap" by simply building an OS without apps !

(Don't forget to subscribe so you won't miss future updates, right into your mailbox...)

Duncan Cragg 2023-11-02 11:55:12

I'll kick off the conversation thread.

Let me know what you think, either here or in the article comments.

Duncan Cragg 2023-11-02 11:57:07

It's aimed at non-techies, so don't pull me up on minor technical issues! One thing I should say: I've had to use the word "object", because it's what people will understand, and there's no other word in general use for what they are. But they're not OO objects, they're data chunks that are "internally animated", so the inverse of OO objects which are method-wrapped data.

Duncan Cragg 2023-11-02 11:59:37

@Leonard Pauli thanks for the ❤! But did you subscribe? 🤗

Leonard Pauli 2023-11-02 12:03:19

Haha, done! Half-way through reading!

Leonard Pauli 2023-11-02 12:21:08

Yes! Smashing up apps and data-silos to concept based self-attaching nodes, is the way. I like the excel-like logic basis, allowing introspection and mouldability. I've been thinking up a similar track... could you make it even higher level? Where the data isn't just random binary/half-labeled spreadsheet cells, but actually modeled/given meaning through canonocalized constraints/relations? Possibly opening up for not just modular components, but fully dynamic interactions self-assembling from slices of information?

Leonard Pauli 2023-11-02 12:23:22

Also, seen urbit? The focus on local first sharable personal data-owning, in introspectable non-blob format, with separate logic/functionality layer, and yet separate render/ui layer...

Leonard Pauli 2023-11-02 12:25:15

Love the concept of semi-physical rooms! A place for chat, a place to hang, a place to research! All designable by you, the end-user, through components you've found on your travels through the lands! YES!

Leonard Pauli 2023-11-02 12:28:45

When you link the presence sensor to the lamp, how does it know? Sane defaults akin to node n noodles connections? What about wanting a dimmer? Delayed turn-off? You make those as connection boxes (node n noodles or sheets) in between? Fun indeed!

Duncan Cragg 2023-11-02 12:44:35

Wow, thanks, a torrent of points .. working backwards:

Yes, a lamp knows that if it's linked ("wired") to a presence sensor it does one behaviour, if linked to a switch, another, if a dimmer, another. So probably hardcoded behaviours cos they're kinda obvious. Then user-written rules for the less obvious ones, or custom stuff like the delays.

You could have nodes-and-wires style, or Unix-pipes style, if you like, but it's not essential. Whatever is most expressive.

Yes, picking up stuff (by grabbing their links) as you travel, and then reusing them back home is certainly what I have in mind!

I knew about Urbit a while back, but like many, I was put off by the politics! However, I've since become non-political, or maybe something more like an anarchist! So yes, I'll go back and see how far they've come over the last four years or so.

Not sure what you mean in the first comment, which is why I'm replying in reverse order!

... modeled/given meaning through canonocalized constraints/relations? Possibly opening up for not just modular components, but fully dynamic interactions self-assembling from slices of information

example?

Leonard Pauli 2023-11-02 12:54:14

Nice! The concept example: A specific person might be a node in the infinite knowledge graph. Putting it in the context of a list, in the context of a 2d surface of certain size and viewing distance, may result in contact cards; put them in a 3d wallet may show as "physical" business cards, sending one to the full page printer may print a CV... Problem is... many permutations... hard-coding behaviors not scalable. Need way to dynamically adapt for each situation (combination of data slices and the context), with seamless ways of guiding it closer the the desired intention. For this, the computer needs to be included in the work, and given the relevant knowledge and agency to handle it.

Leonard Pauli 2023-11-02 13:04:40

Many AI solutions still suffer the "better horses" problem, the end-user needs to be empowered with a language to communicate their desires. Even reading the mind might not be enough, as the right language gives you the mental clarity in the first place. AI solutions could still guess well, and gather own experience... but if we want to include the human... Even without, the AIs themselves need inter-communication and clarity of thought. I'm proposing work towards a system facilitating such. A system where the current grunt-work of software development isn't applicable anymore, because of different abstraction levels and perspective. A system where the freedom and flow of creation and collaboration is found at yet a higher level.

Duncan Cragg 2023-11-02 13:11:12

Ooh, OK, that's a lot to process... let me think... 😃

Duncan Cragg 2023-11-02 13:23:48

So, firstly, yes, you'd have slightly different render of a given standard object type depending on context, whether in a list or embedded in another object, or pulled out on its own into the space. However, there's no need to do a different render for 2D and 3D: it'll be the same one. I'm thinking neuomorphic in both. (It's using Vulkan for both, underneath.)

You wouldn't get a CV if you printed it, no, you'd have to jump the link from the contact card to the person's CV. If you were viewing the contact in 2D, then expanded the embedded link to the CV - seen as a smaller panel inside the contact, then hit "print", you'd get what you saw, with the CV.

So yes, there's both some hard coding of behaviours of objects, and a default render of any standard recognised object type. But you can extend both.

You suggest AI help for programming? And working at a higher conceptual level? I've probably over-summarised your point, so apologies there. So, I'm not working on AI or AI-to-human, etc., conceptual languages, except the programming language is declarative so intended to be humane, unlike imperative ones. It's what I call a "Domain and Target Independent Language" that is meant to be general purpose and conceptually intuitive without being Nat Lang.

Leonard Pauli 2023-11-02 14:01:30

Nice! Same, AI not in core, but, possibly similarly more power using the core/lang as the human is. Similarly, if core facilitates human-human collab, it may also similarly facilitate human-ai or ai-ai collab. Side note to show how it has fundamental long-term value in the post-gpt era.

Leonard Pauli 2023-11-02 14:06:10

Exactly! If the contact card needs a link to the CV, where is the data!? Eg. the name, and profile picture? Are they both linked in each, or duplicated? If linked to the person entity/node, RDF style or similar; then can the CV not be a virtual construct from available info in the graph, with possibility to override the heuristics on a case by case basis if needed, or even better, update the heuristics to facilitate improved CV's all over?

Leonard Pauli 2023-11-02 14:08:07

Eg. obsidian style, is the card and the cv separate but linked .md files, with info duplicated; or is each property atomic, and related rather than linked, such that a generic CV view could be shown?

Leonard Pauli 2023-11-02 14:08:20

Auto adjusting with time?

Duncan Cragg 2023-11-02 14:35:23

Nice! Same, AI not in core, but, possibly similarly more power using the core/lang as the human is. Similarly, if core facilitates human-human collab, it may also similarly facilitate human-ai or ai-ai collab. Side note to show how it has fundamental long-term value in the post-gpt era.

Yes, any human-cognition-aligned notation for data and rules will also be AI-aligned, one would hope!

Exactly! If the contact card needs a link to the CV, where is the data!? Eg. the name, and profile picture? Are they both linked in each, or duplicated? If linked to the person entity/node, RDF style or similar; then can the CV not be a virtual construct from available info in the graph, with possibility to override the heuristics on a case by case basis if needed, or even better, update the heuristics to facilitate improved CV's all over?

Duplication is frowned upon: it's all links. So yes, you'd build your CV from bits all over the place, a photo from here, a company logo and blurb from the company's collections, etc.

Not sure what you mean by "heuristics", though?

Eg. obsidian style, is the card and the cv separate but linked .md files, with info duplicated; or is each property atomic, and related rather than linked, such that a generic CV view could be shown? Auto adjusting with time?

Card and CV separate and linked, yes, of course. No dupes. Not sure what you mean with the "atomic", "related", "generic", "auto adjusting" bits though!?!?

Leonard Pauli 2023-11-02 14:42:33

In essence, does those links bear explicit meaning, or is it tacit knowledge unavailable to the computer? Having done the CV once, is it generalized for all? Difference between compounding growth, or fostering an environment where monotonically rebuilding what's already done is kept the status quo.

Duncan Cragg 2023-11-02 14:56:20

Each link is a unique string that is essentially opaque or semantic-free from the HX (human experience!), but can still be used to tunnel location stuff by the P2P layer.

The CV type would be an aggregate of smaller types - it's a history so that's a list of calendar event types, for example. So the OS front end could either rely on the render of those elemental lists and events, or it could recognise the super-type of "CV" to render something more CV-aware.

Duncan Cragg 2023-11-02 17:12:33

I had another look at Urbit, and it's interesting, but the "single function OS" over a persisted event log type of thing isn't really my kinda stuff. It could end up being similar to the Object Net and Onex from an end-user PoV, but I could find nothing on the site about why anyone would use it, what it would look like in the HX, etc. And, as soon as I see the "B" word (b..b...bb..blockchain!) I usually hit the quit.

Leonard Pauli 2023-11-02 17:29:21

"[...] over a persisted event log type [...] HX [...] B-word" yes, same! Reference from the aspect of user-owned data and that different "apps"/views can overlappingly utilize data. Projects get one or a few aspects right, but have yet to see someone put it all together! Enjoyed your writeup, checks many boxes! Would love to play around in that world 🙂 Just the customizable "chat-room" is gold.

Guyren Howe 2023-11-02 17:46:22

This perspective on data and how to present and manipulate it should be foundational.

WILL be foundational at some point.

But: note the corpses behind you: OpenDoc, OLE, …

I write about a suitable distributed data and security model for this sort of project at: frest.substack.com

Leonard Pauli 2023-11-02 17:54:48

@Guyren Howe "[...] WILL be foundational at some point [...]" ❤ Let's bring it there! And yeah, oh yes. I've been cursed for the last 10yrs. Going full in once more. As long as you keep going you're not dead!

Guyren Howe 2023-11-02 17:57:26

The way to build this now is with suitable services (local or remote) and an app to access them.

The foundational data presentation should be values in namespaces and relations. APIs should be functional and relational.

Guyren Howe 2023-11-02 17:58:28

📝 FREST Substack | Guyren Howe | Substack

The substack for FREST: computing for everyone. Click to read FREST Substack, by Guyren Howe, a Substack publication. Launched 9 months ago.

Guyren Howe 2023-11-02 18:00:16

The UI should be somewhat like Access or FileMaker, giving the user the direct ability to manipulate the relational data storage. Users can quickly become quite adept at manipulating relations.

My FREST project is in part about making that distributed. I should be able to “join” multiple, distributed data sources and functions in an ad hoc manner.

Konrad Hinsen 2023-11-03 08:17:48

TL;DR: we can break free of the "app trap" by simply building an OS without apps !

My main criticism of this claim is the word "simply". My second criticism is "simply building": that's only the first step, after that there is a long battle for adoption, trying to convince people to use an OS that won't let them access their photo collection stored at Google.

But yes, I do want to see this happen!

Duncan Cragg 2023-11-03 09:54:44

@Mike Austin Hi I see you put a thumbs down on the post above where I said "But did you subscribe?" Wassup? 😧

Duncan Cragg 2023-11-03 10:10:22

Konrad Hinsen Yes, it's conceptually "simple" to have an OS without apps, but "building" will indeed take from now until my last breath... All our data will be out there still, so as long as you have an API to those photos on Google, you'll be up and running! Things like email and the static web, and many chat applications, can be brought in to the Object Network. Anything that allows data to be grabbed (and shoved!) - via a protocol or a filesystem. I could even (reluctantly!) allow for old fashioned apps to be rendered in-world, starting with (and maybe ending with!) a browser.

But I'm currently seeing the project as a "Lab" for Proof-of-Concept work, where I don't need to make any compromises such as that. I recently let go of any hope that anyone would be using it any time soon, to be honest! But things like blockchain stuff and Urbit, even though I'm not a big fan of either, do give me hope that completely new things can gain traction.

Leonard Pauli 2023-11-03 11:25:03

Duncan Cragg Oh oh! You are actively full in building this now?! Outline of steps/areas of focus + some timeline available?!

Leonard Pauli 2023-11-03 11:35:56

I've been going back and forth between different entry points on the behemoth of foc... text language, logic engine, data engine, graphics engine, networking component... slowly realizing that working consistently productively alone is the first one to tackle, so going back to basics making quick playtoys to get the doing muscle warmed up again; ie. would love to get something like endless paper (infinite zoom/pan canvas) going (rust+wgpu) + published, then MMO functionality added, text rendering, dom-element attachments, obsidian integration, rust+gpu fn node n noodle graph playground (just take monaco editor as dom attachment) and we're of to the races.

Duncan Cragg 2023-11-03 11:52:56

I've been building "it" (for some always-changing value of "it") for decades! I'm able to work on it more these days, but timelines would be foolhardy given I've got random things coming up all the time!

I'm currently busy on the 3D HX ("Human Experience", UI, UX), porting a 2D UI from a smartwatch version of the OS I made recently. This allows you to create, edit and link objects. That's fixing the "Balkanisation" "app trap" - so you can mash up lots of little objects of diverse types, any way you like.

Then next I'll continue on the P2P protocol I started, focusing on cryptography stuff and proxy, cache and router functions. That's fixing the "Big Tech" "app trap", of course!

Finally, I'll get back to porting my programming language from Java to C! So fixing the "Blob" "app trap" with EUP.

So yeah, far too much for just me between now and my final gasp! I'll stay alive as long as I can.

Duncan Cragg 2023-11-03 11:54:51

"off to the races" sounds like it's as far away for you as me!

Duncan Cragg 2023-11-03 11:55:26

Got a link?

Duncan Cragg 2023-11-03 12:13:24

actually I think I've found you on GitHub, so I'll potter around in there for a bit...

Leonard Pauli 2023-11-03 12:13:43

nooo :P

Duncan Cragg 2023-11-03 14:04:48

Do you have a link to anything you were talking about above? The stuff on GitHub seems, quiet...

Naveen Michaud-Agrawal 2023-11-03 16:09:10

This reads quite similar to what Alex Obenauer is doing with WonderOS - alexanderobenauer.com

📝 Alexander Obenauer

In my current work, I’m exploring new and renewed ideas for how personal computing can better serve people’s lives — expanding opportunity, agency, curiosity, and creativity.

Naveen Michaud-Agrawal 2023-11-03 16:10:21

To me both seem quite similar to the original Smalltalk approach - there is no data, just objects that represent computational processes

Guyren Howe 2023-11-03 16:18:10

My work has aspects of Smalltalk about it. You could see it as a distributed Smalltalk, although there are some differences (I have a novel distributed security/composition model, for example).

Duncan Cragg 2023-11-03 20:29:46

Yes, the "de-Balkanisation" part of the Object Net is very similar to the "itemised" idea - I even thought of calling stuff "items" instead of "objects", but that would actually be just as confusing to techies who know about all this, and a bit less clear to non-techies. My "objects" don't have anything to do with the "objects" of OO - they're very much about first class visible data! And I don't believe @Alexander Obenauer’s "items" are anything like "objects" either, actually.

He's involved in Tana, which also says about it being an "Everything OS " on the site, perhaps hinting at de-Balkanisation - allowing "items" of diverse types to be mashed up however you like, rather than being imprisoned by a dominant app for each type.

I borrowed the idea of a "Lab" from him as it's a nice framing, that frees up the mind!

Not sure if he has anything around decentralisation or declarative programming languages, but I don't remember anything like that, it seems to be mostly focused the UX of managing local items. I'll go and have a look to remind myself - hold on ...

Duncan Cragg 2023-11-03 20:37:08

Hey, Ivan Reese - isn't @Alexander Obenauer your work colleague at Ink-n-Switch, now? Why isn't he on this site these days? We could use his input in this thread to prevent my misrepresenting his ideas!

Duncan Cragg 2023-11-03 20:55:18

Right, AO does have some stuff on networking as pub-sub and event-action "automations":

alexanderobenauer.com/labnotes/021

alexanderobenauer.com/labnotes/025

alexanderobenauer.com/labnotes/026

alexanderobenauer.com/labnotes/027

They seem to sprout organically from the itemised (local-first) ideas, rather than being core to the project - taking up a small percentage of the Lab Notes output.

📝 LN 021: Automations

So far, we've considered an OS of the future that has these core pieces: Items, Views, Services, and Actions. With these pieces in place, user-defined automation becomes straightforward and immensely powerful: we can remix and reuse...

📝 LN 025: Publishing items

So far, we've explored the idea of an itemized OS a good bit in these lab notes. But a huge part of personal computing today happens beyond your local personal computing domain. Let's start moving towards the internet: What might the internet look like when you introduce items?

📝 LN 026: Internet Modules

In the last lab note, we explored publishing items. But in that exploration, these items were mostly static: people could see an item's current state, and subscribe to any changes made in the future. Today, let's explore publishing items with behavior.

📝 LN 027: Personal Computing Network & Devices

What if we could make software modules for our own personal computing network? And what if we could add various hardware devices to our personal computing network to gain additional functionality?

Naveen Michaud-Agrawal 2023-11-03 21:10:50

I think there is an aspect to both your work and AO that are similar - a reclaiming of a person's computational media/output in a way that can be flexibly molded to the goals/task at hand. I feel the underlying technical aspects are more a distraction from these ideas.

Naveen Michaud-Agrawal 2023-11-03 21:15:59

I recommend this demo of a reconstituted 45 yr old Smalltalk-78 system, which seems to match both your goals - youtu.be/AnrlSqtpOkw?si=zLPeunoJj_4V0ose

Naveen Michaud-Agrawal 2023-11-03 21:17:18

Smalltalk-78 + modern networking + color support sounds a lot like what you both describe

Duncan Cragg 2023-11-03 21:20:08

Ivan Reese maybe I should be more explicit - as your work buddy, could you ask him to drop by here some times? 😄

Duncan Cragg 2023-11-03 21:31:22

@Naveen Michaud-Agrawal I'm just watching now... 😄

Naveen Michaud-Agrawal 2023-11-03 21:38:46

What's striking is:

  • After they built a Smalltalk-78 VM in JavaScript, the underlying image they pulled from a 40yr old tape backup ran unchanged
  • The flexibility of authoring/modeling personal media is still unmatched today
  • The entire system is fully introspectable in itself
Naveen Michaud-Agrawal 2023-11-03 21:39:57

Here's the paper describing the process of revival: esug.org/data/ESUG2014/IWST/Papers/iwst2014_Reviving%20Smalltalk-78.pdf

Duncan Cragg 2023-11-03 21:54:53

What's most shocking is that they took a photo of the tape dumping ground with the tape visible on which that Smalltalk was found! Wow. Reminds me of the gut-wrenching thought of the BBC re-using the only tapes that original episodes of Dr Who were recorded on

Guyren Howe 2023-11-03 21:57:44

Consider a REST API. You can do an OPTIONS request to any URL, and get back the URLs of the types of the thing.

At the URLs of the types can be found the URLs of the endpoints that can take a value of this type (or a URL of the value, depending) as one or more named arguments.

Also at the type can be found the addresses for Mustache templates to display the value in a variety of standard ways, including:

  • icon
  • table celll
  • table row
  • table/cell header
  • form/full page

The value can be requested from the URL in JSON, and then fed into any of the Mustache templates.

The place where this value is displayed can also offer the operations on the value.

This is the simple foundation for a component web.

Duncan Cragg 2023-11-03 22:01:03

So yes, the Smalltalk environment avoids separation of OS and apps - everything is mashable. But .. it unfortunately went the Imperative way, not the Declarative way. I remember back in the 80s being really excited when I discovered Smalltalk (I think it may have been via Byte magazine - the one with the hot air balloon) - but then being absolutely dismayed to discover that message dispatch passes the flow of control into the target object ! There was a thread that followed the message into the target. It seemed like such a betrayal of a potentially brilliant idea.

Duncan Cragg 2023-11-03 22:16:46

Found the Byte magazine: archive.org/details/byte-magazine-1981-08/page/n79/mode/2up and I'm having an emotional reminisce... :face_holding_back_tears:

📝 Byte Magazine Volume 06 Number 08 - Smalltalk : Free Download, Borrow, and Streaming : Internet Archive

Features p.14 introducing the Smalltalk-80 System [author Adele Goldberg] A readers' guide to the Smalltalk articles in this issue. p.36 The Smalltalk-80...

Guyren Howe 2023-11-03 22:18:22

I learned at least as much from Byte magazine as from my Computer Science major.

Duncan Cragg 2023-11-03 22:23:44

Everyone on FoC should be involved in this thread, to get an understanding of how we are where we are, and how we could have had so much more.

Duncan Cragg 2023-11-03 22:24:50

You can understand why Ted Nelson and Alan Kay are so grumpy about things

Duncan Cragg 2023-11-03 22:27:00

If only the youth of today would listen to us grumpy oldies.. 🤣

Guyren Howe 2023-11-03 22:28:25

The thing I’m grumpiest about is losing the enormous potential of the relational model to the tragically awful SQL.

Duncan Cragg 2023-11-03 22:29:22

That's a really good "another example" of the same thing happening, yes

Duncan Cragg 2023-11-03 22:44:31

@Guyren Howe I don't agree about the "component web" model you suggest. But that's another thread probably...

Duncan Cragg 2023-11-03 23:24:54

After poking around in Urbit for a while being utterly baffled why anyone would give it even a cursory evaluation, let alone having such an apparently vibrant community - is it a ponzi scheme? what on earth do people do with it? where does the money come from for those fancy meetings? - here's an article that also has .. questions:

wejn.org/2021/02/urbit-good-bad-insane

📝 Urbit :: the good, the bad, and the insane

In this post I’m gonna be making all kinds of fun of Urbit. And all that after spending just a few hours poking around it.

Duncan Cragg 2023-11-03 23:26:18

All I can think is that it's a nutcase project given a huge lift-off when they decided to use Etherium - it simply seems to be worse than vapourware: software that exists but may as well be vapour.

Naveen Michaud-Agrawal 2023-11-04 02:40:04

Duncan Cragg you should read Alan Kay's Early History of Smalltalk published in the early 90s - worrydream.com/EarlyHistoryOfSmalltalk. I get the sense that he was dismayed by the version of Smalltalk that came out of Xerox (I believe he had gone to Atari by then), and even more dismayed that nobody used it for what he thought it was really good for (to build the next version of a computing system).

Naveen Michaud-Agrawal 2023-11-04 02:43:11

Also it helps to remember that Smalltalk in the early 70s was built on today's equivalent of a $150k machine (I've seen figures that the original cost of the Alto was about $20k dollars in 1972)

Konrad Hinsen 2023-11-04 10:20:10

Duncan Cragg Being imperative is an easily criticized feature of Smalltalk. But at the UI level, that's what users expect. Tasks like "add a new entry to my agenda" are imperative. And since I'd expect to be able to script everything I do by hand, I also expect to have an imperative scripting language.

What I see as the mistake in the Smalltalk approach (and many others) is the idea of a single universal computational paradigm that applies from integer addition and string manipulation to user-level interactions.

Naveen Michaud-Agrawal 2023-11-04 11:13:02

Konrad Hinsen Why do you see that as a mistake? It's using the strongest possible model for everything.

Konrad Hinsen 2023-11-04 13:48:08

That's assuming that there is a single "strongest" (or "best" in some other sense) model for everything. Which I doubt.

Duncan Cragg 2023-11-05 15:41:14

Konrad Hinsen you'll not be surprised to hear that I disagree! And I do think that declarative is the "model for everything" that works from low-level data transformations up to user interactions. I think Nat Lang's imperative constructs actually cause confusion here. When I say "mow the lawn!" in an imperative holler, what I'm actually doing is expressing an intention for a goal state. And I won't be satisfied until I see that state to my expectation. I have a corny phrase from back in my REST days: "intention puts the system in tension". I know, a bit cringy. But while the state isn't manifest, that tension remains, and can be communicated further: "haven't you done that bloody lawn yet??"

Duncan Cragg 2023-11-05 15:42:20

Declarative has been described as "say what not how" - and this is about "what" state you want, not a prescription of "how" it should be achieved

Duncan Cragg 2023-11-05 15:48:57

I believe an HX (human experience, UX) built around goals and intended states is, well, better. Worse of all is where you get the two mixed up: is that button telling me the current state, or the state I'll get when I hit it?

Lu Wilson 2023-11-03 18:35:14

Hello everyone I've been making a new tool called arroost. It's for making scrappy music. Please do make something in it and send it to me.

arroost.com

I will post some examples of its use in the replies

Lu Wilson 2023-11-03 18:52:20

this is a simple musical instrument i made

Lu Wilson 2023-11-03 18:55:37

trying to make something better

Lu Wilson 2023-11-03 18:57:14

I'm also enjoying people mess around with it. Here @Elliot recreates a noisy office

Lu Wilson 2023-11-03 18:58:12

Please let me know what you think! And if you make any scrappy things, please share them with me :)

I'd love to see whatever you make! to help my development process!

.

Xavier Lambein 2023-11-03 19:27:02

I love this, it's a very interesting way to represent a sequencer, and you can create pattern that are as complex as the kinds you'd do with a DAW, but they don't suffer from the awkward "grid-ness" of traditional sequencers.

Duncan Cragg 2023-11-03 22:48:04

nothing happened when I tried it: I got pluses and circles and wires between them. but I don't know what I have to do .. couldn't get any sounds

Alex McLean 2023-11-03 23:18:42

Duncan Cragg It started becoming a bit clearer for me when I realised that if you make one of the circles go red, it's recording.

Duncan Cragg 2023-11-03 23:21:13

how do you make a circle go red, then?

Paul Tarvydas 2023-11-03 23:44:53

before I try arroost, here are my first impressions of Olive Amphibian.mp4:

  • I hear lots of (boring, robotic) repetition - yawn
  • I hear your voice add some vibrato, which makes the vocal part more interesting, and that addition of vibrato didn’t use arroost (your vocals remind me of David Sylvian’s voice on “God’s Monkey” and just about everything on “The First Day”)
  • I hear perfect rhymes “down” and “clown” - yawn.

FYI - what I think I learned about songwriting:... any artform - songs, movies, books, etc. - needs to create tension then (maybe) to resolve the tension. Like playing a Dsus4 chord followed by a D chord.

You can create tension on many levels, e.g. melody, chords, lyrics, phrasing, song structure (AABB vs. ABBA vs. ...), line lengths, numbers of bars, rhyming, etc., etc.

A “great song” (a “great work of art”) creates tension and release on many levels. You can keep coming back to it and hear new things every time. Not just in repeated listens, but on a time-scale of decades. Simplicity is “lack of nuance”, hence, complexity “contains nuance”. Great works of art appear to be simple, but, have subtle nuance that can be gleaned by repeated study - i.e. layered. Average art is either simple or nuanced, but, not both. Flat, not layered.

From a lyric perspective, perfect rhymes imply perfect balance, “closure” and “happiness”. Imperfect rhymes imply imbalance (and, sadness, confusion, longing, etc.). For perfect rhymes, I use rhymezone.com, for imperfect rhymes I use b-rhymes.com. My goto is b-rhymes.com. It gives me 100 possibilities, and causes my mind to wander (“brainstorming”). The music that you’ve created with arroost is “unstable”, and, IMO, perfect rhymes don’t fit in with that theme.

[FYI - example. I always loved McCartney’s song “Yesterday”. I tried for decades, but, could never play it and sing it. Then someone (Pat Pattison) pointed out to me that the verse has only 7 bars, not 8. My Engineering mind tried to force singing the song as if it had 8 bars. 7 bars makes the song sound “sadder” and prevents Engineers, like me, from cloning it.]

Lu Wilson 2023-11-03 23:50:54

@Alex McLean That's AMAZING! Thanks for playing! Could I ask what browser and OS you're using? as I notice some visual bugs that I'd like to fix (although I'm also enjoying them here)

Lu Wilson 2023-11-03 23:53:17

@Xavier Lambein Thank you! I'm very pleased that's what you notice. I'm very inspired by tldraw's sloppiness freeing people to draw, and sandspiel's sloppiness freeing people to paint. I wanted to try to extend that here

Lu Wilson 2023-11-03 23:53:46

Duncan Cragg click em!

Duncan Cragg 2023-11-04 00:04:47

I literally have no idea how this works. I've tried everything. I tried an incognito window and turning off three plugins

Duncan Cragg 2023-11-04 00:07:53

can you make a 30 second "getting-started" video for the over-50s?

Lu Wilson 2023-11-04 00:09:59

Duncan Cragg do you have a microphone attached to (or part of) your computer?

Duncan Cragg 2023-11-04 00:26:29

Aha! I think that's broken actually, so .. it's recording sounds I make? I can try a headset, if I can find one..

Duncan Cragg 2023-11-04 00:29:27

right, headset in, wait for red circle, made a cough noise, and it seems to replay it sometimes but, .. I still don't get it. is there some cultural reference you all have that I'm missing here?

Duncan Cragg 2023-11-04 00:30:18

I'm not being difficult, I really want to make funky soundz!

Duncan Cragg 2023-11-04 00:30:27

But I'm 59

Duncan Cragg 2023-11-04 00:31:22

which is a form of disability in the tech world - you're not being discriminatory or exclusionary are you???? 😄

Duncan Cragg 2023-11-04 00:32:18

I know white male cis educated wealthy is the lowest of the low, but I should still be allowed into the Funky Soundz Club

Ivan Reese 2023-11-04 00:34:39

is there some cultural reference

Not that I'm aware of. It's just a fun toy for playing with sound and thinking about time. If you give it a bit of patience and make a few attempts, you'll arrive at something that ~at least~ passes the John Cage bar of "music", if not something that my 70-yo parents or 4-yo daughter might recognize as music.

Duncan Cragg 2023-11-04 00:35:19

I'd be happy with the kind of soundz my 61-year old brother makes, tbh

Duncan Cragg 2023-11-04 00:35:48

chintzbaby.com for reference

📝 ChintzBaby Music

ChintzBaby Music

Ivan Reese 2023-11-04 00:40:34

Alex and I were able to get fancier sounds out of this because we're both practiced computer musicians, so we have some extra tools at our disposal. But the sort of thing Elliot made is closer to (what I see as) the spirit of the thing — playing with whatever sound you have handy in a silly new way.

Alex McLean 2023-11-04 00:42:05

Paul Tarvydas here's a nice post about how to give humane, constructive feedback club.tidalcycles.org/t/some-thoughts-on-sharing-and-constructive-feedback/499

📝 Some thoughts on sharing and constructive feedback

I wanted to come up with some guidelines to support us all to give each other constructive feedback in a positive way. I hope this will encourage people to share their practice exercises and what they are working on, even if they think their work is not perfect or finished. One really great aspect of IRL workshops is peer sharing - people chatting with their neighbour, solving problems together, and building each other’s confidence. This is a tricky thing to get right online but let’s try! (Plus...

Alex McLean 2023-11-04 00:44:45

I was using a fairly old version of Chrome under Linux Lu Wilson.

Lu Wilson 2023-11-04 00:45:31

Duncan Cragg Yes, you are welcome with open arms to the funky sounds club :) The barrier to entry is very low, you just need to make something and share it

Duncan Cragg 2023-11-04 00:46:33

I really want to, more than I've wanted to do anything inspired by this forum. I want to show my brother that i can make funky soundz just like him

Duncan Cragg 2023-11-04 00:47:03

I actually think he'd really like it, but I need to have something to show

Lu Wilson 2023-11-04 00:47:32

my advice is to start with a test. this is a test :D

Duncan Cragg 2023-11-04 00:49:56

Christ, you've popped far too many neurons in my soggy brain trying to follow that. HELPPP! Right .. it's nearly 1am here, I'm going to go and sleep on it and try again tomorrow

Duncan Cragg 2023-11-04 00:50:55

but do go and listen to chintzbaby.com - I should promote my bro's work cos it's actually quite good to my ears.

Alex McLean 2023-11-04 00:53:55

Heh the truth is I couldn't get my microphone running, so pipewired in the audio from the funky drummer sample from a YouTube tab. You can't really go wrong with wonky breakbeat slicing. I also had fun wiring arroost's audio back into itself for a feedback party

Duncan Cragg 2023-11-04 00:55:46

👆 prime example of packing 5 alien cultural refs into just two lines on the page... I'm off to bed. 🤣

Ivan Reese 2023-11-04 00:56:31

Duncan is taking an amen break :)

Alex McLean 2023-11-04 01:00:12

It's 1am here too,I can explain in the morning. Anyway it is a lot of fun, it feels like a strange puzzle with a freaky sequencer as a nice reward for working it out. Although I still don't fully understand it..

Lu Wilson 2023-11-04 01:07:55

I'm sure there are some bugs with the microphone, but if that works, you should hopefully have something to play with :)

the puzzle side of it is a huge part of the design. it's intentionally difficult! and it's intended to be provocative, to illicit positive (and negative) reactions. Thank you all for participating so far, this is way better than I imagined :)

Elliot 2023-11-04 01:35:57

Loving this!

Alex McLean 2023-11-04 12:02:29

Lu Wilson my microphone problem is a hardware or o/s issue, some days it just doesn't work

Duncan Cragg pipewire is excellent linux feature which transformed it's previous mess of audio stack into something fantastic.. it lets you easily plug one app into another. Third party equivalents on mac are blackhole and soundflower, on windows I think there is something called virtual cables.

Funky Drummer is a heavily sampled track by James Brown whosampled.com/James-Brown/Funky-Drummer

You can listen to a famous breakbeat from it full of James Brown grunts here youtube.com/watch?v=GACNpJfzyjs

A 'break beat' is basically a sample taken from a drum solo in a classic track like this.. Many musical genres and dance music subcultures have been built on them.

Breakbeat slicing is where you cut up a breakbeat and reassemble it in a different order. Done a lot in e.g. drum n bass. Here's a code example breaking one into eight pieces and playing them in a different order, with pattern transformations:

strudel.cc/?hOrzeGQ4Qj0T

By feedback I meant instead of using external audio input, I recorded audio from the audio that arroost was already playing.. This got noisy quickly. Whole musical genres are based on this technique too..

🎥 10 Hours of the Funky Drummer breakbeat (James Brown)

10 Hours of the Funky Drummer breakbeat (James Brown)

📝 Strudel REPL

Strudel is a music live coding environment for the browser, porting the TidalCycles pattern language to JavaScript.

Alex McLean 2023-11-04 12:04:44

(the strudel example uses part of the amen break than Ivan Reese mentioned earlier, which is probably the most sampled breakbeat ever)

Lu Wilson 2023-11-04 12:22:58

@Alex McLean thanks for the break down! Every time I see strudel I love it. need to explore it more. hope to meet you at a London live coding thing one day soon!

Alex McLean 2023-11-04 12:33:35

Lu Wilson that'd be great ! I saw london meetups are starting up again, I'm up in Sheffield but will have to make it down soon

Duncan Cragg 2023-11-04 14:36:57

I can now read your post, @Alex McLean and understand it like a true pro! Thanks so much for de-obfuscating!

I've been listening to lots of Amen stuff, also. Like it

Alex McLean 2023-11-05 08:52:16

Paul Tarvydas I worked out which video you were referring to. I think you can get more out of it by listening for polymeter. There's a ten beat loop against a seven beat loop which generates really interesting shifting rhythms if you listen for it

Alex McLean 2023-11-05 08:53:54

I generally love repetition though

Lu Wilson 2023-11-05 09:45:05

For anyone who's interested, I outlined one of the main philosophies behind arroost in my weekly update last week: todepond.com/pondcast/demo

Feel free to listen (or read the transcript) without paying for this one!