Greg's Apple HOWTO page
Greg's diary
Greg's home page
HOWTO index
Google
Disclaimer In the past I've had complaints from Apple fans that I'm being unfair to Apple in my comments on the machines and their software, and that I should learn to do things the Apple way. They're missing the point. This is not a page to praise or condemn Apple, but I do take objection to be told how to do things or how to think. I use an Apple machine, and this page is mainly for me to help me interface to its way of doing things. If it helps you, you're welcome. If I've made a mistake, please let me know and I'll fix it.

I've been using an Apple Mac for some time. It's a strange beast.

The good point: it runs UNIX.

The annoying points:

For me, the biggest problem is the lack of documentation. It has man pages, of course, but I have grave doubts about their accuracy. In Mac OS 10.4, over 1400 man pages claim to come from FreeBSD, and I've seen many that talk about options not in Mac OS. So this page is a collection of things that I always forget about using my Apple.

Key bindings (“shortcuts”)

To find keyboard bindings, go to System Preferences -> Keyboard & Mouse -> Keyboard Shortcuts and scroll the too-small, non-resizaeble window to find them:

 
https://lemis.nyc3.digitaloceanspaces.com/grog/Photos/20080831/big/keyboard-bindings.png
Image title: keyboard bindings
Dimensions: 593 x 548, 84 kB
Dimensions of original: 593 x 548, 84 kB
Display this image:
thumbnail    hidden   alone on page
Display all images on this page as:
thumbnails    this size
Show for Sunday, 31 August 2008:
thumbnails    small images    diary entry

You can use “Mac Help”, and search for shortcut, but it has three serious deficiencies:

Updating software

For some reason I have continual problems downloading software updates from Apple: the download continually fails, often after accessing the download site at ridiculously slow rates. This isn't a pure network issue: I can download the packages from my FreeBSD box with no problems. I then have to install them manually:

Screen shots

You can take screen shots with a key combination using this funny cloverleaf or Apple key, which I can't represent here. S-Apple-3 takes a shot of the entire screen and stores it in a file with a space in the middle with a name like ~/Desktop/Picture 4711.png, where 4711 is an incrementing number. Other possibilities are shown in the image of the key binding above: you can save to the clipboard, or select part of the screen (not, apparently, a single window). I haven't worked out what most of the strange symbols are; they don't match anything in Apple's own keyboards. The rocket symbol is Shift. Maybe ^ represents control, and the broken \ could mean alt. But why don't they describe it somewhere, and why isn't it on their keyboards?

Printing

From Callum Gibson:

<callum> So, CUPS printing. I have fixed it and a document I queued a week ago just
printed out at home.
<callum> The magic incantation for enabling lpd printer sharing on MacOS 10.6 is:
<callum> cupsctl 'BrowseLocalProtocols="cups dnssd lpd "'
<callum> (the default being just cups and dnssd)

Other stuff

This is mainly just a data dump. I'll fix it some time, maybe.

Date: Fri, 21 Jul 2006 13:44:56 +0800 (WST)
From: James Andrewartha
Subject: OS X NFS

Hi,

http://sial.org/howto/osx/automount/
http://mactechnotes.blogspot.com/2005/08/mac-os-x-as-nfs-client_31.html
http://www.atmos.washington.edu/~salathe/osx_unix/nfsmount.html

all cover how to mount NFS in a static location.  Further,
http://www.atmos.washington.edu/~salathe/osx_unix/change_uid.html
has
details on how to change your uid.

Basically, all the account details and so forth are stored in a database
called NetInfo, which dates from the NeXT days.

Date: Fri, 21 Jul 2006 17:11:57 +1000
From: Ian Donaldson
Subject: Doing things on MacOSX
X-Mailer: Apple Mail (2.752.2)

Dear Greg,

>How do I set the user ID number? For NFS mounts, the number needs
>to be the same across the network.  Apple doesn't give me the
>choice, and assigns a different number.

Use "NetInfo Manager", found in the Applications/Utilities folder.

>How do I set the system name? Currently it's called ?Trent
>Richardson's Computer?, though it did correctly get the DNS name
>from the server.

It is set under "Sharing" in the System Preferences.

>How do I start services like rwhod at startup?

You'll need to come to grips with launchd, which is Apple's
replacement for the traditional init scripts (SysV) or RC system
(BSD).  This article may assist:

