Herman Slagman · May 12, 2023 go to post

Time-Aware Modeling, enhancements of Foreign TablesReady-Only Federated Tables.

Is there any documentation on these features?

Herman Slagman · May 12, 2023 go to post

> being rather an explorer than an administrator

I'd like to add: I rather have an artist then agraduated physicist
 

Herman Slagman · May 12, 2023 go to post

I've trained about a dozen junior to senior developers in InterSystems (and predecessors) technology.
ObjectScript is the least you should worry about. Any developer who can't grasp that isn't worth hiring.
It's the IRIS ecosystem that is completely different from 'traditional' development. Globals, Namespaces, (Remote) Databases, Mirrors, Productions, Jobs. All concepts that are not found outside the InterSystems (MUMPS) realm.
If people get their head around that, they either love it or hate it.

Herman Slagman · May 14, 2023 go to post

For what it is worth: I don't agree.
Studio is a Objectscript dedicated IDE (Editor), rather clean and unobtrusive.
It could be enhanced quite simple.
The only problem is Windows only (which is still
57.37% of all desktops)
 

Herman Slagman · Jun 12, 2023 go to post

Maybe you can use a generator method somewhere in your code to create the WebApp, something like:

ClassMethod CreateApplication() As %Status [ CodeMode = objectgenerator ]
{
Set $ZTrap="Error"
New $Namespace
Write !,"Creating XXX API",!
Set URL="/xxx"
Set $Namespace="%SYS"
If ##class(Security.Applications).Exists(URL) {
Return $$$OK
}
Set Props("Name")=URL
Set Props("NameSpace")="%SYS"
Set Props("Description")="XXX API endpoint"
Set Props("AutheEnabled")=64 ; unauthenticated
Set Props("DispatchClass")="API.Handler.Class"
Set Props("Type")=2 ; CSP App
Set Props("MatchRoles")=":%All"
Set sc=##class(Security.Applications).Create(URL,.Props)
Return sc
Error
Set $ZTrap=""
Return $$$ERROR($$$GeneralError,"ErrorTrap: "_$ZError)
}

Herman Slagman · Jul 31, 2023 go to post

I fully agree with Julius.
Any class that exceeds 100 properties is dead wrong.
We're not talking tables (relational) (and even then it's wrong) but OO design, which doesn't seem to be much in fashion these days.
Redesign your solution
 

Herman Slagman · Aug 8, 2023 go to post

You can use Objectscript pattern matching:
Set String="a=b"
Write String?.e1P.e => 1
The case isn't important, just to highlight the 1P(unctuation)

Herman Slagman · Nov 10, 2023 go to post

It just what you define a 'success', from a pure HTTP standpoint *any* HTTP status code is a success, the server was able to return a status code.
If you want to check if a resource exists or not, a 404 is a perfectly successful response.

Herman Slagman · Dec 25, 2023 go to post

That's because the Portal is a ZEN application. CSS is 'hidden' in XData blocks inside the ZEN classes such as %CSP.Portal.Home

XData CSS3Style
{
<style type="text/css">#selector {
overflowauto;
}

Herman Slagman · Jan 16, 2024 go to post

In the Git plugin, a %Studio.SourceControl.Base subclass , I get the active branch
Set Active=##class(Git.Utils).GetActiveBranch(Repos.Directory)
If Active["fatal" {
Set sc=##class(Git.Utils).AddToSaveList(Repos.Name)
}
If that gets a fatal I call:
Set Command="cd "_Repository.Directory_" && git config --global --add safe.directory "_Dir
Set sc=..CPipe(Command,.Output)
This process runs under the Studio account

Herman Slagman · Jan 16, 2024 go to post

It is a custom build Git Studio plugin plus application and CLI, that can handle multiple repositories per namespace. It is one of the reasons I still use Studio.

Herman Slagman · Jan 21, 2024 go to post

What is the reason we cannot use Apache on Windows?
Apache is already installed, I don't like installing IIS next to it.

Herman Slagman · Jan 22, 2024 go to post

Yes, I know, but I was talking about the automatic configuration by the IRIS installer. It seems that it only supports IIS on Windows.

Herman Slagman · Jan 28, 2024 go to post

No, if you build a Git plugin yourself, you will also have to build the Git menu and optional context menu.

Class Git.PlugIn Extends %Studio.SourceControl.Base


Herman Slagman · Feb 6, 2024 go to post

We were 'forced' to use CQ by one of our customers and I was rather disappointed about it.
It looks like the designers of those rules didn't have a lot of COS (or even MUMPS) experience.
Maybe we should, as a community, find some kind of consensus what is good  (?) (C)OS code.
ISC is not a good example, their code (completely open for developers to look at, which you find nowhere in the industry): a lot of different styles (don't mention the 'p" and 't' prefixes ... ;-))
I don't have the time to set this up, but am happy to join the discussions.

Herman Slagman · Mar 22, 2024 go to post

What do you expect of such a class (or classes)?
I might have something on the shelf as a skunk project.

Herman Slagman · Mar 22, 2024 go to post
Set x="Purple,Black,Yellow,Pink,Yellow,White,White,a,b,c,d,e,f"Set y="Red,Green,Orange,Yellow,z,y,x,w,v"Set Found=0For i=1:1:$Length(x,",") {  For i2=1:1:$Length(y,",") {    If $Piece(x,",",i)=$Piece(y,",",i2) {      Write $Piece(x,",",i)," = ",$Piece(y,",",i2),!      Set Found=i_","_i2      Return Found     }  }}
Herman Slagman · Mar 26, 2024 go to post

You are right, but this was based on your original question: "if they share a common element/ value return 1"

But the code is easily enhanced to return all common values.

Herman Slagman · Apr 11, 2024 go to post

> I want to remove the object from memory even if it is still referenced in memory  
That makes no sense and it is not possible, it would invalidate every other variable or object property that references it.
But why do you want to do this?

Herman Slagman · Apr 14, 2024 go to post

Remember FHIR is a very immature 'standard'.
If you jump on the bandwagon, you must be prepared to be agile.
You talk about R5, but R6 is well on its way and, since they actually are STU4, 5, 6 and so on, there is no FHIR 1.0
Some standard bodies opt for stability like Nictiz in the Netherlands, where most of the official specifications are still based on STU3.
Opting for implementation of an immature standard ,one must be prepared for (extreme) agility, otherwise we are all ending op with in-operability because of different incompatible implementations.

Herman Slagman · Apr 16, 2024 go to post

The start tag would be right after the XML declaration, i.e. <StartTag (the element name ends when a space is encountered), the end-tag would then be </StartTag. From there find the closing bracket >

Herman Slagman · Jun 16, 2024 go to post

1: Yes 😉
2: See other comment on Quit
3: yes 😉
You should never 'modernize' for the sake of modernizing (refactoring is something else)
ZTrap is not old-fashioned, it's a mechanism other programming languages just don't have.
It is out-of-the-way, is doesn't introduce another stack level and it doesn't need extra indentation, it's just some code that you hope will never be executed, it isn't part of the main logic.
Try-Catch can be very useful for indeed a 'Try' for something you can't be sure how it will behave, such as
{}.%FromJSON(SomeJSON)

Herman Slagman · Nov 4, 2024 go to post

I didn't but it wasn't needed for the import to work.
Now I did together with IRISINSTALLDIR.
Thanks

Herman Slagman · Nov 28, 2024 go to post

It seems that both classes need to have the
parameter XMLUSEEMPTYELEMENT = 1;
 

But I am curious why you want to enforce it. Both forms are perfectly valid XML.