You might want to check out OS X then. The main user runs as a member of wheel (so they can su to root if needed by an OS or security patch), but they have full access to their user folder *and* the Applications and Library folders, which is where all apps and userland stuff goes. They never notice they aren't root, but they can't easily accidentally bork the OS.
Unlike Linux and Windows, OS X has kept the "core OS" *very* separate from the areas the user will modify. This is also what allows things like "Archive and Install" to work so well.
The OS X model has proved over the last couple of years to work very, very well, so yes, this can be done.
I would respectfully disagree with Mr. Raskin. Familiar is all well and good, but they should be discoverable above all else. Even if it's not familiar, the interface should be very accessible, users should immediately know where to go next, or have an obvious starting point to locate features (start menu, menu bar, etc).
Quite simply, those people went into business, not teaching. Those who became professors are researchers, and as such teach the fundamentals, the algorithms, and such.
I would wager, however, that the fundamentals they teach (good algorithm design, how OS's and programs work on a very low level, data structures, human-computer interaction) will give you the base to figure out these "day to day" things, whereas the day to day things will not help you with fundamentals. People with a rigorous computer science background learn to appreciate things like structured programming, extensibility, flexibility, planning, etc. These are what make a good software engineer for decades, as languages, platforms, etc change.
International code is an interesting example. Everything you've mentioned is API-specific, so why should they waste their time teaching me that API when it will be dead in a few years? I can learn that from reference docs. However, they should remind me not to hard code numbers, values, formats, strings, etc, just as a good fundamental programming practice. If I do *that*, then I'm already prepared for international coding.
So to answer your question, I'd much rather employ the person who knows how to think about all aspects of a software project, plan it up front, know how it's going to interact with its environment (and internally, with itself), and I'll buy a book for them on specific API's.
Also, you're not top of the line with 3.4Ghz. With 4Ghz the numbers are better, but yeah, Motorola's not the only company with some Moore's Law problems.
Bandwidth, servers, storage, tech support (even minimal) would all drive the cost significantly higher than 10 cents a song. Apple current takes about 35 cents a song just to keep the technical infrastructure running, nevermind the labels' chunk.
If only because they say that Photoshop Elements has a different interface than Photoshop. Other than missing a few features (16-bit channel support, CMYK output, Healing Brush), the thing is IDENTICAL.
Troll/FlameBait, whatever - I don't have any mod points today (or ever, it seems).
The OS X GUI may try and protect the user from obvious problems and dangers, but the terminal will let you do whatever you damn well please. So get off it.
(Yes, I've written this response many times, and I'm not any happier at having to write it again.)
No, those home users should use a copy of Photoshop Elements, which has everything your home user needs for less than $100. Some of the best money I ever spent.
There are more kinds of efficiency than program execution time or memory usage - productivity, for one. If using BASIC makes me less productive (including extra time to work out bugs, maintain code, etc) and I have a C/Java/whatever compiler handy that makes me more productive, then BASIC is less efficient for the task.
Nevermind things like Dijkstra's algorithm, but I digress.
Your example is a very good one. However, German and French are very closely related, whereas BASIC and other high-level languages are not. What I propose instead is to look at how difficult it is for native English speakers to speak Russian or Japanese fluently. Unless you had exposure to them early on in your language development or are a natural linguist, they are going to be extremely difficult and take years just to reach basic proficiency.
Computer languages are similar. Basic encourages lack of planning, arbitrary code flows with no special layout, skanky hacks (only exceeded by C-style pointer arithmetic), and horrible scoping and variable naming. You have to first unlearn these bad habits before you can really appreciate the good habits of C and higher languages, not to mention the huge philisophical difference between statement, procedural, and object-oriented languages.
I hate to say it, but if you are seriously defending BASIC, you are (as another post said) either ignorant of computer science and any concepts of software engineering or are extraordinarily set in your ways.
- Apple already has a robust UNIX-based system. Probably needs some more SMP optimization, but that's it. What would Solaris offer that OS X doesn't either already have, or could have with a little focused work?
- The POWER architecture is *much* faster and has been scaling *much* better than Sparc. In a nutshell, an IBM pSeries 615 1-way 1.45Ghz has 20850 TPM's, whereas a Sun Fire V240 1-way 1.0Ghz has 8800 TPM's. Never mind the difference in CPU speed (Sun can't scale), but Ghz for Ghz the Sparc is *much* slower. And whose processor technology does Apple use?
- While Sun servers scale much better than Apple's (by a long shot), I'm of the opinion that their technology for high-end SMP systems s not as advanced as the IBM pSeries - IBM LPARs are much more flexible than Sun Domains (much better granularity and dynamic partitioning features, for instance).
- Java. Well, I guess Apple might like it, but how does this fit strategically? WebObjects, perhaps?
So, someone tell me why buying Sun would benefit Apple?
I believe what the grandparent post was saying is that if you use the iTunes *Store*, you can only play those songs on an iPod from Apple. The parent poster is correct, however, that numerous players work fine with iTunes for MP3-format files.
I'd comment on the article, but this "review" looks to be too poorly done. Where to start?
"People typically create tools not only for themselves, but for the benefit of other people who may not be so able to make their own tools. Hell -- I feel quite confident that you didn't build your own computer from the grains of sand level on up. You relied on others, and that's _great_. Why should it be any different here?"
Folks, Apple isn't getting special treatment - if any other music store had come out with similar universal licensing terms, interface, and products, we'd say the same things. The fact is that NO ONE HAS.
Microsoft is the company that gets special treatment of another kind - everything they do is viewed with suspicion. However, there's a good reason for that - they have a long history of manipulating the market and twisting everything to their own ends whether or not that benefits consumers. Apple, meanwhile (and a great many other companies), have a history of doing things expressly for the benefit of their customers.
Look at IBM. People used to view them the same as we view Microsoft today, and for good reason. Then they changed, and after years and years (over a decade's worth) of just creating great technology, contributing to the community and other "good works", IBM is viewed as a positive company. Apple has created great technology, contributed to the community (Darwin, KHTML contribs, expanding the reach of UNIX-kind) and other "good works". Microsoft has created lots of crappy technology, stifled and attacked the community (even its own) and engaged in criminal business practices time and time again, and been convicted!
So get off your high horse about people being mindless followers of Apple. Apple has every reason to have its followers, supporters, and admirers.
"You know, I have a brother in law that is seriously into motorcycles. He goes on and on about minutae of bikes that I barely understand. Elitist? Perhaps. But, he does not require or expect me to share his interest or desires. And, I do not expect him to explain things to "my level". Why is it, then, that we expect open source and free software programmers to "owe" something to society? Ironic how free software, wrongly criticized for being "communist" suffers under accusers far more "red" than it's protagonists. "
However, your brother-in-law doesn't constantly say "This is the year for everyone to ride motorcycles" or complain that all those dumb sheep drive evil cars when they should all be riding motorcycles.
They want to displace Microsoft, but don't want to put in the work necessary to get there in usability, documentation, streamlining, and focus. Or conversely, they just want to program for "themselves", yet proclaim that everyone should be doing this if they'd only put in the effort.
THAT is why the elitism of the Linux community is annoying.
Far better than draconian rules with symbols and crap is to use passphrases. Why systems still limit you to 8 characters to 12 characters or whatever is beyond me. Give me a 256 character password and let my type in my own long phrase. Sure, all of the words are in the dictionary, but with multiple words it's not susceptible to attack. It ends up just as secure as a convoluted password, but easily remembered.
I fully expect this to be struck down in the same way action against DeCSS was struck down. PlayFair only allows those who have already legally purchased the music to remove the DRM protections - something that was already possible with burning and re-ripping.
Apple is no friend of DRM, but you can bet they are going to do what is necessary to maintain their relationship with the music labels, particularly in light of the labels trying to raise prices and increase restrictions.
The end result of this is moot. Some will say the cat's out of the bag, the genie's out of the bottle, etc, but that's not the case. The cat was never in the bag - this could always be accomplished by a simple burn/rip cycle.
(And before people point out that this doesn't require lossy recompression, seriously consider how many people will leave the file in AAC format, rather than transcode it to the ever-popular MP3.)
Very off topic, but yes, product activation is required to install XP and can get screwed up by changing your hardware. The only reason I ended up on it at work is we have a corporate license that removes all activation-nonsense. If you have that option available, then I recommend XP Pro - it's fast, the anti-aliasing is nice, and built-in WiFi and FireWire support. If you have to deal with activation, then I'd stick to Win2K Pro.
Amen! While we're at it, could distributions ship with the ability to load all the modules they support, and ship with those modules available?
On Windows when you stick in some new hardware, it detects it and grabs a driver from the huge stock of pre-installed drivers. With Linux, well, you getter hope you have those modules compiled. Or you need to find the RPM.
I had the "pleasure" of compiling a new Linux kernel last week when I upgraded from one processor to two. The nice RPM of an SMP kernel worked, but USB broke completely and my best efforts at getting an NTFS module to load failed (the SMP RPM had been incorrectly built). So I went about learning to compile my own kernel. Long story short, upgrading from Red Hat running 2.4.21-9.0.1.EL to 2.6.4 was *very* difficult. Took literally my entire weekend (including staying up until 7am Sunday morning). After I was done, I rebooted into Windows 2000, opened the device manager, and replaced the Uniprocessor HAL with a Multiprocessor HAL. That took all of 5 minutes, including boot time. In the interest of full disclosure, updating from 2.6.4 to 2.6.5 only took 2 hours since I'd already made all of the 2.6-specific changes, but that's still a lot more work than installing a Windows service pack.
I'm not trying to troll - I'm just pointing out that Linux could be made just that easy. The distros aiming at end user desktops (Mandrake, RedHat, Suse, Xandros) should make things like drivers and kernel modules that easy - just preload them all on the drive. All it takes is some disk space. If you're a power user, use Debian, Gentoo, Slackware, or even one of the aforementioned distros and build your own kernel. But make the *default* system simple for people.
Remember that - more than eyecandy, more than wizards, one of the most important pieces of usability is sensible, well-done default settings. Most users aren't going to change them. Make sure they are well-served by them.
You might want to check out OS X then. The main user runs as a member of wheel (so they can su to root if needed by an OS or security patch), but they have full access to their user folder *and* the Applications and Library folders, which is where all apps and userland stuff goes. They never notice they aren't root, but they can't easily accidentally bork the OS.
Unlike Linux and Windows, OS X has kept the "core OS" *very* separate from the areas the user will modify. This is also what allows things like "Archive and Install" to work so well.
The OS X model has proved over the last couple of years to work very, very well, so yes, this can be done.
I would respectfully disagree with Mr. Raskin. Familiar is all well and good, but they should be discoverable above all else. Even if it's not familiar, the interface should be very accessible, users should immediately know where to go next, or have an obvious starting point to locate features (start menu, menu bar, etc).
Quite simply, those people went into business, not teaching. Those who became professors are researchers, and as such teach the fundamentals, the algorithms, and such.
I would wager, however, that the fundamentals they teach (good algorithm design, how OS's and programs work on a very low level, data structures, human-computer interaction) will give you the base to figure out these "day to day" things, whereas the day to day things will not help you with fundamentals. People with a rigorous computer science background learn to appreciate things like structured programming, extensibility, flexibility, planning, etc. These are what make a good software engineer for decades, as languages, platforms, etc change.
International code is an interesting example. Everything you've mentioned is API-specific, so why should they waste their time teaching me that API when it will be dead in a few years? I can learn that from reference docs. However, they should remind me not to hard code numbers, values, formats, strings, etc, just as a good fundamental programming practice. If I do *that*, then I'm already prepared for international coding.
So to answer your question, I'd much rather employ the person who knows how to think about all aspects of a software project, plan it up front, know how it's going to interact with its environment (and internally, with itself), and I'll buy a book for them on specific API's.
Is that math really that bad, or am I sleepy? It should read:
1995: 133 Mhz
1998: 400 Mhz (200% faster)
2000: 1500 Mhz (233% faster)
2002: 2800 Mhz (90% faster)
2004: 3400 Mhz (20% faster)
Also, you're not top of the line with 3.4Ghz. With 4Ghz the numbers are better, but yeah, Motorola's not the only company with some Moore's Law problems.
Bandwidth, servers, storage, tech support (even minimal) would all drive the cost significantly higher than 10 cents a song. Apple current takes about 35 cents a song just to keep the technical infrastructure running, nevermind the labels' chunk.
If only because they say that Photoshop Elements has a different interface than Photoshop. Other than missing a few features (16-bit channel support, CMYK output, Healing Brush), the thing is IDENTICAL.
Troll/FlameBait, whatever - I don't have any mod points today (or ever, it seems).
Regardless of any single web page, the Linux *community* has positioned it as a Photoshop replacement, for better or worse.
The OS X GUI may try and protect the user from obvious problems and dangers, but the terminal will let you do whatever you damn well please. So get off it.
(Yes, I've written this response many times, and I'm not any happier at having to write it again.)
No, those home users should use a copy of Photoshop Elements, which has everything your home user needs for less than $100. Some of the best money I ever spent.
There are more kinds of efficiency than program execution time or memory usage - productivity, for one. If using BASIC makes me less productive (including extra time to work out bugs, maintain code, etc) and I have a C/Java/whatever compiler handy that makes me more productive, then BASIC is less efficient for the task.
See, there's this thing called context...
However, if he has better alternatives (which the bashers are assuming is the case), then he is a fool for extracting work from a less efficient tool.
Nevermind things like Dijkstra's algorithm, but I digress.
Your example is a very good one. However, German and French are very closely related, whereas BASIC and other high-level languages are not. What I propose instead is to look at how difficult it is for native English speakers to speak Russian or Japanese fluently. Unless you had exposure to them early on in your language development or are a natural linguist, they are going to be extremely difficult and take years just to reach basic proficiency.
Computer languages are similar. Basic encourages lack of planning, arbitrary code flows with no special layout, skanky hacks (only exceeded by C-style pointer arithmetic), and horrible scoping and variable naming. You have to first unlearn these bad habits before you can really appreciate the good habits of C and higher languages, not to mention the huge philisophical difference between statement, procedural, and object-oriented languages.
I hate to say it, but if you are seriously defending BASIC, you are (as another post said) either ignorant of computer science and any concepts of software engineering or are extraordinarily set in your ways.
Now, what exactly does Sun bring to this?
- Apple already has a robust UNIX-based system. Probably needs some more SMP optimization, but that's it. What would Solaris offer that OS X doesn't either already have, or could have with a little focused work?
- The POWER architecture is *much* faster and has been scaling *much* better than Sparc. In a nutshell, an IBM pSeries 615 1-way 1.45Ghz has 20850 TPM's, whereas a Sun Fire V240 1-way 1.0Ghz has 8800 TPM's. Never mind the difference in CPU speed (Sun can't scale), but Ghz for Ghz the Sparc is *much* slower. And whose processor technology does Apple use?
- While Sun servers scale much better than Apple's (by a long shot), I'm of the opinion that their technology for high-end SMP systems s not as advanced as the IBM pSeries - IBM LPARs are much more flexible than Sun Domains (much better granularity and dynamic partitioning features, for instance).
- Java. Well, I guess Apple might like it, but how does this fit strategically? WebObjects, perhaps?
So, someone tell me why buying Sun would benefit Apple?
And that fact that this is being done by the Apache group and they couldn't publish a static web page of their own is, well, sad.
I believe what the grandparent post was saying is that if you use the iTunes *Store*, you can only play those songs on an iPod from Apple. The parent poster is correct, however, that numerous players work fine with iTunes for MP3-format files.
I'd comment on the article, but this "review" looks to be too poorly done. Where to start?
Did I just get linked off of /. or something?
Okay, this is stupid and is pissing me off.
Folks, Apple isn't getting special treatment - if any other music store had come out with similar universal licensing terms, interface, and products, we'd say the same things. The fact is that NO ONE HAS.
Microsoft is the company that gets special treatment of another kind - everything they do is viewed with suspicion. However, there's a good reason for that - they have a long history of manipulating the market and twisting everything to their own ends whether or not that benefits consumers. Apple, meanwhile (and a great many other companies), have a history of doing things expressly for the benefit of their customers.
Look at IBM. People used to view them the same as we view Microsoft today, and for good reason. Then they changed, and after years and years (over a decade's worth) of just creating great technology, contributing to the community and other "good works", IBM is viewed as a positive company. Apple has created great technology, contributed to the community (Darwin, KHTML contribs, expanding the reach of UNIX-kind) and other "good works". Microsoft has created lots of crappy technology, stifled and attacked the community (even its own) and engaged in criminal business practices time and time again, and been convicted!
So get off your high horse about people being mindless followers of Apple. Apple has every reason to have its followers, supporters, and admirers.
You're trying to upgrade Red Hat, aren't you?
"You know, I have a brother in law that is seriously into motorcycles. He goes on and on about minutae of bikes that I barely understand. Elitist? Perhaps. But, he does not require or expect me to share his interest or desires. And, I do not expect him to explain things to "my level". Why is it, then, that we expect open source and free software programmers to "owe" something to society? Ironic how free software, wrongly criticized for being "communist" suffers under accusers far more "red" than it's protagonists. "
However, your brother-in-law doesn't constantly say "This is the year for everyone to ride motorcycles" or complain that all those dumb sheep drive evil cars when they should all be riding motorcycles.
They want to displace Microsoft, but don't want to put in the work necessary to get there in usability, documentation, streamlining, and focus. Or conversely, they just want to program for "themselves", yet proclaim that everyone should be doing this if they'd only put in the effort.
THAT is why the elitism of the Linux community is annoying.
Far better than draconian rules with symbols and crap is to use passphrases. Why systems still limit you to 8 characters to 12 characters or whatever is beyond me. Give me a 256 character password and let my type in my own long phrase. Sure, all of the words are in the dictionary, but with multiple words it's not susceptible to attack. It ends up just as secure as a convoluted password, but easily remembered.
I fully expect this to be struck down in the same way action against DeCSS was struck down. PlayFair only allows those who have already legally purchased the music to remove the DRM protections - something that was already possible with burning and re-ripping.
Apple is no friend of DRM, but you can bet they are going to do what is necessary to maintain their relationship with the music labels, particularly in light of the labels trying to raise prices and increase restrictions.
The end result of this is moot. Some will say the cat's out of the bag, the genie's out of the bottle, etc, but that's not the case. The cat was never in the bag - this could always be accomplished by a simple burn/rip cycle.
(And before people point out that this doesn't require lossy recompression, seriously consider how many people will leave the file in AAC format, rather than transcode it to the ever-popular MP3.)
And your recommended response for Apple would have been...?
Very off topic, but yes, product activation is required to install XP and can get screwed up by changing your hardware. The only reason I ended up on it at work is we have a corporate license that removes all activation-nonsense. If you have that option available, then I recommend XP Pro - it's fast, the anti-aliasing is nice, and built-in WiFi and FireWire support. If you have to deal with activation, then I'd stick to Win2K Pro.
Amen! While we're at it, could distributions ship with the ability to load all the modules they support, and ship with those modules available?
On Windows when you stick in some new hardware, it detects it and grabs a driver from the huge stock of pre-installed drivers. With Linux, well, you getter hope you have those modules compiled. Or you need to find the RPM.
I had the "pleasure" of compiling a new Linux kernel last week when I upgraded from one processor to two. The nice RPM of an SMP kernel worked, but USB broke completely and my best efforts at getting an NTFS module to load failed (the SMP RPM had been incorrectly built). So I went about learning to compile my own kernel. Long story short, upgrading from Red Hat running 2.4.21-9.0.1.EL to 2.6.4 was *very* difficult. Took literally my entire weekend (including staying up until 7am Sunday morning). After I was done, I rebooted into Windows 2000, opened the device manager, and replaced the Uniprocessor HAL with a Multiprocessor HAL. That took all of 5 minutes, including boot time. In the interest of full disclosure, updating from 2.6.4 to 2.6.5 only took 2 hours since I'd already made all of the 2.6-specific changes, but that's still a lot more work than installing a Windows service pack.
I'm not trying to troll - I'm just pointing out that Linux could be made just that easy. The distros aiming at end user desktops (Mandrake, RedHat, Suse, Xandros) should make things like drivers and kernel modules that easy - just preload them all on the drive. All it takes is some disk space. If you're a power user, use Debian, Gentoo, Slackware, or even one of the aforementioned distros and build your own kernel. But make the *default* system simple for people.
Remember that - more than eyecandy, more than wizards, one of the most important pieces of usability is sensible, well-done default settings. Most users aren't going to change them. Make sure they are well-served by them.