Android devices are not shipped with the tools to program them, either.
They can be programmed with tools that are 1. manufactured by multiple and 2. more widespread. In fact, you don't strictly need a PC, as Android tablets have had AIDE for far longer than iPad has had Swift Playgrounds.
The cost of the tools does not define what a computer is.
Now that I think about your example of building a desktop PC from parts, I have realized something.
(Or does realizing something imply a prohibited movement of the goalposts?)
I have realized that my complaint is not even about the price per se. It's that manufacturers of incomplete computers have been systematically misleading the public about how complete their products are. Prior to the introduction of Swift Playgrounds, it was quite expensive to complete a $200 refurbished iPad by adding a Mac.
Your suggestion to use an OS-level or hardware-level mute feature may work for some people. But it won't work for people who want to hear sound from one app but not from another app, or sound from a document open in one tab but not from a document open in another tab.
I suggested another solution a year and a half ago in a comment to someone's anti-adblock blog. Give each page load a data cap configurable per domain and defaulting to 1,000,000 bytes. Once a particular page load has reached the quota, pause all connections and display a "runaway download" notice similar to that for an unresponsive script. The user can reset the cap by clicking "Load More" in the notice or by navigating to another document.
I now realize that this naive model of a cap per document would break single-page web applications, which replace parts of a document instead of navigating. For these, the browser should let the user define a quota per hour, minute, or user gesture.
In any case, you being too cheap or too poor to buy the tools to program a computer doesn't change the computer. It is still programmable by people who care enough.
Would you likewise consider a video game console to be a user-programmable computer because "people who care enough" can start a game studio and buy a multi-thousand-dollar devkit?
I'm interested in switching my blog to hosting its own ads. How would I go about finding sponsors? Last I checked, well-known advertisers preferred to buy inventory from ad networks and ad exchanges so that they could reach multiple publishers' sites with one buy, target very specific inferred demographics regardless of correlation with a particular site's subject matter, and benefit from economies of scale in click fraud detection. If you have operated a site that hosts its own ads, how did you overcome these obstacles? I know Daring Fireball does, but I don't have quite his scale yet.
Switch away from the Spotify, Pandora, Amazon, SoundCloud, or YouTube tab playing music, and it gets paused. How would that benefit users? YouTube on mobile already has that "feature" to pause when visibility is lost and puts the disable switch behind a recurring paywall.
Disabling autoplay had the unintended effect of driving developers to alternatives such as animated GIFs, as well as <canvas> and <img> hacks. These techniques are much worse than optimized video in terms of power consumption, performance, bandwidth requirements, data cost and memory usage. Video can provide higher quality than animated GIFs, with far better compression: around 10 times on average, and up to 100 times at best. Video decoding in JavaScript is possible, but it's a huge drain on battery power.
The owner of an iPad cannot program it without additionally purchasing a sufficiently recent Mac, whose price typically exceeds that of the iPad.
But it can still be done, why does an additional cost/piece of hardware invalid it?
Anecdotal evidence is evidence that something is possible, not that it is common. Because the majority of iPads are not owned by Mac owners, most iPads are not general-purpose computers.
Now consider why it isn't common. Because of the relative prices of the device (iPad, $500) and the peripheral that enables general-purpose computation thereon (Mac, estimated $1000), one cannot assume that anyone who owns the device either also owns or can easily afford the enabler. Thus you end up with sticker shock causing people to prematurely dismiss joining the free software user community entirely. A concrete example: If you own an iPad and a Mac, and your friends own iPads, you can't assume that they also have access to a Mac. Thus you can't privately share your improvements to an app with them, and they therefore cannot benefit from your improvements.
Some of the apathy toward fixing encoding is a legacy of vandals abusing Unicode control characters to mess with the layout and abusing foreign language characters to post obscene glyph art. If Unicode support matters to you, you could always use SoylentNews instead.
Try doing a "long branch" on a Motorola 6800, best you could do was a jump of maximum 255 bytes.
On both the Motorola 6800 and the MOS 6502, a long branch is possible though not position-independent. It is encoded as a short branch with the opposite condition around an absolute jump.
90% of "users" don't program, don't need to program and don't want to program.
As more school corporations incorporate computer science into the high school curriculum, "I don't wanna program" will feel more like "I don't wanna go to school."
There is nothing in the standard definition of "computer" that says it has to be powerful enough to compile its own operating system.
To compile its own operating system, I'll grant maybe not. But for user-written user-space applications, I think that's pretty important in order to consider a computer as general-purpose.
Even so, all it would take is an assembler ported to the iPad for it to be able to do so
Guess what Apple probably wouldn't allow.
I'm aware of the existence of Swift Playgrounds. I don't know how it manages to work around the strict W^X policy in iOS against runtime generation of code. I'm also aware of a stipulation in the current App Store Review Guidelines implying that any user programmability is intended for education, not for production:
2.5.2 Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code, including other apps. Educational apps designed to teach, develop, or allow students to test executable code may, in limited circumstances, download code provided that such code is not used for other purposes. Such apps must make the source code provided by the Application completely viewable and editable by the user.
I have a watch that is a computer for real. It is the EZ430
Most digital wristwatches aren't nearly as user-programmable as the eZ430-Chronos.
And yes, the iPad has a processor that you can program, so it is, indeed, a computer.
The iPad is not shipped as a general-purpose computer but can be turned into one with an additional purchase of a proprietary product. In the case of an iPad, buying a Mac new enough to run the latest Xcode turns it into a general-purpose computer.
By that argument, any computer isn't a computer, because it can only do those things that are allowed by the CPU manufacturer.
As far as I'm aware, CPU manufacturers aim to make their products LBA-complete,* such that they can do anything a linear bounded automaton can do. What significant parts of LBA completeness are not "allowed by the CPU manufacturer," other than as part of a smart card or other deliberately locked down SoC intended for security against physical access?
* Technically, it's impossible for a physical computer to be Turing complete, as a Turing machine has unbounded tape. An LBA is the same as a Turing machine except for having bounded tape.
Xcode does not run on an iPad, a pre-2010 Mac, or a non-Apple PC. Using Xcode as your defense means an iPad is a general-purpose computer if and only if it is associated with a sufficiently recent Mac.
And it can carry out instruction you give it, if you bother to learn how to program it. Your ignorance of how to do it doesn't change the hardware.
That could be taken either way. I guess a more useful definition of a general-purpose computer hinges on whether the public knows how to make and load programs on a particular device in a lawful manner.
As I understand Google's announced plan for Chrome, the eventual intent is to block ads on all sites that use ad formats that the Coalition for Better Ads has determined annoy viewers. Currently the Better Ads Standards deem the following formats annoying:
Pop-up ads triggered other than through inactivity or tab invisibility
Automatically playing ads with audio
Prestitial ads with a countdown before close
All prestitial ads (on mobile)
All ads with a countdown before close (on mobile)
Sticky ads covering more than 30 percent of the viewport
Ads making up more than 30 percent of the document's vertical height
Ads whose animation includes a flashing element
Ads that the user must explicitly drag out of the way, interrupting inertial scrolling
If Chrome doesn't block Google's own ads, it's because Google doesn't offer inventory in any of the annoying formats.
Tab-unders aren't listed on the Coalition's website, but I find them worse than some of the listed formats because the act of closing such an ad destroys the back button stack.
I was disappointed that the standards didn't list the practice of "retargeting" or "remarketing" on sites with unrelated subject matter, a practice that many users claim to find creepy. But then I guess that's Google's bread and butter.
I too have had Flash and other plug-ins on click-to-play for over a decade, but HTML5 video is not "fucking plugins."
Install something like HTTP Switchboard to block shit you don't want.
HTTP Switchboard is no longer maintained. Its replacement is an ad blocker. Is there an ad blocker that blocks only ads that aren't self-hosted (like Firefox tracking protection does) and autoplaying videos?
Two extensions that I have used have not been ported. One was not ported because it depends on legacy APIs known to lack a counterpart in WebExtensions.
Keybinder
This allows disabling the Ctrl+Q keyboard shortcut for Quit, which is too easy for a user to hit accidentally while reaching for Ctrl+W or Ctrl+Tab. Restore Previous Session fails to restore some forms, particularly Slashdot D2 comment forms. A replacement for Keybinder is pending the resolution of bug 1325692 in BMO. The README file in its source code states that its maintainer abandoned the project over the lack of a counterpart to XUL keysets.
Ubufox
This notifies the user when the APT package manager has upgraded Firefox, so that the user can plan a restart for when no unrestorable forms remain open. In theory, bug 1364978 in BMO and bug 1711778 in Launchpad would track porting Ubufox to WebExtensions, but I don't see 1364978 depending on other bugs.
If you think Safari is not a valid option because it requires macOS, then Edge is also not a valid option because it requires Windows.
I don't see the equivalence. Edge can be thought of as a $119.99 browser that runs on almost any x86-64 PC (and comes with an operating system called Windows at no additional charge). Safari requires specifically an Apple brand computer.
You ask for a computer for Christmas, and mom buys you a Nintendo 3DS. Do you applaud her for being "technically correct, the best kind of correct" (Futurama)?
So the supercomputers being run by NCAR are not computers because you cannot program them yourself?
The owners of those supercomputers can program them themselves. The owner of an iPad cannot program it without additionally purchasing a sufficiently recent Mac, whose price typically exceeds that of the iPad. A used pre-2010 Mac will not work, nor will a computer other than a Mac.
Android devices are not shipped with the tools to program them, either.
They can be programmed with tools that are 1. manufactured by multiple and 2. more widespread. In fact, you don't strictly need a PC, as Android tablets have had AIDE for far longer than iPad has had Swift Playgrounds.
The cost of the tools does not define what a computer is.
Now that I think about your example of building a desktop PC from parts, I have realized something.
(Or does realizing something imply a prohibited movement of the goalposts?)
I have realized that my complaint is not even about the price per se. It's that manufacturers of incomplete computers have been systematically misleading the public about how complete their products are. Prior to the introduction of Swift Playgrounds, it was quite expensive to complete a $200 refurbished iPad by adding a Mac.
Your suggestion to use an OS-level or hardware-level mute feature may work for some people. But it won't work for people who want to hear sound from one app but not from another app, or sound from a document open in one tab but not from a document open in another tab.
I suggested another solution a year and a half ago in a comment to someone's anti-adblock blog. Give each page load a data cap configurable per domain and defaulting to 1,000,000 bytes. Once a particular page load has reached the quota, pause all connections and display a "runaway download" notice similar to that for an unresponsive script. The user can reset the cap by clicking "Load More" in the notice or by navigating to another document.
I now realize that this naive model of a cap per document would break single-page web applications, which replace parts of a document instead of navigating. For these, the browser should let the user define a quota per hour, minute, or user gesture.
In any case, you being too cheap or too poor to buy the tools to program a computer doesn't change the computer. It is still programmable by people who care enough.
Would you likewise consider a video game console to be a user-programmable computer because "people who care enough" can start a game studio and buy a multi-thousand-dollar devkit?
It's difficult to reliably identify JavaScript hacks that would need disabling
I don't see how it's so hard:
1. The <script> element
2. Attributes whose name begins with on
I'm interested in switching my blog to hosting its own ads. How would I go about finding sponsors? Last I checked, well-known advertisers preferred to buy inventory from ad networks and ad exchanges so that they could reach multiple publishers' sites with one buy, target very specific inferred demographics regardless of correlation with a particular site's subject matter, and benefit from economies of scale in click fraud detection. If you have operated a site that hosts its own ads, how did you overcome these obstacles? I know Daring Fireball does, but I don't have quite his scale yet.
Switch away from the Spotify, Pandora, Amazon, SoundCloud, or YouTube tab playing music, and it gets paused. How would that benefit users? YouTube on mobile already has that "feature" to pause when visibility is lost and puts the disable switch behind a recurring paywall.
Google's rationale behind allowing muted autoplaying video is that if the video fails to load, playback is likely to fall back to a GIF animation, which uses your bandwidth even less efficiently:
The owner of an iPad cannot program it without additionally purchasing a sufficiently recent Mac, whose price typically exceeds that of the iPad.
But it can still be done, why does an additional cost/piece of hardware invalid it?
Anecdotal evidence is evidence that something is possible, not that it is common. Because the majority of iPads are not owned by Mac owners, most iPads are not general-purpose computers.
Now consider why it isn't common. Because of the relative prices of the device (iPad, $500) and the peripheral that enables general-purpose computation thereon (Mac, estimated $1000), one cannot assume that anyone who owns the device either also owns or can easily afford the enabler. Thus you end up with sticker shock causing people to prematurely dismiss joining the free software user community entirely. A concrete example: If you own an iPad and a Mac, and your friends own iPads, you can't assume that they also have access to a Mac. Thus you can't privately share your improvements to an app with them, and they therefore cannot benefit from your improvements.
Some of the apathy toward fixing encoding is a legacy of vandals abusing Unicode control characters to mess with the layout and abusing foreign language characters to post obscene glyph art. If Unicode support matters to you, you could always use SoylentNews instead.
Try doing a "long branch" on a Motorola 6800, best you could do was a jump of maximum 255 bytes.
On both the Motorola 6800 and the MOS 6502, a long branch is possible though not position-independent. It is encoded as a short branch with the opposite condition around an absolute jump.
Then let me amend Archtech's suggestion to account for the flaw you point out:
"I'm glad you asked, kid. A computer is any device that's LBA-complete".
"What's an LBA?"
To unlock the answer, translate the article "Linear bounded automaton" into simple English.
90% of "users" don't program, don't need to program and don't want to program.
As more school corporations incorporate computer science into the high school curriculum, "I don't wanna program" will feel more like "I don't wanna go to school."
There is nothing in the standard definition of "computer" that says it has to be powerful enough to compile its own operating system.
To compile its own operating system, I'll grant maybe not. But for user-written user-space applications, I think that's pretty important in order to consider a computer as general-purpose.
Even so, all it would take is an assembler ported to the iPad for it to be able to do so
Guess what Apple probably wouldn't allow.
I'm aware of the existence of Swift Playgrounds. I don't know how it manages to work around the strict W^X policy in iOS against runtime generation of code. I'm also aware of a stipulation in the current App Store Review Guidelines implying that any user programmability is intended for education, not for production:
I have a watch that is a computer for real. It is the EZ430
Most digital wristwatches aren't nearly as user-programmable as the eZ430-Chronos.
And yes, the iPad has a processor that you can program, so it is, indeed, a computer.
The iPad is not shipped as a general-purpose computer but can be turned into one with an additional purchase of a proprietary product. In the case of an iPad, buying a Mac new enough to run the latest Xcode turns it into a general-purpose computer.
If one could program it using only free software (as opposed to the full IDE or Xcode), I would count it as already general-purpose. Android devices are this way, as Debian provides a functional free subset of the Android SDK.
By that argument, any computer isn't a computer, because it can only do those things that are allowed by the CPU manufacturer.
As far as I'm aware, CPU manufacturers aim to make their products LBA-complete,* such that they can do anything a linear bounded automaton can do. What significant parts of LBA completeness are not "allowed by the CPU manufacturer," other than as part of a smart card or other deliberately locked down SoC intended for security against physical access?
* Technically, it's impossible for a physical computer to be Turing complete, as a Turing machine has unbounded tape. An LBA is the same as a Turing machine except for having bounded tape.
Xcode does not run on an iPad, a pre-2010 Mac, or a non-Apple PC. Using Xcode as your defense means an iPad is a general-purpose computer if and only if it is associated with a sufficiently recent Mac.
And it can carry out instruction you give it, if you bother to learn how to program it. Your ignorance of how to do it doesn't change the hardware.
That could be taken either way. I guess a more useful definition of a general-purpose computer hinges on whether the public knows how to make and load programs on a particular device in a lawful manner.
As I understand Google's announced plan for Chrome, the eventual intent is to block ads on all sites that use ad formats that the Coalition for Better Ads has determined annoy viewers. Currently the Better Ads Standards deem the following formats annoying:
If Chrome doesn't block Google's own ads, it's because Google doesn't offer inventory in any of the annoying formats.
Tab-unders aren't listed on the Coalition's website, but I find them worse than some of the listed formats because the act of closing such an ad destroys the back button stack.
I was disappointed that the standards didn't list the practice of "retargeting" or "remarketing" on sites with unrelated subject matter, a practice that many users claim to find creepy. But then I guess that's Google's bread and butter.
That doesn't help when the anti-adblock script doesn't insert the article's text into the DOM at all until the ad is deemed viewable.
Disable the fucking plugins.
I too have had Flash and other plug-ins on click-to-play for over a decade, but HTML5 video is not "fucking plugins."
Install something like HTTP Switchboard to block shit you don't want.
HTTP Switchboard is no longer maintained. Its replacement is an ad blocker. Is there an ad blocker that blocks only ads that aren't self-hosted (like Firefox tracking protection does) and autoplaying videos?
Two extensions that I have used have not been ported. One was not ported because it depends on legacy APIs known to lack a counterpart in WebExtensions.
Keybinder This allows disabling the Ctrl+Q keyboard shortcut for Quit, which is too easy for a user to hit accidentally while reaching for Ctrl+W or Ctrl+Tab. Restore Previous Session fails to restore some forms, particularly Slashdot D2 comment forms. A replacement for Keybinder is pending the resolution of bug 1325692 in BMO. The README file in its source code states that its maintainer abandoned the project over the lack of a counterpart to XUL keysets. Ubufox This notifies the user when the APT package manager has upgraded Firefox, so that the user can plan a restart for when no unrestorable forms remain open. In theory, bug 1364978 in BMO and bug 1711778 in Launchpad would track porting Ubufox to WebExtensions, but I don't see 1364978 depending on other bugs.If you think Safari is not a valid option because it requires macOS, then Edge is also not a valid option because it requires Windows.
I don't see the equivalence. Edge can be thought of as a $119.99 browser that runs on almost any x86-64 PC (and comes with an operating system called Windows at no additional charge). Safari requires specifically an Apple brand computer.
You ask for a computer for Christmas, and mom buys you a Nintendo 3DS. Do you applaud her for being "technically correct, the best kind of correct" (Futurama)?
So the supercomputers being run by NCAR are not computers because you cannot program them yourself?
The owners of those supercomputers can program them themselves. The owner of an iPad cannot program it without additionally purchasing a sufficiently recent Mac, whose price typically exceeds that of the iPad. A used pre-2010 Mac will not work, nor will a computer other than a Mac.