DJ Adams

Blog posts tagged "opinion"

  1. Knowledge and netiquette in today's AI era

    What I took from a couple of great podcast episodes I listened to this morning.

  2. Timeless principles, agnostic design and the power of CAP's abstractions

    The timeless principle of agnostic design, aka minimal assumptions, is strongly present in CAP. In this post I explain what this principle represents, based on the corresponding section of Daniel Hutzel's keynote at reCAP 2026.

  3. Computing memories

    Some brief thoughts on history and how we used to have to make things work, sometimes in painstaking detail.

  4. Blogging in en-GB

    I've changed the language declaration on my website to en-GB. Here's why.

  5. Book Overflow and two architectural patterns in CAP

    In this short post I note a couple of software architecture patterns that were mentioned in a recent Book Overflow episode, patterns that are clear and present in CAP.

  6. Improving the SAP Community together, one comment at a time

    A suggestion on how we can work together to make the SAP Community better.

  7. Shift left with CAP

    In this post I posit that shifting left in our CAP based solutions is something that we should be striving to do.

  8. Why I use services.cds in simple CDS model examples

    The services.cds filename is special, which is why I make use of it.

  9. Some ramblings on simple CDS modelling with CDL

    A brief note-to-self after digging in to some simple constructs in CDS modelling.

  10. CDS source formatting and readability

    Embracing a modern approach to source code formatting for human-centric modelling in CAP

  11. The elements of programming with respect to CDL and SICP

    Drawing parallels between the elements of programming in SICP and CDS's Conceptual Definition Language.

  12. Five reasons to use CAP

    Five compelling reasons to embrace SAP's Cloud Application Programming Model, from its framework-first philosophy to its agnostic design principles.

  13. Accuracy and precision in language

    Arguing for accuracy and precision in language, especially the distinction between blogs and blog posts.

  14. From Twitter to Mastodon

    Moving off Twitter at the end of 2023 and explaining the reasons for the switch to Mastodon.

  15. Living on a narrowboat - embracing constraints

    Embracing the constraints of living on a narrowboat as a positive force.

  16. I'm moving onto a narrowboat

    Announcing my decision to have a narrowboat built and to live and work from it.

  17. Stop asking for slides in advance

    I'm giving a talk next month and was asked by the organiser to send my slides to them no later than two weeks before the event. Hmm.

  18. Some thoughts on jq and statelessness

    Reflecting on jq's stateless nature after reading about zq as an alternative.

  19. A classic example of yak shaving, and some stream editing

    Descending through multiple levels of classic yak shaving and ending up learning some stream editing.

  20. Allowing my intangible core to catch up with the rest of me...

    Reflecting on narrowboat trips and allowing my intangible core to catch up with the rest of me.

  21. Unix tooling - join, don't extend

    Reading a 1984 paper by Pike and Kernighan helped crystallise an important axiom in Unix tool design about joining programs rather than extending them.

  22. Early thoughts on Warp

    Some very early thoughts on Warp, the pro terminal designed for everyday use.

  23. Equality in tech

    A short statement on supporting equality in tech.

  24. Supporting developers with sponsorship

    Using the sponsors facility on GitHub to support developers whose work I value.

  25. Mainframes, SDSF and GitHub Actions

    The combination of GitHub Actions workflows, mainframes and SDSF that I cannot get out of my head.

  26. Deeper connections to everyday tools

    Wanting to learn more about the everyday tools I use, because with some things ignorance is not bliss.

  27. A new journal experiment - Thinking Aloud

    I'm trying out a new way of sharing thoughts in a GitHub issues based journal style blog called "Thinking Aloud".

  28. Thoughts on video content

    Thoughts on video content form, length, frequency and more, especially in a developer advocacy and learning context.

  29. Do less and do it better

    Consolidating and improving existing skills rather than adding more in 2021, and the inspiration behind that decision.

  30. Waiting for jobs, and the concept of the shell

    How Bash's wait builtin deepened my understanding of Bash scripting as a language.

  31. Reducing writing friction

    A simple script to reduce writing friction and make it easier to start and publish blog posts.

  32. Help us to help you - good questions beget good answers

    Suggesting key aspects of composing good questions to help community members provide better answers.

  33. CAP is important because it's not important

    Considering what CAP really is, what it gives us, and why its transparency is what makes it important.

  34. Shell power and simplicity

    Reflecting on the often overlooked power and simplicity of shell programming concepts.

  35. Hitchhiker's style in Sea of Sorrows

    Exploring a possible link between a scene in Alien: Sea of Sorrows and a scene in The Hitchhiker's Guide To The Galaxy.

  36. We can do better than 'polynimbus'

    Questioning the use of the word polynimbus and advocating for clearer language in tech.

  37. The Observer's Book of JS Style

    Reflecting on JavaScript coding style through the lens of an Observer's Book approach.

  38. First thoughts on the 2019 Stack Overflow Developer Survey results

    Sharing initial observations on the 2019 Stack Overflow Developer Survey results.

  39. ES6, reduce and pipe

    In learning about functional programming, one thing that's worked for me is to take my time, and not rush over fundamental concepts. In fact, like a good beer or whisky, a fundamental concept is something to savour, to enjoy at a leisurely pace.

  40. Monday morning thoughts: looking back and forwards

    I look back on the posts in this series, reflect upon the journey we've made, and think about what 2019 might hold for us.

  41. Monday morning thoughts: digging deeper

    I think about the tools we use in our day-to-day activities, the feeling I have that I'm just scratching the surface with regards to their capabilities, and what I plan to do about it in 2019.

  42. Monday morning thoughts: indirect influence

    On how our work can directly and even indirectly influence those that come after us, and about what this means for how we should act.

  43. Monday morning thoughts: learning media and mechanisms

    I think about the different ways I learn, and wonder how that translates to how we learn in the SAP developer ecosphere.

  44. Monday morning thoughts: rethinking like the web

    I revisit some principles that help us "think like the web" and think about them in the context of today's SAP technology landscape and community.

  45. Monday morning thoughts: longevity and loose coupling

    I think about the importance of core technologies, and how the arrival of functions-as-a-service might be merely the next incarnation of an idea that's existed for a while.

  46. Monday morning thoughts: on starting blogging

    On what made me start blogging, and on the reasons to start blogging that might resonate with you, if you've not yet made that step.

  47. Monday morning thoughts: exploring reuse

    I think about reuse and extension, in the context of the Application Programming Model for SAP Cloud Platform, and mindful of Björn Goerke's SAP TechEd 2018 keynote message in Barcelona - "keep the core clean".

  48. Monday morning thoughts: dynamic language

    Musings on a particular function definition in JavaScript, and how it represents beauty and practicality in equal measure.

  49. Monday morning thoughts: big school and community

    On my experience going from primary school to secondary school - "big school", how that parallels our collective move from on-prem to the cloud, and how the community is more important than ever in this transition.

  50. Monday morning thoughts: more on ABAP in the cloud

    Following a previous post on the subject, I think a bit more about the SAP Cloud Platform ABAP Environment, inspired by the conversations around the subject at SAP TechEd in Las Vegas last week.

  51. Monday morning thoughts: impostor syndrome

    On the impostor syndrome, how it relates to me, and one of the possible causes.

  52. Monday morning thoughts: growth is upwards

    In this post, I think about how we grow, how we improve ourselves by adding to our knowledge and experience, and consider that our growth is sometimes uphill but almost always rewarding.

  53. Monday morning thoughts: Workflow Forms and the definition of a developer

    I think briefly about the definition of a developer, and in that context look at the advent of Workflow Forms, a major new addition to the functionality of the Workflow service on SAP Cloud Platform.

  54. Monday morning thoughts: ABAP in the cloud

    I think about the new SAP Cloud Platform ABAP Environment, what it is, what it isn't, and why I think it's a great move.

  55. My take on Wired's Google & URLs article

    Sharing my discomfort with Google's rethinking of URLs as reported by Wired.

  56. Monday morning thoughts: considering GraphQL

    On GraphQL, and its relationship with existing ideas for managing data and structured exposure to that data over a wire protocol.

  57. Monday morning thoughts: a good blog post

    What makes a good blog post, and also what writing such a post does for the author, too.

  58. Monday morning thoughts: OData

    I think about OData, in particular where it came from and why it looks and acts like it does. I also consider why I think it was a good protocol for an organisation like SAP to embrace.

  59. Monday morning thoughts: the cloud is the computer

    I think about what the future of programming in an enterprise environment might look like, and realise that it makes sense to consider that the cloud itself is the new computer.

  60. Monday morning thoughts: mainframes and message documentation

    I think about mainframes and a message documentation aspect from the mainframe world that, while originally proprietary, is a big plus for operators and developers alike and something I'd love to see return.

  61. Monday morning thoughts: local http servers and containerisation

    I look back on an idea surfaced by a hero of mine, and think about how that idea laid the path for today's containerisation initiatives.

  62. Monday morning thoughts: what not how

    In this post, I think about how we program, about the way we describe what it is that we want the computer to do for us, and look at what has become for me the canonical example of the difference between 'what' and 'how'.

  63. Monday morning thoughts: abstraction

    I think about abstraction, the power and facility it affords, and consider CDS as one example of a modern abstraction language.

  64. Monday morning thoughts: curiosity and understanding

    I think about how curiosity can lead to a better understanding of things, and give a specific example concerning CDS and the new Application Programming Model for SAP Cloud Platform.

  65. Monday morning thoughts: developers and advocacy

    I think about what it means to me to be a part of the Developer Relations team, and talk a bit about evangelism, outreach and advocacy.

  66. Monday morning thoughts: programming models

    I think about the idea of the programming model and consider the occurrence of such over the recent years in the SAP development ecosphere.

  67. Monday morning thoughts: community engagement

    I think about some of the basic ingredients of a good online community, and describe what I'm going to try to do to engage more with the SAP Community.

  68. Monday morning thoughts: Core Data Services

    What Core Data Services (CDS) is, what it does, and why we should make it a priority to learn more about.

  69. Monday morning thoughts: the learning continuum

    I contemplate the idea of the learning continuum, and think about the fact that we're all learning together, which is a good thing.

  70. Monday morning thoughts: programmers and identity

    On how some programmers identify strongly with a particular language, consider the meanings of 'programmer', 'coder' and 'developer', and what it means for us as the SAP enterprise programming landscape changes.

  71. Collaboration tools

    Setting out my preferences for collaboration tools that support realtime multi-user editing.

  72. Monday morning thoughts: milestones

    I look back at changes and developments that I consider milestones in SAP's technology history, and muse on some of the developments today that we'll consider milestones in the future.

  73. Monday morning thoughts: functions - what functions?

    Musings on the concept of functions-as-a-service, what it means, and what it's good for.

  74. Balancing features with simplicity

    Considering the balance between features and simplicity, prompted by a ChromeOS forum thread.

  75. Monday morning thoughts: containers and silence

    On the silence of workstations and what that represents to me, and the new ability to look at maintaining software and services in a completely different way - via containers.

  76. Monday morning thoughts: editors and editing

    I look at how the editor environments that we come across in our daily work are different, and, as those differences might grow and expand as we become cloud native, how we bridge the contrast in facilities with core obsessions such as correct indentation and whitespace.

  77. Monday morning thoughts: debugging approach and Greasemonkey revival

    Thinking about debugging approaches and reviving Greasemonkey for improving the web experience.

  78. Monday morning thoughts: upload / download in a cloud native world

    On how our modus operandi is often at odds with the true nature of cloud computing.

  79. Monday morning thoughts: a cloud native smell

    On the importance and design of URLs, and the opacity of cattle vs the individuality of pets.

  80. Monday morning thoughts: cloud native

    What does it mean to be "cloud native"?

  81. Thoughts on what's next for the SAP Community

    My thoughts on the SAP community (small 'c') and the SAP Community platform.

  82. Coming Home

    On joining SAP as a Developer Advocate.

  83. Consumption-based SCP Pricing - Initial Thoughts

    Looking at the the new pricing approach for SAP Cloud Platform.

  84. Things I do to make my work life better

    Notes on how I try to approach practical aspects of my working life.

  85. SCP Business Rules Roadmap - 5 Observations

    Sharing five observations on the SAP Cloud Platform Business Rules service roadmap.

  86. SAP Cloud Platform Pricing

    Looking into SAP Cloud Platform pricing and finding it less than straightforward.

  87. Meeting Request Details

    More on courtesy and respect at work.

  88. The beauty of recursion and list machinery

    Exploring the beautiful patterns inherent in recursion and list processing in functional programming.

  89. Reaching out to the new new kingmakers

    Sharing insights from the SAP Developer Advisory Board meeting on SAP's commitment to connecting with developers.

  90. Better collaboration through chemistry

    Reflecting on better collaboration through understanding and chemistry while working alongside a client on Fiori.

  91. The Fiori revolution - disruption at its best

    Three disruptive aspects of SAP Fiori and why they are important for enterprises in the digital era.

  92. Community and Collaboration at SAP Inside Track Manchester

    Reporting on the community and collaboration at SAP Inside Track Manchester 2016.

  93. Understanding the SAP Fiori Cloud Edition

    Providing an overview of the SAP Fiori Cloud Edition, how it works and what benefits it brings.

  94. Top 10 misconceptions about Fiori

    Addressing the top ten misconceptions and misunderstandings about SAP Fiori.

  95. Language minutiae and learning to SWIM

    Discovering small language details in Clojure while solving puzzles and learning to SWIM.

  96. Enlightenment in action

    On my journey to learn Clojure by solving 4Clojure challenges.

  97. The evolution of the SAP community

    Looking at how the SAP community has evolved over the years as I join the new Mentors Advisory Board.

  98. The future of app building on the SAP HANA Cloud Platform

    Exploring one particular facet of the multi-faceted SAP HANA Cloud Platform and the future of app building.

  99. Digital devolution in local authorities - putting people first

    In a couple of weeks' time, Bluefin Solutions is running a one day event on delivering digital devolution in local authorities. If you look closely there's a clear user-centric pattern that is emerging.

  100. My journey to Clojure

    I'm learning Clojure. Slowly, but hopefully surely.

  101. A meditation on reduction

    Looking at a version of the reduce function written in Clojure, from Do Things: a Clojure Crash Course.

  102. Give me a browser, and I'll give you the world

    Exploring how a web-only developer workflow is possible right now using cloud-based tools.

  103. The advent of UI5 1.30 and what it means for us

    Reflecting on the milestone UI5 1.30 release and what it signifies for the toolkit's maturity.

  104. Building blocks for the future normal

    Arguing that understanding UI5 is key to embracing the future normal of SAP with S/4HANA and Fiori.

  105. The origin of becoming a fundamental enabler for Fiori

    30 Days of UI5 - day 30 by Sam Yen.

  106. A non-techie PM's view of UI5

    30 Days of UI5 - day 27 by Jon Gregory.

  107. UI5 - looking back and forward

    30 Days of UI5 - day 26 by DJ Adams.

  108. UI5 and Fiori - The Story of Open and Free

    30 Days of UI5 - day 17 by John Appleby.

  109. UI5 and Coding Standards

    30 Days of UI5 - day 16 by DJ Adams.

  110. Email discipline

    Email is asynchronous, and that's a good thing.

  111. Making Information More Useful

    Explaining my approach to making information more accessible and useful through links and references.

  112. The maker's schedule, restraint and flow

    My thoughts on schedules and saying 'no'.

  113. Why I'm Staying Close to UI5

    Explaining why I'm staying close to UI5 in response to an article about staying clear of it.

  114. Can I build a Fiori app? Yes you can!

    Making the case that building Fiori apps is achievable and explaining what it involves.

  115. 10 tips to get you started on your Fiori development journey

    Offering ten practical tips for getting started on a Fiori development journey.

  116. UI5 features for building responsive apps

    Exploring the responsive design features in UI5 for building Fiori apps that work across devices.

  117. DNA is still in our DNA

    Reflecting on how SAP's DNA of innovation persists even as technologies like Internet Explorer fade away.

  118. The inaugural SAP architect and developer summit

    Reflecting on my experience speaking at the inaugural SAP Architect and Developer Summit in Sydney.

  119. Addressing emails

    Showing respect and courtesy by appropriate use of TO and CC.

  120. This Week in Fiori (2014-28)

    Covering week 28 of Fiori news including app analysis tools and technical content.

  121. This Week in Fiori (2014-27)

    Launching the This Week in Fiori series with commentary on the growing interest in SAP Fiori and UX.

  122. SAP Developer Advisory Board - Your Input!

    Asking the SAP developer community for input ahead of the Developer Advisory Board meeting.

  123. Reaching Out

    Examining SAP's journey of reaching out to the wider developer community over four decades.

  124. The essentials - SAPUI5, OpenUI5 and Fiori

    An overview of SAPUI5, OpenUI5 and SAP Fiori, explaining what each is, how they relate to each other, and why they matter.

  125. M is for 'responsive'

    Exploring what responsive design means in the context of Fiori and the mobile revolution.

  126. Help us to help you - share your code

    Encouraging folks to share code via Gists and GitHub repos when asking for help with UI5 issues.

  127. Meta education - or teaching the teachers

    Exploring meta education and the importance of teaching teachers computational thinking skills.

  128. Engaging the Next Generation

    Reflecting on my involvement with Young Rewired State and engaging the next generation of coders.

  129. Happy Birthday SCN, Old Friend

    Reflecting on ten years of the SAP Community Network and my involvement from the very beginning.

  130. CodeClub Thoughts

    Sharing thoughts and experiences from leading a CodeClub at my local primary school.

  131. Our computational future

    Making the case for teaching computational thinking and coding skills to the next generation in the UK.

  132. 30 Days Challenges

    Starting a series of 30-day challenges inspired by Matt Cutts as an alternative to New Year's resolutions.

  133. The Silent Club and Recharging Alone

    Reflecting on the Silent Club concept and the importance of recharging alone as an introvert.

  134. SAPUI5 - the future direction of SAP UI development?

    Looking at SAPUI5 as the future direction of SAP UI development.

  135. On Enterprise Geeks Podcast

    Appearing on the Enterprise Geeks podcast after reconnecting at SAP DKOM.

  136. On the Information Diet

    Reflecting on the movement to consume less information and produce more.

  137. The Developer Renaissance

    Interviewing SAP's Aiaz Kazi on the developer renaissance at SAP TechEd in Madrid.

  138. SOA scaffolding and development architects

    Reflecting on where SOA stands today and the role of development architects in service orientation.

  139. Danger! Graduate Conveyor-belt!

    Responding to John Appleby's piece on university degrees and the IT industry with thoughts on education and learning.

  140. The past and future of SAP integration: guest Bluefin blog post

    I wrote a guest blog post on the Bluefin Solutions website, about the Project Gateway.

  141. Project Gateway. A call to arms. Or at least to data.

    This was a guest blog post on Bluefin Solutions website which I wrote to herald a major turning point in SAP software's integration trajectory.

  142. Not your father's SAP

    Some thoughts following the Innovation Weekend 2010 at SAP.

  143. Mainframes and the cloud - everything old is new again

    Drawing parallels between mainframe computing and the cloud, noting how everything old is new again.

  144. Command lines of the future, and simplicity of integration

    Thinking about chat-style interfaces as command lines of the future and their implications for integration.

  145. Google Wave, XMPP and complexity

    Considering the complexity of Google Wave and XMPP versus the incremental approach of the web.

  146. Information vs Behaviour

    Architectures, axioms and ROA vs SOA.

  147. Twitter's success

    Thoughts on messaging, microblogging, and Twitter's success.

  148. Java and Gosling's FUD - madness or desperation?

    Questioning James Gosling's FUD about dynamic languages in the context of Java's declining dominance.

  149. SAP and Open Source: the debate continues

    Continuing the debate on SAP and open source following my earlier analysis and letter.

  150. SAP and Open Source: an analysis and letter to SAP and Shai

    Analysing SAP's position on open source and writing an open letter to SAP and Shai Agassi.

  151. Whither SAP?

    I’ve been thinking a lot recently about where SAP is going and what SAP is doing today, especially in the light of where it went and what it did in the past. To be honest, the thinking has been triggered by frustration at the nuts and bolts of SAP technical matters, particularly in the area of service support and basis work.

  152. The SAP developer community 10 years ago

    On the early years of the SAP community online.

  153. SAP: temporary loss of touch with reality?

    Responding to Shai Agassi's questionable views on open source software at Sapphire in Boston.

  154. Ubuntu? Thanks. But no thanks.

    Lots of people seem to be very impressed with Ubuntu, the slick new Linux distro based on Debian, running Gnome.

  155. Europe, SAP, and two-way conferences

    It’s the end of the week that saw the SDN Meets Labs down in Walldorf.

  156. An overcorrection too far?

    Norman Walsh gives up ‘wrestling his way through the arcana of WSDL’.

  157. Honest application requirements

    An unusual "user story".

  158. The integration irony of SAP's technology directions

    I’ve finally realised what it is that’s been bugging me about the new arena of SAP technology.

  159. Forget SOAP - build real web services with the ICF

    I don’t like getting into a lather when it comes to data and function integration. Rather than using SOAP, I prefer real web services, built with HTTP.

  160. Tim O'Reilly and the three 'C's

    Well, I made it to FOSDEM this morning with time to spare.

  161. Food for thought: LDBs and ABAP Objects

    Musing on the relationship between Logical Databases and ABAP Objects while debugging output determination.

  162. Plums and the antithesis of technology

    I haven’t been online much recently.

  163. Dashboard, a compelling articulation for realtime contextual information

    Miguel de Icaza and Nat Friedman were keynoting at OSCON this morning.

  164. Thinking vs doing

    In the past, I’ve mentioned to friends some of the thinking I’ve had about the Semantic Web, RDF, and related stuff (FOAF, RSS, and so on).

  165. Weblogs and Wikis - Blurring the Boundaries

    More on the crossover between blogging and wikis.

  166. The fragility of retro-engineering

    Having to modify my allconsuming scripts because of differences between amazon.co.uk and amazon.com data.

  167. Wisdom, diplomacy, or serendipity?

    On the architectural style(s) of allcosuming.net's API.

  168. The universal canvas and RSS apps

    Thoughts on the applicability and utility of the format.

  169. Startups and software patents

    Dave W points to Strangeberry, a startup that are doing a Java rendition of Rendevous.

  170. For REST, read 'Architectural Style'

    In the swirling mass of memes surrounding web services it’s sometimes easy to forget that REST is an architectural style, an approach, rather than something that you install or debug.

  171. "Assaults on the Internet's end-to-end-architecture"

    What can and should we do about spam?

  172. A moment of clarity: The significance of RSS 1.0 as an RDF application

    It's to do with the emphasis on RDF rather than XML, in RSS.

  173. More thoughts to ponder

    Here are two or three thoughtbites that I’ve come across over the past few days and that have stayed with me. I just thought I’d share them here as it’s the weekend and often a good time to think about things.

  174. REST, Google, and idempotency

    Pondering the apparent conundrum of REST, Google and idempotency that Sam Ruby presented to Mark Baker.

  175. You know you're getting old ...

    Looking back on this year's OSCON.

  176. The OS tables are turning...

    The origins of one of my favourite phrases "Does not work on Windows".

  177. The mist is clearing ...

    On my continuing quest to grok REST.

  178. The 80/20 of HTTP

    Musing on how HTTP is used in the main.

  179. A change and a rest

    Back recharged from holiday.

  180. More thoughts on HTTP, Email, and Jabber

    On HTTP headers and queueing architectures.

  181. "Web^H^H^HInternet Services"? Some Ramblings.

    I’ve been pondering the term “Web Services”. While I completely understand and agree with all the reasonings behind the term (the ‘original’ services were accessible via web clients, HTTP is the underlying and ubiquitous transport, blah blah blah), I’m wondering whether “Web Services” is the best term to use.

  182. Mr 80-Percent

    Reflecting on the 80-percent approach to work and why working fewer hours can mean getting more done.

  183. community(disagreement + debate) = inspiration

    The debate between SOAP and REST.

  184. Bot window as command line of the future

    Musing on doing more from within the chatbot prompt.

  185. What is a Jabber client?

    "A rose is a rose, by any other name." But is the same true for a Jabber client? I don't think so.

See all tags.