I have used systems that have eliminated these kinds of boot messages, and they are a pain to work with.
It may be obvious to Linus which version of the driver a particular kernel version uses, it isn't obvious to other people. In fact, in the presence of driver patches, there is just no way to tell. The bit of vanity, having people's names print out who put in a lot of effort into writing a driver, seems justifiable to me as well: these people don't get money, the least they can get is a little publicity. Besides, some licenses require copyright information to be printed.
The Linux kernel has lots of serious problems in terms of configurability, usability, and lack of support for crucial standards. The bootup messages are completely harmless, take almost no resources, and are useful to many people. Why fix something that isn't broken? I'm disappointed that such a stupid idea would even get seriously considered.
If you were a biologist, you should understand the difference between breeding and molecular biology. Using breeding techniques alone, it is very difficult to get genes to move between unrelated species. With molecular biology, it's trivial.
I am less worried about changing the ecosystem. Nature abhors a vacuum ? a species gets wiped out, something else ALWAYS takes its place.
Well, you should be worried. We don't even allow perfectly well understood natural species to be moved from one place to another because we know they can turn into pests. And now companies want to create fast growing, insect and pesticide resistant plants artificially and release them into the environment?
exotic languages and sexiness
on
Postfix
·
· Score: 1
Powering mail delivery may not be as sexy as programming in exotic new languages
You're right: what can compare with the thrill of writing software in a language in which every string manipulation or memory deallocation potentially opens up security holes. And nothing can compare with the dazzling display of software artistry in a language where every data structure has to be handcrafted over and over again.
Using a language that is just a tad more modern than the nearly 30 year old C programming language clearly couldn't compete with that kind of thrill. But maybe using something more modern would result in a program that's less than 100kloc and that more people can contribute to and modify safely.
There is no question: when biotechnology works, it's great: it reduces pesticide use, allows us to create plants and animals that are more efficient and more to our tastes, and engineered and genetically modified tissues and cells are going to revolutionize medicine and let us cure many diseases.
The problem is that we don't know understand the downsides very well. Are those genetically engineered crops going to kill useful insects? What is the effect of gene therapy that gets into the germ line? What happens to species diversity and genetic resources when a few "perfect" crops seem to satisfy all our needs--for now? What is the effect on farmers and developing nations when public domain crops are replaced with patented crops controlled by a few companies?
I think biotechnology research is good, as are medical applications of biotechnology. However, I strongly oppose the release of genetically modified crops or organisms into the environment at this time--the effects and risks are unpredictable, and the benefits dubious. The argument that existing breeding and agricultural techniques are no different is wrong: traditional genetic techniques produce a much more limited range of possible variations, and, furthermore, even such traditional techniques have already done grave harm to our ecology.
One thing we can say with near certainty is that biotechnology is not going to end world hunger or malnutrition. We have developed techniques to increase agricultural yields by orders of magnitude over the last few centuries, and in absolute numbers, hunger is worse than ever. Hunger and malnutrition are only going to be controlled through family planning, population policy, and economic development.
The main problem with using floats for currency values is that float's fractionary part is expressed in base 2, whereas currencies' fractionary part is expressed in base 10.
That's not a problem. For example, you can simply express amounts as cents, not dollars. There are other ways of addressing this as well.
To sum it up: floats are ok in scientific calculation, but they aren't in integer calculations.
Machine floating point numbers are exact for integer calculations as long as the integers involved have no more bits than the mantissa (23 bits for IEEE single precision, 52 bits for IEEE
double precision).
Except for the US national debt, you are unlikely to ever get even close to the limits of accuracy of IEEE double precision floating point in the representation of dollars and cents.
The problem isn't with floating point numbers, it's with your code. You are asking whether the result of the computation agrees to within two digits, but you don't express that fact in your code.
The comparison you want is
"to_digits(point_seven,2)==to_digits(0.7,2)", where "to_digits" is defined as
float to_digits(float x,int digits) {
return float(pow(10.0,-digits) * rint(x * pow(10.0,digits)));
}
. If you run that, you will find that it gives you the expected answer.
BCD is actually less accurate than using floating point numbers with equivalent numbers of bits. People use it because it's easy to define and understand.
The underlying techniques are actually pretty widely used already in image processing and pattern recognition. And, yes, similar techniques are used in text analysis and many other areas. This is mainly a particularly neat demonstration and application of them.
How useful this particular application is remains to be seen; most people probably have a harder time giving an example of a van Gogh filter for the system to learn from than to use a canned filter.
I have my doubts that Mozilla is competitive with.NET..NET will ship with every Windows system, it offers familiar APIs, and a pretty fast runtime. What does Mozilla have? It's mostly built around sluggish JavaScript and XML, with a toolkit nobody uses.
The only alternative to.NET I see is Java, perhaps incorporating Gecko as an HTML rendering component. Java is a full-featured language with an excellent, moderately popular toolkit, lots of widely used APIs, and the JVM runs a wide variety of other languages.
So, you develop a standalone web browser similar to Galeon first, allow it to integrate with the existing applications, and then release your own mail, chat, HTML editor, and USENET applications afterwards.
But Mozilla really wanted to be something very different: it wanted to be its own platform, an entire environment programmable in XML, JavaScript, and XUL. It doesn't look like people are flocking to it for that purpose. So, Mozilla really lost everything: it could have kept Microsoft from taking over the browser market, but because it wanted to be so much more, it is so late that it won't even accomplish that.
If they had, they'd have missed a lot of functionality that needed links into the rendering engine to properly work. Now, Gecko, the main engine, is so flexible it can do anything Mozilla throws at it, as well as just about anything else anyone would want in a browser.
I think you can give the Mozilla developers a little more credit. These people are experienced programmers that have not only done an HTML rendering engine before, but they are also familiar with rich text rendering in a number of toolkits. They don't need to implement a mail reader to know what kinds of hooks a mail reader needs.
I was using KDE mainly because of Konqueror: Mozilla and Netscape just didn't cut it. KDE has some other nice features, but I found it to be a pretty heavy-weight and intrusive desktop, and it has a bunch of annoying bugs. (Yes, I know, you can run Konqueror under other desktops, but it still starts up other KDE services in the background, and it doesn't feel entirely happy.)
After using Galeon for a couple of days, I think that it's an excellent browser. It doesn't start up lots of oddball support programs, it just browses the web. It also seems more reliable and render more accurately than Konqueror. So, I can finally switch back to a more lightweight desktop.
I think that if the Mozilla team had concentrated on bringing out this kind of browser, just the browser, they could have been done much earlier and captured so much more market share.
It seems odd to me that writers manage to retain these rights vis-a-vis the big and powerful companies that hire them. When you do contract programming, it seems to me that the usual case is that pretty much everything you do belongs to the company that hired you.
I seem to remember that historically, the situation used to be much worse for writers as well. Was it that they organized what let them retain these rights? Maybe programmers should do the same.
If you want speed for static pages, you can use the Linux kernel server and/or keep the data in RAM. But what's the point? You can more than saturate any reasonable internet connection with a fraction of that performance. This has less relevance to real life that formula 1 racing has to driving.
Most performance problems on real web sites come from dynamic page generation. And that performance is limited by choice of database, implementation language, and (most importantly) data model and distribution model among multiple servers. You can't make general comparisons there. At best, you can test your own application at a particular size on a variety of platforms and see which runs best. But even that comparison may be invalid tomorrow, after you made some changes to your system or your site has grown.
That's it's already here. Many devices in our homes have microprocessors. Of course, they will get networked when it makes sense to do so and when it becomes cost effective. If you are willing to pay for it, you can get that kind of functionality already: go to places like SmartHome and X10.
Some of them make a lot of sense: remote access to temperature and lights in the home can be useful. Others don't. For example, I don't think more automation in the kitchen does much good: people would probably benefit more from a healthy relationship with food (cooking themselves with fresh ingredients) than minute tracking of soft drinks and junk food. And short of automated driving and road following, I don't really need or want any additional gadgets in my car.
I think Intel's IA-64 architecture is in more trouble than people think. It puts a huge burden on the compiler. While you can probably get good performance out of it for benchmarks in Fortran and C, things get iffier once you are talking about real applications and other languages. Who is going to write all those high-powered backends?
Alpha could be a good backup strategy for Intel: it's a more traditional architecture with lots of existing compiler backends.
You don't need oxygen to support life: many life forms on earth get by happily without it. While the journalist has mangled the message, the article is about the possibility of supporting large, complex life forms (like sponges, worms, fishes, etc.), as opposed to bacteria. The only way we know to supply their metabolic needs is using oxygen based metabolisms.
The current theory is that oxygen appeared on earth primarily as a by-product of photosynthesis and constituted a threat to most life on earth. Oxygen-utilizing organisms evolved in response, and this turned out to be the way animals could evolve. It's kind of ironic that only the production of a toxic waste product (oxygen) allowed evolution to go this way. If that hadn't happened, earth might stil be filled with little more than bacteria.
Microsoft's answer is c#.net or VB.net applets running on SQL.NET wich is cheaper and fully integrated. You can also save development time by writing the apps in Visual basic and that alone could save for the cost of the servers. Sorry Redhat but most IT manangers would choose MS in such a situation.
You are probably right that "most IT managers" are mightily impressed by database benchmarks and by VB. That doesn't make either SQL server or VB a good choice. If Linux had been developed according to what most IT managers prefer, it wouldn't even exist today because Microsoft and IBM do that sort of thing so much better.
There are several PCs in a "book" or "no legacy" form factor: smaller than your standard desktop PC, but a bit larger than the Cappucino. Compaq offers something like that under their iPaq line, HP has recently come out with something, and you can configure some Dell machines like that. Smaller companies also offer a variety of machines like that. Often they do actually have one PCI slot, which is what you frequently need for small special servers.
Raskin feels a "strong moral imperative" to provide the best UI possible. A poorly designed UI can sap productivity and physically hurt users from repetitive stress injuries. Raskin is the author of "The Humane Interface," and is a leader in the field. His UI design philosophy is one of the tenets at the foundation of the early Macintosh's design.
Apple and Raskin are just catering to the old myth that there is one optimal interface for everybody. That's clearly not true. People have different styles for learning, interacting, and conceptualizing. People have different physical and perceptual abilities. People live and work in different locations and need to interact with their computers in numerous different ways (MacOS isn't even usable over a 2400 baud connection).
This kind of marketing humbug sells well, just like the successful marketing campaings getting people to feel that smoking is sexy or soft drinks make them young and beautiful. Apple and its style of UI design are a creation of marketing, not of scientific facts.
Computers are no different from other complex devices. You can make simple, mass market products that do simple things reasonably simply and appeal to lots of people. And you can make a variety of specialized, complex devices that do complex tasks really well but take a while to master. Continued attempts by Apple and Microsoft to create a "one size fits all" solution only condemns millions of users to using inadeqate tools.
This shows Microsoft for what they are: a paranoid, clueless company that cannot stand to coexist with anybody else. One couldn't wish for a better illustration. In addition to that, Microsoft will likely only hurt themselves with it: too much Microsoft-related software is already based on open source software and open source tools
GNU Cash is written in a language where a slight error in one part of the program can change data structures in a completely unrelated part of the program without ever being detected. A poorly written plug-in might alter my on-line transactions or mess up my register balance. This isn't theoretical: even after years of development, Quicken actually has such bugs, as do most other Gnome programs. Why isn't GNU Cash written in a safer, higher-level language?
C++ doesn't even scratch the surface with RTTI and templates. RTTI allows little more than to check inheritance relationships, and templates only allow information about data structures to be derived at compile time, and only using constructs that templates were never intended for. There is no standard in C++ for dynamic code generation or even dynamic loading, and there is no way of isolating faults in dynamically loaded components.
Java allows data structures to be created, examined, and traversed at runtime. You can even load and generate Java code at runtime, portably and efficiently. Java has sandboxing that allows programs to protect themselves from faults in dynamically loaded components.
What C/C++ offer is completely inadequate for building easy to use GUI libraries, component systems, persistence, and distributed programming systems. Developers of systems like KDE and Gnome are misleading developers by claiming that their systems are written in industry standard languages, when what they actually deliver amounts to a non-standard object extension of a standard language that ends up being less reliable, less usable, and more complex than if they were based on well designed languages in the first place.
The extensive use of shell scripts for programming (third in terms of LOC) is a big problem IMO. Look at how complex and slow just the boot process has become. Shell scripts have little support for error checking or debugging.
Of course, I also think that people should be using more high level languages than C/C++. C/C++ programs are not particularly efficient (mostly because programmers have to do so much nitty gritty work that they never get around to doing the good stuff, and because everybody reinvents basic facilities over and over again), and they are difficult to extend and modify compared to programs written in more high level languages.
Maybe what we need is a Java, Perl, or Python-based Linux distribution--a distribution that throws out most of the C/C++/shell code other than the kernel and replaces it with small, extensible utilities in those higher level languages.
Far from it. VB, for all its faults, is probably the most popular application development environment and it's much more high level than C/C++. Large numbers of GUI applications have been written in Tcl/Tk, probably still many more than in Gnome/Gtk+. And Microsoft is moving over completely to Java-like systems with C#.
The open source community is behind the curve with its insistence on writing huge, inefficient desktop software systems in C/C++. Application software development is moving beyond that. The Linux desktop efforts should get with it and move to something more modern. Java is the most reasonable choice at this point (it doesn't have to be Sun Java, just the Java language with gcj and a decent open source toolkit would be fine). O'CAML would be another good choice, but I think too few open source developers are willing to learn it.
I ask a simple question and it gets rated as "troll" and "overrated"? Guys, get a grip. That kind of obnoxious moderation destroys slashdot.
It may be obvious to Linus which version of the driver a particular kernel version uses, it isn't obvious to other people. In fact, in the presence of driver patches, there is just no way to tell. The bit of vanity, having people's names print out who put in a lot of effort into writing a driver, seems justifiable to me as well: these people don't get money, the least they can get is a little publicity. Besides, some licenses require copyright information to be printed.
The Linux kernel has lots of serious problems in terms of configurability, usability, and lack of support for crucial standards. The bootup messages are completely harmless, take almost no resources, and are useful to many people. Why fix something that isn't broken? I'm disappointed that such a stupid idea would even get seriously considered.
I am less worried about changing the ecosystem. Nature abhors a vacuum ? a species gets wiped out, something else ALWAYS takes its place.
Well, you should be worried. We don't even allow perfectly well understood natural species to be moved from one place to another because we know they can turn into pests. And now companies want to create fast growing, insect and pesticide resistant plants artificially and release them into the environment?
You're right: what can compare with the thrill of writing software in a language in which every string manipulation or memory deallocation potentially opens up security holes. And nothing can compare with the dazzling display of software artistry in a language where every data structure has to be handcrafted over and over again.
Using a language that is just a tad more modern than the nearly 30 year old C programming language clearly couldn't compete with that kind of thrill. But maybe using something more modern would result in a program that's less than 100kloc and that more people can contribute to and modify safely.
The problem is that we don't know understand the downsides very well. Are those genetically engineered crops going to kill useful insects? What is the effect of gene therapy that gets into the germ line? What happens to species diversity and genetic resources when a few "perfect" crops seem to satisfy all our needs--for now? What is the effect on farmers and developing nations when public domain crops are replaced with patented crops controlled by a few companies?
I think biotechnology research is good, as are medical applications of biotechnology. However, I strongly oppose the release of genetically modified crops or organisms into the environment at this time--the effects and risks are unpredictable, and the benefits dubious. The argument that existing breeding and agricultural techniques are no different is wrong: traditional genetic techniques produce a much more limited range of possible variations, and, furthermore, even such traditional techniques have already done grave harm to our ecology.
One thing we can say with near certainty is that biotechnology is not going to end world hunger or malnutrition. We have developed techniques to increase agricultural yields by orders of magnitude over the last few centuries, and in absolute numbers, hunger is worse than ever. Hunger and malnutrition are only going to be controlled through family planning, population policy, and economic development.
That's not a problem. For example, you can simply express amounts as cents, not dollars. There are other ways of addressing this as well.
To sum it up: floats are ok in scientific calculation, but they aren't in integer calculations.
Machine floating point numbers are exact for integer calculations as long as the integers involved have no more bits than the mantissa (23 bits for IEEE single precision, 52 bits for IEEE double precision).
Except for the US national debt, you are unlikely to ever get even close to the limits of accuracy of IEEE double precision floating point in the representation of dollars and cents.
The comparison you want is "to_digits(point_seven,2)==to_digits(0.7,2)", where "to_digits" is defined as float to_digits(float x,int digits) { return float(pow(10.0,-digits) * rint(x * pow(10.0,digits))); } . If you run that, you will find that it gives you the expected answer.
BCD is actually less accurate than using floating point numbers with equivalent numbers of bits. People use it because it's easy to define and understand.
How useful this particular application is remains to be seen; most people probably have a harder time giving an example of a van Gogh filter for the system to learn from than to use a canned filter.
The only alternative to .NET I see is Java, perhaps incorporating Gecko as an HTML rendering component. Java is a full-featured language with an excellent, moderately popular toolkit, lots of widely used APIs, and the JVM runs a wide variety of other languages.
But Mozilla really wanted to be something very different: it wanted to be its own platform, an entire environment programmable in XML, JavaScript, and XUL. It doesn't look like people are flocking to it for that purpose. So, Mozilla really lost everything: it could have kept Microsoft from taking over the browser market, but because it wanted to be so much more, it is so late that it won't even accomplish that.
I think you can give the Mozilla developers a little more credit. These people are experienced programmers that have not only done an HTML rendering engine before, but they are also familiar with rich text rendering in a number of toolkits. They don't need to implement a mail reader to know what kinds of hooks a mail reader needs.
After using Galeon for a couple of days, I think that it's an excellent browser. It doesn't start up lots of oddball support programs, it just browses the web. It also seems more reliable and render more accurately than Konqueror. So, I can finally switch back to a more lightweight desktop.
I think that if the Mozilla team had concentrated on bringing out this kind of browser, just the browser, they could have been done much earlier and captured so much more market share.
I seem to remember that historically, the situation used to be much worse for writers as well. Was it that they organized what let them retain these rights? Maybe programmers should do the same.
Most performance problems on real web sites come from dynamic page generation. And that performance is limited by choice of database, implementation language, and (most importantly) data model and distribution model among multiple servers. You can't make general comparisons there. At best, you can test your own application at a particular size on a variety of platforms and see which runs best. But even that comparison may be invalid tomorrow, after you made some changes to your system or your site has grown.
Some of them make a lot of sense: remote access to temperature and lights in the home can be useful. Others don't. For example, I don't think more automation in the kitchen does much good: people would probably benefit more from a healthy relationship with food (cooking themselves with fresh ingredients) than minute tracking of soft drinks and junk food. And short of automated driving and road following, I don't really need or want any additional gadgets in my car.
Alpha could be a good backup strategy for Intel: it's a more traditional architecture with lots of existing compiler backends.
The current theory is that oxygen appeared on earth primarily as a by-product of photosynthesis and constituted a threat to most life on earth. Oxygen-utilizing organisms evolved in response, and this turned out to be the way animals could evolve. It's kind of ironic that only the production of a toxic waste product (oxygen) allowed evolution to go this way. If that hadn't happened, earth might stil be filled with little more than bacteria.
You are probably right that "most IT managers" are mightily impressed by database benchmarks and by VB. That doesn't make either SQL server or VB a good choice. If Linux had been developed according to what most IT managers prefer, it wouldn't even exist today because Microsoft and IBM do that sort of thing so much better.
A quick search on Google turned up this and this.
Apple and Raskin are just catering to the old myth that there is one optimal interface for everybody. That's clearly not true. People have different styles for learning, interacting, and conceptualizing. People have different physical and perceptual abilities. People live and work in different locations and need to interact with their computers in numerous different ways (MacOS isn't even usable over a 2400 baud connection).
This kind of marketing humbug sells well, just like the successful marketing campaings getting people to feel that smoking is sexy or soft drinks make them young and beautiful. Apple and its style of UI design are a creation of marketing, not of scientific facts.
Computers are no different from other complex devices. You can make simple, mass market products that do simple things reasonably simply and appeal to lots of people. And you can make a variety of specialized, complex devices that do complex tasks really well but take a while to master. Continued attempts by Apple and Microsoft to create a "one size fits all" solution only condemns millions of users to using inadeqate tools.
This shows Microsoft for what they are: a paranoid, clueless company that cannot stand to coexist with anybody else. One couldn't wish for a better illustration. In addition to that, Microsoft will likely only hurt themselves with it: too much Microsoft-related software is already based on open source software and open source tools
GNU Cash is written in a language where a slight error in one part of the program can change data structures in a completely unrelated part of the program without ever being detected. A poorly written plug-in might alter my on-line transactions or mess up my register balance. This isn't theoretical: even after years of development, Quicken actually has such bugs, as do most other Gnome programs. Why isn't GNU Cash written in a safer, higher-level language?
Java allows data structures to be created, examined, and traversed at runtime. You can even load and generate Java code at runtime, portably and efficiently. Java has sandboxing that allows programs to protect themselves from faults in dynamically loaded components.
What C/C++ offer is completely inadequate for building easy to use GUI libraries, component systems, persistence, and distributed programming systems. Developers of systems like KDE and Gnome are misleading developers by claiming that their systems are written in industry standard languages, when what they actually deliver amounts to a non-standard object extension of a standard language that ends up being less reliable, less usable, and more complex than if they were based on well designed languages in the first place.
Of course, I also think that people should be using more high level languages than C/C++. C/C++ programs are not particularly efficient (mostly because programmers have to do so much nitty gritty work that they never get around to doing the good stuff, and because everybody reinvents basic facilities over and over again), and they are difficult to extend and modify compared to programs written in more high level languages.
Maybe what we need is a Java, Perl, or Python-based Linux distribution--a distribution that throws out most of the C/C++/shell code other than the kernel and replaces it with small, extensible utilities in those higher level languages.
The open source community is behind the curve with its insistence on writing huge, inefficient desktop software systems in C/C++. Application software development is moving beyond that. The Linux desktop efforts should get with it and move to something more modern. Java is the most reasonable choice at this point (it doesn't have to be Sun Java, just the Java language with gcj and a decent open source toolkit would be fine). O'CAML would be another good choice, but I think too few open source developers are willing to learn it.