PC vs Mac Simply Explained

JoeyBlades says:

Completely false. I can write assembly code to set the PC to whatever address I want, including ROM and the kernel, and continue executing. I can even do this in the built-in ROM monitor or macsbug. It’s trivial.

JoeyBlades says:

Bullshit. I suggest you go look at how Illustrator plugins work. I’ll give you a hint: the code is stored, loaded, and executed from ‘ARPI’ resources. That resource type was chosen arbitrarily by the Illustrator programmers, and they could have picked anything, including ‘MENU’, ‘DLOG’, etc. Simply put, you don’t know what you’re talking about.

These specific technical details are not exactly appropriate for this conversation, and I’d normally leave them out, because I’m sure people’s eyes are glossing over at this point. The only reason I’m bringing this stuff up is to demonstrate that you are wrong and are talking about something you don’t understand. Please give it up. The Mac has plenty of merits without you fabricating BS about its superiority in areas where it is clearly not. It only weakens your case, because nobody wants to listen to a zealot who ignores the facts.

Indeed.

JoeyBlades:

Resources are byte streams. The entire resource fork is a byte stream.

Tools like BinHex don’t seem to have a problem accessing the resource fork.

I think galt has addressed this adequately… with concrete facts.

galt:

Woah there, nellie. That’s a horse of a completely different color. Your talking about application software that was written specifically to do this. Of course you can design your application to do this. What we’re talking about is designing a virus that can insert a similar mechanism into an application that was not designed to do so.

Yes it is, but it’s not a virus attack.

Again, you’re describing a design mechanism for executing a program within a program. Although, in this case, I’m not entirely sure that a virus couldn’t be introduced. If this is possible, I would equate this to the macro, ActiveX, and other mechanisms that Microsoft designs in to their applications to promote… err… facilitate… err… allow viruses to flourish.

What you mean is you don’t know what I’m talking about. You’re arguing a completely different point - a point that I don’t disagree with.

Wow! Zealot… I think I’m honored… Again, I repeat myself, I’m not claiming Macintosh immunity from viruses, merely a certain level of resistance - moreso than the PC. Do you also disagree with this?
Mr2001:

True, and I will admit that if you’re clever enough to break through the first line of defense (i.e. to get your virus to execute), you could conceivably alter the appropriate disk sectors using machine level access to the disk drivers to rewrite pieces of the resource fork in specific files… this is far less trivial than it sounds. So I will concede your point, but remind you that I didn’t say “impossible” I said “more difficult”.

No, (returning to my alalogy) galt inserted a confederate into the room to build a door. He also redesigned the room to make it easier to add doors. He proved nothing. If he does prove the counterpoint to my argument, I’ll be the first to admit I’m wrong. A zealot, maybe, but an honorable zealot.
Monster:

I haven’t forgotten about your challenge:

I’ve got quite a list, but I’m fact checking the PC side as best I can. It will probably be tomorrow evening before I can post it.

JoeyBlades:

I thought that was what you were calling impossible: The Macintosh execution model is better than Windows, because code can only manifest itself and be executed if identified as such (via specific resource namining conventions).

Code can certainly be executed if it’s stored in another type of resource, or in no resource at all, as you just agreed. So what exactly are you claiming that MacOS prevents?

Are you suggesting that this is possible on the PC?

And keep in mind that since programs can freely access any memory, they can freely bypass any system permission checks, either by grabbing the data themselves or by rewriting the system routines to grant access.

This effectively makes a joke out of any other security measures: imagine a bank vault, made of six feet of solid steel… but anyone can walk up and change the combination.

What’s wrong with just reading the resource fork, modifying it, and writing it back out (a la BinHex)? The format of the resource fork is trivial to understand.

You don’t understand. If you claim “the mac is more resistant to viruses because it won’t let you do X”, and I prove that it will let you do X, then you’re wrong. I don’t care whether you put it in the context of viruses or application software, it’s a false statement. Maybe the mac is more resistant to viruses for other reasons (which you have yet to demonstrate), but the ones you have given are false. Own up to it.

