Why is the company going to pay to have their team write code to downgrade the quality of the detail
Asset scaling would let the company collect revenue from users of less capable devices. It's the same reason games came out for both the PlayStation 3 and PlayStation 4, or both the Xbox 360 and Xbox One.
Or you could stop trying to go back in time and pretend that virtualization and emulators somehow don't exist anymore, since their existence tends to be the entire point of this question.
In my experience, interpretive emulation eats up 90 percent of CPU time in the interpreter. Or what kind of emulator did you have in mind?
With the hardware race to keep Moore's law alive as long as possible, we've had "enough" GPU, CPU, and memory in hardware for quite a long time.
Enough GPU, CPU, and memory to run something natively != enough GPU, CPU, and memory to emulate it.
A lot of people have switched from a desktop or laptop PC to a smartphone or tablet as a primary personal computing device. And in many cases, this smartphone or tablet runs Android (which uses Linux as its kernel but admittedly isn't GNU/Linux).
But then the proprietary application's publisher needs to both have the resources and be willing to recompile, test, and certify the Qt-based app for each such platform.
To be fair, you only have to make changes mergeable if you're editing the exact same simultaneously in two places. If you're using it as a personal tool, you only need to keep track of versions make sure that the user is using the last one.
If one person makes changes on one offline device and then makes changes on another offline device, these changes are "simultaneous" from the perspective of the repository. The second to commit will hit a merge conflict.
Collaborative editing whiteboards manage to solve that problem, too.
How well do these "collaborative editing whiteboards" work when one contributor is offline for hours? The use case I imagine is my own: someone using a laptop while riding transit to and from work in a city whose bus system does not provide Internet access.
it would be trivial to expose both versions of the content and let the user choose which one she wants to use, or even copy/paste snippets from any of them into the final version- again, just like when using a wiki or version control.
Assuming a library for ubiquitous distributed version control is available under terms compatible with both free software and proprietary software, the biggest obstacle I can see is getting users new to distributed version control to do two things: first, understand the model; and second, schedule time to resolve merge conflicts. A wiki isn't the best analogy because three things cause it to produce far fewer merge conflicts than distributed version control: wikis more often use centralized version control, wikis more often are edited online, and some wikis that I've used even temporarily protect a page if someone has checked it out for editing in the past 20 minutes. In addition, who operates the repository server, and who pays for its operation? Will you get a pop-over with Jimbo Wales's face begging for donations across your document every December?
If you restrict memory to a function of the input size, you end up with something conceptually resembling a linear bounded automaton (LBA). But even in the case of LBA-complete systems, "an interpreter or compiler" may introduce unacceptable time and space overhead compared to the performance that the application's developer expected.
Another game using the same principle as Operation Wolf is ZapPing, an air hockey simulator that's part of a Zapper test ROM called Zap Ruder. People who've played it say it feels as smooth as using a Wii Remote. Video
The Zapper does not work with LCDs. It uses a circuit similar to that found in infrared remote control receivers. The circuit is tuned to sense light that flickers at roughly 16 kHz, which matches the horizontal scan rate of a CRT SDTV.
Furthermore, some NES games actually measure the time between the start of the picture and when the Zapper begins to detect light. This lets the game tell how far up or down the gun is pointed and narrow down the set of targets that it has to turn on in sequence. Operation Wolf does this, as does Zap Ruder (source).
If you have an LCD, you need to wait until 2026 for the Wii Remote patents to expire.
Remote desktops already do [diffs] for graphical content
That's done to save bandwidth, not to make changes mergeable. If you run a sharpen filter on an image on one machine, and you add airbrush strokes to the image on another machine, you'll get a merge conflict.
I shudder to think of what [merge conflict resolution for work sessions] might look like.
I have a good idea of what it should look like, and it's not much different to what "the cloud" services achieve today (Dropbox or Google Drive or MS OneDrive for files[...])
In my experience, services like Dropbox just punt on handling merge conflicts, adding both branches to the user's account as separate files. I haven't had a chance to test what happens when a merge conflict pushes the account over the storage quota.
(tabs sync in browsers)
How does "tabs sync in browsers" handle merge conflicts if the user has the same tab open on two machines but edits the content of a textarea element differently on two machines?
A simple way would be to share only pointers to the information in the other system, and having the user manually request the byte-heavy blocks that they want to use when they switch to a new device (either pushing them from the old device or pulling them from the pointer available in the new screen).
Good luck with that if the other machine is switched off, or if both machines are behind NAT.
I shudder to think of what [merge conflict resolution for work sessions] might look like.
Conflicts could be handled the same way that wikis do it, keeping track of the last edited version, and providing tools for the user to perform manual merges or seeing two versions at the same time to select the parts that they want to keep.
Whose responsibility would it be to provide the user interface for "seeing two versions at the same time to select the parts that they want to keep" in all applications for all platforms?
For one thing, submission to Amazon Marketplace Web Service currently requires either tab-separated files or Microsoft® Excel® format, and I refuse on principle to generate Excel format.
For another, a gzipped tab-separated file is still smaller than a gzipped comma-separated file because even though the additional escaping in a CSV file compresses, it doesn't compress away entirely. It's a similar phenomenon to how JavaScript compresses smaller if it's minified before gzip. Do you want exact byte counts of a decompressed tab-separated file, a decompressed comma-separated file, a gzipped tab-separated file, and a gzipped comma-separated file, from an actual table from my day job?
For one thing, the differences among the four major browsers (Chrome, Firefox, Edge, and Safari) are smaller than the differences among the five major desktop and smartphone operating systems (Windows, macOS, X11/Linux, iOS, and Android). For another, web apps have only one "app store": a domain and TLS-capable web hosting. You don't need to pay for a subscription to multiple platforms' developer programs, and you don't need to wait for multiple platforms' censors to release your application.
I don't hate Microsoft or abhor their products, but they were the ones who made wall gardens the status quo.
I am aware that the Xbox 360 walled garden and the Xbox Creators Club developer program preceded the similar App Store and iOS Developer Program in iOS 2 (then called iPhone OS 2). But games for the click wheel iPod also preceded iOS 2, and the developer program for those was even more closed than the iOS Developer Program. Furthermore, the Checking Integrated Circuit in the Nintendo Entertainment System and code signing in the Atari 7800 preceded even that.
Just like git version control, but for all kind of content and work sessions, not just code.
As far as I can tell based on your description, that would require "all kind of content and work sessions" to be in a form that can be easily diffed. And if the user works on two offline computers before they have a chance to get back to the Internet and commit changes to the user's session, the application will have to provide some sort of interface to resolve merge conflicts. I shudder to think of what that might look like.
Why, in principle, can't modern games scale down to lower levels of detail reminiscent of the original PlayStation, Nintendo 64, or Voodoo 2 upon request?
with all the virtualization stuff, remote desktop and more... well, I think it isn't a problem
Remote Desktop works only while you are connected to the Internet. This might be good for someone who is always in range of Wi-Fi while not driving, but not somebody who rides transit. A city bus moving at 45 km/h (28 mph) doesn't stay in range of a particular hotspot long enough to associate, get an IP address, and have the client reestablish a secure connection. If you're already paying a fiber, cable, or DSL ISP every month for a connection at home, paying a similar amount to a second cellular ISP for a connection in a vehicle might not be in your budget.
You can run Windows on your apple watch, but there is no mouse.
There's no mouse on my laptop either, but there is a trackpad. In a pinch, can't the whole face of a smartwatch be treated as a trackpad, with slide moving the cursor and tap producing a click? Or does the fact that the finger covers up the display make this impractical?
The breakthrough is that you can run applications other than a web browser. To do so on a Chromebook requires putting it into developer mode. And once you've done that, anybody who turns it on can wipe the drive by pressing Space then Enter within 30 seconds of turning it on, causing you to lose all work that hasn't been backed up yet as well as the use of the device until you can reload your developer mode distribution. You can skip the 30-second interstitial by pressing Ctrl+D, but someone else who turns it on doesn't know that.
If I sell a book am I required to sell an audio version?
No, but you are required to license U.S. copyright in the book to the National Library Service for the Blind and Physically Handicapped.
If I sell a song am I required to transcribe it?
Songwriters and music publishers see sheet music as both an additional revenue source and as a way to more clearly establish copyright ownership.
Why is the company going to pay to have their team write code to downgrade the quality of the detail
Asset scaling would let the company collect revenue from users of less capable devices. It's the same reason games came out for both the PlayStation 3 and PlayStation 4, or both the Xbox 360 and Xbox One.
Or you could stop trying to go back in time and pretend that virtualization and emulators somehow don't exist anymore, since their existence tends to be the entire point of this question.
In my experience, interpretive emulation eats up 90 percent of CPU time in the interpreter. Or what kind of emulator did you have in mind?
With the hardware race to keep Moore's law alive as long as possible, we've had "enough" GPU, CPU, and memory in hardware for quite a long time.
Enough GPU, CPU, and memory to run something natively != enough GPU, CPU, and memory to emulate it.
A lot of people have switched from a desktop or laptop PC to a smartphone or tablet as a primary personal computing device. And in many cases, this smartphone or tablet runs Android (which uses Linux as its kernel but admittedly isn't GNU/Linux).
But then the proprietary application's publisher needs to both have the resources and be willing to recompile, test, and certify the Qt-based app for each such platform.
Homemade machines don't have to worry about patent enforcement to nearly the same extent that a commercial solution would.
To be fair, you only have to make changes mergeable if you're editing the exact same simultaneously in two places. If you're using it as a personal tool, you only need to keep track of versions make sure that the user is using the last one.
If one person makes changes on one offline device and then makes changes on another offline device, these changes are "simultaneous" from the perspective of the repository. The second to commit will hit a merge conflict.
Collaborative editing whiteboards manage to solve that problem, too.
How well do these "collaborative editing whiteboards" work when one contributor is offline for hours? The use case I imagine is my own: someone using a laptop while riding transit to and from work in a city whose bus system does not provide Internet access.
it would be trivial to expose both versions of the content and let the user choose which one she wants to use, or even copy/paste snippets from any of them into the final version- again, just like when using a wiki or version control.
Assuming a library for ubiquitous distributed version control is available under terms compatible with both free software and proprietary software, the biggest obstacle I can see is getting users new to distributed version control to do two things: first, understand the model; and second, schedule time to resolve merge conflicts. A wiki isn't the best analogy because three things cause it to produce far fewer merge conflicts than distributed version control: wikis more often use centralized version control, wikis more often are edited online, and some wikis that I've used even temporarily protect a page if someone has checked it out for editing in the past 20 minutes. In addition, who operates the repository server, and who pays for its operation? Will you get a pop-over with Jimbo Wales's face begging for donations across your document every December?
If you restrict memory to a function of the input size, you end up with something conceptually resembling a linear bounded automaton (LBA). But even in the case of LBA-complete systems, "an interpreter or compiler" may introduce unacceptable time and space overhead compared to the performance that the application's developer expected.
The point is though, existing CRT light-gun games will simply stop working when the CRT is replaced, and there will be no easy fix.
An MCU that reads a Wii Remote and translates it into light gun signals is possible.
Another game using the same principle as Operation Wolf is ZapPing, an air hockey simulator that's part of a Zapper test ROM called Zap Ruder. People who've played it say it feels as smooth as using a Wii Remote. Video
The Zapper does not work with LCDs. It uses a circuit similar to that found in infrared remote control receivers. The circuit is tuned to sense light that flickers at roughly 16 kHz, which matches the horizontal scan rate of a CRT SDTV.
Furthermore, some NES games actually measure the time between the start of the picture and when the Zapper begins to detect light. This lets the game tell how far up or down the gun is pointed and narrow down the set of targets that it has to turn on in sequence. Operation Wolf does this, as does Zap Ruder (source).
If you have an LCD, you need to wait until 2026 for the Wii Remote patents to expire.
All our city buses (nultiple operators) have had free wifi for a few years now (smallish UK city).
Buses in Fort Wayne, Indiana, USA, do not. What action should people living outside your "smallish UK city" take?
Remote desktops already do [diffs] for graphical content
That's done to save bandwidth, not to make changes mergeable. If you run a sharpen filter on an image on one machine, and you add airbrush strokes to the image on another machine, you'll get a merge conflict.
I shudder to think of what [merge conflict resolution for work sessions] might look like.
I have a good idea of what it should look like, and it's not much different to what "the cloud" services achieve today (Dropbox or Google Drive or MS OneDrive for files[...])
In my experience, services like Dropbox just punt on handling merge conflicts, adding both branches to the user's account as separate files. I haven't had a chance to test what happens when a merge conflict pushes the account over the storage quota.
(tabs sync in browsers)
How does "tabs sync in browsers" handle merge conflicts if the user has the same tab open on two machines but edits the content of a textarea element differently on two machines?
A simple way would be to share only pointers to the information in the other system, and having the user manually request the byte-heavy blocks that they want to use when they switch to a new device (either pushing them from the old device or pulling them from the pointer available in the new screen).
Good luck with that if the other machine is switched off, or if both machines are behind NAT.
I shudder to think of what [merge conflict resolution for work sessions] might look like.
Conflicts could be handled the same way that wikis do it, keeping track of the last edited version, and providing tools for the user to perform manual merges or seeing two versions at the same time to select the parts that they want to keep.
Whose responsibility would it be to provide the user interface for "seeing two versions at the same time to select the parts that they want to keep" in all applications for all platforms?
For one thing, submission to Amazon Marketplace Web Service currently requires either tab-separated files or Microsoft® Excel® format, and I refuse on principle to generate Excel format.
For another, a gzipped tab-separated file is still smaller than a gzipped comma-separated file because even though the additional escaping in a CSV file compresses, it doesn't compress away entirely. It's a similar phenomenon to how JavaScript compresses smaller if it's minified before gzip. Do you want exact byte counts of a decompressed tab-separated file, a decompressed comma-separated file, a gzipped tab-separated file, and a gzipped comma-separated file, from an actual table from my day job?
For one thing, the differences among the four major browsers (Chrome, Firefox, Edge, and Safari) are smaller than the differences among the five major desktop and smartphone operating systems (Windows, macOS, X11/Linux, iOS, and Android). For another, web apps have only one "app store": a domain and TLS-capable web hosting. You don't need to pay for a subscription to multiple platforms' developer programs, and you don't need to wait for multiple platforms' censors to release your application.
I don't hate Microsoft or abhor their products, but they were the ones who made wall gardens the status quo.
I am aware that the Xbox 360 walled garden and the Xbox Creators Club developer program preceded the similar App Store and iOS Developer Program in iOS 2 (then called iPhone OS 2). But games for the click wheel iPod also preceded iOS 2, and the developer program for those was even more closed than the iOS Developer Program. Furthermore, the Checking Integrated Circuit in the Nintendo Entertainment System and code signing in the Atari 7800 preceded even that.
If the hardware is Turing-complete
Then it cannot physically exist because a Turing machine has an unbounded tape, while the observable universe is bounded.
Just like git version control, but for all kind of content and work sessions, not just code.
As far as I can tell based on your description, that would require "all kind of content and work sessions" to be in a form that can be easily diffed. And if the user works on two offline computers before they have a chance to get back to the Internet and commit changes to the user's session, the application will have to provide some sort of interface to resolve merge conflicts. I shudder to think of what that might look like.
Why, in principle, can't modern games scale down to lower levels of detail reminiscent of the original PlayStation, Nintendo 64, or Voodoo 2 upon request?
with all the virtualization stuff, remote desktop and more... well, I think it isn't a problem
Remote Desktop works only while you are connected to the Internet. This might be good for someone who is always in range of Wi-Fi while not driving, but not somebody who rides transit. A city bus moving at 45 km/h (28 mph) doesn't stay in range of a particular hotspot long enough to associate, get an IP address, and have the client reestablish a secure connection. If you're already paying a fiber, cable, or DSL ISP every month for a connection at home, paying a similar amount to a second cellular ISP for a connection in a vehicle might not be in your budget.
You can run Windows on your apple watch, but there is no mouse.
There's no mouse on my laptop either, but there is a trackpad. In a pinch, can't the whole face of a smartwatch be treated as a trackpad, with slide moving the cursor and tap producing a click? Or does the fact that the finger covers up the display make this impractical?
The features of the web platform that allow offline use of a web application need heavyweight support from the browser.
a GNU/Linux phone that can run Android in a VM
Android is Linux.
Whose userspace is largely incompatible with that of common GNU/Linux distributions.
proper DRM is being worked on.
Why did the developers of the Direct Rendering Manager have to give it such a confusing name?
The breakthrough is that you can run applications other than a web browser. To do so on a Chromebook requires putting it into developer mode. And once you've done that, anybody who turns it on can wipe the drive by pressing Space then Enter within 30 seconds of turning it on, causing you to lose all work that hasn't been backed up yet as well as the use of the device until you can reload your developer mode distribution. You can skip the 30-second interstitial by pressing Ctrl+D, but someone else who turns it on doesn't know that.