there's a mistake
Methode CopyFrom(source As %AbstractStream) as %Status
just returns an obviously strange status.
to see the content use DO stream.OutputToDevice()
- Log in to post comments
there's a mistake
Methode CopyFrom(source As %AbstractStream) as %Status
just returns an obviously strange status.
to see the content use DO stream.OutputToDevice()
to get a clearer picture of the requirements it is essential to understand
how the connection operates:
It's evident that the behaviors are different on both ends
for #1 you start with a Listener and keep it cyclic reading, eventually writing
for #2 you open the listener, receive something and close it
to send your message you need an open - write - close cycle.
both are possible but you have to know what your opponent expects and how it reacts.
The whole requirement is rather archaic. Sounds like a webserver without HTTP.
REST would be the better approach.
Finally, you may consider outplacing the whole connection management to Node.js
which is far better suited for such exercises. Eg: wrap incoming stream into REST
see this docu TCP Client/Server Communication
- the key trick is to use READ with a timer
- if there is no input, you either write
or place the next timed read if there's nothing to send
put it into %ZLANGC00 as ZY
and just have
ClassMethod ToNato(t) {
ZY
} It's an important improvement.
and THANKS! I feel honored.
I just can't believe it.![]()
![]()
¡ Gracias !
leaving aside that there are evident typing errors that break the code
your reply underlines that the criteria: "Shortest answer wins!"
misses the precise definition of what is measured.
There is not much chance to be shorter than "x x q o" (= 7 char)
Out of curiosity, I checked the size of the underlying OBJ code:
> object size = 380 (+47% !) + timestamp = 18
So the expected gain is not what you would assume at first sight.
For the price of an almost unreadable code
Sorry, I never touched Angular I only know where it is coming from.
my 1st attempt:
N(t) s a="Alfa,Bravo,Charlie,Delta,Echo,Foxtrot,Golf,Hotel,India,Juliett,Kilo,Lima,Mike,November,Oscar,Papa,Quebec,Romeo,Sierra,Tango,Uniform,Victor,Whiskey,Xray,Yankee,Zulu"
f i=1:1:$l(t) s %=$E($zcvt(t,"U"),i) w $s(%?1A:$p(a,",",$a(%)#32)_" ",%=" ":"",1:%)Line1=174 Line2=84 Total=258
dobrodošli
[Google translate is my helper]
you probably intended
zpm "install iris-analytics-sample"I come from Vienna, Austria.
I guess we are "neighbors" according to your mail (.si)
Zdravo Matjaž!
you are right in principle. Though there are hundreds of similar cases since DECADES!
ok, the cleaner solution brings us back to my previous proposal.
add a calculated property to your serial class ##class(Packing.Needs.Attributes) like this
SqlComputeCode = { set {*}= $LB({attr1},{attr2},{attr3},{attr4} ) }, SqlComputed ];
attr1,attr2,attr3,attr4 have to be the SQLnames of these properties !!!
WARNING#1: you have to maintain this list manually at every change of the attributes!
WARNING#2:: this calculation happens at every access to the object.
The additional parameter
may reduce this. though I've never tried in practice
Ok. the picture becomes clearer:
%SerialObject is stored as $LB($LB(....),...)
you can get your result by 2 steps.
do attribute.%SerializeObject(.serialraw)
set list=$list(serialraw)don't think so complicated. leave your serial object as it is
but use instead a CALCULATED, SQLCOMPUTED Property as $LB() and you can then index it
IRIS includes a bunch of "legacy" routines".
Typically %R*, %G* that you can load by "legacy" commands in a "legacy" session or terminal
(not webterminal or simliar commandline simulatiors)
They are hidden in some way, It is not specific to VSC but the same with Studio.
Though ZL %RI ZS %zRI should create a routine that you can work on. Z*,z*%Z*,%z* is writable Use code
my PullRequest is pending.
IMAGE=intersystemsdc/iris-community:2019.4.0.383.0-zpm
is broken as it starts with SHELL ["/irissession.sh"]
instead of SHELL ["/bin/bash", "-c"]
Newer imags don't have that problem
20/30 tables and 300 columns is quite a heavy query / view.
VIEW is only a stored SELECT. The same considerations apply.
#1)
you should have an index for each column that appears in a JOIN ON.. on WHERE...
and that's hopefully just 1 index by table
#2) for each table the required columns should go as Data into the index
You are perfect if the query analyzer only shows access to indices.
My proposal only covered views of a single table with indices
Materializing a multi-table view as you describe it would require a hidden table with all JOINs
and no filtering WHERE clause. And you would require extra code to keep it up to date.
This is a job that the query generator does in an excellent way and with all tricks available.
I wouldn't say it's impossible. And the final query is definitely faster.
But it may take weeks or months to get it running. Not to talk about maintenance.
Analytics/DeepSee acts in a similar way. And I can prove: it wasn't done in an afternoon session.
Yes!, webterminal
It is not very fresh but might be useful anyhow Sharding evaluation #1 + Sharding evaluation #2
Thanks for raising the issue.
I experience the same behavior with a fresh Docker Image
The SQL statement should look slightly different
Insert Into TableX (Name, Address, Phone)
SELECT 'Name1', 'Address1', 'Phone1'
UNION
SELECT 'Name2', 'Address2', 'Phone2'
UNION
SELECT 'Name3', 'Address3', 'Phone3'the base class for all Webpages (also REST) from IRIS is %CSP.Page.cls
When a csp request is received, the CSP Server creates an instance of the %CSP.Request class. This is accessible via the %request variable. It holds all information about the call.
Also all CGI variables. HTTP_REFERER might be what you look for
and that's all core HTTP
maybe a misunderstanding.
if you execute a HTTP request YOU are the visitor at that side and get a response.
do you look for your own IP address?
Hi Nigel,
I experienced this missing UNINSTALL feature several times filling up my working environment.
So I adopted this strategy:
- if there is no Docker container in the project I instal one of the prepared templates
- As packages are (or should) independent of the platform I enter the container and install it there
simply running docker-compose exec -u root iris bash and execute the installation
and when finished just removing containers and images and I'm back to roots.
It only fails if I run against the 5 connections limit of the community license. But that's untypical.
"any other web-app"
- SMP doesn't do it
- webterminal ?? -