Unfortunately, I know exactly what you’re talking about, and none of it resembles fact in any way. Specifically, your claim that code running on the mac cannot jump to arbitrary memory locations and therefore subvert security is false. In addition, your claim that code from arbitrary resources cannot be executed is false. You have based quite a bit of your argument on these two false claims. Do you have any true statements to back up your claim about the mac being more virus-resistant?

Yes, I do. They’re equally vulnerable to viruses. NT/2000, configured with proper security settings (which almost nobody does, because they’d find it nearly as unfriendly as unix), is more virus resistant than the mac by a longshot, but the way it ships and the way people use it, it is not.

JoeyBlades says:

What are you talking about? I’m sure that with your wealth of knowledge about MacOS, I don’t have to tell you that PowerPC native apps run code from the data fork of the application file. Does that not qualify as “a simple byte stream that you can append to”?

Don’t be ridiculous. What do you think low level disk editing utilities do? Do they require some special permissions to run on MacOS? The answer is no.

It seems that your problem here is that you’ve gotten away with making wild claims about the MacOS in the past, because you’ve never actually discussed it with anyone who is really familiar with it on a low level. Most PC weenies can’t refute your claims because they’ve never bothered to learn much of the Mac’s technical details. I am sorry to be the one to break it to you, but you’re horribly confused.

I only have a couple of minutes, so I’ll make this fast…

Mr2001:

No. I agreed that code could be executed from another type of resource from another execution model. The Photoshop example is not executing the code in with the Mac OS execution model. Here’s another example, possibly better than galts. Let’s say you have a virus that runs under the Windows OS. This virus randomly writes garbage to the disk. This kind of virus would normally not be dangerous to the Mac, but if you’re running VirtualPC and the emulated Windows environment contracts the virus, your Mac disk is toast. Is this due to the Mac execution model? No - it’s due the Windows execution model.

Both the Windows execution model of VirtualPC and the Photoshop execution model mentioned by galt may be able to circumvent the Macintosh execution model to commit damage, but neither of these things facilitate the creation or installation of a native Mac virus.

Is it? Certainly some resource fork formats are trivial (and well documented). Apple’s “Preferred Executable Format” is Apple Proprietary and non trivial. When code fragments are written to disk the instructions and data are compressed (“pattern initialized”) which means that the disk image is not the same as the execution image. There are other architectural ‘features’ of the format that add to the complexity, as well. I’m sure it’s hackable, but again, I feel the need to reiterate:

galt:

I’m pretty sure I understand your point. I just don’t think you proved ‘X’ - I think you proved ‘Y’. In this case, ‘X’ is “execute code under the Mac OS execution model from non code resources” and ‘Y’ is “execute code under a non Mac OS execution model from non code resources”.

Too bad that you’re ignoring the context, because it’s all important to you actually disproving my point. Sheesh, and you call me a zealot. You’re so consumed with your zeal to humiliate me and get me to admit that I’m wrong that you’re ignoring the fundamental point and arguing unrelated tangents.

If you want me to admit that it’s possible for the PowerPC to execute code that is saved in formats other than a Mac OS code resource (or code fragment container - I’d better be specific or you’ll jump down my throat again)… fine, I admit this. That, however, is not what we are talking about… or at least, not what I’m talking about.

If you want to prove your point, you merely need to show that it’s easier (than on a PC) to insert executable code fragments into a Mac application, without going through the Code Fragment Manager or the Resource Manager.

Somehow, I don’t think that we’re going to reach concensus on this point.

That may be entirely true, though I certainly can’t confirm it because I don’t have a clue what these “proper security settings” are.

galt:

Just saw your latest comments… This is probably the last I’m going to say on the subject of which OS is more difficult to program viruses for…

[quote]

Does that not qualify as “a simple byte stream that you can append to”?

