You can't observe a photon without absorbing it. Once you've observed it, you've destroyed it. Atoms exchange energy by absorption and re-emission. The photon is either absorbed, or not, there's no in between. It's like binary.
You would indeed need to simulate the "whole shebang". Here's why...
In the universe at large, events take place without our knowledge. The trees do in fact make sounds (as the definition of what a sound is) when they fall in the forest. These "unseen" events are what bring you to your "future". Computer gaming shows this. When you drop your gun at a certain location in the game, then go back for it later, it's still there right? Wrong. In the real world, you never know what "might" happen to real world objects once you leave them. In a sense, every object must have it's own running program for how it interracts with the rest of the universe, while observed, or not. This is done to preserve "continuity" and expection of information flow. If I fire a bullet into the forest, the computer needs to simulate what happens to that bullet because it may hit something that has consequences for my future.
Ordinary games simulate very little. It is just not possible to preserve the information flow from all the possible interactions between objects. The future needs to be consistent with the past. This can only be done by simulating everything. This is why quantum mechanics is probably right (no pun intended). The bifurcations from all possible events leads to what we call "the now".
This is also why quantum mechanics solves the paradox of "free will". The universe can be seen to be working out every possible future. The "road not taken" is in fact taken as well as all other possible paths, at the same time. Every choice you think you make leads to two versions of "you". In one universe, you think you made a positive choice. In the other bifurcated universe you think you made a negative choice. Each "you" believes there's only one.
What's the point? The universe "as an entirity" is working out every conceivable possible solution path. In 8 bits there's only 256 combinations, no more, no less. And so with the universe, infinite, or not. Every logically possible universe will be worked out at some point. The only ones that will never occur are logical impossibilites like places where the sky is both "black" and "white" at the same time. Or, stones so heavy that they can't be lifted by infinite forces.
If the universe is a simulation, then it is not a simulation running "on a computer", the unviverse itself "as it exists" is the simulation. This is the only way to preserve information. You can say, information is never created or destoyed, it is only changed.
What you've stated is contrary to the idea that artists have been leaching off of great thinkers for centuries. James Burke, author of "Connections", and "The Day the Universe Changed", goes to show in detail just how artists extrapolate from ideas generated by people who know, or have found, how things really work. Artists basically see the world of reality as characatured, in their mind, then they use emotion to blow ideas way out of proportion.
Just look at modern movies these days. Almost nothing in them is possible, yet people act like they "will be one day". In fact, when the day comes, what we actually get is 180 degrees different in the way it works, than the artists had originally intended. And, that is the real point isn't it? When "warp drives" are finally invented, they won't be "warp drives", they will be something based on real thinking, on reality, not fantasy. Most people dream of flying, and can write stories as such, that's easy, but few can actually make it happen. Space, was never space to the artists of old, it was heaven, only scientists actually showed that it was "space".
That's why I really like Authur C. Clarke as an author. He bases most of what he writes on real possibilities instead of unimaginable probabilites. Only very rarely are artists correct about the future, just like a million monkeys all typing away trying to produce something tangable.
Artists ARE leaching off of scientists and engineers! It's not the other way round. Get that through your head, or go back and live with the Amish.
True hackers read engineering, programming, and science books. Leave the fiction writers to dwell on things that are for the purpose of fantasy and escape, and sometimes glimpses into the future.
The end is not the point, getting there, now that's a really journey!
The needs of the many can be accommodated by the work of the few. The needs of the few, are, for the most part, irrelevant.
Seems a lot like the ATA vs. SCSI debates. You've got this class of people who must buy whatever the "best" cards are, and are recognized to be the "best" cards for doing certain things by their peers. If their peers are gamers, then you'd probably buy and FX, or Radeon. If their peers are engineers, then you wouldn't be caught dead not spending thousands of dollars for a Quadro or something. Interesting that the Quadros would be slower at rendering.
The only thing you seem to be getting out of 3D labs and Quadro level cards are industry certifications for high level CAD/CAM software. This seems to be a bit of an click group where'in they are self supporting. You buy in by purchasing a high cost card, then you are in the click, so to speak.
But don't the gamer level cards also perform for CAD/CAM? Is this an ATA vs. SCSI type of debate?
Everyone knit picks about a few percentage points here and there when comparing Nvidia and ATI cards. But, for people with money to spend, there are more expensive CAD Pro level cards out there. I am wondering, what the fastest card you can purchase is for the PC AGP bus? Anybody know? And, how much faster are they than the FX or Radeon?
Another annoying thing... Looks like Nvidia and ATI are now price tiering cards. Up until recently, the most you would pay retail for the best consumer level card was around $400. Now it looks like Nvidia and ATI want to push us into the $500 card level. What is next year card $600?
You said..."Not all programs have the same requirements. In most cases developer time is much more valuable than CPU time."
This is a funny thing to say. I think end-user time (and resources) is much more valuable than developer time! That is why they are paying for your progam in the first place.
You said..."Ridiculous. Most good programming techniques are independent of language. If you can't develop effectively in anything but C or C++, then your "skillz" could use some work."
You should be surprised. Sure, techniques are independent of language. I may have been wrong to use the word skillz. More precisely, part of being skilled at something is experience. Experience in one language does not directly translate to another very easily. Verbal languages that people speak around the world is an example. The syntax and constructs might carry over easily, but learning what all those words mean (or do, as in the case of programming languages) can be hard.
I can't justify telling everyone to use C all the time. Of course, every problem has a specific solution that works best. You are correct, there is a trade-off. I'm just saying that, over time, you may regret not knowing something well that is, in fact, more efficient and effective for writing compace and fast code. I sort of regret all the programming time I threw away with VB. But, I still use it when push comes to shove, and I guess I should be happy I know a good bit about the language. Being versatile is good, but being a jack of all trades, master of none, sucks!
Sure, I know that. Tiny little executables get produced for Java too. The problem is the thing won't run without the runtime libraries loaded, which turn out to be very large. The VB virtual machine for VB6.0 is 1384448 bytes for example. That's just for the core language. This doesn't count all the custom control OCX's and other stuff your program might use. With VB.NET, your program won't run without the.NET Framework installed (what is that, around 25Meg ?). Try sending a 6.5k program to someone who doesn't have the required libraries and see what your get.
In the early days, before Java, there was talk about how Microsoft couldn't include the VB runtime libraries into the core OS install. Many VB programmers wanted this so they could just distribute tiny little apps. The problem was, and probably still is, that including those libraries would necessarily mean they would have to include libraries from other companies who write languages. VB is a language and a product from Microsoft. You can't allow the languages product line from Microsoft to have any advantage in the industry by including only their runtime libraries into the core OS.
Try running that 6.5k app, then look at the task manager to see how big a memory footprint it uses. Make sure you modify the task manager to show all the columns that include physical and VM size.
I used to be the best damn VB programmer there was until around version 6.0. Well, maybe not the best, but I sure did some cool stuff with VB. I got started years ago with GWBASIC too. IBM made one of the first PC compilers for BASIC called "BASIC Compilers 1.0 and 2.0" This was the pre-mouse era, 1985-87'ish days. For lack of a good editor, I used the GWBASIC interface. When we finally compiled with the 1.0 compiler, the code ran a good bit faster. Then, we got the 2.0 compiler. Oh god how slowly our code ran with 2.0. I don't know what happened with 2.0 but it just didn't cut it. We ended up selling our program compiled with the 1.0 compiler.
Later, around 1988, we got our hands on the first Microsoft QuickBasic compilers. The compiled code then ran like lightning! We found that the QuickBASIC's used the new P-code interpreter. I used QuickBASIC quite a bit. Later, in the early 90's, I changed to VB around version 2.0. VB was quite nimble for program size and execution speed. But when we got version 4.0, it would compile to native code. This was the best performance I ever got out of VB before I realized...hey, the language just isn't giving me what I wanted...eg...smaller size, and faster speed.
Actually, I had been programming in C since around 1989. And, the more I used C, the more skilled I got at writing C code. The break point came with VB 6.0. I just couldn't justify using VB anymore as it wasn't a good environment for writing command line system administration programs. I was entering into systems administration/programming as my main job, so my code needed to run fast, lean, and mean.
When the Java phenomenon hit, I saw clearly from my VB experience that this just wasn't going to be a pretty scene. On the one hand, you had plenty of newbies who really didn't know anything about programming spouting the Java mantra. And, with the Internet, it seemed the entire world was going Java. The two bubbles of Java and the Internet seemed to go hand and hand.
The state of Java now is pure and simply...just bloat. For example, just download and run Morpheus. The thing is written in Java, and for just a simple application, uses 54 Meg. What the heck, 54 Meg!!!??? And, this C# stuff that Microsoft is producing just isn't any better. A simple C# hello world program uses 11 Meg!
I just can't use applications that take seconds to minutes to load up, then use up all my memory, then run slow as Christmas. I'm a systems programmer, I write applications that load, do what they need to do as fast as possible, then completely unload and get out of the way. My apps have to run background'ed so they don't interfere with the users. I don't want my memory used for program space, it's supposed to be used for data space!
You might say that memory, disk, and GHz are cheap now. Well my response is...so are your coding skillz! The one thing I've realized over the years is that the more time you spend programming in these high level languages, the more real experience you lose where you could be coding smaller and more efficiently nearer to the core. I'm trying to say that maybe I wasted a good bit of time in VB when I shouldn't have. The same goes for the Java guys. We had a great programming language called C, and C++ that got pushed to the back-burner because of some people who decided that garbage collection and VM's were a "good thing". Well, maybe they are, but at the expense of expertise in programming? I mean come on, if you can't handle pointers, can you really call yourself a programmer?
I'm so tired of programming environments that keep people from shooting themselves in the foot, or coddle beginning coders. Programming is a skill and an art. It is a good bit like architectural design. Java and VB just turn things into manufactured housing. Do you "want" to live in a double-wide home, or one that was designed to be functional, strong, and beautiful?
I suppose I'm being too hard on everyone here. Heck, I still use VB
Nobody needs a distributed filesystem at home. That is complete insane overkill. Get you a big drive and export the whole thing NFS, or CIFS if you use Windows.
We use NFS every day, but just for very special circumstances. If you really understand how NFS works, then you will understand why NFS is just not a viable solution for anything large scale, or small scale for that matter.
NFS is not secure. At most sites, NFS is exported read-only and limited to the domain, or to a given set of machine(s). If you export NFS as read/write then the client had better be secured, or you better use kerberos, and for damn sure better be behind a firewall. NFS has no client side cache, no volume location service, no ACL's, no authentication (unless kerberized), no replication, yata, yata, yata. We've used NFS sparingly for over 15 years because we -know how it works, and know its limitations.
On the other hand, we set an AFS cell for enterprise scale application and data sharing. It currently uses Kerberos V authentication, has volume replication, global namespace, client cache, fault tolerance. User's can setup their own groups, set their own ACL permissions. Did I say quota? AFS has per-user/per-volume quota. Hey, guess what, symbolic links work from any volume to any volume on AFS. And, AFS is just a simple daemon. You crank it up, mount the top of your cell and poof, you are done.
Another positive is the fact that once you setup an AFS cell you automatically become part of a larger community. Any AFS cell can mount the entire file system of another AFS cell within the same tree. I can for example mount many large university and government cells and share files. AFS allows Internet-wide file sharing with full security. On most versions of the client you can even enable encryption on the connection so your files won't be snooped easily.
All of our Solaris, Windows, Linux, and Mac boxes can use the same AFS tree without blinking an eye. We use AFS for many things. Before LDAP was really worth anything, we used AFS for simply exchanging read-only data. It -is- a replcated and global file system! Just put your config files in the tree and you are done.
If you are one of those people who are blinded by "always doing things one way", then I'd suggest you wake up and smell another technology, I did, and I liked what I got in return. Look into OpenAFS, you'll be glad you did.
Excellent choice! Sir! You win the prize for astute systems administrator!
AFS is the only enterpise ready, cross platform, secure, global namespace file system that is worth the money. In fact, OpenAFS is free...that's right...as in "beer".
Nope, sorry, NFS is -not a distributed file system. No amount of automounter pain will bring you even close to AFS. NFS is just the traditional de-facto point-to-point client-mounts-server share file system. It is just like CIFS for Windows.
AFS on the other hand has volume location independence, client-side-cache, token based ACL security, global namespace, yata, yata, yata. If you think NFS is distributed, you are still in your crib compared to real enterprise filesystem administrators.
who's there? A Win2k/XP administrator who's entire network infrastructure (500+ machines and 10,000+ users) runs efficiently and effectively from Win2k command shell scripts (.cmd's).
For those who lack the skills to find these things out on their own...
Windows NT, and especially Win2k/XP command shell scripting is very powerful. It is not DOS batch files.
You must remember one thing here, programming, scripting, and batching are all three different things. Each has it's own positive benefit. The smart administrator knows when to switch between the three methods to solve a problem. You wouldn't for example write a database in batch, or perl would you? And for that matter, to copy a file from one directory to another you wouldn't crack open your C++ compiler. I probably wouldn't use Lisp for heavy text groveling, would you? My point is intelligent administrators know what problems require what tools. Only application developers stay stuck to one method of problem solving for long periods of time. Administrators and system programmers don't have that luxury.
Back to Win2k/XP command shell scripting... You'd really be surpised at what you can do with simple batching. I think the KISS rule of problem solving epitomizes command shell pretty good. The other thing is that the interpreter is so small compared to perl, or VB, or Java. When you execute a CMD file the interpreter loads up instantly like notepad. The memory used is typically 1 Meg. Perl uses ~4 meg or more, VB uses about the same. Java uses ~9 meg. And, oh god "hello world" in C# uses about 11 Meg! No way am I going to use that for network administration scripting!
There's also all kinds of "tricks" you can pull in command shell, just like any language. Finding those gems is what separates the men from the boys. The command shell allows arithmetic operations, subroutines, pipes and redirection based on standard unix syntax. It also has some coolness features that make it really nice for working under Windows. For example, check out the FOR command, it is pretty powerful in it's own right. I use it for just about everything.
I can go on and on, but never ever put down command shell, it's just another tool like anything else. If you cut on command shell, you might as well rule out the "ls", "cp", or "rm" commands under unix.
IE, Media Player, Office, Outlook all run "in the user's process space". Just like Linux, Win2k Administrator is root, and everyone else has some other privilege level. Ordinary users are...well ordinary users. You can't muck with files marked "Users:Read " or "Everyone:Read". There's no such thing as "setuid" under NT architecture.
In fact NT/Win2k/XP file system security are so secure, you can't chown. You can only "take-ownership". That is there for audit purposes. I must "give you rights" to take ownership of files. That method allows an audit trail to be implemented where we know who the creator of the original files were. In practice however there is a "way" for an administrator to set a file ownership, I'm just not going to tell you how!
...was designed to allow one, to send to many, without wasting valuable bandwidth. It was made more for a few (content providers) to provide for the many. Just like television. You don't normally interact with television broadcasters, but you are getting the equivalent of gigabytes a day from them in one-way audio/visual content.
Multicasting was made to be used along-side traditional tcp/ip communication methods, not replace them.
Geeze, I just don't get this thread. They don't have to change anything, just charge me for the bandwidth. Multicasting gives the ISP more bandwidth, not less. Instead of having to deal with 100s of separate unicast streams all converging up the ISP chain to the originator, multicast only uses one stream.
All the clients "listen" to the same multicast IP address for their content. It's just like television broadcasting. The T.V. station sends one signal to the main transmitter, each ISP is like a little repeater, and every home listens-in on the same signal.
The ISP's save money because they can handle more data using the same equipment...which means they make more money using multicasting.
I'm getting freaked by how little people know about multicasting!
Um, no...that isn't the way multicast works. The provider of the stream content sends one stream at 1Mbps to their ISP. The client receiver only receives the stream at 1Mbps. The ISP then charges each client for 1Mbps of service. The stream rate never increases, that's the point of multicast...only one stream. The advantage of this is that multiple clients can listen to the same stream at the same time on the client side with that 1Mbps stream.
MMORP games would be a perfect application for multicast on the read side, since the server would only need to send one stream, and all the clients listen in on it. Although sending data back to the server would require a separate client stream. It would greatly reduce the traffic generated by sending every client a copy of the same server update.
You are thinking of unicast in which for every client you need a separate 1Mbps stream. so, as we move up the ISP networks we converge on the sender which bears the responsibility to have...for example, 100Mbps for 100 simultaneous connections.
Multicast scales to millions of clients, not 100's, and with the added advantage of reducing global Internet traffic!
What you are saying is just silly. With unicast the ISP will "always" need to route through the multiple steams and you will have to send them. You are using MAX bandwidth on both sides of the pipe with unicast. With multicast however the bandwidth savings will be substantial, on your end for sure, but definitely on the ISP end also.
Multicast will cost less. The reason multicast didn't take off is because it wasn't properly implemented at the routers, and companies like controlling their own content all the way to the end point user. That way they know what you are interested in. With multicast that information is not available to them. It's really a political power move to use unicast over multicast. And, in the end, some people just aren't that intelligent.
You can't observe a photon without absorbing it. Once you've observed it, you've destroyed it. Atoms exchange energy by absorption and re-emission. The photon is either absorbed, or not, there's no in between. It's like binary.
it's the kind of thing that keeps morons up at night thinking they can invent perpetual motion.
+1 cent.
If I play Doom 1 in 320x200 on this monitor will I get a headache?
-1 cent.
You would indeed need to simulate the "whole shebang". Here's why...
In the universe at large, events take place without our knowledge. The trees do in fact make sounds (as the definition of what a sound is) when they fall in the forest. These "unseen" events are what bring you to your "future". Computer gaming shows this. When you drop your gun at a certain location in the game, then go back for it later, it's still there right? Wrong. In the real world, you never know what "might" happen to real world objects once you leave them. In a sense, every object must have it's own running program for how it interracts with the rest of the universe, while observed, or not. This is done to preserve "continuity" and expection of information flow. If I fire a bullet into the forest, the computer needs to simulate what happens to that bullet because it may hit something that has consequences for my future.
Ordinary games simulate very little. It is just not possible to preserve the information flow from all the possible interactions between objects. The future needs to be consistent with the past. This can only be done by simulating everything. This is why quantum mechanics is probably right (no pun intended). The bifurcations from all possible events leads to what we call "the now".
This is also why quantum mechanics solves the paradox of "free will". The universe can be seen to be working out every possible future. The "road not taken" is in fact taken as well as all other possible paths, at the same time. Every choice you think you make leads to two versions of "you". In one universe, you think you made a positive choice. In the other bifurcated universe you think you made a negative choice. Each "you" believes there's only one.
What's the point? The universe "as an entirity" is working out every conceivable possible solution path. In 8 bits there's only 256 combinations, no more, no less. And so with the universe, infinite, or not. Every logically possible universe will be worked out at some point. The only ones that will never occur are logical impossibilites like places where the sky is both "black" and "white" at the same time. Or, stones so heavy that they can't be lifted by infinite forces.
If the universe is a simulation, then it is not a simulation running "on a computer", the unviverse itself "as it exists" is the simulation. This is the only way to preserve information. You can say, information is never created or destoyed, it is only changed.
+1
What you've stated is contrary to the idea that artists have been leaching off of great thinkers for centuries. James Burke, author of "Connections", and "The Day the Universe Changed", goes to show in detail just how artists extrapolate from ideas generated by people who know, or have found, how things really work. Artists basically see the world of reality as characatured, in their mind, then they use emotion to blow ideas way out of proportion.
Just look at modern movies these days. Almost nothing in them is possible, yet people act like they "will be one day". In fact, when the day comes, what we actually get is 180 degrees different in the way it works, than the artists had originally intended. And, that is the real point isn't it? When "warp drives" are finally invented, they won't be "warp drives", they will be something based on real thinking, on reality, not fantasy. Most people dream of flying, and can write stories as such, that's easy, but few can actually make it happen. Space, was never space to the artists of old, it was heaven, only scientists actually showed that it was "space".
That's why I really like Authur C. Clarke as an author. He bases most of what he writes on real possibilities instead of unimaginable probabilites. Only very rarely are artists correct about the future, just like a million monkeys all typing away trying to produce something tangable.
Artists ARE leaching off of scientists and engineers! It's not the other way round. Get that through your head, or go back and live with the Amish.
+2 more cents.
True hackers read engineering, programming, and science books. Leave the fiction writers to dwell on things that are for the purpose of fantasy and escape, and sometimes glimpses into the future.
The end is not the point, getting there, now that's a really journey!
The needs of the many can be accommodated by the work of the few. The needs of the few, are, for the most part, irrelevant.
+2 cents.
Seems a lot like the ATA vs. SCSI debates. You've got this class of people who must buy whatever the "best" cards are, and are recognized to be the "best" cards for doing certain things by their peers. If their peers are gamers, then you'd probably buy and FX, or Radeon. If their peers are engineers, then you wouldn't be caught dead not spending thousands of dollars for a Quadro or something. Interesting that the Quadros would be slower at rendering.
The only thing you seem to be getting out of 3D labs and Quadro level cards are industry certifications for high level CAD/CAM software. This seems to be a bit of an click group where'in they are self supporting. You buy in by purchasing a high cost card, then you are in the click, so to speak.
But don't the gamer level cards also perform for CAD/CAM? Is this an ATA vs. SCSI type of debate?
+1 penny.
Everyone knit picks about a few percentage points here and there when comparing Nvidia and ATI cards. But, for people with money to spend, there are more expensive CAD Pro level cards out there. I am wondering, what the fastest card you can purchase is for the PC AGP bus? Anybody know? And, how much faster are they than the FX or Radeon?
Another annoying thing... Looks like Nvidia and ATI are now price tiering cards. Up until recently, the most you would pay retail for the best consumer level card was around $400. Now it looks like Nvidia and ATI want to push us into the $500 card level. What is next year card $600?
You said..."Not all programs have the same requirements. In most cases developer time is much more valuable than CPU time."
This is a funny thing to say. I think end-user time (and resources) is much more valuable than developer time! That is why they are paying for your progam in the first place.
You said..."Ridiculous. Most good programming techniques are independent of language. If you can't develop effectively in anything but C or C++, then your "skillz" could use some work."
You should be surprised. Sure, techniques are independent of language. I may have been wrong to use the word skillz. More precisely, part of being skilled at something is experience. Experience in one language does not directly translate to another very easily. Verbal languages that people speak around the world is an example. The syntax and constructs might carry over easily, but learning what all those words mean (or do, as in the case of programming languages) can be hard.
I can't justify telling everyone to use C all the time. Of course, every problem has a specific solution that works best. You are correct, there is a trade-off. I'm just saying that, over time, you may regret not knowing something well that is, in fact, more efficient and effective for writing compace and fast code. I sort of regret all the programming time I threw away with VB. But, I still use it when push comes to shove, and I guess I should be happy I know a good bit about the language. Being versatile is good, but being a jack of all trades, master of none, sucks!
+4 cent.
Sure, I know that. Tiny little executables get produced for Java too. The problem is the thing won't run without the runtime libraries loaded, which turn out to be very large. The VB virtual machine for VB6.0 is 1384448 bytes for example. That's just for the core language. This doesn't count all the custom control OCX's and other stuff your program might use. With VB.NET, your program won't run without the .NET Framework installed (what is that, around 25Meg ?). Try sending a 6.5k program to someone who doesn't have the required libraries and see what your get.
In the early days, before Java, there was talk about how Microsoft couldn't include the VB runtime libraries into the core OS install. Many VB programmers wanted this so they could just distribute tiny little apps. The problem was, and probably still is, that including those libraries would necessarily mean they would have to include libraries from other companies who write languages. VB is a language and a product from Microsoft. You can't allow the languages product line from Microsoft to have any advantage in the industry by including only their runtime libraries into the core OS.
Try running that 6.5k app, then look at the task manager to see how big a memory footprint it uses. Make sure you modify the task manager to show all the columns that include physical and VM size.
+1.0
I used to be the best damn VB programmer there was until around version 6.0. Well, maybe not the best, but I sure did some cool stuff with VB. I got started years ago with GWBASIC too. IBM made one of the first PC compilers for BASIC called "BASIC Compilers 1.0 and 2.0" This was the pre-mouse era, 1985-87'ish days. For lack of a good editor, I used the GWBASIC interface. When we finally compiled with the 1.0 compiler, the code ran a good bit faster. Then, we got the 2.0 compiler. Oh god how slowly our code ran with 2.0. I don't know what happened with 2.0 but it just didn't cut it. We ended up selling our program compiled with the 1.0 compiler.
Later, around 1988, we got our hands on the first Microsoft QuickBasic compilers. The compiled code then ran like lightning! We found that the QuickBASIC's used the new P-code interpreter. I used QuickBASIC quite a bit. Later, in the early 90's, I changed to VB around version 2.0. VB was quite nimble for program size and execution speed. But when we got version 4.0, it would compile to native code. This was the best performance I ever got out of VB before I realized...hey, the language just isn't giving me what I wanted...eg...smaller size, and faster speed.
Actually, I had been programming in C since around 1989. And, the more I used C, the more skilled I got at writing C code. The break point came with VB 6.0. I just couldn't justify using VB anymore as it wasn't a good environment for writing command line system administration programs. I was entering into systems administration/programming as my main job, so my code needed to run fast, lean, and mean.
When the Java phenomenon hit, I saw clearly from my VB experience that this just wasn't going to be a pretty scene. On the one hand, you had plenty of newbies who really didn't know anything about programming spouting the Java mantra. And, with the Internet, it seemed the entire world was going Java. The two bubbles of Java and the Internet seemed to go hand and hand.
The state of Java now is pure and simply...just bloat. For example, just download and run Morpheus. The thing is written in Java, and for just a simple application, uses 54 Meg. What the heck, 54 Meg!!!??? And, this C# stuff that Microsoft is producing just isn't any better. A simple C# hello world program uses 11 Meg!
I just can't use applications that take seconds to minutes to load up, then use up all my memory, then run slow as Christmas. I'm a systems programmer, I write applications that load, do what they need to do as fast as possible, then completely unload and get out of the way. My apps have to run background'ed so they don't interfere with the users. I don't want my memory used for program space, it's supposed to be used for data space!
You might say that memory, disk, and GHz are cheap now. Well my response is...so are your coding skillz! The one thing I've realized over the years is that the more time you spend programming in these high level languages, the more real experience you lose where you could be coding smaller and more efficiently nearer to the core. I'm trying to say that maybe I wasted a good bit of time in VB when I shouldn't have. The same goes for the Java guys. We had a great programming language called C, and C++ that got pushed to the back-burner because of some people who decided that garbage collection and VM's were a "good thing". Well, maybe they are, but at the expense of expertise in programming? I mean come on, if you can't handle pointers, can you really call yourself a programmer?
I'm so tired of programming environments that keep people from shooting themselves in the foot, or coddle beginning coders. Programming is a skill and an art. It is a good bit like architectural design. Java and VB just turn things into manufactured housing. Do you "want" to live in a double-wide home, or one that was designed to be functional, strong, and beautiful?
I suppose I'm being too hard on everyone here. Heck, I still use VB
..."And you will never, never, never, succeed in creating a programming language in which it is impossible to do stupid things."
Well, maybe true. Actually if assembly is counted as a language then I don't think you -can- do anything stupid there.
Remmember, if you can't do it in assembly, then you probably shouldn't be having sex.
Nobody needs a distributed filesystem at home. That is complete insane overkill. Get you a big drive and export the whole thing NFS, or CIFS if you use Windows.
The end.
Oh my god! People still use that antique technology? Just say no! Even Sun long ago gave up on NIS. Poor scaling, poor security. No way man, no how.
We use NFS every day, but just for very special circumstances. If you really understand how NFS works, then you will understand why NFS is just not a viable solution for anything large scale, or small scale for that matter.
:)
NFS is not secure. At most sites, NFS is exported read-only and limited to the domain, or to a given set of machine(s). If you export NFS as read/write then the client had better be secured, or you better use kerberos, and for damn sure better be behind a firewall. NFS has no client side cache, no volume location service, no ACL's, no authentication (unless kerberized), no replication, yata, yata, yata. We've used NFS sparingly for over 15 years because we -know how it works, and know its limitations.
On the other hand, we set an AFS cell for enterprise scale application and data sharing. It currently uses Kerberos V authentication, has volume replication, global namespace, client cache, fault tolerance. User's can setup their own groups, set their own ACL permissions. Did I say quota? AFS has per-user/per-volume quota. Hey, guess what, symbolic links work from any volume to any volume on AFS. And, AFS is just a simple daemon. You crank it up, mount the top of your cell and poof, you are done.
Another positive is the fact that once you setup an AFS cell you automatically become part of a larger community. Any AFS cell can mount the entire file system of another AFS cell within the same tree. I can for example mount many large university and government cells and share files. AFS allows Internet-wide file sharing with full security. On most versions of the client you can even enable encryption on the connection so your files won't be snooped easily.
All of our Solaris, Windows, Linux, and Mac boxes can use the same AFS tree without blinking an eye. We use AFS for many things. Before LDAP was really worth anything, we used AFS for simply exchanging read-only data. It -is- a replcated and global file system! Just put your config files in the tree and you are done.
If you are one of those people who are blinded by "always doing things one way", then I'd suggest you wake up and smell another technology, I did, and I liked what I got in return. Look into OpenAFS, you'll be glad you did.
+10,000 karma points!
Yes, I too am disturbed. It goes to show how little people really know about enterprise scale file systems.
Mod this guy up!
Excellent choice! Sir! You win the prize for astute systems administrator!
AFS is the only enterpise ready, cross platform, secure, global namespace file system that is worth the money. In fact, OpenAFS is free...that's right...as in "beer".
+10 cents.
Nope, sorry, NFS is -not a distributed file system. No amount of automounter pain will bring you even close to AFS. NFS is just the traditional de-facto point-to-point client-mounts-server share file system. It is just like CIFS for Windows.
AFS on the other hand has volume location independence, client-side-cache, token based ACL security, global namespace, yata, yata, yata. If you think NFS is distributed, you are still in your crib compared to real enterprise filesystem administrators.
Go get another job.
+5 cents.
Nope, NFS is -not- a distributed file system. NFS is a point to point file system. And, unless you are using kerberized NFS, it is not secure.
The only file system that is truely distributed, has a global namespace, replication, and fault tolerance is AFS.
NFS is pretty much the same as CIFS for Windows. And, version 4 still doesn't have global namespace and volume location.
So, NFS can't be a common answer because it isn't even allowed to be in the game.
+4 cents.
who's there? A Win2k/XP administrator who's entire network infrastructure (500+ machines and 10,000+ users) runs efficiently and effectively from Win2k command shell scripts (.cmd's).
For those who lack the skills to find these things out on their own...
Windows NT, and especially Win2k/XP command shell scripting is very powerful. It is not DOS batch files.
You must remember one thing here, programming, scripting, and batching are all three different things. Each has it's own positive benefit. The smart administrator knows when to switch between the three methods to solve a problem. You wouldn't for example write a database in batch, or perl would you? And for that matter, to copy a file from one directory to another you wouldn't crack open your C++ compiler. I probably wouldn't use Lisp for heavy text groveling, would you? My point is intelligent administrators know what problems require what tools. Only application developers stay stuck to one method of problem solving for long periods of time. Administrators and system programmers don't have that luxury.
Back to Win2k/XP command shell scripting... You'd really be surpised at what you can do with simple batching. I think the KISS rule of problem solving epitomizes command shell pretty good. The other thing is that the interpreter is so small compared to perl, or VB, or Java. When you execute a CMD file the interpreter loads up instantly like notepad. The memory used is typically 1 Meg. Perl uses ~4 meg or more, VB uses about the same. Java uses ~9 meg. And, oh god "hello world" in C# uses about 11 Meg! No way am I going to use that for network administration scripting!
There's also all kinds of "tricks" you can pull in command shell, just like any language. Finding those gems is what separates the men from the boys. The command shell allows arithmetic operations, subroutines, pipes and redirection based on standard unix syntax. It also has some coolness features that make it really nice for working under Windows. For example, check out the FOR command, it is pretty powerful in it's own right. I use it for just about everything.
I can go on and on, but never ever put down command shell, it's just another tool like anything else. If you cut on command shell, you might as well rule out the "ls", "cp", or "rm" commands under unix.
+99 cents.
You are completely and utterly...dead wrong.
IE, Media Player, Office, Outlook all run "in the user's process space". Just like Linux, Win2k Administrator is root, and everyone else has some other privilege level. Ordinary users are...well ordinary users. You can't muck with files marked "Users:Read " or "Everyone:Read". There's no such thing as "setuid" under NT architecture.
In fact NT/Win2k/XP file system security are so secure, you can't chown. You can only "take-ownership". That is there for audit purposes. I must "give you rights" to take ownership of files. That method allows an audit trail to be implemented where we know who the creator of the original files were. In practice however there is a "way" for an administrator to set a file ownership, I'm just not going to tell you how!
+55 cents.
...was designed to allow one, to send to many, without wasting valuable bandwidth. It was made more for a few (content providers) to provide for the many. Just like television. You don't normally interact with television broadcasters, but you are getting the equivalent of gigabytes a day from them in one-way audio/visual content.
Multicasting was made to be used along-side traditional tcp/ip communication methods, not replace them.
9-9+9
"...the ISPs can't figure out how to bill it."
Geeze, I just don't get this thread. They don't have to change anything, just charge me for the bandwidth. Multicasting gives the ISP more bandwidth, not less. Instead of having to deal with 100s of separate unicast streams all converging up the ISP chain to the originator, multicast only uses one stream.
All the clients "listen" to the same multicast IP address for their content. It's just like television broadcasting. The T.V. station sends one signal to the main transmitter, each ISP is like a little repeater, and every home listens-in on the same signal.
The ISP's save money because they can handle more data using the same equipment...which means they make more money using multicasting.
I'm getting freaked by how little people know about multicasting!
67.87+3
Um, no...that isn't the way multicast works. The provider of the stream content sends one stream at 1Mbps to their ISP. The client receiver only receives the stream at 1Mbps. The ISP then charges each client for 1Mbps of service. The stream rate never increases, that's the point of multicast...only one stream. The advantage of this is that multiple clients can listen to the same stream at the same time on the client side with that 1Mbps stream.
MMORP games would be a perfect application for multicast on the read side, since the server would only need to send one stream, and all the clients listen in on it. Although sending data back to the server would require a separate client stream. It would greatly reduce the traffic generated by sending every client a copy of the same server update.
You are thinking of unicast in which for every client you need a separate 1Mbps stream. so, as we move up the ISP networks we converge on the sender which bears the responsibility to have...for example, 100Mbps for 100 simultaneous connections.
Multicast scales to millions of clients, not 100's, and with the added advantage of reducing global Internet traffic!
"You must unlearn what you have learned."
+2.5 -3.7 log 7
What you are saying is just silly. With unicast the ISP will "always" need to route through the multiple steams and you will have to send them. You are using MAX bandwidth on both sides of the pipe with unicast. With multicast however the bandwidth savings will be substantial, on your end for sure, but definitely on the ISP end also.
Multicast will cost less. The reason multicast didn't take off is because it wasn't properly implemented at the routers, and companies like controlling their own content all the way to the end point user. That way they know what you are interested in. With multicast that information is not available to them. It's really a political power move to use unicast over multicast. And, in the end, some people just aren't that intelligent.
-1 -1 + 1 * 5