its regsvr32 without the "/r", i suppose.

in an admin console the registration seems to work. the J DLL Server (version 
3) type library shows up in visual studio with file version 805. (the j804 one 
showed file version 701.)

however selecting it gives an error: "A reference to 'J DLL Server (version 3) 
Type Library' could not be added. Could not register the ActiveX type library 
'C:\Program Files\j805\bin\j.dll'.

the same thing works without any problem with j804. why?


Sent from my iPhone

> On 13 Apr 2017, at 19:22, bill lam <[email protected]> wrote:
> 
> typo, regsvr32
> 
>> On 14 Apr, 2017 7:21 am, "bill lam" <[email protected]> wrote:
>> 
>> jdllserver should work for all versions. try open an admin command prompt
>> at bin folder and type
>> regvsr32 /r j.dll
>> 
>> On 14 Apr, 2017 6:17 am, "Herbert Weissenbaeck // Privat" <
>> [email protected]> wrote:
>> 
>> On my Windows 10 machine J805 fails to register as a COM Server.
>> 
>> When I use jreg.cmd under 804 I get a "J DLL Server (version 3) Type
>> Library" in the kist of available Type Libraries in MS Visual Studio.
>> 
>> When I do the same with J805, no type library is registered.
>> 
>> Is this a bug or a feature? I would prefer working with 805 over 804.
>> 
>> Any hints/fixes?
>> 
>>> On 13 Apr 2017, at 16:23, 'Bo Jacoby' via Programming <
>> [email protected]> wrote:
>>> 
>>> Hi Louis.
>>> Thanks for asking. I regret not knowing the answer.
>>> An ordinal fraction is like an array in J, with minor differences.
>>>  - Arrays have names. Ordinal fractions have numbers.
>>>  - An array has a finite number of dimensions. An ordinal fraction has
>> an infinite number of dimensions.
>>>  - Arrays may have different shapes. All ordinal fractions have the
>> same shape: 9 9 9 9 . . .
>>>  - Arrays have zero-origin indexing (0 1 . . .  n). Ordinal fractions
>> have one-origin indexing (1 2 3 4 5 6 7 8 9).
>>> 
>>>  - Arrays have elements. Ordinal fractions do not have elements.
>>>  - Arrays may have subarrays. All ordinal fractions have subordinate
>> ordinal fractions.
>>>  - Array elements contain data. Any ordinal fraction may contain a data
>> element.
>>> Ordinal fractions were invented (by me) in 1980, but have had limited
>> dissemination so far. I made programs in fortran and pascal and basic for
>> manipulating ordinal fraction files, but I have not managed to do it in J.
>> The programs were general, because the logic is in the data file and not in
>> the program. I have been alone doing this.
>>> Thanks! Bo.
>>> 
>>> 
>>> 
>>> 
>>>   Den 20:08 torsdag den 13. april 2017 skrev Louis de Forcrand <
>> [email protected]>:
>>> 
>>> 
>>> Hi Bo,
>>> This is cool.
>>> 
>>> As for the way you suggest using it here, isn't it equivalent to
>> (without the first six rows of your data):
>>> 
>>> (~.@[ ,. +//.)/@|:
>>> ?
>>> 
>>> Louis
>>> 
>>>> On 12 Apr 2017, at 21:57, 'Bo Jacoby' via Programming <
>> [email protected]> wrote:
>>>> 
>>>> Hi Joe!
>>>> My favorite datastructure is ORDINAL FRACTIONS - the algebra of data
>>>> 
>>>> |
>>>> |
>>>> |
>>>> |  |    |
>>>> 
>>>>  |
>>>> 
>>>>  |
>>>> |
>>>> |    |
>>>> ORDINAL FRACTIONS - the algebra of data
>>>> This paper was submitted to the 10th World Computer Congress, IFIP 1986
>> conference, but rejected by the referee....  |  |
>>>> 
>>>>  |
>>>> 
>>>>  |
>>>> 
>>>> 
>>>> Your data are coded like this
>>>> 10 Joe
>>>> 20 Bob
>>>> 30 Jane
>>>> 01 blue
>>>> 02 red
>>>> 03 purple
>>>> 11 1
>>>> 11 -1
>>>> 11 1
>>>> 22 1
>>>> 22 1
>>>> 22 3
>>>> 22 -1
>>>> 22 -1
>>>> 33 5
>>>> 33 -2
>>>> 33 2
>>>> (Written with double CRs because the mail program has a history of
>> deleting my CRs).
>>>> Summation gives the result
>>>> 10 Joe
>>>> 20 Bob
>>>> 30 Jane
>>>> 01 blue
>>>> 02 red
>>>> 03 purple
>>>> 11 1
>>>> 22 3
>>>> 
>>>> 33 5
>>>> I have not done the summation in J, but I'd like to do it.
>>>> Perhaps this helps you.
>>>> Bo.
>>>> 
>>>> 
>>>> 
>>>>    Den 0:04 torsdag den 13. april 2017 skrev chris burke <
>> [email protected]>:
>>>> 
>>>> 
>>>> Incidentally, for production code, I suggest starting by removing any
>> sales
>>>> not matched in returns and vice versa, so that the matching algorithm is
>>>> applied only to potential matches.
>>>> 
>>>>> On Wed, Apr 12, 2017 at 2:53 PM, chris burke <[email protected]>
>> wrote:
>>>>> 
>>>>> Great.
>>>>> 
>>>>> In case you need more complicated handling of the "gray area"
>>>>> transactions, I believe they would be relatively few in number, so
>> most of
>>>>> the time you could do the matching efficiently, then check for any keys
>>>>> with returns preceding sales. For those, setting aside the first such
>>>>> return and repeating should clear them quickly.
>>>>> 
>>>>> Timing should be well under 1 second for a million records.
>>>>> 
>>>>>> On Wed, Apr 12, 2017 at 1:57 PM, Joe Bogner <[email protected]>
>> wrote:
>>>>>> 
>>>>>> Just for completeness, I added a line that incorporates the sequence
>> check
>>>>>> into the cancel logic. Works great
>>>>>> 
>>>>>> NB. hui progressive index
>>>>>> NB. http://code.jsoftware.com/wiki/Essays/Progressive_Index-Of
>>>>>> oc=: i.~ (] - {) /:@/:
>>>>>> pi=: #@[ ({. i.&(,.oc) }.) [ i. ,
>>>>>> 
>>>>>> NB. argument is 3-col table of seq,key,qty
>>>>>> NB. result is the unmatched transactions
>>>>>> matchtrans=: 3 : 0
>>>>>> msk=. 0<{:"1 y
>>>>>> sales=. msk#y
>>>>>> returns=. (-.msk)#y
>>>>>> ndx=. (}."1 sales) pi | }."1 returns
>>>>>> cancels=. ndx<#sales
>>>>>> NB. ensure cancel is after sale
>>>>>> cancels =. cancels *. (({."1 (<<(cancels)#ndx){sales) < ({."1
>>>>>> (cancels#returns)))
>>>>>> ((<<<cancels#ndx){sales),(-.cancels)#returns
>>>>>> )
>>>>>> 
>>>>>> 
>>>>>>> On Wed, Apr 12, 2017 at 4:14 PM, Joe Bogner <[email protected]>
>> wrote:
>>>>>>> 
>>>>>>> Chris, this looks promising. Thanks for sharing. It's nearly instant
>> on
>>>>>> a
>>>>>>> million rows.
>>>>>>> 
>>>>>>> Which row had a return before a transaction? seq 10 was an example
>> of a
>>>>>>> partial return. The hypothetical customer returned 2 out of the 5
>>>>>> purchased
>>>>>>> prior. I added that example since technically per the original spec
>> it
>>>>>>> wouldn't be cancelled out in this pass.  It's a gray area so I may be
>>>>>> able
>>>>>>> to use this approach, especially since I don't see how to incorporate
>>>>>> the
>>>>>>> time element into the progressive index.
>>>>>>> 
>>>>>>> Thanks again
>>>>>>> 
>>>>>>> 
>>>>>>> On Wed, Apr 12, 2017 at 3:52 PM, chris burke <[email protected]>
>>>>>> wrote:
>>>>>>> 
>>>>>>>> This might be done by comparing matrices of sales and returns. The
>>>>>>>> function
>>>>>>>> below seems to be close to what you want. It doesn't exactly match
>> your
>>>>>>>> example, but your example has cases where returns are made before
>> the
>>>>>>>> transactions. Was this intentional?
>>>>>>>> 
>>>>>>>> The code should run faster than a looping solution.
>>>>>>>> 
>>>>>>>> Code:
>>>>>>>> 
>>>>>>>> NB. hui progressive index
>>>>>>>> NB. http://code.jsoftware.com/wiki/Essays/Progressive_Index-Of
>>>>>>>> oc=: i.~ (] - {) /:@/:
>>>>>>>> pi=: #@[ ({. i.&(,.oc) }.) [ i. ,
>>>>>>>> 
>>>>>>>> NB. argument is 3-col table of seq,key,qty
>>>>>>>> NB. result is the unmatched transactions
>>>>>>>> matchtrans=: 3 : 0
>>>>>>>> msk=. 0<{:"1 y
>>>>>>>> sales=. msk#y
>>>>>>>> returns=. (-.msk)#y
>>>>>>>> ndx=. (}."1 sales) pi | }."1 returns
>>>>>>>> cancels=. ndx<#sales
>>>>>>>> ((<<<cancels#ndx){sales),(-.cancels)#returns
>>>>>>>> )
>>>>>>>> 
>>>>>>>> Example:
>>>>>>>> 
>>>>>>>>    dat=: ".;._2 (0 : 0)
>>>>>>>> 1 1 1
>>>>>>>> 2 1 _1
>>>>>>>> 3 1 1
>>>>>>>> 4 2 1
>>>>>>>> 5 2 1
>>>>>>>> 6 2 3
>>>>>>>> 7 2 _1
>>>>>>>> 8 2 _1
>>>>>>>> 9 3 5
>>>>>>>> 10 3 _2
>>>>>>>> 11 3 2
>>>>>>>> )
>>>>>>>> 
>>>>>>>>    matchtrans dat
>>>>>>>> 3 1 1
>>>>>>>> 6 2 3
>>>>>>>> 9 3 5
>>>>>>>> 
>>>>>>>> 
>>>>>>>> On Wed, Apr 12, 2017 at 9:35 AM, Joe Bogner <[email protected]>
>>>>>> wrote:
>>>>>>>> 
>>>>>>>>> I have a problem I'm trying to solve in different languages. I
>> have a
>>>>>>>>> solution in SQL and also in kdb which largely resembles the SQL
>>>>>>>> solution.
>>>>>>>>> I'm curious what a J solution would look like. More specifically,
>> I'm
>>>>>>>>> interested in picking the brains of others here to see if this type
>>>>>> of
>>>>>>>>> problem can be solved without looping (some form of scan?).
>>>>>>>>> 
>>>>>>>>> EDIT: Initially I wrote this up thinking the J solution would
>>>>>> difficult,
>>>>>>>>> but it was actually fairly straightforward -- about 15 minutes, but
>>>>>>>> still
>>>>>>>>> would like to see if there are alternatives. If nothing else, maybe
>>>>>> an
>>>>>>>>> interesting problem to share.
>>>>>>>>> 
>>>>>>>>> Example data:
>>>>>>>>> 
>>>>>>>>> A store has a transaction log with a sequence for each transaction.
>>>>>> The
>>>>>>>>> transaction log records a key for a unique customer/item
>> combination.
>>>>>>>> The
>>>>>>>>> transaction log records how many units were purchased or returned.
>>>>>>>>> 
>>>>>>>>> Goal:
>>>>>>>>> Attempt to match up related transactions and cancel out instances
>>>>>> when
>>>>>>>> the
>>>>>>>>> customer/item combination is returned at the same quantity as a
>>>>>> previous
>>>>>>>>> transaction
>>>>>>>>> 
>>>>>>>>> Examples:
>>>>>>>>> 
>>>>>>>>> Joe buys 1 blue pen, which is defective, then returns the 1
>> defective
>>>>>>>> blue
>>>>>>>>> pen, then buys another blue pen. EXPECTED: cancel out first two
>>>>>>>>> transactions and leave the the last one for 1 pen
>>>>>>>>> 
>>>>>>>>> Bob buys 2 red pens in two separate transactions. He then buys 3
>>>>>> more.
>>>>>>>> He
>>>>>>>>> returns the first two purchases as two separate return
>> transactions.
>>>>>>>>> EXPECTED: cancel out all transactions except the one for qty 3
>>>>>>>>> 
>>>>>>>>> Jane buys 5 purple pens and subsequently returns two of them. She
>>>>>> buys
>>>>>>>> two
>>>>>>>>> more. EXPECTED: No transactions match exactly, so nothing is
>>>>>> cancelled
>>>>>>>> out
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> Data:
>>>>>>>>> 
>>>>>>>>> data=: 0 : 0
>>>>>>>>> seq key qty
>>>>>>>>> 1 1 1
>>>>>>>>> 2 1 _1
>>>>>>>>> 3 1 1
>>>>>>>>> 4 2 1
>>>>>>>>> 5 2 1
>>>>>>>>> 6 2 3
>>>>>>>>> 7 2 _1
>>>>>>>>> 8 2 _1
>>>>>>>>> 9 3 5
>>>>>>>>> 10 3 _2
>>>>>>>>> 11 3 2
>>>>>>>>> )
>>>>>>>>> tbl =: ,. ' ' cut every cutLF data
>>>>>>>>> 'seqs keys qtys' =: |: ". every }. tbl
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> Goal:
>>>>>>>>> 
>>>>>>>>> goals =: 0 : 0
>>>>>>>>> 
>>>>>>>>> goal
>>>>>>>>> 
>>>>>>>>> cancelled
>>>>>>>>> 
>>>>>>>>> credit
>>>>>>>>> 
>>>>>>>>> ok
>>>>>>>>> 
>>>>>>>>> cancelled
>>>>>>>>> 
>>>>>>>>> cancelled
>>>>>>>>> 
>>>>>>>>> ok
>>>>>>>>> 
>>>>>>>>> credit
>>>>>>>>> 
>>>>>>>>> credit
>>>>>>>>> 
>>>>>>>>> ok
>>>>>>>>> 
>>>>>>>>> ok
>>>>>>>>> 
>>>>>>>>> ok
>>>>>>>>> 
>>>>>>>>> )
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> tbl,.(cutLF goals)
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> |seq|key|qty|goal |
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> |1 |1 |1 |cancelled|
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> |2 |1 |_1 |credit |
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> |3 |1 |1 |ok |
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> |4 |2 |1 |cancelled|
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> |5 |2 |1 |cancelled|
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> |6 |2 |3 |ok |
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> |7 |2 |_1 |credit |
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> |8 |2 |_1 |credit |
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> |9 |3 |5 |ok |
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> |10 |3 |_2 |ok |
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> |11 |3 |2 |ok |
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> One approach:
>>>>>>>>> 
>>>>>>>>> applycredits =: 3 : 0
>>>>>>>>> 
>>>>>>>>> goals=.(<'goal')
>>>>>>>>> 
>>>>>>>>> creditids=.0
>>>>>>>>> 
>>>>>>>>> for_i. (i. # seqs) do.
>>>>>>>>> 
>>>>>>>>>  key=.i{keys
>>>>>>>>> 
>>>>>>>>>  seq=.i{seqs
>>>>>>>>> 
>>>>>>>>>  qty=.i{qtys
>>>>>>>>> 
>>>>>>>>>  nextcredit =.| {. qtys #~ ((key=keys)*(seqs>seq)*(qtys<0))
>>>>>>>>> 
>>>>>>>>>  if. nextcredit = qty do.
>>>>>>>>> 
>>>>>>>>>  goals=.goals,<'cancelled'
>>>>>>>>> 
>>>>>>>>>  creditids =. creditids, seqs #~ ((key=keys)*(seqs>seq)*(qtys<0))
>>>>>>>>> 
>>>>>>>>>  elseif. creditids e.~ seq do.
>>>>>>>>> 
>>>>>>>>>    goals=.goals,<'credit'
>>>>>>>>> 
>>>>>>>>>  elseif. do.
>>>>>>>>> 
>>>>>>>>>    goals=.goals,<'ok'
>>>>>>>>> 
>>>>>>>>> end.
>>>>>>>>> 
>>>>>>>>> end.
>>>>>>>>> 
>>>>>>>>> goals
>>>>>>>>> 
>>>>>>>>> )
>>>>>>>>> 
>>>>>>>>> tbl ,. ( applycredits 0 )
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> |seq|key|qty|goal |
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> |1 |1 |1 |cancelled|
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> |2 |1 |_1 |credit |
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> |3 |1 |1 |ok |
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> |4 |2 |1 |cancelled|
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> |5 |2 |1 |cancelled|
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> |6 |2 |3 |ok |
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> |7 |2 |_1 |credit |
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> |8 |2 |_1 |credit |
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> |9 |3 |5 |ok |
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> |10 |3 |_2 |ok |
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> |11 |3 |2 |ok |
>>>>>>>>> 
>>>>>>>>> +---+---+---+---------+
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> (cutLF goals) -: ( applycredits 0 )
>>>>>>>>> 
>>>>>>>>> 1
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> thanks for any input
>>>>>>>>> ------------------------------------------------------------
>>>>>> ----------
>>>>>>>>> For information about J forums see http://www.jsoftware.com/forum
>>>>>> s.htm
>>>>>>>> ------------------------------------------------------------
>> ----------
>>>>>>>> For information about J forums see http://www.jsoftware.com/forum
>> s.htm
>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>> ------------------------------------------------------------
>> ----------
>>>>>> For information about J forums see http://www.jsoftware.com/forum
>> s.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

Reply via email to