Question Timothy Leavitt · Jul 8, 2016 Best way to compare two arrays for "equality" (same subscripts and values) I've been trying to write a method to compare two local variables, which may be arrays, for "equality" - that is, to see if they have all the same subscripts (if they're arrays) and values. This is the best I've come up with so far - are there any better/simpler approaches out there? #Code Snippet #ObjectScript #Caché 3 6 0 1.4K
Article Timothy Leavitt · May 27, 2016 1m read Workaround for "Smart Quotes" appearing in Ensemble editors in Atelier on Macs Some Mac users have noticed "smart quotes" or "curly quotes" appearing in the browser-based Ensemble editors within Atelier. Specifically, typing "" may result in the output “” instead of the normal double quote characters. 4 0 0 317
Article Timothy Leavitt · May 12, 2016 6m read Writing better-performing loops in Caché ObjectScript The topic of for/while loop performance in Caché ObjectScript came up in discussion recently, and I'd like to share some thoughts/best practices with the rest of the community. While this is a basic topic in itself, it's easy to overlook the performance implications of otherwise-reasonable approaches. #Best Practices #Code Snippet #Coding Guidelines #ObjectScript #Tips & Tricks #Caché 24 21 3 9.4K
Article Timothy Leavitt · Apr 11, 2016 1m read Subscription e-mails (digest) - links are wrapped across lines In the subscriptions e-mails I get (digested), the URLs are typically wrapped across lines, like: | Post link: | |http://community.intersystems.com/post/explanation-defaultdb-database-2 |01610 Direct unsubscribe link (content type): My mail client can't handle this, of course; the link doesn't work. (The actual link in this case is: https://community.intersystems.com/post/explanation-defaultdb-database-2... ) #DC Feedback 0 6 0 255
Article Timothy Leavitt · Mar 9, 2016 3m read Example: Connecting to a Caché web service from PHP There have been a few use cases recently within InterSystems where we've needed to connect to Caché-based web services from PHP. The first of these was actually the Developer Community itself, which uses web services as part of Single Sign-On with other InterSystems sites/applications. The following example demonstrates how to connect to a Caché-based web service (particularly, the web service in the SAMPLES namespace) from PHP, using password authentication. #Code Snippet #Frontend #SOAP #Caché 5 0 0 2.6K
Question Timothy Leavitt · Mar 2, 2016 What determines the value of $$$DefaultLanguage (used for localization) for a new Caché installation? Is the default language (i.e., $$$DefaultLanguage, which is used as the basis for localization with $$$Text/etc. at compile time) always "en" for new Caché installations, or could it be different? How is this determined? I don't see an option to select a language during Caché installation. Also, is there a supported/preferred API for setting the default language? Looking at %occMessages.inc, one option would be: #Compiler #Databases #Globals #Localization #Caché 0 3 0 508
Question Timothy Leavitt · Feb 11, 2016 Merging two %Objects (2016.1/2016.2) I'm revisiting some older projects that can benefit from the new JSON support and dynamic object capabilities in 2016.1 FT / 2016.2 FT. (Particularly, some of the really new features in the latest 2016.2 FT.) For the particular thing I'm working on, it would be very handy to be able to merge objects, similarly to https://api.jquery.com/jquery.extend/. The closest thing I've found so far (in 2016.2 only) is: Set o1 = {"a":1,"c":2}, o2 = {"b":1,"c":1} Write "o1: ",o1.$toJSON(),! #Caché #JSON 0 1 0 541
Question Timothy Leavitt · Feb 9, 2016 Property with SqlComputed and SqlComputeCode, but not Calculated or SqlComputeOnChange Looking at a property defined as follows: #Object Data Model #ObjectScript #SQL #Caché 1 4 0 717
Article Timothy Leavitt · Jan 5, 2016 1m read Nifty COS syntax - set $listbuild(multiple,variables) = list (Possibly?) little-known fact: It's possible to use $ListBuild on the left hand side of the equals sign in a set command to extract multiple list values at once:set $ListBuild(several,individual,variables) = listFor example: #ObjectScript #Tips & Tricks #Caché 0 4 0 428