If I would have known that I could obtain a bachelors degree in only 3 years... oh wait, I already did that by doing 18-21 credit hours a semester instead of the usual 12, otherwise known as benefitting from the fact that credits per dollar in that range reduced the cost of my education. Silly me for caring about my education's cost instead of viewing it as a time to goof off.
It took me almost 8 years to get my BSCS - there was learning the language and that thing about working for a living, flipping burgers and driving forklifts, studying full-time when possible, but then switching to part-time because trying to do both - study and work - full time eventually burns you out.
Sears.com is, bar none, the most crufty and crappy e-commerce site I have ever seen.
You should check out Rakuten.
Surprisingly, e-commerce in Japan is not as advanced as in the US. Actually, when I used to visit my in-laws in Yokohama (last trip in 2012), I was surprised at how scarce wifi spots were in the Tokyo/Yokohama area.
It's just how people use technology over there. They stream and watch TV OTA with their phones, so no need for WIFI. Plus, there is very little need for customers to buy things online.
Unlike us, people in Japan (at least in the Tokyo area which is what I know) do not live in isolated suburbs or condo canyons. There is always a store of sorts a block away. If you do not have a pharmacy on the first floor at the building where you live, you have a grocery store, or an electronics store or whatever. And if you do not have one, the building across the street does. Moreover, every major subway/train hub has a mall or commerce center.
And this is the kick. Almost every store of any type does delivery service. Buy your grocery stores or whatever and pay a nominal fee, and voila, someone will deliver it to you.
If we had such a thing here, such a widespread way of making commerce, my wife and I wouldn't be relying on Costco delivery services or Amazon Prime, nor would I had to juggle to buy home repair supplies to be delivered to the Home Depot or Lowes store closest to my home or work.
Walmart doesn't need to turbo charge its commerce site. It needs to rewrite it? Have you tried searching for something in its online catalog? It's like a trip to Altavista circa 1995.
How about creating a new TCP/IP "do not copy" security bit, similar to the evil bit in RFC 3514?
That's one hell of an Achilles' heel in that it assumes every single hop (intended or otherwise) will obey it. Without dedicated VPNs or air gaps, you cannot prevent copying. So the only alternative is end-to-end Layer 6/7 confidentiality, integrity and non-repudiation (and availability but only if the first three are met.)
Why do you need an update for your tv if you don't use any of the features. Remember: If it ain't broke, don't fix it.
Firmware updates for its NIC and wifi adapter, updates for the software drivers it use for its USB and HDMI ports, software updates for other functions such as its function to scan available OTA channels. The fact that I do not use it to stream over the internet does not mean there aren't other useful functions.
Moreover, it's not like I avoid connecting to the internet with it for security reasons (there is more tin foil than reason in this topic). It was more that Samsung SmartTV interface sucked a bit for streaming, Roku was/is much better, and that there is no reason to lease an IP to a device (the TV) if it is not going to use it.
> I only let it connect to the network when I want to download updates for it.
At which point it uploads all the data it's been storing whilst waiting for the network to eb available.
What data could it possibly be passing? The OTA channels I watch on occasion? It is almost certain that it is not passing the credentials I use to log in to the high speed modem I use. I don't stream through it, and unless the TV can by some sort of magic parse and build intelligence through the data it receives from the roku stick via the HDMI port, what does it have? What it could possibly have that I should probably be concerned about. At this point these aren't security concerns but hand-wavings.
For those of you playing at home those are taxes that disproportionately impact the poor, working poor and (in this case) working class. They're worth double points because not only do you get to use money to fund tax cuts on the 1% but the people you tax get angry and start demanding tax cuts; which you can oblige with even _more_ tax cuts for the 1%. Uncle Rove calls this "Starve the Beast".
How is this different from driving an 18-wheeler full of nitrate in the middle of Manhattan, Downtown LA or Miami/Brickell Financial District in the middle of rush hour?
You don't even a big truck full of explosive among a shitload of traffic. The Oklahoma City Bombing was carried out with a parked Ryder rental truck, parked right in front of a building. Go google the pictures.
Anything related to transportation or public spaces can be susceptible to car bombing. If we let that concern stop us from building infrastructure or explore ideas, fuck man, let's build our own castles surrounded my moats and communicate with pigeons or smoke signals. It's the only way to be sure.
You have the expense of laying track, plus the expense of producing a very small number of these extremely specialized vehicles. Why not lay track and run a mass-produced light rail train or streetcar on it instead?
The Chinese government does not operate on simple premises of saving money. They are willing (and are capable) to run projects on the red for decades if they believe it is necessary to accommodate change or boost economic output. Just look at all the infrastructure projects connecting Shenzhen, Guangzhou and all the other metropolis in the Pearl River Delta (I don't remember where I saw it that the infrastructure will run in red for two decades.)
And how about the planned Jing-Jin-Ji megapolis (and I know people in the west laugh at China, all too willing to forget how they used to laugh at Japan in the 60's.)
Every once in a while we see similar willingness in the US to undertake projects that run on red for a while, but which end up giving a greater ROI. The Florida Turnpike is a good example.
Infrastructure pays. It almost always does. The Chinese are being very bold about it (and they can afford a loss or two). Their long term vision and investment will pay. Mark my words.
Actually, the US does a decent job of keeping its data relatively secure, when compared to some other countries...granted, you have to allow that the government will snoop on it all, but that might not be as bad as having another government snoop on all your data.
Of course, there are notable exceptions. I'd trust Google with my data, but not Microsoft.
Hillary's e-mail server (no, I'm not a Trump fan.) Security matters shit if processes aren't followed. God knows what other snafus exists that we do not know of.
I think it is a good start, but you also need to be careful that your data doesn't pass through outside networks before getting to your home. For example, when I get a page from slashdot, it may travel around the world and back again to get into my computer. we need ways to keep control of which paths the datas take.
Without guaranteed air gaps, the required levels confidentiality or access control cannot be achieved by anything present in the OSI/IP model unless we start using VPNs, WS-Security or some other complex mechanism.
That might be the way to go (the only way to go) for the Canadian government if it wants to implement such requirements. Talking about them and making the requirements available to the public is a good start. Better than trying to concoct the requirement in secret and come up with a shitty implementation that leaks like a colander.
You cannot abstract the reality of remote resources.
Do you have an example or scenario?
The internal guts of an access coordinator could "watch" the timing of requests to know to batch operators together, for example.
Also, one could tell the abstraction how important "recency" is, such as whether it's okay to delay actual writes or not. Perhaps a delay threshold in seconds can be given.
In other words, the abstraction can "ask" one to rank the relative importance of performance-related factors so as to select the best internal or vendor-specific implementation choices to fit the trade-off profile given to it.
That may be difficult or impractical to fully implement, but not necessarily impossible in terms of abstracting away details.
Sometimes a DBA will ask me whether to optimize a database or table for quick writing or quick querying, or an in-between balance. I usually don't have to really know how the DBA does that, only give him/her my or my boss's preference.
Perhaps the existence of performance trade-offs cannot be hidden away, but the implementation of those choices largely can.
You are providing counter-examples that are very constrained by nature. I'm referring to general cases of remote resources.
In particular we are referring to the case of executing a predicate on a sequence of remote resources (specifically a sequence of database rows matching some criteria.)
I didn't think I have to make it clearer, but I guess I have to. Very specifically I was referring to general abstractions. Why? Because executing a predicate on a sequence of remote resources is, typically very specific to a domain.
So any such abstraction must be custom build for that domain. And that's the Achilles's Hell for ActiveRecord and ORMs in general.
ActiveRecord, and ORMs in general fail at this. You have to go up so up in the domain model to create an appropriate abstraction. The abstraction has to be custom-build to a domain and the nature of it will change according to the relations in the database.
ActiveRecord and ORMs sit at a much lower level of abstraction, a level that makes it impossible to efficiently abstract out remoteness in the general case.
And when such low-level abstractions provide a way to iterate remote resources as if they were local sequences, that's a failure, that is the wrong abstraction. There is a reason why people come with things like Map/Reduce, futures, batched sql statements or even the old (but still useful) technique of encapsulating execution of predicates on relations within stored procedures.
A plane that is not susceptible to jamming (as current drones can be). Until you solve the jamming problem, you will need a pilot making the decision making (which is not mutually exclusive to drone R&D and deployment.)
Aren't abstractions supposed to hide the need for specialized knowledge?
Not all abstractions are correct. You cannot abstract the reality of remote resources. And your abstractions should be related to your domain model, not on treating remote resources as if they were a local array of things. I suggest you google "Fallacies of Distributed Computing".
One should only have to ask it to "save",
This level of abstraction is correct (but only if the abstraction has been developed properly).
and the details of how to talk to the database should then be hidden away from the abstraction user.
Define "talk". If the abstraction lets you iterate a set of remote resources as if they were a local array without regard to bandwidth or latency, then the abstraction is poorly written and of an amateurish quality.
Systems that talk to a database (even if the database is a co-located process) are in essence distributed systems. And successful distributed systems know when to hide remoteness (or when to force developers to cope with it.)
Don't take it the wrong way, but that answer of yours would come as a deal breaker in an interview.
The problem was that the database was hidden behind ActiveRecord, so it was easy to forget we were using a database at all. Writing a for loop to search for a record that matched some criteria felt natural, because our interface was with objects, not the underlying tables.
This problem is not unique to Ruby on Rails usage of the ActiveRecord pattern. People blindly using Hibernate and other ORMs run into the same thing, and it is, in general, what happens when people fall for one or more of the fallacies of distributed computing ("latency is zero" and "bandwidth is infinite".)
ActiveRecord pattern provides a theoretically pleasing abstraction, that is OK when accessing one row out of a relation. Trying to operate on a set of relations, as if they were a locally maintained collection however, that's where you hit the problems you mentioned.
Without some clever caching planned up front, your resources are always remote and not everything is supposed to fit an object-oriented model. Projects turn to shit when they forget these general rules.
Yet when it's hooked up via HDMI, DisplayPort, USB-C (Thunderbolt or not), it can get a network connection if the host device gives it one.
I intentionally set my Smart TV network settings to a non-existing IP address on my local network. That way I drive it to the ground. I only let it connect to the network when I want to download updates for it.
I stream to it via a roku stick that connects to it via HDMI, with the stick connecting and logging in my local network. The Smart TV doesn't get a connection at all.
For a closed box like an AppleTV or a PlayStation or a BluRay player, how would you ever fucking know?
Packet sniffing. Oldest trick in the book (though obviously not something feasible for the general consumer.)
Is this a joke???
JavaScript is a SCRIPTING Language, not a PROGRAMMING language.
In 20 years of doing this shit for a living (C/C++, VB, FoxPro, Java, C#, Python, Assembly, etc.) I have never heard such a ridiculous distinction. JavaScript can be run as a scripting language, standalone or embedded just as Python, Ruby, Lua, Erlang or Bash. And unlike Bash (and like Python, Ruby, Lua and/or Erlang), it is also used to build full-blown stand-alone systems.
Scripting is just a programming facet or capability. What a ridiculous and unheard of dichotomy you have there buddy.
Javascript, OK. PHP yes, and Java Yes. How the hell is CSS a programming language?? Is a conf file a language? If writing a document (like HTML) is a language, then Excel is probably the most popular, followed by MS Word.
I do think CSS and Excel (and to a point, HTML) are programming languages, but only as very domain specific ones. I never grasped that Excel was indeed a DSL until I got familiar with Fowler's book and writings on the subject. Excel is the only one that could stand on its own whereas CSS and HTML are just declarative non-turing-complete DSLs for configuration and rendering.
So I don't have an issue seeing CSS and HTML as programming languages (albeit with extremely narrow applications.)
I do agree with you in having a list that combines general purpose turing complete programming languages with narrow-field DSLs. It's like making a list of artillery pieces and bayonets and sorts them in order of popularity.
I've mainly found only jobs for C. Because I look for Linux kernel and RTOS jobs.
This. I simply call bullshit on the upper-OP claim that nobody hires for C anymore. I mean shit, were I work, we hire for C (and C++ and Java, depending on the product.) People don't realize how much C is around us. Thermometers, thermostats, controllers. Anything with a PIC or AVR processor most likely runs something written in C.
Not to mention, as you said, jobs in kernel and RTOS development.
And how much should internet service cost? I was paying $80 per month for 40 Mbps down but only ever getting 20 and often getting about 2. As it turned out, they were willing to lower my bill to about $35 per month and no doubt they're still making a profit. So where was that extra $45 going?
And of course, they still aren't providing more than 20Mbps down.
the only words any ISP I've ever had seem to understand are "I want to cancel my service." That's the only time they pay attention to anything.
This depends on the area. I get 40Mbps for $49.00. I might downgrade because we rarely watch HD.
If I would have known that I could obtain a bachelors degree in only 3 years... oh wait, I already did that by doing 18-21 credit hours a semester instead of the usual 12, otherwise known as benefitting from the fact that credits per dollar in that range reduced the cost of my education. Silly me for caring about my education's cost instead of viewing it as a time to goof off.
It took me almost 8 years to get my BSCS - there was learning the language and that thing about working for a living, flipping burgers and driving forklifts, studying full-time when possible, but then switching to part-time because trying to do both - study and work - full time eventually burns you out.
Good for you, though.
Sears.com is, bar none, the most crufty and crappy e-commerce site I have ever seen.
You should check out Rakuten.
Surprisingly, e-commerce in Japan is not as advanced as in the US. Actually, when I used to visit my in-laws in Yokohama (last trip in 2012), I was surprised at how scarce wifi spots were in the Tokyo/Yokohama area.
It's just how people use technology over there. They stream and watch TV OTA with their phones, so no need for WIFI. Plus, there is very little need for customers to buy things online.
Unlike us, people in Japan (at least in the Tokyo area which is what I know) do not live in isolated suburbs or condo canyons. There is always a store of sorts a block away. If you do not have a pharmacy on the first floor at the building where you live, you have a grocery store, or an electronics store or whatever. And if you do not have one, the building across the street does. Moreover, every major subway/train hub has a mall or commerce center.
And this is the kick. Almost every store of any type does delivery service. Buy your grocery stores or whatever and pay a nominal fee, and voila, someone will deliver it to you.
If we had such a thing here, such a widespread way of making commerce, my wife and I wouldn't be relying on Costco delivery services or Amazon Prime, nor would I had to juggle to buy home repair supplies to be delivered to the Home Depot or Lowes store closest to my home or work.
Walmart doesn't need to turbo charge its commerce site. It needs to rewrite it? Have you tried searching for something in its online catalog? It's like a trip to Altavista circa 1995.
How about creating a new TCP/IP "do not copy" security bit, similar to the evil bit in RFC 3514?
That's one hell of an Achilles' heel in that it assumes every single hop (intended or otherwise) will obey it. Without dedicated VPNs or air gaps, you cannot prevent copying. So the only alternative is end-to-end Layer 6/7 confidentiality, integrity and non-repudiation (and availability but only if the first three are met.)
What limits are relevant in this case?
A limit in not DDOSing someone else's internet presence just for shit and giggles?
Why do you need an update for your tv if you don't use any of the features. Remember: If it ain't broke, don't fix it.
Firmware updates for its NIC and wifi adapter, updates for the software drivers it use for its USB and HDMI ports, software updates for other functions such as its function to scan available OTA channels. The fact that I do not use it to stream over the internet does not mean there aren't other useful functions.
Moreover, it's not like I avoid connecting to the internet with it for security reasons (there is more tin foil than reason in this topic). It was more that Samsung SmartTV interface sucked a bit for streaming, Roku was/is much better, and that there is no reason to lease an IP to a device (the TV) if it is not going to use it.
> I only let it connect to the network when I want to download updates for it.
At which point it uploads all the data it's been storing whilst waiting for the network to eb available.
What data could it possibly be passing? The OTA channels I watch on occasion? It is almost certain that it is not passing the credentials I use to log in to the high speed modem I use. I don't stream through it, and unless the TV can by some sort of magic parse and build intelligence through the data it receives from the roku stick via the HDMI port, what does it have? What it could possibly have that I should probably be concerned about. At this point these aren't security concerns but hand-wavings.
For those of you playing at home those are taxes that disproportionately impact the poor, working poor and (in this case) working class. They're worth double points because not only do you get to use money to fund tax cuts on the 1% but the people you tax get angry and start demanding tax cuts; which you can oblige with even _more_ tax cuts for the 1%. Uncle Rove calls this "Starve the Beast".
I doubt the poor stream off Netflix.
You don't even a big truck full of explosive among a shitload of traffic. The Oklahoma City Bombing was carried out with a parked Ryder rental truck, parked right in front of a building. Go google the pictures.
Anything related to transportation or public spaces can be susceptible to car bombing. If we let that concern stop us from building infrastructure or explore ideas, fuck man, let's build our own castles surrounded my moats and communicate with pigeons or smoke signals. It's the only way to be sure.
You have the expense of laying track, plus the expense of producing a very small number of these extremely specialized vehicles. Why not lay track and run a mass-produced light rail train or streetcar on it instead?
The Chinese government does not operate on simple premises of saving money. They are willing (and are capable) to run projects on the red for decades if they believe it is necessary to accommodate change or boost economic output. Just look at all the infrastructure projects connecting Shenzhen, Guangzhou and all the other metropolis in the Pearl River Delta (I don't remember where I saw it that the infrastructure will run in red for two decades.)
And how about the planned Jing-Jin-Ji megapolis (and I know people in the west laugh at China, all too willing to forget how they used to laugh at Japan in the 60's.)
Every once in a while we see similar willingness in the US to undertake projects that run on red for a while, but which end up giving a greater ROI. The Florida Turnpike is a good example.
Infrastructure pays. It almost always does. The Chinese are being very bold about it (and they can afford a loss or two). Their long term vision and investment will pay. Mark my words.
Actually, the US does a decent job of keeping its data relatively secure, when compared to some other countries...granted, you have to allow that the government will snoop on it all, but that might not be as bad as having another government snoop on all your data.
Of course, there are notable exceptions. I'd trust Google with my data, but not Microsoft.
Hillary's e-mail server (no, I'm not a Trump fan.) Security matters shit if processes aren't followed. God knows what other snafus exists that we do not know of.
They said nothing about "transport", just "storage". Nobody would store bytes passing through inter-web pipes for free, right?
If you can "transport" it, you can "store" it. To prevent storage, the Canadian government would have to employ some sort layer 7 end-to-end security.
I think it is a good start, but you also need to be careful that your data doesn't pass through outside networks before getting to your home. For example, when I get a page from slashdot, it may travel around the world and back again to get into my computer. we need ways to keep control of which paths the datas take.
Without guaranteed air gaps, the required levels confidentiality or access control cannot be achieved by anything present in the OSI/IP model unless we start using VPNs, WS-Security or some other complex mechanism.
That might be the way to go (the only way to go) for the Canadian government if it wants to implement such requirements. Talking about them and making the requirements available to the public is a good start. Better than trying to concoct the requirement in secret and come up with a shitty implementation that leaks like a colander.
Do you have an example or scenario?
The internal guts of an access coordinator could "watch" the timing of requests to know to batch operators together, for example.
Also, one could tell the abstraction how important "recency" is, such as whether it's okay to delay actual writes or not. Perhaps a delay threshold in seconds can be given.
In other words, the abstraction can "ask" one to rank the relative importance of performance-related factors so as to select the best internal or vendor-specific implementation choices to fit the trade-off profile given to it.
That may be difficult or impractical to fully implement, but not necessarily impossible in terms of abstracting away details.
Sometimes a DBA will ask me whether to optimize a database or table for quick writing or quick querying, or an in-between balance. I usually don't have to really know how the DBA does that, only give him/her my or my boss's preference.
Perhaps the existence of performance trade-offs cannot be hidden away, but the implementation of those choices largely can.
You are providing counter-examples that are very constrained by nature. I'm referring to general cases of remote resources.
In particular we are referring to the case of executing a predicate on a sequence of remote resources (specifically a sequence of database rows matching some criteria.)
I didn't think I have to make it clearer, but I guess I have to. Very specifically I was referring to general abstractions. Why? Because executing a predicate on a sequence of remote resources is, typically very specific to a domain.
So any such abstraction must be custom build for that domain. And that's the Achilles's Hell for ActiveRecord and ORMs in general.
ActiveRecord, and ORMs in general fail at this. You have to go up so up in the domain model to create an appropriate abstraction. The abstraction has to be custom-build to a domain and the nature of it will change according to the relations in the database.
ActiveRecord and ORMs sit at a much lower level of abstraction, a level that makes it impossible to efficiently abstract out remoteness in the general case.
And when such low-level abstractions provide a way to iterate remote resources as if they were local sequences, that's a failure, that is the wrong abstraction. There is a reason why people come with things like Map/Reduce, futures, batched sql statements or even the old (but still useful) technique of encapsulating execution of predicates on relations within stored procedures.
What plane needs a pilot anymore?
A plane that is not susceptible to jamming (as current drones can be). Until you solve the jamming problem, you will need a pilot making the decision making (which is not mutually exclusive to drone R&D and deployment.)
We are beginning to go down the same road as Japan has. It's the economy, stupid.
Aren't abstractions supposed to hide the need for specialized knowledge?
Not all abstractions are correct. You cannot abstract the reality of remote resources. And your abstractions should be related to your domain model, not on treating remote resources as if they were a local array of things. I suggest you google "Fallacies of Distributed Computing".
One should only have to ask it to "save",
This level of abstraction is correct (but only if the abstraction has been developed properly).
and the details of how to talk to the database should then be hidden away from the abstraction user.
Define "talk". If the abstraction lets you iterate a set of remote resources as if they were a local array without regard to bandwidth or latency, then the abstraction is poorly written and of an amateurish quality.
Systems that talk to a database (even if the database is a co-located process) are in essence distributed systems. And successful distributed systems know when to hide remoteness (or when to force developers to cope with it.)
Don't take it the wrong way, but that answer of yours would come as a deal breaker in an interview.
The problem was that the database was hidden behind ActiveRecord, so it was easy to forget we were using a database at all. Writing a for loop to search for a record that matched some criteria felt natural, because our interface was with objects, not the underlying tables.
Object-Relational Impendance Mismatch
Law of Leaky Abstractions
This problem is not unique to Ruby on Rails usage of the ActiveRecord pattern. People blindly using Hibernate and other ORMs run into the same thing, and it is, in general, what happens when people fall for one or more of the fallacies of distributed computing ("latency is zero" and "bandwidth is infinite".)
ActiveRecord pattern provides a theoretically pleasing abstraction, that is OK when accessing one row out of a relation. Trying to operate on a set of relations, as if they were a locally maintained collection however, that's where you hit the problems you mentioned.
Without some clever caching planned up front, your resources are always remote and not everything is supposed to fit an object-oriented model. Projects turn to shit when they forget these general rules.
Some of the comments in this story give me the impression half of slashdot members have no fucking clue how networks operate.
Yet when it's hooked up via HDMI, DisplayPort, USB-C (Thunderbolt or not), it can get a network connection if the host device gives it one.
I intentionally set my Smart TV network settings to a non-existing IP address on my local network. That way I drive it to the ground. I only let it connect to the network when I want to download updates for it.
I stream to it via a roku stick that connects to it via HDMI, with the stick connecting and logging in my local network. The Smart TV doesn't get a connection at all.
For a closed box like an AppleTV or a PlayStation or a BluRay player, how would you ever fucking know?
Packet sniffing. Oldest trick in the book (though obviously not something feasible for the general consumer.)
Is this a joke??? JavaScript is a SCRIPTING Language, not a PROGRAMMING language.
In 20 years of doing this shit for a living (C/C++, VB, FoxPro, Java, C#, Python, Assembly, etc.) I have never heard such a ridiculous distinction. JavaScript can be run as a scripting language, standalone or embedded just as Python, Ruby, Lua, Erlang or Bash. And unlike Bash (and like Python, Ruby, Lua and/or Erlang), it is also used to build full-blown stand-alone systems.
Scripting is just a programming facet or capability. What a ridiculous and unheard of dichotomy you have there buddy.
Javascript, OK. PHP yes, and Java Yes. How the hell is CSS a programming language?? Is a conf file a language? If writing a document (like HTML) is a language, then Excel is probably the most popular, followed by MS Word.
I do think CSS and Excel (and to a point, HTML) are programming languages, but only as very domain specific ones. I never grasped that Excel was indeed a DSL until I got familiar with Fowler's book and writings on the subject. Excel is the only one that could stand on its own whereas CSS and HTML are just declarative non-turing-complete DSLs for configuration and rendering.
So I don't have an issue seeing CSS and HTML as programming languages (albeit with extremely narrow applications.)
I do agree with you in having a list that combines general purpose turing complete programming languages with narrow-field DSLs. It's like making a list of artillery pieces and bayonets and sorts them in order of popularity.
You are either transparent, or you aren't.
I've mainly found only jobs for C. Because I look for Linux kernel and RTOS jobs.
This. I simply call bullshit on the upper-OP claim that nobody hires for C anymore. I mean shit, were I work, we hire for C (and C++ and Java, depending on the product.) People don't realize how much C is around us. Thermometers, thermostats, controllers. Anything with a PIC or AVR processor most likely runs something written in C.
Not to mention, as you said, jobs in kernel and RTOS development.
And how much should internet service cost? I was paying $80 per month for 40 Mbps down but only ever getting 20 and often getting about 2. As it turned out, they were willing to lower my bill to about $35 per month and no doubt they're still making a profit. So where was that extra $45 going?
And of course, they still aren't providing more than 20Mbps down.
the only words any ISP I've ever had seem to understand are "I want to cancel my service." That's the only time they pay attention to anything.
This depends on the area. I get 40Mbps for $49.00. I might downgrade because we rarely watch HD.