Documenting AI-generated code commits
With ever-more program code created through generative AI,
it is important to document its provenance.
In industry this can help
diagnose the root cause of problems discovered long after the code was written,
locate issues with a similar cause,
and evaluate the cost and benefits of AI.
In educational settings it can help students be honest, mindful, reflective,
and transparent regarding their use of generative AI
and provide educators with data they can use
to evaluate objectively student work.
In both settings, provenance information can guide a code review’s focus
because humans and AI fail in different ways.
Continue reading "Documenting AI-generated code commits"Last modified: Wednesday, July 8, 2026 11:00 am
Why I choose email over messaging
My colleagues and friends know that I prefer to communicate
with them via email rather than chat messaging.
There are many benefits in such a choice.
You may want to consider them and adopt the same stance.
Continue reading "Why I choose email over messaging"Last modified: Monday, March 2, 2026 6:47 pm
IBAN length and DESI score
Looking at the formats
of European country international bank account number (IBAN) codes,
I noticed that the IBAN length didn’t seem to be significantly
correlated to the country’s population.
Could it be related to the country’s IT maturity?
I tested that using as a proxy the
EU Digital Economy and Society Index,
and the results were stunning.
Continue reading "IBAN length and DESI score"Last modified: Thursday, August 13, 2020 1:16 pm
Interoperability, at Last
Language is a very powerful way to describe behavior.
Therefore even when I create pictures, instead of dragging around my mouse,
I use declarative tools like GraphViz,
gnuplot,
and
UMLGraph.
These allow me to describe what I want to draw, instead of
how I want the end-result to look like.
The truth however is that the end-results are not always perfect.
Today I realized that the state of the art has advanced to the point
where I can create the drawing declaratively, and then visually
polish the final drawing.
Continue reading "Interoperability, at Last"Last modified: Saturday, May 24, 2008 9:48 pm
The Double-Edged Sword of Proprietary Platforms
A recent
Slashdot article comment
wondered how Windows Vista managed to break existing applications,
despite Microsoft having complete control over the platform.
Continue reading "The Double-Edged Sword of Proprietary Platforms"Last modified: Thursday, June 21, 2007 11:28 am
Dave Prosser's C Preprocessing Algorithm
For about five years I've been trying to implement a fully conforming
C preprocessor for the front end of the
CScout refactoring browser.
I've found this to be a fiendishly difficult task.
Although what I have written can correctly process million-line
real-life projects, every once in a while I come across a construct
that confuses my implementation.
While searching the web for explanations of some of the finer points
of the C standard I came across a reference to an algorithm by
Dave Prosser that the X3J11 (ANSI C standard) committee used as a basis
for the standard's wording.
Continue reading "Dave Prosser's C Preprocessing Algorithm"Last modified: Monday, June 26, 2006 7:15 pm
Interoperability Requires Temperance
After testing the CScout refactoring browser
on the FreeBSD kernel, I decided
to try it on Linux.
I'm getting there, but slowly, and the reason is the gratuitous use of
gcc extensions made in the Linux kernel source code.
Every time I come across a program construct that CScout doesn't
grok, I have to study the C standards to see if the construct is legal C
that CScout fails to implement or a gcc extension.
Extensions are trouble, because, they're typically only vaguely documented.
Continue reading "Interoperability Requires Temperance"Last modified: Sunday, June 25, 2006 7:01 pm
Project Asset Portability
It's said that real computer scientists don't program in assembler; they don't write in anything less portable than a number two pencil. Joking aside, at the end of the 1970s, the number of nonstandard languages and APIs left most programs tied to a very specific and narrow combination of software and hardware. Entire organizations were locked in for life to a specific vendor, unable to freely choose the hardware and software where their code and data would reside. Portability and vendor independence appeared to be a faraway, elusive goal.
Continue reading "Project Asset Portability"Last modified: Tuesday, December 12, 2006 8:20 pm
Book Review: C++ Coding Standards
A number of years ago, reading Koenig's and Moo's
Ruminations on C++ [1] I made a wish for more of the
same, updated to reflect current C++ practice.
My wish has come true.
The book
C++ Coding Standards: 101 Rules, Guidelines, and Best Practices
by Herb Sutter and Andrei Alexandrescu [2]
is an indispensable book for all serious C++ programmers.
Continue reading "Book Review: C++ Coding Standards"Last modified: Sunday, November 14, 2004 4:41 pm