Robert Cemper · Feb 21, 2022 go to post

Sorry. it just turned out that sharing across namespaces doesn't (yet?) work with embedded Python

Robert Cemper · Feb 21, 2022 go to post

I just verified that neither class nor routing mapping works with embedded Python.
Not even the elementary trick to have it as a %Z* class in %SYS.
This applies also to 2022.1 preview. The BUG is logged at WRC.
I share your disappointment.

Robert Cemper · Feb 20, 2022 go to post

Hello Peter,
Like you, I have an > 40-year history with MUMPS dating back before DSM-11.
Not every implementation of the global storage was effíent (no names, no finger-pointing)
What you see today in IRIS is the result of continuous effort on improving performance
and storage efficiency.
In past, the size of a physical disk was the limit. Today with virtual storage systems the
limit is set only by the file system used. This is a fact that InterSystems lives with since "ever". 
A word concerning global efficiency:
Multiple experiences over years showed me that the space consumption with IRIS and 
its predecessor Caché was always significantly lower than with the various source  DBs
I was invited to migrate.  With Sybase, it was rather more impressive than with others.
The immediate consequence of this high efficient storage technology is the gain in speed.
Also with the most modern technologies, there is still a transfer between persistent 
storage  (aka. disk) and memory.  And the less you have to transfer the faster you are.
 
Finally, welcome to this society!
Robert
 

Robert Cemper · Feb 20, 2022 go to post

But be aware to have the method SetNamespace available also the new target namespace to be able to return !
So you either map the class to Namespace %All,
or name the class %ZEmbedded.Utils or similar,  to make it available across all namespaces.

Robert Cemper · Feb 18, 2022 go to post

I couldn't identify in my examples any $LB(),$LI(), $LV,$LL()  like feature.
- In the mixed PY/ISOS example I just called from PY a method in ISOS [ = InterSystems ObjectScrtipt]
- in the PY pure I kept the binary string as found and reloaded it the same way.
  

Robert Cemper · Feb 18, 2022 go to post

AS you push on "nothing in memory" which is not related at all to INDIRECTION 
I have streamlined your code to not leave any traces in memory.


ClassMethod PPG() {set TABLES(0)="EVEN",TABLES(1)="ODD"kill ^||Arturofor i=1:1:100 set ^||Arturo(TABLES((i#2)),i)=i set evenTotal=0set i="" if $D(^||Arturo("EVEN",0))for  set i=$ORDER(^(i),1,val) QUIT:i=""  if $i(evenTotal,val) zwrite evenTotal kill ^||Arturo QUIT}

OLÉ

Robert Cemper · Feb 17, 2022 go to post

just do it in a classMethod in Objectscript
don't forget to return to your original namespace to find where you came from

Robert Cemper · Feb 17, 2022 go to post

Which evidently proves that you have  to chase a network performance  problem   ( !! REMOTELY !!)
and not a problem in the code of the API.

Robert Cemper · Feb 17, 2022 go to post

Next variant

ClassMethod Indirection() [  PublicList = (ODD, EVEN) ]


or using %EVEN,%ODD instead of EVEN, ODD

Robert Cemper · Feb 14, 2022 go to post

It should be sufficient to add this to init:script

set user=##class(Security.Users).%OpenId("unknownuser")
do user.Roles.Insert("%All")
do user.%Save()
 ;;; just for comfort
set smp=##class(Security.Applications).%OpenId("/csp/sys")
set smp.AutheEnabled=64
do smp.%Save()

set

Robert Cemper · Feb 9, 2022 go to post

FOR loop does not accept a quit with argument.

ERROR: CodeGolf.CHK.cls(7) :QUIT with arguments not allowed here c

but return is 5 chars more 

Robert Cemper · Feb 6, 2022 go to post

possible but not likely:  your friendly WIN Firewall blocks port 1972 in both directions)

Robert Cemper · Feb 6, 2022 go to post

You could check in mgmt Portal  MEMORY at the Bottom Super server Port
The next chance is that you run out of licenses. Also available in MgmPortal.  
(CSP/ZEN can be a huge license eater)

Robert Cemper · Feb 6, 2022 go to post

#1
Caché Studio can't access IRIS for version reasons. Reverse IRIS studio can sometimes.
Better run separate versions.
#2
Studio requires access to SuperServerPort.  Actual 1972 previous was 51773.
if your IRIS runs in a Docker Container check the port mapping .    

Robert Cemper · Feb 3, 2022 go to post

Big THANKS to the whole community for the interest and the trust in my contribution,
Not to forget to thank the excellent support team and the fruitful cooperation within the community!

Robert Cemper · Feb 2, 2022 go to post

this works unlimited but has no exit if none unmatched found
method length = 64,
and it shows only the abs. value  38 instead of -38

y=$lfs(o) i=1:1 a=$lf(y,i),b=$lf(y,-i) ret:a+b&'(a*b) i

Robert Cemper · Feb 2, 2022 go to post

but it  fails if the unpaired is < -9 as in the ref.example

"-110,110,-38,-38,-62,62,-38,-38,-38"    and doesn't stop

Robert Cemper · Feb 2, 2022 go to post

size = 65   return 0 if all pared;   { 0 is excluded for pairing }

ClassMethod Solve(o As %String) As %Integer
{
 s y=$lfs(o) f i=1:1:$ll(y) s c=$li(y,i) ret:'$lf(y,-c) c
 q 0
}