A suitable shorthand term for copyright infringement would be useful, but "theft", "stealing" and "piracy" are all terms which already have meanings of their own: to use them for another purpose causes confusion, so I'll stick with "illegal copying". Only six syllables, and succinctly describes the exact nature of the offence being committed - making a copy of something where someone else has used the law to explicitly make such an act illegal.
"Illegal copying" is an amoral term. If your objection to piracy is based in morality rather than legality, the term falls short. Not that I'm picking on you - there's no easy answer.
A question for all those who reject the terms "theft" or "stealing" in this context: do you feel similarly about "identity theft" or "stolen credit card numbers?" The same arguments apply.
Re:HFS++ looking pretty sharp now eh?
on
WinFS Gets the Axe
·
· Score: 1
Of course it can. The filesystem is irrelevant. A feature like this would be present in the driver's "write" function
Is Reiser 3 fast? Is ext3 journaled? Does Reiser 4 use dancing trees? Of course! But these are not statements about the physical arrangement of bytes on disk, but the code that manipulates them. That code, the driver as you call it, is part of the filesystem.
Re:HFS++ looking pretty sharp now eh?
on
WinFS Gets the Axe
·
· Score: 2, Informative
Any filesystem could do this - you could do it using the DOS FAT filesystem.
No you couldn't. For example, with FAT16, there's no way to get the file-changed notifications that Spotlight needs to know when to reindex a file.
No, it's more complicated than that. Think about images - if the page may be drawn with greater resolution, than web sites will want to provide higher resolution images. So ideally, we'd have some way to specify which image the client should download and display, depending on the user's resolution.
Does FreeBSD utilize Zero-copy for data transferred via aio?
I wish I knew. But it does say that "Modifications of the Asynchronous I/O Control Block structure or the buffer contents after the request has been enqueued, but before the request has completed, are not allowed." That leads me to believe that the buffer is not copied or copy-on-writed.
Can someone please explain to me how this new proposal is different from the aio_* functions (asynchronous I/O) that appeared in FreeBSD?
For example, aio_write() writes to the file descriptor, allows you to poll for success a la select, and tells you not to modify the buffer before it's done (but doesn't try to stop you with copy-on-write).
Now that they have everyone used to using the net, it it time to clamp back down to where you only get so many bytes a month, or so many hours.
Yes please!
Speaking as someone who almost never uses P2P, I'm sick of subsidizing those who do. They drive up the price for everyone.
The most common argument in this thread seems tox be "I paid for unlimited usage, so that's what I should get." Ok, then tell Comcast/Earthlink/etc. to stop treating everyone like a P2P hog. I use a fiftieth of the resources of an eMule junkie, so why the heck am I being charged the same $60/month?
If you actually performed even a few of the tests I listed, then you spent a lot more money than just the cost of the components for one system.
But if you're relying entirely on the components manufacturers' tests, then you have less quality assurance than an OEM does. Testing components in isolation is no substitute for system testing. Would you take a drug that has only been shown to work in test tubes, and not in human trials?
Less testing and less care in engineering means more problems. There's reasons beyond the brand of hard drive why some computer models fail more often than others.
The computer being used to write this message (not the old one) was assembled by myself using parts purchased for a relatively small amount of money
Did you perform heat tests, noise tests, drop tests, foot wear tests, electrical tests, spilled-Coke-in-the-keyboard tests, etc. before you assembled it? Apple did all those before they assembled mine.
Is Apple being supplied with parts from a different assembly line than everyone else?
I haven't seen "everyone else" with a case like the G5 or the iMac. There's a big difference between assembling and engineering, and testing can find a lot of problems before the first production machine and during production as well.
I'm probably wasting my time here, but... if the only statically typed languages you've used are ones with a braindead or outdated type system (such as C, C++, Java, C#, or really any "mainstream" statically typed language...), you should really try a language with a more powerful type system. Try OCaml or Standard ML or (if you really want to blow your mind) Haskell. If you do try one of those, just keep an open mind at first. Some things will be hard to wrap your head around for a while. But if you work at it you will gain a huge insight into how powerful type systems can be.
And if you work at it a little longer, you'll gain an even huger insight into how poorly strict, static typechecking gets along with polymorphism, and object oriented design in general.
Example: In OCaml, the only way to "downcast" an object to one of its subclasses is to call a virtual function which is implemented in each of its subclasses to throw a different exception, and to pattern match against the different exceptions.
So yeah, I wasn't impressed. There's a reason Smalltalk is, well, Smalltalk.
How is supporting Mach and FreeBSD system calls an advantage?
There's a lot of historical decisions of dubious validity in retrospect, but there's also an excellent technical defense that can be made for Mach. In short, Mach is really cool. Mach IPC makes signals, sockets, pipes, shared memory, SysV IPC, etc. look positively clumsy. What's FreeBSD's answer to the Mach Inteface Generator? CORBA?
So OS X gets a lot of mileage out of Mach messaging - AppleEvents, distributed notifications, run loops, etc. If OS X processes seem good at talking to one another - think VoiceOver, Spotlight, the window server, iLife's media sharing, even copy and paste - it's due in part to the fast, flexible IPC mechanisms enabled by Mach.
The 4/4 memory split only applies to 32 bit environments. Haven't the G3/G4/G5 been 64 bit?
In principle, yes; in practice, OS X has a 32 bit kernel even on 64 bit machines, not least of all for driver binary compatibility. You want to know the win here - take a look at the binary compatibility driver story on 64 bit Linux or 64 bit Windows. Apple allows 64 bit processes on Tiger without breaking everyone's hardware.
(Incidentally, only the G5 is 64 bit.)
Are you suggesting that FreeBSD, Linux, Windows, or any other modern operating system doesn't use dynamic libraries?
Yes. Benchmarks typically compare statically linked libraries on Linux (because they're faster) to dynamically linked binaries on OS X (because that's all Apple ships).
Yes, there is an advantage to not using the buffer cache in some cases, something you can do in linux with the O_DIRECT filedescriptor flag
Thanks, I wasn't familiar with that flag on Linux. From googling, it looks like it does somewhat different things, in particular, not speeding up sequential file access.
In any case, I'll certainly agree that there Linux-specific filesystem optimizations; I was just commenting on a technique I found to give a substantial boost to OS X programs with sequential access patterns.
Some parts of OS X are much slower than others. System calls are quite expensive (roughly 10x the cost on a conventional UNIX system), for example
I'm not disputing this, but I'd like to provide some context so people aren't left with the impression that "Apple's programmers are st00pid n00bs." There's at least three decisions that negatively impact OS X's system call performance, but that provide wins in other areas.
1) Mach/FreeBSD system call disambiguation. OS X has to support both Mach and FreeBSD system calls through the same trap interface. Determining which you have isn't cheap, but the win is apparent - how many Mach messages per second does your conventional UNIX benchmark at? Features don't come for free. This is fixed overhead which will be especially apparent with "fast" system calls.
2) 4/4 memory split. A system call requires a context switch to and from the kernel's own address space. I'm not sure about other UNIX flavors, but Linux in particular (usually) maps the kernel's address space into each process with a 3/1 split, which is faster but has an obvious downside - 25% less address space for the process and 75% less for the kernel!
3) Dynamic library binding. OS X is unusual in that every library is always dynamically bound, which adds overhead for every call, but gives you all the benefits of non-static libraries (code sharing, security, etc.) Benchmarks often don't take this into account.
The slowest part of the system I have found is the VM subsystem, which absolutely crawls. I wrote some fairly I/O intensive code with a number of back ends.
There's a few things I've found that impact OS X's I/O negatively:
1) Spotlight wants to index any file you opened for writing and then closed. That's obviously going to incur a cost.
2) Unified buffer cache - cacheing reads in the VM system. For a linear read of a huge file, this only hurts; it can be turned off on a per descriptor basis, but code compiled naively for OS X won't have bothered to do that.
3) Bugs. There seems to be a bug where a program doing linear I/O can monopolize the I/O system, which improves performance for that process but decreases apparent responsiveness.
Maybe you just don't get it? Job outsourcing has happened and will happen always in a market economy - hell any economy. You are not owed a job by the government or by any business.
I don't ask my government to solve the economy's problems, but I do ask that it at least understand them.
Outsourcing aside, your job, and only job, is to figure out what the market wants and supply it
"What the market wants" is dependent upon government policies that distort it in various directions. What that debate made clear is that Bush does not understand both the impact of the current policy and how the US government could distort (or stop distorting) the market in ways that benefit US citizens.
it is NOT your Village Chief's responsibility to outlaw the extra meat to protect your inefficient use of time and resources
Nobody is suggesting that offshoring be outlawed.
they'll outsource some of their lesser jobs to us - because we were too busy whining about losing some job to an Indian programmer who could do the same job much cheaper.
I am not whining about offshoring, I am not whining that the President isn't doing anything to stop it - I am whining that the President doesn't even understand it. No matter what your opinion on offshoring, it is absurd to suggest that highly skilled laid-off programmers return to community college.
No, Kerry didn't understand the problem. The tax "incentives" that supposedly encourages companies to offshore aren't "incentives" at all. This so-called "incentive" is that the US corporate tax rate is much higher than most other countries, so companies have a valid reason to shift their operations and profits to countries with lower tax rates. Kerry's solution to this was to increase corporate taxes by taxing profits on goods that were produced overseas.
Thank you for the link. It was very informative, but I think your analysis is incorrect.
You write "This so-called "incentive" is that the US corporate tax rate is much higher than most other countries, so companies have a valid reason to shift their operations and profits to countries with lower tax rates." That seems like the very definition of incentive to me - a 100% tax break for USA-based companies on profits that are not reinvested in the USA! Why would you not consider that an incentive?
From your link, Kerry's proposal would have made USA based corporations pay the same tax rate - a lower tax rate than at the time - whether the money was reinvested in the USA or not, thus eliminating the disincentive to keep money out of the USA. Seems like it helps level the playing field to me.
I remember during one of the Bush / Kerry debates, the question was posed "What do you say to someone who lost his job due to offshoring?" Bush's answer was "We're going to give you a scholarship to send you to a community college, so you can get an education." What a terrible answer - as if the problem with these people is that they don't have enough education! That really drove home the point for me. Bush doesn't understand this problem at all.
(Kerry, FWIW, talked about eliminating some of the tax incentives that encourage companies to offshore. At least he understood the problem and had an appropriate, if timid, response.)
Processing 10+ audio streams on any semi-modern processor should work just fine.
Then why wasn't this feature enabled in Skype 1.0? Why did Intel need to "work with software application developers to help them understand how Intel's chips process data" if this feature is so inexpensive?
> BS. I can go to HP and get the same hardware as an Intel iMac for less without even trying hard.
Really? Does HP even sell a machine with a form factor like the iMac? When you've had to lug your iMac as many places as I have, you really start to appreciate the all-in-one.
"Illegal copying" is an amoral term. If your objection to piracy is based in morality rather than legality, the term falls short. Not that I'm picking on you - there's no easy answer.
A question for all those who reject the terms "theft" or "stealing" in this context: do you feel similarly about "identity theft" or "stolen credit card numbers?" The same arguments apply.
Is Reiser 3 fast? Is ext3 journaled? Does Reiser 4 use dancing trees? Of course! But these are not statements about the physical arrangement of bytes on disk, but the code that manipulates them. That code, the driver as you call it, is part of the filesystem.
Any filesystem could do this - you could do it using the DOS FAT filesystem. No you couldn't. For example, with FAT16, there's no way to get the file-changed notifications that Spotlight needs to know when to reindex a file.
Someone should tell Microsoft that MTV doesn't actually play music any more.
(Or did another person make this joke already?)
A large part of it is that the Blockbuster coupons are also good for games.
I got to play God of War through my Blockbuster subscription. I couldn't have done that if I had used Netflix.
No, it's more complicated than that. Think about images - if the page may be drawn with greater resolution, than web sites will want to provide higher resolution images. So ideally, we'd have some way to specify which image the client should download and display, depending on the user's resolution.
I wish I knew. But it does say that "Modifications of the Asynchronous I/O Control Block structure or the buffer contents after the request has been enqueued, but before the request has completed, are not allowed." That leads me to believe that the buffer is not copied or copy-on-writed.
Right, but neither does Linux's new system call. Both require the programmer to design for them specifically.
man aio_return
For example, aio_write() writes to the file descriptor, allows you to poll for success a la select, and tells you not to modify the buffer before it's done (but doesn't try to stop you with copy-on-write).
This sounds exactly like what Linus wants.
Yes please!
Speaking as someone who almost never uses P2P, I'm sick of subsidizing those who do. They drive up the price for everyone.
The most common argument in this thread seems tox be "I paid for unlimited usage, so that's what I should get." Ok, then tell Comcast/Earthlink/etc. to stop treating everyone like a P2P hog. I use a fiftieth of the resources of an eMule junkie, so why the heck am I being charged the same $60/month?
If you actually performed even a few of the tests I listed, then you spent a lot more money than just the cost of the components for one system.
But if you're relying entirely on the components manufacturers' tests, then you have less quality assurance than an OEM does. Testing components in isolation is no substitute for system testing. Would you take a drug that has only been shown to work in test tubes, and not in human trials?
Less testing and less care in engineering means more problems. There's reasons beyond the brand of hard drive why some computer models fail more often than others.
He means that, in surveys of repair records for computer purchases, Macs are consistently at or near the top.
The computer being used to write this message (not the old one) was assembled by myself using parts purchased for a relatively small amount of money
Did you perform heat tests, noise tests, drop tests, foot wear tests, electrical tests, spilled-Coke-in-the-keyboard tests, etc. before you assembled it? Apple did all those before they assembled mine.
Is Apple being supplied with parts from a different assembly line than everyone else?
I haven't seen "everyone else" with a case like the G5 or the iMac. There's a big difference between assembling and engineering, and testing can find a lot of problems before the first production machine and during production as well.
C'mon, at least let the dupe get off the page first...
Apple has always allowed resellers to sell dual boot configurations.
It's Microsoft that disallows dual booting. But they might grant a special exception for Macs.
And if you work at it a little longer, you'll gain an even huger insight into how poorly strict, static typechecking gets along with polymorphism, and object oriented design in general.
Example: In OCaml, the only way to "downcast" an object to one of its subclasses is to call a virtual function which is implemented in each of its subclasses to throw a different exception, and to pattern match against the different exceptions.
So yeah, I wasn't impressed. There's a reason Smalltalk is, well, Smalltalk.
There's a lot of historical decisions of dubious validity in retrospect, but there's also an excellent technical defense that can be made for Mach. In short, Mach is really cool. Mach IPC makes signals, sockets, pipes, shared memory, SysV IPC, etc. look positively clumsy. What's FreeBSD's answer to the Mach Inteface Generator? CORBA?
So OS X gets a lot of mileage out of Mach messaging - AppleEvents, distributed notifications, run loops, etc. If OS X processes seem good at talking to one another - think VoiceOver, Spotlight, the window server, iLife's media sharing, even copy and paste - it's due in part to the fast, flexible IPC mechanisms enabled by Mach.
The 4/4 memory split only applies to 32 bit environments. Haven't the G3/G4/G5 been 64 bit?
In principle, yes; in practice, OS X has a 32 bit kernel even on 64 bit machines, not least of all for driver binary compatibility. You want to know the win here - take a look at the binary compatibility driver story on 64 bit Linux or 64 bit Windows. Apple allows 64 bit processes on Tiger without breaking everyone's hardware.
(Incidentally, only the G5 is 64 bit.)
Are you suggesting that FreeBSD, Linux, Windows, or any other modern operating system doesn't use dynamic libraries?
Yes. Benchmarks typically compare statically linked libraries on Linux (because they're faster) to dynamically linked binaries on OS X (because that's all Apple ships).
Yes, there is an advantage to not using the buffer cache in some cases, something you can do in linux with the O_DIRECT filedescriptor flag
Thanks, I wasn't familiar with that flag on Linux. From googling, it looks like it does somewhat different things, in particular, not speeding up sequential file access.
In any case, I'll certainly agree that there Linux-specific filesystem optimizations; I was just commenting on a technique I found to give a substantial boost to OS X programs with sequential access patterns.
I'm not disputing this, but I'd like to provide some context so people aren't left with the impression that "Apple's programmers are st00pid n00bs." There's at least three decisions that negatively impact OS X's system call performance, but that provide wins in other areas.
1) Mach/FreeBSD system call disambiguation. OS X has to support both Mach and FreeBSD system calls through the same trap interface. Determining which you have isn't cheap, but the win is apparent - how many Mach messages per second does your conventional UNIX benchmark at? Features don't come for free. This is fixed overhead which will be especially apparent with "fast" system calls.
2) 4/4 memory split. A system call requires a context switch to and from the kernel's own address space. I'm not sure about other UNIX flavors, but Linux in particular (usually) maps the kernel's address space into each process with a 3/1 split, which is faster but has an obvious downside - 25% less address space for the process and 75% less for the kernel!
3) Dynamic library binding. OS X is unusual in that every library is always dynamically bound, which adds overhead for every call, but gives you all the benefits of non-static libraries (code sharing, security, etc.) Benchmarks often don't take this into account.
The slowest part of the system I have found is the VM subsystem, which absolutely crawls. I wrote some fairly I/O intensive code with a number of back ends.
There's a few things I've found that impact OS X's I/O negatively:
1) Spotlight wants to index any file you opened for writing and then closed. That's obviously going to incur a cost.
2) Unified buffer cache - cacheing reads in the VM system. For a linear read of a huge file, this only hurts; it can be turned off on a per descriptor basis, but code compiled naively for OS X won't have bothered to do that.
3) Bugs. There seems to be a bug where a program doing linear I/O can monopolize the I/O system, which improves performance for that process but decreases apparent responsiveness.
I'm glad you replied instead of modding me up, since you know more about it than I do.
My girlfriend is reluctant to play, so I haven't bought it yet. Any tips on getting her interested?
Title says it all!
I don't ask my government to solve the economy's problems, but I do ask that it at least understand them.
Outsourcing aside, your job, and only job, is to figure out what the market wants and supply it
"What the market wants" is dependent upon government policies that distort it in various directions. What that debate made clear is that Bush does not understand both the impact of the current policy and how the US government could distort (or stop distorting) the market in ways that benefit US citizens.
it is NOT your Village Chief's responsibility to outlaw the extra meat to protect your inefficient use of time and resources
Nobody is suggesting that offshoring be outlawed.
they'll outsource some of their lesser jobs to us - because we were too busy whining about losing some job to an Indian programmer who could do the same job much cheaper.
I am not whining about offshoring, I am not whining that the President isn't doing anything to stop it - I am whining that the President doesn't even understand it. No matter what your opinion on offshoring, it is absurd to suggest that highly skilled laid-off programmers return to community college.
Thank you for the link. It was very informative, but I think your analysis is incorrect.
You write "This so-called "incentive" is that the US corporate tax rate is much higher than most other countries, so companies have a valid reason to shift their operations and profits to countries with lower tax rates." That seems like the very definition of incentive to me - a 100% tax break for USA-based companies on profits that are not reinvested in the USA! Why would you not consider that an incentive?
From your link, Kerry's proposal would have made USA based corporations pay the same tax rate - a lower tax rate than at the time - whether the money was reinvested in the USA or not, thus eliminating the disincentive to keep money out of the USA. Seems like it helps level the playing field to me.
(Kerry, FWIW, talked about eliminating some of the tax incentives that encourage companies to offshore. At least he understood the problem and had an appropriate, if timid, response.)
Then why wasn't this feature enabled in Skype 1.0? Why did Intel need to "work with software application developers to help them understand how Intel's chips process data" if this feature is so inexpensive?
> BS. I can go to HP and get the same hardware as an Intel iMac for less without even trying hard.
Really? Does HP even sell a machine with a form factor like the iMac? When you've had to lug your iMac as many places as I have, you really start to appreciate the all-in-one.
(And yes, I have a laptop too.)