• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Setting up searches in Xcode (Re: [ANN] Xcode + Leopard at WWDCthis year)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Setting up searches in Xcode (Re: [ANN] Xcode + Leopard at WWDCthis year)


  • Subject: Re: Setting up searches in Xcode (Re: [ANN] Xcode + Leopard at WWDCthis year)
  • From: David Masover <email@hidden>
  • Date: Thu, 20 Jul 2006 21:31:08 -0500

Laurence Harris wrote:

On Jul 20, 2006, at 7:56 PM, Steve Checkoway wrote:


On Jul 20, 2006, at 4:32 PM, Laurence Harris wrote:


On Jul 20, 2006, at 12:31 PM, Chris Espinosa wrote:

Surely if you know enough about /usr/include to want to search it explicitly, you know the ways to get to it through the standard Mac OS X user interface that hides Unixisms from end users?

This is an assumption, or at least an expectation, but there's no logical basis for believing it is always true. Developers have a wide variety of backgrounds, work habits, and experiences. I never use paths. To be honest, it would not even occur to me under normal circumstances to type a path to specify a file because it's just something I haven't needed to do in over 15 years of using a Mac. Were I really a path kind of person, I'd probably be using Windows. ;-)

That's impossible to believe. Do you keep all of your files in the root directory of your harddrive? In 15 years of using a mac, you've never had to double click a folder?

Double-clicking a folder is not typing a path (I did say "type a path"). It's navigating a tree. A path is a text string. However, read on and please stop trying to make it sound like I'm an idiot. I am not.


Have you never #include <sys/types.h> before?

Actually, no, I haven't. I've never needed to.

All of these are using paths in a very explicit manner.

What part of using a file path is windows-ish? Every modern (and many much less modern) operating systems have had file systems that were not flat.

The practice of having users type paths to specify files and writing software that relies on paths to track files. Prior to Mac OS X Apple strongly discouraged the use of paths as file specifiers, relying instead on references that incorporated file and directory IDs. It wasn't until the Unix and Cocoa folks started writing path dependent code that moving things started causing applications to get confused

That's bad app design -- use relative, configurable paths, not absolute paths. Besides, one of the major points of Unix is that paths don't necessarily correspond to real, physical locations.


and for problems to occur if a path is too long.

Hmm. You're right:
eve:~/pathtest/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/b/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/c/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/d/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/e/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/f/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/g/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/h/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/i/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/j/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/k/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/l/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/m/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/n/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/o/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/p/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/q/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/r/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/s/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t
/u/v/w/x/y/z/t/b/c/d/e/f sanity$ cd g
cd: could not get current directory: getcwd: cannot access parent directories: No such file or directory
cd: could not get current directory: getcwd: cannot access parent directories: No such file or directory
eve:. sanity$ cd -
chdir: could not get current directory: getcwd: cannot access parent directories: No such file or directory
/Users/sanity/pathtest/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/b/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/c/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/d/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/e/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/f/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/g/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/h/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/i/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/j/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/k/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/l/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/m/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/n/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/o/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/p/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/q/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/r/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/s/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p
/q/r/s/t/u/v/w/x/y/z/t/b/c/d/e/f
eve:~/pathtest/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/b/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/c/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/d/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/e/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/f/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/g/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/h/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/i/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/j/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/k/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/l/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/m/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/n/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/o/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/p/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/q/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/r/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/s/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t
/u/v/w/x/y/z/t/b/c/d/e/f sanity$


It would appear that this is the limit, either in number of directories or sheer filename length. Still, I can't see hitting that limit anytime soon. Also, it would appear to be a limitation of the software, not the system or the concept:

eve:~ sanity$ rm -rf pathtest/
eve:~ sanity$

The "rm" command, a standard Unix utility which I can't imagine has had one line changed since BSD or Linux, managed to go far deeper into that tree than Bash would, in order to rmdir all its children. I think that path goes about 10 more directories deep, and I'm sure Spotlight had no problem with it.

Interestingly, my Linux machine (connected to with SSH), running Reiser4, doesn't have this problem at all. So maybe it's not bash.

 $ pwd
/home/idle/pathtest/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/b/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/c/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/d/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/e/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/f/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/g/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/h/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/i/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/j/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/k/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/l/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/m/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/n/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/o/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/p/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/q/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/r/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/s/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/
r/s/t/u/v/w/x/y/z/t/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/u/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/v/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/w/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/x/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/y/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/z/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z

In the interests of science, I doubled the path a couple of times:

 $ mkdir -p .`pwd`
 $ cd .`pwd`

Every time I ran those set of commands, my path doubled. I got pretty far before I got sick of Terminal.app taking 20 seconds to send a keystroke across. Here's the output of pwd -- I could not for the life of me copy-paste from Terminal.app. I suspect the problem was with displaying the entire path in the window title, as well as in a single line of the terminal. But I got it from somewhere else, and it still won't paste in Thunderbird... Finally checked. 5487 characters. That probably includes a newline, but then, the real path would include a null character at the end.

So, lots of poor application design, but there's no really good reason not to use or support names that insanely long.

In any case, it's far longer than anyone will ever have to use, and much safer than the common Windows limit of 256 characters, which you might reasonably hit with a single filename.

I organize my Applications folder into subfolders. I remember the first time I played with iDVD and tried to run its tutorial. Because I'd moved iDVD into Applications/Media, iDVD couldn't find its tutorial which was in its own bundle.

Another example of absolute vs. relative, and poor app design. An Application bundle is designed specifically to let programs depend on relative paths.


I've also seen Software Updater crash because an application wasn't in the Applications folder. I think they've fixed it now, but I remember when I used to drag certain applications out of their subfolders back up into Applications before running Software Updater just so it wouldn't crash.

This is actually pretty fair. How would you propose that Software Updater find the applications it's trying to update? Maybe it could have links to them somewhere... like some, I don't know, PATH inside its configuration directory?


We didn't have these kinds of problems prior to Mac OS X.

I don't think you had a software updater prior to Mac OS X.

They're an improvement the Unix and Cocoa folks dumped upon us because they rely on paths.

Allow me to quote an old Usenet signature:

"Those who do not understand Unix are condemned to reinvent it, poorly."
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Follow-Ups:
    • Re: Setting up searches in Xcode (Re: [ANN] Xcode + Leopard at WWDCthis year)
      • From: Steve Checkoway <email@hidden>
References: 
 >Re: Setting up searches in Xcode (Re: [ANN] Xcode + Leopard at WWDCthis year) (From: "Chris Espinosa" <email@hidden>)
 >Re: Setting up searches in Xcode (Re: [ANN] Xcode + Leopard at WWDCthis year) (From: Laurence Harris <email@hidden>)
 >Re: Setting up searches in Xcode (Re: [ANN] Xcode + Leopard at WWDCthis year) (From: Steve Checkoway <email@hidden>)
 >Re: Setting up searches in Xcode (Re: [ANN] Xcode + Leopard at WWDCthis year) (From: Laurence Harris <email@hidden>)

  • Prev by Date: Re: X Code Archives?
  • Next by Date: Re: X Code Archives?
  • Previous by thread: Re: Setting up searches in Xcode
  • Next by thread: Re: Setting up searches in Xcode (Re: [ANN] Xcode + Leopard at WWDCthis year)
  • Index(es):
    • Date
    • Thread