go to post Robert Cemper · Sep 24 From Class Docs:• classmethod ExportAllClassesIndividual(dirname As %String = "", qspec As %String = "", ByRef errorlog As %String, Charset As %String = "", Package As %String = "*", SubDir As %Boolean = 0) as %Status Export all the classes as individual XML files to a directory. This method loops through all the classes, exporting each one as an individual XML file named after the classname to the directory dirname. If you specify a Package, then it exports only this package. If SubDir is true,, the method exports sub-packages as subdirectories. Now the directory is your list of classes and equal sizes of files might most likely mean identical content. Or you do a text compare
go to post Robert Cemper · Sep 24 You are right. $system.OBJ.Export~whatever is oriented to the Namespace BUT:There still seems to be no limitation to map a specific database fileto more than 1 namespace. e.g. USER and MERGER (here Read Only)Then $system.OBJ.Export~whatever takes what it finds in MERGER.It's quite a dirty approach and only meant for READING the code, therefore, ReadOnly In any case, it's safer just to copy the (most likely static) DB of interestand use it in MERGER
go to post Robert Cemper · Sep 24 A great overview !small add-on: at https://hub.docker.com/u/intersystemsdc you find actually 53 community-licensed packages
go to post Robert Cemper · Sep 22 Hi @Asaf Sinay It was just by accident that I completed my untypical use of DeepSee:After >12 years, I took some time to get in again.But I should say Documentation and Examples are excellent to get up to speed.👍
go to post Robert Cemper · Sep 22 Hi @John Hotalen Some docs Using the Lock Table to View and Delete Locks System-wide Also in Caché 2017 you should find a class docu of SYS.Lock (in %SYS) in IRIS the class is deployed, so no details BUT: ^LOCKTAB uses it internally to manage LOCKs. (sometimes hard to read) It's a good example of how to utilize the class SYS.Lock
go to post Robert Cemper · Sep 8 Maybe a problem to understand your expectations: In the browser, there runs HTML and JavaScript on the server side you have ObjectScript, MVbasic, TSQL, Python, ... What's your expectation ?
go to post Robert Cemper · Sep 8 short:certificates signaled some technical potential.in practice, social skills in service were more important
go to post Robert Cemper · Sep 5 Docker Windows Desktop Console helps me a lot to see what's in andto clean old unwanted containers, images, volumes(!!) from command line docker system prune is the way to go
go to post Robert Cemper · Sep 5 MIRROR in IRIS is a mirror just of globals: If you look for a general file mirror, it's a subject of storage sellers that make money with
go to post Robert Cemper · Sep 4 the PPG ^||... is deleted latest by termination or the partionthe ^mtemp* will be killed by reboot of IRIS.As both are not under your direct control better KILL it manuallyPPG ^||.. is more promising being bound to processas it has less risk of concurrency issues
go to post Robert Cemper · Sep 4 Read the class code of %Stream.TmpCharacter Method %OnNew()and you see ^CacheStream is the default if no other Global uses in %New, example: ....set stream=##class(%Stream.TmpCharacter).%New("^||temp.Stream")would store it in a process private global (NO JOURNAL!) just during your sessionor ^mtemp,Stream writes it to IRISTEMP also without JOURNAL:
go to post Robert Cemper · Sep 2 When I started in business, quite back in the last century, certifications were not common practice.Only certificates from European Universities, with just a few from IBM were accepted.Recruiters were impressed, but managers were more sceptical about. Having collected a bunch of certificates, this was some disappointment to me. My later boss explained it to me: The certificates show that you are strong in learning and delivering testsHere, we have to provide fast and stable code. This counts.I had a Dr. Math. from the University that, after 4 weeks of training, was not able to write 17 correct running lines of assembly language.What worth does its certificate have for me ? This was 53 years ago, and I decided on less noise on paper and more work success Times are different today
go to post Robert Cemper · Aug 26 Hiked/enjoyed nature Yes Traveled somewhere new Yes Watched a movie or series Yes Read a book Yes, many ~ 1500 pages Earned points and redeemed a reward on Global Masters 🏆 Earned points but didn't redeem Spent time with family or friends Yes Moved to a different location of living Yes Did a lot of manual work to enable that move Yes
go to post Robert Cemper · Aug 26 Correct! |"NS"| is not allowed as a Class reference.BUT: It is a valid syntax for .INT/.MAC Rooutine do label^|"NS"|routineAnd %objlasterror never shows the class, but the generated .int or .obj you run.It's rather a comfort of the COS compiler that your class name matches the .int
go to post Robert Cemper · Aug 16 I'm fully in Sync with @Dmitry Maslennikov Uniqueness is the TOP priority. Though you can switch it off for rare cases by the class parameter MANAGEDEXTENT. Concerning access speed, naming is not really relevant.Top level of global storage is a sorted hierarchical directory structure that points to the globals.So, on average, any global has - with actual storage speed - the same access time.And global directory is mostly permanently cached in Global buffers.BTW: You can list this directory using ^$GLOBAL() set dir="^$GLOBAL("""")" for write dir,! set dir=$QUERY(@dir) quit:dir=""
go to post Robert Cemper · Aug 15 Just as you, I start my CSP also from good old Studio the EXIT button is inside <bod>y<form> ....<button>.. </form></body>in upload <!-- Copyright (c) 2001 InterSystems Inc. ALL RIGHTS RESERVED. --> <csp:class description="Demo of how to upload a file from the browser."> <html> <head> </head> <body bgcolor="#CCCCFF"> <!-- display standard sample template using a custom tag --> <isc:SAMPLE title="Upload a file Sample"> This sample uses an '<input type=file>' element in a form to upload a file from the web browser to CSP. Pick a file and hit the submit button to try it. </isc:SAMPLE> <!-- HTML Form to submit the file. You must specify the enctype="multipart/form-data" --> <!-- for this to work --> <form enctype="multipart/form-data" method="post" action="upload.csp"> Enter a file to upload here: <input type=file size=30 name=FileStream> <p> <ul><input type="submit" value="Upload file"></ul> <p> <button onclick="window.close()" style="width: 100px; height: 40px; font-size: 18px;"> Exit </button> </form> <!-- As form is submitted to this page look to see if we have the stream in the %request object --> <csp:if condition='($data(%request.MimeData("FileStream",1)))'> <hr><br> Submitted filename: <b>#(..EscapeHTML(%request.MimeData("FileStream",1).FileName))#</b><br> Size of file: <b>#(..EscapeHTML(%request.MimeData("FileStream",1).Size))#</b><br> Mime Section: <b>#(..EscapeHTML(%request.MimeData("FileStream",1).MimeSection))#</b><br> Type of stream: <b>#(..EscapeHTML($classname(%request.MimeData("FileStream",1))))#</b><br> Content Type: <b>#(..EscapeHTML(%request.MimeData("FileStream",1).ContentType))#</b><br> <br> First 200 characters of stream:<br> <ul> <script language="Cache" runat="server"> New bytes Set bytes=%request.MimeData("FileStream",1).Read(200) Set bytes=##class(%CSP.Utils).DecodeData(bytes) Write bytes,! </script> </ul> </csp:if> </body> </html> while your calling JS script is best located in <head>......</head> <html> <head> <title>Demo for David</title> <script language="JavaScript" type="text/javascript"> function importExtract() { var url='upload.csp' ; var options = 'popup,status=yes,scrollbars=yes,resizable=yes,width=750,height=250' ; newwindow=window.open(url,'UPLOAD',options); newwindow.focus(); alert('back'); } </script> </head> <body> <h3>Demo for David</h3> <Input type="button" value="Import Client Consultation Extract" onclick="importExtract();"/> </body> </html>
go to post Robert Cemper · Aug 15 I also struggled over that strange offset. and dropped the approach