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

Mariano Guerra 2022-12-26 16:44:55

📝 Coding like we left the stone age

🐦 @gregor@c.im: It's been a while since I last tweeted (https://twitter.com/watware/status/1135237918719696896) about my fluid structured programming experiments:

Tofu is now a VSCode extension which makes your keystrokes more meaningful while keeping their original intent. Your code is formatted after every change,...

🧵

🐦 @gregor@c.im: Time to talk about better developer experience through projectional code editing. I've been exploring this space in the last couple of years and here's a few things I either came up with or stole (hard to say at this point):

Timothy Johnson 2022-12-29 03:36:15

theverge.com/23521586/productivity-apps-to-do-lists

How many different productivity apps do you use for your daily work? Would it be possible to build one to rule them all?

Personally, I keep a weekly diary in OneNote to track most of my ongoing work. Somehow, knowledge work seems to resist being formalized into a single structured framework. (Or maybe that's just my own semi-scattered process.)

Andrew F 2022-12-29 04:41:36

Who doesn't have a semi-scattered process, though? Among other concerns, the schema of tasks in our life doesn't usually stay the same long enough to really optimize toward it.

Ed: I might have been too snarky, so I want to be explicit: any tool like this must plan for scattered processes.

Kartik Agaram 2022-12-29 05:42:16

Reaction #1: I want a pony 🙂

Reaction #2: It's not clear if the author is aware of the Unix philosophy, which seems relevant here. Conflating messaging, project planning and personal tools seems counter-productive. They're only superficially similar. You can call everything in a computer a productivity task, but then you can also think of your computer as a whole as the "single productivity app to rule them all". Meanwhile your work isn't getting done.

Reaction #3: Lean into the reality that computers are best as glue, and build your own tools to integrate between all the apps you have to juggle 😂 Hell isn't the computer, it's other people. All the way up to compliance regimes.

Andrew F 2022-12-29 08:18:25

Re #2: they're not conflating messaging, project planning, etc, or at least that's not their whole problem: those tasks genuinely need to share data. A large part of their complaint was duplicating info across apps.

The Unix philosophy doesn't really work in the current ecosystem, and no one is incentivized to make it work. Interop requires a common language, and a common language is a lot of work to make it easier for your customers to stop paying you.

You end up wanting "apps" to all be frontends to a common (user-owned) datastore that none of them control and is in constant schema flux. Who builds this nightmare? (yes, it's us lunatics, I know)

Konrad Hinsen 2022-12-29 08:24:33

I agree that the real issue is data, not tools. Not just because of today’s corporate silos, but also as a result of everyone focusing on apps/tools over the last decades, leaving data models, data formats, and data storage as “technical details “. Everyone except for the database people of course, but their focus has always been on entreprise needs rather than personal data.

Konrad Hinsen 2022-12-29 08:26:33

BTW, my main “productivity app” is still Emacs. Not because it does everything I need, but because it can integrate with everything I use, due to its focus on plain-text data.

Nils Berg 2022-12-29 10:07:47

One thing that caught my eye:

I spent ~four hours~ building multiple databases just to keep track of my bylines, sources, product inventory, running logs, test logs, and meal planning

Maybe I’ve got Computer Person Brain Worms, but for an initial investment of time that feels reasonable (only if it includes ingesting the actual data though).

Nils Berg 2022-12-29 10:20:22

This is also another instance of a different theme, which I’ve seen come up time and time again:

Wouldn’t it be nice if there were fewer barriers between programs?

This comes up in many places, whether it’s this article, the retro/minimalist computing community (100rabbits‘ uxn fantasy processor comes to mind), the desire for Steam to circumvent windows account separation so it can share game downloads across multiple accounts, and I’m sure many others.

The problem, imo, is that any system that connects to the internet at all treats all applications as potential adversaries to one another and the user (and rightfully so). So programs are sandboxed as much as possible.

This separation means that at the operating system level (and before that, in the designers‘ minds), there would need to be well-designed APIs to share data between programs (and a permission model to go along with them).

Web 2.0, with its mostly open REST APIs, got the sharing part right, but not the permissions. Or maybe it did, but the consequence was that you (the proprietor of a web 2.0 service) would pay to host part of a competitor’s functionality, which isn’t a thing investors like, I guess.

Kartik Agaram 2022-12-29 10:35:40

I'm exploring an alternative approach: shared access to data is the most important thing so I'm starting with it and giving up everything else. Servers (local first!), databases (use the file system), users (everybody host your own damn data)

Konrad Hinsen 2022-12-29 10:49:25

Data-first + local-first is indeed an approach worth exploring. Who else is working in this space? All I am aware of is Kartik Agaram’s work and Alexander Obernauer's item-based OS (alexanderobenauer.com). Beaker was another candidate (github.com/beakerbrowser/beaker/blob/master/archive-notice.md), but the project has ended.

Something else worth exploring IMO is IPFS-based immutable data as the foundation. This would drastically reduce the number of mutable storage locations that require access control, and thus enable protection around the mutability points, rather than sandboxing the tools.

Duncan Cragg 2022-12-29 13:47:49

Kartik Agaram you have "State last" in the spreadsheet, which seems contradictory to this claim! Meanwhile, I'm just reading all your links to see what it is you're working on ...

Duncan Cragg 2022-12-29 13:52:32

Right, I followed all the links ... and now I'm totally confused! Where is the project supporting "shared access to data is the most important thing so I'm starting with it and giving up everything else. Servers (local first!), databases (use the file system), users (everybody host your own damn data)" ??

Kartik Agaram 2022-12-29 14:23:55

This is not Mu 🙂

Kartik Agaram 2022-12-29 14:28:47

"Shared access to data is the most important thing" is not the same thing as "state first" in docs.google.com/spreadsheets/d/12sTu7RT-s_QlAupY1v-3DfI1Mm9NEX5YMWWTDAKHLfc/edit#gid=0. I'm still hiding the state like any conventional text programming language. The claim is just that there's an easy way for any of my apps to get to the data: the file system. This doesn't work in general, but if we're talking about note-taking apps there's no reason for the schema to be extremely trivial. Privilege easy interop above all else.

Does that help?

Andrew F 2022-12-29 17:45:46

The link isn't just talking about note taking, they're mostly talking about project management and email and calendars across lots of people.

Kartik Agaram 2022-12-29 19:33:04

For sure. Sorry, by "the claim" I meant my claim.

Duncan Cragg 2022-12-30 13:02:01

Reading the article (! iknowright !), I have to say this person has a uniquely complex life to organise! Not sure anything from her life situation can be generalised... And, much as we all would like to be the person or organisation meeting her needs 99%, the fact is, nothing we conjure here will likely ever do better than 85%. And that applies even to people with a more normal life and work to manage.

"Still, there has to be some sort of middle ground between an unachievable fantasy and the current landscape."

We can probably help with that though.

Duncan Cragg 2022-12-30 13:05:35

And I think this thread is going in the right direction, but I would say that, because that is the direction that my own work is going! 😊

Anyway - my approach is to solve the problem in a simple and obvious way: get rid of apps all together!

You're then left with the data all out in the open as the first thing you see. Instead of data being captive to each isolated app, it's now free to be linked together and mashed up in new ways.

Functionality or behaviour, instead of wrapping data, is now inside it, as internal animation. Data interacts with data.

Timothy Johnson 2023-01-02 09:11:51

What you're proposing sounds similar to a data lake. I believe the major cloud vendors are converging toward a model that uses a single common location for data, all of which is stored in open data formats and can be queried from anywhere. That's generally what enterprise customers want.

But I don't see how the model would work for consumer software. The two main challenges I see are:

  • Schema changes are difficult to implement without explicit coordination from all of the applications that use a particular data set.
  • A single buggy application could ruin all your data. Presumably the model would allow different permission levels for different applications, but the average user isn't going to put any effort into managing permissions (or even understand what they mean).

Perhaps the default would be that applications only have permission to read data that they've written, with the option to explicitly share data. That would work great for me, but for people who don't want to become data engineers in their free time, it seems like they'll just stick to the defaults. And then they won't get many benefits over the current walled garden model.

Konrad Hinsen 2022-12-29 11:31:15

A "User Experience Manifesto" - for a small command-line utility! github.com/Slackadays/Clipboard/wiki/User-Experience-Manifesto

Makes me wonder if the command line could become more mainstream if more tools were trying to be user-friendly.

Kartik Agaram 2022-12-29 15:16:51

I don't understand the "no X11 dependency". I look in the source and immediately see:

#if defined(X11_AVAILABLE)

#include <X11/Xlib.h>

#endif
Justin Blank 2022-12-29 16:53:31

Now we just need meta-discoverability—how do tool authors know what things to do to be discoverable and good citizens?

(Not sarcastic).

Konrad Hinsen 2022-12-29 18:59:17

Kartik Agaram My understanding is that “no X11 dependency” means “works without X11” and “can be used by someone who doesn’t know what X11 is”.

Kartik Agaram 2022-12-29 19:00:18

I'm not sure how, though. Unless it's X11 or Wayland, I'm not sure how you'd access the clipboard on any Unix system.

Konrad Hinsen 2022-12-29 19:05:01

That ‘clipboard’ tool implements its own clipboard in the file system. If you have X11, data is copied to the X11 clipboard as well.

Kartik Agaram 2022-12-29 19:14:21

Oh! So it can only interop with itself?!

Konrad Hinsen 2022-12-29 19:26:25

If you don't have X11, yes. There's nothing else it could interop with!

Kartik Agaram 2022-12-29 19:36:06

Oh sorry, I missed half of your previous comment.

Paul Tarvydas 2022-12-29 20:45:25

[moved] The secret here is what I currently call 0D (Zero Dependency - AKA Parallelism: The Good Part).

A command line uses FIFOs, not LIFOs, to string commands together. Nested function calls are not the same as pipelines. Functions use The Stack (LIFO), pipelines use Queues (FIFO).

Nilesh Trivedi 2022-12-29 15:50:07

Programming Conference 2023: 2023.programming-conference.org

Kartik Agaram 2022-12-31 16:20:59

Rain World

Interesting addition to our occasional conversation about animation techniques: youtube.com/watch?v=GMx8OsTDHfM cc Ivan Reese

William Taysom 2023-01-01 03:52:18

Having experimented with similar mechanics a long time ago, it's delightful to see them so artfully realized.

Ivan Reese 2023-01-01 17:35:45

I backed this game on Kickstarter, and have been playing it ever since. My daughter and I played an hour and a bit just yesterday. One of my favs of the last decade.

Yes, the procedural animation in this game is fantastic, and that's not even the most interesting thing about it.

Paul Tarvydas 2023-01-01 18:58:54

What’s going on in RainWorld? Technically? I would like someone to explain to me, in about 1 sentence, how to write a program for the minimal pieces of this.

Chris Knott 2023-01-01 19:59:14

I'm really glad this video hit the YouTube riptide because I totally missed this game and it is right up my street

Nils Berg 2022-12-31 20:53:09

mastodon.social/@zep/109609087259389863

Interesting, there’s a new machine in the PICO „ecosystem“!

The FAQ sounds like Picotron is intended to be less of a toy, more of a tool: lexaloffle.com/picotron.php?page=faq

Nils Berg 2023-01-01 08:48:27

some interesting thoughts about programming in Dremas (PS4) bvisness.me/advent-of-dreams

I haven‘t played it myself, but even just watching others, the notion that every part of it is very smartly designed does come across.