So https://buttplug.io partially came from some of the idea that spawned the joke that is deldo.
If there's an experience people would very much like personalized, it's sex. So Buttplug is an experiment in "if we allow people to program their own toys, what will they do?"
And the answer is: A lot. (https://awesome.buttplug.io if you want to see an actual list of "a lot")
Now I'm still the lowest level of the stack here, my library depends on people know some sort of language. The library itself is Rust, and we have FFIs in C#, WASM, Java, and outside client libraries in Python, Go, Haskell. But none of those are simple enough for the regular user who just wants to make their own interface.
Some developers who can work with my libraries are making things like that though. There's https://xtoys.app, which is a full WebRTC enabled web/mobile app for remote toy control with some simple visual programming capabilities built in.
I'm also working on a dataflow ui system (think Max/MSP, Puredata, etc) for people to easily click/drag stuff together.
The main problem is convincing people that they want to spend ANY time, be it in usual program languages or visual DSLs, working to customize something for themselves for an experience that may be far shorter than the time spent customizing. There are always people who don't mind that, but they're the minority.
So finding a balance between all of this stuff is difficult. But it's fun to try.
Well, it's different in a million ways. But people don't need to know how to service a car to operate it, and this has made cars harder to maintain, but also much, much cheaper and more accessible to others.
I'm not sure what point I'm trying to make anymore, but your post has made me think. Thank you.
Um. Not to a professional level, but my parents most certainly did teach me to do basic plumbing repairs, minor electrical work (think replacing a switch/outlet), change oil, use power tools, and an assortment of other skills under the broad header of "being handy around the house". People absolutely can and should have at least a basic understanding of how to do stuff.
Eg, everybody should learn to dance just to learn decent posture and how to move yourself. Everybody should learn how to grow a few common vegetables. Everyone should learn how to extinguish a fore for each class (A, B, C, D). Everybody should learn some basic first aid outside of CPR and putting a bandaid on it. Everyone should learn the rules of the road - even if they don't drove (to get a feeling for what others that are driving will be doing in the next few seconds). Everybody should learn enough about musical theory to recognise the basic structure, variations on it, and various genres. Everybody should learn a language not spoken in their immediate environment. Everybody should travel, and, when travelling, once or twice look beyond the default tourist traps and experience another culture. Everybody should know some basic self-defence. Everybody should have sufficient financial literacy to do grocery shopping. Everybody should learn about history. Everybody should learn some basics about minorities (race/gender/handicap/...), including what are really offensive stereotypes (to avoid) and common problems (to be able to help). Everybody should learn how to sail - trust me on this one. Everybody should learn how to "navigate" from place to place without a smartphone. Everybody should learn the basics of organising a small get-together (including booking venue). Everyb should learn how to gauge prices for things/services they rarely buy/use. Everybody should know at least one sport and their body sufficiently well to be able to stay in shape. Everybody should know some basics of multiple religions (since you'll run into them). Everybody should know how to use the index of a book. Everybody should prefer vi over Emacs. Everybody should know how to cook several different meals. Everybody should know enough about nutrition to be able to not to die from malnutrition when having a choice for foods. Everybody should be able to swim - including swimming a short distance with their clothes on. Everybody should learn to ride a bike. Everybody should be able to change a diaper. Everybody should learn to be able to teach some basic things. Everybody should learn more about cosmology than "that's the Big Dipper". Everybody should learn geography - at least rough position of multiple countries and cities. Eveeybody should learn ice skating / skiing / snowboarding.
That's just some stuff from the top of my head. I miss at least half of that.
But does vi have an teledildonics mode?
Seriously, I agree with what you're saying but I did a double take when I got to that part, like "why did he slip that in there?".
Life is short and I agree you can't do it all but a society that facilitates people's ability to do all of those things, plus learn some basic coding and all the other things you didn't list is still a worthy goal and one that I want to live in.
Trying to do as much or even some of what's on your list is also a worthy goal. Maybe it's enough to just say everyone should try to never stop learning new things and challenging themselves to be more tomorrow than they are today or were yesterday.
We humans have set a very high bar. And every discovery in science makes the bar higher, but all of us should know where the bar is, because all of us are needed to vote on steering this ship. Informed voter is not about reading some manifesto. It's informed about the world and the economy and how it all fits together.
Flat earthers are trying to opt out of being informed so they dont have to have the responsibility of deciding.
In parts of America, operating a chainsaw at 10 years old is part of the bar. My bar does not include riding a horse, operating a tractor, or firing an automatic weapon. But there are places where those are simple life skills.
I guess you're right that there is some kind of blended average you could take of every bar in the world. It would probably include basic math and communication skills.
I did not even understand this one! :)
A is most fires, B is liquids (oil/petrol/etc), D is metals.
I learned very young not to throw water on a fire if I didn’t know what was burning.
Honestly, there’s a lot to learn, but childhood is long! Well resourced parents can teach nearly all of this by 15 (driving and speaking another language well are more challenging).
(As a father of two kids, I admit it is wickedly difficult to get them honestly interested in programming.)
I've experienced the same thing. One observation is that "back in my day," you could learn enough programming in a few weeks to hack something together that looked just as good (bad) as real software, with little or no adult guidance. And programmers were a community of nerds, hackers, scientists, etc. Hacking was much closer to bare metal, so it felt more "real" too, rather than digging through someone else's drawers.
And it was cool to be able to do something that my parents couldn't even fathom.
Today, programming has become professionalized, and way too hard, with functioning software requiring layers of abstraction. It has changed from a private passion to a varsity sport, and the kids who have declared an interest in "computer science" are the most straight-laced, helicopted kids in the whole school. Some kids discover that there's still a hacker subculture, but only by luck.
Granted, all of this stuff has been good for me, career-wise, but that doesn't translate into something of interest to my kids.
For me, I can distinctly remember deciding to tinker with building games when I was very young. I was completely overwhelmed, however, by the jump from "basic Batch programs" to "OpenGL and C++." Obviously, that's an enormous jump, and I could have simply dabbled with Flash or whatever, but the point is that the software I enjoyed playing with was years and years of dedicated learning away from anything I could build or tinker with.
The web, however, was not. It was still nascent, there weren't mature, robust technologies for it, and I could build all the things I saw online completely on my own with maybe a dedicated weekend. This was huge for me, and kicked off my lifelong involvement in computing.
I guess the point that I'm getting at is that technology is so good now that the gap between what an average child can consume and what they can produce is enormous. When I tried teaching my nephew basic scripting, their first questions were "How do I make it do X" where X is some involved bit of graphical interactivity. That level of development simply is what software is to them now.
My hope is that this is cyclical. That there is always another frontier cropping up where the gap between "state of the art" and "hobby project" is incredibly small. I think that is naturally where you'll see kids getting into development.
I think all the open source in the world isn't going to help when the battle at the bottom is effectively lost already. The 99% don't even have root access to their own devices and don't care, let alone have any desire to write their own software no matter how easy it is. It's also only getting worse. Every year the number of vendors producing unlockable devices shrinks. Every year Windows and macOS get a little less power-user-friendly. Democratic software development is building a mansion on a hill while the town in the valley is on fire.
I see zero changes in this market bifurcation pattern regardless of industry. It’s not like people are making their own clothes much even in developing countries because we overproduce cheap clothes now anyway, for example.
But yeah, it‘s not the same. It doesn‘t get you anywhere close to "producing“ the real software. You‘re programming in a walled garden layer above userspace that you can‘t get out of. To me, these kinds of things are enough to give me hope though (setting aside the ideals of open source). The incentives for learning how to "produce“ real software are strong enough. If more people can build tools for themselves, I‘m happy.
I agree that it would be better for everyone if there were competitive fully open source platforms across the entire stack, but don’t confuse the ability to produce and use open source software with the requirement that absolutely all the stack must be open source. Only Siths deal in absolutes.
Because without this your projects are always at the mercy of Microsoft's auto update. There's more to life than MVC frameworks. Some people want to be in control of their data. On, say, LineageOS you can rewrite system apps; on iOS your phone will always be a cop and you can't change that.
You don't. You need root access and unlocked devices to produce people who give a shit about coding. We're training people to look under the hood less and less and less every year.
It’s 100% a matter of skills and motivation.
Hate to break it to you but the average person does not wake up and think "you know what I want to do for the next 40 years? look at code for 8 hours a day." Wanting to do this is a weird thing (and that's okay) and it means you have different desires than my mom who likes watching youtube on her iphone.
I think the problem is that much of 'software literacy' not about writing code that does what you want, but about nailing down WHAT you want and HOW to do that correctly. It requires a level of, I guess, pedantry and a way of thinking that, based on my experience with hundreds of clients, most people just don't have or care about enough.
Hence the impossibility of writing even a text editor like Word that suits everyone's needs. If you cannot do that for a text editor how can you do it for ... everything?
We need to give people pens and notebooks and also a dozen years of education.
But 99.9% of people are just unable to program things (partly because there is no straightforward tools^, which are already a hardest software ever). There may be a tipping point somewhere in the future, but today there is no incentive or enough alive-or-dead competition, for almost everyone to become “software literate”.
^ think about subj: to program this toy, first you have to learn emacs and elisp; there are much easier ways to play this “game”, though less technological. Even most of software developers won’t really go that far.
No idea how true that is, based on my own experience - totally false. E.g. writing the control software for grow lights (esp-32) was far from trivial and my daily job that's actually writing software "for someone else" is not hard.
While there is no intrinsic care about scale, running it remotely, no downtime, APIs misuse, etc. - it's very much the same process with writing, debugging, refactoring, deploying and so on.
Yeah, thinking about f---ing in the context of emacs makes me want to vomit a little bit. It's about as sexy as RMS' underwear.
Most people are incapable of writing their own software. And not just a driver for an iphone screen, but anything substantially harder than 'printf("hello world");'.
This is like having a vision of the future where everyone can do their own molecular biology research, or where everyone can design their own skyscraper.
Software isn’t really rocket science (unless you’re making software for rocket science). It gets easier all the time.
Consider the the effort required to learn a foreign language. That level of effort can at least make one able to build websites and iPhone apps which I think is enough to make for nontrivial change in society if people knew it.
And even if it’s easy, I do that shit at work all day long; I don’t want to do it when I go home.
That said I’ve always found this to be a weird use case. I’ll be keeping my wireless Magic Wand, thank you.
Indeed, we should. But economic incentives and the adoption patterns of greater society seem to point in the exact opposite direction.
Actually tinkering with software is still seen and arcane and nerdy, even after computers now permeate half of society.
The popular view on computers is still that they are "magic" - either "good magic" in the form of shiny devices that "just work" or as "evil magic" in the form of hackers doing unspeakable things.
Other examples of widespread adoption of technological innovation don't give a lot of hope either: We all are surrounded by artificial materials, processed food and extremely complex electronic devices every day - more or less the case for the last 200 years.
Nevertheless it has not led to everyone having some basic knowledge in molecular science or electronics. Instead, most people have simply given up on understanding their surroundings and are effectively treating those advances them like magic: either enthusiastically accepting them or tolerating them but longing back to some ostensible simpler times where you wouldn't have to deal with them.
And both the industry and regulators are perfectly fine with this: For the industry, a certain amount of ignorance is vital to be able to sell products or services at all.
For regulators, its far easier to have a few big platforms than to have a myriad of individuals that you have to convince.
I absolutely believe your vision of the future would eventually be better for everyone - but right now, the "agriculture" vision seems a lot more likely to me, unless something will significantly change in the future.
It may take longer than we would wish, but a day is coming where custom code will be as common as writing down personal notes.
It is much more efficient once you reach the point where you know how to solve a specific problem in a straightforward way. Complex or large-scale problems will always require more effort, but knowing available tools to enhance "personal computing" helps a great deal.
But while I absolutely wish for the same kind of future, expecting a majority of people to learn computers and software deeply enough is just that - wishful thinking.
They are endless. I will not write any because I simply cannot choose one.
>I have a vision of software literacy- where 99.9% of people can write their own
I hope so. A lot of people will argue not everyone needs to know how to program but in the past people would have argued that not everyone needs to read.
Some people have a vision of a few percent of the population producing software that everyone else consumes - much like say agriculture.
I have a vision of software literacy- where 99.9% of people can write their own. Is it less "efficient" - kind of. But most of us won't write drivers for iphone screens. But equally I bet that sex toy software would be an underserved market judging by the reaction on HN :-)
The future is democratic and open. I think that's a good thing.