https://qmacro.org/blog
14 posts · 4 Votes · 1 Followers
Tech 93% · Writing 7%
Subscribe via RSS
At reCAP this year, I am honoured to share a talk slot with Patrice Bender, a good friend and adjacent colleague from the CAP Compiler team, and cohost / copresenter on the Hands-on SAP Dev mini-series on the core expression language in CDS. The talk is titled Expressions and Abstractions - Two Developer Superpowers in CAP, with the following overview: Today we need to be more efficient and concise than ever, stop writing code we don't need to, and avoid tasks that slow down our development…
My good friend and colleague Antonio shared some thoughts today about a post he'd just read: The Last People Who Know How It Works. I was composing a reply to Antonio's thoughts on LinkedIn, but then thought better of it, and in the proper spirit of "owning (and being in control of) one's own content", harking back to the good old days of communication and community on the Web, I thought I'd write my reply here and then point to it via a URL. So here goes. The post is a lovely read, and makes a…
Terence Eden recently published a post titled This blog is written in en-GB. Before I even read the post, I knew what it was going to be about, and that I had to make that change myself too, for the same reasons as I'd guessed he was going to explain. Terence expresses those reasons very well, so I won't try to reproduce them here. I'm in strong agreement with him and those reasons resonate with me. This is my blog, I string all the words together, in my own style, on the topics I choose, with…
Recently I wrote about mocking auth in CAP for a rapid local-first development loop that allows you to embrace auth design rather than defer it to later. In development mode, unless otherwise stated (i.e. unless you add appropriate annotations such as @readonly, @requires or @restrict), all resources are accessible to everyone, even without authenticating. This is appropriate and fitting, helping to facilitate the tight feedback loop that folks love when developing with CAP. What about…
Book Overflow is "a long-form discussion podcast for software engineers" and one of the shows to which I'm subscribed. The recent episode 118 is one in the series where Carter and Nathan discuss the book Learning Domain-Driven Design: Aligning Software Architecture and Business Strategy by Vlad Khononov. I listened to this episode today and found that, as usual, the two go into great depth and draw on their thoughtfulness and experience to tease out details and connect the dots for us…
This post is one of a series on local-first development with CAP Node.js. Everything is an event In Five reasons to use CAP, we see that everything is an event. Whether synchronous, such as via HTTP requests and responses for OData operations, or asynchronous, where messages are emitted and received for decoupled service-to-service communications. The Messaging topic in Capire has a great overview and an explanation of all the different message brokers that can be used. And there's one that is…
This post is one of a series on local-first development with CAP Node.js. Calesi and mocking remote services In the context of CAP-Level Service Integration (aka "Calesi") we can mash up remote and local services, and in the full spirit of CAP generally, run everything in airplane mode, i.e. fully locally. Working through an example In this post, we'll work through an example of mocking a remote service, based on content in the remoteservice/ directory of the repo set up for the related talk.…
This post is one of a series on local-first development with CAP Node.js. The mocked authentication strategy The Authentication Strategies section of the Node.js Security topic in Capire explains the different strategies available, and the "mocked" strategy comes with pre-defined users that can be used, with their various levels of authorisations, to explore, define and test security-related constructs. This mock user configuration can be modified and extended too, but what comes out of the box…
This series post is related to a talk I'm putting together: Local-first development with CAP Node.js - mock all the things! As developers we need to be free of distractions plus a tight and speedy development loop. But definitely not at the expense of ignoring or postponing important design decisions. CAP's mocking facilities abstracts us from much tedium and ceremony, allowing us to iterate fast on data, auth, messaging and remote services while we develop. This session shows you what, and…
This post is one of a series on local-first development with CAP Node.js. Initial, test and sample data - terminology Mocking data is likely the most common and useful of the various local-first development mechanisms that provide mock facilities. Before we start digging in, it's worth spending a minute on terminology used in the CAP development ecosphere in general and in Capire in particular. There are three terms widely used in the context of mocking data: "initial", "test" and "sample".…
See the series post for an overview of all the episodes. Introduction 00:00 Introduction and recap. 05:47 Patrice takes over and looks at the syntax diagram in the CXL topic of Capire and the specific path expression diagram. He remarks that one of the cool things about path expressions is that you can chain navigations together, as is shown in one of the examples that follow the diagram: assoc[filter].struct.assoc.element Such navigation paths are materialised at some point (on use) into…