Sorry. it just turned out that sharing across namespaces doesn't (yet?) work with embedded Python
- Log in to post comments
Sorry. it just turned out that sharing across namespaces doesn't (yet?) work with embedded Python
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.
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
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.
Thank you for raising and extending the subject again
that got not much echo from my article
published in Sep.2021
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.
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É
just do it in a classMethod in Objectscript
don't forget to return to your original namespace to find where you came from
BINGO ! You are right!
Saludos,
Which evidently proves that you have to chase a network performance problem ( !! REMOTELY !!)
and not a problem in the code of the API.
Next variant
ClassMethod Indirection() [ PublicList = (ODD, EVEN) ]
or using %EVEN,%ODD instead of EVEN, ODD
to allow Indirection in your case or eXecute to work, you have to set
ClassMethod Indirection() [ ProcedureBlock=0 ] see: https://docs.intersystems.com/iris20212/csp/docbook/DocBook.UI.Page.cls?KEY=ROBJ_method_procedureblockand my related article: https://community.intersystems.com/post/summary-local-variable-scoping
upgrade version ?
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
Thanks for having the :preview
That's comfort
Online Demo added
Online Demo added:
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
possible but not likely: your friendly WIN Firewall blocks port 1972 in both directions)
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)
#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 .
closed
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!
GREAT ! covers all situations.
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
s y=$lfs(o) f i=1:1 s a=$lf(y,i),b=$lf(y,-i) ret:a+b&'(a*b) i
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
NICE. but runs forever if there is no unpared.
And why starting with -9 ?
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
}