I have a notebook for travel. The fewer cables I carry the better. VGA is a must for presentations, and if all you have is a DVI connector, you have to carry the cable. I think Apple made a mistake leaving out the VGA connector on the higher-end G4s.
There are no theories of gravity other than Einstein's that mainstream physicists would even be willing to entertain. But the few alternative theories that physicists have proposed generally have speed-of-light propagation built-in; in fact, theories like Jefimenko's start out with that assumption.
If this experiment had come out differently, it would have been earth-shattering, and because it was cheap to do, it was therefore worth doing. But the way it did come out wasn't a "win" for Einstein, nor was it a "loss" for Einstein, it was simply almost completely uninformative.
It's like buying a lottery ticket when the jackpot is really large: the expected win from the lottery ticket is more than you paid for it, so it may be rational for you to participate, but if you don't win the jackpot, your modest investment is still lost.
You said, distributed, which means, available for download or other way of getting
I also said "85 Mbyte install", not "85 Mbyte distribution".
If you go from this point, you should talk about JRE
Come on, you are grasping at straws. I didn't make a point about Java being too big for download, I made the point that the Java libraries are very, very interdependent. And Sun likes it that way because it makes it really hard to clone Java. Java isn't alone in this: a lot of runtimes that effectively had only a single codebase during a key period of their development have the same problem: CommonLisp, Smalltalk, Python, etc. And the most popular system like that: Windows. Yes, Java and Windows, sadly, are not all that different.
To prove your point about libraries, you'd have to dissect JRE and see how much of it, is libraries, and how they really depend on each other (analyzing imports for example).
Maybe you do, I just run "java -verbose helloworld.java" and notice that it loads 287 classes to get its job done, or that an 11 line Java program that puts up a label window loads 653 classes.
Astronomers have discovered portions of what appears to be a giant, donut-shaped ring of previously unseen and surprisingly old stars surrounding our Milky Way Galaxy.
For very long-term storage and retrieval, encode information as artificial DNA strands and insert into living hosts. As vectors, bacteria, even some bugs and weeds, might be good for hundreds of millions of years.
It's inappropriate to refer to organisms as "bugs and weeds" in a biological context, not because it might hurt someone's feelings, but because it is biologically meaningless.
The idea itself is old and has been bounced around by SciFi writers as well as scientists. Whole stories have been written about ancient civilizations or space aliens encoding messages in DNA.
Two wheels with a motor doesn't have to be noisy, smelly, or without style.
A Vespa is a perfectly acceptable way for adults to motor around on two wheels and will probably get you a nicer kind of date than either an SUV or a motorcycle. And an electric bike is the choice for environmentally and health-conscious folks.
At the rate we are going, either there will be a lot of animals left in five million years, or if there are, then we'll probably not be around to see it.
It's possible that the mass extinction we are causing will cause a diversity of new body plans to spring up. But, more likely, the next 5 million years won't look very different from the last 5 million years, and, for the most part, animals weren't all that different or unusual over that period. The dinosaurs died out 65 million years ago, and, except for their size, even they weren't all that unusual in terms of morphology.
No, what you get is a nonstandard, substandard string implementation
Ummm--my response was to disprove your claim that standard libraries don't have a lot of coupling among their components. I wasn't necessarily suggesting writing your own string class.
Over time, as you code in more and more of the standard [...] class into your own class (and doing so poorly),
The whole point of implementing one's own version of a library class usually is to implement only a tiny subset of its functionality and/or to change the interface. One doesn't code "more and more of the standard class" over time; if one did, one should just use the library class. It's exactly because a custom class doesn't have to do everything that the library class does that a custom class can be written to be better often with very little effort.
If it was just about keeping the binary small you would have never used C++ in the first place.
C++ is widely used for embedded systems programming with very constrained amounts of memory. It was carefully designed so that none of its features have a significant impact on code size or runtime performance unless you actually use them. The only thing that causes C++ code size to bloat is indiscriminate use of libraries, standard or otherwise. And that brings us back to the original point.
The svelte size of 39 Mbytes is the compressed download.
The installed JDK is 85 Mbytes; that's what you need for development, which is what we are actually talking about here. The installed JRE is 56 Mbytes.
You're confusing your scooters. Kids ride around standing on two-wheeled things. Adults ride bicycle-like motorized things. The latter are comfortable, convenient, and not (too) weird.
Ah yes, I meet guys like you all the time. Convinced they can recode the STL better themselves, the lower bounds proofs not withstanding.
Using the algorithms with the best lower bounds does not guarantee the best performance on a given problem. Nor, for that matter, does using the algorithms with the best upper bounds or best average case complexities guarantee the best performance on a given problem. This is one of the first things people learn in their algorithms classes.
If you don't want to join the ranks of out-of-work programmers, I'd recommend seriously brushing up on your CS skills. This sort of thing is basic stuff. While the STL is a tedious and messy piece of code, there should be nothing mysterious or complex going on inside the STL for a competent programmer. If you don't know what's going on inside a library, you can't make effective decisions about when to use it.
Basically, your comments just keep supporting my point: many working programmers don't know what they are doing, and they use libraries because they have no alternatives.
Now you're using a straw man. What are these multi-megabyte libraries? You are referring to cross dependencies that pull in unnecessary code - these sympton usually appear more in hairy locally-crafted libs
Take a look at the Java libraries some time. In fact, the Java standard libraries are so dependent on each other that the whole thing is only distributed as a monolithic 85 Mbyte install.
Or, if you are a C++ kind of guy, look at the dependencies that using '#include <string>' pulls in; I get 91 distinct include files alone from just wanting to use simple strings.
Maybe you get those sorts of dependencies in the code you write; I don't.
You're right- there is too much focus on mumbo jumbo theory and little emphasis on knowing tools. If everyone reused the standard APIs in an intelligent way instead of redesigning them incorrectly, they might actually get some code out the door.
Wrong. There is too much reuse in the software industry, not too little. And the reason is that most programmers couldn't re-implement a library routine if their life depended on it.
So, they have to reuse, whether it makes sense or not. Out of incompetence, they pull in a megabyte of library code, deal with dozens of bugs in "standard" library code, and try to keep several APIs in sync for something that could easily be done in a few dozen lines of code.
That's not good software engineering. It's reuse taken to the point of absurdity. And it's one of the main reasons why software is so bloated and buggy.
walking. so one thing that i've heard from a few people is "what you're not going to walk anywhere?" here's the deal- my commute by walking would be 62 minutes, it's less than 17 on the segway ht.
The real question is: why not use a bicycle? It's proven technology, it's a lot cheaper, it's faster, and it gets you a little, but not too much, exercise on that 4 mile commute.
Yahoo's decision to switch makes sense: developing web sitesin PHP is generally easier than in C++ or Java.
But the article gets the reasons all wrong. It presents C++ as proprietary language with "variants", against open source PHP. That's, of course, complete nonsense. C++ is standardized and has multiple open source implementations.
I have found again and again working in industry that it is far more important to be very very good in the language of your code than to have a general grasp of concepts. Chances are your team will not be switching to a new language midstream, or trying to create a sorting routine faster than quicksort. Really, when is the last time you coded up new algorithms of a nontrivial nature? Often knowing the libraries is more important.
And, right there, you have an explanation of why most software teams fail, most commercial software products suck, and so many people keep buying junk development tools: software teams in industry don't have a clue what they are doing. They are just plugging together a bunch of library routines. They don't know whether to use quicksort or mergesort. They are mystified by what a garbage collector does and how to tune code to perform well. They have no clue what happens when they write "new object". TCP/IP might as well be ESP.
Thank you for demonstrating this point so clearly for us all. PS: Would you mind telling us where you work, as a warning?
agrees with my experience
on
Linux Is Cheaper
·
· Score: 3, Insightful
I have adminstered Windows and Linux machines myself (college, grad school, and as part of my job), and I have seen support costs of support organizations.
Windows administration is enormously labor intensive, even if you set up everything the way Microsoft recommends you do. Windows administration (and Windows programming, for that matter) reminds me of the recent thread on games Everquest and the Virtual Skinner Box: you get the feeling that Windows tools are structured to dole out rewards to keep you playing, even if your skill level is pretty low. It's no accident that so many dialog boxes say things like "Congratulations, you have just..."; some accomplishment--to stick a CD in the drive and enter a serial number. The goal, after all, is to keep people buying and recommending your product; if it doesn't work effectively for them, that's OK as long as the customers don't notice and feel good about it.
As a result, "certified" Windows sys admins feel really good about what they are doing--they get a sense of accomplishment. But a skilled UNIX or Linux sys admin can often accomplish with a couple of commands in seconds what it takes the Windows admins hours to do.
Unlike Windows, Linux won't try to make you feel good or give you a pleasant user experience. It won't encourage you or compliment you. It's just a professional tool, and at that it's quite effective. What it will let you do is, given the same workload, spend more time on the beach (or posting on Slashdot, as the case may be:-).
That's why Government financed development should be available WITHOUT contamination - via something like the BSD license, with fair attribution for the source of a derivative or integrating use.
I don't see why that logically follows. For example, just because the tax payer paid for a monument or city park doesn't mean that the government needs to open it for commercial activity. Governments used to pay for lots of non-commercial activities and create lots of non-commercial spaces.
If we, the people, find it beneficial to our purpose to create BSD-licensed software with government funding, then we should. But there is certainly no obligation to do so. The only issue of fairness is that whatever license we choose should not favor one business over another.
If you look at Microsoft's and Sun's licenses for their source code, they are much worse than the GPL in terms of "infecting" you.
You can look at the GPL and write your own proprietary implementation. But a lot of source code from companies like Microsoft and Sun software is licensed under agreements that "contaminate" you; that is, you can't develop a competing implementation because the presumption will be that you copied stuff from their source code. They also contain lots of other clauses that "infect you", like with an indefinite possibility of getting dragged into a law suit between Microsoft or Sun and a third party.
We aren't talking about "forcing" anybody to do anything: we are talking about whether customers, including the government, should choose to buy Microsoft's products or conduct research on improving them, given Microsoft's current licenses.
To me, the answer is a pretty resounding "no".
Microsoft can choose whatever licenses they like, but nobody should be under any obligation to buy their stuff.
The growth of known planets is proportional to the square. Anyway, I could probably have put it more succintly...
When people say that something "grows quadratically" or "has quadratic growth", they are saying that it grows like t^2, not that it grows like t^3 or t. Sorry, that's the way the term is most commonly used.
The number of accessible worlds grows like the cube of the distance (well, until you have made it through the thickness of the galactic disk at least).
I have a notebook for travel. The fewer cables I carry the better. VGA is a must for presentations, and if all you have is a DVI connector, you have to carry the cable. I think Apple made a mistake leaving out the VGA connector on the higher-end G4s.
If this experiment had come out differently, it would have been earth-shattering, and because it was cheap to do, it was therefore worth doing. But the way it did come out wasn't a "win" for Einstein, nor was it a "loss" for Einstein, it was simply almost completely uninformative.
It's like buying a lottery ticket when the jackpot is really large: the expected win from the lottery ticket is more than you paid for it, so it may be rational for you to participate, but if you don't win the jackpot, your modest investment is still lost.
Are these usable with GNU Pascal or Free Pascal?
That's, of course, "java -verbose helloworld".
I also said "85 Mbyte install", not "85 Mbyte distribution".
If you go from this point, you should talk about JRE
Come on, you are grasping at straws. I didn't make a point about Java being too big for download, I made the point that the Java libraries are very, very interdependent. And Sun likes it that way because it makes it really hard to clone Java. Java isn't alone in this: a lot of runtimes that effectively had only a single codebase during a key period of their development have the same problem: CommonLisp, Smalltalk, Python, etc. And the most popular system like that: Windows. Yes, Java and Windows, sadly, are not all that different.
To prove your point about libraries, you'd have to dissect JRE and see how much of it, is libraries, and how they really depend on each other (analyzing imports for example).
Maybe you do, I just run "java -verbose helloworld.java" and notice that it loads 287 classes to get its job done, or that an 11 line Java program that puts up a label window loads 653 classes.
Wow, that explains why he made the international sign of the donut.
It's inappropriate to refer to organisms as "bugs and weeds" in a biological context, not because it might hurt someone's feelings, but because it is biologically meaningless.
The idea itself is old and has been bounced around by SciFi writers as well as scientists. Whole stories have been written about ancient civilizations or space aliens encoding messages in DNA.
A Vespa is a perfectly acceptable way for adults to motor around on two wheels and will probably get you a nicer kind of date than either an SUV or a motorcycle. And an electric bike is the choice for environmentally and health-conscious folks.
It's possible that the mass extinction we are causing will cause a diversity of new body plans to spring up. But, more likely, the next 5 million years won't look very different from the last 5 million years, and, for the most part, animals weren't all that different or unusual over that period. The dinosaurs died out 65 million years ago, and, except for their size, even they weren't all that unusual in terms of morphology.
Ummm--my response was to disprove your claim that standard libraries don't have a lot of coupling among their components. I wasn't necessarily suggesting writing your own string class.
Over time, as you code in more and more of the standard [...] class into your own class (and doing so poorly),
The whole point of implementing one's own version of a library class usually is to implement only a tiny subset of its functionality and/or to change the interface. One doesn't code "more and more of the standard class" over time; if one did, one should just use the library class. It's exactly because a custom class doesn't have to do everything that the library class does that a custom class can be written to be better often with very little effort.
If it was just about keeping the binary small you would have never used C++ in the first place.
C++ is widely used for embedded systems programming with very constrained amounts of memory. It was carefully designed so that none of its features have a significant impact on code size or runtime performance unless you actually use them. The only thing that causes C++ code size to bloat is indiscriminate use of libraries, standard or otherwise. And that brings us back to the original point.
The installed JDK is 85 Mbytes; that's what you need for development, which is what we are actually talking about here. The installed JRE is 56 Mbytes.
Java has become ridiculously bloated.
Just get an electric bike, then. You still get exercise, it's cheaper than a Segway, and it gets you over the hills.
Horses are more expensive to use than cars, they are slower, and have shorter range.
Bikes are less expensive to use than cars, they are faster, and have more range than Segways. And they keep you in shape, too.
If you really want a motor, we have electric bicycles, mopeds, and motorcycles--still cheaper and faster than a Segway.
That's easy, isn't it?
You're confusing your scooters. Kids ride around standing on two-wheeled things. Adults ride bicycle-like motorized things. The latter are comfortable, convenient, and not (too) weird.
Using the algorithms with the best lower bounds does not guarantee the best performance on a given problem. Nor, for that matter, does using the algorithms with the best upper bounds or best average case complexities guarantee the best performance on a given problem. This is one of the first things people learn in their algorithms classes.
If you don't want to join the ranks of out-of-work programmers, I'd recommend seriously brushing up on your CS skills. This sort of thing is basic stuff. While the STL is a tedious and messy piece of code, there should be nothing mysterious or complex going on inside the STL for a competent programmer. If you don't know what's going on inside a library, you can't make effective decisions about when to use it.
Basically, your comments just keep supporting my point: many working programmers don't know what they are doing, and they use libraries because they have no alternatives.
Now you're using a straw man. What are these multi-megabyte libraries? You are referring to cross dependencies that pull in unnecessary code - these sympton usually appear more in hairy locally-crafted libs
Take a look at the Java libraries some time. In fact, the Java standard libraries are so dependent on each other that the whole thing is only distributed as a monolithic 85 Mbyte install.
Or, if you are a C++ kind of guy, look at the dependencies that using '#include <string>' pulls in; I get 91 distinct include files alone from just wanting to use simple strings.
Maybe you get those sorts of dependencies in the code you write; I don't.
Wrong. There is too much reuse in the software industry, not too little. And the reason is that most programmers couldn't re-implement a library routine if their life depended on it.
So, they have to reuse, whether it makes sense or not. Out of incompetence, they pull in a megabyte of library code, deal with dozens of bugs in "standard" library code, and try to keep several APIs in sync for something that could easily be done in a few dozen lines of code.
That's not good software engineering. It's reuse taken to the point of absurdity. And it's one of the main reasons why software is so bloated and buggy.
The real question is: why not use a bicycle? It's proven technology, it's a lot cheaper, it's faster, and it gets you a little, but not too much, exercise on that 4 mile commute.
But the article gets the reasons all wrong. It presents C++ as proprietary language with "variants", against open source PHP. That's, of course, complete nonsense. C++ is standardized and has multiple open source implementations.
And, right there, you have an explanation of why most software teams fail, most commercial software products suck, and so many people keep buying junk development tools: software teams in industry don't have a clue what they are doing. They are just plugging together a bunch of library routines. They don't know whether to use quicksort or mergesort. They are mystified by what a garbage collector does and how to tune code to perform well. They have no clue what happens when they write "new object". TCP/IP might as well be ESP.
Thank you for demonstrating this point so clearly for us all. PS: Would you mind telling us where you work, as a warning?
Windows administration is enormously labor intensive, even if you set up everything the way Microsoft recommends you do. Windows administration (and Windows programming, for that matter) reminds me of the recent thread on games Everquest and the Virtual Skinner Box: you get the feeling that Windows tools are structured to dole out rewards to keep you playing, even if your skill level is pretty low. It's no accident that so many dialog boxes say things like "Congratulations, you have just..."; some accomplishment--to stick a CD in the drive and enter a serial number. The goal, after all, is to keep people buying and recommending your product; if it doesn't work effectively for them, that's OK as long as the customers don't notice and feel good about it.
As a result, "certified" Windows sys admins feel really good about what they are doing--they get a sense of accomplishment. But a skilled UNIX or Linux sys admin can often accomplish with a couple of commands in seconds what it takes the Windows admins hours to do.
Unlike Windows, Linux won't try to make you feel good or give you a pleasant user experience. It won't encourage you or compliment you. It's just a professional tool, and at that it's quite effective. What it will let you do is, given the same workload, spend more time on the beach (or posting on Slashdot, as the case may be :-).
I don't see why that logically follows. For example, just because the tax payer paid for a monument or city park doesn't mean that the government needs to open it for commercial activity. Governments used to pay for lots of non-commercial activities and create lots of non-commercial spaces.
If we, the people, find it beneficial to our purpose to create BSD-licensed software with government funding, then we should. But there is certainly no obligation to do so. The only issue of fairness is that whatever license we choose should not favor one business over another.
You can look at the GPL and write your own proprietary implementation. But a lot of source code from companies like Microsoft and Sun software is licensed under agreements that "contaminate" you; that is, you can't develop a competing implementation because the presumption will be that you copied stuff from their source code. They also contain lots of other clauses that "infect you", like with an indefinite possibility of getting dragged into a law suit between Microsoft or Sun and a third party.
Microsoft can choose whatever licenses they like, but nobody should be under any obligation to buy their stuff.
When people say that something "grows quadratically" or "has quadratic growth", they are saying that it grows like t^2, not that it grows like t^3 or t. Sorry, that's the way the term is most commonly used.
The number of accessible worlds grows like the cube of the distance (well, until you have made it through the thickness of the galactic disk at least).