http://www.macgeekery.com/tips/monitor_uptime_and_usage_of_local_machines_with_rwhod

>How do I get the system to mount NFS file systems at the mount
>points I want? Actually, I know the answer to this one: you can't.
>On my other systems, I have mounts like this:

If you use Finder to mount NFS filesystems, then you have to accept
Finder's arrangement.  Otherwise, you can mount using the command line
in the traditional way, or you can use a utility like NFS Manager
(http://www.bresink.de/osx/NFSManager.html)

* groggy needs support.                         [11:36]
<groggy> How do eject a floopy from a PowerMac?
<Lachlan> what's a floppy?
<morgan> groggy: what version of OS?  normally on older ones drag the floppy
     to the trash.
<morgan> Lachlan: it seems like a simple question, but they need to know.  I
     wonder if I should hand to sean to ask stewart (as a first issue to
     skill up on), or if that's ambitious?              [11:38]
<morgan> groggy: or shortcut (cmd + Y).
*** stewart (~ssmith@localhost) has joined channel #support     [11:45]
<groggy> stewart!
<stewart> groggy: afternoon
<groggy> morgan: No floopy icon.  No CMD key
<Lachlan> groggy, screwdriver ^_^
<groggy> stewart: I'm sitting here with Melanie's sister trying to get a
     floppy out of a PowerMac.                  [11:46]
<morgan> groggy: cmd == apple key.  no floppy icon?
<groggy> morgan: Yes, I guessed that.  CMD+Y puts a backslash in the last
     window.
<morgan> groggy: weird, other option is hold mouse button down on boot iirc.
<morgan> ejects all media i think.  or makes you look like an idiot, can't
     remember which one.  not necessarily mutually exclusive.   [11:47]
<groggy> morgan: :-)
<groggy> morgan: I wouldn't be surprised if this is a blank, so that the
     machine doesn't know it has a "floppy" in there.
<morgan> groggy: my memory of system 9 or earlier is that it wouldn't allow an
     unformatted disk to sit in the drive like that.  as soon as it
     detects it, it prompts you to format or eject (can't background
     dialog box).                           [11:53]
<groggy> morgan: This is 10.4.7.                 [11:54]
<groggy> morgan: That's why I bought it, because it came with the latest
     versino.
<groggy> morgan: Not all software, though; no xterm, no gcc.  Is there a place
     I can get that from?
<morgan> oh ;-)  I thought earlier when you said floppy.
<morgan> groggy:  it's called Xtools.  you can download it from
     apple.com/developer with a free account.           [11:55]
<groggy> morgan: It's a 400 MHz PowerMac, but with MacOS X.
<groggy> morgan: Thanks!
<morgan> at least i think it was xtools.  it used to be devtools, and was a cd
     that shipped with the OS.                  [11:56]
<morgan> might have been xcode tools.                    [11:57]
<groggy> morgan: I have a MacOS 10.3 CD set somewhere.  It's called Xtools
     there (with no explanation what that means)-:
<morgan> groggy: it installs a /Developer directory.  goodies are in
     /Developer/Applications
From another IRC discussion:
<groggy> Mavvie: Just installed X on MacOS X.
<groggy> Samy: I tried once when I was at university.
<subdue> he only does beer
<Samy> groggy, and what were the results? What were you distilling?
<Mavvie> groggy: oh! where did you get the binaries from?
<groggy> Samy: Brought home lots of equipment from the labs.
<groggy> Samy: Sherry.  I wanted to make brandy out of it.
<subdue> haha, he finally bought the mac             [12:47]
<subdue> on ebay
<groggy> Samy: Measured the temperature of the fraction as it came over.
<subdue> which one did you settle on?
<Samy> groggy, I see.
<Samy> groggy, I used to distil Siddique.
<subdue> (_dd_): Power outage in several Virginia data centers is affecting
     HVAC.  Much equipment overheating.