Yes and no. Your right, the actual code (and data) is in the data fork (unless its a FAT application - better qualify everything), but it is not meaningful without the cfrg resources and it’s not a simple byte stream (well, it is, but it’s not a one-for-one image of the code that gets loaded into memory). So you can certainly append to the data stream, but that doesn’t make it functional code…

Apple claims that the details of this mechanism are private and protected. I’ve seen this claim in a number of places at the ADC - I’m sure you’re capable of confirming this yourself. Perhaps YOU know that Apple has perpetrated some sort of deception and that the contents of the code fragment on disk DO match execution memory. If so congratulations, your detailed knowledge is impressive. I admit that I am merely taking Apple’s word for it.

Now you’re just being disingenuous…
Of course you can read and write data from/to the disk. I’m just saying it’s not that easy to write it in a meaningful format to create functional code. (Here’s the obligatory “not impossible, just very difficult”)

Aside from your obvious distaste for the way I presented this particular concept, name one wild claim that I’ve made about the MacOS. It’s funny. You chastise me for not diving headfirst into this crowd with all the gory details, yet you admit that the topic is over their heads (from an experience perspective):

I’ve always felt it was more important to communicate at or near the audiences’ level of understanding. You, on the other hand, seem to think it’s more important to dazzle them with details. I will grant that you may know more than I do about programming the Mac at it’s lowest levels. Big deal. That does not invalidate my point. If, per chance, you did proffer some evidence that my POINT is invalid, I will (begrudgingly) admit that I am wrong (I would have done it happily, but your attitude has really started to piss me off). That evidence has not, so far, been forthcomming. Instead, you attack my approach as not being detailed enough and therefore inaccurate. Had I known that you’d be there with a big stick, I might have chosen a different, more detailed, more precise approach. Of course, everyone else would have been bored shitless…
I don’t see the benefit of continuing this tangent.
We obviously don’t agree, though it was never a huge point with me, in the first place - more of an afterthought, really. Somehow I let you draw me into this pissing contest and I appologize to the rest of the crowd for falling for it and wasting bandwidth.

If it’s important for you to demonstrate your dominance over me in all things technical on the Mac, congratulations; I concede - your hard disk is bigger than mine.

Have a nice day!

ps

On a less personal level, I still have that list I’m working on for Monster… get your hockey sticks ready…

JoeyBlades says:

Give me a break. Just because the stuff on disk isn’t byte-for-byte what’s in memory doesn’t mean squat. It’s the same story on every architecture. Anyone who knows PPC assembly can easily disassemble the code on the disk, figure out where the entry points are, and insert their own code ahead, behind, or right in the middle of it, proprietary executable format or not. I’m not trying to show off by stating this. I’m just telling you why you’re wrong. Believe me or don’t (and if you don’t, ponder the apparent paradox of 3rd party compilers creating Mac applications without going through the code fragment manager).

Writing software can be described as “very difficult”, too. What you’re describing is decidedly less difficult than, for example, stack overflow exploits which allow people to break into unix systems through buggy system daemons. Yet amazingly, people still write tools to do that. “My system is secure because assembly programming is hard” does not cut it.

How about a list?
[ul]
[li]“The Macintosh execution model is better than Windows, because code can only manifest itself and be executed if identified as such (via specific resource namining conventions).”[/li][li]“First [executable code segments] have to be of a particular resource type. Second they have to have the right resource ID, which means they have to replace another code resource without causing the application to halt abnormally.”[/li][li]“There are many ways to load whatever you want into RAM on a Mac, there’s only one mechanism to execute code. The Mac OS won’t just jump to any old block of RAM and start executing.”[/li][li]“The executable code in the MacOS is not saved as a simple byte stream that you can append to. The only way to do what you suggest is to go through the MacOS commands for managing resources.”[/li][li]“The Photoshop example is not executing the code in with the Mac OS execution model.” (Perhaps you better define “execution model”, because in my definition, everything running under the MacOS is in it’s execution model.)[/li][/ul]

