Article Vitaliy Serdtsev · Dec 22, 2017 10m read $(REST - CSP - (-HyperEvents) + EasyUI + File Upload). Part 5 Let’s continue our series of articles about creating a web application using REST only.Integration with jQuery EasyUI (using datagrid and tree components as examples) #REST API #UI Development #Frontend #Caché 0 0 0 625
Article Vitaliy Serdtsev · Dec 15, 2017 5m read $(REST - CSP - (-HyperEvents) + EasyUI + File Upload). Part 4 ... but let’s first take a look at two relatively small topics, and namely:Creation of a multi-page REST applicationWe only have one page for now. How about adding one more? Said - done. #REST API #UI Development #Frontend #Caché 1 0 0 494
Article Vitaliy Serdtsev · Dec 8, 2017 6m read Looking for the equivalent of first-class functions in the Caché DBMS First-class functionwiki In computer science, a programming language is said to have first-class functions if it treats functions as first-class citizens. This means the language supports passing functions as arguments to other functions, returning them as the values from other functions, and assigning them to variables or storing them in data structures. Some programming language theorists require support for anonymous functions (function literals) as well. In languages with first-class functions, the names of functions do not have any special status; they are treated like ordinary variables with a function type. This post continues the article “Declarative development in Caché”. [2, 3, 5, 7, 11, 13, 17].forEach(function(i) { console.log(i); }); How to do something like this in Caché using COS? Below are some exercises on this topic. #Object Data Model #ObjectScript #Caché 2 0 0 422
Article Vitaliy Serdtsev · Dec 1, 2017 5m read $(REST - CSP - (-HyperEvents) + EasyUI + File Upload). Part 3 ... but let’s first look at error handling. #REST API #UI Development #Frontend #Caché 3 0 0 559
Article Vitaliy Serdtsev · Nov 24, 2017 11m read $(REST - CSP - (-HyperEvents) + EasyUI + File Upload). Part 2 Last time, we stopped on static stuff. Let’s continue... #REST API #UI Development #Frontend #Caché 1 1 0 929
Article Vitaliy Serdtsev · Nov 17, 2017 6m read $(REST - CSP - (-HyperEvents) + EasyUI + File Upload). Part 1 This series of articles aims to address the following topics:Creation of a web application based on REST pages;Overview of some tools for tracing (debugging) HTTP requests;Switching from hyperevents to... hyperevents;Integration with jQuery File Upload;Conversion of JSON from the {id:1,parentId:1} format to the {id:1,children:[{}]} format for tree visualization;Integration with jQuery EasyUI (using datagrid and tree as examples);Other topics. #CSP #JSON #ObjectScript #REST API #UI Development #Frontend #Caché 5 1 1 980
Article Vitaliy Serdtsev · Jul 7, 2017 19m read Indexing of non-atomic attributes Quotes (1NF/2NF/3NF)ru: Every row-and-column intersection contains exactly one value from the applicable domain (and nothing else). The same value can be atomic or non-atomic depending on the purpose of this value. For example, “4286” can be atomic, if its denotes “a credit card’s PIN code” (if it’s broken down or reshuffled, it is of no use any longer) non-atomic, if it’s just a “sequence of numbers” (the value still makes sense if broken down into several parts or reshuffled) This article explores the standard methods of increasing the performance of SQL queries involving the following types of fields: string, date, simple list (in the $LB format), "list of <...>" and "array of <...>". #Indexing #Object Data Model #ObjectScript #Performance #SQL #Caché 7 0 0 1.1K
Article Vitaliy Serdtsev · Jun 29, 2017 6m read SQL index for array property elements Sometimes, it comes in very handy (especially for the EAV model) to use array properties in a class and be able to qickly search by their elements: both the key and the value. Let’s take a look at a simple example: #Indexing #ObjectScript #SQL #Performance #Caché 3 0 1 2K
Article Vitaliy Serdtsev · Jun 22, 2017 4m read Creating an interval-associative array in the Caché DBMS This is a translation of the following article. Thanks [@Evgeny Shvarov] for the help in translation. This post is also available on Habrahabrru. The post was inspired by this Habrahabr article: Interval-associative arrayru→en. Since the original implementation relies on Python slices, the Caché public may find the following article useful: Everything you wanted to know about slicesru→en. Note: Please note that the exact functional equivalent of Python slices has never been implemented in Caché, since this functionality has never been required. And, of course, some theory: Interval treeru→en. All right, let’s cut to the chase and take a look at some examples. #Object Data Model #ObjectScript #Python #Caché 4 1 0 651
Article Vitaliy Serdtsev · Jun 14, 2017 3m read Dynamic row-level security This is a translation of the following article. Thanks [@Evgeny Shvarov] for the help in translation. Someone posted a question on DC asking whether it was possible to determine access rights for a particular table row always at runtime, and if it was, how could one do that?Answer: it is possible and it’s not hard at all. #Object Data Model #Security #SQL #Caché 3 2 0 507
Article Vitaliy Serdtsev · May 20, 2017 10m read Localization in Caché DBMS This is a translation of the following article. Thanks @Evgeny Shvarov for the help in translation. Let's assume that you wrote a program that shows "Hello World!", for example: write "Hello, World!" The program works and everyone is happy. With time, however, your program becomes more complex, gets more features and you eventually need to show the same string in different languages. Moreover you don't know the number and names of these languages. The spoiler below contains a description of how the task of multi-language localization is solved in Caché. #Compiler #XML #ObjectScript #Localization #Caché 8 1 1 1.1K