Stephen W Strom
@ahimsasystems.com
'Technological innovation can be a form of participation in the divine act of creation. It carries an ethical and spiritual weight, for every design choice expresses a vision of humanity.' Pope Leo XIV on X
November 9, 2025 at 12:46 PM
'Technological innovation can be a form of participation in the divine act of creation. It carries an ethical and spiritual weight, for every design choice expresses a vision of humanity.' Pope Leo XIV on X
This was one of the best descriptions I've seen of the summer/winters of AI. FYI, I really got started during the second AI summer.
The third AI summer: AAAI Robert S. Engelmore Memorial Lecture - Kautz - 2022 - AI Magazine - Wiley Online Library onlinelibrary.wiley.com/doi/10.1002/...
The third AI summer: AAAI Robert S. Engelmore Memorial Lecture - Kautz - 2022 - AI Magazine - Wiley Online Library onlinelibrary.wiley.com/doi/10.1002/...
The third AI summer: AAAI Robert S. Engelmore Memorial Lecture
Click on the article title to read more.
onlinelibrary.wiley.com
September 11, 2025 at 12:51 PM
This was one of the best descriptions I've seen of the summer/winters of AI. FYI, I really got started during the second AI summer.
The third AI summer: AAAI Robert S. Engelmore Memorial Lecture - Kautz - 2022 - AI Magazine - Wiley Online Library onlinelibrary.wiley.com/doi/10.1002/...
The third AI summer: AAAI Robert S. Engelmore Memorial Lecture - Kautz - 2022 - AI Magazine - Wiley Online Library onlinelibrary.wiley.com/doi/10.1002/...
Kernighan and Plauger's Elements of Programming Style, published in 1974 and 1978, is still remarkably applicable to today's programming once account is made for its examples in Fortran 66 and PL/I. 'Localize input and output in subroutines.' Don't put SQL in your business methods.
August 11, 2025 at 8:23 PM
Kernighan and Plauger's Elements of Programming Style, published in 1974 and 1978, is still remarkably applicable to today's programming once account is made for its examples in Fortran 66 and PL/I. 'Localize input and output in subroutines.' Don't put SQL in your business methods.
Reposted by Stephen W Strom
I like this mental model in how to think about engineering (including software engineering).
It is a combination of building stuff for production, crafting, commercial production and science.
From the book Software Architecture by Mary Shaw and David Garlan
It is a combination of building stuff for production, crafting, commercial production and science.
From the book Software Architecture by Mary Shaw and David Garlan
August 10, 2025 at 11:44 AM
I like this mental model in how to think about engineering (including software engineering).
It is a combination of building stuff for production, crafting, commercial production and science.
From the book Software Architecture by Mary Shaw and David Garlan
It is a combination of building stuff for production, crafting, commercial production and science.
From the book Software Architecture by Mary Shaw and David Garlan
Root Cause Analysis: Choose from 1 of the following: (1) Network error. (2) Database error. (3) Coding error. Did I miss any? 😉
August 8, 2025 at 12:57 PM
Root Cause Analysis: Choose from 1 of the following: (1) Network error. (2) Database error. (3) Coding error. Did I miss any? 😉
'In his personal copy of DeWitt’s description of the many-worlds interpretation, Everett wrote the word “bullshit” next to the passage where DeWitt presented Graham’s discussion of the branching process and Everett’s typicality measure.'
August 5, 2025 at 2:08 PM
'In his personal copy of DeWitt’s description of the many-worlds interpretation, Everett wrote the word “bullshit” next to the passage where DeWitt presented Graham’s discussion of the branching process and Everett’s typicality measure.'
I wish all the people who talk about how much they miss Common Lisp would just start using Common Lisp again.
July 27, 2025 at 1:33 PM
I wish all the people who talk about how much they miss Common Lisp would just start using Common Lisp again.
There are 3 books I remember clearly exactly when and where I was when I began reading them: (1) Foundation by Isaac Asimov, (2) Triplanetary by EE Smith, and (3) Pride of Chanur by C.J. Cherryh, in Science Fiction digest excerpt.
July 18, 2025 at 1:08 PM
There are 3 books I remember clearly exactly when and where I was when I began reading them: (1) Foundation by Isaac Asimov, (2) Triplanetary by EE Smith, and (3) Pride of Chanur by C.J. Cherryh, in Science Fiction digest excerpt.
chenup is a new persistence architecture based on our 30 years of experience with full OO and ORM approaches. The most important (but not the only) feature is the elevation of associations to 1st-class status, as shown in the JPA vs chenup diagrams below (based on the Spring pet shop example).
July 18, 2025 at 12:50 PM
chenup is a new persistence architecture based on our 30 years of experience with full OO and ORM approaches. The most important (but not the only) feature is the elevation of associations to 1st-class status, as shown in the JPA vs chenup diagrams below (based on the Spring pet shop example).
I keep seeing java 'LocalDate' used to mean the date where the application is being run. An example of this is in the Spring Petclinic application, where it is used to represent the data of an appointment. This is not a good use for it.
July 15, 2025 at 6:08 PM
I keep seeing java 'LocalDate' used to mean the date where the application is being run. An example of this is in the Spring Petclinic application, where it is used to represent the data of an appointment. This is not a good use for it.
'Reification' is a standard term in object-oriented analysis. There is over a century of analysis of why this is a bad, even unethical, idea.
July 15, 2025 at 6:00 PM
'Reification' is a standard term in object-oriented analysis. There is over a century of analysis of why this is a bad, even unethical, idea.
Biological taxonomy is a common but terrible example to use for object-oriented analysis and design in statically and class-based approaches.
July 11, 2025 at 2:04 PM
Biological taxonomy is a common but terrible example to use for object-oriented analysis and design in statically and class-based approaches.
'Everything is an object' and message passing were interesting approaches to software development which we should now be decades past understanding their limitations and the need for additional semantic content.
July 6, 2025 at 1:14 PM
'Everything is an object' and message passing were interesting approaches to software development which we should now be decades past understanding their limitations and the need for additional semantic content.
A 'relation' is not a 'relationship'. This continues to be a huge confusion within the database world.
July 6, 2025 at 1:00 PM
A 'relation' is not a 'relationship'. This continues to be a huge confusion within the database world.
Admirably, JPA does allow moving from one relational database to another with relatively minor pain, but unlike JDO, it is really specifically for RDBs and cannot be retargeted to other types of database.
June 26, 2025 at 11:55 AM
Admirably, JPA does allow moving from one relational database to another with relatively minor pain, but unlike JDO, it is really specifically for RDBs and cannot be retargeted to other types of database.
Almost all ORMs treat the database as a data dump, not really integrating with the RDB and making it dangerous to update the database from outside the Java application because it is easy to violate a constraint that the ORM enforces.
June 26, 2025 at 11:30 AM
Almost all ORMs treat the database as a data dump, not really integrating with the RDB and making it dangerous to update the database from outside the Java application because it is easy to violate a constraint that the ORM enforces.
The Java Persistence Architecture makes it very difficult to manage objects across database transactions boundaries, violating the normal flow of keeping lengthy business logic out of DB transactions.
June 26, 2025 at 11:27 AM
The Java Persistence Architecture makes it very difficult to manage objects across database transactions boundaries, violating the normal flow of keeping lengthy business logic out of DB transactions.
Almost all object databases and object-relational mapping (ORM) frameworks, including JPA, do not treat relationships as first-class. The result is that entities are coupled directly, inhibiting reuse and requiring features like lazy-loading.
June 26, 2025 at 11:20 AM
Almost all object databases and object-relational mapping (ORM) frameworks, including JPA, do not treat relationships as first-class. The result is that entities are coupled directly, inhibiting reuse and requiring features like lazy-loading.
The Jakarta Persistence Architecture (JPA) has multiple flaws. Future posts will list these flaws, but reviewing (1) Chen's original paper on the Entity-Relationship model and (2) the Java Data Objects (JDO) spec will reveal many of them.
June 25, 2025 at 1:35 PM
The Jakarta Persistence Architecture (JPA) has multiple flaws. Future posts will list these flaws, but reviewing (1) Chen's original paper on the Entity-Relationship model and (2) the Java Data Objects (JDO) spec will reveal many of them.
A system is well-designed if it minimizes lifecycle cost (Taguchi) and distributes the burden of change and failure such that the worst-off participant is still treated fairly (Rawls).
June 3, 2025 at 1:03 PM
A system is well-designed if it minimizes lifecycle cost (Taguchi) and distributes the burden of change and failure such that the worst-off participant is still treated fairly (Rawls).
If you're using Crow's Foot notation for your data models, you're not doing E-R modeling—you're doing E-E modeling. Peter Chen's original E-R paper from 1977 dl.acm.org/doi/10.1145/... is worth a read or re-read, and a look back at Aristotle's Categories wouldn't hurt, either.
The entity-relationship model—toward a unified view of data | ACM Transactions on Database Systems
A data model, called the entity-relationship model, is proposed. This model incorporates
some of the important semantic information about the real world. A special diagrammatic
technique is introduced...
dl.acm.org
June 1, 2025 at 1:15 PM
If you're using Crow's Foot notation for your data models, you're not doing E-R modeling—you're doing E-E modeling. Peter Chen's original E-R paper from 1977 dl.acm.org/doi/10.1145/... is worth a read or re-read, and a look back at Aristotle's Categories wouldn't hurt, either.
Relational databases are actually very bad at modeling relationships.
June 1, 2025 at 12:54 PM
Relational databases are actually very bad at modeling relationships.
‘…in 1966 … Bell … showed that quantum mechanics could permit hidden variables after all. … However, [Grete] Hermann had reported the very same error in her 1933 paper, and again in her 1935 essay…’ physicsworld.com/a/grete-herm...
Grete Hermann: the quantum physicist who challenged Werner Heisenberg and John von Neumann – Physics World
Sidney Perkowitz pays tribute to the pioneering contributions to quantum physics by Grete Hermann
physicsworld.com
April 23, 2025 at 10:05 AM
‘…in 1966 … Bell … showed that quantum mechanics could permit hidden variables after all. … However, [Grete] Hermann had reported the very same error in her 1933 paper, and again in her 1935 essay…’ physicsworld.com/a/grete-herm...
Patterns are meant to be generative, not descriptive.
March 30, 2025 at 12:42 PM
Patterns are meant to be generative, not descriptive.