The use of the terms client/server are correct for X.
I never really saw it as being backwards. The x server is providing a service for the client, that service is to display it's output on the user's screen. Also, more importantly, the x server keeps working for other clients even if one client dies. But if the server dies the clients can't do anything. This matches how a whole lot of desktops running "email clients" and talking to a central "email server" works: it usually is ok if one of the email clients dies, but bad for all the email clients if the email server dies.
In addition wayland is using exactly the same terminology.
There is also code in development to create a "wayland network protocol"
My understanding is that the clients will just talk to a special wayland server using the same api they would use to draw locally.
There may be a "wayland network protocol" but the clients should not have to worry about which protocol is being used. Most of the current developement is to use RDP.
It supports vector graphics EXACTLY like Quartz. When you draw vector graphics, they are translated to antialiased images in a buffer by the client process. Then the system is told that that buffer contains new images. Perhaps confusing is that the first part is called "cairo" (though you can use different libraries) while the wayland developers are only concerned with the second part of communicating the buffer changes.
IRIX did not run OpenGL under X really. It did pretty much what modern DRI stuff does: you do a bunch of OpenGL calls passing X window ID's and that causes the OpenGL library to locate the piece of memory X is using for that window (at that time it was part of the dual-buffer memory for the screen) and then OpenGL draws into it. The X server has no idea what is being drawn and is not involved in this. It also does not work over the network (though they did add DGL later). Also IRIX originally used their own system (called GL) and then for a while used NeWS, and were one of the last holdouts of switching to X.
They could at least scale the ranges. Say 0-9, 10-99, 100-999, 1000-9999, etc. That would provide useful information and the same amount of obfuscation.
Different charges will only benefit small business if the charge is *smaller* for them than for large established companies. If it is *larger* then it hurts small companies. There is a large bridge in Brooklyn I need to unload quickly, and anybody who believes the charge will be smaller for small businesses is probably an ideal owner, so please make an offer.
Microsoft's attempt to make ODF useless was due to using ambiguity in the spec as an excuse to make something that did not work at all. If I remember right, some ODF applications would set a spreadsheet cell from the text "1" in quotes to the integer 1, while others would set it to a string containing the digit '1'. Microsoft then made some incredibly convoluted "logic" to twist this into a reasoning to not produce *either* of these possibilities, but produce a third that was not readable by anybody! They printed many "research papers" full of garbage to convince the PHBs that what they did was somehow logical and required by the laws of nature. Pure evil I think. Most of what Microsoft does that is bad is just due to incompetence and ignoring existing standards, but the attempts to defend the Word monopoly are obviously straight premeditated vileness.
Yes I think it is common for a dynamically linked executable to be used, but it has rpath set to a relative directory and it is also shipped with.so files for everything. This does mean you can often remove/rename these.so files and use the central ones. GoogleEarth for instance had an old version of Qt that did not do antialiased text, and you could fix this by simply removing their Qt so files.
Larry Niven had a version where the Earth was moved by first moving Neptune (which was easier because it is gas and the engines just floated on the top of it and the gas acted as a shock absorber so Neptune remained in one piece). They then moved Neptune near Earth and used it's gravitational attraction to move Earth.
It was not going anywhere interesting, they were trying to change the orbit to compensate for changes in the Sun.
The Bugatti also has a huge advantage that it does not have to carry the reaction mass, instead it moves next to a huge reaction mass (the earth) and pushes it backwards.
You would also have a fantastic weapon easily able to destroy large swaths of Earth's surface.
Basically if the ship is accelerating at 1g then an equal amount of momentum is being directed the opposite way. If only a small fraction of the ship's mass is being ejected then it is going to have a huge amount of energy.
In all likelihood humans ran into a system of weakened prey species (ice age anyone?) that might or might not have survived if we hadn't shown up, and we delivered the coup de grace by hunting them down.
That's what the paper says in the first paragraph of the abstract, so they agree with your idea.
But the paper just shows that the decline in the big species predates the largest number of humans. All that might mean is that humans were really efficient at killing them off, so that they were going extinct from just the actions of the first groups of humans. Humans kept arriving and reproducing even after they were extinct. There is no reason the extinction could not be caused by fewer than the maximum number of humans.
So obviously, the scenario of having fixed-format strings and having to extract something from their middle is not a useful string algorithm to you?
You can extract the center of strings using offsets. This has nothing to do with fixed-sized units.
You really missed where I said "use UCS-2"
UCS-2 is obsolete as it cannot store all of Unicode, and is not used anywhere. I might as well say "bytes can be used because I only use ISO-8859-1".
Qt doesn't explicitly throw
Looks correct, I think I was confusing this with Python. It is unfortunate that they think some perfectly valid 16-bit values are "errors" when written in UTF-8, as this prevents invalid UTF-16 from being stored, leading to the same problems on Windows that refusal to handle errors leads to the inability to use UTF-8 on Unix. If a filename can contain invalid sequences we MUST be able to specify such invalid sequences (http://qt-project.org/doc/qt-5.0/qtcore/qstring.html#fromUtf8)
Linux is a bit better for this, yes, but not good enough. Most commercial Linux software also ships with it's own copies of all the shared libraries, for the same reason this is done on Windows.
You are very mistaken about the "inefficiency" of a variable-length encoding.
There is no useful string algorithm where the Nth unit of the string is "interesting" without first looking at the N-1 preceding units in order to calculate N. In that case you can replace N with the offset into the variable-length string, since this is calculated in constant time as a side-effect of looking at the earlier units.
Searching is entirely unaffected by variable-length encodings, provided they are self-synchronizing, which UTF-8 and UTF-16 are.
There is also the problem that useful "units" are not fixed-size. Normalization forms make all Unicode encodings variable-sized.
I suspect also you think UTF-16 is fixed-size, which it is not. Sorry. All Unicode code points after U+FFFF are 4 bytes, and all before it are 2. It is a "fixed sized encoding of UTF-16 code units", but it is equally valid to claim that UTF-8 is a "fixed sized encoding of UTF-8 code units".
I think you are correct that you can change Qt's default encoding, however you cannot change it to a version that does not throw exceptions on UTF-8 encoding errors. This in effect is a DOS bug (because code is rarely tested on invalid UTF-8 and thus the exceptions will be thrown unexpectedly) and due to this we are forced to wrap all conversions to QString in our own code that does a lossy but non-error-throwing conversion. This is actually very difficult because the default QString constructor is too easily called. Something that is BADLY broken however is Python, where you cannot change the encoding from the default of ASCII-only, even in Python 3. The real solution would be for them to start storing strings in UTF-8 so that errors are preserved, but Microsoft's filename api discourages that because of similar problems with it's ability to store and use UTF-16 errors.
Subpixel text rendering also needs a filtering step so that the color does not shift (imagine if the shape was such that more of it was in the red area than in the blue area). What happens is the red is made somewhat less than it should and the difference is added to the 4 nearest green and blue pixels, so the overall light is white, just concentrated at the red pixel.
However your description is basically correct. The video said he needed to add a "direction" to make subpixel filtering work, which I don't understand, as he should have been able to generate it from the same data he used to make black and white images. Possibly it is a shortcut to get the filtering at the same time. Or he may be working around Microsoft's patenting of the filtering step.
The use of the terms client/server are correct for X.
I never really saw it as being backwards. The x server is providing a service for the client, that service is to display it's output on the user's screen. Also, more importantly, the x server keeps working for other clients even if one client dies. But if the server dies the clients can't do anything. This matches how a whole lot of desktops running "email clients" and talking to a central "email server" works: it usually is ok if one of the email clients dies, but bad for all the email clients if the email server dies.
In addition wayland is using exactly the same terminology.
There is also code in development to create a "wayland network protocol"
My understanding is that the clients will just talk to a special wayland server using the same api they would use to draw locally.
There may be a "wayland network protocol" but the clients should not have to worry about which protocol is being used. Most of the current developement is to use RDP.
It supports vector graphics EXACTLY like Quartz. When you draw vector graphics, they are translated to antialiased images in a buffer by the client process. Then the system is told that that buffer contains new images. Perhaps confusing is that the first part is called "cairo" (though you can use different libraries) while the wayland developers are only concerned with the second part of communicating the buffer changes.
IRIX did not run OpenGL under X really. It did pretty much what modern DRI stuff does: you do a bunch of OpenGL calls passing X window ID's and that causes the OpenGL library to locate the piece of memory X is using for that window (at that time it was part of the dual-buffer memory for the screen) and then OpenGL draws into it. The X server has no idea what is being drawn and is not involved in this. It also does not work over the network (though they did add DGL later). Also IRIX originally used their own system (called GL) and then for a while used NeWS, and were one of the last holdouts of switching to X.
They could at least scale the ranges. Say 0-9, 10-99, 100-999, 1000-9999, etc. That would provide useful information and the same amount of obfuscation.
Most people support laws against murder because they think it will reduce the number of murders.
Yet it is obvious that murder still happens even though the laws exist.
Therefore I conclude that there should be no laws against murder! Um, wait...
Sorry, can you EXPLAIN CLEARLY how "authority to regulate the internet" leads to "providers need FCC licenses just to operate".
So far you are not impressing me with any indication you know what you are talking about.
Those regulations essentially made the internet like a telephone carriers or tv station, which would need FCC licenses just to operate.
Care to explain this, in detail with reference to the actual items in the bill?
Different charges will only benefit small business if the charge is *smaller* for them than for large established companies. If it is *larger* then it hurts small companies. There is a large bridge in Brooklyn I need to unload quickly, and anybody who believes the charge will be smaller for small businesses is probably an ideal owner, so please make an offer.
You are assuming the energy used is exactly proportional to the mass being moved.
This is false, the vast majority of the energy is to overcome wind and rolling resistance, which do not scale linearly with the mass.
Microsoft's attempt to make ODF useless was due to using ambiguity in the spec as an excuse to make something that did not work at all. If I remember right, some ODF applications would set a spreadsheet cell from the text "1" in quotes to the integer 1, while others would set it to a string containing the digit '1'. Microsoft then made some incredibly convoluted "logic" to twist this into a reasoning to not produce *either* of these possibilities, but produce a third that was not readable by anybody! They printed many "research papers" full of garbage to convince the PHBs that what they did was somehow logical and required by the laws of nature. Pure evil I think. Most of what Microsoft does that is bad is just due to incompetence and ignoring existing standards, but the attempts to defend the Word monopoly are obviously straight premeditated vileness.
I feel that in such a parallel universe the batteries being used in about 1940 would be better than the ones we have today.
Yes I think it is common for a dynamically linked executable to be used, but it has rpath set to a relative directory and it is also shipped with .so files for everything. This does mean you can often remove/rename these .so files and use the central ones. GoogleEarth for instance had an old version of Qt that did not do antialiased text, and you could fix this by simply removing their Qt so files.
Larry Niven had a version where the Earth was moved by first moving Neptune (which was easier because it is gas and the engines just floated on the top of it and the gas acted as a shock absorber so Neptune remained in one piece). They then moved Neptune near Earth and used it's gravitational attraction to move Earth.
It was not going anywhere interesting, they were trying to change the orbit to compensate for changes in the Sun.
The Bugatti also has a huge advantage that it does not have to carry the reaction mass, instead it moves next to a huge reaction mass (the earth) and pushes it backwards.
You would also have a fantastic weapon easily able to destroy large swaths of Earth's surface.
Basically if the ship is accelerating at 1g then an equal amount of momentum is being directed the opposite way. If only a small fraction of the ship's mass is being ejected then it is going to have a huge amount of energy.
You might want to study what the term "first derivative" means. Current climate change is unprecedented in the history of the earth.
In all likelihood humans ran into a system of weakened prey species (ice age anyone?) that might or might not have survived if we hadn't shown up, and we delivered the coup de grace by hunting them down.
That's what the paper says in the first paragraph of the abstract, so they agree with your idea.
But the paper just shows that the decline in the big species predates the largest number of humans. All that might mean is that humans were really efficient at killing them off, so that they were going extinct from just the actions of the first groups of humans. Humans kept arriving and reproducing even after they were extinct. There is no reason the extinction could not be caused by fewer than the maximum number of humans.
He said "Since we're pretending this isn't just a joke:" at the start, so he obviously did not think it was serious.
In countries with advanced technology there is a wire over the train tracks that provides the electricity.
| assuming magic future panel technology and losses equivalent to a petrol engine.
I see what you tried to do there. Your conclusions are wrong as this is false.
So obviously, the scenario of having fixed-format strings and having to extract something from their middle is not a useful string algorithm to you?
You can extract the center of strings using offsets. This has nothing to do with fixed-sized units.
You really missed where I said "use UCS-2"
UCS-2 is obsolete as it cannot store all of Unicode, and is not used anywhere. I might as well say "bytes can be used because I only use ISO-8859-1".
Qt doesn't explicitly throw
Looks correct, I think I was confusing this with Python. It is unfortunate that they think some perfectly valid 16-bit values are "errors" when written in UTF-8, as this prevents invalid UTF-16 from being stored, leading to the same problems on Windows that refusal to handle errors leads to the inability to use UTF-8 on Unix. If a filename can contain invalid sequences we MUST be able to specify such invalid sequences (http://qt-project.org/doc/qt-5.0/qtcore/qstring.html#fromUtf8)
Linux is a bit better for this, yes, but not good enough. Most commercial Linux software also ships with it's own copies of all the shared libraries, for the same reason this is done on Windows.
You are very mistaken about the "inefficiency" of a variable-length encoding.
There is no useful string algorithm where the Nth unit of the string is "interesting" without first looking at the N-1 preceding units in order to calculate N. In that case you can replace N with the offset into the variable-length string, since this is calculated in constant time as a side-effect of looking at the earlier units.
Searching is entirely unaffected by variable-length encodings, provided they are self-synchronizing, which UTF-8 and UTF-16 are.
There is also the problem that useful "units" are not fixed-size. Normalization forms make all Unicode encodings variable-sized.
I suspect also you think UTF-16 is fixed-size, which it is not. Sorry. All Unicode code points after U+FFFF are 4 bytes, and all before it are 2. It is a "fixed sized encoding of UTF-16 code units", but it is equally valid to claim that UTF-8 is a "fixed sized encoding of UTF-8 code units".
I think you are correct that you can change Qt's default encoding, however you cannot change it to a version that does not throw exceptions on UTF-8 encoding errors. This in effect is a DOS bug (because code is rarely tested on invalid UTF-8 and thus the exceptions will be thrown unexpectedly) and due to this we are forced to wrap all conversions to QString in our own code that does a lossy but non-error-throwing conversion. This is actually very difficult because the default QString constructor is too easily called. Something that is BADLY broken however is Python, where you cannot change the encoding from the default of ASCII-only, even in Python 3. The real solution would be for them to start storing strings in UTF-8 so that errors are preserved, but Microsoft's filename api discourages that because of similar problems with it's ability to store and use UTF-16 errors.
Subpixel text rendering also needs a filtering step so that the color does not shift (imagine if the shape was such that more of it was in the red area than in the blue area). What happens is the red is made somewhat less than it should and the difference is added to the 4 nearest green and blue pixels, so the overall light is white, just concentrated at the red pixel.
However your description is basically correct. The video said he needed to add a "direction" to make subpixel filtering work, which I don't understand, as he should have been able to generate it from the same data he used to make black and white images. Possibly it is a shortcut to get the filtering at the same time. Or he may be working around Microsoft's patenting of the filtering step.