Just remember, you get almost a 100% increase in performance every year for free - hardware pretty much doubles in performance every year
Only CPU hardware! Disks, memory, and networks certainly improve much, much more slowly.
In days gone by, optimizing for the CPU was more important. But now, optimizing for network utilization can be both more profitable and more difficult (being that instead of rewriting a few loops in pure assembly, you need to re-think how data flows around the whole system)
My software engineering prof. believes that optimization should never be done during a project.
I hope he doesn't phrase it quite so stupidly- because according to what you just wrote, optimization will never happen. ("Once the project is complete" means that the CDs are in the mail to customers, and by then it's too late!)
It's more likely he used one of the more sensible aphorisms, like:
"First make it run. Then make it run correctly. Then make it run fast"
(There is disagreement amoung software-engineering theorists as to what order the first two come in, but the idea that performance comes last is close to universal... barring the quite obvious exceptions)
Would you spend a day designing a better algorithm or finish the project and buy faster hardware?
That's a misleading question- it begs the question that optimization can be performed quickly (or even in a predictable time). If it really only took one day to make a better algorithim, of course you should do it. But the point is that it's very difficult to predict where the performance bottlenecks in a piece of software will come from... while it's realtively trivial to measure the hotspots in a running processes.
Any effort expended "optimizing" something that wasn't really a bottleneck is probably wasted.
The ROI for $ spent "optimizing algorithms" is uncertain... but with a scalable design, it can be rather safe to predict that each additional $4k will increase speed by X jobs/sec.
doing a lot of forking/threading (ie like a daemon)
Bah. Threading inside a daemon is for the weak! Only those whose minds are too small to contemplate handling multiple unsynchronized tasks within a single process space need lean on the crutch of threaded coding.
If working on OSS, clarity of the code has to be one of the top goals.
But I'm a major corporation using GPL code as the basis for my new product, and can't afford my customers hiring outside coders for support, you insensitive clod!
Which is a PITA, as knowing how to use references and resources is a major part of programming.
This is a Computer Science exam. Knowing how to program is not a part of CS. (I could name some major CS professors who can't program...)
There should be no need to use any nontrivial API call for the test. For example, if the student was asked to write a recursive sorting algorithm, and he turned in a 2-line call to a org.apache.util.Quicksort, that should recieve zero points.
Whereas if you were a professional programmer on the job, reusing the existing library is exactly the right thing, and showing off your CS-chops by reimplementing known algorithms is just a risk.
(One of many ways school is unlike real life... "using references and resources" is a big part of any real work, but disallowed from almost any standardized exam)
The "rare" version that most large companies license?
Since today I happened to be onsite with a company with more than 50,000 employees, I grabbed a PC to see if Excel could export XML. It could not.
This company (which incidentally resells Microsoft) had Office "Standard Edition". That's the extent of my 1st-hand experience with this matter, but 100% of datapoints support my position!
PS. MS Office comes in "Standard", "Small Business", "Student", and "Pro" versions. Only one of those exports XML. Even if it were true that all large businesses had the Pro version, my point would still hold... all those corporate employees take work home with them. So if a file isn't supported by their home version, they don't consider it supported at all.
One Server distro, one desktop distro, one exactly like Windows distro
The rule of thumb for quality products is that every specific category needs at minimum two major options.
It'll probably turn out that neither competitor's offering is substantially better than or different from the other (like Coke/Pepsi or McD/BK), but what's important is that they keep each other honest and prevent a tendency to get like Microsoft.
I thought credit cards charged something like 3.5% plus 30c per transaction.
As part of establishing the iTunes business plan, Apple probably negotiated improved terms with the creditcard companies. The fact that their products are 100% digital and only come in exactly 2 prices probably gave them an argument that the creditcard needed less effort than for more general kinds of transaction processing.
Damn thing, actually associating all DOS/Windows binaries with WINE.
A proper Linux distribution will include separate executables called "wine" and "wine-safe", which runs programs in a sandbox with no ability to see your files. Any emailer wanting to associate.EXE files with a handler should only use wine-safe.
This is not the case for MS. If it is, please provide a link to the MS Office document _specs_ and not just some silly schema.
I'm told that the schema for XML files that Microsoft provides here are sufficiently detailed to count as "specs" for those kinds of files. (Those documents were released less than 1 month ago)
Of course, that doesn't change the fact that MS Office doesn't really use XML files. Not only are XML files not the default output of MS Office and Office's XML-output can't hold all the data their binary formats could, but most importantly, the normal MS Office products available to consumers today cannot export these XML formats. Only some rare "Pro" / "developer" versions have the exporting.
So chances are, even if you did have the specs to read an MS Excel file in XML, your MS-customer friends wouldn't be able to produce them for you.
I second the AC's implications about your own ignorance.
Also, the new file selector is NeXT based as well.
Apple used to be proud that you didn't really need any file selector besides Finder.
It sounds like you are being ignorant of roots and geneology of things. You know, things didn't start with windows 95.
The OSX Dock isn't much like the NeXTStep Dock... in fact, it's very much a combination of the features of the Windows95 taskbar and appearance of the NS Dock. (Being a combination is in itself a bad thing, because consistency is an important part of a good UI)
Let's step through a few major traits of Taskbar, NSDock, and OSXDock. Then we can guess what's derived from what.
Default position:
Taskbar: Bottom.
NSDock: Right. OSXDock: Bottom So in this instance, OSX copies from Microsoft, not NeXT. However, there is a good reason the MS Taskbar is on the bottom: Words use up less space horizontaly. But the NeXT and OSX Docks have icons, not words, so there's no reason not to be vertical.
Appearance
Taskbar: Icon + Text.
NSDock: Icon. OSXDock: Icon, + Text only when mouseover. This is an area where OSXDock copies the outward appearance of the NSDock, but for no good reason. NSDock only needed an icon because each button represented an application, not a document. With OSXDock, each open document has a new icon, which looks identical (or just similar) to other open docs of the same format. This forces the user to wave the mouse across the dock to find where she wants to click, which is bad.
Repositioning
Taskbar: Dynamically resizes as you run more programs.
NSDock: Manually resized only when you configure new applications. OSXDock: Dynamically resizes when you run more programs, or when the mouse cursor is nearby. So for this one, OSX is like MS Windows, because it resizes dynamically. But it's a lot worse than the Windows taskbar, because the position of the things you're trying to click on actually movies around as the mouse gets closer!
Contents
Taskbar: Each open application window that
is running. NSDock: Installed applications that can run. OSXDock: Installed applications that can run, and each open application window that is running, and the Trash. This is where the Dock's biggest conceptual problem arises. It combines non-running applications, open documents, and the trashcan in one single amorphous list. The old Mac OS (9 and earlier) kept these things separate: non-running programs in a menu to the upper left, currently-open documents on a menu in the upper right, and the trash as an icon to the lower right. Mixing up of different kinds of icons in one place is the Dock's single biggest sin.
It's handy, flexible, functional, and unobstrusive as you want it to be since it's also configurable.
There's a content-free sentence for you... those adjectives could mean anything.
Well, I'll agree that the OSX Dock is configurable. What's unfortunate is that you need to reconfigure it before it becomes useful. (Many, many programs are "configurable" because they allow users to script their own macros. But if users must do serious work to get something decent... what's good about that?)
The most important reconfiguration I need to do before using a new Mac is to create a folder in the Dock holding icons for all your programs, to imitate the old Apple menu. Although that doesn't work quite as well as the real Apple menu, for 3 reasons. 1: It changes position onscreen depending on how many documents you've opened. 2: You must click & wait to get it open. 3: It needs manual updating when new apps are installed.
I suspect you are pundit. Is "Minna Karai" a pseudonym for "John Dvorak"?
Close! But Dvorak still gets a paycheck for doing this...
You omitted several (including some now-defunct products that were historically important): Microsoft "Program Manager", "File Manager", "Paint", "Explorer", "Document", "Bitmap". (Claiming the generic term "Document" as their own was an especially valuable coup)
PS. The TFH reply you garnered is insipid. "Tin-Foil Hat" has become overused as an all-purpose insult, instead of an allusion to a specific pattern of belief.
Obviously, "copyright" is about the "right to copy" (or distribute). Not "right to use". If the copyright holder has allowed a copy to be distributed to you, he has no further legal ability to control what you do (unless you try to make more copies).
The license gives you specified rights to the copyrighted software that you would not normally have.
As soon as Microsoft has my dollars and I have their CDROM, I've got a normal right to use the software.
If they wanted to apply additional conditions, they should've done that before handing over the product.
Or would you argue that Bill Gates or George Lucas can telephone you at any time and demand an additional fee to continue using a product (whether Excel or Star Wars) that you've already bought?
For one thing it keeps me from viewing a lot of junky web content I'd prefer to just avoid.
So what happens when you come to a page with Flash in it?
When I used Mozilla on Linux, it would open a pair of "You need to download Macromedia Flash" windows for each plugin on a page (which could be multiple). Or did you add this?
but having illegaly aquired copyrighted works has nothing to do with "circumevention devices" last time I checked.
The outlawing of circumvention devices is only one of the DMCA's many provisions. Another major provision is the copyright holder notification system, which requires any ISP to identify its users to a copyright holder if the holder can point out a specific thing that's infringing.
Previously, ISPs could use the "common carrier" defense, and claim "I bear no responsibility for the contents of the data my customers transmit". But now they must respond if a specific violation is pointed out. (George Lucas attempted to abuse that regulation by sending a mass mailing to ISPs notifying them that all Star Wars videos were infringing, but that didn't work because it was unspecific)
a lot of innovation actually comes from people trying to work _around_ existing patents. In doing so, they discover new and novel ways and so on
So you've seen people spending major investment to find an alternative solution to an already-solved problem, instead of actually working on something that hasn't been done yet, and you act like that's a good thing??
(I'll be by later to smash the windows in your home so you can research new and innovative glassmaking techniques...)
With PGP you might just think you'd be able to throw a mathematician/programmer at the kit and get them to check it.
Nope. With GPG you could do that. But PGP is closed source, so you have to trust the vendor that a particular executable does what it claims. (Unless you're willing to disassemble the binary, which is difficult, error-prone, and sometimes illegal)
It's a convoluted mess of far too many options that makes it damn near impossible to get done whatever you want to get done unless you know exactly how to do it.
The WindowsXP panel is even worse in that regard. (However, both the KDE and Gnome control panels share a weakness that isn't their fault: they don't control the underlying OS, filesystem, or even X server, so they can't let the user adjust those things with any assurance)
Now Mac OS X... there's a desktop environment I can worship for its elegance and functionality.
OS X has taken major steps backwards, favoring eye-candy over functionality. Many of those problems are extensively documented in HCT and Mac-head journals... the most blatant problem, of course, is the travesty called "The Dock".
Suppose that Lexmark made a printer that looked for a certain string in a ROM on an ink cartridge.
This has happened before. There was a game called "Heretic" based on id software's Doom. It could load 3rd-party created maps files, but only if it found a copyright string inside claiming authorship by the original Heretic publisher.
That scheme did not hold up.
(However, the situation with Linux kernel tainting is different. The primary purpose of the GPL flag is not to allow/disallow the module to run, but rather to communicate to the end-user about the module's Free Software status)
Just remember, you get almost a 100% increase in performance every year for free - hardware pretty much doubles in performance every year
Only CPU hardware! Disks, memory, and networks certainly improve much, much more slowly.
In days gone by, optimizing for the CPU was more important. But now, optimizing for network utilization can be both more profitable and more difficult (being that instead of rewriting a few loops in pure assembly, you need to re-think how data flows around the whole system)
My software engineering prof. believes that optimization should never be done during a project.
I hope he doesn't phrase it quite so stupidly- because according to what you just wrote, optimization will never happen. ("Once the project is complete" means that the CDs are in the mail to customers, and by then it's too late!)
It's more likely he used one of the more sensible aphorisms, like:
"First make it run. Then make it run correctly. Then make it run fast"
(There is disagreement amoung software-engineering theorists as to what order the first two come in, but the idea that performance comes last is close to universal... barring the quite obvious exceptions)
Would you spend a day designing a better algorithm or finish the project and buy faster hardware?
That's a misleading question- it begs the question that optimization can be performed quickly (or even in a predictable time). If it really only took one day to make a better algorithim, of course you should do it. But the point is that it's very difficult to predict where the performance bottlenecks in a piece of software will come from... while it's realtively trivial to measure the hotspots in a running processes.
Any effort expended "optimizing" something that wasn't really a bottleneck is probably wasted.
The ROI for $ spent "optimizing algorithms" is uncertain... but with a scalable design, it can be rather safe to predict that each additional $4k will increase speed by X jobs/sec.
doing a lot of forking/threading (ie like a daemon)
Bah. Threading inside a daemon is for the weak! Only those whose minds are too small to contemplate handling multiple unsynchronized tasks within a single process space need lean on the crutch of threaded coding.
If working on OSS, clarity of the code has to be one of the top goals.
But I'm a major corporation using GPL code as the basis for my new product, and can't afford my customers hiring outside coders for support, you insensitive clod!
Which is a PITA, as knowing how to use references and resources is a major part of programming.
This is a Computer Science exam. Knowing how to program is not a part of CS. (I could name some major CS professors who can't program...)
There should be no need to use any nontrivial API call for the test. For example, if the student was asked to write a recursive sorting algorithm, and he turned in a 2-line call to a org.apache.util.Quicksort, that should recieve zero points.
Whereas if you were a professional programmer on the job, reusing the existing library is exactly the right thing, and showing off your CS-chops by reimplementing known algorithms is just a risk.
(One of many ways school is unlike real life... "using references and resources" is a big part of any real work, but disallowed from almost any standardized exam)
The "rare" version that most large companies license?
Since today I happened to be onsite with a company with more than 50,000 employees, I grabbed a PC to see if Excel could export XML. It could not.
This company (which incidentally resells Microsoft) had Office "Standard Edition". That's the extent of my 1st-hand experience with this matter, but 100% of datapoints support my position!
PS. MS Office comes in "Standard", "Small Business", "Student", and "Pro" versions. Only one of those exports XML. Even if it were true that all large businesses had the Pro version, my point would still hold... all those corporate employees take work home with them. So if a file isn't supported by their home version, they don't consider it supported at all.
One Server distro, one desktop distro, one exactly like Windows distro
The rule of thumb for quality products is that every specific category needs at minimum two major options.
It'll probably turn out that neither competitor's offering is substantially better than or different from the other (like Coke/Pepsi or McD/BK), but what's important is that they keep each other honest and prevent a tendency to get like Microsoft.
I thought credit cards charged something like 3.5% plus 30c per transaction.
As part of establishing the iTunes business plan, Apple probably negotiated improved terms with the creditcard companies. The fact that their products are 100% digital and only come in exactly 2 prices probably gave them an argument that the creditcard needed less effort than for more general kinds of transaction processing.
Damn thing, actually associating all DOS/Windows binaries with WINE.
.EXE files with a handler should only use wine-safe.
A proper Linux distribution will include separate executables called "wine" and "wine-safe", which runs programs in a sandbox with no ability to see your files. Any emailer wanting to associate
This is not the case for MS. If it is, please provide a link to the MS Office document _specs_ and not just some silly schema.
I'm told that the schema for XML files that Microsoft provides here are sufficiently detailed to count as "specs" for those kinds of files. (Those documents were released less than 1 month ago)
Of course, that doesn't change the fact that MS Office doesn't really use XML files. Not only are XML files not the default output of MS Office and Office's XML-output can't hold all the data their binary formats could, but most importantly, the normal MS Office products available to consumers today cannot export these XML formats. Only some rare "Pro" / "developer" versions have the exporting.
So chances are, even if you did have the specs to read an MS Excel file in XML, your MS-customer friends wouldn't be able to produce them for you.
Also, the new file selector is NeXT based as well.
Apple used to be proud that you didn't really need any file selector besides Finder.
It sounds like you are being ignorant of roots and geneology of things. You know, things didn't start with windows 95.
The OSX Dock isn't much like the NeXTStep Dock... in fact, it's very much a combination of the features of the Windows95 taskbar and appearance of the NS Dock. (Being a combination is in itself a bad thing, because consistency is an important part of a good UI)
Let's step through a few major traits of Taskbar, NSDock, and OSXDock. Then we can guess what's derived from what.
Default position:
NSDock: Right.
OSXDock: Bottom
So in this instance, OSX copies from Microsoft, not NeXT. However, there is a good reason the MS Taskbar is on the bottom: Words use up less space horizontaly. But the NeXT and OSX Docks have icons, not words, so there's no reason not to be vertical.
Appearance
NSDock: Icon.
OSXDock: Icon, + Text only when mouseover.
This is an area where OSXDock copies the outward appearance of the NSDock, but for no good reason. NSDock only needed an icon because each button represented an application, not a document. With OSXDock, each open document has a new icon, which looks identical (or just similar) to other open docs of the same format. This forces the user to wave the mouse across the dock to find where she wants to click, which is bad.
Repositioning
NSDock: Manually resized only when you configure new applications.
OSXDock: Dynamically resizes when you run more programs, or when the mouse cursor is nearby.
So for this one, OSX is like MS Windows, because it resizes dynamically. But it's a lot worse than the Windows taskbar, because the position of the things you're trying to click on actually movies around as the mouse gets closer!
Contents
NSDock: Installed applications that can run.
OSXDock: Installed applications that can run, and each open application window that is running, and the Trash.
This is where the Dock's biggest conceptual problem arises. It combines non-running applications, open documents, and the trashcan in one single amorphous list. The old Mac OS (9 and earlier) kept these things separate: non-running programs in a menu to the upper left, currently-open documents on a menu in the upper right, and the trash as an icon to the lower right. Mixing up of different kinds of icons in one place is the Dock's single biggest sin.
It's handy, flexible, functional, and unobstrusive as you want it to be since it's also configurable.
There's a content-free sentence for you... those adjectives could mean anything.
Well, I'll agree that the OSX Dock is configurable. What's unfortunate is that you need to reconfigure it before it becomes useful. (Many, many programs are "configurable" because they allow users to script their own macros. But if users must do serious work to get something decent... what's good about that?)
The most important reconfiguration I need to do before using a new Mac is to create a folder in the Dock holding icons for all your programs, to imitate the old Apple menu. Although that doesn't work quite as well as the real Apple menu, for 3 reasons.
1: It changes position onscreen depending on how many documents you've opened.
2: You must click & wait to get it open.
3: It needs manual updating when new apps are installed.
I suspect you are pundit. Is "Minna Karai" a pseudonym for "John Dvorak"?
Close! But Dvorak still gets a paycheck for doing this...
But I can say that for real world use, rather than contrived examples, it opens every spreadsheet I've tried it with, without problems[1]
How about Excel files which have password-protection to make certain cells read-only? I've never seen Gnumeric grok one of those...
Microsoft "Windows", "Word", "Excel", "Passport"
You omitted several (including some now-defunct products that were historically important):
Microsoft "Program Manager", "File Manager", "Paint", "Explorer", "Document", "Bitmap". (Claiming the generic term "Document" as their own was an especially valuable coup)
PS. The TFH reply you garnered is insipid. "Tin-Foil Hat" has become overused as an all-purpose insult, instead of an allusion to a specific pattern of belief.
my short-bus riding pal
That shit might fly in comp.os.linux.advocacy (or whatever), but not in my office
Way to sink below what you accuse others of!
Obviously, "copyright" is about the "right to copy" (or distribute). Not "right to use". If the copyright holder has allowed a copy to be distributed to you, he has no further legal ability to control what you do (unless you try to make more copies).
The license gives you specified rights to the copyrighted software that you would not normally have.
As soon as Microsoft has my dollars and I have their CDROM, I've got a normal right to use the software.
If they wanted to apply additional conditions, they should've done that before handing over the product.
Or would you argue that Bill Gates or George Lucas can telephone you at any time and demand an additional fee to continue using a product (whether Excel or Star Wars) that you've already bought?
files that I archive are named "foo_yyyymmdd"
You can do a 1-line shell script to copy any single file into a date-stamped backup:
test $1 && cp -r $1 $1.`$0`||date +%y%m%d
(That command is non-Y2K-compliant, however)
For one thing it keeps me from viewing a lot of junky web content I'd prefer to just avoid.
So what happens when you come to a page with Flash in it?
When I used Mozilla on Linux, it would open a pair of "You need to download Macromedia Flash" windows for each plugin on a page (which could be multiple). Or did you add this?
but having illegaly aquired copyrighted works has nothing to do with "circumevention devices" last time I checked.
The outlawing of circumvention devices is only one of the DMCA's many provisions. Another major provision is the copyright holder notification system, which requires any ISP to identify its users to a copyright holder if the holder can point out a specific thing that's infringing.
Previously, ISPs could use the "common carrier" defense, and claim "I bear no responsibility for the contents of the data my customers transmit". But now they must respond if a specific violation is pointed out. (George Lucas attempted to abuse that regulation by sending a mass mailing to ISPs notifying them that all Star Wars videos were infringing, but that didn't work because it was unspecific)
After reading my recent posts, I can verify we didn't do enough spelling in school.
After counting your recent posts, I can verify you didn't learn enough "work ethic" in school...
a lot of innovation actually comes from people trying to work _around_ existing patents. In doing so, they discover new and novel ways and so on
So you've seen people spending major investment to find an alternative solution to an already-solved problem, instead of actually working on something that hasn't been done yet, and you act like that's a good thing??
(I'll be by later to smash the windows in your home so you can research new and innovative glassmaking techniques...)
With PGP you might just think you'd be able to throw a mathematician/programmer at the kit and get them to check it.
Nope. With GPG you could do that. But PGP is closed source, so you have to trust the vendor that a particular executable does what it claims. (Unless you're willing to disassemble the binary, which is difficult, error-prone, and sometimes illegal)
"AIE" sounds kind of interesting,
I always found "aches" perfectly appropriate as the name of the system's software.
It's a convoluted mess of far too many options that makes it damn near impossible to get done whatever you want to get done unless you know exactly how to do it.
The WindowsXP panel is even worse in that regard. (However, both the KDE and Gnome control panels share a weakness that isn't their fault: they don't control the underlying OS, filesystem, or even X server, so they can't let the user adjust those things with any assurance)
Now Mac OS X... there's a desktop environment I can worship for its elegance and functionality.
OS X has taken major steps backwards, favoring eye-candy over functionality. Many of those problems are extensively documented in HCT and Mac-head journals... the most blatant problem, of course, is the travesty called "The Dock".
Suppose that Lexmark made a printer that looked for a certain string in a ROM on an ink cartridge.
This has happened before. There was a game called "Heretic" based on id software's Doom. It could load 3rd-party created maps files, but only if it found a copyright string inside claiming authorship by the original Heretic publisher.
That scheme did not hold up.
(However, the situation with Linux kernel tainting is different. The primary purpose of the GPL flag is not to allow/disallow the module to run, but rather to communicate to the end-user about the module's Free Software status)