As a matter of interest why do people use #dim? The only time I use #dim is if I am using $classmethod() where I am referencing a classmate that I will only know at runtime, for example I may have several classes that all inherit from some superclass and the sub classes at to all intents and purposes identical and I want intellisense in which ever IDE I am using to list the possible properties or methods because I use long property names which I don't always remember when I come to reference those properties after the $classmethod() and once I have written the code and tested it I remove or comment out the #dim. Is there any other compelling reason to use it?

I never knew about SetZEOF(), I would have done it in a try/catch and in the catch check to see if

catch ex {set tSC= $s($system.Status.GetErrorText(ex.AsStatus())["<ENDOFFILE>":$$$OK,1:ex.AsStatus())}

Quit tSC

And if I were still using $ztrap then I would test $ze["<ENDOFFiLE>"

But I don't use $ztrap anymore 

Nigel

I never knew about SetZEOF(), I would have done it in a try/catch and in the catch check to see if

catch ex {set tSC= $s($system.Status.GetErrorText(ex.AsStatus())["<ENDOFFILE>":$$$OK,1:ex.AsStatus())}

Quit tSC

And if I were still using $ztrap then I would test $ze["<ENDOFFiLE>"

But I don't use $ztrap anymore 

Nigel

Hi I wrote an article for the tech article competition called "Why I love ObjectScript and why I think I might love Python more". It discuses my 35 years of working with MUMPS, then joining ISC as Cache was introduced and my journey through all of the major stages in the evolution of Cache through to IRIS as well as ISC as a company. One of the problems for many companies who use IRIS is the shortage of experienced ObjectScript developers. On the one hand that is advantageous for those of us who have that experience but on the other hand it does mean that I am part of a very narrow niche of specialists. Python is an extremely popular language. It ranks #1 on many lists of top programming languages. It is an interpreted language just like ObjectScript and most importantly it can handle sparse multidimensional arrays i.e. global's and so it is a natural fit to add to our catalogue of language support. R and Julia are the other two. Python has a vast library of programs and functions covering everything from the mundane through to complex mathematical modelling and data science. My view is that for IRIS developers this is just another option available to us along with ObjectScript, SQL, Direct Global Access that we can deploy in the applications we develop where we use the tool that best suits the task we are solving. iSC have embedded other languages such as Basic and MVBasic into their platforms with varying degrees of success. I was around when we were trying to convert Microsoft developers to move to Cache and likewise MVBasic for PICK developers and at the time it made sense to offer scripting languages that made the transition to Cache more attractive but the ultimate aim was to get those developers to adopt ObjectScript. We did the same with support for TSQL for SQL Server users. Where Python, R and Julia are different is that there is no intention to convert developes in those languages to ObjectScript, rather the aim is to introduce these languages to handle the sorts of logic and processing that ObjectScript is not so good at. Given the choice of extending ObjectScript to handle the mathematical underpinnings of Data Science, ML and AI it made far more sense to bring the languages with a proven track record in those areas into our stable of Native Language Support.

Nigel 

Hey, congratulations guys I was  really impressed with your applications. I really liked Dmitri's app for its use of Google Data Studio and Jojn Pan's Alert Dashboard due to its immediate relevance to customers with many Interfaces. All of the entries were commendable as this was as daunting challenge and to even enter required a lot of practical knowledge of areas of IRIS technology that many of us haven't had the opportunity to work with in our day jobs as application developers. But I firmly believe that Analytics, Data Science, ML and AI are the key differentiators in our careers going forwards. Well done all of you. Nigel

Hi i have a Pi from GM with the ubuntu lts server and iris 2020.4 image which i downloaded. It works fine. Just two questions. 

1) if i connect the pi to my router with an ethernet cable it succesfully generates an ip address but when i remove the cable the ip address is lost? How do i fix this. I tried internet sharing via usb but that did nothing at all.

2) if i want to upgrade iris to iris for health 2021.1 and i have downloaded the community version if i for h 2021.1 how do i upgrade the installed 2020.4

I have a second pi on which i loaded ubuntu desktop . I have been able to install various apps such as dbeaver, docker, and some smaller utilies. I have community versions of iris, iris for healh and iris ml all 2021.1 build 215. The documentation says that if i unpack these files i will find an image file but i dont. I get a json file and a whole load of directories with garbled names.

1) do i have to load these into docker? And if so how?

2)is it possible to install the products without using docker? I.e. my base o/s is ubuntu and in the wrc distributions for containers i found these files. If i don't want to use docker will the container versions still work? 

3) If i don't use docker should i just use the arm64 kits from the iris, i for h etc download sites rather than the container site

4) can i run an instance of each simultaneously without docker?

Nigel

I am busy with mine. It is fiendish. Can a quine, having produced a copy of its own source code, delete itself and recreate itself using the output it generated?

I think i have managed to get the report server installed.  The licence details in Discord helped. And the note about not using ! Character in passwords was useful as all my passwords tend to have an ! In them.

I am waiting for my laptop to complete its cleanup and space free up and then i should be able to test it through the smp.

Thanks 

Nigel

Ha Ha Ha Robert, I love you! Sure Robots can do simple things, they can do very mundane and repetitive things but they can do tasks with extreme accuracy and when it comes to things like Pharmacy Robotics they could be programmed to question the validity of a prescription if it is aware that there is an adverse drug interaction between two drugs on a script (sure, the pharmacy app may be able to do that to but generally pharmacy systems are built to capture a script issued by a doctor and the general attitude of most pharmacists (human) is that if the doctor has ordered something then "Doctor Knows Best"

With regards to the Robot kits such as the one I am building, it is based on a system called STEM, Scientific - Technology - Engineering - Mathematics and it is used in an educational context to teach everyone fro kids through Adults about Engineering Robotics, Programming (Python) and Mathematics. I am all in favour of system like this and I wish that I had been born 50 years later than I was because I could be learning things at 10 years old that I am, at 58, only getting to learn now.

Furthermore, Python is a gateway to other scientific and analytical paradigms such as Data Science, ML and AI and as I am not expecting the robots to take over the world just yet (though I am not convinced that that would be such a bad thing given how badly the Humans are managing this planet and the future of mankind).  

You should watch a program called "AlphaGo" which is about a team of AI developers wh took on the challenge of developing a program to play Go, that ancient game of black and white stones on a grid board. You should hear the Go believers and their view on Go being almost a philosophy rather than just a game. Great documentary, thought provoking.