Evgeny Shvarov · Jan 21, 2022 go to post

Thank you, Robert! What you did and keep doing for the community is priceless! We are very lucky to have you! Thank you so much!

Evgeny Shvarov · Jan 3, 2022 go to post

Honestly have no idea ) It's was just thought between NY salads eating) But I bet @Robert C. Cemper or @Dmitry Maslennikov could suggest something. I bet Terminal saves aliases in some global that could be investigated. It's a hack of course thus not recommended officially until we document the global.

If you use Docker for development with IRIS this could be easier. E.g. we could run the terminal program(what is it BTW?) during the iris.script phase and setup aliases of taste.

Evgeny Shvarov · Jan 2, 2022 go to post

This was a wonderful year - and mostly because of you, InterSystems Developer Community members!

Thank you! Looking forward to seeing how will be 2022!

Evgeny Shvarov · Dec 29, 2021 go to post

Real data means - not generated data.

Unique means new and never existed before.

In fact, it is the dataset you own - e.g. your collection of coins, or your library. Or the set of observations of any kind.

Evgeny Shvarov · Dec 28, 2021 go to post

@Kevin An and @Yuval Golan!

Congratulations on your victory in the contest! Could you please submit both repositories to Open Exchange?

It's a pity that's it all the code is in mac and int thus so there is no quality check available that works for CLS ObjectScript code only for now.

Also, it's difficult to run and examine the code you submitted as it needs a lot of manual steps to load it into a docker. 

It'd be great if you could add a docker environment into the repo (like in a template) and hopefully convert code to CLS ObjectScript.

It's not "the must", but it'd be very convenient to use for the community. 

Thanks, and congratulations!

Evgeny Shvarov · Dec 26, 2021 go to post

Hi @Kevin An! Embedded Python was not eligible for the contest.

It was an ObjectScript contest only as it ware stated by @Anastasia Dyubaylo 

As for the next year we don't know yet whether it makes a lot of sense to compete in Embedded Python as it looks like the sort of tasks in AoC can be solved without deep usage of DBMS or/and globals so it becomes a competition in clear python.

Any advice on how we could make Embedded Python competition within AoC and keep the sense is much appreciated.

Evgeny Shvarov · Dec 22, 2021 go to post

Thanks, Salva!

Also in this link, you can see the progress of ideas implementation:

In 2022 we plan to introduce a standalone site where every developer, registered on DC will be able to add and vote for product enhancements, add-ons and innovative ideas!

Evgeny Shvarov · Dec 21, 2021 go to post

Very cool!

It's indeed convenient if you need to fix the typo in your ObjectScript and can do that just typing "." symbol and can make changes even from iPad :)

ObjectScript plugin installation worked perfectly!

Thanks, @Dmitry Maslennikov for sharing! 

Evgeny Shvarov · Dec 17, 2021 go to post

Thanks, Ben! Just curious is it safe and the best practice to edit the storage definition manually?

Or is it safer to let the compiler do the thing?  

Agree on having the storage definition in the source control along with the class definition.

Evgeny Shvarov · Dec 16, 2021 go to post

Thanks @Dmitry Maslennikov, @Robert C. Cemper and @Herman Slagman !

Turn out it's not that hard with your help!

The result can be observed here - adding a parameter and the implementation to a method in csvgen.

And yes, here is the code itself:

ClassMethod AddAppendtoImport(pClassName As %String) As %Status
{
 
    set method = ##class(%Dictionary.MethodDefinition).%OpenId(pClassName_"||Import")

    if method.FormalSpec["pAppend" quit $$$OK
    set method.FormalSpec=method.FormalSpec_",pAppend:%Boolean=0"
    set imp=method.Implementation
    set newImp=##class(%Stream.TmpCharacter).%New()

    while 'imp.AtEnd {
        set line=imp.ReadLine() 
        if line'["%DeleteExtent" {do newImp.WriteLine(line)}
        else {
            do newImp.WriteLine($p(line,"do")_"if 'pAppend do ..%DeleteExtent(,.tDeleted,.tInstances,1)")
        }
        }
    set method.Implementation=newImp
    set sc=method.%Save() 
    if $$$ISERR(sc) return sc
    set sc=$System.OBJ.Compile(pClassName,"cuk")
    return sc
}


 

Evgeny Shvarov · Dec 16, 2021 go to post

Thanks @Vivian Lee!

This is a known issue. And this is why it is THE MUST to store the storage strategy with the class definition in the source code repository.

Also, maybe it's not a bad idea to never delete properties and just mark it as archived/deprecated. 

Evgeny Shvarov · Dec 13, 2021 go to post

And images with ZPM package manager 0.3.2 are available accordingly:

intersystemsdc/iris-community:2021.2.0.617.0-zpm
intersystemsdc/iris-ml-community:2021.2.0.617.0-zpm
intersystemsdc/iris-community:2021.1.0.215.3-zpm
intersystemsdc/irishealth-community:2021.1.0.215.3-zpm
intersystemsdc/irishealth-ml-community:2021.1.0.215.3-zpm
intersystemsdc/irishealth-community:2021.1.0.215.3-zpm

And to launch IRIS do:

docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/iris-community:2021.2.0.617.0-zpm

docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/iris-ml-community:2021.2.0.617.0-zpm

docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/iris-community:2021.2.0.617.0-zpm

docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/irishealth-community:2021.2.0.617.0-zpm

docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/irishealth-ml-community:2021.2.0.617.0-zpm

docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/irishealth-community:2021.2.0.617.0-zpm

And for terminal do:

docker exec -it my-iris iris session IRIS

and to start the control panel:

http://localhost:9092/csp/sys/UtilHome.csp

To stop and destroy container do:

docker stop my-iris

And the FROM clause in dockerfile can look like:

FROM intersystemsdc/iris-community:2021.2.0.617.0-zpm

Or to take the latest image:

FROM intersystemsdc/iris-community

Evgeny Shvarov · Dec 10, 2021 go to post

Thanks, Robert!

And what is the easiest way to change the particular line of code?

E.g. I need to add a parameter to a method definition.

Evgeny Shvarov · Dec 10, 2021 go to post

Hi Ben!

There appears to be an issue on Windows as it doesn't strip out the ":" from the filename when auto-generating the class( https://github.com/evshvarov/csvgen/issues/13).  

This is fixed with the new release.

As for the Library.DateTime, there is no support for this type yet.

You can add the support and PR - it's an open-source library and PRs are very welcome.

Also, you can consider csvgen-ui library by @Guillaume Rongier - it has a very nice UI to guess types and choose your own if guessing fails or doesn't apply.