go to post Dmitry Maslennikov · Mar 21, 2021 It looks like the issue in the order of compilation, and you have to properly configure it. Look at the parameter System in class, in most cases, it will be enough. If you have it properly configured if you even uncompile the entire project, and compile everything, just with CompileAll method it should be successful without any errors.
go to post Dmitry Maslennikov · Mar 19, 2021 You can do it by yourself. I would recommend looking at the page of all emoji list in Unicode. There you may find a link to the latest version of data in text files, which will be possible to parse quite easily with ObjectScript. So, you can just import that data and use it as you want. And you will need to update it regularly when it gets some new emojis.
go to post Dmitry Maslennikov · Mar 12, 2021 $system.OBJ.Delete("SomePackage.SomeClass") $system.OBJ.DeletePackage("SomePackage")
go to post Dmitry Maslennikov · Mar 11, 2021 You can check how many license units available with this method $SYSTEM.License.LUAvailable() And next depends on the kind of application, you develop. If it's some web application, and you have to achieve it for web session, I would try using %CSP.SessionEvents with OnLogin event, check how many license units are available and who is logging in, and decide to decline the login. If you need it for some else ways of connections, I think the best place would be ZAUTHENTICATE.
go to post Dmitry Maslennikov · Mar 9, 2021 CSP files are real files on disk and case sensitivity is depends on operating system. So, I suppose you using some Linux.
go to post Dmitry Maslennikov · Mar 5, 2021 ahh, you have a just a wrong JSON, I would recommend to find a way how to fix it from the side where it comes from. Key names in the JSON also have to be wrapped by quotes
go to post Dmitry Maslennikov · Mar 3, 2021 I have a bunch of images for versions from 2014.1 with Cache and Ensemble
go to post Dmitry Maslennikov · Feb 24, 2021 Should not be any problem if you use the same user both in Studio and VSCode. PROTECT error means you have security issue and your user not granted for write permission, or that database is just in read only mode
go to post Dmitry Maslennikov · Feb 20, 2021 Look at this page, it may help you in understanding how to configure it. If you need to store classes and mac routines separately, you can use { "objectscript.export": { "addCategory": true } } In the case of different behavior for different types, and place only mac routines to the specific folder, use this. { "obejctscript.export": { "addCategory": false, "folder": { "mac": "mac" } } }
go to post Dmitry Maslennikov · Feb 5, 2021 Yeah, It's a bit tricky. All the code in Caché really stored directly in the database. But with VSCode, code can be stored locally as files, for easy access and the ability to use source control such as git. After any save of the file related to Caché, e.g. Classes or routines, it will be sent to the server and compiled there. Having a separate development server, and a production server are for sure is best practice, for sure. With no permission to edit code directly on production. And with having DevOps, will be possible to build a production version and easily deploy it, by some actions or events.
go to post Dmitry Maslennikov · Feb 4, 2021 While you are a front-end developer, you may be familiar with VSCode. And I would like to recommend you to use it for Cache as well. The minimal supported version is 2016.2, so with 2017.1 you should be able to use it.
go to post Dmitry Maslennikov · Feb 1, 2021 Very interesting question, could you please raise the issue in GitHub repository for the project. We would need a bit more details about it, what you have in your SourceControl Class, and what do you expect. But, be aware, that this feature was not completely implemented at the moment. It may not implement all the features available in Studio, due to some differences in architecture.
go to post Dmitry Maslennikov · Jan 31, 2021 Permission denied issues come from a non-root environment configured for the latest few versions of IRIS. And, so, you don't have access to folders, out of access of user irisowner, which runs IRIS inside. This user has access to his home folder - /home/irisowner, and /usr/irissys, where IRIS installed. But you should know that anything created on a filesystem inside the container will disappear after its recreation. And it's how it supposed to work. If you need access from outside the container to created folder, or keep it save even when the container re-created, you have to bind some folder on your local filesystem inside the container, with --volume|-v option (do not forget to give permission to do it in docker settings). I suppose, there is no way how to run Community Edition directly if you have so many cores, at least, yet. And at the moment, you can use Docker or virtualization, and Docker I would say preferable way.
go to post Dmitry Maslennikov · Jan 26, 2021 <STORE> error happens due to the memory limit exceeded in the process. Since 2012.2 memory limit is set as 256MB per process by default, you can increase it in System Management Portal on page Memory and Startup
go to post Dmitry Maslennikov · Jan 24, 2021 I do now what is nactive. what do you expect from this tool? Did you look at DBeaver or DataGrip?
go to post Dmitry Maslennikov · Jan 15, 2021 After a brief look at the tif format, it found to be quite tricky to get ImageSize. tif(folder, filename) { #define READWORD $sconvert(fs.Read(2),"U2",endian) #define READLONG $sconvert(fs.Read(4),"U4",endian) #define WORD(%val) $sconvert(%val,"U2",endian) #define LONG(%val) $sconvert(%val,"U4",endian) Set fs = ##class(%Stream.FileBinary).%New() Set fs.Filename = ##class(%File).NormalizeFilename(filename, folder) Set FileSize = fs.Size Set Width = 0, Height = 0 Set Identifier = fs.Read(2) If Identifier=$Char(73,73) { Set endian = 0 } ElseIf Identifier=$Char(77,77) { Set endian = 1 } Else { Throw "Bad Format" } Set Version = fs.Read(2) Set IFDOffset = $$$READLONG Do { Do fs.MoveTo(IFDOffset+1) Set NumDirEntries = $$$READWORD For i=1:1:NumDirEntries { Set tag = fs.Read(12) Set TagID = $$$WORD($Extract(tag,1,2)) Set DataType = $$$WORD($Extract(tag,3,4)) If (TagID=256)||(TagID=257) { Set Value = -1 If DataType=3 Set Value = $$$WORD($Extract(tag,9,12)) If DataType=4 Set Value = $$$LONG($Extract(tag,9,12)) Set:TagID=256 Width = Value Set:TagID=257 Height = Value } } Set NextIFDOffset = $$$READLONG Set IFDOffset = NextIFDOffset Quit:(Height>0)&&(Width>0) } While NextIFDOffset>0 ZWrite Height,Width }
go to post Dmitry Maslennikov · Jan 15, 2021 There are many different types of applications. And Caché or nowadays IRIS is just a part of it. For any new applications, I would not recommend using ObjectScript as much as possible and use it as a Database if you need it to just store the data. Any simple application may become bigger in the future, so, having already something that will help with is a good idea. InterSystems some time already offers Community Editon version of IRIS, which is for free, without some of the features, and limited by the size of the Database. And for a simple application, 10GB looks enough. But depends on what do you mean by simple application. It may do some simple task but which will be heavy in the size of data.
go to post Dmitry Maslennikov · Jan 5, 2021 You have to use VSCode, where you will get support for JavaScript/Typescript out of the box. And you can also code ObjectScript there as well. So, you could do everything in one modern editor.
go to post Dmitry Maslennikov · Dec 25, 2020 Atelier already deprecated. Why did you decide to move to Atelier, not to VSCode, which is also cross-platform?