I think it is better to set an absolute path of BINPATH because the working directory may change after booting.
BTW what j user manual suggested was that you can combine the 2 run_jcmd together. On Jul 23, 2014 12:53 AM, "Jon Hough" <[email protected]> wrote: > I think I have sorted it, by calling > > run_jcmd("[ARGV_z_=:' '[BINPATH_z_=:'j801/bin'") > run_jcmd("(3 : '0!:0 y')<BINPATH,'/profile.ijs'[ARGV_z_[BINPATH_z_") > Before loading my scripts.I'm going to confess my absolute ignorance as to > why it works. I put ARGV_Z_ as an empty string, and it seems to not have a > problem. I did not explicitly load stdlib.ijs or any other core scripts in > main or util directories. > I've tested it with one of my J scripts and I can call its verbs without > fuss. > I hope that it would be possible to put this on the J wiki as getting a > Python front end, or at least a Python -> J connection, would probably be > of a lot of interest to many J users. > > > > Date: Tue, 22 Jul 2014 08:11:24 +0800 > > From: [email protected] > > To: [email protected] > > Subject: Re: [Jprogramming] Calling j.dll from python > > > > This alone may fail because profile.ijs expected 2 predefined nouns and > the > > front end is responsible to define them. please see j user manual. > > > > Alternatively, one may create a standalone script which contains > everything > > it needs. > > On Jul 22, 2014 12:18 AM, "Joe Bogner" <[email protected]> wrote: > > > > > Hi Jon, > > > > > > load comes from stdlib.ijs[1] > > > > > > since load is not defined, you can't call it > > > > > > you need to use 0!:0 > > > > > > Try > > > > > > In [18]: J.JDo(jt, "0!:0 > > > <'c:/users/jbogner/downloads/j801_win32/bin/profile.ijs'") > > > Out[18]: 3 > > > > > > > > > [1] - http://www.jsoftware.com/wsvn/base8/trunk/main/main/stdlib.ijs > > > > > > > > > On Mon, Jul 21, 2014 at 11:36 AM, Jon Hough <[email protected]> > wrote: > > > > > > > I apologize, but I still cannot get my script loaded from Python. > > > > Making the connection: > > > > cdll.LoadLibrary("j801/bin/libj.so") > > > > j = CDLL("j801/bin/libj.so") > > > > p=j.JInit() > > > > run_jcmd("load 'j801/bin/profile.ijs' ") #file exists in this > location > > > > run_jcmd("load 'j801-user/temp/myscript.ijs' ") #file exists > > > > > > > > None of the public verbs from my script are callable, rying to call a > > > verb > > > > after loading the script and then trying to get the result gives a > None > > > > response, in python, indicating nothing was returned. > > > > I am also unsure specifically in the J manual where I am supposed to > be > > > > looking. I've read through a few different pages but cannot find > what it > > > is > > > > I am missing. > > > > If anyone can point me in the right direction, I'd be very grateful. > > > > > Date: Sat, 19 Jul 2014 23:50:21 +0800 > > > > > From: [email protected] > > > > > To: [email protected] > > > > > Subject: Re: [Jprogramming] Calling j.dll from python > > > > > > > > > > I suspect you failed to load profile.ijs either. The J user > > > > > manual covers the details of how J starts. > > > > > > > > > > Сб, 19 июл 2014, Jon Hough написал(а): > > > > > > I didn't load profile.ijs. I just did a quick try, loading > > > > profile.ijs, and the same fail occured.My python script is sitting > in my > > > > home directory, I am using absolute paths in the python scrip to > call my > > > > scripts. I'm currently working in Linux. > > > > > > The reason I am pretty sure my script didn't load is that I > tried to > > > > call a verb (public verb) from the script, with an argument and the > > > output > > > > was None, None, None, None, i.e. no output (this is still using the > > > python > > > > function from the script in the link from before). > > > > > > I am going to give it another try tomorrow. > > > > > > Thanks. > > > > > > > > > > > > > Date: Sat, 19 Jul 2014 18:08:19 +0800 > > > > > > > From: [email protected] > > > > > > > To: [email protected] > > > > > > > Subject: Re: [Jprogramming] Calling j.dll from python > > > > > > > > > > > > > > Did you load profile.ijs during booting? > > > > > > > Where is your working directory? > > > > > > > How do you verify script was loaded? > > > > > > > > > > > > > > Сб, 19 июл 2014, Jon Hough написал(а): > > > > > > > > Thanks Bill et al. > > > > > > > > I think I have the beginnings of a workable connection. I can > > > call > > > > JDo and JGetM now, thanks to Jun Kim's script (with a couple of > > > > modifications). > > > > > > > > One thing that is still failing, is trying to load a script > > > > through jDLL. > > > > > > > > e.g. (added to previous python script) > > > > > > > > run_jcmd("load 'j801-user/temp/myscript.ijs' ") NB. DOS NOT > SEEM > > > > TO LOAD > > > > > > > > This is my main problem at the moment, as I really want to > load > > > my > > > > script and call its verbs through a Python interface and display its > > > > results in Python/TKinter. > > > > > > > > > > > > > > > > > Date: Sat, 19 Jul 2014 14:04:32 +0800 > > > > > > > > > From: [email protected] > > > > > > > > > To: [email protected] > > > > > > > > > Subject: Re: [Jprogramming] Calling j.dll from python > > > > > > > > > > > > > > > > > > There is another j ide written in javascript and python. > search > > > > > > > > > for qjide in jwiki and you may find something useful. > > > > > > > > > > > > > > > > > > Сб, 19 июл 2014, Jon Hough написал(а): > > > > > > > > > > Well, my plam, which may be stupid, is to create a > pythin, > > > > tkinter UI and call j from this. > > > > > > > > > > > > > > > > > > > > --- Original Message --- > > > > > > > > > > > > > > > > > > > > From: "Devon McCormick" <[email protected]> > > > > > > > > > > Sent: July 19, 2014 1:01 PM > > > > > > > > > > To: "J-programming forum" <[email protected]> > > > > > > > > > > Subject: Re: [Jprogramming] Calling j.dll from python > > > > > > > > > > > > > > > > > > > > For what you want to do, could you do it the other way > > > around: > > > > call Python > > > > > > > > > > from J? Or, alternatively, invoke J on a command-line > from > > > > Python? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Fri, Jul 18, 2014 at 10:31 PM, Jon Hough < > > > > [email protected]> wrote: > > > > > > > > > > > > > > > > > > > > > I slightly modified the python script in the link (I > > > removed > > > > references to > > > > > > > > > > > odedell, whatever that is, and I called > > > > thecdll.LoadLibrary(...) > > > > > > > > > > > Here are my very minor edits: > > > > > > > > > > > > > > > > > > > > > > import operatorfrom ctypes import * > > > > > > > > > > > IDEN="jcmd_python" > > > > > > > > > > > def mulall(arr): return > reduce(operator.mul,arr,1)def > > > > run_jcmd( js): > > > > > > > > > > > j.JDo(p,IDEN+'=:'+js)def > get_result(jdll,variable=IDEN): > > > > > > > > > > > pi=[pointer(c_int()) for _ in xrange(4)] > > > > j.JGetM(jdll,variable,*pi) > > > > > > > > > > > #datatype,rank, *shape, *value > type=pi[0].contents.value > > > > if type==0: > > > > > > > > > > > #error return None,None,None,None > > > > rank=pi[1].contents.value > > > > > > > > > > > > > > shape=list((c_int*rank).from_address(pi[2].contents.value)) > > > > > > > > > > > flat_size=mulall(shape) > > > > > > > > > > > > > > > data=list((c_int*flat_size).from_address(pi[3].contents.value)) > > > return > > > > > > > > > > > type,rank,shape,resize(shape,data)def resize(shap,dat): > > > > shap=shap[:] > > > > > > > > > > > flat_size=mulall(shap) while len(shap)>1: > shd=[] > > > > start=0 > > > > > > > > > > > last_size=shap.pop() while > start<flat_size: > > > > > > > > > > > shd.append(dat[start:start+last_size]) > > > > start+=last_size > > > > > > > > > > > flat_size=len(shd) dat=shd else: > shd=dat > > > > return shd > > > > > > > > > > > cdll.LoadLibrary("j801/bin/libj.so")j = > > > > > > > > > > > CDLL("j801/bin/libj.so")p=j.JInit()run_jcmd("i. 3 > > > > > > > > > > > 3")type,rank,shape,data=get_result(p) #returns the last > > > > resultprint > > > > > > > > > > > shape,datarun_jcmd("abc=: i: 5")print > get_result(p,"abc") > > > > > > > > > > > > > > > > > > > > > > This worked! > > > > > > > > > > > I ran it and output: > > > > > > > > > > > [3, 3] [[0, 1, 2], [3, 4, 5], [6, 7, 8]](4, 1, [11], > [-5, > > > > -4, -3, -2, -1, > > > > > > > > > > > 0, 1, 2, 3, 4, 5]) > > > > > > > > > > > > > > > > > > > > > > Thanks! > > > > > > > > > > > > > > > > > > > > > > > Date: Fri, 18 Jul 2014 22:19:47 -0400 > > > > > > > > > > > > From: [email protected] > > > > > > > > > > > > To: [email protected] > > > > > > > > > > > > Subject: Re: [Jprogramming] Calling j.dll from python > > > > > > > > > > > > > > > > > > > > > > > > Jon - it's trickier than I thought. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > I have a partial implementation working that I can > tinker > > > > with tomorrow > > > > > > > > > > > > > > > > > > > > > > > > You need to use WinDLL on windows to get the calling > > > > convention right > > > > > > > > > > > > > > > > > > > > > > > > J = > > > > WinDLL("c:/users/jbogner/downloads/j801_win32/bin/j.dll") > > > > > > > > > > > > jt = J.JInit() > > > > > > > > > > > > J.JDo(jt, "A=:i.5") > > > > > > > > > > > > Out[34]: 0 > > > > > > > > > > > > > > > > > > > > > > > > see > > > > > > > > > > > > > > > > http://www.jsoftware.com/pipermail/programming/2013-November/033974.html > > > > > > > > > > > > for details on how to get the values. I have > modified the > > > > code to work > > > > > > > > > > > > with WinDLL and have something roughly working but > ran > > > out > > > > of time to > > > > > > > > > > > work > > > > > > > > > > > > on it more tonight > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Fri, Jul 18, 2014 at 7:54 PM, Jon Hough < > > > > [email protected]> wrote: > > > > > > > > > > > > > > > > > > > > > > > > > I am interested in calling J specifically from > Python, > > > > preferably on > > > > > > > > > > > Linux > > > > > > > > > > > > > and Windows (and Mac). > > > > > > > > > > > > > As Joe suggested, I've tried playing with jdll.ijs. > > > > > > > > > > > > > I still can't get JGetM to work, but I'll have > another > > > > bash at it later > > > > > > > > > > > > > today. > > > > > > > > > > > > > Thanks! > > > > > > > > > > > > > > > > > > > > > > > > > > > From: [email protected] > > > > > > > > > > > > > > Date: Sat, 19 Jul 2014 07:27:03 +0800 > > > > > > > > > > > > > > To: [email protected] > > > > > > > > > > > > > > Subject: Re: [Jprogramming] Calling j.dll from > python > > > > > > > > > > > > > > > > > > > > > > > > > > > > Set and get data using j.dll can be quite > involving. > > > > If you use > > > > > > > > > > > windows, > > > > > > > > > > > > > it is much easier you to use to ole/com interface, > > > > search jwiki for > > > > > > > > > > > more > > > > > > > > > > > > > info. Note that j8 only support the jdllserver > > > > interface. > > > > > > > > > > > > > > > > > > > > > > > > > > > > On 18.07.2014, at 23:05, Jon Hough < > > > > [email protected]> wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Thanks, > > > > > > > > > > > > > > > My test script, so far, is > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > from ctypes import * > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > cdll.LoadLibrary("j801/bin/libj.so") > > > > > > > > > > > > > > > j = CDLL("j801/bin/libj.so") > > > > > > > > > > > > > > > jt = j.JInit() > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > j.JDo(jt, "a =: 1") > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > a =j.JGetM( "a") > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > print a > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > This returns 4, even though I set a to be 1. > I'm > > > > assuming 4 is the > > > > > > > > > > > > > number of bytes returned (i.e. an int)??(By the > way, if > > > > I do > > > > > > > > > > > j.JGetM(jt, > > > > > > > > > > > > > "a") I get a seg fault.Regarding jdll.ijs, > > > unfortunately > > > > my J-skills > > > > > > > > > > > are > > > > > > > > > > > > > not powerful enough yet to make much sense of it: > > > > > > > > > > > > > > > jget=: 3 : 0cmd=. libj,' JGetM i x *c *x *x *x > > > *x''e > > > > p n t r s d'=. > > > > > > > > > > > > > cmd cd pJ,(,y);4#<,0if. e do. smoutput 'error > code: > > > > ',":e > > > > > > > > > > > > > return.end.(t,r,s) jfix d) > > > > > > > > > > > > > > > In particular > > > > > > > > > > > > > > > JGetM i x *c *x *x *x *x > > > > > > > > > > > > > > > is confusing. > > > > > > > > > > > > > > >> Date: Fri, 18 Jul 2014 10:53:44 -0400 > > > > > > > > > > > > > > >> From: [email protected] > > > > > > > > > > > > > > >> To: [email protected] > > > > > > > > > > > > > > >> Subject: Re: [Jprogramming] Calling j.dll from > > > > python > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >> JGetM is what you need, but I strongly suggest > > > > reviewing > > > > > > > > > > > > > > >> > > > > http://jsoftware.com/wsvn/addons/trunk/general/misc/jdll.ijs (or > > > > > > > > > > > > > your local > > > > > > > > > > > > > > >> version) to get a better understanding of how > > > > things work > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >> This part addresses your question: > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >> jget=: 3 : 0 > > > > > > > > > > > > > > >> cmd=. libj,' JGetM i x *c *x *x *x *x' > > > > > > > > > > > > > > >> 'e p n t r s d'=. cmd cd pJ,(,y);4#<,0 > > > > > > > > > > > > > > >> if. e do. > > > > > > > > > > > > > > >> smoutput 'error code: ',":e > > > > > > > > > > > > > > >> return. > > > > > > > > > > > > > > >> end. > > > > > > > > > > > > > > >> (t,r,s) jfix d > > > > > > > > > > > > > > >> ) > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >> On Fri, Jul 18, 2014 at 10:51 AM, Jon Hough < > > > > [email protected]> > > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>> Please ignore the last sentence from my > previous > > > > email. Copied > > > > > > > > > > > and > > > > > > > > > > > > > pasted > > > > > > > > > > > > > > >>> by accident. > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > > >>>> From: [email protected] > > > > > > > > > > > > > > >>>> To: [email protected] > > > > > > > > > > > > > > >>>> Date: Fri, 18 Jul 2014 15:50:41 +0100 > > > > > > > > > > > > > > >>>> Subject: Re: [Jprogramming] Calling j.dll > from > > > > python > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > >>>> Joe, thanks. Your suggestion seems to work. > > > > > > > > > > > > > > >>>> However JGets seems to not exist.How do I > then > > > > get the variable, > > > > > > > > > > > > > once > > > > > > > > > > > > > > >>> assigned? > > > > > > > > > > > > > > >>>> I tried to search through the .so/.dll for > "get" > > > > functions: > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > >>>> nm -g libj.so | grep Get > > > > > > > > > > > > > > >>>> Although jdll.ijs seems to contain jget, > when I > > > > tried to call > > > > > > > > > > > this > > > > > > > > > > > > > (in > > > > > > > > > > > > > > >>> Python) I get " undefined symbol: jget" > (with > > > > variations on > > > > > > > > > > > upper > > > > > > > > > > > > > and > > > > > > > > > > > > > > >>> lower cases) > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > >>>> and couldn't find a function that seemed to > get > > > > the > > > > > > > > > > > variables.Also > > > > > > > > > > > > > I'm > > > > > > > > > > > > > > >>> having trouble finding libj.dll > > > > > > > > > > > > > > >>>>> Date: Fri, 18 Jul 2014 10:36:06 -0400 > > > > > > > > > > > > > > >>>>> From: [email protected] > > > > > > > > > > > > > > >>>>> To: [email protected] > > > > > > > > > > > > > > >>>>> Subject: Re: [Jprogramming] Calling j.dll > from > > > > python > > > > > > > > > > > > > > >>>>> > > > > > > > > > > > > > > >>>>> JInit() returns the instance that you need > to > > > > invoke against > > > > > > > > > > > > > > >>>>> > > > > > > > > > > > > > > >>>>> see addons/general/misc/jdll.ijs > > > > > > > > > > > > > > >>>>> > > > > > > > > > > > > > > >>>>> jdo is defined as: > > > > > > > > > > > > > > >>>>> > > > > > > > > > > > > > > >>>>> jdo=: 3 : 0 > > > > > > > > > > > > > > >>>>> > > > > > > > > > > > > > > >>>>> (libj,' JDo i x *c') cd pJ, boxopen y > > > > > > > > > > > > > > >>>>> > > > > > > > > > > > > > > >>>>> ) > > > > > > > > > > > > > > >>>>> > > > > > > > > > > > > > > >>>>> > > > > > > > > > > > > > > >>>>> so I suspect you need to be passing that > > > pointer > > > > address with > > > > > > > > > > > > > python > > > > > > > > > > > > > > >>> too... > > > > > > > > > > > > > > >>>>> > > > > > > > > > > > > > > >>>>> > > > > > > > > > > > > > > >>>>> jt = j.JInit() > > > > > > > > > > > > > > >>>>> > > > > > > > > > > > > > > >>>>> j.JDo(jt, "x =: 3") > > > > > > > > > > > > > > >>>>> > > > > > > > > > > > > > > >>>>> > > > > > > > > > > > > > > >>>>> [untested] > > > > > > > > > > > > > > >>>>> > > > > > > > > > > > > > > >>>>> > > > > > > > > > > > > > > >>>>> > > > > > > > > > > > > > > >>>>> > > > > > > > > > > > > > > >>>>> > > > > > > > > > > > > > > >>>>> > > > > > > > > > > > > > > >>>>> On Fri, Jul 18, 2014 at 10:33 AM, Thomas > > > > Costigliola < > > > > > > > > > > > > > > >>> [email protected]> > > > > > > > > > > > > > > >>>>> wrote: > > > > > > > > > > > > > > >>>>> > > > > > > > > > > > > > > >>>>>> Bill, Jon, sorry if that suggestion did > not > > > > apply. I > > > > > > > > > > > remembered it > > > > > > > > > > > > > > >>> was a > > > > > > > > > > > > > > >>>>>> common pitfall when calling from C. Maybe > that > > > > is not the case > > > > > > > > > > > > > now. > > > > > > > > > > > > > > >>>>>> > > > > > > > > > > > > > > >>>>>> > > > > > > > > > > > > > > >>>>>> On Fri, Jul 18, 2014 at 10:29 AM, Jon > Hough < > > > > > > > > > > > [email protected]> > > > > > > > > > > > > > > >>> wrote: > > > > > > > > > > > > > > >>>>>> > > > > > > > > > > > > > > >>>>>>> My previous email was regarding Windows > (7 > > > > with J801) > > > > > > > > > > > > > > >>>>>>> I just tried to do the same in Ubuntu > (J801) > > > > > > > > > > > > > > >>>>>>> cdll.LoadLibrary("j801/bin/libj.so") > > > > > > > > > > > > > > >>>>>>> j = CDLL("j801/bin/libj.so")>>> > > > > j.JInit()158010848 > > > > > > > > > > > > > > >>>>>>> No idea what the above output means. Is > that > > > > the pointer > > > > > > > > > > > address > > > > > > > > > > > > > of > > > > > > > > > > > > > > >>>>>>> something? > > > > > > > > > > > > > > >>>>>>> And then: > > > > > > > > > > > > > > >>>>>>>>>> j.JDo("x =: 3")Segmentation fault > (core > > > > dumped) > > > > > > > > > > > > > > >>>>>>> And Python (2.7) crashed. > > > > > > > > > > > > > > >>>>>>> > > > > > > > > > > > > > > >>>>>>>> Date: Fri, 18 Jul 2014 22:09:28 +0800 > > > > > > > > > > > > > > >>>>>>>> From: [email protected] > > > > > > > > > > > > > > >>>>>>>> To: [email protected] > > > > > > > > > > > > > > >>>>>>>> Subject: Re: [Jprogramming] Calling > j.dll > > > > from python > > > > > > > > > > > > > > >>>>>>>> > > > > > > > > > > > > > > >>>>>>>> From which resource did you learn > that(not > > > > python)? It > > > > > > > > > > > should be > > > > > > > > > > > > > > >>> very > > > > > > > > > > > > > > >>>>>> out > > > > > > > > > > > > > > >>>>>>>> dated. > > > > > > > > > > > > > > >>>>>>>> On Jul 18, 2014 6:00 PM, "Jon Hough" < > > > > [email protected]> > > > > > > > > > > > > > > >>> wrote: > > > > > > > > > > > > > > >>>>>>>> > > > > > > > > > > > > > > >>>>>>>>> I am trying to call jdll.JDo from > python > > > but > > > > I get the > > > > > > > > > > > error > > > > > > > > > > > > > > >>> message, > > > > > > > > > > > > > > >>>>>>>>> access violation. > > > > > > > > > > > > > > >>>>>>>>> > > > > > > > > > > > > > > >>>>>>>>> Here is my python. > > > > > > > > > > > > > > >>>>>>>>> > > > > > > > > > > > > > > >>>>>>>>> Cdll.LoadLibrary(path to j.dll) > > > > > > > > > > > > > > >>>>>>>>> J =CDLL(path to j.dll) > > > > > > > > > > > > > > >>>>>>>>> > > > > > > > > > > > > > > >>>>>>>>> J.JDo("x =: i. 3") > > > > > > > > > > > > > > >>>>>>>>> > > > > > > > > > > > > > > >>>>>>>>> This gives am error. In fact any string > > > > gives the error. > > > > > > > > > > > > > > >>>>>>>>> > > > > > > > > > > > > > > >>>>>>>>> J.JGet doesnt seem to give errors, but > > > since > > > > I cannot set > > > > > > > > > > > any j > > > > > > > > > > > > > > >>>>>>> variables, > > > > > > > > > > > > > > >>>>>>>>> it is not easy to test. > > > > > > > > > > > > > > >>>>>>>>> > > > > > > > > > > > > > > >>>>>>>>> > > > > > > > > > > > > > > >>>>>> > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------------- > > > > > > > > > > > > > > >>>>>>>>> For information about J forums see > > > > > > > > > > > > > > >>>>>> http://www.jsoftware.com/forums.htm > > > > > > > > > > > > > > >>>>>>>>> > > > > > > > > > > > > > > >>>>>>>> > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------------- > > > > > > > > > > > > > > >>>>>>>> For information about J forums see > > > > > > > > > > > > > > >>> http://www.jsoftware.com/forums.htm > > > > > > > > > > > > > > >>>>>>> > > > > > > > > > > > > > > >>>>>>> > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------------- > > > > > > > > > > > > > > >>>>>>> For information about J forums see > > > > > > > > > > > > > > >>> http://www.jsoftware.com/forums.htm > > > > > > > > > > > > > > >>>>>>> > > > > > > > > > > > > > > >>>>>> > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------------- > > > > > > > > > > > > > > >>>>>> For information about J forums see > > > > > > > > > > > > > > >>> http://www.jsoftware.com/forums.htm > > > > > > > > > > > > > > >>>>>> > > > > > > > > > > > > > > >>>>> > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------------- > > > > > > > > > > > > > > >>>>> For information about J forums see > > > > > > > > > > > > > http://www.jsoftware.com/forums.htm > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------------- > > > > > > > > > > > > > > >>>> For information about J forums see > > > > > > > > > > > > > http://www.jsoftware.com/forums.htm > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------------- > > > > > > > > > > > > > > >>> For information about J forums see > > > > > > > > > > > > > http://www.jsoftware.com/forums.htm > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > > ---------------------------------------------------------------------- > > > > > > > > > > > > > > >> For information about J forums see > > > > > > > > > > > > > http://www.jsoftware.com/forums.htm > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------------- > > > > > > > > > > > > > > > For information about J forums see > > > > > > > > > > > http://www.jsoftware.com/forums.htm > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------------- > > > > > > > > > > > > > > For information about J forums see > > > > > > > > > > > http://www.jsoftware.com/forums.htm > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------------- > > > > > > > > > > > > > For information about J forums see > > > > http://www.jsoftware.com/forums.htm > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------------- > > > > > > > > > > > > For information about J forums see > > > > http://www.jsoftware.com/forums.htm > > > > > > > > > > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------------- > > > > > > > > > > > For information about J forums see > > > > http://www.jsoftware.com/forums.htm > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > Devon McCormick, CFA > > > > > > > > > > > > > > > ---------------------------------------------------------------------- > > > > > > > > > > For information about J forums see > > > > http://www.jsoftware.com/forums.htm > > > > > > > > > > > > > > > ---------------------------------------------------------------------- > > > > > > > > > > For information about J forums see > > > > http://www.jsoftware.com/forums.htm > > > > > > > > > > > > > > > > > > -- > > > > > > > > > regards, > > > > > > > > > ==================================================== > > > > > > > > > GPG key 1024D/4434BAB3 2008-08-24 > > > > > > > > > gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 > > > > > > > > > gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 > > > > > > > > > > > > > > ---------------------------------------------------------------------- > > > > > > > > > For information about J forums see > > > > http://www.jsoftware.com/forums.htm > > > > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------------- > > > > > > > > For information about J forums see > > > > http://www.jsoftware.com/forums.htm > > > > > > > > > > > > > > -- > > > > > > > regards, > > > > > > > ==================================================== > > > > > > > GPG key 1024D/4434BAB3 2008-08-24 > > > > > > > gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 > > > > > > > gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 > > > > > > > > > > > > ---------------------------------------------------------------------- > > > > > > > For information about J forums see > > > > http://www.jsoftware.com/forums.htm > > > > > > > > > > > > > > > ---------------------------------------------------------------------- > > > > > > For information about J forums see > > > http://www.jsoftware.com/forums.htm > > > > > > > > > > -- > > > > > regards, > > > > > ==================================================== > > > > > GPG key 1024D/4434BAB3 2008-08-24 > > > > > gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 > > > > > gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 > > > > > > ---------------------------------------------------------------------- > > > > > For information about J forums see > http://www.jsoftware.com/forums.htm > > > > > > > > > ---------------------------------------------------------------------- > > > > For information about J forums see > http://www.jsoftware.com/forums.htm > > > > > > > ---------------------------------------------------------------------- > > > For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
