Article Robert Cemper · Jul 19, 2020 2m read Parameter passing to Language Extentions IRIS and Caché / Ensemble offer the possibility to add Languages Extension as SystemFunctions, SystemVariables, SystemCommands The related documentation tells you where to add the system-wide extension. Parameter passing is not covered explicitly. #ObjectScript #Tips & Tricks #Caché #Ensemble #InterSystems IRIS 7 0 0 350
Article Robert Cemper · Jul 4, 2020 4m read Editor Archaeology During the development of the Terminal Multi-Line Command Editor I discovered in my IRIS installationa piece of software that I just can classify as a historic artifact. And it is still fully operational !!! As it dates back to times before InterSystems was founded in 1978 you may understand my surprise.I personally stepped into that environment in 1978 and used it then for daily work. #Other 16 5 0 404
Article Robert Cemper · Jul 4, 2020 2m read Terminal Multi-Line Command Editor The Command extension enables the execution of Multi-Line Commands from Terminal prompt. Terminal Multi-Line Input with Edit, Insert, Delete, Print extension for IRIS and CachéIRIS and Caché have just single command lines in terminal availableThis Multi-Line Commands Editor also will execute the Multi-line Commands.In addition, it is independent of access to %SYS and can be installed in any namespace Special thanks to @Jeffrey Drumm who inspired me to this and supported me as beta-tester. #Video #Other Open Exchange app 8 1 1 1.5K
Article Robert Cemper · Jun 29, 2020 3m read Terminal Multi-Line Option The Command extension enables the execution of Multi-Line Commands from Terminal prompt. Installation & Execution Import %ZML.xml to Namespace %SYS Optionally you may add this line to your %ZLANGC00.mac for a simplified use: ZML do ^%zml quit ; add multi line command in terminal and USER>zml otherwise, just call it from the terminal command prompt #Other Open Exchange app 10 0 1 740
Question Robert Cemper · May 20, 2020 Wanted : IRISsession for Windows In Cache for Windows (x86-64) 2018.1.3 (Build 414U) I found something very useful %installdir%\bin\Csession.exe #Microsoft Windows #Microsoft Windows Server #System Administration #Terminal #Tools #InterSystems IRIS 9 4 1 946
Article Robert Cemper · May 14, 2020 1m read IRS Docker micro Durability Allow limited durability for demo and development IRIS-Docker-micro-Durability During development of a container based demo I found the need to access a fresh dockeran instance of IRIS image (e.g intersystems/iris-community:2020.2.0.199.0) over and over.To bypass loading my code repeatedly, I developed this workaround. Docker support The principle of a persistent IRIS database outside the container is unchanged.But now the whole setup is moved into Dockerfile and docker-compose.yml #Containerization #Development Environment #Docker #System Administration #Testing #Tips & Tricks #Tools #Ubuntu #InterSystems IRIS Open Exchange app 10 0 1 366
Article Robert Cemper · May 14, 2020 3m read websocket-client-js * iris-native-api * docker-micro-server Using the IRIS native API for Node.JS was the opportunity to presenta MicroService operating in a Docker container.A demo video is now also available to watch the demo in operation. #API #Node.js #ObjectScript #Video #InterSystems IRIS Open Exchange app 12 0 1 1.2K
Article Robert Cemper · Apr 27, 2020 2m read Multidimensional Property Persistence - Part 2 (New Age) While the classic solution followed rather close the concepts and design of the ancestorsCaché / IRIS allows a more modern approach to flexible/multidimensional properties #Other 13 1 0 574
Article Robert Cemper · Apr 27, 2020 4m read Multidimensional Property Persistence - Part 1 (Classic) As you know in Caché / IRIS you have the possibility to define a property as Multidimensional as documented here: https://docs.intersystems.com/iris20201/csp/docbook/DocBook.UI.Page.cls?KEY=GOBJ_proplit#GOBJ_proplit_multidimand the explanation of how to use ithttps://docs.intersystems.com/iris20201/csp/docbook/Doc.View.cls?KEY=GOBJ_proplit#GOBJ_proplit_multidim_valuesThough the access is quite comfortable (in traditional COS sense) there are 2 main restrictions that hurt:#1) It is not saved to disk unless your application includes code to save it specifically.#2) It cannot be stored in or exposed through SQL tables there are some moreI'll show how to overcome these limits #Other 15 1 3 719
Article Robert Cemper · Apr 26, 2020 5m read Materialized Views A VIEW in SQL is basically a prepared SQL statement.It has to be executed and assembled like any other SQL query.MATERIALIZED VIEW means that the content is collected before hands and can be retrieved rather fast.I saw the concept first with my favorite competitor named O* and they made a lot of noise about it. { favorite: because I could win every benchmark against them } #Other 12 3 1 998
Article Robert Cemper · Apr 25, 2020 2m read Semi-Persistent Classes and Tables If you define a Persistent Class / Table the class compiler generates for you an appropriate Storage definition.A different option is to define a SQL mapping for an already existing Global storage. This has been excellentlyexplained already in a different series of articles. The Art of Mapping Globals to Classes 1 of 3 #ObjectScript #Other 10 7 1 671
Article Robert Cemper · Apr 25, 2020 2m read Static WHERE Conditions The typical WHERE condition in SQL relates mostly to some content of the rows you work on.So it needs to be calculated and checked for each row you access.Differently (and that's why I named it STATIC) is a WHERE condition that is independent of the rows you access. #Other 14 2 1 598
Article Robert Cemper · Apr 4, 2020 3m read Websocket Client IRIS internal IRIS 2010.1 brought us a new feature: %Net.WebSocket.Client As a continuation of my series of WS Clients I just couldn't resist to try it.Well, this is the result and it was rather simple in the end. After I succeeded in my personal fight against Windows Firewall ;-) You basically need to prepare 3 classes: #ObjectScript #InterSystems IRIS Open Exchange app 12 0 0 806
Article Robert Cemper · Apr 4, 2020 1m read Websocket Echo server IRIS In Caché you had an example of a WebSocket Server in namespace SAMPLESWith IRIS the samples are gone and require additional installation effort. So I refurbished the code with some useful additions: independent of namespace timeout control from client readable communication log This contains 2 classes: #Interoperability #Testing #InterSystems IRIS Open Exchange app 12 0 0 731
Article Robert Cemper · Apr 3, 2020 1m read ...ToLogical / LogicalTo... Visualization A recent discussion made me aware that the documentation on DataType classes is excellent.http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...I just miss the visualization of the methods for Data Format Conversions. #Other 14 0 0 694
Article Robert Cemper · Dec 9, 2019 1m read SUDOKU demo A demo in traditional style COS This was written based on a previous trial in .XLSIt is far from being perfect. Rather a challenge forimprovement in all directions (code, interface, ...)So anyone feel invited to make it better. #Other Open Exchange app 13 0 0 648
Question Robert Cemper · Sep 12, 2019 Features of *ENSTEMP ENSTEMP was addressed already some time ago; Article: Preventing Globals From Getting Journaled (Continued from How do I Minimize My Journals) and is also in public documentationWhere InterSystems IRIS Stores Temporary Production Data Though I'd like to understand if this is just naming a non-journaled DBor are there also typical features of CACHETEMP / IRISTEMP related to it: automatic clean-up at system startup keeping Global Buffers in memory as long as possible late writing to the storage file In other words is it a 2nd, 3rd, .. fully feature blown IRISTEMP ? #Other 7 1 0 417
Article Robert Cemper · Jun 10, 2019 1m read more usefull Object Dump During testing your code you are often confronted with the need to examinethe actual content of an object. Either using ZWRITE or $system.OBJ.Dump()you get a picture of simple properties as "--- attribute values ---"while "--- swizzled references ---" are more confusing than informativeand with "--- calculated references ---" you are just left in the lurch. This small helper class allows you to dump an object to terminal ore.g in background to some stream for later review.By default, you see just properties with content, #ObjectScript #Tools #InterSystems IRIS Open Exchange app 16 0 1 1.2K
Article Robert Cemper · Jun 5, 2019 1m read Using Interjob Communication (IJC) Earlier, I've written about command pipes.This is the internal variant of a PIPE. To make this more tangible and visible for you, I prepared a small example The scenario is to run a monitoring process that receivesinput from an unknown number of sensors. (Could be Lab equipment or similar.) #Other Open Exchange app 12 0 0 499
Article Robert Cemper · May 30, 2019 2m read BackgroundJobs over ECP Running a Background Job using the JOB command is a well-known feature.Using ECP to distribute databases to several servers is also well-known.But using the combination of both to run a process on a different serverseems to be a rare case. Sure there are enough other ways to start a remote job, but the specialcombination with ECP where the application server starts a process on adata server without additional networking is worth to be remembered. #ECP #Other Open Exchange app 13 0 1 756