I’d elaborate on why these are wild claims, but a) I think it’s already been covered and b) you’ll accuse me of being a bully for demanding honest arguments.

No, the fact that the things you say are wrong is what invalidates your point. If you base your arguments on false statements, you have two choices:
[ul]
[li] come up with new facts to support your arguments, and give up on the falsehoods[/li][li] admit your arguments are baseless[/li][/ul]

Oh, come on. You can’t spout as much bogus information as you have and not expect to be called on it. When someone calls you on it, and bothers to give hard technical facts to support their argument, it’s not always about “demonstrating dominance”. I would have gladly left out the technical details, but then I would simply be arguing like you, saying “nuh-uh, that’s not true” without backing it up. Heaven forbid someone bring facts to the table.

If I seem extra harsh on you, it’s because it really annoys me when people act authoritative on a subject when it’s obvious they don’t know what they’re talking about. Especially in a situation where most of the people they’re talking to can’t tell the difference. When you say “The Macintosh execution model is better than Windows, because code can only manifest itself and be executed if identified as such”, that is wrong. Maybe there’s some other reason the Mac execution model is good, but that sure ain’t it, so your argument is trash. Yet most of the people you’re talking to don’t know that. That’s called spreading ignorance, not fighting it.

If I started making up authoritative-sounding statements about neurosurgery (of which I have no knowledge) in general company, you can bet any neurosurgeons present would get good and pissed off if I persisted despite their corrections, especially if the other participants were not in a position to discern whether I was telling the truth.

Tolja.

Ignoring that argument that seems to rage on, still…
As promised, here’s my list answering Monster’s challenge:

I’m sure it’s rife with lots more misinformation designed to enrage those who are much more knowledgeable than I. Still, I’ve tried to do a bit of research to see if PCs had obvious utilities that would accomplish the same things. Obviously, I can’t be aware of all PC utility software, so admittedly, some of these may be doable with the right software additions… (The emphasis should be placed on the phrase “things I think can’t be done on a PC”) Also, in some cases, there may not be a one-to-one correspondence in the PC world to specific Mac features I’m trying to tweak - you may not agree with my assessment of equivalent functionality, but I gave it my best shot. Also, I try to let you know what tools and access methods I might use to accomplish these settings (in parentheses), in case you want to investigate their capabilities further.

Here are a few basic ones:

  • Assign default application association, independent of file type (ResEdit and other tools, via creator codes)
  • Assign unique icons to individual files and folders (Finder - Get Info)
  • Manage multiple hardware “profiles” without requiring a restart (Location Manager, and others)
  • Configure the automatic retargeting and translation of files between compatible applications (File Exchange control panel)
    Some of this functionality is available via the File Types tab in the Options dialog, though not the translation part
  • Change default location for file saves (General Controls control panel)
  • Three choices of behavior: Folder that is set by the application, Last folder used in the application, Documents folder (not the same as the Documents folder in Windows)*
  • Change scroll bar arrows from one at each end to pairs (Appearance control panel and others)
  • Adjust alert volume as percentage of main volume (Monitors & Sound control panel)
  • Adjust grid spacing for icons on desktop and in folders (Finder preferences)
  • Set folders to auto open when mouse over (Finder preferences)
  • Attach a label [not a name] to a file or folder (Finder)
  • Change network settings without a restart (TCP/IP control panel)
  • Change clock options: font, size, color, time format, regular chimes, etc. (Date & Time control panel)
  • Disable background printing (Chooser)
  • Configure keyboard so that modifier keys [shift, control, command, option] don’t have to be held down continuously (Easy Access control panel)
  • Configure folder view to display files and folders as buttons (Finder)
    This turns any folder into an application/file launcher
  • Configure list views to show version, date created, comments, and label (Finder preferences)
    Note: there are other options such as creator codes, finder flags, etc. that are available from other tools.
  • Configure list views to show folder sizes (Finder preferences)
  • Sort list views by size (Finder)
  • Windows can do this… sort of, but it doesn’t include folders in it’s size ordering*
  • Configure view options individually for each folder (Finder)
  • Manage extensions, control panels, and other startup files (Extension Manager)
    Some of this functionality is available with the Windows utility “Startup Cop”

