Reinventing how we use computers
ploum.net
ploum.net
Interesting how casually author dismisses the millions of people filming themselves and posting on Instagram/TikTok as "consuming".
There's more to "creating" than just writing code in a terminal.
> You own your input (your favourite keyboard and trackball)
Same thing again, author doesn't even mention microphone/camera as "input".
> We forgot that a computer should not hide how it works to be easy but instead allow its user to learn gradually about it.
Shall we make the same argument about cars? Should cars gradually introduce you to mechanical and electrical engineering? What about your bathroom fixture? Should it try to steer you into becoming a plumber? Some say plumbing is as critical to our civilization as computing.
you need a driving licence to draw cars. Now there are some BMW and Audi drivers who never touch the turn signal.
If I had to choose between personally owning a computer or running water and flushing toilets, I'd pick the pipes every time.
1. I don't think we need a phone and a home computer. There's really very little reason at this point why they can't be one and the same. A device that plugs into a dock at home and becomes a home computer, and when you undock it it becomes a phone. And I don't mean the ham-handed attempts we've seen, I mean a full-on contextual OS switch.
2. I think the next major evolution in phones should be removing the screen. We need to develop a voice assistant technology which retains context and can "understand" in a more conversational style, but I think that once we've jumped that hurdle there would be plenty of people—for whom phone-staring is currently an act of boredom or filling time—who would willingly get rid of that screen in favor of a voice assistant.
The only real issue with it is that the current generation of their smartphones doesn't come with enough memory. Only 8GB (S22) or even 6 (S21FE). You need more for decent multitasking.
But I think generally it's pretty underrated. It had done really annoying issues in the beginning but right now I could imagine doing a working day on it. I don't because I am really a power user, but for someone with normal office use I could see it being viable.
I wish this feature would make it to mainstream AOSP because right now it's too obscure to really take off. They made a developer thing with Android 10 but didn't take it the whole way after that.
Since we're fantasising about future computers I hope there won't be more than 8Gb necessary to multitask. I remember running Windows and Office in the 90s on 16Mb. Seems like the 1000-fold increase in memory was mostly negated by wasteful software engineering...
I don't doubt some things swap (pagefile, windows after all), but whatever its putting in swap is not noticeable. I don't experience stalls.
My main issue with Dex is the perennity of the system. Is Samsung going to keep pushing this, or will a native android version takeover? Or maybe at some point they'll say "well that didn't work out" and abandon it completely?
I want to believe!
Every year I get closer to being able to do my work completely off a phone. I also think 8GB of RAM is plenty. Most administrative tasks can be done on that, and for the heavy tasks, you could always leverage a remote server. Think of github codespaces, or modern virtual machines in the cloud. Sure, you need internet, but don't you always, for this kind of workload?
Yeah, yeah, I want to believe :)
Agreed, this is also a worry of mine. In fact they did exactly this with Linux on DeX.
> Every year I get closer to being able to do my work completely off a phone. I also think 8GB of RAM is plenty.
Remember that Android devices don't do swap. What I see with DeX is a LOT of tab refreshing when it starts running out of memory. Which is really annoying when you're trying to do actual work (e.g. going to an Excel sheet to look up something, but then going back to the browser to continue filling in a form, but in the mean time this has reset due to a forced page reload).
Right now I'm using termux, which is working really really well. I'm amazed! I have this big PHP app wich runs perfectly fine on it, with dependencies and all, I honestly expected trouble, but it just worked.
As for the swap: yeah that sounds annoying :(
Unfortunately the restrictions in later Android versions make it more and more difficult for Fredrick to continue supporting it. I'm currently using the F-Droid version which targets an older Android version but eventually that will become impossible too because newer android versions will eventually drop the older APIs altogether.
In particular in later Android API versions it's no longer allowed for an APK to load binaries from other sources and execute them there. Which makes the apt repository impossible. So what should it do? Include all binaries in the APK? Or distributute each app inside termux as a separate APK? Neither option sounds very appealing.
You also don't use e.g. the same pair of pants for swimming and office work.
Mobile OS's give you almost no control over anything, but you're forced without choice to use them and their apps you have zero say over for half the things today (e.g. parking, banking, choosing the color of your LED lamp, ...). It's great to keep that separate from my desktop computing workflow.
Unless I can bring my home computer paradigm to the phone. But are those parkings, banks and LED lamp manufacturers going to allow me to run their stuff on my OS of my choosing over which I have full control?
But as far as document storage, Maybe the dock acts as a home server? Either way, it seems like off-device document storage is a problem that's been solved multiple ways already?
> We need to develop a voice assistant technology which retains context and can "understand" in a more conversational style
Former is about output device while latter is about input one. What is the connection?
My phone can only run some stupid games and some web apps. You cannot program on it and you have a very limited choice on what you can run on it.
have you heard of Google Assistant? It does exactly what you are saying. They do have a screenless device too. Also there is Amazon Alexa that basically does the same thing.
> for some of these tasks you don't need wifi connection on
And all of this abilities are literally baked in chip. For example, if Google (or user/owner of the device) decides to change "OK Google" to "OK Alphabet" than all the old chips will be unable to support such a newcoming. So, I do not agree that the technology exists, these are way closer to speaking dolls than to computers.
Its not baked into chip, its software and gets updated just like your phone or computer when its connected to the internet.
I'd like to be able to get information, store information, get and receive calls, texts, slack messages, make appointments, etc. I started with "what do I want to be able to do on a regular basis, from anywhere I am?" Then I go to "does a technology exist which allows me to do that without a screen?" Google Assistant is close-ish, but there's still a lot of work to be done to get past "the Beat up Martin -> Eat up Martha problem," and TBH I don't think they're putting much work into it anymore, progress seems stalled.
The article's author. I agree with the every single point of the article and I want to develop author's idea here because it resonates with some ideas of mine.
> I'd like to be able to get information, store information, get and receive calls, texts, slack messages, make appointments, etc.
This is what Iphone does maybe in the best possible way. My needs are: to write, to program, to use Vim and Emacs, to be as close to body as possible, to be able to control others computers and screens in my house.
> the Beat up Martin -> Eat up Martha problem
That's why author's poind about keyboard-centric device is timeless.
But Google was never close to the computer the author describes (in my opinion). Perfect listening (recognizing everything with no errors) is not a big deal if you already have a perfect keyboard but perfect sounding of anything happening on the screen is where the progress is absent.
Imagine working with CLI using sound only in such a way which make your CLI experience better than GUI.
Like, with TVs. Like a lot of people I want something more like a display, than a crappy computer running a crappy operating systems, since I use my own set-top box and such. But I don't think the parts needed to turn a TV into a crappy Android computer are really all that expensive. (Also "thin clients" are often just decent computers themselves!)
All that being said I personally like the idea of having a giant house supercomputer like the one in Enterprise, with various tablets and such just interfaces to that one single computer.
1) One device that does everything will work well if it does everything well. I can take a laptop anywhere and have a usable computer just about everywhere. A phone dock works in locations where you visit often and have a dock, and I wouldn't trust docks in locations I don't control. If I want to work at a coffee store or in a car I can't use a dock.
2) Human design needs to be centered around humans. Humans are designed to rapidly take in lots of information through vision. Designing a device that removes the primary interface between human senses and the device is making that device significantly less useful. I would guess that 90% of the time I spend on my phone is spent reading. I don't want to be read to, but I already have that option if I want. Purposely ruining the device UI and its primary purpose in an attempt to reduce "phone staring" is directly hostile to users. Any sort of general computing device should have the ability to engage directly with your most detailed and useful sense.
I look forward to a time when the limitations of screen and keyboard are obsolete. When I can move freely through space and populate that space with shapes, images, text, scenes unbounded by tiny rectangles. Where I can interact with that overlay by conversing with it, touching it, wielding all manner of physical and virtual tools. I'll carefully place my old keyboard on the shelf beside the typewriter and will only take it down to use it from time to time out of nostalgia.
And if I want to listen to one radio channel or song without switching it (or opening garage doors), will I have to stand still in the middle of the room?
Much of modern tech is bloated ad-infested garbage, but you can just opt out. You don't have to spend your life consuming content and gluing libraries together.
Having something else, something more simple and often having something more text oriented is a wish I have now seen often at different places on the internet. Maybe there is something missing, maybe just a place to tie it all together, leadership, or maybe its just that everyone wants something so slightly different, that there can be no concerted effort?
But certainly people with such wishes would benefit if there was some groundwork laid. And I also think showing instead of telling what we could have could also positively impact the rest of the ecosystem.
Could you expand on this statement?
If some websites or services are too insisting on consuming (apps, youtube, news websites, telegram publics) than you may just not use them. But if your computer has no keyboard than you can not effectively produce text which is (and always was) the very basis of human civilisation. What if possible to create if 97% of people are not working with either text or anything analog? Various spam like Youtube videos and photos for social networks?
That's nothing to do about "computers" that's just about those who implement them commercially, making a cartel who is closely similar to classic Sicilian mafia. Those who in the west are commonly known now as GAFAM, yesterday as IBM, then Microsoft, Yandex in Russian Fed., Baidu in China and so on.
Their development diverge from the concept of an unique integrated environment, interconnected with peers, the Desktop, to push first "individual applications" who are like "promoted functions" the end users can't really change nor combine, than "individual services".
So today if I post in HN from Firefox directly I can't get 2+2 = 4 whith the = 4 computed, because that's "a function" done by some other programs, while in Emacs I can compute easily because a function is a function, no barrier exists and such function do not need specific design, package, install, distribution, update etc might be just something like
(defun eval-math-expr (beg end)
"Quickly run calc on a region (from BEG to END)."
(interactive "r")
(require 'calc)
(let ((result
(calc-eval
(buffer-substring beg end))))
(save-excursion
(goto-char end) (insert " = " result))))
witch can be bound to anything I like. And in the same way anything is done in the same environment. That's the "end user programming" and the "end user glue" of anything where the barrier between code and data do not exists and so it's possible to produce anything on a desktop, with reasonable effort.I agree that end user software should be programmable, but I think we've learned that you can't make good software by having applications talk to each other by JSON or XML over HTTP.
UNIX-the-kernel just says the operating system is the wrong place to enforce data schema - the operating system's job is supporting the notion of users, processes, and abstracting I/O so each process can use I/O without stepping on each other.
UNIX-the-userland is awesome because it's fast, but you are right. But, if all UNIX processes basically have to link to a libc, there is no reason why some efficient object serialization/deserialization library that's better than parsing argv/argc can't also occupy that position - other than we don't know the best one yet.
Could put one in systemd, or maybe sqlite should be part of libc /s.
Unix break it's own rules adding graphics environment who do not nor can follow it's own philosophy.
The everything is a text stream is a good principle, unix fails to implement enough. Plan 9 implement it better but was simply too late to have a chance and yes, both fall because they choose to avoid Lisp and the concept of OS as a single application.
On contrary modern ideas trying to supersede absurd limits of modern OS design like the modern web with JSON and co prove to be an excellent source of bugs and still being far behind the power of classic systems because they completely fails in the basic principle to put the user and user programming at the center doing on contrary their best to give something to some intermediate levels (like devs) AVOIDING give real power to users.
PowerShell is the apotheosis of a systems designed by people who are very skilled in mere programming without ANY CLUE on the purpose a desktop computer should have, and that's why is something modern programmers love while sysadmins and users prefer to avoid. You are right stating that we can't made good software with JSON and so passing as IPCs, but you fail to see the classic model instead of PS. PS is very well designed in software engineering terms, and it's then perfectly useless for a casual user usage. An org-mode table is not much a good idea in software engineering terms, but it's perfect for casual usage. That's the point.
So I want people to create whitepapers and document their learnings of their project and industry projects so others can learn from their lessons. The good ideas should be passed on through time.
For example, NES/Playstation/Switch/Xbox/PC game sourcecode are essentially one-shot projects, the code is not mutated much after release except for bug fixes whereas general purpose computing the code must be adapted over time to cope with changes in the world. The lineage of code written for these game consoles and old PCs, amiga and commodore are all ending. But the ideas behind that code persists.
For example, the code of Pentium Windows 95 tower probably doesn't resemble the code of Windows 11 anymore. And the tower CPU is very similar.
You can probably see ideas in the code there but everything else is different.
All the lessons of DOS, Amiga, Commodore and other old retro computers and minicomputers such as PDP-11 and IBM mainframes should all be learned and passed on.
We want software ideas that are durable and last forever. File systems are an idea that are durable. Processes are an idea that are durable.
I do wonder how many young people possess the capacity to writing an operating system today. The skills have been long fought by Linus and other operating system developers throughout time.
I want people to document the lessons and implementation notes of various low level system services. The UNIX POSIX API is durable.
I'm writing this on an Intel 10th generation NUC and it is plenty fast for running Ubuntu virtual machines and running IntelliJ on Windows 11. It has an Intel Processor Intel(R) Core(TM) i7-10710U CPU @ 1.10GHz, 1608 Mhz, 6 Core(s), 12 Logical Processor(s)
I suspect I can get a lot of usage out of this computer and move homes more than once if need be. The computer is only 4 inches by 4 inches so it is easily transportable.
Another idea that needs to persist is the idea of archive quality formats. PDF, JPEG, Markdown shall probably be readable in 10 years time. But other document formats maybe not so much.
This doesn’t sound right to me. Sports games for example reuse much of the old game (NHL 2022 reuses a lot of code from 2021). Additionally almost all games use a standard game engine (in-house or external) and that engine is reused across many titles. That engine incorporates those learnings. It’s very hard to build anything if you’re constantly starting from scratch. I think you’re heavily discounting just how often existing code is reused.
To run a modern software stack I need to do a lot of work. Even more work to package for Linux and be cross platform and multi platform on mobile.
There's a neverending supply of work to be done.
Who is downstream of who? Who is upstream of who? I'm surprised there isn't a map of this.
I'm saying this work of integrating what other people has done is an end of line lineage. Or it's a lineage of its own that never integrates with others.
Linux distributors collect software written by multiple other people and incorporate learnings from getting them working together seamlessly. But there's no shortage of linux distributions.
If I say Ubuntu 18 or Ubuntu 22 people know that's a solid base to build upon. But anything I build upon doesn't necessarily get merged upstream for other people to build upon. The lineage essentially ends there and there, it only goes on within its own line.
Do linux distributions merge?
With games, the game is stripped of some assets and then new assets are added and new logic is added and that's a new game. But only the game company of that game and players of that game benefits from that game, except for the inspiration for lookalikes or clones with other separate lineages.
To come back to the article, I want a computer infrastructure that isn't obsolete as soon I deploy it. So that's requires lineage merging and project merging.
> Do linux distributions merge?
What does this mean to you? The vast majority of Linux distributions are based on the same sets of packages and any work done by one tends to be upstreamed and cross pollinates.
> To come back to the article, I want a computer infrastructure that isn't obsolete as soon I deploy it.
Can you give an example of something that is obsolete as soon as you deploy it? The slowing down of electronics manufacturing actually is ossifying things more. A computer in 5 years won’t look that different from a computer today whereas in the 90s that wasn’t as true. That being said, a computer today architecturally is quite similar.
> With games, the game is stripped of some assets and then new assets are added and new logic is added and that's a new game. But only the game company of that game and players of that game benefits from that game, except for the inspiration for lookalikes or clones with other separate lineages.
What would it look like for asset and gameplay changes to NHL 2022 be integrated in a beneficial way for Call of Duty? I think you’re negating the existence of path dependence. There’s sometimes no way to “merge” between paths and that’s not avoidable. Not all ideas are compatible - how would you “merge” that? And different circumstances call for different approaches.
> I would like cross polination of computing ideas within the computer industry.
We have that. That’s what software and hardware libraries are. Heck, we have repositories in almost every language now that makes it trivial to drop in an existing component. You can even often times see the source code / patch it / push changes upstream
I appreciate author's thoughts on how our screens are shaping us as computer users, and I think an audio interface will make our computing experience feel more like intimacy: most people are fine with 20% of the screen offering you adware (because the rest of the screen still serves on purpose), but no one will listen to even one second of adware for 59 seconds of content.
This is how I see the future of portable computers: the keyboard or brain implant as the main input source, sound or another brain implant as the main output source, the FLOSS operating system, and the ability to be the keyboard for an unlimited number of computers with or without a screen.
I disagree with Ploum that we should expect or hope for ergonomic keyboards with laptops. The market for people who desire and can afford them is too small for a production run. I say this as someone who typed this with an ergodox and followed that conversational space for several years.
Second link shows me another not friendly to touchtyping requirement, you can see how he types some digits on 1:46 or via direct link: https://youtu.be/UzRjtvMQds4?t=106
The gloves I am talking about needs to have some clicking experience for being able to provide a touchtyping experience with no need to see anything. Experience I am talking about has to be compatible with walking, with riding a bicycle and even with driving (despite a steering wheel might be an excellent keyboard if to place keys on that part of ring on which your fingers are situated most of time).
I like touch, pencil/pen, voice/microphone for input and screens with speakers for output.
Wait until your fingers starts complaining.
Handwriting recognition has gotten much better this decade, and having 'fingers" allows for pinch-to-zoom and finger-point to scroll. The pen allows for copy/paste, selection, and "hover" allows you to access Alt-text.
Touch + Active Digitizer seems to be an acceptable replacement for a mouse, and even functions as a very crude keyboard with handwriting recognition. The only issue is that I type several times faster than I write, so the keyboard is still my preferred entry method.