go to post Eduard Lebedyuk · Mar 10, 2020 This. Or even better post your code. Is speed/memory footprint important?
go to post Eduard Lebedyuk · Mar 9, 2020 Invoke is the way to go. ClassMethod CreateWebApp(pVars, pLogLevel, tInstaller) As %Status { Set Namespace=tInstaller.Evaluate("${Namespace}") Do tInstaller.PushNS("%SYS") Do ##class(Security.System).GetInstallationSecuritySetting(.security) If (security="None") { Set cspProperties("AutheEnabled") = $$$AutheUnauthenticated } Else { Set cspProperties("AutheEnabled") = $$$AutheCache // Password } Set cspProperties("NameSpace") = Namespace Set cspProperties("IsNameSpaceDefault") = $$$YES Set cspProperties("DispatchClass") = "MDX2JSON.REST" Set cspProperties("UseCookies") = $$$YES Set tSC = ##class(Security.Applications).Create("/"_Namespace, .cspProperties) Do tInstaller.PopNS() If $$$ISERR(tSC) Throw ##class(%Installer.Exception).CreateFromStatus(tSC) Quit $$$OK } And invoke with <RunInstall Class="MDX2JSON.Installer" Method="CreateWebApp"/>
go to post Eduard Lebedyuk · Mar 6, 2020 Thank you, Marc! With Kitty there's even a Put Window on Foreground option: I've tested with h 10 w $c(7) and it works! Is there anything similar for cterm/iristerm?
go to post Eduard Lebedyuk · Mar 6, 2020 IRISList is a wrapper over InterSystems IRIS $lb structure, and it supports these value types: Int16, Int32, Int64, bool, Single, Double, string, byte[], IRISList. To be more specific the following datatypes are available. ISO/IEC 8859{1 string. The remainder of the $LIST element is a string of ISO/IEC 8859-1 characters. UNICODE string. The remainder of the $LIST element is a string of UNICODE characters in UTF-16 little endian format. Positive integer. The remainder of the $LIST element is an unsigned integer in little endian order with high order zero octet truncated. Negative integer. The remainder of the $LIST element is a negative integer in twos complement little endian order with high order #FF octet truncated. Positive radix 10 number. The next octet is a signed char that serves as an exponent. That is followed by an unsigned integer in little endian order with high order zero octet truncated. The value of the number is integer × 10exponent. Negative radix 10 number. The next octet is a signed char that serves as an exponent. That is followed by a negative integer in twos complement little endian order with high order #FF octet truncated. The value of the number is integer × 10exponent. IEEE floating point number. Length must allow for either 4 or 8 (preferred) octet of data. In C# Decimal can be constructed from {Int32, Int32, Int32, Boolean, Byte} and you can use GetBits method to retrieve these parts from Decimal (docs).
go to post Eduard Lebedyuk · Mar 6, 2020 Depends on the project I guess. Trivial fixes can be sent via pulls directly. Bigger fixes usually require time to fix so some discussion can help. That said, opening empty pull and talking there also works.
go to post Eduard Lebedyuk · Mar 5, 2020 In most cases just process special variable should be enough: Set SourceConfigName = process.%PrimaryRequestHeader.SourceConfigName
go to post Eduard Lebedyuk · Mar 4, 2020 Great article, Mark! I have a few notes and questions: 1. Here's a brief comparison of different storage categories: Intel® Optane™ DC Persistent Memory has read throughput of 6.8 GB/s and write throughput 1.85 GB/s (source). Intel® Optane™ SSD has read throughput of 2.5 GB/s and write throughput of 2.2 GB/s at (source). Modern DDR4 RAM has read throughput of ~25 GB/s. While I certainly see the appeal of DC Persistent Memory if we need more memory than RAM can provide, is it useful on smaller scale? Say I have a few hundred gigabytes of indices I need to keep in global buffer and be able to read-access fast. Would plain DDR4 RAM be better? Costs seem comparable and read throughput of 25 Gb/s seems considerably better. 2. What RAM was used in a Server #1 configuration? 3. Why are there different CPUs between servers? 4. Workload link does not work.
go to post Eduard Lebedyuk · Feb 28, 2020 Load the code and open main csp page. That's enough for the project to work.
go to post Eduard Lebedyuk · Feb 28, 2020 I'd recommend: Write LoadStream method with the same signature which logs all passed arguments. Call it from .Net Check what's actually gets passed inside.
go to post Eduard Lebedyuk · Feb 28, 2020 Use byte[] to pass streams. So: byte[] bytes = Encoding.Default.GetBytes(txt); ... var parameter = new object[] { bytes, qspec, errorlog, loadedItems };
go to post Eduard Lebedyuk · Feb 28, 2020 Property DoctorInfos As list Of PKGNotification.InDoctorInfo; ?
go to post Eduard Lebedyuk · Feb 28, 2020 Working with collection properties documentation. If you want to hold a list of objects at runtume, use %ListOfObjects. If you want to store a list of objects use collection properties (as you use ListOfPatient).
go to post Eduard Lebedyuk · Feb 27, 2020 That's a fairly recent version of Python. Not sure if old Python Binding works with it. I can recommend you to: Contact the WRC Upgrade to InterSystems IRIS which would allow you to use new Native API for Python Use PythonGateway Use PyODBC or JayDeBeAapi packages for data transfer