{"ref":"actor:dj-adams","page":"/actors/dj-adams","json":"/actors/dj-adams.json","generated":"2026-10-26","entity":{"id":"dj-adams","name":"DJ Adams","kind":"person","url":"https://developers.sap.com/developer-advocates/dj-adams/","origin_ring":"sap-official","identities":{"github":"qmacro"},"role":{"title":"Developer Advocate","source":{"kind":"sap-developers-advocate","url":"https://developers.sap.com/developer-advocates/dj-adams/","checked":"2026-10-09"}},"links":[{"kind":"blog","url":"https://qmacro.org/blog/","source":{"kind":"sap-developers-advocate","url":"https://developers.sap.com/developer-advocates/dj-adams/","checked":"2026-10-09"}},{"kind":"linkedin","url":"https://www.linkedin.com/in/djadams/","source":{"kind":"sap-developers-advocate","url":"https://developers.sap.com/developer-advocates/dj-adams/","checked":"2026-10-09"}},{"kind":"mastodon","url":"https://hachyderm.io/@qmacro","source":{"kind":"sap-developers-advocate","url":"https://developers.sap.com/developer-advocates/dj-adams/","checked":"2026-10-09"}},{"kind":"website","url":"https://qmacro.org/","source":{"kind":"github-profile","url":"https://github.com/qmacro","checked":"2026-10-09"}}]},"edges":{"maintains":[],"contributed_to":[{"ref":"artifact:gregorwolf-bookshop-demo","name":"bookshop-demo","json":"/artifacts/gregorwolf-bookshop-demo.json"},{"ref":"artifact:sap-samples-btp-service-metadata","name":"btp-service-metadata","json":"/artifacts/sap-samples-btp-service-metadata.json"},{"ref":"artifact:sap-btp-setup-automator","name":"btp-setup-automator","json":"/artifacts/sap-btp-setup-automator.json"},{"ref":"artifact:sap-samples-cap-microservices-workshop","name":"cap-microservices-workshop","json":"/artifacts/sap-samples-cap-microservices-workshop.json"},{"ref":"artifact:sap-samples-cap-nodejs-dev-env","name":"cap-nodejs-dev-env","json":"/artifacts/sap-samples-cap-nodejs-dev-env.json"},{"ref":"artifact:capire-bookstore","name":"capire/bookstore","json":"/artifacts/capire-bookstore.json"},{"ref":"artifact:capire-docs","name":"capire/docs","json":"/artifacts/capire-docs.json"},{"ref":"artifact:sap-developers-mcp","name":"SAP Developers MCP","json":"/artifacts/sap-developers-mcp.json"},{"ref":"artifact:sap-samples-cap-cds-hands-on","name":"SAP-samples/cap-cds-hands-on","json":"/artifacts/sap-samples-cap-cds-hands-on.json"},{"ref":"artifact:sap-samples-cap-hana-exercises-codejam","name":"SAP-samples/cap-hana-exercises-codejam","json":"/artifacts/sap-samples-cap-hana-exercises-codejam.json"},{"ref":"artifact:sap-samples-cap-local-development-workshop","name":"SAP-samples/cap-local-development-workshop","json":"/artifacts/sap-samples-cap-local-development-workshop.json"},{"ref":"artifact:sap-samples-cap-service-integration-codejam","name":"SAP-samples/cap-service-integration-codejam","json":"/artifacts/sap-samples-cap-service-integration-codejam.json"},{"ref":"artifact:sap-samples-cap-tour-hands-on","name":"SAP-samples/cap-tour-hands-on","json":"/artifacts/sap-samples-cap-tour-hands-on.json"},{"ref":"artifact:sap-samples-cloud-btp-cli-api-codejam","name":"SAP-samples/cloud-btp-cli-api-codejam","json":"/artifacts/sap-samples-cloud-btp-cli-api-codejam.json"},{"ref":"artifact:sap-samples-fiori-elements-fpm-exercises-codejam","name":"SAP-samples/fiori-elements-fpm-exercises-codejam","json":"/artifacts/sap-samples-fiori-elements-fpm-exercises-codejam.json"},{"ref":"artifact:sap-samples-odata-dd-server","name":"SAP-samples/odata-dd-server","json":"/artifacts/sap-samples-odata-dd-server.json"},{"ref":"artifact:sap-samples-sap-devs-cli","name":"SAP-samples/sap-devs-cli","json":"/artifacts/sap-samples-sap-devs-cli.json"},{"ref":"artifact:sap-samples-teched2024-xp280","name":"SAP-samples/teched2024-XP280","json":"/artifacts/sap-samples-teched2024-xp280.json"},{"ref":"artifact:architecture-center","name":"SAP/architecture-center","json":"/artifacts/architecture-center.json"},{"ref":"artifact:capire-xflights","name":"xflights","json":"/artifacts/capire-xflights.json"}],"wrote":[{"ref":"content:cap-in-the-age-of-ai-7-vector-embeddings-wrap-up","name":"CAP in the age of AI #7 - vector embeddings wrap-up","json":"/content/cap-in-the-age-of-ai-7-vector-embeddings-wrap-up.json"},{"ref":"content:cap-in-the-age-of-ai-6-vector-embeddings","name":"CAP in the age of AI #6 - vector embeddings","json":"/content/cap-in-the-age-of-ai-6-vector-embeddings.json"},{"ref":"content:devtoberfest-2026-cap-cds-oyster-extensibility","name":"Custom Business Logic Extensibility in CAP (CDS-Oyster)","json":"/content/devtoberfest-2026-cap-cds-oyster-extensibility.json"},{"ref":"content:cap-in-the-age-of-ai-5-agents-wrap-up","name":"CAP in the age of AI #5 - agents wrap-up","json":"/content/cap-in-the-age-of-ai-5-agents-wrap-up.json"},{"ref":"content:devtoberfest-2026-daniel-hutzel-brain","name":"What's in Daniel Hutzel's brain?","json":"/content/devtoberfest-2026-daniel-hutzel-brain.json"},{"ref":"content:cap-in-the-age-of-ai-4-more-on-agents","name":"CAP in the age of AI #4 - more on agents","json":"/content/cap-in-the-age-of-ai-4-more-on-agents.json"},{"ref":"content:cap-in-the-age-of-ai-3-from-mcp-to-a2a","name":"CAP in the age of AI #3 - from MCP to A2A","json":"/content/cap-in-the-age-of-ai-3-from-mcp-to-a2a.json"},{"ref":"content:cap-in-the-age-of-ai-2-more-on-the-mcp-adapter","name":"CAP in the age of AI #2 - more on the MCP adapter","json":"/content/cap-in-the-age-of-ai-2-more-on-the-mcp-adapter.json"},{"ref":"content:sap-tutorial-add-mcp-capabilities-to-a-cap-service","name":"Add MCP capabilities to a CAP service","json":"/content/sap-tutorial-add-mcp-capabilities-to-a-cap-service.json"},{"ref":"content:cap-in-the-age-of-ai-1-the-mcp-adapter","name":"CAP in the age of AI #1 - the MCP adapter","json":"/content/cap-in-the-age-of-ai-1-the-mcp-adapter.json"},{"ref":"content:cap-in-the-age-of-ai","name":"CAP in the age of AI","json":"/content/cap-in-the-age-of-ai.json"},{"ref":"content:avoid-design-time-cap-server-restarts-with-local-data-files","name":"Avoid design time CAP server restarts when maintaining local data files","json":"/content/avoid-design-time-cap-server-restarts-with-local-data-files.json"},{"ref":"content:cap-cds-cdl-csn-and-jq-finding-associations","name":"CAP, CDS, CDL, CSN and jq - finding associations","json":"/content/cap-cds-cdl-csn-and-jq-finding-associations.json"},{"ref":"content:cap-cors-and-custom-headers","name":"CAP, CORS and custom headers","json":"/content/cap-cors-and-custom-headers.json"},{"ref":"content:iso-content-for-common-cap-types","name":"ISO content for common CAP types","json":"/content/iso-content-for-common-cap-types.json"},{"ref":"content:cap-is-important-because-its-not-important","name":"CAP is important because it's not important","json":"/content/cap-is-important-because-its-not-important.json"},{"ref":"content:computed-field-example-in-cap","name":"Computed field example in CAP","json":"/content/computed-field-example-in-cap.json"},{"ref":"content:set-up-vs-code-on-chrome-os-for-local-cap-development","name":"Set up VS Code on Chrome OS for local Application Programming Model development","json":"/content/set-up-vs-code-on-chrome-os-for-local-cap-development.json"},{"ref":"content:sap-cloud-application-programming-model-start-here","name":"SAP Cloud Application Programming Model (CAP) - start here","json":"/content/sap-cloud-application-programming-model-start-here.json"},{"ref":"content:cap-node-js-expert-session-6-the-mcp-adapter","name":"CAP Node.js Expert Session #6 - The MCP Adapter","json":"/content/cap-node-js-expert-session-6-the-mcp-adapter.json"},{"ref":"content:sap-tutorial-cap-examine-mcp-startup","name":"Examine the details of the Model Context Protocol on startup","json":"/content/sap-tutorial-cap-examine-mcp-startup.json"},{"ref":"content:teched-2026-xp265","name":"Define, generate, deploy: AI-driven spec-first Terraform","json":"/content/teched-2026-xp265.json"}]}}