Re: [Emc-developers] running master on the pi, driving a lathe

2018-08-29 Thread Gene Heskett
On Wednesday 29 August 2018 11:17:36 Dewey Garrett wrote:

> > hm2/hm2_7i90.0: invalid token in config string: "{num_encoders=4"
> >
> >> It looks almost as if the loadrt hostmot2 line has "grown" some
> >> spurious brackets
>
> This error report could be caused by:
>a) malformed loadrt line in the hal file (not posted)
> or
>b) complex loadrt string parameters mishandled by twopass
> proccessing.
>
> The latter case (b)) is addressed in the master branch (2.8~pre)
> by a provision to exclude individual hal files from twopass
> processing.
>
> Document Ref:
> http://linuxcnc.org/docs/devel/html/hal/twopass.html#_exluding_hal_fil
>es
>
> To avoid errors from a problematic fpga loadrt line,
> place the loadrt line in a separate hal file that
> uses the magic comment "#NOTWOPASS" to exclude
> twopass processing for that file alone.  Example:
>   $ cat excludeme.hal
>   #NOTWOPASS
>   loadrt hm2_... ...
>
> And use appropriate ini entries:
>   [HAL]
>   TWOPASS = verbose
>   HALFILE = excludeme.hal
>   HALFILE = one.hal
>   HALFILE = two.hal
>   ...
>
> NOTE: The addf commands for the loaded module should be located
> in a file that *is* handled by twopass processing in order to ensure
> the desired order of module execution.
>
Isn't that rather effectively bypassed when the second loadrt is in the 
postgui stuff?

>
> The implementing commit is available in the master branch after
> March of2018.
> Ref: https://github.com/LinuxCNC/linuxcnc/commit/a7ca8053a
>
> The provided sim config (configs/sim/axis/twopass/twopass.ini)
> demonstrates using the halfile
> configs/sim/axis/twopass/twopass_excluded.hal)

If its fixed, its not arrived in the armhf version of master, which was 
updated yesterday on that machine.  And I've not heard of the NOTWOPASS 
option ever before today.

I'll leave it running w/o the TWOPASS, and continue with my bedwear 
stuff. I'm building that one step at a time since I might have to 
actually use that lathe for something else while I'm working on the 
bedwear comp.

Thanks Dewey.

-- 
Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page 

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


Re: [Emc-developers] running master on the pi, driving a lathe

2018-08-29 Thread Dewey Garrett


> hm2/hm2_7i90.0: invalid token in config string: "{num_encoders=4"

>> It looks almost as if the loadrt hostmot2 line has "grown" some
>> spurious brackets

This error report could be caused by:
   a) malformed loadrt line in the hal file (not posted)
or
   b) complex loadrt string parameters mishandled by twopass proccessing.

The latter case (b)) is addressed in the master branch (2.8~pre)
by a provision to exclude individual hal files from twopass
processing.

Document Ref:
http://linuxcnc.org/docs/devel/html/hal/twopass.html#_exluding_hal_files

To avoid errors from a problematic fpga loadrt line,
place the loadrt line in a separate hal file that
uses the magic comment "#NOTWOPASS" to exclude
twopass processing for that file alone.  Example:
  $ cat excludeme.hal
  #NOTWOPASS
  loadrt hm2_... ...

And use appropriate ini entries:
  [HAL]
  TWOPASS = verbose
  HALFILE = excludeme.hal
  HALFILE = one.hal
  HALFILE = two.hal
  ...

NOTE: The addf commands for the loaded module should be located
in a file that *is* handled by twopass processing in order to ensure 
the desired order of module execution.


The implementing commit is available in the master branch after
March of2018.
Ref: https://github.com/LinuxCNC/linuxcnc/commit/a7ca8053a

The provided sim config (configs/sim/axis/twopass/twopass.ini)
demonstrates using the halfile configs/sim/axis/twopass/twopass_excluded.hal)
-- 
Dewey Garrett


--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


Re: [Emc-developers] running master on the pi, driving a lathe