<Samy> groggy, Russian Vodka + Liquor products.              [12:48]
<subdue> cute
<groggy> Samy: Quite a large fraction was at 65°.
<groggy> Samy: Went and checked in my books what boils at 65°.
<Samy> groggy, ouch.
<Samy> groggy, that's right near methanol.
<groggy> Samy: Answer: methanol (64.7°).
<Samy> groggy, methanol is 69.
<groggy> Samy: You can go blind with that.               [12:49]
<Samy> groggy, 64.7?
<Samy> and dead.  ;]
<groggy> Samy: So I poured it away.
<Samy> A friend of mine went blind for 3 days, haha.  Siddique.
<groggy> Samy: My book says 64.7.  Could be wrong.
<Samy> groggy, yeah, anything below 78 I used to pour into a different flask.
<groggy> Samy: You never completely recover.
<Samy> groggy, checking now.
<Samy> 64.7 it is.
<Samy> I used to leave some tails (at 83) for the Russian vodka.  [12:50]
<groggy> subdue: http://www.lemis.com/grog/diary-jul2006.html#20
<Samy> For mixes I was using ethanol where possible (89-92%).
<groggy> Samy: Looks like that's diluted with water.
<subdue> oh.  I read that entry
<Samy> groggy, what, siddique?
<groggy> Samy: A fraction at 83°.                    [12:51]
<Samy> Ah, nod.
<subdue> what I didnt see was the ebay entry
<groggy> Mavvie: Anyway, fink has an X distro that coexists with the OS X
     desktop.
<Samy> I used to carbon filter my liquor though, could get 95 and over.
* groggy .  o O ( What's the name again? )
<subdue> that's what I was interested in
<groggy> Samy: 100°'s no problems.
<groggy> Samy: That's water.
<subdue> which guy you ended up buying it from
<Mavvie> groggy: aha.  honestly, all I want is to push my X programs onto the
     MacOSX machine of my girl, so she can use Gimp without bothering me.
                                    [12:52]
<groggy> subdue:
     http://cgi.ebay.com.au/ws/eBayISAPI.dll?ViewItem&ih=017&item=270004826569&rd=1&sspagename=STRK%3AMEWN%3AIT&rd=1
                                    [12:53]
<groggy> Chris was going to pick it up for me, and she bought the other one he
     had for sale.
<subdue> ah.  you paid more than I thought you were
<groggy> Mavvie: It's quite nice if you start it unrooted.  But then you don't
     have a root window.
<groggy> subdue: AUD.                            [12:54]
<groggy> subdue: Also, it came with MacOS 10.4, which is difficult to find on
     machines of this vintage.
*** Tekrad (user@94.208.125.209.transedge.com) has quit: Read error: Operation
    timed out
<groggy> subdue: Not part of my reasoning, but nice to find out: the monitor
     is also pretty good.                       [12:55]
* groggy looks at the empty X screen on boskopp and wonders how to switch back
  to MacOS.
<subdue> ok
<Mavvie> control alt backspace :-)                   [12:56]
<subdue> what was the shipping on it?
<groggy> subdue: As I said, a friend picked it up for me.
<groggy> So nothing.
<subdue> ah, not tha tbad then
<subdue> oh, ok, I see the msg about chris               [12:57]
<groggy> subdue: He originally quoted $40 each for box and monitor.
<subdue> ow
<subdue> well, picking it up is cool
<randi> no                               [13:02]
<randi> it's uh
<randi> apple a?
<randi> one sec, groggy.  i can tell you if you still need to know
<randi> Command-Option-A
<groggy> randi: Ah, thanks.
<randi> you hit that to switch in and out of full screen mode
<randi> you can make it rootless in the X11 preferences
<groggy> randi: Yes, but I need to rewrite my menus for rootless.    [13:03]
<Mavvie> ruthless.
<groggy> randi: Since I start off with nothing on the screen.
<randi> ahh
<groggy> Mavvie: But rootless looks like the way to go.
<randi> you should have an xterm.  weird.
<groggy> That way X and MacOS can coexist.
<groggy> randi: Depends on the startup file.
<Mavvie> yes
<groggy> randi: I don't want anything by default.
<groggy> randi: But that's on a FreeBSD box.
<randi> oh.
<randi> i just meant xterm was default :)                [13:04]
<groggy> randi: Here I need to think about what to do.
<groggy> randi: Indeed.  It comes up with twm looking just the same as the
     default under FreeBSD.
<randi> i have fluxbox running on mine.  heh.
<subdue> groggy: how do you like osx so far?             [13:05]
* groggy notes that after all the bitching he did last time he bought a Mac,
  he's quite happy now.