As you may have noticed, most of these “tweaks” are actually accessible via control panels and basic OS preference settings. I can think of a lot more via third party tools, but frankly I just don’t have the energy… I fully acknowledge (and expect) that there may be other third party tools that I’ve missed that would X-off a few more form this list. (I know I already said this - I’m just getting the repetition out of the way early).
We’ve mentioned ResEdit several times, so I decided to dedicate an entire section of things you can do with ResEdit that I don’t believe you can do on a PC:

Note that all of these tweaks can be applied to individual applications. Also note that the Finder is essentially an application and therefore can be manipulated in the same way, though it’s not recommended (you have to work on a copy, if you’re brave enough).

  • Change menu shortcuts (i.e. Command key combinations)
    You can add, remove, and alter the corresponding keys
  • Change menu text
  • Disable menus
  • Change color of menu items
  • Change text messages
  • Change graphics
  • Change cursors
  • Change patterns
  • Change default window size, position, and style of windows
  • Change default position and window type of dialogs
  • Add static text to dialogs
  • Change text in buttons
  • Change and install sounds
  • Change keyboard character mappings
  • Change the file types that the application will try to open
  • Remove types to restrict access to certain file types*
  • Change and install fonts
    This is noteworthy because it allows applications to utilize fonts not installed in the system Fonts folder

I’m sure I overlooked some. Also, it’s only fair to mention that some menus, text resources, etc. may not be configurable from ResEdit, due to the way the programmer chose to implement them. By and large, though, most applications are configurable in this way.

JoeyBlades:
*** Adjust alert volume as percentage of main volume** - Windows lets you set the wave volume separately from the master volume, which may be the same effect (if not, does MacOS let you do it?)
*** Change network settings without a restart (TCP/IP control panel)** - Windows 2000 does this
*** Change clock options: font, size, color, time format, regular chimes, etc. (Date & Time control panel)** - time format can be changed in Regional Options
*** Disable background printing (Chooser)** - right click a printer, Properties, Advanced, “Print directly to the printer”
*** Configure keyboard so that modifier keys [shift, control, command, option] don’t have to be held down continuously** - Accessibility Options | StickyKeys, or tap shift 5 times (there’s also FilterKeys, to ignore brief or repeated keystrokes)
*** Configure folder view to display files and folders as buttons (Finder)** - you can turn on “single-click to launch”, which is the same functionality with a different appearance (not quite as different if the thumbnail view is enabled)
*** Configure view options individually for each folder** - this has been in since Win98 (or Win95 + IE4)

Many of those ResEdit changes can be done with a resource editor, although it depends on the application. Not all apps use dialog, menu, or string table resources - Delphi apps use their own resource format, but it can easily be extracted, modified, and replaced.

Mr2001:

Good question. I’m not sure of the exact mechanisms involved. However, the reason that it’s significant is that when I’m listening to CDs and MP3s on my Mac, I can turn the alert volume down without affecting the music volume. So essentially I can have the master volume at one level, my cd player playing at another volume level, my TV tuner at yet another volume level, and my alerts at still another volume level. Is this what you mean?

Cool! Sounds like it’s time for an upgrade. I need this.

Oops! I missed those.

Doesn’t seem to work under NT; maybe a Win2K thing?

You know, I tried to find this, but my computer doesn’t seem to support it, even though the Help says it should. However, it’s my understanding that this is a global setting (check me if I’m wrong), what I’m talking about is a local folder setting.

Doh! My bad. I didn’t mean to leave this one on the list. I had already confirmed this for myself. Sorry.

