go to post Dmitry Maslennikov · Jan 10, 2018 Do not forget that you can name container manually with flag --nameAnd also look at docker-compose, the very useful tool, you can just define multiple services and call it by name.
go to post Dmitry Maslennikov · Jan 10, 2018 I am having only one issue related to getting the SSH daemon to run on when the container starts. Dou you need it for local use, just to have access to the console or you have to share console access outside? In case if you need local access, you can use docker exec command to get access inside of your container and run command. docker exec -it 'container_name' csession 'instance_name' -UUSER if you have to share access, I think it is also possible to achieve but with the second container and links between.
go to post Dmitry Maslennikov · Jan 7, 2018 CACHELIB as you already mentioned read-only by default and will be replaced during update.But %z classes routines and globals will be stored in CACHESYS
go to post Dmitry Maslennikov · Jan 7, 2018 Naming classes and routines with '%z' or '%Z' recommended way, because in this case, such code will be stored in writable database and safe with updating Cache.
go to post Dmitry Maslennikov · Jan 3, 2018 Robert, yes, I have the plan to upgrade support to the newest versions, but unfortunately the problem with time, yet.
go to post Dmitry Maslennikov · Dec 25, 2017 Yes, it was great. Our final leaderboard.And our race on the graph.
go to post Dmitry Maslennikov · Dec 20, 2017 (& and !) can be used almost everywhere, but not recommended because both operands will be calculated. And sometimes it can cause some unexpected behaviour. Look at my example USER>set a=1 if a!$i(a) zw a a=2 even when the first expression already truth second one also calculated and increased the value USER>set a=1 if a||$i(a) zw a a=1 In this case, the first expression already truthy, and in OR condition it's enough to make full logical expression truthy as well, and not need to calculate the second expression.
go to post Dmitry Maslennikov · Dec 19, 2017 Day 18 was quite interesting, with two parallel jobs and communication between.How do you realize this communication? Maybe the simplest way was to use Global. But I used $system.Event here.
go to post Dmitry Maslennikov · Dec 19, 2017 Do you mean pattern matching operator `?` ?In the documentation, you can find some examples.
go to post Dmitry Maslennikov · Dec 18, 2017 This pictures hosted somewhere on internal InterSystems server (confluence.iscinternal.com), and you can see while you have access to this server, but we don't have.
go to post Dmitry Maslennikov · Dec 15, 2017 right from the documentationYou can combine multiple Boolean logical expressions by using logical operators. Like all Caché expressions, they are evaluated in strict left-to-right order. There are two types of logical operators: regular logical operators (& and !) and short-circuit logical operators (&& and ||).When regular logical operators are used to combine logical expressions, Caché evaluates all of the specified expressions, even when the Boolean result is known before all of the expressions have been evaluated. This assures that all expressions are valid.When short-circuit logical operators are used to combine logical expressions, Caché evaluates only as many expressions as are needed to determine the Boolean result. For example, if there are multiple AND tests, the first expression that returns 0 determines the overall Boolean result. Any logical expressions to the right of this expression are not evaluated. This allows you to avoid unnecessary time-consuming expression evaluations.Some commands allow you to specify a comma-separated list as an argument value. In this case, Caché handles each listed argument like an independent command statement. Therefore, IF x=7,y=4,z=2 is parsed as IF x=7 THEN IF y=4 THEN IF z=2, which is functionally identical to the short-circuit logical operators statement IF (x=7)&&(y=4)&&(z=2).
go to post Dmitry Maslennikov · Dec 15, 2017 You wrong because you missed something important in the documentation. The third parameter is not about string, it is about the list of chars, and the last one the same. So, it will remove everything at the beginning if any of defined characters it will be. And order does not matter. Write $ZSTRIP("ZZZZTESTSLOCKTEST","<","ETSZ") return the same If you have to remove fixed string, you can use $piece or $replace Write $p("ZZZZTESTSLOCKTEST","ZZZZTEST",2,*) SLOCKTEST
go to post Dmitry Maslennikov · Dec 15, 2017 Each Application Server uses own Global Buffer plus Server Buffer, to fetch data, but the speed of the connection between those servers also matter.If you don't care where to run so rare queries, you can do it on Database Server. ECP connection only gives a way to get access to the data in databases. And does not help to call any code on Database Server directly. And since %Net.RemoteConnection already deprecated, you can use other ways to call the main server or any other, and SOAP can be one of the ways, but I would prefer JSON Rest API, which in result will transfer fewer data.
go to post Dmitry Maslennikov · Dec 15, 2017 My best day was a few days ago, but still very slow. Day Time Rank Score Time Rank Score 12 00:09:34 243 0 00:18:42 378 0 I'm usually much slower than you guys. Looks like you have more experience solving such tasks than me, you already solved both previous years.
go to post Dmitry Maslennikov · Dec 14, 2017 Just got my VR headset. It is quite good, but unfortunately, it does not have an action button. So, it becomes difficult to interact with applications when your phone inside.
go to post Dmitry Maslennikov · Dec 14, 2017 To set any response header, you should overwrite OnPreHTTP method in your CSP Page class. Class User.Page Extends %CSP.Page { ClassMethod OnPage() As %Status { &html<<html> <head> </head> <body>> ; To do... &html<</body> </html>> Quit $$$OK } /// Event handler for <b>PreHTTP</b> event: this is invoked before /// the HTTP headers for a CSP page have been sent. All changes to the /// <class>%CSP.Response</class> class, such as adding cookies, HTTP headers, /// setting the content type etc. must be made from within the OnPreHTTP() method. /// Also changes to the state of the CSP application such as changing /// %session.EndSession or %session.AppTimeout must be made within the OnPreHTTP() method. /// It is prefered that changes to %session.Preserve are also made in the OnPreHTTP() method /// as this is more efficient, although it is supported in any section of the page. /// Return <b>0</b> to prevent <method>OnPage</method> from being called. ClassMethod OnPreHTTP() As %Boolean [ ServerOnly = 1 ] { Do %response.SetHeader("X-MyHeader", "some info") quit 1 } }
go to post Dmitry Maslennikov · Dec 13, 2017 In HTTP/2 added some features which are impossible or maybe possible in CacheServer Push - allows pushing some resource from server to client, at any time, in parallel Data compression for HTTP Headers. How it will be now when I will need to read headers in a request.And other features which also important but mostly on TCP Stack, and maybe really not Cache part.
go to post Dmitry Maslennikov · Dec 10, 2017 Looks like there is some error with autodetecting links in a post here, just fixed it with manually marking correctly as a link in his comment.