I think it helps if you have a strong math background and are comfortable with Lambda calculus. I'm just an old C hacker and haven't used any real math in like 10 years, so I'm not that effective in Haskell:(
You realize that 'lambda calculus' doesn't have anything to do with integrals, integration, ln/2, etc? In this context it's just a name that means 'anonymous object' to people that reject object-oriented names as 'too hippie'.
Haskell only evaluates what it has to -- this program for example which looks up the 3000th element of the sequence will not compute the complexCalculation on the 2999 fibbonaccis before hand like a traditional program would
And then when you actually do use the other values you program is ridiculously slow because the generator function is recalculating the fibonacci number over and over again.
Except you hope that Haskell automatically memoizes the results, but that destroys your smp performance as the CPUs contend over the result cache. So maybe you have separate caches per thread. Then you program grows larger and all the memoization takes too much memory and the system start dropping out results (3000th fib is what 520? bytes). Then you have to go back and tell it to keep the results longer for that function.
In the end maybe you just make it a list that's precomputed.
But that's really beside the point, because you can do the exact same thing in Smalltalk, Ruby, JavaScript, etc, with most of the same costs and benefits. So really the question is, what makes it better than Smalltalk? It's faster at maths, but that's about it. But it has a harder/alien paradigm, the syntax is foreign, etc. Maybe that's why afaik mainly Haskell is only being used by people that crunch numbers ?
7zip is not superior. It's incredibly slow.... Uncompressing a file in WinRAR consistently takes up to or over 10x as long to uncompress in 7zip
Lets look at some scenarios for compression large amounts of data:
1) Making a backup of data (ie, ~home). Backups are usually decompressed fewer times them compressed, since unless something goes wrong they are replaced with more up-to-date backups. 2) Moving data, save/restore. For instance "compress <file|ssh -c 'uncompress >file' anotherhost", or saving ~home then reinstall OS, then restore ~home 3) Reduce space when data is not in use. For instance you have many vmware images but a small drive, so you keep the less-used ones compressed. You have to recompress after using it to keep the changes. 4) An archive for distributing files to many places, or 3 where you can discard changes.
In the first three cases you don't care at all about decompression time (1) or you only care about total time (2, 3). Only in 4 do you care about decompression time, and size may trump this if you are paying for bandwidth for instance.
Now lets look at some times. Cat/vmlinuz 50 times for a ~100 MiB file.
Clearly 7zip is multithreaded since it used more CPU time than actual time, but even with one CPU the total compression time would be less. The 7z size was 1% smaller than the rar, so no difference there. Yes, the 7zip takes longer to decompress. But if you look at the total time to compress and decompress (the most common case) it was ~40% faster.
What this means is that unless you are going to decompress many more times than compress then 7zip completely destroys rar in performance.
How insightful can a comment be when even the NASA astronomers don't know what it is? It's a post of ignorance, i.e. there's nothing more to be said unless someone has more data.
When the experts have no clue that's when they need a shot of imagination from some laymen -- enough crazy hairbrained ideas and something might stick.
Personally, I think it's a dyson sphere composed of satellites that is set to 'shutter' over a long period (by rotating flat sattelites to allow light to pass). It's probably counting primes from 1 to 101 over the course of a few years by blinking on/off.
Think about it, if you want to get the attention of very distant aliens you need massive power of a sun, and you need a signal that changes gradually so that aliens studying that particular star see the change if actively studying it, or that see the change over a long time when doing sweeps of the area (present in this image, but not in the images a year later, etc). Tweak the spectrum using the material of your dyson sphere itself to add interest by making it not look like anything else.
Microsoft should take lessons from other groups that have nothing rational to say in commercials:
1) It is offensive to operating systems that you called Aero "lipstick on a pig". 2) Apples are elite, because they work better and are easier to use 3) Steve Jobs is the biggest celebrity in the world. 4) Apple's come with Arabic language support; they're terrorists. 5) The 'Apple Tax' is higher than the 'Microsoft Tax'; they want to raise your taxes. 6) far more new lines of code written for Vista than OS X; Vista is the operating system of change.
Which brings up an interesting question. Up until now Western languages have had a huge advantage for computers since keyboards can have one button per letter because of the small alphabet and context-free characters. It is really easy and fast to input characters to form words using dedicated buttons.
Now with accurate, sensitive touch screens, will word-based writing systems like Chinese actually be better suited now for writing?
Even if the batteries polluted a lot, battery tech can be invented that is clean, and once the scale gets large enough that's a problem that can be solved.
Oil in the ground, like coal, is full of gunk because the ground is dirty. So continuing to use oil and coal means lots of new pollutants to clean up (either at the refineries or pumped into the air, or both).
So really, who cares if the batteries are recyclable? The faster we can get off oil the better, even if we do pollute in the process of doing so.
I hate the term environmentally friendly. I hate it not because I think it's ok to kill off entire species but because the term is tossed around as the biggest guilt trip ever devised.
I'm pretty sure you thinking it's ok to kill off entire species has something to do with you hating the term 'environmentally friendly'. It may also have something to do with the guilt you are feeling.
If the problem you refer to is futex_wait, this was a glibc bug and affected a lot of programs on Linux.
Other than that, it sounds like classic 'user error'. Generally when you and only you think a platform that is used as much as Java is, in stock exchanges and such, is 'a buggy piece of crap' it means that you are a poor programmer.
According to the Java generics tutorial, Java uses type erasure and "as a result, the type safety and integrity of the Java virtual machine are never at risk". I can't find the quote atm, but Gilard Bracha basically said Java uses type erasure because 'real' generics in a virtual machine had never been done before in any production system and was not well understood.
Java is significantly more reliable for this and many other reasons, such as not trying to do everything.
Obama camp chooses an "attack dog" in Biden, and he in fact comes out all guns blazing. Should McCain camp also chose a hard-boiled "attack dog"? No. Choose a target that Biden simply can't attack
Uh, the point of the attack-dog VP is to attack the other guy's candidate for P, not VP. The vice presidential debates are not about tearing down the other VP, because historically the VP has had little effect on who people vote for. Which really makes sense since VP only have a smallish chance to be P.
The last election I voted in we had over ten different measures to vote for... local sanitation commissioner, bond referendums, etc (we have a lot more democracy than you guys have). Having a computer interface to select is really quite nice when there are dozens of votes to cast. Having zero confidence in the result is really the only bad part of the electronic vote-placing machines.
Yeah there are RF attacks on electronic machines, so they are technicallly inferior to pen and paper for voting -- but our winner-take-all system tends to cause there to be two parties and moves them towards the center (of our country's political spectrum), so really there's not that much incentive to determine how specific people are voting. Most people here couldn't care less if you know who they voted for... it's only if a giant database were to be assembled. But frankly you can tell who somebody is voting for from their purchases and myspace anyway.
You left out the other big advantage of tabs: You can move across one level of indentation with one keystroke.
New lines are automatically indented the proper amount. Changing indent is done by using ctrl-d or ctrl-i, or selecting a block and auto-formatting, or using the block-shift (> and < in vim). Move to the first character on the line with ^ or 0w.
If you are typing multiple spaces or cursoring over them, there's a problem. That problem is that you don't know how to use your editor very well. Even Windows style text boxes have combos for this.
If anything, I would expect vim to reduce carpal tunnel risk by complex operations on the text reducing the total keys needed, and using command mode instead of modifiers to reduce finger contortions. But like 'back pain' a lot of cases are just people whining (psychosomatic).
Tabs mean I can view code with four space indenting, you can view the same code with two space and someone else can view it with eight space. Besides, a tab's whole purpose is indenting. And if you didn't use spaces, you wouldn't have problems.
Tabs mean that the default indenting is neither what the author wanted nor often what the viewer wanted, unless they are the same. For instance, viewing code in cvsweb or svn web gateway.
The purpose of tabs was creating TABles on a typewriter, not indenting.
Either all alignment is on a tabstop or you must use spaces. Most code uses some alignement (for instance #defines), so requires spaces, but no code requires tabs.
No, it doesn't. Starting with 2008, C# is letting you associate new methods with existing classes.
... which is done by the compiler writing a static method on *your* class and rewriting your code to call that static method when it looks like you are calling an instance method. It's compile-time only and behaves exactly the same as Java -- you aren't actually adding a method the the actual class, as you can do in Smalltalk, python, ruby, javascript, etc.
The thing is that mixing tabs and spaces is annoying as hell in any programming language. Personally I find the whole concept of using an invisible character with both undefined and variable width to be absurd. Frankly I'm surprised that the programmers using tabs haven't moved on to using <blink> in the code.
The only difference in Python is that it requires the programmer to use a consistent indentation. While that's annoying while writing code it helps a lot reading it because every program has consistent indentation. No matter how messed up the programmer a least the program's physical structure is sane.
And I doubt debugging mixed tabs/spaces is any harder than debugging "while(var); {/* the loop? */ }". And the editor can clearly show you where tabs vs spaces are, for instance in vimrc:
"highlight tabs at the beginning of the lines highlight TabLevel term=reverse ctermbg=LightGray match TabLevel "^\t\+"
I despise the python indenting when I am writing a program because I have to do more work. But I love that other people have to do that work, and sometimes paradoxically what's worse for an individual programmer makes the language better because the community benefits. For instance Java having static, sealed, unchangeable core classes makes a lot of programs harder to write then say in smalltalk, but overall it makes Java a better language.
Seriously though, the problem with microkernels is that they (in theory) help the system cope with mistakes but they don't help prevent mistakes in the first place. Each component in a microkernel is isolated from others using memory protection, but they can still corrupt themselves or crash themselves.
There's very few parts of the kernel that actually need pointer arithmetic, unsafe casts, or for that matter need to operate particularly quickly. You don't have to believe me just look at the code. Open up some random source files from the kernel and look for pointer math, unsafe casts. Figuring out what locks are held when is harder, but can be done (performance being more important when locks are held).
Microkernels are solving the wrong problem. They should be focussed on preventing the errors in the first place not on recovering from them. So, a 'safe kernel' that is mostly written in a language that prevents errors, such as Limbo/Dis or for that matter Java or C#. That would be much easier to work on and an improvement over Linux style kernels.
How am I doing anything at all wrong?... if you give me $1000 I will give you something to show you're so wealthy that you could give me $1000 for the hell of it
Some people would say that accepting money for work you did not do, living off charity, is wrong. Those would be people with integrity, honor. Bragging about how rich you are is not respectable, and being an accessory to that, like being an accessory to murder or anything else, reflects badly on your character.
How is there anything wrong with offering a useless piece of overpriced tat? You don't have to be amoral to do this.
Basically what you are saying is that if you can get away with it, legally it isn't fraud, then so what? And this '$999 gem' app was misrepresented -- by its price, if nothing else. Just because you legally can charge 1k for something of no value doesn't mean you should.
In my view, people with morals work towards living in a meritocracy, where a person's rewards and position are directly related to the value of their works, by merit. For example, anything over some small profit, say 7%, is immoral as one is charging more than the product and your investment of time is worth. In the same vein, corporate CEOs that get rewarded with millions of dollars when the company tanks under their stewardship is immoral.
There isn't one morality. In your world, charging suckers a lot for some worthless crap is perfectly ok. But then merit clearly has no place, and to me that is in fact amoral.
There's no place left where you can have a long running, no-holds-barred, cross-post slug fest between Java, C#, Smalltalk, LISP with people that actually know what they are talking about. Those were the days.
Now there are just random 'blog islands' and even if you happend to find one discussing the topic then nobody else is posting there, or the thread gets pushed off the frontpage and nobody sees it, or the 'yes-man' blog author moderates it so there is no actual discussion.
Slashdot is fun for posting random comments that may give you a '15-hours of fame' and then are completely buried, but it's just no substitute for microsoft.sucks.die.die.die or comp.lang.*.
I bought the BOXD945GCLF and really it's much better for the price than the competition's mini-itx boards. But judged on its own merits it's a piece of crap compared to what it could be and what it should be.
The BIOS is slow and flaky and limited, the VGA output noisy unless the power supply is perfect, the chipset draws 8 times as much power as the processor, the ACPI tables are seemingly wrong somehow since I've yet to get frequency scaling to work (it works under Windows from what I hear). And that's just getting started... I've never had a BIOS config screen actually freeze the computer before because I typed too fast for it. Maybe I've just been lucky that way?!
It looks like I got suckered just Intel can milk their better processor for more by releasing boards that are just slightly worth buying -- but only because there are no competition not because they are quality products. This is the first Intel board I've bought, and it'll be the last for a long time -- even if Via and AMD can't compete, if just as a protest.
Burning more power is OK if you can finish the job faster and get back into a low power state.
A flash ad that runs for 10 seconds will run for 10 seconds on a slow, low-power processor and also on a fast, high-power processor -- but the fast processor will do more work and use more power. A word processor that lays out the pages in the background will do less total work on a slow, efficient processor since the user will have typed in more data per layout iteration (so it will settle fewer times).
Just for a couple of counter-examples... except in contrived benchmarks, a slower processor often does less total work to get the same results.
The current generation Atom processor is fine. I have it running 64-bit Ubuntu right now and it's fast enough. The next generation may be worth waiting for, but this generation is decent.
The real problem with Atom at the moment is the mobo and chipset. The mini?-itx board I have from Intel uses 30 watts to turn on and 25 watts of that is the mobo minus processor (according to 4w rating). I know because the processor doesn't even have a heatsink and the whatever-bridge has a heatsink and fan. My advice: if there's a fan at all don't buy it. Same probably goes for laptops, unless they are advertising like 10+ hours then probably the chipset is using the vast majority of the power, so might as well get a faster processor if it's just going to piss away the power anyway.
The dual-core AMD desktop I have is, what, maybe 20 times faster at only say 3x more power (not sure how many watts the graphics card draws). The atom could easily be more like 10x more power efficient... then it would make sense.
I think it helps if you have a strong math background and are comfortable with Lambda calculus. I'm just an old C hacker and haven't used any real math in like 10 years, so I'm not that effective in Haskell :(
You realize that 'lambda calculus' doesn't have anything to do with integrals, integration, ln/2, etc? In this context it's just a name that means 'anonymous object' to people that reject object-oriented names as 'too hippie'.
Don't worry. In a few years you will see c++++ which will be c++ with functional programing tacked on.
In order to be true to the spirit of c++ it should be called (*c)++.
You might be saying why not (*c)()++? Well, you see, in functional c++ those two are equivalent.
Haskell only evaluates what it has to -- this program for example which looks up the 3000th element of the sequence will not compute the complexCalculation on the 2999 fibbonaccis before hand like a traditional program would
And then when you actually do use the other values you program is ridiculously slow because the generator function is recalculating the fibonacci number over and over again.
Except you hope that Haskell automatically memoizes the results, but that destroys your smp performance as the CPUs contend over the result cache. So maybe you have separate caches per thread. Then you program grows larger and all the memoization takes too much memory and the system start dropping out results (3000th fib is what 520? bytes). Then you have to go back and tell it to keep the results longer for that function.
In the end maybe you just make it a list that's precomputed.
But that's really beside the point, because you can do the exact same thing in Smalltalk, Ruby, JavaScript, etc, with most of the same costs and benefits. So really the question is, what makes it better than Smalltalk? It's faster at maths, but that's about it. But it has a harder/alien paradigm, the syntax is foreign, etc. Maybe that's why afaik mainly Haskell is only being used by people that crunch numbers ?
7zip is not superior. It's incredibly slow. ... Uncompressing a file in WinRAR consistently takes up to or over 10x as long to uncompress in 7zip
Lets look at some scenarios for compression large amounts of data:
1) Making a backup of data (ie, ~home). Backups are usually decompressed fewer times them compressed, since unless something goes wrong they are replaced with more up-to-date backups.
2) Moving data, save/restore. For instance "compress <file|ssh -c 'uncompress >file' anotherhost", or saving ~home then reinstall OS, then restore ~home
3) Reduce space when data is not in use. For instance you have many vmware images but a small drive, so you keep the less-used ones compressed. You have to recompress after using it to keep the changes.
4) An archive for distributing files to many places, or 3 where you can discard changes.
In the first three cases you don't care at all about decompression time (1) or you only care about total time (2, 3). Only in 4 do you care about decompression time, and size may trump this if you are paying for bandwidth for instance.
Now lets look at some times. Cat /vmlinuz 50 times for a ~100 MiB file.
7z compress: 25s user, 20s wall
rar compress: 28s user, 28s wall
7z uncompress: 1.05s user, 1.242 wall
rar uncompress: 0.91s user, 0.945 wall
Clearly 7zip is multithreaded since it used more CPU time than actual time, but even with one CPU the total compression time would be less. The 7z size was 1% smaller than the rar, so no difference there. Yes, the 7zip takes longer to decompress. But if you look at the total time to compress and decompress (the most common case) it was ~40% faster.
What this means is that unless you are going to decompress many more times than compress then 7zip completely destroys rar in performance.
How insightful can a comment be when even the NASA astronomers don't know what it is? It's a post of ignorance, i.e. there's nothing more to be said unless someone has more data.
When the experts have no clue that's when they need a shot of imagination from some laymen -- enough crazy hairbrained ideas and something might stick.
Personally, I think it's a dyson sphere composed of satellites that is set to 'shutter' over a long period (by rotating flat sattelites to allow light to pass). It's probably counting primes from 1 to 101 over the course of a few years by blinking on/off.
Think about it, if you want to get the attention of very distant aliens you need massive power of a sun, and you need a signal that changes gradually so that aliens studying that particular star see the change if actively studying it, or that see the change over a long time when doing sweeps of the area (present in this image, but not in the images a year later, etc). Tweak the spectrum using the material of your dyson sphere itself to add interest by making it not look like anything else.
Microsoft should take lessons from other groups that have nothing rational to say in commercials:
1) It is offensive to operating systems that you called Aero "lipstick on a pig".
2) Apples are elite, because they work better and are easier to use
3) Steve Jobs is the biggest celebrity in the world.
4) Apple's come with Arabic language support; they're terrorists.
5) The 'Apple Tax' is higher than the 'Microsoft Tax'; they want to raise your taxes.
6) far more new lines of code written for Vista than OS X; Vista is the operating system of change.
Don't laugh, this stuff works.
Which brings up an interesting question. Up until now Western languages have had a huge advantage for computers since keyboards can have one button per letter because of the small alphabet and context-free characters. It is really easy and fast to input characters to form words using dedicated buttons.
Now with accurate, sensitive touch screens, will word-based writing systems like Chinese actually be better suited now for writing?
Even if the batteries polluted a lot, battery tech can be invented that is clean, and once the scale gets large enough that's a problem that can be solved.
Oil in the ground, like coal, is full of gunk because the ground is dirty. So continuing to use oil and coal means lots of new pollutants to clean up (either at the refineries or pumped into the air, or both).
So really, who cares if the batteries are recyclable? The faster we can get off oil the better, even if we do pollute in the process of doing so.
I hate the term environmentally friendly. I hate it not because I think it's ok to kill off entire species but because the term is tossed around as the biggest guilt trip ever devised.
I'm pretty sure you thinking it's ok to kill off entire species has something to do with you hating the term 'environmentally friendly'. It may also have something to do with the guilt you are feeling.
If the problem you refer to is futex_wait, this was a glibc bug and affected a lot of programs on Linux.
Other than that, it sounds like classic 'user error'. Generally when you and only you think a platform that is used as much as Java is, in stock exchanges and such, is 'a buggy piece of crap' it means that you are a poor programmer.
According to the Java generics tutorial, Java uses type erasure and "as a result, the type safety and integrity of the Java virtual machine are never at risk". I can't find the quote atm, but Gilard Bracha basically said Java uses type erasure because 'real' generics in a virtual machine had never been done before in any production system and was not well understood.
Java is significantly more reliable for this and many other reasons, such as not trying to do everything.
Obama camp chooses an "attack dog" in Biden, and he in fact comes out all guns blazing. Should McCain camp also chose a hard-boiled "attack dog"? No. Choose a target that Biden simply can't attack
Uh, the point of the attack-dog VP is to attack the other guy's candidate for P, not VP. The vice presidential debates are not about tearing down the other VP, because historically the VP has had little effect on who people vote for. Which really makes sense since VP only have a smallish chance to be P.
P != VP
(we have a lot more democracy than you guys have)
Judging from the number and tone of Diebold-related stories on Slashdot, I wouldn't be so sure.
Quantity, not quality.
The last election I voted in we had over ten different measures to vote for... local sanitation commissioner, bond referendums, etc (we have a lot more democracy than you guys have). Having a computer interface to select is really quite nice when there are dozens of votes to cast. Having zero confidence in the result is really the only bad part of the electronic vote-placing machines.
Yeah there are RF attacks on electronic machines, so they are technicallly inferior to pen and paper for voting -- but our winner-take-all system tends to cause there to be two parties and moves them towards the center (of our country's political spectrum), so really there's not that much incentive to determine how specific people are voting. Most people here couldn't care less if you know who they voted for... it's only if a giant database were to be assembled. But frankly you can tell who somebody is voting for from their purchases and myspace anyway.
You left out the other big advantage of tabs: You can move across one level of indentation with one keystroke.
New lines are automatically indented the proper amount. Changing indent is done by using ctrl-d or ctrl-i, or selecting a block and auto-formatting, or using the block-shift (> and < in vim). Move to the first character on the line with ^ or 0w.
If you are typing multiple spaces or cursoring over them, there's a problem. That problem is that you don't know how to use your editor very well. Even Windows style text boxes have combos for this.
If anything, I would expect vim to reduce carpal tunnel risk by complex operations on the text reducing the total keys needed, and using command mode instead of modifiers to reduce finger contortions. But like 'back pain' a lot of cases are just people whining (psychosomatic).
Tabs mean I can view code with four space indenting, you can view the same code with two space and someone else can view it with eight space. Besides, a tab's whole purpose is indenting. And if you didn't use spaces, you wouldn't have problems.
Tabs mean that the default indenting is neither what the author wanted nor often what the viewer wanted, unless they are the same. For instance, viewing code in cvsweb or svn web gateway.
The purpose of tabs was creating TABles on a typewriter, not indenting.
Either all alignment is on a tabstop or you must use spaces. Most code uses some alignement (for instance #defines), so requires spaces, but no code requires tabs.
No, it doesn't. Starting with 2008, C# is letting you associate new methods with existing classes.
... which is done by the compiler writing a static method on *your* class and rewriting your code to call that static method when it looks like you are calling an instance method. It's compile-time only and behaves exactly the same as Java -- you aren't actually adding a method the the actual class, as you can do in Smalltalk, python, ruby, javascript, etc.
I guess you are playing at devil's advocate ?!
The thing is that mixing tabs and spaces is annoying as hell in any programming language. Personally I find the whole concept of using an invisible character with both undefined and variable width to be absurd. Frankly I'm surprised that the programmers using tabs haven't moved on to using <blink> in the code.
The only difference in Python is that it requires the programmer to use a consistent indentation. While that's annoying while writing code it helps a lot reading it because every program has consistent indentation. No matter how messed up the programmer a least the program's physical structure is sane.
And I doubt debugging mixed tabs/spaces is any harder than debugging "while(var); { /* the loop? */ }". And the editor can clearly show you where tabs vs spaces are, for instance in vimrc:
"highlight tabs at the beginning of the lines
highlight TabLevel term=reverse ctermbg=LightGray
match TabLevel "^\t\+"
I despise the python indenting when I am writing a program because I have to do more work. But I love that other people have to do that work, and sometimes paradoxically what's worse for an individual programmer makes the language better because the community benefits. For instance Java having static, sealed, unchangeable core classes makes a lot of programs harder to write then say in smalltalk, but overall it makes Java a better language.
Seriously though, the problem with microkernels is that they (in theory) help the system cope with mistakes but they don't help prevent mistakes in the first place. Each component in a microkernel is isolated from others using memory protection, but they can still corrupt themselves or crash themselves.
There's very few parts of the kernel that actually need pointer arithmetic, unsafe casts, or for that matter need to operate particularly quickly. You don't have to believe me just look at the code. Open up some random source files from the kernel and look for pointer math, unsafe casts. Figuring out what locks are held when is harder, but can be done (performance being more important when locks are held).
Microkernels are solving the wrong problem. They should be focussed on preventing the errors in the first place not on recovering from them. So, a 'safe kernel' that is mostly written in a language that prevents errors, such as Limbo/Dis or for that matter Java or C#. That would be much easier to work on and an improvement over Linux style kernels.
How am I doing anything at all wrong? ... if you give me $1000 I will give you something to show you're so wealthy that you could give me $1000 for the hell of it
Some people would say that accepting money for work you did not do, living off charity, is wrong. Those would be people with integrity, honor. Bragging about how rich you are is not respectable, and being an accessory to that, like being an accessory to murder or anything else, reflects badly on your character.
How is there anything wrong with offering a useless piece of overpriced tat? You don't have to be amoral to do this.
Basically what you are saying is that if you can get away with it, legally it isn't fraud, then so what? And this '$999 gem' app was misrepresented -- by its price, if nothing else. Just because you legally can charge 1k for something of no value doesn't mean you should.
In my view, people with morals work towards living in a meritocracy, where a person's rewards and position are directly related to the value of their works, by merit. For example, anything over some small profit, say 7%, is immoral as one is charging more than the product and your investment of time is worth. In the same vein, corporate CEOs that get rewarded with millions of dollars when the company tanks under their stewardship is immoral.
There isn't one morality. In your world, charging suckers a lot for some worthless crap is perfectly ok. But then merit clearly has no place, and to me that is in fact amoral.
For those of us more dense than the mods a clue:
W y t a s u d l k a r a i e !
h . h t o n s i e g e t d a
I c u d h l w t q a t m r p o r p y
t o l . e p i h u n u c y t g a h .
There's no place left where you can have a long running, no-holds-barred, cross-post slug fest between Java, C#, Smalltalk, LISP with people that actually know what they are talking about. Those were the days.
Now there are just random 'blog islands' and even if you happend to find one discussing the topic then nobody else is posting there, or the thread gets pushed off the frontpage and nobody sees it, or the 'yes-man' blog author moderates it so there is no actual discussion.
Slashdot is fun for posting random comments that may give you a '15-hours of fame' and then are completely buried, but it's just no substitute for microsoft.sucks.die.die.die or comp.lang.*.
I bought the BOXD945GCLF and really it's much better for the price than the competition's mini-itx boards. But judged on its own merits it's a piece of crap compared to what it could be and what it should be.
The BIOS is slow and flaky and limited, the VGA output noisy unless the power supply is perfect, the chipset draws 8 times as much power as the processor, the ACPI tables are seemingly wrong somehow since I've yet to get frequency scaling to work (it works under Windows from what I hear). And that's just getting started... I've never had a BIOS config screen actually freeze the computer before because I typed too fast for it. Maybe I've just been lucky that way?!
It looks like I got suckered just Intel can milk their better processor for more by releasing boards that are just slightly worth buying -- but only because there are no competition not because they are quality products. This is the first Intel board I've bought, and it'll be the last for a long time -- even if Via and AMD can't compete, if just as a protest.
Burning more power is OK if you can finish the job faster and get back into a low power state.
A flash ad that runs for 10 seconds will run for 10 seconds on a slow, low-power processor and also on a fast, high-power processor -- but the fast processor will do more work and use more power. A word processor that lays out the pages in the background will do less total work on a slow, efficient processor since the user will have typed in more data per layout iteration (so it will settle fewer times).
Just for a couple of counter-examples... except in contrived benchmarks, a slower processor often does less total work to get the same results.
The current generation Atom processor is fine. I have it running 64-bit Ubuntu right now and it's fast enough. The next generation may be worth waiting for, but this generation is decent.
The real problem with Atom at the moment is the mobo and chipset. The mini?-itx board I have from Intel uses 30 watts to turn on and 25 watts of that is the mobo minus processor (according to 4w rating). I know because the processor doesn't even have a heatsink and the whatever-bridge has a heatsink and fan. My advice: if there's a fan at all don't buy it. Same probably goes for laptops, unless they are advertising like 10+ hours then probably the chipset is using the vast majority of the power, so might as well get a faster processor if it's just going to piss away the power anyway.
The dual-core AMD desktop I have is, what, maybe 20 times faster at only say 3x more power (not sure how many watts the graphics card draws). The atom could easily be more like 10x more power efficient... then it would make sense.