The trouble with "P2P" in its present form is that the topology is designed to evade copyright, not minimize bandwidth. Peering nodes aren't necessarily near each other. You can, and do, get situations where the same content traverses the same backbone paths multiple times. There's no end user penalty for having faraway peers, but it generates
unnecessary load.
Reminds me of, many years ago, watching two coal trains passing each other in opposite directions. You don't see that kind of stupidity any more. Somewhere a trader will do a swap, rather than physically shipping the commodity around.
Netnews does this right, assuming you want a broadcast system. Netnews was designed for slow links and bandwidth minimization. As I point out occasionally, Netnews could easily handle the entire audio output of the RIAA, which is only a few gigabytes per day, using far less bandwidth than the present "P2P" systems.
What will work is ISP-level caching. AOL does this, although in a somewhat annoying fashion. In a different way, so does Akamai. We'll probably see more of that.
The killer app, sadly, is probably going to be DRM. Look for some scheme where the encrypted video goes from the network port to the display without the bits ever being accessible from a user-programmed CPU. We already have Microsoft's scheme where video and audio are pumped around within the operating system kernel without ascending to the application level. Look for that to go entirely into a single IC.
Disney, for some years, had a specific division devoted to producing crap sequels: DisneyToons. This is the outfit that produced The Lion King 1½, Bambi II, Mulan 2, and similar bad sequels, to milk the last remaining revenue from the franchise.
It wasn't a huge moneymaker, and was running down the value of the Disney brand. So that operation was shut down when Disney bought Pixar. The Aristocats II, Pinocchio II and Dumbo II were all canceled, to the great disappointment of nobody.
This last line extension for Star Dreck sounds like something that would have come from DisneyToons at their worst. This is not a good thing.
Just recently, support for Python's connection to MySQL, "MySQLdb", stopped working on Windows.
See this discussion in the MySQLdb help forum on SourceForge.
Unlike Perl and PHP, the standard Python distribution doesn't support MySQL. There's a third-party add-on on SourceForge for that. It has one developer, and he's not interested in maintaining the Windows version. The Python 2.5 update apparently broke the Windows build.
Some help is being provided by a World of Warcraft guild, which has managed to build MySQLdb for Windows. But that hasn't been tested by anyone else.
Also, although the current MySQL understands Unicode, and the current Python understands Unicode, the MySQLdb module in the middle is reported to crash on Unicode.
I'd thought something as basic as a database connection for a language used primarily on web servers would be a solved problem, but for Python, it's not.
"At this season of the the winter solstice may reason prevail. There are no gods, no devils, no angels, no heaven or hell. There is only our natural world. Religion is but myth and superstition that hardens hearts and enslaves minds."
My experience with cheap web hosting was that you got what you paid for in terms of reliability.
I was going to say something good about my hosting provider, but then one of my sites just went down and has been unreachable for 48 minutes now. Somebody broke the routing within the server farm; the server is up, but my site's IP address on it is returning "Destination Unreachable". Fortunately, it's a site in development that hasn't gone live yet.
And this is an outfit that claims "99.99% uptime".
Microsoft is boring. Nobody is really excited by Vista, certainly not IT managers who have to pay for it. Nobody believes Microsoft's security pronouncements for Vista, since they said essentially the same thing about Windows 95, Windows 2000, and Windows XP.
There are still many corporate IT installations quite happy with Windows 2000, the last version before Microsoft slaved the desktops to the mothership in Redmond.
Customers don't really want Office N+1, either.
Reminds me of General Motors in the early 1980s, right before the Japanese car makers started eating their lunch on quality.
There's a strong trend towards user simplicity in industrial equipment. (This allows hiring cheaper employees.) Compare a newspaper printing press from 1950 with one today. Older presses had dozens of knobs at each printing cylinder to tweak ink flow across the width of the web, based on the black/white ratio of that part of the sheet. That's all automated now.
Operating a steam locomotive was, and is, incredibly complicated. Even the guy shoveling coal has to plan ahead several miles. If there's a hill coming up, the fireman needs to put more coal in the firebox about five minutes before the hill, adjust the dampers and blowers to bring the fire up, and have the steam pressure nearing, but not exceeding, the pressure at which the safety valve will dump steam, just as you hit the base of the hill. Otherwise, you're likely to run out of steam part way up the hill and stall. (Yes, that's where that phrase comes from.)
That's just operating; startup is a complex job that takes hours.
Heavy construction equipment has become much simpler to operate as microprocessors have been introduced. There's an amusing history of Caterpillar equipment which has the startup instructions for each Caterpillar model from the earliest ones. The early machines required elaborate start up procedures; for the most recent ones, it's turn on, wait for the ready light, and go. The military tries hard for that simplicity.
(As we were reminded when I was in aerospace, "Always remember the guy who has to use this. It's going to be too hot or too cold, it may be dark or raining, and someone may be shooting at you.")
The most complex consumer appliance interface I've seen dates from the 1970s. This is a German washing machine which is fully user-programmable, using metal punched cards which advance slowly through the timer. There are pre-punched cards for the usual cycles, and if you really want to, you can create your own customized wash cycles. A dead-end product.
In the 1950s, there were even some appliances with knobs that didn't do anything.
Excessive user complexity is a fad which appears now and then. It goes away rapidly.
Remember all those free hosting services? Where are they now?
Besides, web hosting is so cheap today. For under $10/month, you can have a full web site on a good commercial hosting service. You can use CGI, Java, Perl, Python, MySQL, and AJAX. You get a gigabyte of disk space and no limit on traffic.
Further down the food chain, there's 50megs.com, at $2.00/month. Free if you're willing to accept ads. Less space and fewer features.
If you don't want the bother of running a web site, there's Myspace and its clones. Geocities is still around, although now owned by Yahoo.
If you want to store public domain material of lasting value that others might someday need, you can get a free Internet Archive account and upload it there. They have petabytes of disk space.
If you have software source, there's SourceForge.
Forbes occasionally whines about Craigslist. The real effect of Craigslist is not on the Internet. It's killing newspaper classified advertising, which used to be highly profitable.
This is part of an ongoing dispute between the Harry Fox Agency, the RIAA, and the ringtone industry over compulsory licenses.
The recording industry in the US has a statutory deal in the Copyright Act which allows them to re-record previously published songs (i.e. issue "cover albums") by paying a fixed royalty determined by Congress and the Librarian of Congress. This is called a "compulsory license". Most music publishers are represented by the Harry Fox Agency, which actually issues the "compulsory license" on request and collects and redistributes the royalties.
This is really a very obscure issue even in the music industry. In the end, ringtones might get cheaper, and we may see the end of that silly distinction in the cellphone world between downloaded tracks and ringtones.
I don't see any benchmarks in that article. Here are some,, and they don't make the thing look all that impressive.
The only benefit in this thing, apparently, is that, for games which make too many "select()" polls, there's a faster no-data return. This is really a bug in the game, which ought to be multi-threaded by now. As games are revised for multi-core systems, this problem had better go away. In fact, it probably will go away in Vista, which has a multithreaded network stack.
What do they need a joint site for? If all they want to do is allow limited downloads of their own content, each network can do that right now.
Also, with a Democratic Congress, anti-trust questions will be asked. Competitors aren't supposed to have joint marketing arrangements. "Every person who shall monopolize, or attempt to monopolize, or combine or conspire with any other person or persons, to monopolize any part of the trade or commerce among the several States, or with foreign nations, shall be deemed guilty of a felony, and, on conviction thereof, shall be punished by fine not exceeding $10,000,000 if a corporation, or, if any other person, $350,000, or by imprisonment not exceeding three years, or by both said punishments, in the discretion of the court." (15 USC 2).
Antitrust enforcement has been out to lunch since Bush came in, and Congress hasn't questioned this. That's going to change.
Anybody foolish enough to text message while driving should have their driver's licence suspended. That's just too dumb.
The latest problem I've seen is people crossing streets on foot while looking at cell phone screens.
There are some real user interface issues here. Aircraft cockpit designers worry about "head down time", time the pilot is looking down at some panel instead of looking out the window. Some car designers have no clue in that area, leading to interfaces which require watching the panel when using the controls. BMW's "i-drive" was notorious for this problem.
Cell phones for cars should be fully hands free and entirely voice activated. That's available; it's just not universal.
One little detail that helps - mobile devices, including cell phones, should not time out on input. The user should be free to stop input at any time to take on a higher priority task, like collision avoidance, without losing work.
Fooling around with TCP slow start and congestion window management. That's nothing new. We were arguing over that back in the 1980s. (I'm the inventor of the Nagle algorithm and fair queuing, and was the first to describe congestion collapse and the tragedy of the commons problem in networking. See my old RFCs.) Back then, we were more worried about causing transient network congestion; if you didn't have slow start, you could lose packets at the gateway from the LAN to the WAN because there wasn't enough memory in the router. And we were really worried about congestion in the middle of the network backbone. So the early versions of those algorithms were on the conservative side. Nobody worries about protecting the network in desktop clients any more, and the Internet now has more backbone capacity than edge capacity. Strategies in those areas have been more aggressive for years.
Using the quality of service field. That's not new. The main issue is how to express priorities between the applications and the operating system. It's probably good enough to give video and audio higher quality of service. (Gamers who are trying to play streaming audio while fragging might complain about lag, so there will probably be some obscure registry key to mess with this.)
Multithreading the network stack so it will use multiple CPUs. Reasonable enough, but not new. QNX has had that for years. Since its network stack runs in user space, put QNX on a multiprocessor and the network stack speeds up. Cisco uses QNX in their big routers. On the consumer desktop, it's not going to be noticed; your DSL line or cable modem is nowhere near fast enough to need this.
Both of those compilers are relatively simple ones that generate byte codes for a.NET run time system. They aren't hard-code optimizing compilers. So they're not the tool of choice if you're doing number-crunching, real-time work, or operating system internals.
This isn't a language issue. There's at least one implementation of Java that generates machine instructions directly.
Big Science, and how we got here
on
Saving U.S. Science
·
· Score: 2, Insightful
3. The United States and its citizens needs to place as much importance and admiration on the sciences, and those who persue knowledge in them, as they do on sports players, movie stars, and "socialites"
That was the case in the 1950s. Baseball players made $6,000 to $10,000 per year. And they had to unionize to get that. The movie industry had the studio system, where actors were hired as employees under a deal which allowed them to be fired but not to quit and go to another studio. That lasted until 1954, and except for a very few performers, being a movie star didn't mean being rich. Musicians were doing even worse; the big money in music was being a band leader or a record company. People who inherited money but weren't good enough to make it themselves were derided as useless wasters and taxed at very high levels.
But physicists and electronics engineers were almost worshipped. They were the people who ended WWII. Understand what a big deal this was. Without radar, the Battle of Britain probably would have been lost. British Spitfires only had enough fuel for about twenty minutes of combat, so Fighter Command had to have accurate information about where the enemy bombers were, or the fighters would be in the wrong place at the wrong time.
Without the atomic bomb, defeating Japan would have been a long, bloody slog. Invading and conquering Japan was expected to be at least as big a job as invading and conquering Europe had been; harder because the distances were longer, bloodier because the landing area was totally hostile, unlike France. Then, one day, the US dropped the Bomb. And suddenly it was all over. (Read Thank God for the Atomic Bomb, by Paul Fussell. Fussell today is a famous essayist, but in 1945, he was an infantryman who'd been in combat and was part of the army getting ready for the invasion of Japan.)
That's how we got Big Science. Big Science was invented to win WWII, and it paid off. Big time. It continued to pay off during the 1950s and 1960s, with jet aircraft, computers, rockets, nuclear power, antibiotics, color TV - things that affected daily life.
We've been there. It's over in the US. Today, in China, being an engineer means a much better life than most of the people around you. That's why they're on the way up and we're on the way down.
It's nice to get from 36% to 41%, but this sounds like an expensive technology to manufacture. It's a multilayer IC, with layers for different light wavelengths.
It's described as a "concentrator cell", which usually means "it's so expensive that you have to use mirrors to focus light onto the thing." The previous 36% efficient gallium arsenide cells were also described as "concentrator cells", but in fact, they're just expensive. When installed on satellites, they aren't front-ended by mirrors. The Stanford Solar Car used those cells, and they had something like $250K of cells on one car.
Gallium is just too expensive. It's about $300/Kg. World production is about 70 metric tons annually, or about one boxcar load for the whole world.
The big breakthrough recently in solar cells belongs to Ovshinsky. His company, Energy Conversion Devices, has been selling flexible solar panels for years. Now they've finished a large scale roll to roll machine that grinds those sheets out. Finally, the product is going out the door in quantity and the money is pouring in. Ovshinsky is building three more plants.
They're selling photovoltaic roof shingles. 17 watts per shingle. This is a real product you can buy in quantity right now.
An "original design goal of the language" for C was that the compiler had to fit in a PDP-11 with 64K. That's why the language is so close to PDP-11 hardware. (The "++" operator reflects a PDP-11 hardware feature.) It wasn't until the late 1980s that C compilers started to optimize significantly.
Once you have an optimizing compiler, the speed issues are quite different. The question is not how close the language is to the hardware; it's how well the compiler can understand the language. Issues like aliasing assume greater importance, because they interfere with optimization. Issues like whether you write *p++ or tab[i++] assume less importance, because the compiler will usually generate optimal code for both approaches.
Subscript checking has a bad reputation because many existing implementations are terrible. The one in 1980s Berkeley Pascal was notoriously bad; it called a subroutine for every subscript check. A whole generation of programmers had their minds damaged by that. Some modern implementations do it by carrying around extra information with each array and pointer, which is similarly inefficient. It has to be done right, and in the compiler, to be efficient.
Worse, C and C++ don't carry around the information to do it right. Previous postings in this thread indicate how the problem could be solved.
First, there is overhead for not checking. The extra reboot time, the lost work after a crash, the overhead of all the viruses, spyware, and adware that got in because of buffer overflows - all those are overhead.
Second, you can't do this as efficiently with templates, because the compiler needs to know more about the checking to optimize it. If you rewrite the code above with a <vector> class, it will be slower. You've deferred compile-time work to run time.
The trouble with "P2P" in its present form is that the topology is designed to evade copyright, not minimize bandwidth. Peering nodes aren't necessarily near each other. You can, and do, get situations where the same content traverses the same backbone paths multiple times. There's no end user penalty for having faraway peers, but it generates unnecessary load.
Reminds me of, many years ago, watching two coal trains passing each other in opposite directions. You don't see that kind of stupidity any more. Somewhere a trader will do a swap, rather than physically shipping the commodity around.
Netnews does this right, assuming you want a broadcast system. Netnews was designed for slow links and bandwidth minimization. As I point out occasionally, Netnews could easily handle the entire audio output of the RIAA, which is only a few gigabytes per day, using far less bandwidth than the present "P2P" systems.
What will work is ISP-level caching. AOL does this, although in a somewhat annoying fashion. In a different way, so does Akamai. We'll probably see more of that.
The killer app, sadly, is probably going to be DRM. Look for some scheme where the encrypted video goes from the network port to the display without the bits ever being accessible from a user-programmed CPU. We already have Microsoft's scheme where video and audio are pumped around within the operating system kernel without ascending to the application level. Look for that to go entirely into a single IC.
Disney, for some years, had a specific division devoted to producing crap sequels: DisneyToons. This is the outfit that produced The Lion King 1½, Bambi II, Mulan 2, and similar bad sequels, to milk the last remaining revenue from the franchise.
It wasn't a huge moneymaker, and was running down the value of the Disney brand. So that operation was shut down when Disney bought Pixar. The Aristocats II, Pinocchio II and Dumbo II were all canceled, to the great disappointment of nobody.
This last line extension for Star Dreck sounds like something that would have come from DisneyToons at their worst. This is not a good thing.
Just recently, support for Python's connection to MySQL, "MySQLdb", stopped working on Windows. See this discussion in the MySQLdb help forum on SourceForge.
Unlike Perl and PHP, the standard Python distribution doesn't support MySQL. There's a third-party add-on on SourceForge for that. It has one developer, and he's not interested in maintaining the Windows version. The Python 2.5 update apparently broke the Windows build.
Some help is being provided by a World of Warcraft guild, which has managed to build MySQLdb for Windows. But that hasn't been tested by anyone else.
Also, although the current MySQL understands Unicode, and the current Python understands Unicode, the MySQLdb module in the middle is reported to crash on Unicode.
I'd thought something as basic as a database connection for a language used primarily on web servers would be a solved problem, but for Python, it's not.
Well, actually, it does.
"At this season of the the winter solstice may reason prevail. There are no gods, no devils, no angels, no heaven or hell. There is only our natural world. Religion is but myth and superstition that hardens hearts and enslaves minds."
A basic problem with "telework" is that promotion within the company is unlikely. But job changing is easier.
The article is all about receiving one-way broadcast video content. That's fine for the couch-potato crowd, but what do you get in Internet bandwidth?
My experience with cheap web hosting was that you got what you paid for in terms of reliability.
I was going to say something good about my hosting provider, but then one of my sites just went down and has been unreachable for 48 minutes now. Somebody broke the routing within the server farm; the server is up, but my site's IP address on it is returning "Destination Unreachable". Fortunately, it's a site in development that hasn't gone live yet.
And this is an outfit that claims "99.99% uptime".
Microsoft is boring. Nobody is really excited by Vista, certainly not IT managers who have to pay for it. Nobody believes Microsoft's security pronouncements for Vista, since they said essentially the same thing about Windows 95, Windows 2000, and Windows XP. There are still many corporate IT installations quite happy with Windows 2000, the last version before Microsoft slaved the desktops to the mothership in Redmond.
Customers don't really want Office N+1, either.
Reminds me of General Motors in the early 1980s, right before the Japanese car makers started eating their lunch on quality.
There's a strong trend towards user simplicity in industrial equipment. (This allows hiring cheaper employees.) Compare a newspaper printing press from 1950 with one today. Older presses had dozens of knobs at each printing cylinder to tweak ink flow across the width of the web, based on the black/white ratio of that part of the sheet. That's all automated now.
Operating a steam locomotive was, and is, incredibly complicated. Even the guy shoveling coal has to plan ahead several miles. If there's a hill coming up, the fireman needs to put more coal in the firebox about five minutes before the hill, adjust the dampers and blowers to bring the fire up, and have the steam pressure nearing, but not exceeding, the pressure at which the safety valve will dump steam, just as you hit the base of the hill. Otherwise, you're likely to run out of steam part way up the hill and stall. (Yes, that's where that phrase comes from.) That's just operating; startup is a complex job that takes hours.
Heavy construction equipment has become much simpler to operate as microprocessors have been introduced. There's an amusing history of Caterpillar equipment which has the startup instructions for each Caterpillar model from the earliest ones. The early machines required elaborate start up procedures; for the most recent ones, it's turn on, wait for the ready light, and go. The military tries hard for that simplicity. (As we were reminded when I was in aerospace, "Always remember the guy who has to use this. It's going to be too hot or too cold, it may be dark or raining, and someone may be shooting at you.")
The most complex consumer appliance interface I've seen dates from the 1970s. This is a German washing machine which is fully user-programmable, using metal punched cards which advance slowly through the timer. There are pre-punched cards for the usual cycles, and if you really want to, you can create your own customized wash cycles. A dead-end product.
In the 1950s, there were even some appliances with knobs that didn't do anything. Excessive user complexity is a fad which appears now and then. It goes away rapidly.
Remember all those free hosting services? Where are they now?
Besides, web hosting is so cheap today. For under $10/month, you can have a full web site on a good commercial hosting service. You can use CGI, Java, Perl, Python, MySQL, and AJAX. You get a gigabyte of disk space and no limit on traffic.
Further down the food chain, there's 50megs.com, at $2.00/month. Free if you're willing to accept ads. Less space and fewer features.
If you don't want the bother of running a web site, there's Myspace and its clones. Geocities is still around, although now owned by Yahoo.
If you want to store public domain material of lasting value that others might someday need, you can get a free Internet Archive account and upload it there. They have petabytes of disk space. If you have software source, there's SourceForge.
So who needs another free hosting service?
Forbes occasionally whines about Craigslist. The real effect of Craigslist is not on the Internet. It's killing newspaper classified advertising, which used to be highly profitable.
This is part of an ongoing dispute between the Harry Fox Agency, the RIAA, and the ringtone industry over compulsory licenses.
The recording industry in the US has a statutory deal in the Copyright Act which allows them to re-record previously published songs (i.e. issue "cover albums") by paying a fixed royalty determined by Congress and the Librarian of Congress. This is called a "compulsory license". Most music publishers are represented by the Harry Fox Agency, which actually issues the "compulsory license" on request and collects and redistributes the royalties.
Then came ringtones. The Harry Fox Agency, in 2004, took the position that the compulsory license required by law does not cover ringtones. This was a bogus position, and on October 16, 2006, the Registrar of Copyrights ruled that ringtones are subject to the compulsory license. The Harry Fox Agency is taking this badly; "This decision has no effect on HFA's existing policy that DPD licenses ... do not cover ... ringtones or mastertones.
The RIAA is sueing them, and HFA is probably going to lose this one.
This is really a very obscure issue even in the music industry. In the end, ringtones might get cheaper, and we may see the end of that silly distinction in the cellphone world between downloaded tracks and ringtones.
There's not much to offload in UDP. The checksums are about it.
I don't see any benchmarks in that article. Here are some,, and they don't make the thing look all that impressive.
The only benefit in this thing, apparently, is that, for games which make too many "select()" polls, there's a faster no-data return. This is really a bug in the game, which ought to be multi-threaded by now. As games are revised for multi-core systems, this problem had better go away. In fact, it probably will go away in Vista, which has a multithreaded network stack.
What do they need a joint site for? If all they want to do is allow limited downloads of their own content, each network can do that right now.
Also, with a Democratic Congress, anti-trust questions will be asked. Competitors aren't supposed to have joint marketing arrangements. "Every person who shall monopolize, or attempt to monopolize, or combine or conspire with any other person or persons, to monopolize any part of the trade or commerce among the several States, or with foreign nations, shall be deemed guilty of a felony, and, on conviction thereof, shall be punished by fine not exceeding $10,000,000 if a corporation, or, if any other person, $350,000, or by imprisonment not exceeding three years, or by both said punishments, in the discretion of the court." (15 USC 2). Antitrust enforcement has been out to lunch since Bush came in, and Congress hasn't questioned this. That's going to change.
Anybody foolish enough to text message while driving should have their driver's licence suspended. That's just too dumb.
The latest problem I've seen is people crossing streets on foot while looking at cell phone screens.
There are some real user interface issues here. Aircraft cockpit designers worry about "head down time", time the pilot is looking down at some panel instead of looking out the window. Some car designers have no clue in that area, leading to interfaces which require watching the panel when using the controls. BMW's "i-drive" was notorious for this problem.
Cell phones for cars should be fully hands free and entirely voice activated. That's available; it's just not universal.
One little detail that helps - mobile devices, including cell phones, should not time out on input. The user should be free to stop input at any time to take on a higher priority task, like collision avoidance, without losing work.
Well, what's here?
Fooling around with TCP slow start and congestion window management. That's nothing new. We were arguing over that back in the 1980s. (I'm the inventor of the Nagle algorithm and fair queuing, and was the first to describe congestion collapse and the tragedy of the commons problem in networking. See my old RFCs.) Back then, we were more worried about causing transient network congestion; if you didn't have slow start, you could lose packets at the gateway from the LAN to the WAN because there wasn't enough memory in the router. And we were really worried about congestion in the middle of the network backbone. So the early versions of those algorithms were on the conservative side. Nobody worries about protecting the network in desktop clients any more, and the Internet now has more backbone capacity than edge capacity. Strategies in those areas have been more aggressive for years.
Using the quality of service field. That's not new. The main issue is how to express priorities between the applications and the operating system. It's probably good enough to give video and audio higher quality of service. (Gamers who are trying to play streaming audio while fragging might complain about lag, so there will probably be some obscure registry key to mess with this.)
Multithreading the network stack so it will use multiple CPUs. Reasonable enough, but not new. QNX has had that for years. Since its network stack runs in user space, put QNX on a multiprocessor and the network stack speeds up. Cisco uses QNX in their big routers. On the consumer desktop, it's not going to be noticed; your DSL line or cable modem is nowhere near fast enough to need this.
Both of those compilers are relatively simple ones that generate byte codes for a .NET run time system. They aren't hard-code optimizing compilers. So they're not the tool of choice if you're doing number-crunching, real-time work, or operating system internals.
This isn't a language issue. There's at least one implementation of Java that generates machine instructions directly.
3. The United States and its citizens needs to place as much importance and admiration on the sciences, and those who persue knowledge in them, as they do on sports players, movie stars, and "socialites"
That was the case in the 1950s. Baseball players made $6,000 to $10,000 per year. And they had to unionize to get that. The movie industry had the studio system, where actors were hired as employees under a deal which allowed them to be fired but not to quit and go to another studio. That lasted until 1954, and except for a very few performers, being a movie star didn't mean being rich. Musicians were doing even worse; the big money in music was being a band leader or a record company. People who inherited money but weren't good enough to make it themselves were derided as useless wasters and taxed at very high levels.
But physicists and electronics engineers were almost worshipped. They were the people who ended WWII. Understand what a big deal this was. Without radar, the Battle of Britain probably would have been lost. British Spitfires only had enough fuel for about twenty minutes of combat, so Fighter Command had to have accurate information about where the enemy bombers were, or the fighters would be in the wrong place at the wrong time.
Without the atomic bomb, defeating Japan would have been a long, bloody slog. Invading and conquering Japan was expected to be at least as big a job as invading and conquering Europe had been; harder because the distances were longer, bloodier because the landing area was totally hostile, unlike France. Then, one day, the US dropped the Bomb. And suddenly it was all over. (Read Thank God for the Atomic Bomb, by Paul Fussell. Fussell today is a famous essayist, but in 1945, he was an infantryman who'd been in combat and was part of the army getting ready for the invasion of Japan.)
That's how we got Big Science. Big Science was invented to win WWII, and it paid off. Big time. It continued to pay off during the 1950s and 1960s, with jet aircraft, computers, rockets, nuclear power, antibiotics, color TV - things that affected daily life.
We've been there. It's over in the US. Today, in China, being an engineer means a much better life than most of the people around you. That's why they're on the way up and we're on the way down.
It's nice to get from 36% to 41%, but this sounds like an expensive technology to manufacture. It's a multilayer IC, with layers for different light wavelengths.
It's described as a "concentrator cell", which usually means "it's so expensive that you have to use mirrors to focus light onto the thing." The previous 36% efficient gallium arsenide cells were also described as "concentrator cells", but in fact, they're just expensive. When installed on satellites, they aren't front-ended by mirrors. The Stanford Solar Car used those cells, and they had something like $250K of cells on one car.
Gallium is just too expensive. It's about $300/Kg. World production is about 70 metric tons annually, or about one boxcar load for the whole world.
The big breakthrough recently in solar cells belongs to Ovshinsky. His company, Energy Conversion Devices, has been selling flexible solar panels for years. Now they've finished a large scale roll to roll machine that grinds those sheets out. Finally, the product is going out the door in quantity and the money is pouring in. Ovshinsky is building three more plants. They're selling photovoltaic roof shingles. 17 watts per shingle. This is a real product you can buy in quantity right now.
Yeah. Today, Slashdot installed an intrusive Flash ad that covers content.
Allowing overlay in CSS was a big mistake.
You mean you don't use FlashBlock?
An "original design goal of the language" for C was that the compiler had to fit in a PDP-11 with 64K. That's why the language is so close to PDP-11 hardware. (The "++" operator reflects a PDP-11 hardware feature.) It wasn't until the late 1980s that C compilers started to optimize significantly.
Once you have an optimizing compiler, the speed issues are quite different. The question is not how close the language is to the hardware; it's how well the compiler can understand the language. Issues like aliasing assume greater importance, because they interfere with optimization. Issues like whether you write *p++ or tab[i++] assume less importance, because the compiler will usually generate optimal code for both approaches.
Once subscript checks can be optimized, about 95% of them go away or are hoisted out of loops.
Subscript checking has a bad reputation because many existing implementations are terrible. The one in 1980s Berkeley Pascal was notoriously bad; it called a subroutine for every subscript check. A whole generation of programmers had their minds damaged by that. Some modern implementations do it by carrying around extra information with each array and pointer, which is similarly inefficient. It has to be done right, and in the compiler, to be efficient.
Worse, C and C++ don't carry around the information to do it right. Previous postings in this thread indicate how the problem could be solved.
That's the party line, but it's wrong.
First, there is overhead for not checking. The extra reboot time, the lost work after a crash, the overhead of all the viruses, spyware, and adware that got in because of buffer overflows - all those are overhead.
Second, you can't do this as efficiently with templates, because the compiler needs to know more about the checking to optimize it. If you rewrite the code above with a <vector> class, it will be slower. You've deferred compile-time work to run time.