Interesting. I knew that a few applications used resource mechanisms, but I thought these were isolated instances. You seem to be indicating that the practice is more prevalent than I thought. That’s cool. It simplifies the development process which will ultimately manifest itself in higher quality software.

JoeyBlades says:

This is a common misconception among Mac folks I’ve talked to. Using resources is very commong in Windows, and it’s done in a standard way. There’s not a seperate resource fork, but that’s really not necessary if you specify the executable format to include space for resources. The mac resource fork is an interesting idea, but I would venture to say that it’s caused more harm than good, given how much confusion it causes when files are transferred between MacOS and any other OS (i.e. a Mac person sends me “a jpeg file”, but it’s really not a jpeg file – it’s a MacBinary archive which contains a JPEG file, but requires a special tool to extract, or maybe it’s a binhex. Either way, the Mac person has no idea that he hasn’t sent me a proper JPEG file).

For what it’s worth, I think your list of things you can customize on the mac but not on windows is valid, aside from the few things that Mr2001 pointed out. In fact, in all fairness, some of those things are a bit iffy (such as customizing the time format – you don’t get the same type of control as on the mac; just the actual formatting that would depend on what country you’re in).

Note that you haven’t convinced most Windows people, since they still feel that their platform is more customizable, and they’ll probably dismiss your examples as fluff. Why is this? I have a guess. On Windows, it’s easier to poke around in the system and figure out how stuff works, and change things which aren’t really designed for users to change at will, whereas on the Mac, most of the things you mention were explicitly programmed-in options. An example of this is that poking around in the registry, I discovered that I can add or change the commands which show up on the context menu for various file types. So now I (for example) have a context menu item called “share me” on folders, which just shares them with the default permissions without having to go into a dialog. I’m sure you could write an applescript which shares a folder that you drag onto it, but could you make it quite as convenient as a context menu item? Another thing I’ve found is the ability to put my own scripts in the context menu for web pages. I wrote one which walks through the current HTML documenet and pops up a new window that has links to all the embedded flash and quicktime objects (for those times when you want to right click on the embedded object and say “save as…”). This is more along the lines of what Windows people want when they talk about customizability.

Applescript may provide some of this, but in my experience, it falls short. I was pretty excited about it back when I worked on Macs, but I found it difficult because it wasn’t well-documented, and it also wasn’t supported (other than the “standard 4” apple events) by very many applications. I pushed for getting scripting support in Illustrator, but the overall opinion at Adobe was that AppleScript was a toy, and support for it wasn’t worth the bother.

Joey, I started some tests at school today. I’m using NT 4.0 and Win9x, and my tech teacher is working on these for 2000. I’ll let you know what I come up with.

Oh, by the way…Windows XP Beta does all of these in options menus.

galt:

I’m not entirely surprised. Several years back, I was doing some simple programming and played around with a tool that resembled a resource editor. The only difference was that it was really just a template editor and it output source code to be dropped into your application source. It seems like a logical step to extend this to real resources. I’ve just never heard of anyone modifying released applications in Windows, as is common with Mac geeks.

I agree, I was a little bit on the forgiving side on that one… I was feeling generous.

Yes, that was my not-so-subtle sub-point. For some reason geeks don’t think they’re tweaking unless they’re using some programmer’s tool that modifies some parameter in a way that a novice cannot.

Actually, you can do that. There are a couple of CMMs that let you execute an AppleScript (or PerlScript) with selected files and/or folders. The first is “CMTools”, which has a bunch of options. One of them is to open files using an application or script. There’s also a Get Info->Sharing option to pull up the privledges dialog. The second one is called “Open Using”. It only does this one thing, but it’s highly configurable.

Also, not exactly what you asked for, but there’s a tool written by the stepfather of Mac programming, Leonard Rosenthal, called OSA Menu. Basically, it puts a list of executable scripts in a global menu… I’ve never used it because frankly, I can accomplish the same thing simply putting scripts under the Apple menu.

