Article Timur Safin · Apr 1, 2019 3m read Closures in ObjectScript After many sleepless nights it's a pleasure to announce the newer, better, moderner ObjectScript compiler which implemented pretty much everything you ever wanted to have in modern ObjectScript:Design objective of this new compiler is to parse reasonable subset of current ObjectScript syntax which will look readable for stranger, and not scare them with 1 letter syntax. The good start for compiler was the old-good COS Guidelines from here https://github.com/intersystems-ru/cos-guidelinesFor reasons we mentioned above we do not parse 1 letter syntax. It's declared evil;We do not handle dotted syntax for the same reason - modern syntax with {} is proper replacement for dotted syntax blocks;But we not only parse the modern ObjectScript syntax, we have implemented finally the long-standing request which we always dreamed about. Closures! #ObjectScript #Caché 9 9 3 759
Article Timur Safin · Feb 2, 2017 19m read Part II – making community package manager This is the second part of my long post about package managers in operating systems and language distributions. Now, hopefully, we have managed to convince you that convenient package manager and rich 3rd party code repository is one key factor in establishing of a vibrant and fast growing ecosystem. (Another possible reason for ecosystem success is the consistent language design, but it will be topic for another day.) #C++ #Callout #Change Management #Code Snippet #Deployment #Git #Namespace #Node.js #Tips & Tricks #Caché 6 23 1 1.3K
Article Timur Safin · Jan 16, 2017 15m read Part I – Thoughts about package manager Have you ever thought what could be a reason why some development environment (database, language) would eventually become popular? What part of this popularity could be explain as language quality? What by new and idioms approaches introduced by early language adopters? What is due to healthy ecosystem collaboration? What is due to some marketing genius? #Apple macOS #Change Management #Git #Microsoft Windows #Node.js #ObjectScript #Red Hat Enterprise Linux (RHEL) #Caché 10 2 2 1.3K
Article Timur Safin · Sep 2, 2016 11m read Caché MapReduce - putting it all together – WordCount example (part III) In part I of this series we have introduced MapReduce as a generic concept, and in part II we started to approach Caché ObjectScript implementation via introducing abstract interfaces. Now we will try to provide more concrete examples of applications using MapReduce. #Data Model #Distributed Data Management #Object Data Model #Caché 5 3 1 1.1K
Article Timur Safin · Aug 26, 2016 8m read Caché MapReduce - Basic interfaces for MapReduce implementation (part II) In the prior part of this series we have provided introduction to Google MapReduce approach, but still not covered their possible ObjectScript implementation. Which we will start to explain today. #C++ #Data Model #Globals #Key Value #Caché 4 4 1 699
Article Timur Safin · Aug 19, 2016 10m read Caché MapReduce - introduction to BigData and MapReduce concept Several years ago everyone got mad about BigData – nobody knew when smallish data will become BIGDATA, but all knows that it’s trendy and the way to go. #Artificial Intelligence (AI) #C++ #Data Model #Distributed Data Management #Machine Learning (ML) #Caché 8 3 1 1.8K
Article Timur Safin · Jul 18, 2016 15m read Remote proxy objects via dynamic dispatch This article created as side effect of preparations to the longer set of articles about simple, but still handy MapReduce implementation in Caché. I was looking for relatively easy way to pass arguments to (potentially) multiple targets via remote calling facilities. And after several attempts I have realized that we do have very powerful mechanism in the Caché ObjectScript which might be of particular help here – dynamic dispatch for methods and properties. #Code Snippet #Object Data Model #Caché 7 7 0 1.2K
Question Timur Safin · Jun 15, 2016 Cluster deployment recipes? Let assume you have a infinitely scaling algorithm implemented in your application, using replication, ECP, or any other means of horizontal scaling, and let assume you know how to run your system under any volume of requests, the trick is to deploy required number of computing nodes in the cluster. If we are talking about cluster of 2-4 nodes your administrator (or as they call it today "devops engineer") will install anything manually. Probably he will easily handle 5 nodes configuration in the cluster. #Cloud #ECP #Caché 2 8 0 653