NASA is working on a really, super exciting project called Jupitor Icey Moons Orbitor. This project, should it be allowed to proceed with full funding, would:
a) Create a space based nuclear reactor b) Use that reactor to power an ion engine c) Use that ion engine to not only get to Jupiter in record time, but also to explore all of the major moons and for months at a time. d) The power from the nuclear plant would be used to do a deep penetrating radar scan of Europe and the other icey moons. This will allow for the detection and analysis of oceans out in all of the major Jovian moons that might have them.
JIMO is the most dynamic, most new, most novel, most daring and ambitious of all NASA space projects to date. If it means cutting manned space flight, if it means cutting a fricking aircraft carrier, JIMO MUST be allowed to launch.
If you can build an unmanned ship with a nuclear powered ion engine, you can build a manned ship with one too. Sending robots to jupiter will help us send people --really--- into space.
Whatever your political affiliation, urge your congressman to support JIMO. Or, let's just all take up a collection and write JPL a check for the thing!
First off, I don't believe that socialism is the answer. My point was to make a joke based on the observation that the abuses of concentrated power that we criticize socialism for can also happen under capitalism. I don't think a massive bureacry is the answer, but I also see that unfettered capitalism cannot work completely either.
The Government most certainly has eminent domain rights in the US. They could bulldoze your home, if they wanted to. Just ask anyone that lived in low income housing in New York City in the 1950s.
The perceived benefits of capitalism, innovation, competition, transparency, and choice, exist less and less.
I certainly agree that socialism has, at its root, the fundamental problem of the abuse of concrated power.
However the loss of rights under our system continues to grow and will eventually eclipse the loss of rights of a democratic socialist system. Big industries are merging to become bigger industries, then, buying the governments to make laws that protect their own existence, and using their network effects and intellectual property statutes to thwart competition - all of this regardless of economic efficiency.
In the present capitalist trend, everything you buy is actually not yours, after you've bought it. You pay money to effectively receive the right to use something, in some limited fashion that precludes you from doing anything to detract from the licensor's business model.
In the socialist system, when you get a good, you can do anything with it that you want. Property may be redistributed, but, at least if you do wind up with property, you actually have something. Under capitalism, you have nothing at all but what the manufacturer tells you that you have, at their whim.
If a manufacturer wants to sell something at a loss, that's their own dumb fault and doesn't entitle them to infringe upon my rights of ownership of a good as a consumer.
I'm not using an application framework in my system because I already have a fairly well defined abstraction layer. There is a piece for sockets that will need a bit of tuning, I'm sure, but the other piece is for memory mapped files and that I want to do differently on Linux.
Under Linux you can grow the size of a mapped file without having to close any outstanding mappings. Under Windows you have to keep track of all the outstanding mappings (file offsets to ptrs), so that if you do grow the file, you can put everything back into place. Because I did the Windows version first, it follows that there is a lot of code in this one layer that would be unnecessary in the Linux version. Thus, the #ifdef.
Were I writing a GUI application, then, absolutely I would use an application framework.
grep / sort bad examples if (little file) memory_map_it.
That's one allocation. And you would do an allocation per line? Boy that's silly. In this scheme, there is no overflow.
If the file is too big or over a threshold, probably should require some extra priviledges to sort.
swap file argument red herring Most applications have no control over when the O/S swaps out a physical page. I will tell you that if you are doing stuff with the VM, you are going to know exactly at least the locality of things getting swapped out.
dynamic optimization I love this. The argument is that dynamic allocation does not pay a huge processor penalty. By definition each allocation is a search. If you have a perfectly sorted heat, then your time is O( log n ). That is, you program's performance decays with the amount of data. If, on the other hand, I do a clever thing and get an O( 1 ) serach, then, as I would if my next free block were a simple pointer addition, then, I pay little CPU tax at all.
Now granted, I program in Perl myself, and C#. And, again, I made the point that if you program in a language that supports dynamic programming, then, go for it. But, the discussion was about C++ and my point is that if you are going to program in C++, then go for fixed size records.
PS. If you program in Perl and are just doing while , then, you've opened yourself to a DOS attack. Duh.
I'm wondering if I could use Borland stuff to make services that run on both Linux and Windows. I don't expect or want O/S compatability layer. I'm a big boy and I understand how to use #ifdef. What I do want is to be able have my project on an EXT2 partition, do a Linux build, test, then, boot into Windows, do a build, test, etc...
If the corporate system does not work for me, then screw it. It's a system and we have choices. Companies are all in favor of free markets except when it comes time to compete, why should I be any different!
My question is, why can't the people of India build themselves up the way the Europeans and the Americans did. They can't because of an economic system that screws everyone. Third world nations can't get their markets started by themselves because the first world nations don't want them to industrialize outside of their control, and the first world citizens get their careers continuously destroyed by their supposed leaders.
You know what this system is? It's a bunch of robber barons screwing over the third world and the first world at the same time, adding no value to the system anywhere.
If you really wanted the third world to be able to compete, you would get rid of all intellectual property world wide, and let the value of the dollar and the euro plummet to match parity with the rupee.
My company has a nuclear bomb in the back of a pickup for a logo....:-)
if (STL) { should_use_interpreted_language(); }
on
Secure Programming
·
· Score: 1
If you do need string and all that fun STL stuff, and don't want to worry about memory allocation, I think you need to use a language that is designed to do memory allocation for you, like Perl, Java, C#, Python, VB, etc...
I always thought the whole point of C++ was that you got to impose a somewhat object oriented look at a total control of memory and hardware, not to be an end all be all object oriented system. That is, C++ is the way it is because it is a systems and hardware language first, and an application language second. If you don't want to worry about memory, or worry about hardware, then you should not be using C++. C++ is if you are worried about hardware. Simply using STL and saying it will be fast because it is C++ ought to be the quintessential test for programming incompetence.
STL doesn't really offer any advantages, particularly for server side or performance programming. It's based on new, which is globally specific, not, context specific. That f--- the whole language up right there, because without some new context you don't have an elegant way to do thread specific allocators, etc, and out goes your speed right out the window because you have all these blocking heaps. To get these blocking heaps, you make your design even harder to debug. All of these thread intermingled allocations make it difficult to track down real leaks and bugs.
For me, in Commodity Server, I used a much different tack. I gave each thread a set of virtual memory backed structures. For the most part a vm vector works but I do use skip lists quite a bit, each with their own allocation context which is typically a thread.
For the most part, I don't really even --need--- a good old "string" that much. So, while STL makes it easier to have a set of bugs to do something, I think, it's better still to have a design where the bugs could not be introduced at all.
STL's sole reasons for existence is to solve people problems, not technological ones. If two developers are in a fight over whose collection template to use, STL is the dummy default.
PS: std::cout / std::cin are a silly workaround for real problem of fprintf (argument lists in C++ do not have a length!).
The rest of us don't get government protected handouts when technological advance makes our skills obsolete.
We don't rue the loss of the welder's job, the steelworker's job, the woodworker's job, the craftsman's job, the accountants job, when a machine makes it unnecessary.
So, why all of a sudden does an INDUSTRY deserve protection. You don't need to have an industry to distribute music anymore, and you don't need to have a select few artists be turned into mega stars. Now, everyone's opinion, art, and songs can be pushed out there.
Napster, Kazaa, the web, just reflect a basic economic reality. The supply of content is infinite and so the value of the commodity is zero.
Being in favor of copyright laws in the digital age is like trying to bring back the horse and buggy. Being in favor of the "intellectual property era" is like trying to where the catholic church was right before they had this thing called the renaissance.
We are now going through a second renaissance. So far, American industry seems hell bent on trying to stop it. It ain't the Terrorists that will sink the United States. It will be the gradual realization that intellectual property is absurd and that trying to enforce this artificial monopoly on the world is morally wrong.
The reasons for space have to be imperial and greed based, or no one will go. You have to look at how the old west was settled and use that as analog for space.
1. Because the earth sucks for some people and they would rather go live some place else. By living on XYZ base, you get away from all the women and stupid rules.
2. Because you can get rich. If you can get your ship to XYZ planet, the United States will give you the legal right to claim the 100 mile square you landed on.
How does NASA ban private industry in space? By refusing to subsidize it?
Geez, I thought if private industry were so efficient, they could deploy much better worldwide tracking facilities and deep space communications capabilities than NASA.
Variable input == DOS attack hole
on
Secure Programming
·
· Score: 4, Insightful
The problem is not the language, it's our style of programming.
The whole reason that security issues have proliferated is our stubborn insistence on allowing for variable input. If all input and systems had hard wired capacities, then, there could be no denial of service attacks as program behavior would be bounded.
Even C# and Java have DOS issues becuase of their unbounded nature. A program that reads an input stream and stuffs a link lists will be just as supsectible to denial of service attacks as any others.
Some of us remember gravitating over to C from the old Pascal and FORTRAN and BASIC because of C's penchant for creating dynamic data structures. AS I look back on that era, I wonder if we didn't make something of a mistake.
I wonder if we might borrow some of the practices from that ancient era, and use dynamic allocation as the exception, rather than rule. Programs should have fixed numbers of objects. Programs should have fixed input sizes and maximum capacities. String fields should always have a maximum, fixed, size.
I should note that if we do have less variable length allocations, then, we less likely need programming languages that make variable length easy. A more conservative, almost retro programming technique could make for faster, more secure programming.
So, what's the point of buying a Sun box these days? Other than having an obsolete operating system running on top of aging hardware, the advantages of Sun's model seem legion!:-)
Having RIAA and the music industry trying to prevent people from copying music digitally is like trying to have a law that keeps people from using tractors on a farm to save the plowmans' job.
Technology has advanced where we do not need a recording industry to capture and distribute music, any more than we need to have farmers plowing fields by hand.
The DMCA should be argued against as the act of corporate welfare that it is.
Goodyear didn't get gov't breaks against the onslaught of radial tires which lasted longer. Horse and buggy makers didn't get breaks against car engine makers. Propeller plane makers didn't get breaks against the Jet engine makers. Neither too should the recording industry get breaks against the new computing industry.
Imposing artificial restrictions and charges in the music world completely goes against the grain of technological progress and truly free markets.
NASA is working on a really, super exciting project called Jupitor Icey Moons Orbitor. This project, should it be allowed to proceed with full funding, would:
a) Create a space based nuclear reactor
b) Use that reactor to power an ion engine
c) Use that ion engine to not only get to Jupiter in record time, but also to explore all of the major moons and for months at a time.
d) The power from the nuclear plant would be used to do a deep penetrating radar scan of Europe and the other icey moons. This will allow for the detection and analysis of oceans out in all of the major Jovian moons that might have them.
JIMO is the most dynamic, most new, most novel, most daring and ambitious of all NASA space projects to date. If it means cutting manned space flight, if it means cutting a fricking aircraft carrier, JIMO MUST be allowed to launch.
If you can build an unmanned ship with a nuclear powered ion engine, you can build a manned ship with one too. Sending robots to jupiter will help us send people --really--- into space.
Whatever your political affiliation, urge your congressman to support JIMO. Or, let's just all take up a collection and write JPL a check for the thing!
The whole argument against Linux and open source is that the vendors have no warranty. Yet, what software actually DOES have a warranty?
Does Sun assume any responsibility for anything with Solaris or Java?
Does Microsoft assume anything with Windows?
No, they don't.
First off, I don't believe that socialism is the answer. My point was to make a joke based on the observation that the abuses of concentrated power that we criticize socialism for can also happen under capitalism. I don't think a massive bureacry is the answer, but I also see that unfettered capitalism cannot work completely either.
And anyone who is a lawyer, is denied access to all computing systems.
Everyone should NOT pay SCO. If nobody pays them, they go out of business. They have no money left.
The Government most certainly has eminent domain rights in the US. They could bulldoze your home, if they wanted to. Just ask anyone that lived in low income housing in New York City in the 1950s.
The perceived benefits of capitalism, innovation, competition, transparency, and choice, exist less and less.
I certainly agree that socialism has, at its root, the fundamental problem of the abuse of concrated power.
However the loss of rights under our system continues to grow and will eventually eclipse the loss of rights of a democratic socialist system. Big industries are merging to become bigger industries, then, buying the governments to make laws that protect their own existence, and using their network effects and intellectual property statutes to thwart competition - all of this regardless of economic efficiency.
Not to be a devil's advocate but...
In the present capitalist trend, everything you buy is actually not yours, after you've bought it. You pay money to effectively receive the right to use something, in some limited fashion that precludes you from doing anything to detract from the licensor's business model.
In the socialist system, when you get a good, you can do anything with it that you want. Property may be redistributed, but, at least if you do wind up with property, you actually have something. Under capitalism, you have nothing at all but what the manufacturer tells you that you have, at their whim.
If a manufacturer wants to sell something at a loss, that's their own dumb fault and doesn't entitle them to infringe upon my rights of ownership of a good as a consumer.
Really, is the entire Linux community have no developer tools creator who is as good as that Dutch guy from Borland!
I'm not using an application framework in my system because I already have a fairly well defined abstraction layer. There is a piece for sockets that will need a bit of tuning, I'm sure, but the other piece is for memory mapped files and that I want to do differently on Linux.
Under Linux you can grow the size of a mapped file without having to close any outstanding mappings. Under Windows you have to keep track of all the outstanding mappings (file offsets to ptrs), so that if you do grow the file, you can put everything back into place. Because I did the Windows version first, it follows that there is a lot of code in this one layer that would be unnecessary in the Linux version. Thus, the #ifdef.
Were I writing a GUI application, then, absolutely I would use an application framework.
Does it always work?
What if I use a mixture of tall and short letters in the side?
axl ywrjr baee axtxe bwejkjkjkg to us
or what if I vary the length?
aasdfl yasdfr basdfe aasdfe basdfg tasdfo uasdfs
grep / sort bad examples
if (little file) memory_map_it.
That's one allocation. And you would do an allocation per line? Boy that's silly. In this scheme, there is no overflow.
If the file is too big or over a threshold, probably should require some extra priviledges to sort.
swap file argument red herring
Most applications have no control over when the O/S swaps out a physical page. I will tell you that if you are doing stuff with the VM, you are going to know exactly at least the locality of things getting swapped out.
dynamic optimization
I love this. The argument is that dynamic allocation does not pay a huge processor penalty. By definition each allocation is a search. If you have a perfectly sorted heat, then your time is O( log n ). That is, you program's performance decays with the amount of data. If, on the other hand, I do a clever thing and get an O( 1 ) serach, then, as I would if my next free block were a simple pointer addition, then, I pay little CPU tax at all.
Now granted, I program in Perl myself, and C#. And, again, I made the point that if you program in a language that supports dynamic programming, then, go for it. But, the discussion was about C++ and my point is that if you are going to program in C++, then go for fixed size records.
PS. If you program in Perl and are just doing while , then, you've opened yourself to a DOS attack. Duh.
I'm wondering if I could use Borland stuff to make services that run on both Linux and Windows. I don't expect or want O/S compatability layer. I'm a big boy and I understand how to use #ifdef. What I do want is to be able have my project on an EXT2 partition, do a Linux build, test, then, boot into Windows, do a build, test, etc...
Thoughts?
You are saying that NASA blocks people from launching rockets. I am asking: HOW.
You're making a claim without anything to back you up.
What stops ME from launching a rocket myself? The FAA maybe, but not NASA.
I'm not getting used to anything.
If the corporate system does not work for me, then screw it. It's a system and we have choices. Companies are all in favor of free markets except when it comes time to compete, why should I be any different!
My question is, why can't the people of India build themselves up the way the Europeans and the Americans did. They can't because of an economic system that screws everyone. Third world nations can't get their markets started by themselves because the first world nations don't want them to industrialize outside of their control, and the first world citizens get their careers continuously destroyed by their supposed leaders.
You know what this system is? It's a bunch of robber barons screwing over the third world and the first world at the same time, adding no value to the system anywhere.
If you really wanted the third world to be able to compete, you would get rid of all intellectual property world wide, and let the value of the dollar and the euro plummet to match parity with the rupee.
My company has a nuclear bomb in the back of a pickup for a logo....
If you do need string and all that fun STL stuff, and don't want to worry about memory allocation, I think you need to use a language that is designed to do memory allocation for you, like Perl, Java, C#, Python, VB, etc...
I always thought the whole point of C++ was that you got to impose a somewhat object oriented look at a total control of memory and hardware, not to be an end all be all object oriented system. That is, C++ is the way it is because it is a systems and hardware language first, and an application language second. If you don't want to worry about memory, or worry about hardware, then you should not be using C++. C++ is if you are worried about hardware. Simply using STL and saying it will be fast because it is C++ ought to be the quintessential test for programming incompetence.
STL doesn't really offer any advantages, particularly for server side or performance programming. It's based on new, which is globally specific, not, context specific. That f--- the whole language up right there, because without some new context you don't have an elegant way to do thread specific allocators, etc, and out goes your speed right out the window because you have all these blocking heaps. To get these blocking heaps, you make your design even harder to debug. All of these thread intermingled allocations make it difficult to track down real leaks and bugs.
For me, in Commodity Server, I used a much different tack. I gave each thread a set of virtual memory backed structures. For the most part a vm vector works but I do use skip lists quite a bit, each with their own allocation context which is typically a thread.
For the most part, I don't really even --need--- a good old "string" that much. So, while STL makes it easier to have a set of bugs to do something, I think, it's better still to have a design where the bugs could not be introduced at all.
STL's sole reasons for existence is to solve people problems, not technological ones. If two developers are in a fight over whose collection template to use, STL is the dummy default.
PS: std::cout / std::cin are a silly workaround for real problem of fprintf (argument lists in C++ do not have a length!).
The rest of us don't get government protected handouts when technological advance makes our skills obsolete.
We don't rue the loss of the welder's job, the steelworker's job, the woodworker's job, the craftsman's job, the accountants job, when a machine makes it unnecessary.
So, why all of a sudden does an INDUSTRY deserve protection. You don't need to have an industry to distribute music anymore, and you don't need to have a select few artists be turned into mega stars. Now, everyone's opinion, art, and songs can be pushed out there.
Napster, Kazaa, the web, just reflect a basic economic reality. The supply of content is infinite and so the value of the commodity is zero.
Being in favor of copyright laws in the digital age is like trying to bring back the horse and buggy. Being in favor of the "intellectual property era" is like trying to where the catholic church was right before they had this thing called the renaissance.
We are now going through a second renaissance. So far, American industry seems hell bent on trying to stop it. It ain't the Terrorists that will sink the United States. It will be the gradual realization that intellectual property is absurd and that trying to enforce this artificial monopoly on the world is morally wrong.
The reasons for space have to be imperial and greed based, or no one will go. You have to look at how the old west was settled and use that as analog for space.
1. Because the earth sucks for some people and they would rather go live some place else. By living on XYZ base, you get away from all the women and stupid rules.
2. Because you can get rich. If you can get your ship to XYZ planet, the United States will give you the legal right to claim the 100 mile square you landed on.
How does NASA ban private industry in space? By refusing to subsidize it?
Geez, I thought if private industry were so efficient, they could deploy much better worldwide tracking facilities and deep space communications capabilities than NASA.
The problem is not the language, it's our style of programming.
The whole reason that security issues have proliferated is our stubborn insistence on allowing for variable input. If all input and systems had hard wired capacities, then, there could be no denial of service attacks as program behavior would be bounded.
Even C# and Java have DOS issues becuase of their unbounded nature. A program that reads an input stream and stuffs a link lists will be just as supsectible to denial of service attacks as any others.
Some of us remember gravitating over to C from the old Pascal and FORTRAN and BASIC because of C's penchant for creating dynamic data structures. AS I look back on that era, I wonder if we didn't make something of a mistake.
I wonder if we might borrow some of the practices from that ancient era, and use dynamic allocation as the exception, rather than rule. Programs should have fixed numbers of objects. Programs should have fixed input sizes and maximum capacities. String fields should always have a maximum, fixed, size.
I should note that if we do have less variable length allocations, then, we less likely need programming languages that make variable length easy. A more conservative, almost retro programming technique could make for faster, more secure programming.
You would wear a walkman in the car if you wanted to get the best stereo experience, and, to avoid the sounds of things like sirens and other cars!
I'm sorry officer I was trying to drive by echolocation but I forgot to take the headphones off...
So, what's the point of buying a Sun box these days? Other than having an obsolete operating system running on top of aging hardware, the advantages of Sun's model seem legion!
Having RIAA and the music industry trying to prevent people from copying music digitally is like trying to have a law that keeps people from using tractors on a farm to save the plowmans' job.
Technology has advanced where we do not need a recording industry to capture and distribute music, any more than we need to have farmers plowing fields by hand.
The DMCA should be argued against as the act of corporate welfare that it is.
Goodyear didn't get gov't breaks against the onslaught of radial tires which lasted longer. Horse and buggy makers didn't get breaks against car engine makers. Propeller plane makers didn't get breaks against the Jet engine makers. Neither too should the recording industry get breaks against the new computing industry.
Imposing artificial restrictions and charges in the music world completely goes against the grain of technological progress and truly free markets.