go to post Joel Solon · Oct 28, 2021 All I can say is Wow! I experienced many of the same things over my career, but I was living in safe, protected, training-room-land, not the real world of development like Nigel. Great article! I'll just note that Nigel says "might" in the title. One thing that confused me, Nigel. You wrote "If one of the early MUMPS creators had called $order "$next", it would immediately be recognizable as Next()...". But I know that you know that the original $order was called $next.
go to post Joel Solon · Oct 12, 2021 Hi Robert, Why did you say that the %TimeStamp datatype is the equivalent of the full $h? It's true that %Date/%Time do the conversion from internal date/time values to/from external. But %TimeStamp, %DateTime, and %StringTimeStamp do not do any internal/external conversion. It's just for the YYYY-MM-DD HH:MM:SS external timestamp. Is there something I'm missing? %PosixTimeStamp does convert, but it's not $h internally.
go to post Joel Solon · Jul 23, 2021 Thanks! One more followup question: Does all of the above now supersede the following setting?
go to post Joel Solon · Jun 9, 2021 Thanks Dmitry. I added this, which will launch the current class if it's a Zen page. Not perfect, but fun! "links":{"Launch Zen page": "http://${host}:${port}/csp/${namespace}/${classname}.cls"
go to post Joel Solon · Jun 9, 2021 The popup help for "links" states "Several ${...} substitution symbols are supported in the value." Is there a list somewhere of what is supported? I tried ${file} but that didn't work.
go to post Joel Solon · Jun 8, 2021 I have been using VS Code with client-side editing exclusively. Now I'm playing with server-side editing, and I'm hoping that @John Murray or someone else can clear up my confusion about something. Before Server Manager had a GUI, my (possibly incorrect) understanding of server-side editing was that there were two ways to configure it: The preferred way was to use the isfs "technique" as described in the documentation Just click "Choose Server and Namespace" without creating a Workspace (no local folder) It now appears that clicking "Choose Server and Namespace" automatically uses the isfs technique. Now I'm wondering: Did the behavior of "Choose Server and Namespace" actually change? I'm kind of hoping that it didn't change, but if it did... What's the difference (if any) between the two techniques for server-side editing, and is there any reason to still use the non-isfs approach, and if so, how would I configure that?
go to post Joel Solon · May 26, 2021 Also note, for the name of the global that is logging statuses: ^mtempinitials works (since the old days), like ^mtemptl in Tim's example above. ^CacheTempinitials also works (since the Caché days). Maybe Tim would use ^CacheTempTL sometimes and rock a little camelcase? ^IRIS.Tempinitials also works (for IRIS). Maybe Tim would use ^IRIS.Temp.TL periodically? (see what I did there?)
go to post Joel Solon · May 19, 2021 Nice article Tim! For posterity, I will try to clarify two statements you made: "Note that this solution assumes uniform depth of subscripts/values across the whole local array; weird things would happen if this assumption was violated." "$query, $qlength, and $qsubscript are handy for dealing with globals/local arrays of arbitrary depth." Some readers might see a conflict in these two statements (I added the bold), but there is no conflict. Statement #2 is correct. Statement #1 applies to using $query for the specific goal Tim had in mind.
go to post Joel Solon · May 17, 2021 If controlling order is important, and you don't need the bi-directionality of 1-M relationships, you can use a list or an array collection instead.
go to post Joel Solon · Apr 28, 2021 I haven’t used any of the Gateways before, nor have I played with any of the External Language Servers. It looks like the new skill demoed here is that an IRIS object (persons in this example) is able to hold a reference to a Java class outside of IRIS, and you can call methods from that Java class as if they are methods inside IRIS, including making use of Java libraries (AsciiTable in this example). So Java System.out redirects to the IRIS Terminal window? If so, that all seems amazing! Do you have some examples you can share about how we expect developers to use this?
go to post Joel Solon · Apr 8, 2021 For those of you that like GUI tools in an IDE, I just installed the Microsoft Docker extension for VS Code. It shows my Containers and Images just like Docker Desktop Dashboard does, and lets me start/stop/launch CLI/inspect etc. But the real reason I installed it is because there's also a Registries section with a Connect Registry icon (looks like a plug). Using that, I chose "Generic Docker Registry" (other choices: Azure, Docker Hub, GitLab). I supplied the registry URL. It prompted me for my username and password (Docker login token as described above) and I can now browse the registry. Beautiful!
go to post Joel Solon · Apr 7, 2021 ...and learn about other useful shortcuts such as zenGetProp() and zenSetProp().
go to post Joel Solon · Apr 5, 2021 zen(id) is shorthand for zenPage.getComponentById(id) which as @Vitaliy.Serdtsev said gives you access to the Zen component identified by id. document.getElementById(id) gives you access to the element identified by id in HTML/JavaScript document object model. Since a Zen component could comprise several HTML elements, it's usually better to use zen(id).
go to post Joel Solon · Mar 2, 2021 Point #11: one-to-one is not supported but can be imperfectly simulated. many-to-many is supported by combining one-to-many among 3 classes. Oops! I posted this without noticing that Robert already handled this one!
go to post Joel Solon · Mar 2, 2021 Point 5-5: Relationship on the object side is bi-directional. Class A has a reference to class B, and class B has a collection of references to class A. On the SQL side, table A has a reference to table B, along with automatic referential integrity. Point 16: Important: for a class to be persistent, %Persistent must be the first class. So the example should be: Class Person extends (%Persistent, Animal)
go to post Joel Solon · Mar 2, 2021 Point #16: There is only one type of database. Databases can hold code only, data only, or code and data together.
go to post Joel Solon · Mar 2, 2021 On #5: %IsModified() and propertynameIsModified() methods tell you whether the object in memory has been changed in memory (not on disk).
go to post Joel Solon · Feb 25, 2021 That looks like a fun course! One correction on point 20: the default datatype for variables is string, not %String. And there's more to know about what that means, but come and take the course to find out...
go to post Joel Solon · Jan 29, 2021 Interesting, thanks for this. Related question: when running the Portal with this method of enabling ssl, do the Help links to docs.intersystems.com also become https links? For example, the Help links on this page:System Administration > Configuration > Additional Settings > Startup