If I have it right, swiftc translates code to Swift Intermediate Language, in which several optimizations occur, which is then translated to LLVM's Intermediate Language, which gets its own optimizations before being translated to an.o file.
In retrospect, are these 2 similar but separate levels an unfortunate hack/necessary compromise, or still an nice design decision? I'd think it would have been better if swift's optimizations could be done in a single intermediate representation and streamline two compilation phases into one, but perhaps wrong. Do you foresee a future giant refactoring of swift compiler & LLVM that introduces a redesigned IL that obviates the need for a separate SIL??
Perhaps asteroids are not what we thought they were. Someone has suggested that they come from a planet that somehow exploded (of which Mars was originally a moon, maybe). Unfortunately, people poo-poo this hypothesis because they are unimaginative boobs and cannot imagine how a planet could possibly explode.. details details.
Its interesting that, as I recall, this model led to some predictions about Mars that seemed to pan out. But then again, I don't remember anything accurately anymore, and primarily entertain myself by listening to dodgy late night radio. Thank you, pharmaceutical industry!
[blah blah podcast blah].... I think it's rather amusing to observe these people thinking that they've invented a new medium when it's really just a minor variation on plain old web browsing.
Let's say I used to surf the radio dial on the train to work each day, but now I take my MP3 player which automatically gets loaded that morning with new audio programs. You say that's just a minor variation on web browsing?
Or try this one.. I turn on my TV in the evening and it lists the video choices that have recently been downloaded for me, from video podcasts like Tiki Bar to clips and shorts deemed "funny" by del.icio.us users. From my couch this kinda looks like broadcasting plus a DVR. Perhaps soon I'll be able to subscribe to any content from all NBC channels for $6.99 per month.
The fact that its the same old protocols and data formats is moot if applications and services are combining to give us a new user experience (or an improvement to an old one).
The GPL covers distribution not use, if it covered use, no one would be able to use GPLed software in a commercial setting.
One has to be careful not to confuse different aspects of the GPL, or lead others to this confusion. What the GPL has to say about use is that it unrestricted. If you use a program, you can do with it what you like, including viewing and modifying its source your private purposes. In this sense it covers use.
The aspect which people refer to as 'viral' is of course modifications that you distribute to other users. If you want to distribute your program to other users and don't like the GPL, then you shouldn't make use of GPL source code. Similarly, if you wouldn't like to be fined or be sentenced to prison, then you should not use source code stolen form Microsoft:-)
Yes, if it was that you couldn't be a user of a GPL program without giving away all your work for free to your clients and competitors, then that would be kinda useless.
Seirously, taken literally this says that if I run a webapp on a GPLed server or even a GPLed OS, I have to release the source code.
I don't think it says that when taken literally (perhaps when taken some other way?). Is your web app compiled into a modified webserver? Is it and the webserver compiled into the OS kernel? If not then I think your fears are unfounded.
Clear thinking is needed: Who is the user? What's the program that is being provided to the user? What counts as part of the program? Let's take the case where you wrote something like slashcode and made it GPL, who are its users?
Or instead, how about this example.. if you wrote a office suite for text-based terminals that's preinstalled on a dailup, um, I'll call it a timeshare system (cuz I'm old-skool), is there any doubt that the person at home dialing into the system is the user even though the program is not install on their own hardware? Would the GPL be violated if another timeshare system customized the same program adding copy-paste between the program's modules and kept this work to themselves? What if they tried under so-called IP law to protect this invention to keep it only on their timeshare system?
Or how about a clearer example, suppose some users chose to switch to the competitor's timeshare system partly because it had the GPL suite available. Say then the company added a new document format to the program which people migrated to thinking they were safe to do so. Would these users be screwed if they couldn't export usable data anymore because the company decided they didn't need to make their changes public? Yes, they'd be screwed indeed. In this example, you, the original author of the app might be able to choose GPLv3 specifically to prevent this situation.
And alternately, if the timeshare system instead wrote their own office suite app themselves, would it be required to be GPL just because they used Linux servers, or bash, or a GPL PPP implementation. Clearly not. These examples map easily to web applications and the conclusions are directly analogous.
In response to an excellent post, someone said That's the biggest crock of bullshit I've ever heard. Freedom is earned not dictated.
Some would say that reasonable freedoms are a right of all individuals. Some would say that their reasonable freedoms were earned by people centuries ago (or more recently in some cases) who fought for them for themselves and their descendents.
Anyway, RMS saw a situation where software companies were able to take away the freedoms their users had come to enjoy and rely on. He created the GPL for the purposes of creating a pool of software with which the users' freedoms would be ensured by way of copyright law. He's not dictating that anyone who disagree with these fairly clear notions need participate, they just have to simply avoid making use of GPL source code in programs that are other than just for their own personal use.
Quartz Extreme doesn't totally shift rendering to the video card, only compositing.
The 3d scene that is an OS X desktop today is comprised of a relatively small number of surfaces, i think like one or two for each window, maybe each doc icon, each menu that pops up, and so forth. The contents of each of those are for the most part still drawn with the CPU into a backing store by the drawing subsystem Quartz 2D (or Quickdraw if your app is rockin' old school).
In old OS X, the "Quartz Compositor" (don't confuse with "Quartz Composer" a new app in 10.4) ran in a CPU process, compositng the backing stores to the screen with transparency effects, transformations, drop shadows, etc. Quartz Extreme is the change that shifts this compositing program onto the GPU instead. Now, for example, transprency and transformations effects that could not be done for OpenGL windows or video (which bypass the backing store system, and so the old compositor), now all works great and with no CPU hit.
Developed for OS X 10.4 is something called "Quartz 2D Extreme" (don't confuse with plain "Quartz Extreme") which pushes more of the rendering work onto the GPU (and probably moving all of the backing stores into VRAM), which probably makes it more equivalent to Longhorn new model. I believe even in 10.4.2, it still cannot by switched on (i wonder why, hmm, perhaps it needs more VRAM than available on today's machines?).
Since most keyboards sold in Canada are identical to US ones, this is best described with the qualifier: a Canadian-CSA keyboard. They're probably found exclusively in Quebec and government offices.
But I barely ever leave the west coast of this country, so what do i know except that my computernow sports a mapleleaf-laden keyboard layout named Canadian that is otherwise identical to the U.S. one.
Endian issues are minor though (usually not a problem at all) compared to the API differences.
No. It was said today at a certain conference by someone knowledgeable that the two main problems facing Windows to Mac game ports are DirectX and endian-ness, and the majority of the lingering Mac-specific bugs are due to endian issues.
While the rewrites for DirectX etc. are a lot of work, they seem to be more easy to do the more you do it as you build your toolset for porting code using those APIs. Endianness is instead a nightmare of little case-by-case problems, death by a thousand cuts.
This is a point which can't be repeated too often: GPS is a totally passive system at the user end. I look forward to a time when regular people understand GPS well enough to know that GPS doesn't track anything ! All a GPS device does is calculate its own location using radio and math.
This is because regular people do not understand the implications of words like "totally passive system". I like to explain it thusly:
GPS can be used to find where you are, not where someone else is. The only way to use GPS to find anyone else is to have them find themselves then call you to tell you the result, or to have a device with them that does that.
there already is a Canadian layout. It is different from the US layout, because it has accent keys and some other nicities. It's called the Canadian Multi-lingual Standard, or CSA (Canadian Standards Association) keyboard.
The problem with the CSA layout is that for most of us its wrong. Unless we're in a government office (or Quebec I suppose), then our computers have "normal" U.S. layouts.
I know some people who, rather than seeing a U.S. flag in their menubar, would choose the CSA layout and learn the locations of the symbols and accents by trial and error.
Me, I read Apple's technote on making new keyboard layout bundles and made my own Canadian flag layout that duplicated the U.S. one. Hmm, now that Tiger includes a layout just like this, I won't get very far selling mine.. damn.
...your cursor must always be on a real character that exists in the document. It cannot be in the space after the last character on the line. (The exception is blank lines, but there is no way to be on a real character then, so you have to make this exception.) So naturally, after you have inserted text at the end of a line, your cursor cannot be AFTER the last character, because this is an illegal position for the cursor within vi.
After reading this, I paused to give thanks to the unsung genius who made the first text editor with a vertical-bar insertion point.
To correct your typos: We had these machines called Zeppelins. They were big, full of hydrogen, and generally were most spiffy and never blew up except when they were painted with rocket fuel
Apple II machines had a reset button seated on a hefty spring, and would only take effect if you held down the Apple button
In fact, it was when you held the Control key, as in "Control-Reset".// and ][+ didn't have Apple keys, although those keys were just remapped joystick buttons (or was it paddle controllers, or maybe they were the same), which a// or ][+ could have. I seem to recall some programs written for a//e actually ran fine on a ][+, but the user would need a joystick in order to type the command keys:-)
Anyway, the joystick buttons had no effect on Control-Reset on these older Apples, it would always be a "soft" reset, a jump to an intercept which usually was a reset routine but could easily be redirected.
On an Apple//e and//c, the left Apple key with an outlined symbol (aka joystick 1 button) made Control-Reset into a "hard" reset whose interrupt address and reset routine was hard coded in ROM I believe. This key combination was called an "Open Apple-Control-Reset".
The right Apple key with a filled-in Apple symbol (aka joystick 2 button) jumped to a RAM test routine like a POST. This was called a "Closed Apple-Control-Reset".
Could there grounds for GNU to sue said industry body for libel? It would be interesting to see the claims against the GPL challenged in court. IANAL (duh)
What you can compare is SLP (Service location protocol) www.openslp.org and UPnP (?).
Perhaps an interesting comparison. But useless if you wanted to talk about zeroconf.
zeroconf gathers all the small details for ip/dns issues so that ip/dns(local) networking can "just work".
Yup, that's 2/3rds of zeroconf. At last year's Apple developer conference, Stuart Chesire talked about zeroconf as encompassing 3 areas: addressing, naming, browsing.
Dynamic addressing without a dhcp server is achieve using IPv4 link-local addressing, which isn't specific to (and i think predates) zeroconf. In fact UPnP also relies on link-local addressing I hear. This has been implemented in windows & mac os for some time now - its the 169.254/16 default address you get when you can't connect to your dhcp server.
Naming is done using something called multicast dns where essentially normal dns request can be multicast on the local network, instead of sent to a specific name server. A tiny daemon "mDNS responder" on each device is all thats needed for multicast dns to work.
these are those small detail, as you say, that let ip/dns(local) networking "just work".
SLP is what apple uses for itunes & and their IM so you can find anyone on your own subnet using the same program (or service), it's an service location protocol;)
Previous versions of Mac OS X relied on SLP for service discovery, however, starting in Mac OS X 10.2, Apple is putting all of its resources behind Rendezvous, and therefore, we recommend that developers start adopting Rendezvous for service discovery instead of SLP
The third part of zeroconf is browsing, ie. service discovery. This feature is essentially a kind of lookup: "what are all the file servers on my network?". Since every device has a mDNS responder for address lookup, rather than inventing a new protocol, zeroconf does discovery as an extension to dns based on existing scheme for SRV records. The draft spec is very readable, go see dns-sd.org.
An interesting aspect of these discovery extensions to dns is that they can be implemented in existing names servers just by statically configurating the records that zeroconf would have defined automatically. So even if you aren't using zeroconf for dynamic address & naming, you can still use its service discovery.
Microsoft didn't like SLP for a number of reasons, although i can't find the URL to the guy who designed uPnP for microsoft. He had a nice informative site.
I'd like to see that, can anyone give a link? Apple obviously had similar dislikes for SLP, since they now discourage its use, but I haven't seen that discussed anywhere.
An interesting thing to note is that the three names seen on most zeroconf documents are Stuard Chesire from Apple, Bernard Aboba from Microsoft and Erik Guttman from Sun. That's an interesting mix.
While UPnP comes off as a strategic invention driven by top-level management at MS & Intel, Zeroconf strikes me as a group of smart guys "scratching an itch" and coming up with practical solution.
'it's' means 'it is'. the possesive version... is spelled 'its'. Just learn the darned language! He who cant learn this rule will forever making this mistake in hi's writing.
JV: What is fair use? Fair use is not a law. There's nothing in law. Bullshit, Jack. It's right here:...
IANAL, but I think this kind of response falls short, because there is a valid argument to be made along the lines of "fair use isn't a law". Its that fair use duplication is permitted under the law, but is not a right protected by law. Nothing in the law requires producers to make duplication for fair use purposes either easy or possible. The law doesn't give consumers the right to always be able to make fair use copies.
In other words, "fair use isn't a law" is another way of saying "copy protection isn't illegal", which is really an empty statement, spin. Jack Valenti should be called out on those grounds.
The response "fair use is indeed in the law, right there" just sounds like an "Is not! Is too!" argument.
You seem to be under the impression that the OSX-icons are SVG. This is not true. They are just resource forks containing several different sized icons so that they seem to scale "magically".
Totally correct in the part about the SVG and the scaling and the magic. But hey, resources aren't just for resource forks anymore! The file format of resource forks live on in (the "data fork" of).rsrc files. But in many cases, resource files are obsolete, replaced by many files loose within bundles. Loose, hell, willy-nilly even!
Indeed, in the case with icon files, Apple defined a new icon format circa OS 9 or so containing old school bitmaps of various sizes/depths plus masks, and also 64x64 & 128x128 pixmaps with alpha channel. This format works in 'icns' resources and also within.icns files. In OS X, the latter is more common.
If I have it right, swiftc translates code to Swift Intermediate Language, in which several optimizations occur, which is then translated to LLVM's Intermediate Language, which gets its own optimizations before being translated to an .o file.
In retrospect, are these 2 similar but separate levels an unfortunate hack/necessary compromise, or still an nice design decision? I'd think it would have been better if swift's optimizations could be done in a single intermediate representation and streamline two compilation phases into one, but perhaps wrong. Do you foresee a future giant refactoring of swift compiler & LLVM that introduces a redesigned IL that obviates the need for a separate SIL??
Also, what are your opinions on the Mill CPU?
Perhaps asteroids are not what we thought they were. Someone has suggested that they come from a planet that somehow exploded (of which Mars was originally a moon, maybe). Unfortunately, people poo-poo this hypothesis because they are unimaginative boobs and cannot imagine how a planet could possibly explode.. details details.
Its interesting that, as I recall, this model led to some predictions about Mars that seemed to pan out. But then again, I don't remember anything accurately anymore, and primarily entertain myself by listening to dodgy late night radio. Thank you, pharmaceutical industry!
and into 3D with a FOSS system that's a little like Second Life. And call it "cyberspace", of course.
Let's say I used to surf the radio dial on the train to work each day, but now I take my MP3 player which automatically gets loaded that morning with new audio programs. You say that's just a minor variation on web browsing?
Or try this one.. I turn on my TV in the evening and it lists the video choices that have recently been downloaded for me, from video podcasts like Tiki Bar to clips and shorts deemed "funny" by del.icio.us users. From my couch this kinda looks like broadcasting plus a DVR. Perhaps soon I'll be able to subscribe to any content from all NBC channels for $6.99 per month.
The fact that its the same old protocols and data formats is moot if applications and services are combining to give us a new user experience (or an improvement to an old one).
"[sarcasm] Ya, MS has no idea what works... they got to be the biggest company in the world by luck"
Well of course their success wasn't just due to luck... it was luck plus evil.
The GPL covers distribution not use, if it covered use, no one would be able to use GPLed software in a commercial setting.
:-)
One has to be careful not to confuse different aspects of the GPL, or lead others to this confusion. What the GPL has to say about use is that it unrestricted. If you use a program, you can do with it what you like, including viewing and modifying its source your private purposes. In this sense it covers use.
The aspect which people refer to as 'viral' is of course modifications that you distribute to other users. If you want to distribute your program to other users and don't like the GPL, then you shouldn't make use of GPL source code. Similarly, if you wouldn't like to be fined or be sentenced to prison, then you should not use source code stolen form Microsoft
Yes, if it was that you couldn't be a user of a GPL program without giving away all your work for free to your clients and competitors, then that would be kinda useless.
Seirously, taken literally this says that if I run a webapp on a GPLed server or even a GPLed OS, I have to release the source code.
I don't think it says that when taken literally (perhaps when taken some other way?). Is your web app compiled into a modified webserver? Is it and the webserver compiled into the OS kernel? If not then I think your fears are unfounded.
Clear thinking is needed: Who is the user? What's the program that is being provided to the user? What counts as part of the program? Let's take the case where you wrote something like slashcode and made it GPL, who are its users?
Or instead, how about this example.. if you wrote a office suite for text-based terminals that's preinstalled on a dailup, um, I'll call it a timeshare system (cuz I'm old-skool), is there any doubt that the person at home dialing into the system is the user even though the program is not install on their own hardware? Would the GPL be violated if another timeshare system customized the same program adding copy-paste between the program's modules and kept this work to themselves? What if they tried under so-called IP law to protect this invention to keep it only on their timeshare system?
Or how about a clearer example, suppose some users chose to switch to the competitor's timeshare system partly because it had the GPL suite available. Say then the company added a new document format to the program which people migrated to thinking they were safe to do so. Would these users be screwed if they couldn't export usable data anymore because the company decided they didn't need to make their changes public? Yes, they'd be screwed indeed. In this example, you, the original author of the app might be able to choose GPLv3 specifically to prevent this situation.
And alternately, if the timeshare system instead wrote their own office suite app themselves, would it be required to be GPL just because they used Linux servers, or bash, or a GPL PPP implementation. Clearly not. These examples map easily to web applications and the conclusions are directly analogous.
In response to an excellent post, someone said That's the biggest crock of bullshit I've ever heard. Freedom is earned not dictated.
Some would say that reasonable freedoms are a right of all individuals. Some would say that their reasonable freedoms were earned by people centuries ago (or more recently in some cases) who fought for them for themselves and their descendents.
Anyway, RMS saw a situation where software companies were able to take away the freedoms their users had come to enjoy and rely on. He created the GPL for the purposes of creating a pool of software with which the users' freedoms would be ensured by way of copyright law. He's not dictating that anyone who disagree with these fairly clear notions need participate, they just have to simply avoid making use of GPL source code in programs that are other than just for their own personal use.
Quartz Extreme doesn't totally shift rendering to the video card, only compositing.
The 3d scene that is an OS X desktop today is comprised of a relatively small number of surfaces, i think like one or two for each window, maybe each doc icon, each menu that pops up, and so forth. The contents of each of those are for the most part still drawn with the CPU into a backing store by the drawing subsystem Quartz 2D (or Quickdraw if your app is rockin' old school).
In old OS X, the "Quartz Compositor" (don't confuse with "Quartz Composer" a new app in 10.4) ran in a CPU process, compositng the backing stores to the screen with transparency effects, transformations, drop shadows, etc. Quartz Extreme is the change that shifts this compositing program onto the GPU instead. Now, for example, transprency and transformations effects that could not be done for OpenGL windows or video (which bypass the backing store system, and so the old compositor), now all works great and with no CPU hit.
Developed for OS X 10.4 is something called "Quartz 2D Extreme" (don't confuse with plain "Quartz Extreme") which pushes more of the rendering work onto the GPU (and probably moving all of the backing stores into VRAM), which probably makes it more equivalent to Longhorn new model. I believe even in 10.4.2, it still cannot by switched on (i wonder why, hmm, perhaps it needs more VRAM than available on today's machines?).
Since most keyboards sold in Canada are identical to US ones, this is best described with the qualifier: a Canadian-CSA keyboard. They're probably found exclusively in Quebec and government offices.
But I barely ever leave the west coast of this country, so what do i know except that my computer now sports a mapleleaf-laden keyboard layout named Canadian that is otherwise identical to the U.S. one.
While the rewrites for DirectX etc. are a lot of work, they seem to be more easy to do the more you do it as you build your toolset for porting code using those APIs. Endianness is instead a nightmare of little case-by-case problems, death by a thousand cuts.
there already is a Canadian layout. It is different from the US layout, because it has accent keys and some other nicities. It's called the Canadian Multi-lingual Standard, or CSA (Canadian Standards Association) keyboard.
The problem with the CSA layout is that for most of us its wrong. Unless we're in a government office (or Quebec I suppose), then our computers have "normal" U.S. layouts.
I know some people who, rather than seeing a U.S. flag in their menubar, would choose the CSA layout and learn the locations of the symbols and accents by trial and error.
Me, I read Apple's technote on making new keyboard layout bundles and made my own Canadian flag layout that duplicated the U.S. one. Hmm, now that Tiger includes a layout just like this, I won't get very far selling mine.. damn.
All of them
We're all waiting for COL and CIM
...your cursor must always be on a real character that exists in the document. It cannot be in the space after the last character on the line. (The exception is blank lines, but there is no way to be on a real character then, so you have to make this exception.) So naturally, after you have inserted text at the end of a line, your cursor cannot be AFTER the last character, because this is an illegal position for the cursor within vi.
After reading this, I paused to give thanks to the unsung genius who made the first text editor with a vertical-bar insertion point.
To correct your typos: We had these machines called Zeppelins. They were big, full of hydrogen, and generally were most spiffy and never blew up except when they were painted with rocket fuel
Portknocker
Apple II machines had a reset button seated on a hefty spring, and would only take effect if you held down the Apple button
// and ][+ didn't have Apple keys, although those keys were just remapped joystick buttons (or was it paddle controllers, or maybe they were the same), which a // or ][+ could have. I seem to recall some programs written for a //e actually ran fine on a ][+, but the user would need a joystick in order to type the command keys :-)
//e and //c, the left Apple key with an outlined symbol (aka joystick 1 button) made Control-Reset into a "hard" reset whose interrupt address and reset routine was hard coded in ROM I believe. This key combination was called an "Open Apple-Control-Reset".
In fact, it was when you held the Control key, as in "Control-Reset".
Anyway, the joystick buttons had no effect on Control-Reset on these older Apples, it would always be a "soft" reset, a jump to an intercept which usually was a reset routine but could easily be redirected.
On an Apple
The right Apple key with a filled-in Apple symbol (aka joystick 2 button) jumped to a RAM test routine like a POST. This was called a "Closed Apple-Control-Reset".
Yeah, I know. Who cares.
quack
Could there grounds for GNU to sue said industry body for libel? It would be interesting to see the claims against the GPL challenged in court. IANAL (duh)
quack
Larger? Hmm, in ascii sort order I suppose it is.
What you can compare is SLP (Service location protocol) www.openslp.org and UPnP (?).
Perhaps an interesting comparison. But useless if you wanted to talk about zeroconf.
zeroconf gathers all the small details for ip/dns issues so that ip/dns(local) networking can "just work".
Yup, that's 2/3rds of zeroconf. At last year's Apple developer conference, Stuart Chesire talked about zeroconf as encompassing 3 areas: addressing, naming, browsing.
Dynamic addressing without a dhcp server is achieve using IPv4 link-local addressing, which isn't specific to (and i think predates) zeroconf. In fact UPnP also relies on link-local addressing I hear. This has been implemented in windows & mac os for some time now - its the 169.254/16 default address you get when you can't connect to your dhcp server.
Naming is done using something called multicast dns where essentially normal dns request can be multicast on the local network, instead of sent to a specific name server. A tiny daemon "mDNS responder" on each device is all thats needed for multicast dns to work.
these are those small detail, as you say, that let ip/dns(local) networking "just work".
SLP is what apple uses for itunes & and their IM so you can find anyone on your own subnet using the same program (or service), it's an service location protocol
Nope. From apple's rendezvous faq:
The third part of zeroconf is browsing, ie. service discovery. This feature is essentially a kind of lookup: "what are all the file servers on my network?". Since every device has a mDNS responder for address lookup, rather than inventing a new protocol, zeroconf does discovery as an extension to dns based on existing scheme for SRV records. The draft spec is very readable, go see dns-sd.org.
An interesting aspect of these discovery extensions to dns is that they can be implemented in existing names servers just by statically configurating the records that zeroconf would have defined automatically. So even if you aren't using zeroconf for dynamic address & naming, you can still use its service discovery.
Microsoft didn't like SLP for a number of reasons, although i can't find the URL to the guy who designed uPnP for microsoft. He had a nice informative site.
I'd like to see that, can anyone give a link? Apple obviously had similar dislikes for SLP, since they now discourage its use, but I haven't seen that discussed anywhere.
An interesting thing to note is that the three names seen on most zeroconf documents are Stuard Chesire from Apple, Bernard Aboba from Microsoft and Erik Guttman from Sun. That's an interesting mix.
While UPnP comes off as a strategic invention driven by top-level management at MS & Intel, Zeroconf strikes me as a group of smart guys "scratching an itch" and coming up with practical solution.
quack
'it's' means 'it is'. the possesive version ... is spelled 'its'. Just learn the darned language!
He who cant learn this rule will forever making this mistake in hi's writing.
Ah, Kraft Mac & Cheese....
You mean KD
IBU ;-)
JV: What is fair use? Fair use is not a law. There's nothing in law.
Bullshit, Jack. It's right here:...
IANAL, but I think this kind of response falls short, because there is a valid argument to be made along the lines of "fair use isn't a law". Its that fair use duplication is permitted under the law, but is not a right protected by law. Nothing in the law requires producers to make duplication for fair use purposes either easy or possible. The law doesn't give consumers the right to always be able to make fair use copies.
In other words, "fair use isn't a law" is another way of saying "copy protection isn't illegal", which is really an empty statement, spin. Jack Valenti should be called out on those grounds.
The response "fair use is indeed in the law, right there" just sounds like an "Is not! Is too!" argument.
You seem to be under the impression that the OSX-icons are SVG. This is not true. They are just resource forks containing several different sized icons so that they seem to scale "magically".
.rsrc files. But in many cases, resource files are obsolete, replaced by many files loose within bundles. Loose, hell, willy-nilly even!
.icns files. In OS X, the latter is more common.
Totally correct in the part about the SVG and the scaling and the magic. But hey, resources aren't just for resource forks anymore! The file format of resource forks live on in (the "data fork" of)
Indeed, in the case with icon files, Apple defined a new icon format circa OS 9 or so containing old school bitmaps of various sizes/depths plus masks, and also 64x64 & 128x128 pixmaps with alpha channel. This format works in 'icns' resources and also within
My work is done here.