<groggy> subdue: Overlapped :-)
<groggy> subdue: I need to learn how to get the thing to do what I want.
<groggy> How do I get focus to follow the cursor?
<groggy> How do I get sshd to start up?
<randi> groggy: don't forget to get Desktop Manager, Quicksilver, and Growl :)
<randi> three essential apps to a happy working environment in osx.  [13:06]
<groggy> randi: I have more than enough growl to go around :-)       [13:09]
* groggy notes that nobody has volunteered answers to his questions.
* randi snickers.
<randi> oh
<randi> i can tell you.
<randi> as far as sshd goes
<randi> one sec, let me verify directions
<randi> System Preferences -> Sharing                    [13:10]
<randi> click the checkbox next to 'Remote Login'
<randi> as far as focus following cursor...  i don't know if you can do that in
    osx.
<Mavvie> that reminds me, which VNC viewer should I use to connect to a MacOSX
     remote desktop?                        [13:11]
<subdue> lots of choices there
<randi> i'd use realvnc
<groggy> Ah!                             [13:12]
<groggy> randi: Thanks!
<randi> np
<randi> it's not all that obvious
<groggy> randi: And I fear that you might be right that Apple can't do the
     focus.
<randi> quicksilver is nice if you hate Finder
<randi> it lets you hit the apple key and space, then start typing the name of
    an application.
<groggy> randi: I think I have directions somewhere, but it's nice to have the
     information.
<groggy> randi: Ah, count me in.
<randi> it autoscans preconfigured directories
<subdue> randi: make a page of this stuff                [13:13]
<randi> Growl is a notification systems
* groggy calls it "Loser" because it can actually lose information.
<randi> s/systems/system/
<groggy> subdue: I'm doing just that.
<randi> and desktop manager is a non-annoying virtual desktop system
<subdue> ok
<groggy> http://wwww.lemis.com/grog/HOWTO/apple-setup.html
<groggy> Oops.
<Mavvie> problem with realvnc (and others) is that I get this and then it
     aborts (all I get is a black screen):
<groggy> http://www.lemis.com/grog/HOWTO/apple-setup.html
<randi> http://growl.info/
<randi> ^ growl
<Mavvie>  CConn:       Using hextile encoding
<Mavvie> unknown message type 255
<Mavvie>  main:        unknown message type
<randi> http://desktopmanager.berlios.de/
* groggy notes that there are certain unexpected typos, noticeable in the
  heading.
<randi> http://quicksilver.blacktree.com/                [13:14]
<groggy> Yes, I tried readvnc a while back and had difficulty.
<randi> those are the first 3 apps i install on a new osx box
<subdue> um...grog
<randi> problems with realvnc? like what?
<subdue> "Microsoft HOWTO page"
<groggy> randi: Can't recall.  It was over a year ago.
<groggy> subdue: Yes :-)
<randi> ah                               [13:15]
<randi> well, those 3 url's should get ya going.
<randi> quicksilver is a godsend.
<randi> i never use finder.
<randi> the only good finder replacements as far as filesystem browsers go are
    all commercial apps
<randi> mavvie: i ahd that problem before once with freebsd connecting to a
    windows box                         [13:16]
<randi> i can't remember how i fixed it, sadly.              [13:17]
<randi> i think i just switched to tightvnc because i was in a hurry.
<Mavvie> I think it has to do with the fact that I run 16bpp while the mac
     runs 24bpp
<groOgle> Was there a net split?
<logix> nope                             [13:21]
<groOgle> logix: Can you see groggy?
<subdue> I see a groggy                          [13:22]
<logix> groOgle: "see" as in /whois, yes
<groOgle> /whois groggy
<groOgle> Grr.
<subdue> [17:52] ••• ¢ PING sent to groggy
<subdue> [17:52] ••• ¢ PING reply of 1.047 s from groggy
<cperciva>  groggy is grog@ext-gw.lemis.com (Greg Lehey)
<cperciva>  on IRC via server efnet.xs4all.nl (The answer is 42)
<cperciva>  groggy 150.101.14.10 :actually using host
<groOgle> Hmm.  Just /msg'd groggy.
<groOgle> Got a popup window, but it's hanging.
<subdue> ••• ¢ PING reply of 0.547 s from groOgle
<wexxor> the topic -- waaaay too much information            [13:34]
* groggy didn't realise that cperciva plays the viola.          [13:36]
<subdue> violin
<subdue> I think
<groggy> subdue: cperciva will understand.
<groggy> subdue: In fact, I think all of the violin family have some kind of G
     string.                            [13:37]
