Let me dust of the old astronomy degree here...
The science that "inspired" this article is probably fine. But, the article is crap.
For years, MS has exposed control of the OS through the browser. This just formalizes the arrangement.
Well, if it's going to cost your organization a lot to move to IP6, then I guess it sucks to be you. Anyone even remotely involved in IT has known, for a decade or so, that this was coming sooner or later, and if you're so far behind that it's going to cost you a ton of money to make the switch, then CLEARLY, your organization has had it's head in the sand, and has been willfully ignoring what everyone else knew was coming. If the expense of switching is going to ruin your business, then good riddance, I say. That's not "survival of the fittest", it's just "survival of the not completely brain dead".
In addition, your figure of trillions is ridiculous. You're off by many orders of magnitude. There is absolutely no way in hell it's going to cost everyone on the planet $1000 or more to switch to IP6. I don't know where you're getting that figure, but please put it back wherever it came from.
Everyone needs to decide on an IP6 go live date, and an IP4 shutoff date, that's VERY soon afterward. If we let people get by with IP4 for too long, they'll just bitch and whine, and insist there's no money to make the switch, etc., and drag their feet, and complain about not being able to get to IP6 only addresses. Bite the bullet and switchover, please. Let's get this done and get back to work.
Yes, you're right. I haven't worked with it much. But I remember it as being a pretty good design. I didn't say all DSLs were unnecessary, or bad.
Sorry. I have to disagree with you completely. No user defined libraries... only rudimentary argument passing between scripts, needing to use the API to access list elements, no arrays. Come on! It's a horribly-designed language, even for animating link sets. You can't even smootly animate prims with it, without making them physical. And the main problem is, that there's nothing else you can use to automate anything in SL EXCEPT for LSL. Yes, people try to write complex things that LSL wasn't designed for, but it's not because they don't understand it's limitations, it's because it's the only option. So, if anything, you've just proven my point. They developed an in-house language, and it miserably failed to meet the needs of it's users. How is that a well-designed language, exactly?
The issue is, that the problem domain was NOT well-understood by the designers. They thought they understood what people would need to automate in SL, and they were VERY wrong. Had they used lua, python, perl, scheme.. hell, ANYTHING else, they'd have done a better job. This is a case where the designers thought they could write a language from scratch, and they failed miserably. Anyone who's designed a DSL from scratch knows that people will push the boundary of the original intention. It's the designer's job to anticipate what the users want and need. I still call this an epic fail at Linden Labs.
And, yeah, I've done a lot work with microcontrollers, and cut my programming baby teeth on 6502 assembly. I know about "programming in the small".
This is an excellent list. I was self-taught from the age of about 12, and thought I was an excellent programmer until I was about 25. Having earned BS and MS degrees in Astronomy and Mathematics, I'd written a fair number of programs, and had a decent command of about 7 languages. Then I went to graduate school for Computer Science. And I found out that my knowledge was SEVERELY lacking, both in breadth and in depth. How much of my missing knowledge was relevant to day-to-day programming tasks? Well, perhaps not surprisingly, not much. However, when I come across some issue where my CS education is useful, it's HUGELY useful, and enables me to tackle a problem in far less time, and most importantly, implement a correct solution. It also lets me know when I need to turn over a portion of a project to a specialist. In other words, I'm now more aware of the things that will become a time sink, and increase uncertainty if I attempt them. This ability to do "project triage" is one of the benefits of a well-rounded CS education.
I think that this is the main reason that you'll hear a lot of people say that a university CS education isn't very useful. For about 98% of the things you work on, it really doesn't make you any better than someone who's self-taught. But that remaining 2%... it can mean the difference between blowing months of time on a crappy solution to a problem, or knowing how to put a good one together in a few days time. So, on the whole, a Uni education can make you a far better programmer, even though you won't necessarily find yourself pulling tricks out of your Uni bag every day.
As an example I'll add my 2 cents about only one of the topics mentioned above: Programming Languages. There are many cases where programmers try to develop a "simple" scripting language for embedding in an application. This is one thing that very few people (even uni-educated) should attempt. Proper language design and parsing is VERY difficult, and there are at least a half-dozen well-designed scripting languages that can be literally dropped in to an application with almost no effort when compared to the complexity of rolling your own. And yet, we see time and time again, people attempting to write one from scratch. One of the worst examples I can think of off the top of my head is LSL (Linden Scripting Language), used in Second Life. It's an absolute nightmare of a language. And yet, it made it into a large-scale product like Second Life.
There ARE many cases where a domain-specific language (DSL) can be incredibly useful, especially when the language does not need to be a general-purpose one. In my experience, it's rare for a programmer (no matter how their skills were gained), to create a good DSL without a strong grasp of at least a dozen programming languages or so. University-educated programmers tend to be a better judge of whether they are up to the task of designing and/or implementing a language(at least, after they've tried their hand at it once or twice).
If a sheet of glass 15 to 30 atoms thick breaks, I'd expect it to be extremely hazardous to clean up. The pieces would be incredibly sharp.
Others have mentioned "Flatland" by Edwin Abbott, which I also strongly recommend.
"Geometry, Relativity, and the Fourth Dimension" by Rudolf Rucker should be accessible to a high school student. It revisits Flatland, so that's probably a good book to read first.
"The Drunkard's Walk: How Randomness Rules Our Lives" by Leonard Mlodinow is an easy and entertaining read, and talks about how human intuition is often wrong when making probability estimates.
"Knotted Doughnuts" by Martin Gardner is a compilation of brain-teasers from Scientific American. Gardner has published several of these collections, but this is my favorite.
A bug in the code is worth two in the documentation.