Article Chris Stewart · Jan 17 9m read Creating an IRIS Cross Functional App in <150 Lines of Code The Lo-Code Challenge Imagine the scene. You are working happily at Widgets Direct, the internet's premier retailer of Widgets and Widget Accessories. Your boss has some devastating news, some customers might not be fully happy with their widgets, and we need a helpdesk application to track these complaints. To makes things interesting, he wants this with a very small code footprint and challenges you to deliver an application in less than 150 lines of code using InterSystems IRIS. Is this even possible? #Best Practices #Interoperability #JSON #ObjectScript #REST API #SQL #InterSystems IRIS Open Exchange app 19 9 8 734
Article Chris Stewart · Feb 18, 2021 2m read Basic JSON Compare Hi Dev Community I thought i would share a little method I knocked together to traverse and compare 2 JSON objects for basic equivilance. I'm currently working on some data migration, and wanted a basic sanity check to validate that the JSON output is basically equivliant between the old and new, excluding a few things like timestamps. It's a basic little recurvsive method, that will bubble up any differences over a nested structure. It's very low tech, as that's all I need it to do, but I thought it might be useful for others? #JSON #ObjectScript #InterSystems IRIS 1 5 0 791
Article Chris Stewart · Sep 8, 2017 3m read Let's write an Angular 1.x app with a Caché REST backend - Part 13 a.k.a.. "The World of Widgets Returns!" or "Paternity leave damages Instructional Series momentum"In our last lesson, we combined 2 separate classes to appear as the same property. We now have the ability to Update our Widget catalog, but what if we want to Create a Widget? Thankfully, we've already done 90% of what we need, just by implementing Edits #Angular #JSON #REST API #Frontend #SOAP #Caché 0 0 0 940
Article Chris Stewart · May 8, 2017 3m read Let's write an Angular 1.x app with a Caché REST backend - Part 12 In our last lesson, we added some formatting and validation to our Edit Widget form. So, now we are ready to add the ability to add new Widgets to our application. However, the great Widget Wars have come to an abrupt end, as Widget Direct has purchased its biggest competitor, WorldWideWidgets. In order to maintain some continuity, we need to display their catalog on our new application. #Angular #HTML #JavaScript #JSON #REST API #Frontend #Caché 2 0 0 790
Article Chris Stewart · May 6, 2017 2m read Let's write an Angular 1.x app with a Caché REST backend - Part 11 In our last lesson, we added a form to Edit our existing Widgets, and save them back to the server. However, our Form was not well structured and our Save button had no intelligence, and was not fully visible. So today, we will apply some Material components and Angular style to make the form more useful #Angular #Frontend #HTML #REST API #Caché 2 0 0 831
Article Chris Stewart · Apr 28, 2017 4m read Let's write an Angular 1.x app with a Caché REST backend - Part 10 In our last lesson, we implemented a new REST Service to allow us to perform CRU operations on Widgets, and refactored our Controllers to allow the page setup to be decouple from the content. #Angular #CSP #HTML #JavaScript #REST API #Frontend #Caché 3 10 0 1.1K
Article Chris Stewart · Apr 25, 2017 5m read Let's write an Angular 1.x app with a Caché REST backend - Part 9 In our last lesson, we implemented a linkage to our WidgetAccessory class, and debugged some errors we encountered along the way. We now have our data being returned by REST, but what if we want to update or add new data to our application? #Angular #CSP #JavaScript #REST API #Frontend #Caché 4 7 0 2.4K
Article Chris Stewart · Apr 24, 2017 2m read Let's write an Angular 1.x app with a Caché REST backend - Part 8 or "Bonus Breakage"In our last lesson, we added a relationship between 2 persistent classes. We are clearly going to need to start creating REST Services to expose CRUD operations for each of these classes, but before we do that, we should really finish defining our linkages. We added code to our Widget toJSON to spool off related Accessory data, so we should really do the reciprocal and allow Accessories to return all Widgets that are compatible. #Angular #CSP #HTML #JavaScript #REST API #Frontend #Caché 3 2 1 1.2K
Article Chris Stewart · Apr 24, 2017 4m read Let's write an Angular 1.x app with a Caché REST backend - Part 7 or "Things are going to break"We left our application over the weekend, secure in the knowledge that it was returning data from our primary persistent class, User.Widget. However, Widgets Direct are the premier supplier of both Widgets AND Widget Accessories, so we should really start working on adding these Accessories to our application. #Angular #CSP #HTML #JavaScript #REST API #Frontend #Caché 2 3 0 1.3K
Article Chris Stewart · Apr 21, 2017 3m read Let's write an Angular 1.x app with a Caché REST backend - Part 6 or "Didn't you say you would cover Persistent Objects in Part 5, Chris?"Yes, that was the plan. This is a pretty important topic, so it get's its own ArticleUp until now, we've display widget JSON that has been created by a basic loop. Clearly this isn't of much value. Now we have our stack connected together, and we can see that the data is flowing to the Welcome page, it's time to complete the stack and start feeding our service from "real" data. #Angular #CSP #HTML #JavaScript #JSON #REST API #Frontend #Caché 2 4 0 1.5K
Article Chris Stewart · Apr 21, 2017 2m read Let's write an Angular 1.x app with a Caché REST backend - Part 5 At the end of our last lesson, we ended with our page displaying a nice (but garish) Angular Material Toolbar, and our Widget data displaying in a list of Material cards. Our page feels a bit static, and we already know that the large number of Widgets that we will be dealing with will not be especially usable on a static list. What can we do to help? #Angular #CSP #Frontend #HTML #REST API #Caché 3 0 0 1.3K
Article Chris Stewart · Apr 21, 2017 3m read Let's write an Angular 1.x app with a Caché REST backend - start here So, one day you're working away at WidgetsDirect, the leading supplier of widget and widget accessories, when your boss asks you to develop the new customer facing portal to allow the client base to access the next generation of Widgets..... and he wants you to use Angular 1.x to read into the department's Caché server. There's only one problem: You've never used Angular, and don't know how to make it talk to Caché.This guide is going to walk through the process of setting up a full Angular stack which communicates with a Caché backend using JSON over REST. #Best Practices #Caché #Angular #JSON #REST API #Frontend #CSP 19 11 5 6.7K
Article Chris Stewart · Apr 20, 2017 3m read Let's write an Angular 1.x app with a Caché REST backend - Part 4 We finished our last lesson with our Widgets Direct page iterating over a list of widgets, displaying an ID and a Name value. While we have been able to achieve this with only a small amount of coding, the page itself is not the most visually appealing place to be. The AngularJS framework is providing a powerful Model-View-Controller framework for our structure and logic, but it does not implement anything that will provide a nice UI experience. #Angular #CSP #HTML #JavaScript #JSON #REST API #Frontend #Caché 6 3 0 1.7K
Question Chris Stewart · Apr 19, 2017 Images dropping from posts I've been creating some posts with embedded images, and some of the images seem to stop resolving after a period of time. I've resaved them, and that has helped temporarily, but I just checked and one of the images is now not resolving again. Is there a limit to the number of images on a post, or should I be using a specific filename pattern?THanksChris #DC Feedback 0 3 0 207
Article Chris Stewart · Apr 19, 2017 3m read Let's write an Angular 1.x app with a Caché REST backend - Part 3 We finished our last lesson with our Widgets Direct page receiving a Welcome message as a property of a JSON object, which was unpacked and displayed on the page. However, we are on Lesson 3, and we still haven't had any talk of displaying widgets yet. #Angular #CSP #HTML #JavaScript #JSON #REST API #Frontend #Caché 5 0 0 1.8K
Article Chris Stewart · Apr 18, 2017 3m read Let's write an Angular 1.x app with a Caché REST backend - Part 2 or "So you just got yelled at by your boss, for sending him an unformatted Hello World webpage" Our previous lesson ended with us serving a Message value obtained from a Caché REST service to the client, using Angular as a runtime. While there is a lot of moving parts involved in this process, the page is not especially exciting at the moment. Before we can start adding new features, we should take a step back and review our tools. #Frontend #HTML #JavaScript #JSON #REST API #Tutorial #Caché 12 1 1 2.5K
Article Chris Stewart · Apr 17, 2017 4m read Let's write an Angular 1.x app with a Caché REST backend - Part 1 of Many So, one day you're working away at WidgetsDirect, the leading supplier of widget and widget accessories, when your boss asks you to develop the new customer facing portal to allow the client base to access the next generation of Widgets..... and he wants you to use Angular 1.x to read into the department's Caché server. There's only one problem: You've never used Angular, and don't know how to make it talk to Caché. This guide is going to walk through the process of setting up a full Angular stack which communicates with a Caché backend using JSON over REST. #Angular #Best Practices #CSP #Frontend #HTML #JavaScript #REST API #Caché 16 23 3 4.9K
Question Chris Stewart · Jan 5, 2017 URL Security over 2 applications I'm currently re-engineering an application from CSP pages directly accessing COS Methods, to an Angular/Material front end accessing a REST DAL. Both the Angular front end and REST services are hosted from the same Caché instance and the same namespace, but the REST services have their own CSP application, with all calls being routed through a Dispatch class. #Angular #REST API #Security #Encryption #CSP #Caché 0 5 0 548
Question Chris Stewart · Nov 7, 2016 Binary Support in JSON? I'm working on a REST service which will include a binary stream as a request property. I'm currently encoding the stream as BASE64 and passing it as a string value, but I was wondering if there is anything in the Caché JSON support that may be a better fit for encoding this data? Thanks Chris #JSON #REST API #Caché 1 3 0 889
Question Chris Stewart · Oct 7, 2016 Setting properties on GlobalBinary stream HiI have been working on changing a web application from using %FileBinaryStream to storing and serving the file content from a %Stream.GlobalBinary property, stored in a new database. I have managed to migrate the data across, and have also been able to redirect the stream so that it is being served through the web link. However, the previous method set attributes on the File stream to have the stream be rendered as the original file type through MIME, using this code #CSP #Object Data Model #Caché 0 2 0 1K