Re: pdksh vs. mksh info [was: Re: Apparently, csh programming is considered harmful.]
On Mon, Dec 17, 2007 at 03:32:38PM -0500, Chuck Robey wrote: >Jurjen Middendorp wrote: If you're familiar with pdksh, are you also familiar with ksh93, which is (I believe) Mr. Korn's own shell? If you are, I would be interessted in your opinion of the two, any comparisons you might give. >>>I've never used ksh93 so I really can't say. There is a NOTES file >>>included with pdksh which gives a starter. I created this port a few >>>years ago because of some random issue I've long since forgotten with >>>pdksh on my FreeBSD box which didn't happen on my OpenBSD box. >>> >>>tom >> >>I never used pdksh, but am using ksh93 for quite a while now and have used >>bash, too. For some reason i like it better than bash, the vi mode is a bit >>better somehow, it feels alot sturdier. It doesn't have those special >>variables like $! and !! i believe, but it has alot of neat features like -^ i ment !$ offcourse :) >>basic network programming, lots of parameter expansion stuff and is just a >>very nice shell :) > >I havre installed it, and played with it a bit, I admit it's nicer than >sh (and I *think*, bash) but the reason I haven't tried using it >regularly is because I can't find a nicely set up .kshrc ... if you have >one, I'd appreciate a copy. Might be nice, if it's not terribly long, >to post it to the list, too. Basically it's just like any other shell .*rc. It sets some environment variables for stuff, a bunch of aliases and some functions i find useful myself, or am too lazy to throw away. Nothing really ksh-specific, except maybe some of the functions i wrote use ksh-stuff like arrays, but that's not really ksh-specific as well. You could use google to find any .*rc for sh-like shells and copy those (or get a copy of unix power tools, it's a nice book to make you feel at home in a shell) -jurjen ps. these functions i probably use the most :) alias d="do_in_bg dillo" alias x="do_in_bg xpdf" alias ff="do_in_bg firefox" #do a program in the background: do_in_bg() { "$@" > /dev/null 2>&1 & } #open a webpage from disk, like: $cd /usr/share/doc/en && htm #to look at all the (english) freebsd-docs :) htm() { set -A stuff $(find -L . -name "index.htm*" -print) (for ((i=0; i < ${#stuff[*]}; i++)); do print "$i \t: ${stuff[i]}"; done) | $PAGER read x && d ${stuff[$x]} } ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"
Re: pdksh vs. mksh info [was: Re: Apparently, csh programming is considered harmful.]
On Mon, 2007-12-17 at 19:38 +, Frank Shute wrote: > On Sun, Dec 16, 2007 at 07:21:23PM -0500, Tom McLaughlin wrote: > > > > On Sat, 2007-12-15 at 04:13 +0200, Giorgos Keramidas wrote: > > > > > > Hi Frank, > > > > > > Now that you mention pdksh, have you tried mksh (in Ports too)? > > > > > > I've installed it and successfully run moderately large ksh scripts > > > (like the webrev(1) utility of OpenSolaris), and it is about an order of > > > magnitude smaller than pdksh here: > > > > > > % [EMAIL PROTECTED]:/usr/local/bin$ ls -ld mksh bash ksh > > > % -rwxr-xr-x 1 root wheel - 684699 Dec 9 19:51 bash > > > % -r-xr-xr-x 1 root wheel - 2390645 Aug 31 17:07 ksh > > > % -r-xr-xr-x 1 root wheel - 236202 Dec 9 18:34 mksh > > > % [EMAIL PROTECTED]:/usr/local/bin$ ldd mksh bash ksh > > > % mksh: > > > % libc.so.7 => /lib/libc.so.7 (0x280ae000) > > > % bash: > > > % libncurses.so.7 => /lib/libncurses.so.7 (0x28101000) > > > % libintl.so.8 => /usr/local/lib/libintl.so.8 (0x28144000) > > > % libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x28156000) > > > % libc.so.7 => /lib/libc.so.7 (0x2824b000) > > > % ldd: ksh: not a dynamic executable > > > % [EMAIL PROTECTED]:/usr/local/bin$ > > > > > > > I've maintained a port of OpenBSD's pdksh for some time but I've never > > committed it. Think of pdksh but still actively maintained. > > > > http://people.freebsd.org/~tmclaugh/files/openksh/openksh-4.2.shar > > > > [EMAIL PROTECTED] tom]$ ls -al /usr/local/bin/ksh > > -r-xr-xr-x 1 root wheel 192032 Dec 16 18:22 /usr/local/bin/ksh* > > > > tom > > I always assumed that the pdksh in ports had the OpenBSD patches in > it. > > I've downloaded the shell archive and I'll build it. > > Any chance that you will commit this in the future? I'd almost > certainly use it. > > Thanks for your work & time, it's much appreciated! > > Regards, > Its always been a personal use thing but I'll look at adding it. I already checked on the name over on an OpenBSD list and no one cared. If anyone wants to autoconf it that would be really sweet. There's a patch version that works on Linux but both that release and this one require bmake. tom -- | tmclaugh at sdf.lonestar.org tmclaugh at FreeBSD.org | | FreeBSD http://www.FreeBSD.org | ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"
Re: pdksh vs. mksh info [was: Re: Apparently, csh programming is considered harmful.]
Jurjen Middendorp wrote: If you're familiar with pdksh, are you also familiar with ksh93, which is (I believe) Mr. Korn's own shell? If you are, I would be interessted in your opinion of the two, any comparisons you might give. I've never used ksh93 so I really can't say. There is a NOTES file included with pdksh which gives a starter. I created this port a few years ago because of some random issue I've long since forgotten with pdksh on my FreeBSD box which didn't happen on my OpenBSD box. tom I never used pdksh, but am using ksh93 for quite a while now and have used bash, too. For some reason i like it better than bash, the vi mode is a bit better somehow, it feels alot sturdier. It doesn't have those special variables like $! and !! i believe, but it has alot of neat features like basic network programming, lots of parameter expansion stuff and is just a very nice shell :) I havre installed it, and played with it a bit, I admit it's nicer than sh (and I *think*, bash) but the reason I haven't tried using it regularly is because I can't find a nicely set up .kshrc ... if you have one, I'd appreciate a copy. Might be nice, if it's not terribly long, to post it to the list, too. ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"
Re: pdksh vs. mksh info [was: Re: Apparently, csh programming is considered harmful.]
On Sun, Dec 16, 2007 at 07:21:23PM -0500, Tom McLaughlin wrote: > > On Sat, 2007-12-15 at 04:13 +0200, Giorgos Keramidas wrote: > > > > Hi Frank, > > > > Now that you mention pdksh, have you tried mksh (in Ports too)? > > > > I've installed it and successfully run moderately large ksh scripts > > (like the webrev(1) utility of OpenSolaris), and it is about an order of > > magnitude smaller than pdksh here: > > > > % [EMAIL PROTECTED]:/usr/local/bin$ ls -ld mksh bash ksh > > % -rwxr-xr-x 1 root wheel - 684699 Dec 9 19:51 bash > > % -r-xr-xr-x 1 root wheel - 2390645 Aug 31 17:07 ksh > > % -r-xr-xr-x 1 root wheel - 236202 Dec 9 18:34 mksh > > % [EMAIL PROTECTED]:/usr/local/bin$ ldd mksh bash ksh > > % mksh: > > % libc.so.7 => /lib/libc.so.7 (0x280ae000) > > % bash: > > % libncurses.so.7 => /lib/libncurses.so.7 (0x28101000) > > % libintl.so.8 => /usr/local/lib/libintl.so.8 (0x28144000) > > % libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x28156000) > > % libc.so.7 => /lib/libc.so.7 (0x2824b000) > > % ldd: ksh: not a dynamic executable > > % [EMAIL PROTECTED]:/usr/local/bin$ > > > > I've maintained a port of OpenBSD's pdksh for some time but I've never > committed it. Think of pdksh but still actively maintained. > > http://people.freebsd.org/~tmclaugh/files/openksh/openksh-4.2.shar > > [EMAIL PROTECTED] tom]$ ls -al /usr/local/bin/ksh > -r-xr-xr-x 1 root wheel 192032 Dec 16 18:22 /usr/local/bin/ksh* > > tom I always assumed that the pdksh in ports had the OpenBSD patches in it. I've downloaded the shell archive and I'll build it. Any chance that you will commit this in the future? I'd almost certainly use it. Thanks for your work & time, it's much appreciated! Regards, -- Frank Contact info: http://www.esperance-linux.co.uk/misc/contact.html ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"
Re: pdksh vs. mksh info [was: Re: Apparently, csh programming is considered harmful.]
On Sun, Dec 16, 2007 at 11:34:50PM -0500, Tom McLaughlin wrote: >On Sun, 2007-12-16 at 22:26 -0500, Chuck Robey wrote: >> Tom McLaughlin wrote: >> >> Now that you mention pdksh, have you tried mksh (in Ports too)? >> >> >> >> I've installed it and successfully run moderately large ksh scripts >> >> (like the webrev(1) utility of OpenSolaris), and it is about an order of >> >> magnitude smaller than pdksh here: >> >> >> >> % [EMAIL PROTECTED]:/usr/local/bin$ ls -ld mksh bash ksh >> >> % -rwxr-xr-x 1 root wheel - 684699 Dec 9 19:51 bash >> >> % -r-xr-xr-x 1 root wheel - 2390645 Aug 31 17:07 ksh >> >> % -r-xr-xr-x 1 root wheel - 236202 Dec 9 18:34 mksh >> >> % [EMAIL PROTECTED]:/usr/local/bin$ ldd mksh bash ksh >> >> % mksh: >> >> % libc.so.7 => /lib/libc.so.7 (0x280ae000) >> >> % bash: >> >> % libncurses.so.7 => /lib/libncurses.so.7 (0x28101000) >> >> % libintl.so.8 => /usr/local/lib/libintl.so.8 (0x28144000) >> >> % libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x28156000) >> >> % libc.so.7 => /lib/libc.so.7 (0x2824b000) >> >> % ldd: ksh: not a dynamic executable >> >> % [EMAIL PROTECTED]:/usr/local/bin$ >> >> >> > >> > I've maintained a port of OpenBSD's pdksh for some time but I've never >> > committed it. Think of pdksh but still actively maintained. >> > >> > http://people.freebsd.org/~tmclaugh/files/openksh/openksh-4.2.shar >> > >> > [EMAIL PROTECTED] tom]$ ls -al /usr/local/bin/ksh >> > -r-xr-xr-x 1 root wheel 192032 Dec 16 18:22 /usr/local/bin/ksh* >> >> If you're familiar with pdksh, are you also familiar with ksh93, which >> is (I believe) Mr. Korn's own shell? If you are, I would be interessted >> in your opinion of the two, any comparisons you might give. > >I've never used ksh93 so I really can't say. There is a NOTES file >included with pdksh which gives a starter. I created this port a few >years ago because of some random issue I've long since forgotten with >pdksh on my FreeBSD box which didn't happen on my OpenBSD box. > >tom I never used pdksh, but am using ksh93 for quite a while now and have used bash, too. For some reason i like it better than bash, the vi mode is a bit better somehow, it feels alot sturdier. It doesn't have those special variables like $! and !! i believe, but it has alot of neat features like basic network programming, lots of parameter expansion stuff and is just a very nice shell :) -jurjen ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"
Re: pdksh vs. mksh info [was: Re: Apparently, csh programming is considered harmful.]
On Sun, 2007-12-16 at 22:26 -0500, Chuck Robey wrote: > Tom McLaughlin wrote: > >> Now that you mention pdksh, have you tried mksh (in Ports too)? > >> > >> I've installed it and successfully run moderately large ksh scripts > >> (like the webrev(1) utility of OpenSolaris), and it is about an order of > >> magnitude smaller than pdksh here: > >> > >> % [EMAIL PROTECTED]:/usr/local/bin$ ls -ld mksh bash ksh > >> % -rwxr-xr-x 1 root wheel - 684699 Dec 9 19:51 bash > >> % -r-xr-xr-x 1 root wheel - 2390645 Aug 31 17:07 ksh > >> % -r-xr-xr-x 1 root wheel - 236202 Dec 9 18:34 mksh > >> % [EMAIL PROTECTED]:/usr/local/bin$ ldd mksh bash ksh > >> % mksh: > >> % libc.so.7 => /lib/libc.so.7 (0x280ae000) > >> % bash: > >> % libncurses.so.7 => /lib/libncurses.so.7 (0x28101000) > >> % libintl.so.8 => /usr/local/lib/libintl.so.8 (0x28144000) > >> % libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x28156000) > >> % libc.so.7 => /lib/libc.so.7 (0x2824b000) > >> % ldd: ksh: not a dynamic executable > >> % [EMAIL PROTECTED]:/usr/local/bin$ > >> > > > > I've maintained a port of OpenBSD's pdksh for some time but I've never > > committed it. Think of pdksh but still actively maintained. > > > > http://people.freebsd.org/~tmclaugh/files/openksh/openksh-4.2.shar > > > > [EMAIL PROTECTED] tom]$ ls -al /usr/local/bin/ksh > > -r-xr-xr-x 1 root wheel 192032 Dec 16 18:22 /usr/local/bin/ksh* > > If you're familiar with pdksh, are you also familiar with ksh93, which > is (I believe) Mr. Korn's own shell? If you are, I would be interessted > in your opinion of the two, any comparisons you might give. I've never used ksh93 so I really can't say. There is a NOTES file included with pdksh which gives a starter. I created this port a few years ago because of some random issue I've long since forgotten with pdksh on my FreeBSD box which didn't happen on my OpenBSD box. tom -- | tmclaugh at sdf.lonestar.org tmclaugh at FreeBSD.org | | FreeBSD http://www.FreeBSD.org | ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"
Re: pdksh vs. mksh info [was: Re: Apparently, csh programming is considered harmful.]
Tom McLaughlin wrote: Now that you mention pdksh, have you tried mksh (in Ports too)? I've installed it and successfully run moderately large ksh scripts (like the webrev(1) utility of OpenSolaris), and it is about an order of magnitude smaller than pdksh here: % [EMAIL PROTECTED]:/usr/local/bin$ ls -ld mksh bash ksh % -rwxr-xr-x 1 root wheel - 684699 Dec 9 19:51 bash % -r-xr-xr-x 1 root wheel - 2390645 Aug 31 17:07 ksh % -r-xr-xr-x 1 root wheel - 236202 Dec 9 18:34 mksh % [EMAIL PROTECTED]:/usr/local/bin$ ldd mksh bash ksh % mksh: % libc.so.7 => /lib/libc.so.7 (0x280ae000) % bash: % libncurses.so.7 => /lib/libncurses.so.7 (0x28101000) % libintl.so.8 => /usr/local/lib/libintl.so.8 (0x28144000) % libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x28156000) % libc.so.7 => /lib/libc.so.7 (0x2824b000) % ldd: ksh: not a dynamic executable % [EMAIL PROTECTED]:/usr/local/bin$ I've maintained a port of OpenBSD's pdksh for some time but I've never committed it. Think of pdksh but still actively maintained. http://people.freebsd.org/~tmclaugh/files/openksh/openksh-4.2.shar [EMAIL PROTECTED] tom]$ ls -al /usr/local/bin/ksh -r-xr-xr-x 1 root wheel 192032 Dec 16 18:22 /usr/local/bin/ksh* If you're familiar with pdksh, are you also familiar with ksh93, which is (I believe) Mr. Korn's own shell? If you are, I would be interessted in your opinion of the two, any comparisons you might give. ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"
Re: pdksh vs. mksh info [was: Re: Apparently, csh programming is considered harmful.]
On Sat, 2007-12-15 at 04:13 +0200, Giorgos Keramidas wrote: > On 2007-12-14 21:10, Frank Shute <[EMAIL PROTECTED]> wrote: > > I used bash for an interactive shell for about 5 years until I > > discovered the goodness of pdksh. About half the size, statically > > linked, not full of bugs and better editing features. Plus it's not > > GPL. > > Hi Frank, > > Now that you mention pdksh, have you tried mksh (in Ports too)? > > I've installed it and successfully run moderately large ksh scripts > (like the webrev(1) utility of OpenSolaris), and it is about an order of > magnitude smaller than pdksh here: > > % [EMAIL PROTECTED]:/usr/local/bin$ ls -ld mksh bash ksh > % -rwxr-xr-x 1 root wheel - 684699 Dec 9 19:51 bash > % -r-xr-xr-x 1 root wheel - 2390645 Aug 31 17:07 ksh > % -r-xr-xr-x 1 root wheel - 236202 Dec 9 18:34 mksh > % [EMAIL PROTECTED]:/usr/local/bin$ ldd mksh bash ksh > % mksh: > % libc.so.7 => /lib/libc.so.7 (0x280ae000) > % bash: > % libncurses.so.7 => /lib/libncurses.so.7 (0x28101000) > % libintl.so.8 => /usr/local/lib/libintl.so.8 (0x28144000) > % libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x28156000) > % libc.so.7 => /lib/libc.so.7 (0x2824b000) > % ldd: ksh: not a dynamic executable > % [EMAIL PROTECTED]:/usr/local/bin$ > I've maintained a port of OpenBSD's pdksh for some time but I've never committed it. Think of pdksh but still actively maintained. http://people.freebsd.org/~tmclaugh/files/openksh/openksh-4.2.shar [EMAIL PROTECTED] tom]$ ls -al /usr/local/bin/ksh -r-xr-xr-x 1 root wheel 192032 Dec 16 18:22 /usr/local/bin/ksh* tom -- | tmclaugh at sdf.lonestar.org tmclaugh at FreeBSD.org | | FreeBSD http://www.FreeBSD.org | ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"
Re: pdksh vs. mksh info [was: Re: Apparently, csh programming is considered harmful.]
On 2007-12-15 13:54, Frank Shute <[EMAIL PROTECTED]> wrote: >> % [EMAIL PROTECTED]:/usr/local/bin$ ls -ld mksh bash ksh >> % -rwxr-xr-x 1 root wheel - 684699 Dec 9 19:51 bash >> % -r-xr-xr-x 1 root wheel - 2390645 Aug 31 17:07 ksh >> % -r-xr-xr-x 1 root wheel - 236202 Dec 9 18:34 mksh > > Wow. My pdksh is much smaller: > > $ ls -ld /usr/local/bin/ksh > -r-xr-xr-x 1 root wheel 681584 Jan 23 2007 /usr/local/bin/ksh > > $ pkg_info -W /usr/local/bin/ksh > /usr/local/bin/ksh was installed by package pdksh-5.2.14p2_2 > > It's also statically compiled. I wonder what is bloating yours so > much. Was it built with debugging code or something? Yes. All my ports are build with DEBUG_FLAGS='-g' this time, so it may be the cause of the pdksh bloat. ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"
Re: pdksh vs. mksh info [was: Re: Apparently, csh programming is considered harmful.]
On Sat, Dec 15, 2007 at 04:13:49AM +0200, Giorgos Keramidas wrote: > > On 2007-12-14 21:10, Frank Shute <[EMAIL PROTECTED]> wrote: > > I used bash for an interactive shell for about 5 years until I > > discovered the goodness of pdksh. About half the size, statically > > linked, not full of bugs and better editing features. Plus it's not > > GPL. > > Hi Frank, > > Now that you mention pdksh, have you tried mksh (in Ports too)? No I haven't but I'll certainly give it a look. I've just upgraded my window manager: blackbox -> fluxbox, so I might aswell upgrade my shell ;) > > I've installed it and successfully run moderately large ksh scripts > (like the webrev(1) utility of OpenSolaris), and it is about an order of > magnitude smaller than pdksh here: Sounds good, thanks for the tip Giorgos. > > % [EMAIL PROTECTED]:/usr/local/bin$ ls -ld mksh bash ksh > % -rwxr-xr-x 1 root wheel - 684699 Dec 9 19:51 bash > % -r-xr-xr-x 1 root wheel - 2390645 Aug 31 17:07 ksh > % -r-xr-xr-x 1 root wheel - 236202 Dec 9 18:34 mksh Wow. My pdksh is much smaller: $ ls -ld /usr/local/bin/ksh -r-xr-xr-x 1 root wheel 681584 Jan 23 2007 /usr/local/bin/ksh $ pkg_info -W /usr/local/bin/ksh /usr/local/bin/ksh was installed by package pdksh-5.2.14p2_2 It's also statically compiled. I wonder what is bloating yours so much. Was it built with debugging code or something? > % [EMAIL PROTECTED]:/usr/local/bin$ ldd mksh bash ksh > % mksh: > % libc.so.7 => /lib/libc.so.7 (0x280ae000) > % bash: > % libncurses.so.7 => /lib/libncurses.so.7 (0x28101000) > % libintl.so.8 => /usr/local/lib/libintl.so.8 (0x28144000) > % libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x28156000) > % libc.so.7 => /lib/libc.so.7 (0x2824b000) > % ldd: ksh: not a dynamic executable > % [EMAIL PROTECTED]:/usr/local/bin$ -- Frank Contact info: http://www.esperance-linux.co.uk/misc/contact.html ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"
pdksh vs. mksh info [was: Re: Apparently, csh programming is considered harmful.]
On 2007-12-14 21:10, Frank Shute <[EMAIL PROTECTED]> wrote: > I used bash for an interactive shell for about 5 years until I > discovered the goodness of pdksh. About half the size, statically > linked, not full of bugs and better editing features. Plus it's not > GPL. Hi Frank, Now that you mention pdksh, have you tried mksh (in Ports too)? I've installed it and successfully run moderately large ksh scripts (like the webrev(1) utility of OpenSolaris), and it is about an order of magnitude smaller than pdksh here: % [EMAIL PROTECTED]:/usr/local/bin$ ls -ld mksh bash ksh % -rwxr-xr-x 1 root wheel - 684699 Dec 9 19:51 bash % -r-xr-xr-x 1 root wheel - 2390645 Aug 31 17:07 ksh % -r-xr-xr-x 1 root wheel - 236202 Dec 9 18:34 mksh % [EMAIL PROTECTED]:/usr/local/bin$ ldd mksh bash ksh % mksh: % libc.so.7 => /lib/libc.so.7 (0x280ae000) % bash: % libncurses.so.7 => /lib/libncurses.so.7 (0x28101000) % libintl.so.8 => /usr/local/lib/libintl.so.8 (0x28144000) % libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x28156000) % libc.so.7 => /lib/libc.so.7 (0x2824b000) % ldd: ksh: not a dynamic executable % [EMAIL PROTECTED]:/usr/local/bin$ ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"