Hey! That is cool. How do you modify the contextual menus for an application… or are Internet Explorer contextual menus changable from RegEdit, as well?

I’m not sure it’s any better documented than it ever was (out of character for Apple), but it seems to get a lot more support these days and it’s one of the features that Apple makes a big deal about. Also, there have been a lot of useful scripting additions that have really enhanced it in the last couple of years. I use it a lot, though typically I use it to automate things for my kids. I’ve got a couple of power user folder scripts that have repayed my time investment a thousand times over…

I’d like to add a couple more cents and say that the customizability issue could really go either way in my mind. It comes down to which user interface the user prefers, and I happen to prefer Windows’ UI over the Mac’s. I’m sure JoeyBlades has perfectly valid reasons to feel more comfortable customizing the Mac UI, just like I have valid reasons for feeling constrained by it.

I obviously take great exception to his technical evaluation of the MacOS, but I think that sort of aspect of an OS goes largely unnoticed by a novice user, and as such isn’t so important here. I apologize if I made this too much of an issue. If a novice wants to know which to pick, I’ll happily admit it doesn’t really matter to them, but I’d feel wrong about sending them away with the idea that everyone might as well pick the friendlier of the two, since it’s all on more or less equal footing underneath. That would just be incorrect.

For practical purposes, they’re both potentially unstable. In Windows, the instability lies in buggy drivers and OS bugs. I tend to think it’s mostly drivers, because the stability depends a lot on the hardware configuration. I’ve had Windows machines that crashed multiple times a day, and I’ve had windows machines (like my current two) which literally go several months without me even logging out. On the Mac, the instability lies mostly in the applications and extensions. Extensions do nasty nasty things at boot time (yes, I consider runtime patching of system calls nasty and dangerous), and applications can crash the whole system much more easily than on other modern OS’s. On the other hand, the drivers and hardware are, in my experience, of extremely high quality, and don’t tend to cause crashes.

So, for me, the question comes down to: do you want to try to make your system stable by making sure you have hardware with good drivers, or do you want to try to make your system stable by making sure you only run safe application-level software? The answer is obvious to me: in an ideal situation, the OS should be bulletproof and I should be able to throw whatever crap software I want at it. I’m a developer, so it really has to be that way (nobody writes perfect software the first time :)). Windows comes much closer to that, and as a result is much more stable for my usage patterns. (But to get down to brass tacks, linux is my first and only choice for my home machines, because it goes even further in this philosophy).

I think one of the best posts in this thread was in the first page, by Lemming, because it gave a pretty fair view of both sides. I recommend anyone still reading to go back and give it another look.

Well, that’s a special thing that IE lets you do via the registry. You add a “MenuExt” entry which specifies the menu item name and the context under which it should appear in the menu, plus the URL to a script to execute when it’s chosen. It’s pretty handy…I’ve written several.

<nitpick>
The OSA Menu thing, if I recall, lets you add items to the context menu, but they’re not actually context dependent, right? The items I’m talking about, such as the “share me” script, only appear when you click on certain filetypes (i.e. folders).
</nitpick>

I don’t know about OSA Menu (don’t use it), but the built-in contextual menu, without any 3rd-party plug-ins, has a sharing option for any item that can logically be shared, which does not appear for items that can’t be shared. (i.e., context-dependent).

Hunter:

True, but I’m assuming that galt wants a universal mechanism to perform whatever function he can code up…
galt:

I’m sure you’re probably right (haven’t tried it), and I didn’t mean that as any kind of endorsement. It’s just A way to execute an AppleScript on the Finder selectioon - the Apple menu is another.

On the other hand, the “Open Using” CMM is very configurable to enable your menus to be truely contextual. Of course, I haven’t looked at it with an eye towards what scenarios it might not be able to handle, however it can test for folders, disks, and/or applications (so you could easily do a “sharable” test).