<groggy> subdue: The same doesn't apply to C strings, for example.   [13:38]
<wexxor> are g strings also null-terminated?             [13:40]
* wexxor hides
<logix> C strings are, but cperciva apparently is the expert on G strings...
                                    [13:41]
<logix> groggy also might know
<groggy> wexxor: Depends on the instrument.              [13:42]
<groggy> wexxor: On the violin they are.             [13:43]
<groggy> wexxor: On the viola and cello they're between the C string and the D
     string.
* groggy watches the screen saver on boskopp use 50% of the CPU.    [13:44]
<randi> yayclean.                            [13:51]
<randi> so i'm thinking about doing dev for those lineage 2 people.  [13:52]
<randi> gaming company might be fun.
<wexxor> programming is programming                  [13:54]
<wexxor> the only difference is, do people actually buy/use your stuff or does
     the company throw it away?                 [13:55]
<randi> it's for lineage 2, so i dunno.
<randi> who actually plays lineage 2?
<ket> good fucking luck                          [14:00]
<ket> ncsoft's been busy laying off people
<randi> yeah
<randi> i met a few of them.
<randi> the guy i was dating tonight hired some of them          [14:01]
<randi> he's some director over at time warner
<randi> excedrine migraine ftw
<ket> from nc?                               [14:02]
<randi> a few of the people from nc, yes.
<randi> i met some chick and her girlfriend
<randi> she still works for nc though
<randi> he's friends with them, and they ran into us while we were out.
<randi> nice girl.  very angsty.  i like that.
<ket> uhm, first name?
<randi> i can't remember.  she's blonde, very athletic.           [14:03]
<randi> stephanie maybe?
<randi> it's nice meeting another girl in IT.  especially an attractive one.
                                    [14:05]
<ket> http://images.warcry.com/image.php?id=74594 <-- the one in the middle?
                                    [14:06]
<randi> i don't think so.
<randi> that chick looks like a boy.
<randi> this chick had clear skin, too.                  [14:07]
<ket> probably someone in back office or cs then.
<ket> either way, game development seriously sucks hard          [14:11]
<randi> does it? hm.                         [14:14]
<randi> i thought it'd just be interesting to try.
<ket> it's all about deadliens
<ket> and missing them.                          [14:15]
<logix> dead aliens or deadlines?
<ket> or hitting them by pushing alpha quality code.
<logix> must be the aliens
<randi> i'm failing to see how that'd be difference from my previous dev job :P
<Mavvie> dead aliens at your previous job?               [14:20]
<ket> a lot more people screaming at you, shitty pay, and no end.
<ket> and if you're lucky enough to get to work for ea, you get treated like a
      doormat when they're feeling generous             [14:24]
*** You have been kicked off channel #fdafdsaas by cperciva
    (~cperciva@S0106006067227a4a.vc.shawcable.net): I don't play the viola,
    damn you                                [14:25]
<randi> mavvie: no.  no aliens, but we did have a redheaded british guy :D
* groggy notes that cperciva understood.
<wexxor> randi: your previous dev job involved dead aliens?      [14:31]
<randi> no aliens!@#                         [14:32]
<randi> damnit.
<wexxor> oh, deadlines                           [14:35]
<wexxor> yeah, we miss those just like everyone else ;^)
<logix> you love dead aliens?
<ket> why, yes, yes i do.                        [14:36]
<ket> they always have such interesting technology
<wexxor> depends
<wexxor> the only good rigellian is a dead rigellian
<wexxor> arcturians are actually pretty cool
<ket> are you a pusher robot or a shover robot?
<ket> and that reminds me..  i should reinstall startopia.  that was a fun game.
                                    [14:37]
<randi> dead aliens.  so, you know, there's necrophelia...but is there a term
    for necrophelia in regards to aliens?               [15:07]
* groggy tries Yet Again to do something that Mac OX S didn't intend.   [15:59]
<logix> speaking of things Mac OSX doesn't intend - is there a way to
    configure wireless without the graphical network configuration tool?
                                    [16:01]
<logix> of course ifconfig works once you've joined a network, but is there
    something like wicontrol?
<groggy> logix: Even on FreeBSD, wicontrol is going away :-(     [16:02]
<groggy> logix: But my machine doesn't have wirless, and I have no idea of
     Macs anyway, so I can't help.                  [16:03]
* cperciva wonders what this OX S is of which groggy speaks so often
<ket> i think it's kind of like the micro$oft all the linux kiddies talk about
<logix> groggy: oh, it is? will ifconfig then adopt all the functionality?
                                    [16:04]
<ket> that windoze thing
<groggy> logix: That's the intention.
<groggy> logix: But I find it much more complicated than wicontrol   [16:05]
<logix> groggy: at least there's something non-graphical - which is not the
    case for OSX...                         [16:06]
<groggy> logix: MacOS has ifconfig too.                  [16:07]
<logix> groggy: but that only has the classic ifconfig functionality, not the
    wireless stuff
<logix> i'd also like a non-graphical dhclient, which one can use to debug
    problems a little more than running tcpdump and clicking on "renew
    lease"                              [16:08]
<groggy> logix: Yes, I'd like a lot of that stuff.           [16:09]
<groggy> logix: The only question is: maybe it exists, and I just don't know
     about it.
<Mavvie> logix: any OS can use such a tool :-)               [16:10]
<Mavvie> but then, OS/X has already tcpdump on board so there is no reason to
     worry about it.
<groggy> Mavvie: That's not exactly useful for configuring wireless cards.
<logix> Mavvie: what i meant was that if dhcp doesn't work for whatever
    reason, i can't make it any more verbose or so - all i can do is run
    tcpdump and click on "renew lease" again and again      [16:11]
<Mavvie> true
<groggy> logix: BTW, tcpdump is one program that does benefit from a GUI
     alternative.
<Mavvie> but then, there is nothing more what you can have.
<logix> oh, also, the graphical network configuration thingy sends out dhcp
    requests with the hardware MAC address, *not* with the current MAC
    address of the card (the one you might set with ifconfig lladdr)
                                    [16:12]
* groggy fights C++ types.
*** arved (~arved@21322530218.direct.eti.at) has quit: Quit: zusatzluefter
    einbauen
<logix> groggy: ah, definitely - i like ethereal
<groggy> backup.cc:423: error: invalid conversion from 'void*
     (*)(backup_thread*)' to 'void* (*)(void*)'
<groggy> What cast do I apply for that?                  [16:13]
<groggy> logix: ethereal is no more.
<Mavvie> wirewrapper these days :-)
* groggy hands logix a wireshark.
<groggy> Mavvie: wrapper?
<ket> fluke
<logix> oh, indeed                           [16:14]
<logix> since when is that?
<Mavvie> couple of weeks ago.
<groggy> Seems the owner of the Ethereal name left the project.
<groggy> backup.cc:423: error: invalid conversion from 'void*' to 'void*
     (*)(void*)'                            [16:15]
<groggy> Grr.
<logix> i see - and that answers my would-have-been next question ("why?")
* groggy voids where prohibited.
<groggy> logix: Personality conflicts?
<groggy> logix: It was in c't, but they didn't go into details.
<ket> ah, children.                          [16:16]
<logix> groggy: i haven't read the last 2 (or 3?) issues of c't      [16:17]
<logix> they're waiting for me at home
<groggy> logix: I know the problem :-)                   [16:21]
<groggy> Anyway, in case some MacOX people are listening:
<groggy> What I'm trying to do is to burn a DVD with a disk image.
<groggy> Not an ISO image.
<groggy> It looks as if MacOX doesn't like that.
<groggy> Any ideas?
Date: Thu, 10 Sep 2015 14:24:51 +1000
From: Ian Donaldson
To: Greg 'groggy' Lehey
Subject: Re: Column View on Mac OS X

Yes, I see what you mean. "Size to fit" might be a better term.

You can set the column size for future Finder windows by holding option
while dragging. You can also right / control-click a divider to open a menu
that allows you to "Right Size" all columns at once, at least of OS X 10.10.

However, there's no option to always "Right Size" by default. I'm guessing
the concern was that doing so might result in columns that are larger than
their containing window if the filename was long enough, and thus break
navigation.

Greg's home page Greg's diary Greg's photos Copyright

Valid XHTML 1.0!

$Id: apple-setup.php,v 1.14 2011/02/02 06:49:31 grog Exp grog $