2018-08-29 Thread Gene Heskett
On Wednesday 29 August 2018 10:52:15 andy pugh wrote:

> On Wed, 29 Aug 2018 at 15:12, Gene Heskett  wrote:
> > Your thoughts?
>
> You reported the same bug back in January.
> https://sourceforge.net/p/emc/mailman/message/36175030/
>
> But you were not the first: It is a bug that should be fixed.
>
> Reading through old emails, the workaround appears to be to remove the
> quotation marks from the INI file [HOSTMOT2[ section.

Didn't work. Let me move the spiclk options into the (CONFIG)
Fails also:
hm2: loading Mesa HostMot2 driver version 0.15
twopass: loadrt hm2_rpspi {config={num_encoders=4 num_pwmgens=1 num_stepgens=4 
spiclk_rate=41666 spiclk_rate_rd=25000}}
hm2_rpspi: SPI0/CE0 Invalid cookie, read: 2ad5e5ff 2a292724 192a2726, expected: 
55aacafe 54534f48 32544f4d
hm2_rpspi: SPI0/CE0 MISO input is bit-shifted by one bit. SPI read clock 
frequency probably too high.
hm2_rpspi: rtapi_app_main: No such device (-19)

twopass: load_the_modules cmd=
waitpid failed /usr/bin/rtapi_app hm2_rpspi
/usr/bin/rtapi_app exited without becoming ready
insmod for hm2_rpspi failed, returned -1
but lets see if that works w/o TWOPASS

No, put it all back, including the quotes, works w/o TWOPASS

So something in the twopass translator is aglay.

Thanks Andy.

-- 
Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page 

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


Re: [Emc-developers] running master on the pi, driving a lathe

2018-08-29 Thread andy pugh
On Wed, 29 Aug 2018 at 15:12, Gene Heskett  wrote:

> Your thoughts?

You reported the same bug back in January.
https://sourceforge.net/p/emc/mailman/message/36175030/

But you were not the first: It is a bug that should be fixed.

Reading through old emails, the workaround appears to be to remove the
quotation marks from the INI file [HOSTMOT2[ section.

-- 
atp
"A motorcycle is a bicycle with a pandemonium attachment and is
designed for the especial use of mechanical geniuses, daredevils and
lunatics."
— George Fitch, Atlanta Constitution Newspaper, 1916

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


Re: [Emc-developers] running master on the pi, driving a lathe

2018-08-29 Thread Gene Heskett
On Wednesday 29 August 2018 08:30:37 andy pugh wrote:

> On Wed, 29 Aug 2018 at 13:08, Gene Heskett  wrote:
> > Put a # in front of TWOPASS and it Just Works. No other changes.
>
> So you don't have a TWOPASS-compatible set of config files. That's
> nothing to do with lincurve.
>
> http://linuxcnc.org/docs/html/hal/twopass.html
> try adding ,verbose,nodelete
>
> It looks almost as if the loadrt hostmot2 line has "grown" some
> spurious brackets

I see that, but no clue where they may originate from

>From the ini file: (word wrap off)

[HOSTMOT2]
DRIVER  =   hm2_rpspi
BOARD   =   7i90
CONFIG  =   "num_encoders=4 num_pwmgens=1 
num_stepgens=4"

The quotes are required.

from the main .hal:
# hostmot2 driver
loadrt hostmot2

# load low-level driver
loadrt  [HOSTMOT2](DRIVER) config=[HOSTMOT2](CONFIG) spiclk_rate=41666 
spiclk_rate_rd=25000

spiclk_rate is write speed, spiclk-rate_rd is read back speed from the 7i90 to 
the pi.

Speeds are in kilohertz.

This is custom for Bertho's rpspi.so driver, and may vary with the cable length.
mine is a hair over 2" from pi pin to 7i90 pin, source terminated nominally in
the center of that 2"
. 
Now with TWOPASS = on,verbose,nodelete

And I get:
First error showing in the terminal is in processing the tcl as echo'd 
to the terminal screen:

hm2: loading Mesa HostMot2 driver version 0.15
twopass: loadrt hm2_rpspi {config={"num_encoders=4 num_pwmgens=1 
num_stepgens=4"}} spiclk_rate=41666 spiclk_rate_rd=25000
hm2/hm2_7i90.0: invalid token in config string: "{num_encoders=4"
hm2_rpspi: hm2_register() failed for SPI0/CE0.
hm2_rpspi: rtapi_app_main: Invalid argument (-22)

twopass: load_the_modules cmd=
waitpid failed /usr/bin/rtapi_app hm2_rpspi
/usr/bin/rtapi_app exited without becoming ready
insmod for hm2_rpspi failed, returned -1

Looks as if the config option is being applied wrong after twopass is in effect.

Can an .ini [HOSTMOT2] change fix this? Two config statements perhaps?
OTOH, that 7i90 config has got to be transmitted thru rpspi.so.

Your thoughts?

-- 
Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page 

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


Re: [Emc-developers] running master on the pi, driving a lathe

2018-08-29 Thread andy pugh
On Wed, 29 Aug 2018 at 13:08, Gene Heskett  wrote:

> Put a # in front of TWOPASS and it Just Works. No other changes.

So you don't have a TWOPASS-compatible set of config files. That's
nothing to do with lincurve.

http://linuxcnc.org/docs/html/hal/twopass.html
try adding ,verbose,nodelete

It looks almost as if the loadrt hostmot2 line has "grown" some
spurious brackets

-- 
atp
"A motorcycle is a bicycle with a pandemonium attachment and is
designed for the especial use of mechanical geniuses, daredevils and
lunatics."
— George Fitch, Atlanta Constitution Newspaper, 1916

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


Re: [Emc-developers] running master on the pi, driving a lathe

2018-08-29 Thread Gene Heskett
On Wednesday 29 August 2018 07:18:35 andy pugh wrote:

> On Wed, 29 Aug 2018 at 12:05, Gene Heskett  
wrote:
> > Tried several variations, eventually commenting the TWOPASS and it
> > works again by removeing the automatic.yadda-yadda. Without backing
> > out about 50 edits, so the names= is working, once only.
>
> Yes. That's the way it is. To loadrt more than once, using names= you
> _must_ use TWOPASS.
but, as you saw in the previous post TWOPASS blows it up (in this case, 
it works on 3 other x86 machines but none of them try to loadrt the same 
module in different files.

Its running now, so I'll re-enable TWOPASS="tryme" and even w/o the file 
that would dbl load lincurve I get this:

Starting LinuxCNC...
twopass:invoked with <> options
twopass:found ./hm2-7i90-stepper.hal
Note: Using POSIX realtime
hm2: loading Mesa HostMot2 driver version 0.15
hm2/hm2_7i90.0: invalid token in config string: "{num_encoders=4"
hm2_rpspi: hm2_register() failed for SPI0/CE0.
hm2_rpspi: rtapi_app_main: Invalid argument (-22)

twopass: load_the_modules cmd=
waitpid failed /usr/bin/rtapi_app hm2_rpspi
/usr/bin/rtapi_app exited without becoming ready
insmod for hm2_rpspi failed, returned -1

HAL: ERROR: function 'hm2_7i90.0.read' not found
twopass: Error in file ./hm2-7i90-stepper.hal:
addf failed
Shutting down and cleaning up LinuxCNC...

Put a # in front of TWOPASS and it Just Works. No other changes.

-- 
Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page 

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


Re: [Emc-developers] running master on the pi, driving a lathe

2018-08-29 Thread andy pugh
On Wed, 29 Aug 2018 at 12:05, Gene Heskett  wrote:

> Tried several variations, eventually commenting the TWOPASS and it works
> again by removeing the automatic.yadda-yadda. Without backing out about
> 50 edits, so the names= is working, once only.

Yes. That's the way it is. To loadrt more than once, using names= you
_must_ use TWOPASS.

-- 
atp
"A motorcycle is a bicycle with a pandemonium attachment and is
designed for the especial use of mechanical geniuses, daredevils and
lunatics."
— George Fitch, Atlanta Constitution Newspaper, 1916

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


Re: [Emc-developers] running master on the pi, driving a lathe

2018-08-29 Thread Gene Heskett
On Wednesday 29 August 2018 05:06:51 andy pugh wrote:

> On Wed, 29 Aug 2018 at 02:57, Gene Heskett  
wrote:
> > Something else I ran into today. lincurve doesn't accept a name in
> > the loadrt line, only a count, which means I had to comment out a
> > call
>
> It should. It is a .comp compiled by halcompile and halcompile makes
> that available by default.
>
> Both loadrt lines need to use names= for it to work with twopass,
> though.

I've tried the names= more than once, its not loaded when I do. I'll give 
it another shot though.

I named lincurve.0 as bedwear in the main .hal
Then I named it gearshift in automatic_spindle_gear yadda yadda

#loadrt lincurve count=1 personality=16
loadrt lincurve names=gearshift personality=16
and
#addf lincurve.0jog-thread
addf gearshift  jog-thread

And linuxcnc -l fails:
lincurve: already exists
lincurve: already exists

HAL: ERROR: function 'gearshift' not found
automatic-spindle-gear-detection.hal:17: addf failed
Shutting down and cleaning up LinuxCNC...

So the dbled loadrt is still denied but TWOPASS wasn't set, is now, but 
gets new error:
=
Starting LinuxCNC...
twopass:invoked with <> options
twopass:found ./hm2-7i90-stepper.hal
Note: Using POSIX realtime
hm2: loading Mesa HostMot2 driver version 0.15
hm2/hm2_7i90.0: invalid token in config string: "{num_encoders=4"
hm2_rpspi: hm2_register() failed for SPI0/CE0.
hm2_rpspi: rtapi_app_main: Invalid argument (-22)

twopass: load_the_modules cmd=
waitpid failed /usr/bin/rtapi_app hm2_rpspi
/usr/bin/rtapi_app exited without becoming ready
insmod for hm2_rpspi failed, returned -1

HAL: ERROR: function 'hm2_7i90.0.read' not found
twopass: Error in file ./hm2-7i90-stepper.hal:
addf failed
Shutting down and cleaning up LinuxCNC...
hm2_rpspi: not loaded
:0: exit value: 255
:0: rmmod failed, returned -1
hm2: unloading
:0: unloadrt failed
Note: Using POSIX realtime

So it looks as if I'll have to back all the renaming out, and comment the 
gearchange call back out, its not fully implemented anyway.

Tried several variations, eventually commenting the TWOPASS and it works 
again by removeing the automatic.yadda-yadda. Without backing out about 
50 edits, so the names= is working, once only.


Thanks Andy.

-- 
Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page 

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


Re: [Emc-developers] running master on the pi, driving a lathe

2018-08-29 Thread andy pugh
On Wed, 29 Aug 2018 at 02:57, Gene Heskett  wrote:

> Something else I ran into today. lincurve doesn't accept a name in the
> loadrt line, only a count, which means I had to comment out a call

It should. It is a .comp compiled by halcompile and halcompile makes
that available by default.

Both loadrt lines need to use names= for it to work with twopass, though.

-- 
atp
"A motorcycle is a bicycle with a pandemonium attachment and is
designed for the especial use of mechanical geniuses, daredevils and
lunatics."
— George Fitch, Atlanta Constitution Newspaper, 1916

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


Re: [Emc-developers] running master on the pi, driving a lathe

2018-08-28 Thread Gene Heskett
On Tuesday 28 August 2018 15:07:25 andy pugh wrote:

> On Tue, 28 Aug 2018 at 20:05, andy pugh  wrote:
> > http://linuxcnc.org/docs/devel/html/man/man9/offset.9.html
> >
> > offset now has two update functions.
>
> (And it looks like it always did)

Something else I ran into today. lincurve doesn't accept a name in the 
loadrt line, only a count, which means I had to comment out a call to 
the automatic gear change file because it also uses a lincurve, and 
linuxcnc will not allow 2 loadrt's for the same module. I can work 
around it, but that removes the isolation between the files.

So can that be fixed, either by specing a count=-1, meaning the 2nd load, 
in a different file, will then be lincurve.1.etc? The present exit if it 
finds another loadrt for the same module name, seems like a bug to me. 
Use the - sign in front of the desired module # so it doesn't try to 
invoke 2 separate lincurve.0's?  Even the first one if count=-0 to make 
lincurve.0 would work with the - sign scheme.

Thanks Andy.

-- 
Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page 

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


Re: [Emc-developers] running master on the pi, driving a lathe

2018-08-28 Thread Gene Heskett
On Tuesday 28 August 2018 15:07:25 andy pugh wrote:

> On Tue, 28 Aug 2018 at 20:05, andy pugh  wrote:
> > http://linuxcnc.org/docs/devel/html/man/man9/offset.9.html
> >
> > offset now has two update functions.
>
> (And it looks like it always did)
Probably
And other than a manpage, the entire 757 page Documentation.pdf I just 
spent 4 hours scanning, has only a 2 line mention of it. I'll go see if 
the wiki has anything on it.

Hell of a way to run a train.

-- 
Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page 

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


Re: [Emc-developers] running master on the pi, driving a lathe

2018-08-28 Thread Gene Heskett
On Tuesday 28 August 2018 15:05:28 andy pugh wrote:

> On Tue, 28 Aug 2018 at 19:48, Gene Heskett  
wrote:
> > addf offset.0 jog-thread #jog is a 10 millisecond thread
> >
> > but I get this:
> >
> > HAL: ERROR: function 'offset.0' not found
>
> http://linuxcnc.org/docs/devel/html/man/man9/offset.9.html
>
> offset now has two update functions.

I didn't see that, now where is the tutorial on how these are to be used?

Thanks Andy.

-- 
Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page 

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


Re: [Emc-developers] running master on the pi, driving a lathe

2018-08-28 Thread andy pugh
On Tue, 28 Aug 2018 at 20:05, andy pugh  wrote:

> http://linuxcnc.org/docs/devel/html/man/man9/offset.9.html
>
> offset now has two update functions.

(And it looks like it always did)

-- 
atp
"A motorcycle is a bicycle with a pandemonium attachment and is
designed for the especial use of mechanical geniuses, daredevils and
lunatics."
— George Fitch, Atlanta Constitution Newspaper, 1916

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


Re: [Emc-developers] running master on the pi, driving a lathe

2018-08-28 Thread andy pugh
On Tue, 28 Aug 2018 at 19:48, Gene Heskett  wrote:

> addf offset.0 jog-thread #jog is a 10 millisecond thread
>
> but I get this:
>
> HAL: ERROR: function 'offset.0' not found

http://linuxcnc.org/docs/devel/html/man/man9/offset.9.html

offset now has two update functions.

-- 
atp
"A motorcycle is a bicycle with a pandemonium attachment and is
designed for the especial use of mechanical geniuses, daredevils and
lunatics."
— George Fitch, Atlanta Constitution Newspaper, 1916

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


[Emc-developers] running master on the pi, driving a lathe

2018-08-28 Thread Gene Heskett
Greetings guys;

I note after this morning update to LCNC on the pi, that I'm getting a 
goodly number of screenfulls of axis reports. So I assume you are 
working on something.

Goes thru the whole alphabet of axis letters, checking. Doesn't seem to 
have a huge effect once its up and running.

But now I am attempting to addf the lincurve and offset modules, and 
failing for offset, as if it doesn't exist.

There is a line in the hal loadrt list that says:

loadrt  offset  count=1

which isn't a reportable error, but at the next mention in the addf 
stanza, where its addf:

addf offset.0 jog-thread #jog is a 10 millisecond thread

but I get this:

HAL: ERROR: function 'offset.0' not found
./hm2-7i90-stepper.hal:104: addf failed
Shutting down and cleaning up LinuxCNC...

Ideas?  I'm fresh out.

Thank guys.  And Jeff, many thanks for all the help and work on LinuxCNC 
for all these years.

-- 
Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page 

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers