How about we actually stop the insanity that promulgates the need for the insanely sized data centers? Use smart caching, java applets and just send business logic via the connection instead of the bloated insanity of html. Instead of shoe-horning an intentionally stateless 'square peg' protocol into the 'round hole' actually go with something rational. Then your data servers only need to deal with business logic and you farm out more of your processing requirements to clients. (aka the rational approach). I despair when I see what applets (irrespective of the language - just the general concept) could have provided us and where we are now in 2012. (P.S. I can spell, honest! It's just UK engrish)
(a.) volatile memory is cheap for the amount needed for only the cache search (all it has to store is maybe 16 bytes per sector which is tiny). The ram cache is a trivial amount of the cost compared to the flash memory which is where your sectors are being stored. (b.) re-read what I've listed above - I'm not suggesting you remove the OS tier of disk caching. (c.) a fully associative algorithm is trivial in complexity in contrast to their 'adaptive' algorithms. A CS101 undergrad could implement a reasonable implementation in a hour. This is trivial stuff.
The OS is awful at write-back as if the power fails you've lost state. The benefit of a hybrid drive is that the flash is non-volatile. Writing to the flash ram is cheap. Writing to the disk is expensive. You get the best of both worlds with a flash based write-back cache.
The benefit of flash is it's cheaper than RAM so you can have more of it whilst being far faster than mechanical. Having a 32 or 64 GB flash hybrid drive provides sufficient cache to only rarely need to write back to the disk for most user operations whilst not forcing a 'system' and 'data drive'. As far as the system is concerned, it's just presented as one very fast 2 TB drive (or whatever).
The only time the system will slow down is when you begin to strip the cache which is perfectly reasonable as it means you've exhausted the flash capacity. For 99.999% of usage situations, this will never occur and it will feel just like a very very quick 2 TB flash drive.
With hard drive access times in the very low milliseconds, it has me baffled why a fully associative cache can't be implemented with write-back.
This strikes me as pretty much the ideal solution. Surely the hardware is fast enough these days to support such a system?
Yes I know the cache hit search becomes the bottleneck, but we're talking hundreds of microseconds here! Use volatile memory for the LRU indexes / search and it would be damn quick for hits. Ensure that the sector tag is still kept for each line (sector) in the flash and on reboot the volatile memory rebuilds its coherency.
This seems to miss the obvious. Any major change in network traffic pattern is going to alert the chinese authorities. So, to stay off the radar, you want to subvert an accepted application into providing the data.
eg. how many people over there play network games? It would be reasonably easy to subvert the client/server software of the game to replace game UDP packets with web UDP packets. Ensure the server sends the data out to the client in the same pattern as normal, and have the client continue to fake a 'game input' pattern. Since, the user will be unable to receive much game data, have the server take over his session whilst the subterfuge of file transfer is occurring.
Seems like an emminently reasonable solution to implement within a controlled group.
The only possible option seems to be a 'web site agile' rewriting proxy. (ie. like frequency agile radios). You have a proxy that continually jumps from random server to random server within its list of massive servers. Never keep a proxy open for more than a few minutes (so by the time they notice it it will be gone) and the proxy points the browser to the next proxy before it closes down.
Even in this situation, unless every major non-chinese world website agreed to support such a scheme, it would be reasonably easy to detect this network access pattern.:(
I think if you're a seasoned programmer (java or otherwise) you could tell the difference between a syntax error whilst writing his comment over a complete lack of understanding.
Obviously his code was meant to be:
public ArrayList getUntouchable(){
return(untouchable); }
and the safe version
public ArrayList getUntouchable(){
return(untouchable.clone()); }
The point he is getting across is that a caller could inadvertently alter the private data of a class, hence breaking (or at least weakening) the OO paradigm. Even in the 'safe' version above, if the ArrayList was not an immutable object, it would still be possible to change the contents of private class data through a clone()'d array. As the actual array objects could still be altered. (the clone only clones the arraylist - it's not a deep clone).
Basically, c++ supports a concept of 'const' in both formal parameters and member functions.
A const formal parameter spec is like this:
public void foo(const Object o){...}
It means that if you invoke foo(an_object) you can guarantee that foo() will not do anything that will change your objects state. This complements the const method specification which is like this:
class A{...
public void doSomethingThatDoesntChangeState()const{...
}
public void doSomethingThatDoesChangeState(){...
} }
Here method doSomethingThatDoesntChangeState() tag itself with the const word, which means that the method call cannot change any of the objects state (internal data) within that method call. So, if you had a function like this:
public void foo(const A readOnlyA, A readWriteA){
readOnlyA.doSomethingThatDoesntChangeState();// legal
readOnlyA.doSomethingThatDoesChangeState();// *ILLEGAL*
readWriteA.doSomethingThatDoesChangeState();// legal
readWriteA.doSomethingThatDoesChangeState();// legal }
Then one of those calls would be illegal. The 'benefit' you get from this approach is that you don't have to worry about the state of your objects quite as much. In high assurance programming, this is a nice thing. It is arguable with java given a good IDE & debugger.
(do a wikipedia search on "c++ const member function" for further info)
At some point you have to write a memory manager. At some point you have to write a cpu scheduler. At some point you have to write a time interrupt handler....
Most of the above you cannot write in a 'protected' language, because the mechanisms that provide you the 'protection' are not yet existant. Java/C#/etc can't provide resources, thread scheduling, etc etc etc without the above services. Unfortunately, unlike writing a compiler, bootstrap'ing an os to replace components is a lot nastier (and really not worth the effort).
Whilst I also dislike C as a dinosaur language (not even support for basic abstraction let alone oo capabilities), it does not mean that "managed" languages are the solution for OS design. Managed languages are far from a panacea. (Geez, with a good profiler / memory checker, I don't mind doing my own memory management).
Oh yeah, and to the people who *keep* saying managed languages are faster for various unspecified reasons, christ, just deal with it.. managed languages are slower.. sometimes only slightly, mostly significantly, and occasionally terribly.. life is hard..
Umm.. remember, that java requires those same libraries to provide said things such as threading, etc. Java does not reinvent an entire new libc, etc.
Hey, C will always win over Java for performance/size - people just deal with it! However, in general, Java productivity (especially for cross platform) is 2-5x higher. You just need to pick your poison.
IMHO, I'm still amazed at the performance of JVM's and bow down before the coders writing them (We're not worthy!). However, I still prefer the stricter seperation between xVM and language in.NET (I really don't like some of the Java specifics in the JVM).
sbaker makes a good point about the important issue of bandwidth vs compute availability (the ongoing game of tradeoffs in comp sci).
However, it avoids the over-arching problem of 'marchitecture' and 'polarism' by the media. Nothing can ever be 'a little bit of that and a bit of this where appropriate' - no, it has to be evangelism. I'm sure every rational person is so tired of the 'next big thing' that will 'solve everything' (eg. CORBA, XML, Java,.NET, OLE, etc)
The problem of thin vs fat, PC vs the net has been an ongoing depiction of the limitations of technology at *THAT PARTICULAR POINT IN TIME*.
Fourty years ago, the network was cheap and compute was expensive so we went TTY Twenty years ago the network was expensive and compute was cheap (relatively speaking) so we went PC Now the network is getting cheap and we've hit a wall with compute so the 'technological evangelists' and those 'big iron' supporters are clammoring for a return to roots.
*ENOUGH OF THE HYPE*
There are some instances were networked apps make fantastical sense (eg. Google, map directories, etc etc). These are examples of data sources that are:
(A) constantly being updated (B) massive (C) client only interested in a *very* small part of the dataset
In these instances the network provision of this data is obviously the correct solution. However, note that we are moving away from dumb HTML type co-joining of content and presentation and moving towards web based 'services' of this content.
However, there are a *VERY* large number of applications that just do not suit an on-demaned network delivery. Examples include:
(A) high detal computer games (eg. HL2, FarCry, etc) (B) large and complex applications (eg. word) (C) anything that a user may require functioning when the network is down or slow (eg. network fauls, steam like popularity issues, DDOS).
Now, these things may be originally delivered (read: downloaded) via the network infrastructure (app server, steam, etc), but regardless, to preserve network performance and increase responsiveness, the applications will be served and cached locally.
Furthermore, there are scale and applicability issues to network services. How many of you have seen an old client/server PC app converted into a slow and buggy web interface? I've seen several working as part of a large company. These things add very little (if any) additional functionality yet cost millions, require loads more compute hardware, and consume 10-50x more network bandwidth. And yes, those 10-50x numbers are accurate! For the same client base! Moreover, virtually any HTML delivered version of an old PC type client-server application will be slower, use more bandwidth and be more buggy (due to half page delivery, sync loss, back button, etc). This is simply a symptom of HTTP.
The continued 'smashing of our head against the wall' to invent ways of making the browser work with things like XHTML, CSS v3, AJAX and so on and is only really 'emulating what old PC client/server apps did before'! Someone needs to stand up and say that enough flogging of a dead horse. There was a reason Java initially tried to push the idea of applets - they made sense.
The 'rational' concept of network delivery was via 'steam' like cached delivery of applications that would then intelligently talk to the server to deliver the minimal load on the network. Now, it is common to be sent a single web page (eg. for a forum) that is really only listing a few pieces of information topping out at 100-200 KB for just the HTML! Is it just me or is this just insane?
My point is that just don't be a die hard evangelist. Use (and promote) the right tool for the right job. The rational view point has to be the middle ground - the 'lean/fit' client rather than the 'thin' or 'fat' client. Finally, HTTP is not a smart method of app design. It's great for simple stuff, but not suited for proper stable and functional web applications. (This doesn't mean you can't shoe horn it into doing the job - but at the end, wouldn't it have just been easier as a client-server local app?)
How much does it 'cost' in electricity to generate 1J of heat energy this way? Is there a net cost liability compared to using say natural gas? How cheap is electrolysis?
(I just rememeber that natural gas heaters are pretty darn cheap to run)
Cos if it takes more energy to split the water than the split water produces in heat output, ESPECIALLY if you consider the ineffeciency of generating and delivering the electricity to you (40-60%) effeciency, then better to just use natural gas heaters no?
(Isn't this the whole argument behind the hydrogen econonmy being a big farce?)
Guys, to be frank, who really cares what M$ what to charge for this thing. It has to be priced reasonably cheaply for joe user to buy it. And if it works and all the joe lunchpacks have it installed on their computers, well this is a GoodThing(TM).
Hopefully it will reduce/eliminate(?) the thousands of port scans/script attacks we all get on our servers every day. So, MS, you have my vote! You're still a c$@t of a company, but better to pay for this feature than not have it at all.
(Heh, then again, most people will just pirate it or expect an OEM bundle deal anyhows!)
Come on, think of the big picture here. I know being simplistic and small-minded is the catch-phrase of our "new generation". But what if they said this 40 years ago? Why even go to space? Look at all of the technologies we have developed whilst trying to get there. We would not be able to live without half of these advances! (Especially the freeze dried food).
More importantly, compare $3.1B against: (a) amount spent on pizzas in the US (b) amount spent on election campaigns (c) amount paid to actors for acting?
If you are going to be fair, then be fair. Talk about it being a capitalist world, and that we only give money for food at all because we are: (a) making ourselves look better on the world stage (b) appeasing that guilty little bit of ourselves
Good luck NASA! You guys will be the ones that get us off the planet one day.
Geez, you gotta feel sorry for these guys. They are proably quintuply(sp?) checking everything! If this one goes boom there will be hell to pay. Poor bastards. I hate management and stupid media. Whats the odds of something going wrong with a flight? pretty high? 5-20%?
And how many accidents have they had in 40 years of space flight? Not many. Come on, they had to have a few bad years.
Best of luck to them! All the best NASA! There area lot of people who love you from the old days. You were and still are the technological pioneers of the world!
It's all bloody frasiers fault! God damn I love that show, they act like such prissy pansies! There is a classic comment in the show from their dad that goes like:
"I still say that a couple of years in the army would have toughened you boys up" after they were talking about egyptian cloth blankets or some such shit..
hhahaha.. couldn't help it! I'd bet $$$ that the marketting people will use some queer-eye angle.
Anyway, come on, anything has to be better than Adobe Acrobat 7! Christ, it's a hell of a toss up between the evils of supporting a M$ technology or the hassles with Acrobat 7! Have you tried to uninstall the toolbar!????!! doh!
The only real benefit to most people is the artificial limit of 2GB (user data addressable) for a single win32 process.
Everything else isn't really a benefit but actually decreases performance by a small amount (either increase memory usage and/or increased time due to increased memory usage)
It always makes me laugh when people think that 64bit is like the magical bullet of performance. For 99% of people, there is no reason to change for a few years yet.
I don't understand why google doesn't: (1) blacklist all french IP's from its spiders, (2) Stick a big notice on the front page if you're from france saying: "If you're from france you are not allowed to use this web site. If you don't like this complain to your government. And we fart in your general direction!"
I disagree entirely. University is about providing as broad as an experience as possible to cs students. They should be exposed to languages that fall over all different programming paradigms (functional, imperative, object oriented, etc).
At University of Adelaide (Australia) we were taughts Fortran, C, Ada95, Smalltalk, a little Pascal, Miranda, Prolog, Scheme, and assembler. Now, the point wasn't to _master_ anything, but to understand the underlying differences between the languages / programming paradigms and how it changes your software design.
The other thing is to ensure that students understand the linking of systems right from digital logic, through to micro-code, assembler code, hardware interrupts/etc, os theory, compiling & linking theory, and application design. Once you understand the core concepts of these things you can derive everything else. There have been very few technologies in the last 15+ years of CS. Just refinements and extensions of old stuff. If you _understand_ the underlying theory you can glance at a new technology and after a few seconds say, "I reckon they do it using x, y and z, but the hassle will be a, b & maybe c".
It is up to the students in their own time to further their own knowledge by reading up more on the languages and mastering them in their own time. CS isn't about making you an application programmer, YOU do that. CS is about making you a Computer Scientist not a muppet.
How about we actually stop the insanity that promulgates the need for the insanely sized data centers? Use smart caching, java applets and just send business logic via the connection instead of the bloated insanity of html. Instead of shoe-horning an intentionally stateless 'square peg' protocol into the 'round hole' actually go with something rational. Then your data servers only need to deal with business logic and you farm out more of your processing requirements to clients. (aka the rational approach). I despair when I see what applets (irrespective of the language - just the general concept) could have provided us and where we are now in 2012.
(P.S. I can spell, honest! It's just UK engrish)
(a.) volatile memory is cheap for the amount needed for only the cache search (all it has to store is maybe 16 bytes per sector which is tiny). The ram cache is a trivial amount of the cost compared to the flash memory which is where your sectors are being stored.
(b.) re-read what I've listed above - I'm not suggesting you remove the OS tier of disk caching.
(c.) a fully associative algorithm is trivial in complexity in contrast to their 'adaptive' algorithms. A CS101 undergrad could implement a reasonable implementation in a hour. This is trivial stuff.
The OS is awful at write-back as if the power fails you've lost state. The benefit of a hybrid drive is that the flash is non-volatile. Writing to the flash ram is cheap. Writing to the disk is expensive. You get the best of both worlds with a flash based write-back cache.
The benefit of flash is it's cheaper than RAM so you can have more of it whilst being far faster than mechanical. Having a 32 or 64 GB flash hybrid drive provides sufficient cache to only rarely need to write back to the disk for most user operations whilst not forcing a 'system' and 'data drive'. As far as the system is concerned, it's just presented as one very fast 2 TB drive (or whatever).
The only time the system will slow down is when you begin to strip the cache which is perfectly reasonable as it means you've exhausted the flash capacity. For 99.999% of usage situations, this will never occur and it will feel just like a very very quick 2 TB flash drive.
With hard drive access times in the very low milliseconds, it has me baffled why a fully associative cache can't be implemented with write-back.
This strikes me as pretty much the ideal solution. Surely the hardware is fast enough these days to support such a system?
Yes I know the cache hit search becomes the bottleneck, but we're talking hundreds of microseconds here! Use volatile memory for the LRU indexes / search and it would be damn quick for hits. Ensure that the sector tag is still kept for each line (sector) in the flash and on reboot the volatile memory rebuilds its coherency.
This seems to miss the obvious. Any major change in network traffic pattern is going to alert the chinese authorities. So, to stay off the radar, you want to subvert an accepted application into providing the data.
:(
eg. how many people over there play network games? It would be reasonably easy to subvert the client/server software of the game to replace game UDP packets with web UDP packets. Ensure the server sends the data out to the client in the same pattern as normal, and have the client continue to fake a 'game input' pattern. Since, the user will be unable to receive much game data, have the server take over his session whilst the subterfuge of file transfer is occurring.
Seems like an emminently reasonable solution to implement within a controlled group.
The only possible option seems to be a 'web site agile' rewriting proxy. (ie. like frequency agile radios). You have a proxy that continually jumps from random server to random server within its list of massive servers. Never keep a proxy open for more than a few minutes (so by the time they notice it it will be gone) and the proxy points the browser to the next proxy before it closes down.
Even in this situation, unless every major non-chinese world website agreed to support such a scheme, it would be reasonably easy to detect this network access pattern.
I think if you're a seasoned programmer (java or otherwise) you could tell the difference between a syntax error whilst writing his comment over a complete lack of understanding.
Obviously his code was meant to be:
public ArrayList getUntouchable(){
return(untouchable);
}
and the safe version
public ArrayList getUntouchable(){
return(untouchable.clone());
}
The point he is getting across is that a caller could inadvertently alter the private data of a class, hence breaking (or at least weakening) the OO paradigm. Even in the 'safe' version above, if the ArrayList was not an immutable object, it would still be possible to change the contents of private class data through a clone()'d array. As the actual array objects could still be altered. (the clone only clones the arraylist - it's not a deep clone).
Basically, c++ supports a concept of 'const' in both formal parameters and member functions.
... ... ...
// legal // *ILLEGAL* // legal // legal
A const formal parameter spec is like this:
public void foo(const Object o){...}
It means that if you invoke foo(an_object) you can guarantee that foo() will not do anything that will change your objects state. This complements the const method specification which is like this:
class A{
public void doSomethingThatDoesntChangeState()const{
}
public void doSomethingThatDoesChangeState(){
}
}
Here method doSomethingThatDoesntChangeState() tag itself with the const word, which means that the method call cannot change any of the objects state (internal data) within that method call. So, if you had a function like this:
public void foo(const A readOnlyA, A readWriteA){
readOnlyA.doSomethingThatDoesntChangeState();
readOnlyA.doSomethingThatDoesChangeState();
readWriteA.doSomethingThatDoesChangeState();
readWriteA.doSomethingThatDoesChangeState();
}
Then one of those calls would be illegal. The 'benefit' you get from this approach is that you don't have to worry about the state of your objects quite as much. In high assurance programming, this is a nice thing. It is arguable with java given a good IDE & debugger.
(do a wikipedia search on "c++ const member function" for further info)
At some point you have to write a memory manager. ...
:)
At some point you have to write a cpu scheduler.
At some point you have to write a time interrupt handler.
Most of the above you cannot write in a 'protected' language, because the mechanisms that provide you the 'protection' are not yet existant. Java/C#/etc can't provide resources, thread scheduling, etc etc etc without the above services. Unfortunately, unlike writing a compiler, bootstrap'ing an os to replace components is a lot nastier (and really not worth the effort).
Whilst I also dislike C as a dinosaur language (not even support for basic abstraction let alone oo capabilities), it does not mean that "managed" languages are the solution for OS design. Managed languages are far from a panacea. (Geez, with a good profiler / memory checker, I don't mind doing my own memory management).
Oh yeah, and to the people who *keep* saying managed languages are faster for various unspecified reasons, christ, just deal with it.. managed languages are slower.. sometimes only slightly, mostly significantly, and occasionally terribly.. life is hard..
have a good weegend!
Umm.. remember, that java requires those same libraries to provide said things such as threading, etc. Java does not reinvent an entire new libc, etc.
.NET (I really don't like some of the Java specifics in the JVM).
Hey, C will always win over Java for performance/size - people just deal with it! However, in general, Java productivity (especially for cross platform) is 2-5x higher. You just need to pick your poison.
IMHO, I'm still amazed at the performance of JVM's and bow down before the coders writing them (We're not worthy!). However, I still prefer the stricter seperation between xVM and language in
Anyway, just my $0.22
sbaker makes a good point about the important issue of bandwidth vs compute availability (the ongoing game of tradeoffs in comp sci).
.NET, OLE, etc)
:)
However, it avoids the over-arching problem of 'marchitecture' and 'polarism' by the media. Nothing can ever be 'a little bit of that and a bit of this where appropriate' - no, it has to be evangelism. I'm sure every rational person is so tired of the 'next big thing' that will 'solve everything' (eg. CORBA, XML, Java,
The problem of thin vs fat, PC vs the net has been an ongoing depiction of the limitations of technology at *THAT PARTICULAR POINT IN TIME*.
Fourty years ago, the network was cheap and compute was expensive so we went TTY
Twenty years ago the network was expensive and compute was cheap (relatively speaking) so we went PC
Now the network is getting cheap and we've hit a wall with compute so the 'technological evangelists' and those 'big iron' supporters are clammoring for a return to roots.
*ENOUGH OF THE HYPE*
There are some instances were networked apps make fantastical sense (eg. Google, map directories, etc etc). These are examples of data sources that are:
(A) constantly being updated
(B) massive
(C) client only interested in a *very* small part of the dataset
In these instances the network provision of this data is obviously the correct solution. However, note that we are moving away from dumb HTML type co-joining of content and presentation and moving towards web based 'services' of this content.
However, there are a *VERY* large number of applications that just do not suit an on-demaned network delivery. Examples include:
(A) high detal computer games (eg. HL2, FarCry, etc)
(B) large and complex applications (eg. word)
(C) anything that a user may require functioning when the network is down or slow (eg. network fauls, steam like popularity issues, DDOS).
Now, these things may be originally delivered (read: downloaded) via the network infrastructure (app server, steam, etc), but regardless, to preserve network performance and increase responsiveness, the applications will be served and cached locally.
Furthermore, there are scale and applicability issues to network services. How many of you have seen an old client/server PC app converted into a slow and buggy web interface? I've seen several working as part of a large company. These things add very little (if any) additional functionality yet cost millions, require loads more compute hardware, and consume 10-50x more network bandwidth. And yes, those 10-50x numbers are accurate! For the same client base! Moreover, virtually any HTML delivered version of an old PC type client-server application will be slower, use more bandwidth and be more buggy (due to half page delivery, sync loss, back button, etc). This is simply a symptom of HTTP.
The continued 'smashing of our head against the wall' to invent ways of making the browser work with things like XHTML, CSS v3, AJAX and so on and is only really 'emulating what old PC client/server apps did before'! Someone needs to stand up and say that enough flogging of a dead horse. There was a reason Java initially tried to push the idea of applets - they made sense.
The 'rational' concept of network delivery was via 'steam' like cached delivery of applications that would then intelligently talk to the server to deliver the minimal load on the network. Now, it is common to be sent a single web page (eg. for a forum) that is really only listing a few pieces of information topping out at 100-200 KB for just the HTML! Is it just me or is this just insane?
My point is that just don't be a die hard evangelist. Use (and promote) the right tool for the right job. The rational view point has to be the middle ground - the 'lean/fit' client rather than the 'thin' or 'fat' client. Finally, HTTP is not a smart method of app design. It's great for simple stuff, but not suited for proper stable and functional web applications. (This doesn't mean you can't shoe horn it into doing the job - but at the end, wouldn't it have just been easier as a client-server local app?)
Just my $1.42
How much does it 'cost' in electricity to generate 1J of heat energy this way? Is there a net cost liability compared to using say natural gas? How cheap is electrolysis?
(I just rememeber that natural gas heaters are pretty darn cheap to run)
Cos if it takes more energy to split the water than the split water produces in heat output, ESPECIALLY if you consider the ineffeciency of generating and delivering the electricity to you (40-60%) effeciency, then better to just use natural gas heaters no?
(Isn't this the whole argument behind the hydrogen econonmy being a big farce?)
Guys, to be frank, who really cares what M$ what to charge for this thing. It has to be priced reasonably cheaply for joe user to buy it. And if it works and all the joe lunchpacks have it installed on their computers, well this is a GoodThing(TM).
Hopefully it will reduce/eliminate(?) the thousands of port scans/script attacks we all get on our servers every day. So, MS, you have my vote! You're still a c$@t of a company, but better to pay for this feature than not have it at all.
(Heh, then again, most people will just pirate it or expect an OEM bundle deal anyhows!)
Come on, think of the big picture here. I know being simplistic and small-minded is the catch-phrase of our "new generation". But what if they said this 40 years ago? Why even go to space? Look at all of the technologies we have developed whilst trying to get there. We would not be able to live without half of these advances! (Especially the freeze dried food).
More importantly, compare $3.1B against:
(a) amount spent on pizzas in the US
(b) amount spent on election campaigns
(c) amount paid to actors for acting?
If you are going to be fair, then be fair. Talk about it being a capitalist world, and that we only give money for food at all because we are:
(a) making ourselves look better on the world stage
(b) appeasing that guilty little bit of ourselves
Good luck NASA! You guys will be the ones that get us off the planet one day.
Geez, you gotta feel sorry for these guys. They are proably quintuply(sp?) checking everything! If this one goes boom there will be hell to pay. Poor bastards. I hate management and stupid media. Whats the odds of something going wrong with a flight? pretty high? 5-20%?
And how many accidents have they had in 40 years of space flight? Not many. Come on, they had to have a few bad years.
Best of luck to them! All the best NASA! There area lot of people who love you from the old days. You were and still are the technological pioneers of the world!
It's all bloody frasiers fault! God damn I love that show, they act like such prissy pansies! There is a classic comment in the show from their dad that goes like:
"I still say that a couple of years in the army would have toughened you boys up" after they were talking about egyptian cloth blankets or some such shit..
hhahaha.. couldn't help it! I'd bet $$$ that the marketting people will use some queer-eye angle.
Anyway, come on, anything has to be better than Adobe Acrobat 7! Christ, it's a hell of a toss up between the evils of supporting a M$ technology or the hassles with Acrobat 7! Have you tried to uninstall the toolbar!????!! doh!
The only real benefit to most people is the artificial limit of 2GB (user data addressable) for a single win32 process.
Everything else isn't really a benefit but actually decreases performance by a small amount (either increase memory usage and/or increased time due to increased memory usage)
It always makes me laugh when people think that 64bit is like the magical bullet of performance. For 99% of people, there is no reason to change for a few years yet.
I don't understand why google doesn't:
(1) blacklist all french IP's from its spiders,
(2) Stick a big notice on the front page if you're from france saying:
"If you're from france you are not allowed to use this web site. If you don't like this complain to your government. And we fart in your general direction!"
I disagree entirely. University is about providing as broad as an experience as possible to cs students. They should be exposed to languages that fall over all different programming paradigms (functional, imperative, object oriented, etc).
At University of Adelaide (Australia) we were taughts Fortran, C, Ada95, Smalltalk, a little Pascal, Miranda, Prolog, Scheme, and assembler. Now, the point wasn't to _master_ anything, but to understand the underlying differences between the languages / programming paradigms and how it changes your software design.
The other thing is to ensure that students understand the linking of systems right from digital logic, through to micro-code, assembler code, hardware interrupts/etc, os theory, compiling & linking theory, and application design. Once you understand the core concepts of these things you can derive everything else. There have been very few technologies in the last 15+ years of CS. Just refinements and extensions of old stuff. If you _understand_ the underlying theory you can glance at a new technology and after a few seconds say, "I reckon they do it using x, y and z, but the hassle will be a, b & maybe c".
It is up to the students in their own time to further their own knowledge by reading up more on the languages and mastering them in their own time. CS isn't about making you an application programmer, YOU do that. CS is about making you a Computer Scientist not a muppet.
Cheers
Scharry