Robert Cemper · Oct 8, 2022 go to post

in my various examples I took these strategies:

  • try to run the Py code in PY shell in a REAL terminal or docker command line console
  • error messages directly from the shell are much more useful  
  • insert temporary print(...) statements at suspicious points
  • what I see by COS <THROW>  is often more obfuscation than a hint  

to my experience, your 'KeyError' indicates that you try to get a value
from a non-existing global or subscript. in COS it would be <UNDEF>

Robert Cemper · Oct 6, 2022 go to post

in my package GlobalToJSON-ePython-pure
I developed this workaround: 

#; simulate $data() for existence and content
def Ddata(gref):
	val = None
	_d = 11
#; check for subscripts	
	o=gref.order([])
	if o == None:
		_d -= 10
	try:
		val=gref.get([])
	except KeyError:
		#; no value @ top node
		_d -= 1
	return [_d,val]		
Robert Cemper · Oct 4, 2022 go to post

NIce you share a picture of a PDP11  ! 
a few of my heroes:

---

I know also some handicapped developers.
BUT: I find it highly insensitive and inadequate to drop their names in this forum

Robert Cemper · Oct 4, 2022 go to post
  • mountain climbing
  • long distance walking
  • practicing foreign languages
  • studying astrophysics, cosmology, nucelar physics,  anthropology, geology
Robert Cemper · Oct 4, 2022 go to post

Any sport that requires mental concentration. eg. mountain climbing, 
And I mean REAL climbing, not just moving your body somehow across nature.  

Robert Cemper · Oct 4, 2022 go to post
  • first I check the logical qualification - e.g. playing chess
  • next check the skills in estimating results of simple mathematical calculations 
    or simple mechanical ckecks or puzzle strategies (without paper and pencil) 
  • next, I observe the operation of their mobile phone and ask for explanations
  • the very last might be t take a look into suggestions like yours

With 2 very successful sons in software, internet, and project engineering (49yrs. + 36yrs.)
I have a valid benchmark for my strategy.

Robert Cemper · Oct 4, 2022 go to post

A real software developer doesn't care about the hardware or operating system.
Specific hardware is a subject for gamers.

Robert Cemper · Sep 28, 2022 go to post

I enjoy to solve what was declared to be IMPOSSIBLE before.
I dislike it if it turns out that issue was just a fake and nobody cares about my creations. 

Robert Cemper · Sep 26, 2022 go to post

Not of importance but interesting observation anyhow.
$ZPI differs in the last 3 digits .
$ZPI is right according to Wiki 

write "3.141592653589793116  PY",!,$ZPI_"  IRIS",!
3.141592653589793116  PY
3.141592653589793238  IRIS
Robert Cemper · Sep 25, 2022 go to post
 --progress plain

This is essential information.
Without it the building log just runs though with no chance for a rollback
and iris.script allows a lot of temporary debugging info.

Robert Cemper · Sep 21, 2022 go to post

The actual GTY is containers.intersystems.com/intersystems/webgateway:2022.1.0.209.0

And there is no :latest defined
 

Robert Cemper · Sep 21, 2022 go to post

DONE!
I found my solution and placed it in a PullRequest.
it was slightly more than just a missing port.

Robert Cemper · Sep 21, 2022 go to post

You may use input redirection as you find it in almost all Dockerfile installations:
 

RUN iris start IRIS \
    && iris session IRIS < iris.script \
    && iris stop IRIS quietly 

and iris.script (as example)


zn "%SYS"
Do ##class(Security.Users).UnExpireUserPasswords("*")
zn "USER"

 

Robert Cemper · Sep 20, 2022 go to post

As Issues are disabled in the GitHub Repo I place my issue here.

  • Container starts fine
  • Postman fails:POST http://localhost:5000/persons/
    • Error: connect ECONNREFUSED 127.0.0.1:5000
    • Network
    • agent: "Desktop Agent"
    • Request Headers
    • Content-Type: application/json
    • User-Agent: PostmanRuntime/7.29.2
    • Accept: */*
    • Cache-Control: no-cache
    • Postman-Token: d40ec7c2-5b24-4944-8a76-c4cbf2685bf7
    • Host: localhost:5000
    • Accept-Encoding: gzip, deflate, br
    • Connection: keep-alive
    • Request Body
    • {"name":"Elon Musk","title":"CEO","company":"Tesla","phone":"123-123-1233","dob":"1982-01-19"}
  • as port 5000 is not mapped in docker-compose.yml this might be related ???
Robert Cemper · Sep 20, 2022 go to post

Not sure if I can make the date.
Anyhow using Studio since its first days in Caché 5.0 for 20+ years almost daily
and still firmly tied to Windows I just have no need for change.
And I use my experience with all tricks and shorthands burned deep in my mind.
It's just Dino's behavior as a veteran that started with X ^% in terminal

Robert Cemper · Sep 19, 2022 go to post

Class Reference of %SYSTEM.Status says:
classMethode IsError(statuscode As %Status) as %Boolean

Returns 1 if the statuscode contains errors. Otherwise, it returns 0.

 So if you get  [res] as  (0,....)  it is an ERROR!  
and therefore the result of IsError should be 1.  It is an Error.

Robert Cemper · Sep 18, 2022 go to post

%BI classes date back to Miner (DeepSee-1) and just were left in Caché over a decade at least
while its functionality was replaced by %DeepSee classes more than 10 years ago.

Of course, you can map all %BI.*  classes to some DB where you have R/W access and import it from Caché.
that's about 300 Classes.
BUT:  no one can tell you if they compile correctly
AND: you have to take care of the hidden %bi*.obj (~430) and other deployed code which you can't compile, but import and pray they work.
SO: this doesn't look like a  promising approach.
Therefore I'd suggest migrating from %BI to %DeepSee in Caché first and to IRIS next

Robert Cemper · Sep 17, 2022 go to post

The questions seem to imply the view from a management position:
 However, how would you recommend to people aged between 20 and 30 to start, maintain, or reboot their joy, excitement, love, or interest for coding and software development?

As I had the responsibility for a team of specialists my experience is such:

  • Is there any other motivation as simple payment?
    If yes, the person could be raised.
  • Any small success is a motivator. Especially if recognized by management.
  • Curiosity is another motivator. Exploring something no one did before could be driving.
    My personal trigger always was. "This not possible" 
    It is known as the "Galilei effect": And she (earth) is moving anyhow!
  • Competition within a team works but is risky if competitors are too different.
    The weaker one may give up if it sees o chance.
  • The best of all motivators is fun. Often in a team of 2 rather equal qualified people.

HTH

Robert Cemper · Sep 8, 2022 go to post

just to make your valuable entry visible in browser and email
http://<server-ip>:<smp-port>/api/atelier/
and you get back this nice JSON object:

Robert Cemper · Sep 7, 2022 go to post

SOAP is quite specific and critical to data format and structure.
You might extend it, but then Edge Server is the active part and you depend on its regular "broadcast".
If Doc Server should be the active partner I'd rather suggest to use JDBC in Linux.
Your actual $get might be embedded as a Method projected as SQL Procedure that you call.
There exist examples to even execute COS commands by that approach:
see: ObjectScript over ODBC