This time it is different because automation has reached the levels when it impacts most jobs profoundly and the remaining or newly created job require more skills and deeper specialisation at the same time.
A woodworker whose job was automated cannot pick computer programming in a couple of weeks. It is just not practical.
My mother used to have the job title "comptometer operator". She, and rooms-full of her peers, spent all day driving tools like these: http://www.vintagecalculators.com/html/operating_a_comptomet... (And they - presumably - had "disrupted" the abacus-operator industry...)
It seems to me a lot like the industry category change that woodworkers, or car assembly line workers, or buggy whip makers - all experienced.
It was only a handful of generations back when the majority of humanity spent most of their time working farms to create food. That's changed radically to where way under 1% of the workforce produces all the food - and "the rest of us" do other things (like desperately trying to get people to tap more often on our little square on their smartphone screen instead of some other little square... Or more optimistically, curing cancer or the common cold...)
I think in general, humanity is better off. The optimist in me _assumes_ we'll be better off still once the robots are doing all the physical work, and the AIs are doing all the (uninteresting) mental work. There'll still be fights over who owns "the means of production", and history will inevitably repeat the Luddite movement again and again, and "the people" will resolve the inevitability of the accumulation of wealth in the pockets of the rich - either democratically via functional government and taxation and regulation, or by revolution of the masses. (And that'll happen faster than anyone expects and it'll be spectacularly unpleasant to live through - and the pessimist in me says we may well be irretrievably on our way down that path already...)
The making of the robot will produce tax revenue, however will not necessarily produce the tax revenue in the same jurisdiction. Also new wealth produced by the robot is likely to be more concentrated.
Existing tax systems burden labour more heavily, than capital. This is because capital can flee easily, but labour cannot. A dollar doesn't have a spouse, kids, parents, siblings, a social circle, it doesn't need to learn a new language or culture - it can be moved with a speed of light at a very short notice indeed. Since deploying dollars is cheaper than deploying people from the tax prospective there is a strong economic incentive to replace people with capital at workplaces.
Since Bob's productivity will increase threefold and the demand is finite it is likely Rob, Bob's mate, is going to loose his job. Now the two of them are going to compete for a single job opening and Bob will be lucky (and thankful) to stay employed with no real leverage in his salary negotiations (Rob is unemployed, lost his house and now very eager to get that job too!)
The extra profit will go mostly to the robot owner with some to the robot's inventor (although once enough people are capable of building robots the inventor will have diminishing leverage too, unless he keeps coming up with better stuff).
Then the argument goes that Rob would then become a robot inventor or a capitalist instead of working the mundane job at the widget factory. Not going to happen. He is 53, he doesn't have the capacity required and he is not going to develop on at this stage. No one is going to bet her money on Rob becoming a millionare through invention or investment or even making a decent living ever again. Rob is sad. Whenever Bob talks to Rob he is scared to loose his job to more automation.
Irish people can vote in UK elections because of the Good Friday agreement - basically ensured that Republicans originally from Northern Ireland (and therefore had British citizenship) who resided in the Republic of Ireland and Loyalists from the Republic of Ireland who lived in the UK (I don't know how many of these there are) could vote in what they believed was their own country. It's a specific agreement that helped stop The Troubles.
Regarding Commonwealth citizens - I'm not sure of the logic, but it has something to do with Britain occupying them... At any rate, these are legal loopholes and not the standard state of affairs.
> Regarding Commonwealth citizens - I'm not sure of the logic, but it has something to do with Britain occupying them... At any rate, these are legal loopholes and not the standard state of affairs.
I presume it's related to their historic status as British Subjects (which some of them will still hold, though it's been impossible to gain status as such since the 1980s), which would have granted them the right to vote in Westminster elections and referendums.
On the topic of Restraint of trade (http://en.wikipedia.org/wiki/Restraint_of_trade) clause which some companies insist on: in very few cases a company will take a former employee to court over a breach of such clause and then the company is still likely to lose the case unless the restriction was narrow, specific, reasonable. Usually there also need to be consideration (http://en.wikipedia.org/wiki/Consideration) for giving up some of the freedom of trade.
The essence of the argument here is that Java is a poor language as it doesn't offer simple abstraction to copy standard input into standard output; that Java is too verbose and low-level for the task.
The lack of direct abstraction is not a valid argument, because as a programmer, you shouldn't be writing the logic in Java, Python, C or Scala but rather a higher order domain language implemented in the chosen host language and that's what the process of programming is all about. For the majority of real world programming tasks it's unlikely that a language that fits the domain perfectly already exist, so you have to create one.
In Java one can say:
copyStream(System.in,System.out);
And then one will have to implement copyStream but only once:
long copyStream (InputStream src,OutputStream dst) throws IOException {
long bytesCopied;
byte[] buffer = new byte[8192];
int bytesRead = src.read(buffer);
while(bytesRead!=-1) {
bytesCopied+=bytesRead;
dst.write(buffer, 0, bytesRead);
bytesRead = src.read(buffer);
}
return bytesCopied;
}
I prefer programmers taking this approach of implementing domain specific language first and then expressing the logic in its terms instead of trying to express higher order concepts without resorting to available host language abstractions.
Let's say Python or Perl let one express stream copying more concisely straight out of the box. However when faced with real life programming challenges one will very quickly encounter limits of what a language can express out of the box with one-liner. But as a programmer one has the power to create one-liners from scratch!
Disclaimer: I am not a Java expert, so the code above is just to illustrate the idea based on my very limited knowledge of Java.
First, constantly having to write implementations like this introduces a ton of friction as compared with reusing existing implementations. Languages do have an influence on that.
Second, languages vary in "expressiveness," determining how much code you have to write in order to make an implementation like this. In one language, copying stdin to stdout fits into a natural idiom which also handles other cases naturally. In another language with less care for ergonomics, every task might be equally un-idiomatic.
In other words, a language can offer its own "higher order domain languages" for the core tasks that everyone is doing over and over again as part of their general programming.
Or it can choose not to do that, because what it offers is already Turing complete. But then the ergonomics are bad, and it makes a real difference.
It seems wrong that when I am paying for things like long JIT warmups and stop-the-world GC, I am still writing piles of functions with low-level idioms that are no more expressive than C's.
If Java ships with a 'copy from one stream to another' primitive then I'd find that a much more compelling argument than that I can treat myself to reimplementing things like stream copying, sorting and basic data structures on a regular basis. It's unbelievably tedious and wasteful to do this, there's just no reason.
Agree, in Java (and any other language) the main culprit is not the complexity that can eventually be abstracted away, but the trivial noise that cannot be abstracted at all: verbose class definitions, clumsy anonymous functions prior to SE8 (functors), lack of implicit interfaces, lack of infix method call notation, generic type erasure, lack of basic type inference, lack of continuations etc.
My point was that limited expression means of a language are sometimes compounded by inability of a programmer to make a good use of the expression means already available to them.
I also understand the desire for more a expressive language, I am a programmer after all. One has to keep in mind, however, that the more expressive a language is the harder it is on the reader. Java code is trivial for a reader to follow (if not for the excessive verbosity sometimes covering up the true intent); much of Scala code base, on the other hand, is not that trivial to comprehend due to the high expressiveness of the language.
The reasons why existing video services do not work for me and I've tried Google Play and Amazon Instant so far:
- Lack of on-demand high quality (true 1080) option: Google Play is 480 and Amazon Instant is blurry on a big screen. Besides Amazon states in their TOC that they can change quality as they see fit at the time of a video being played.
- Insistence on specific playback tech. Amazon Instant mandates Silverlight and the playback is choppy on my media centre PC due to Silverlight's graphic acceleration issues.
- Lack of audio track (and often subtitle) options: in UK that's English only. I want to be able to watch films dubbed and have a selection of translations that are already available.
More generally I am opposed to the prepackaged nature of the paid service offered and lack of control over how and what I can watch.
Some alternative ways of viewing the content offer me great choice and full control over:
1. Title I choose to watch.
2. Video quality.
3. Audio quality.
4. Audio track.
5. Subtitles.
6. Streaming vs. download, so I can make the best use of my connection.
7. Hardware and software I am using for viewing.
In other words these matters are decided based on demand, instead of someone's opinion of what the demand should be.
Lack of on-demand high quality (true 1080) option: Google Play is 480 and Amazon Instant is blurry on a big screen. Besides Amazon states in their TOC that they can change quality as they see fit at the time of a video being played
I believe Google Play does offer up to 1080p [1] - most of the TV shows and movies that I've watched on there are either 720p or 1080p. I am in the US, so perhaps that is different in the UK.
My biggest beef with both Netflix / Google / Amazon is not the video resolution, which is almost always HD for me. The problem is the lack of multi-channel surround sound. It is pretty hit or miss which tv shows, or movies, have surround sound - on all of the services.
"Purchase" doesn't quite reflect modern TOC, I believe the more exact term would be "pay a premium for a longer term license to view video content that is revokable at vendor's will; neither continued availability nor immutability of the initially licensed content is guaranteed".
I would really prefer to pay per view instead and retain a high degree of control over my hardware and software configuration as well as having a reasonable choice of options in terms of video quality, various subtitles and audio tracks.
Ideally I'd be able to buy audio track or subtitles separately to combine with the video content for viewing (plug-in), then there would be a robust market of competing translations.
Since water reaches its peak density at about 4 °C, the actual outcome will vary slightly depending on the initial and the final temperature of the water once the ice has melted.
I think that the standard form of this question assumes that the water+ice is initially at 0°C, so that there's no net warming of the water, only latent heat of melting.
Conversely, one could compute what relative volumes of ice and water would be required to arrive at a final temperature above 0°C. It's also possible (actually: likely) for ice to start at some temperature below 0°C, typically around -12°C for home refrigerator/freezer units.
So let's say we're starting with room-temperature water at 22°C, ice at -12°C, and a ratio of 50-50 water to ice, 100g total.
Latent heat of fusion for water is 80 cal/g, and latent heat is 1 cal/g.
We're heating 50g of ice by 12°C and then melting it. Additional heat, if necessary, is drawn from the environment.
The ice absorbs 200,000 calories.
Subtracting 200,000 calories from the 50g of water would cool it by 4000°C, not counting heat of fusion, or would pretty much freeze all of it solid, if we do. Or conversely, the water can release at most 1100 calories of heat energy before freezing. Working backwards, we find that our 50g of water would require only 12g of ice to cool it to 0°C, or a ratio of roughly 1g ice to 4.2g water.
No it wouldn't. The outcome will be the same regardless of the temperature, given the context of this problem. And the context is that the ice cubes are FLOATING, and that the temperature is hot enough for the ice to melt.
spindritf, not necessarily, we don't know the initial temperature of the water and on a hot day (as per the problem statement) the ice-water system will be absorbing some of the external energy.
In practical world, more likely that water will start at around 20-25°C mark and will be considerably cooler once the ice has melted but still above 4°C. So the water volume is likely to shrink a tiny bit due to the rising density and then some more due to ice and water evaporation.
But the effect might be barely noticeable and for some time water will stay level with the edges after ice melted.
The result of ice + water depends on the quantities and starting temperatures of both. You could have very cold ice in water resulting in freezing the entire volume. Or small amounts of warm ice in water resulting in water well above the freezing point.
This list is a sign of a viable business if anything else. Any company needs to stay forever young by keeping its offerings in line with the demand. Companies that fail are the ones that choose to ignore the reality.
I believe this still to be a very good advice and applies to both sexes. In family life circumstances when a household must depend only on a single source of income are abound. Families where each participating adult can provide a basic standard of living for the entire family in times of need are much stronger financially.
A woodworker whose job was automated cannot pick computer programming in a couple of weeks. It is just not practical.