I was thinking a lot about software malleability - but from a technical perspective. I am on the verge of building something useful - only if I could find the time to do it. Here's my premise - if you use something like a game engine, say Unity, and Unreal, you basically have the ability to modify everything in real time, and heve it reflected inside the editor immediately - you could change textures, models, audio,…
I mean, Tcl/Tk has had this since the 90s. Rewrite your procs (functions) on the fly, delete GUI items on the fly, generate new events, create listeners on the fly, etc, etc. Quite easy to create a GUI that's interactive AND a console you can script on at the same time to inspect / edit / change code. For example, don't like your window attributes? Write code to destroy it, and re-create it and keep your "live" data…
Malleable software: Restoring user agency in a world of locked-down apps
51–60 of 117 posts
Re: Malleable software: Restoring user agency in a world of locked-down apps
#52I was thinking a lot about software malleability - but from a technical perspective. I am on the verge of building something useful - only if I could find the time to do it. Here's my premise - if you use something like a game engine, say Unity, and Unreal, you basically have the ability to modify everything in real time, and heve it reflected inside the editor immediately - you could change textures, models, audio,…
For anyone interested in this: Tsoding (Twitch and YouTube streamer of "recreational programming") demonstrates this in one of his projects, where he hot reloads a dynamic library without interrupting the main program, to test different functionality. https://youtu.be/Y57ruDOwH1g?si=feGioEeSZ5eborb3&t=84
Not a problem in a toy app, but in something like a huge program, it can be a PITA to reload everything and get back to where you were.
Re: Malleable software: Restoring user agency in a world of locked-down apps
#53Not directly related but I'm sad when I fire up my old Windows phone that I bought for nostalgia and it doesn't work, other than the base OS maybe the old bing. I get it too, world moved on, people have to manage APIs, updates... but yeah.
Re: Malleable software: Restoring user agency in a world of locked-down apps
#54Earlier quoted context omitted.
And when they click through the confirmation without reading it like the vast majority of users?
If you can't see it because you borked up the colors badly enough, why would you be clicking on it?
Even if this specific example is flawed, non-technical users can and do end up in similar non-sensical situations that require a call to support to sort out. The more customization that's possible, the more complicated those calls can get. (Think of the support guy that has to figure out that Grandma's Windows Home setup has custom group policy settings that her well-meaning grandson setup to make things simpler for her by hiding this or that, and now she can't follow the tech's instructions that work for 99.9% of users)
Not only that, but they do so enough that the added cost to field those support calls is enough for companies to change their products to reduce their likelihood.
Almost no-one on this forum falls into the category of user I'm describing. And this kind of user is one of the most common for general consumer software. There is a real cost burden to supporting software with configurability.
And when this kind of thing gets messed up, do users go "Oops! My bad!"? No, they go "This software sucks, I'm going to use instead where this kind of thing never happens!"
Re: Malleable software: Restoring user agency in a world of locked-down apps
#55In UNIX systems you can use pipes between programs (if the programs support that; many modern programs don't support it very well), although there are still problems with that too. (I also disagree with the idea that text (especially Unicode text, although the objections apply even without a specific character set) would be the universal format.)
My idea of a computer design and operating system design is intended to do things which will avoid the problems mentioned there (although this does not avoid needing actually good programming, and such things as FOSS etc still have benefits), as well as having other benefits.
Some of the features of my design are: CAQL (Command, Automation, and Query Language), UTLV (Universal Type/Length/Value), and proxy capabilities. (There are more (e.g. multiple locking and transactions), but these will be relevant for this discussion.)
Like OpenDoc and OLE, you can include other kind of things inside of any UTLV file, by the use of the UTLV "Extension" type. The contents of the extension would usually itself be UTLV as well, allowing the parts to be manipulated like others are, although even if the contents isn't UTLV (e.g. for raster images), you would have functions to convert them and to deal with them anyways, so it will still work anyways.
With those things in combination with the accessibility (one of the principles is that accessibility features are for everyone, not only for the people with disabilities; among other things this means that it does not use a separate "accessibility" menu) and m17n and other features, you can also do such things as affect colours, fonts, etc, without much difficulty. (They might not seem related at first, but they are related.)
I had also recently seen https://malleable.systems/mission/ which seems to be related (you might want to read this document even if you are not interested in my own comments). One part says, "If I want to grab a UI control from one application, some processing logic from another, and run it all against a data source from somewhere else again, it should be possible to do so.", and with CAQL and UTLV and proxy capabilities, this can be done easily, because the UI controls are callable objects (which can be used with CAQL) like any other one, the data source can use UTLV (which can be queried and altered by CAQL), and the interaction between them can use proxy capabilities.
Re: Malleable software: Restoring user agency in a world of locked-down apps
#56> we created Patchwork—a web-based collaboration environment for malleable software... storing both user data and software code in Automerge documents. On top of that, it adds version control utilities like history views and simple branching. These tools apply to any document in the system—whether a piece of writing, or code for a software tool... Eventually we also plan to release Patchwork as an open-source tool Wh…
To answer your question: although we use Patchwork every day, it’s currently very rough around the edges. The SDK for building stuff needs refinement (and SDKs are hard to change later…) Reliability and performance need improvement, in coordination with work on Automerge. We also plan to have more alpha users outside our lab before a broader release, to work through some of these issues.
In short, we feel that it’s promising and headed in a good direction, but it’s not there yet.
Re: Malleable software: Restoring user agency in a world of locked-down apps
#57Earlier quoted context omitted.
If you can't see it because you borked up the colors badly enough, why would you be clicking on it?
Didn't say the buttons were invisible, just text. Even if this specific example is flawed, non-technical users can and do end up in similar non-sensical situations that require a call to support to sort out. The more customization that's possible, the more complicated those calls can get. (Think of the support guy that has to figure out that Grandma's Windows Home setup has custom group policy settings that her well-…
I can’t count how many people I helped to regain access to their computer login because of losing access to the method used to receive 2FA codes for Microsoft accounts, which is necessary to login if you have forgotten your password. The Microsoft account user setup won’t let you make a password-free login unless you use a local account, and short easily guessable passwords don’t meet their online account security requirements. Most people probably don’t want a Microsoft account if it has this failure mode, but people don't know the trade offs at the time of user account setup, and Microsoft uses that ignorance as leverage to get people signed into everything so that you will have have opted-in to all of this. It’s such an own-goal by Microsoft and it makes me feel for users who have no idea how any of this works. It’s a hard problem to solve, I’m sure, but it shouldn’t be like this.
The people who are most disadvantaged by the high tech highly secure thrust of modern tech are those who have the least skills with technology. Low skill users are also most at risk for scams and malware and other kinds of tactics, so I don’t mean to say that having no password is good. Having no password is a bad solution to the problem of computers being hard to use for many people, and they don’t know what they don’t know, so anything that they haven’t seen before is a cause for concern or alarm to their mind. Since most people have forgotten that they even have a Microsoft account by the time they have trouble logging in to their computer using one, they click around until they get to the account recovery, and then usually get their account locked because they can’t solve the security challenges that they never faced before or anticipated when doing the initial setup perhaps years prior.
Re: Malleable software: Restoring user agency in a world of locked-down apps
#58Another reference I usually bring up is Alan Kay's talk on smalltalk: https://www.youtube.com/watch?v=AnrlSqtpOkw&t=4m19s
My related comments on this, just to show other stories along this theme:
- https://news.ycombinator.com/item?id=36885940
Re: Malleable software: Restoring user agency in a world of locked-down apps
#59I remember having this idea in undergrad in 2011. My big wish was that every app would ship with a scripting language or an api. The problem is that it’s not at all straight forward to do this. The more complex an app, the more important a facade (like a front end) becomes.
Apple did this back in the mid 1990's (before OSX) with AppleScript. Every application was supposed to ship with metadata that described its object model along with methods that could be invoked on them. AppleScript was an sort of a protocol or interface standard that allowed scripts to automate application actions (and more) without having to use GUI macros. Scripts could be written with a variety of syntaxes. It wa…