Folk Interfaces(maggieappleton.com) |
Folk Interfaces(maggieappleton.com) |
Wait, there are actual things, called "doorstoppers", that are designed to work exactly as door stoppers and have no other discernible function? Do they by any chance look anything like paperweights?
https://www.homedepot.com/p/Everbilt-Heavy-Duty-Walnut-Brown...
You can also use a doorstop to wedge a door slightly open so it won't close and auto-lock.
* Blocking, stacking and pulling creep camps in DOTA. Unintended behaviours that became core game mechanics.
* Comments in the tag section of Tumblr posts, to avoid the comments appearing in a reblog ("Why do people use tags on tumblr instead of comments?" [1])
* The appropriation of switching MOSFETs such as the IRF510, designed for low frequencies, in homebrew amateur radio QRP power amplifiers. "In talking to International Rectifier, they were floored to find out QRPers were using them at 7MHz or higher." [2]
[1] https://www.reddit.com/r/NoStupidQuestions/comments/nu4vpa/w...
[2] http://www.iw3sgt.it/IW3SGT_PRJ/IW3SGT_AMP_LF/ClassDEF1.pdf
Then I learned what it meant.
Never meet your heroes
And it's silly as well, because anyone with a few weeks of software development knowledge could probably hack a Twitter-like together. Not that at that scale, admittedly, but still, prototype-twitter was nothing fancy.
The former two tend to use the imperfection of diodes leaking to create varying degrees of fuzz (really clipping) based on placement. It fakes pushing an amp past it’s thresholds.
The latter abused chips that failed QA as the source of noise. They can’t make “real” ones anymore, since the chip is out of production. This one’s from my memory and the description may be flawed.
In both cases, abusing electronics’ imperfections is the goal.
Now with pedals, you get magical beliefs about “original” parts, but that’s another story.
So many guitar effects are based on accidents and replication/reduction of them. It’s both technically and historically fascinating to me. “This sucks, but sounds cool. How can I make a smaller box that does it?”
Hah! If only! Actually they often (but not always) seem to design it for an SV audience with the latest-gen phone/computer, fast uninterrupted internet, familiarity with the latest "UX" fads, perfect eyesight, etc. Anybody that falls outside that narrow group can get shafted.
I would actually put Excel in this original category. Part of Excel's utility is that it is really good at enabling building of dashboards, applications, whatever. While Excel's builders didn't have D&D character sheets in mind, they definitely expect users to do unanticipated things with the software, just as much as IFTTT or Tasker would.
In some ways this is a "platform" type of perspective. "Here's a bunch of building blocks, go do whatever you think you need" is really powerful once the network effect of building blocks gets big enough. Any tool with a built-in DSL or workflow builder type of UI is probably in this category.
They used to give a copy to new employees, but it seems to be out of print now.
I haven't been able to find a simple guide for how to make one myself.
Perhaps the next step up: https://en.wikipedia.org/wiki/Foxhole_radio
20+ Gigabyte mailboxes, which were actually a threaded, searchable, rich content database. (Exchange's superpower (when it works) is a almost perfect online/offline sync able database -- You can send an email in your offline client, when you go online it'll get sent, your calendar updates will sync, etc)
[1]: https://www.gwern.net/docs/technology/2004-03-30-shirky-situ...
With a sufficient number of users of an API,
it does not matter what you promise in the contract:
all observable behaviors of your system
will be depended on by somebody.[0] https://www.scienceopen.com/document_file/cbe110a4-c761-4afe...
Domain experts being able to solve their own problems sounds is a worthwhile objective for software tools but innovation in this space has been surprisingly sparce.
I've been searching for other examples of end-user programmmable tools beyond spreadsheets for inspiration. Anyone have suggestions of some other places these kinds of "folk interfaces" show up?
They often work with the software, based on their "strange" mental model, and can have very weird workflows.
In some cases, this is excellent, and it is worth it for me to learn the new model, and maybe add affordances for it.
Literally everyone I ever see using this software drags videos directly from the finder onto the timeline, then pick a transition once and then just copy/paste it within the timeline. So 50% of the screen is wasted real estate for a lot of the users.
Are you saying that this is wrong because picking "assets" (rushes, transitions) is done once at the beginning of the edit process, so the screen space is wasted the rest of the time?
Customer: "Could you make the 'name' field of this entity longer? We need to add longer names."
Me: "Why?"
Customer: "Well, we want to name the entity '2022 - Spring - $500k - Contoso Inc. - Presale stage' so we can find it more easily."
Me: "So what you actually want is to be able to filter/search for entities by all those values, and you're just using the name as a workaround because it's all you have."
Customer: "Well that's how we do it in Excel."
This is actually an ancient word, you can trace it back to proto-Germanic "fulka", and further to Proto-Indo-European "plh-gos" (presumably pronounced something like phulgos or pholgos, close enough to folk).
Vulgar, populist: people doing naughty or debased stuff
Windows and Linux are vulnerable to the confused deputy problem, so you separate your concerns into separate VMs and give each "machine" a set of resources (capabilities)
IBM and Digital machines have done this since the 1960s.
I guess what I'm trying to get at is that I wish to see learning to code, per se, easily accessible for all. I'm not talking about cheap or even free boot camps that promise entry into a lucrative job market. I'm talking about a kid, or a parent, or an auntie or uncle or cousin or sister or brother, about whoever, who just sees something they want to make happen and they literally do because they can. I read through the comments and I re-read the wonderful article by Robin Sloan linked below ("An app can be a home-cooked meal" -- look through this comment thread, and you'll see it, alongside my first observation of the term "OA", one that took me some time to decipher -- another thing that will stick with me).
I believe that programming is and always will be for the masses. I believe in development best practices when they are called for. But for learning, for discovering the beauty of computing and the joy of software, of writing one's first programs, I wish the barriers were less!
I didn't have the budget, so I used one camera and a cluster of photos from slightly varying locations. I got there eventually.[5]
[1] https://hugin.sourceforge.io/
[2] https://www.flickr.com/photos/---mike---/albums/721577185851...
[3] http://graphics.stanford.edu/projects/array/
[4] http://graphics.stanford.edu/projects/array/videos/crowd0-sa...
[5] https://www.flickr.com/photos/---mike---/51018992733/in/albu...
Another might be the way blocks in minecraft are repurposed to make all sorts of elaborate redstone machines such as automatic farms.
I'm currently rewriting it as a standalone web app just to break the dependence on google, and have a more customisable user experience, but it's really hard to beat the spreadsheet UX, where settings are all done using editable tables and the output shows up in another table.
Emacs is notable. It requires learning a bit of elisp programming but, like a browser, is basically a development environment that gives you access to a windowing system, input from the user, image rendering, text buffers, etc. Plenty of people write their own tools to manage particular workflows.
Update
Examples of emacs as folk interface:
This tool scares the hell out of me, as a sysadmin, with end users who have no education re: software engineering (and potentially really wonky mental models about software) developing potentially business-critical tools/processes out of the IT equivalent of "glue and tape".
This is especially scary to me because building on "evergreen" platforms like Office 365 means that critical emergencies and downtime could occur at the whim of platform owners making changes to the underlying platform. Spacebar heating.. all that... >sigh< (And I'll be expected to fix it when it breaks and the user who made it has left...)
Web technologies were designed to let the user do what they want with the document they receive. But "the web" then evolved in a different direction.
Case in point: TFA, like many other sites, is unusable without Javascript. And it's not even "because CDN". Why do I have to execute code on a page that could be 1:1 replicated in pure HTML ?
SO THAT'S WHY I was pushed to try to use it (but didn't see the point after a few minutes) It's self contained AND REPROGRAMMABLE????? Holy cow!
https://zork.net/~st/jottings/kakoune-a-punk-rock-text-edito...
There are even explicit plugins that let users create UI components to control and visualize program inputs and outputs.
These examples seem to show that there's a kind of wisdom and creativity of the crowd, the folk, collective behavior.
The more generic a tool is, the more creative people get with it. For example, emailing a file or note to yourself is a folk interface. Using a Facebook group to role play is a folk interface.
Nothing has come close to matching spreadsheets though.
Unfortunately, because people function that way, there's a lot of pain ahead for those to learn to rely of obscure uses of software. Sooner or later those pathways are dropped, if for no other reason than cutting down on maintenance costs.
Like when you see a worn path in the grass where hundreds of people took the same shortcuts instead of using the proper planned-out pathways.
That company considered exactly that kind of experience to be one of their "trade secrets," and they were fairly well-known for "leaning into" customer mental models.
Even though I could legally discuss it, I won't. I feel they could use all the help they can get, right now, and I won't make things harder for them.
Design for the Real World: Human Ecology and Social Change ©1971 pg. 162 https://archive.org/details/designforrealwor0000papa/page/16...
* instead of using a two step process (add to library, then drag from library to timeline) users just drag media to the timeline. Makes sense. How often do you re-use the same clip?
* instead of dragging in a transition and having to re-set the values from the defaults to the value you want, users drag in once, set the values, and then copy-paste it around.
In both cases the users are doing the most efficient thing. With the real workflow in mind, having the media library take up so much screen space is a huge waste.
This is the interface:
https://kennis.cc/public_uploads/c39f8aab.jpeg
The entire yellow part is basically a poor approximation of the Finder, and you can see how little space that leaves for the video preview.
Either that or I genuinely misunderstand some brilliant concept from Apple.
To date, it's still incredibly searchable. Want to find a 5.5" phone running Android 10+ and at least a 12MP back-facing camera for below $350? You can filter for it.
It was an absolute nightmare on the (normalized, backend) technical level, but a real pleasure to consume on the denormalized, frontend level.
It doesn't matter that you can add any fields you want in Salesforce, and we do, nobody will use them and continue to encode all the information in the title of the object.
Because the person managing Salesforce approved all requests to add any field, there were just 400 instead of the 5 I mentioned, and none had any validation - so no one knew which ones to fill with data, which ones to keep updated, and which ones absolutely to never touch because you would accidentally commit fraud because you falsified sales figures.
But they all come at some cost - my employer decided to cheap out slash invest in a highly custom in-house solution instead that relied on lots and lots and lots of data entry.