2026-08-24

2026-08-24 Monday - On The Value of Diagrams

This post was inspired by my reply/comment to a LinkedIn post by Will Borici (Senior Consultant - Platform Strategy | Business Architecture (Data/AI-enabled); NTT DATA, Inc.)

 

[image credit: Vilkasss on pixabay dot com]

Over the weekend, I decided to get started building a piece of software that I have long wanted, and needed. In the past, I have used one commercially available software utility – but it was acquired, and is no longer available. Then I switched to using an open source utility – but it is no longer maintained.

So, I decided to begin.

But, beginning does not mean immediately writing code.

I had some very clear thoughts on what I wanted the software to do, but I wanted to explore the requirements, use cases, and design first.

So, I began drawing diagrams.
Diagrams allowed me to see layers of complexity – that if I had simply started coding – would have constrained, or made more difficult, implementing layers of features I *discovered* that I really wanted.

The more I drew, the more my vision became clearer, crisper, tangible. Reflecting on the diagrams - helped me to see which features to build first, and ways of making it more useful to others.


And, I was reminded, yet again ...
Drawing is a goodness, not a waste.
Even if the diagrams are thrown away, eventually.
Even if the diagrams are no longer maintained.

The diagrams are part of the process in creating great software products.
 

2026-08-10

2026-08-10 Monday - Suggested Background Reading: KnownDLLs, and DLL Search Order, Sideloading, Highjacking

 

[image source: seowoo_lee on pixabay dot com]

This blog post was motivated by reading the source code for Rufus (The Reliable USB Formatting Utility). In particular, see line #3388, rufus.c

"// Disable loading system DLLs from the current directory ..."
https://github.com/pbatard/rufus/blob/master/src/rufus.c

[also see my companion LinkedIn post]

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

Some suggested background reading on the topics of KnownDLLs, DLL Name Resolution, DDL Search Order, DLL Sideloading, and DLL Hijacking.  

knowndlls
https://docs.dissect.tools/en/stable/plugins/knowndlls.html


Virtual memory and KnownDlls
https://github.com/yo-yo-yo-jbo/virtual_memory_known_dlls


Microsoft: Dynamic-link library search order
https://learn.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order


How Windows DLL Name Resolution Works - Search Order and SxS (2026)
https://comcomponent.com/en/blog/2026/03/24/002-windows-dll-name-resolution/


DLLs and Ways They Can Hurt Us (2026)
https://www.cynet.com/security-foundations/attack-techniques/dlls-and-ways-they-can-hurt-us/


DLL Sideloading - beyond classic DLL Hijacking - Red team diaries (2026)
https://cp.center/en/blog/post/dll-sideloading-beyond-classic-dll-hijacking-red-team-diaries


Intruders in the Library: Exploring DLL Hijacking (2024)
https://unit42.paloaltonetworks.com/dll-hijacking-techniques/


Breaking into Libraries – DLL Hijacking (2024)
https://labs.jumpsec.com/breaking-into-libraries-dll-hijacking/


Windows DLL 101 (2024)
"What the heck is a DEE ELL ELL and how do I hijack it?"

https://cybytes.substack.com/p/cybytes-issue-1-windows-dll-101


DLL Search Order Hijacking (2023)
https://medium.com/@sealteamsecs/dll-search-order-hijacking-c9c46ea9026c


OpenFileMapping and KnownDlls (2023)
https://inbits-sec.com/posts/openfilemapping-and-knowndlls/


DLL Side Loading (2022)
https://twelvesec.com/2022/12/16/a-dll-side-loading-technique-in-teamspeak-server-that-gains-reverse-shell-with-ms-real-time-enabled/


The DLL Search Order And Hijacking It (2021)
https://malwareandstuff.com/the-dll-search-order-and-hijacking-it/


Detecting and blocking unknown KnownDlls (2021)
https://www.elastic.co/blog/detect-block-unknown-knowndlls-windows-acl-hardening-attacks-cache-poisoning-escalation


DLL Hijacking: Top 7 Attack Variants and 6 Ways to Mitigate Them 
https://www.airlockdigital.com/learn/dll-hijacking-top-attack-variants-and-ways-to-mitigate-them

 

2026-07-31

2026-07-31 Friday - Book Review : Deep Learning with R, Third Edition

 

[image source: Amazon.com]

Deep Learning with R, Third Edition
From first principles to generative AI

Published by: Manning

Authors:

✅ François Chollet

o   https://www.manning.com/authors/francois-chollet

o   https://www.linkedin.com/in/fchollet/ 

o   Founder of Keras

§  https://keras.io/

o   Co-Founder Ndea

§  https://ndea.com/

o   Co-Founder ARC Prize

§  https://arcprize.org/

o   https://intro.co/francoischollet

o   https://fchollet.com/

✅ Tomasz Kalinowski

o   https://www.manning.com/authors/tomasz-kalinowski

o   https://www.linkedin.com/in/t-kalinowski/ 

o    Engineering Manager, Posit (formerly RStudio) 

o   https://opensource.posit.co/people/tomasz-kalinowski/

o   https://posit.co/

o   https://github.com/t-kalinowski

o   https://bsky.app/profile/t-kalinowski.bsky.social

 Companion GitHub Repository

Publication Date: June 2, 2026

Pages: 648

My Review Rating5-Stars  

Also see my review on Amazon

My companion post on LinkedIn 

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

Review Title: A Master Class - A Deep Treatment of Deep Learning with R

My immediate first impression of this book:

👉 In one word: Excellence;

👉 In three words: Attention to Detail.

I will admit upfront that I am a longtime fan of François Chollet’s writing, and his creation of Keras (from Chapter 7, Section 7.1, “The design of the Keras API is guided by the principle of progressive disclosure of complexity: make it easy to get started, yet make it possible to handle high-complexity use cases while requiring only incremental learning at each step. Simple use cases should be easy and approachable, and arbitrarily advanced workflows should be possible.”).

I consistently find great value in the books he has written.

This book is no “flash in the pan” – with 20 chapters, and over 600 pages of content.

This is a book that will extend your knowledge and help deepen your understanding.

Beginning with ‘Chapter 2, The mathematical building blocks of neural networks’, the authors set out to give you a foundation of understanding. This type of foundational prep is missing in many books. Without understanding the fundamental concepts and principles, the reader may be able to do the mechanics of coding something – but will usually fall short in understanding and be unaware/unable to apply the appropriate concepts, where/when needed.

This is not a book that you should read quickly, nor is it a book you should assume to read only once.

To get the optimum benefit of this book, you must put in the work. Revisiting chapters, like an old friend.

You should approach reading this book, like you would if you wanted to build muscles in your mind. There will be effort required to build the skills that will develop intuition – and that’s what will likely differentiate the diligent reader who selects this book, from the dilettante that merely touches it with the fingertips.

The rewards will be many.

This book strikes an excellent balance between the narrative of teaching, and the steady pacing of hands-on coding examples (which are invariably well explained).

A key distinction that elevates this book above many others: It teaches the Why, not just What.

Also, I suspect that readers will be pleased with the quality of the illustrations, particularly those that immediately help illustrate possibly unfamiliar concepts.

In some Japanese arts, there is the concept of a shokunin. While it might be simplistically translated as “craftsman”, or “artisan” – the meaning is much deeper: It represents a profound lifelong vocational philosophy – a relentless, meditative drive to continuously refine their work. As researchers, writers, and teachers – the authors are just such master shokunin.

 

A minor update that will be required for the next edition of this book:

re: See page-15 ("AI is making major strides toward helping accelerate science. The AlphaFold model from DeepMind is helping biologists predict protein structures with unprecedented accuracy.")

2026-07-28:  Google DeepMind dismantles Nobel-winning AlphaFold team in strategy shift (Yahoo Finance > Financial Times)

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

Additional Reading Suggestions:

  1. R in Action, Third Edition: Data analysis and graphics with R and Tidyverse (2022)

 

2026-07-24

2026-07-24 Friday - Book Review: Software Security for Developers

Last Updated (see Addendums): 2026-08-07 Fri

[My LinkedIn companion post]

[image source: Amazon]



Book: Software Security for Developers: With Examples in Java and Spring

Publisher: Manning 

Publication Date: June 9, 2026

Authors

Adib Saikali
Distinguished Software Engineer @ Tanzu
Toronto, Ontario, Canada
https://www.linkedin.com/in/adibsaikali/

Laurentiu Spilca 
Principal Development Consultant, Endava
Bucharest, Romania
https://www.linkedin.com/in/laurspilca/?locale=en 

 

Review Rating4-Stars

Review Title: A good book for an introduction to Software Security - for both Developers and Managers 

[Link to my Amazon Review]

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

I enjoyed reading this book. It is well-written, and provides a broad survey of important software security concepts and techniques – with easy to understand illustrations, descriptions, and code examples. 

The companion GitHub repository provides 27 subfolders with Java & Spring examples.


Chapters 2-17 include a number of exercises (182), and at the end of the chapter there is a consistent approach in providing Exercise answers – as well as a Summary. The summary bullets are meaningful, and well written. 

If the reader leverages the contents of each chapter, including the exercises, and the code examples – then this book will provide the diligent reader with a very HANDS-ON learning experience.


Some minor nits:

The naming convention of the folders in the companion GitHub repository for the book would have been better named using a consistent 2-character identifier for the chapter, and a 2-character identifier for the exercise - so that a natural sort order would be enforced.

"Single-sign on" is improperly written, it should be "Single sign-on"
page-v
page-211 
page-335


While the writing is crisp & concise, and the coverage of the subject matter is *mostly* sufficient for a book of this length – there are three notable deficiencies:

1. The book suffers from a paucity of coverage for the very important topic of Post Quantum Cryptography (PQC).

Although the book was published in June 2026, there are only two pages (53, 75) that vaguely refer to NIST cryptographic algorithms standards – and neither of those mention the NIST work on Post Quantum Cryptography (PQC). Nor are there any "additional reading" suggestions. 

Further, on Page-94, this statement is made:
"Cryptographers are building encryption algorithms that can resist quantum computers, but none has been standardized so far."
- This is incorrect


On August 13, 2024, NIST released final versions of the first three Post Quantum Crypto Standards: FIPS 203, FIPS 204, and FIPS 205. [see NIST press release]

✅ Federal Information Processing Standard (FIPS) 203, intended as the primary standard for general encryption. Among its advantages are comparatively small encryption keys that two parties can exchange easily, as well as its speed of operation. The standard is based on the CRYSTALS-Kyber algorithm, which has been renamed ML-KEM, short for Module-Lattice-Based Key-Encapsulation Mechanism. 

✅ FIPS 204, intended as the primary standard for protecting digital signatures. The standard uses the CRYSTALS-Dilithium algorithm, which has been renamed ML-DSA, short for Module-Lattice-Based Digital Signature Algorithm. 

✅ FIPS 205, also designed for digital signatures. The standard employs the SPHINCS+ algorithm, which has been renamed SLH-DSA, short for Stateless Hash-Based Digital Signature Algorithm. The standard is based on a different math approach than ML-DSA, and it is intended as a backup method in case ML-DSA proves vulnerable. 

On March 11, 2025 NIST released Hamming Quasi-Cyclic (HQC) as the fifth algorithm for post-quantum asymmetric encryption as used for key encapsulation / exchange.The new algorithm is as a backup for ML-KEM, the main algorithm for general encryption.

Additionally, there are international alternatives to the NIST standard, that could have been briefly cited, and links provided. For example, see this Akamai article, 'A Guide to International Post-Quantum Cryptography Standards', published on Oct 08, 2025.


2. The book suffers from an absence of "further reading" suggestions for the important topic of Zero Trust. 



3. The book does not mention Homomorphic Encryption. 
 

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

Addendums: 

Note: 2026-07-26 Sunday: I will probably add another 10-20, or 30 links here, before I am finished. 

These are just some of the suggested additional reading resources such a book could have included:
(illustrative, not exhaustive)

Status: Work-In-Progress 

Suggested sites for further reading:  

 
Java Security: 
 
Spring Security:  

 

 Interesting Security-related web sites

 

 

 


Interesting Security-related GitHub Resources:  

 

Homomorphic Encryption (HE) / Fully Homomorphic Encryption (FHE): 
  • Suggested Background Reading: 
    • https://en.wikipedia.org/wiki/Homomorphic_encryption 
      • "Homomorphic encryption is a form of encryption that allows computations to be performed on encrypted data without first having to decrypt it. The resulting computations are left in an encrypted form which, when decrypted, result in an output that is identical to that of the operations performed on the unencrypted data. Homomorphic encryption can be used for privacy-preserving outsourced storage and computation. This allows data to be encrypted and outsourced to commercial cloud environments for processing, all while encrypted."
      • Note table: "Implementations
    • https://en.wikipedia.org/wiki/Paillier_cryptosystem 
      • "The Paillier cryptosystem, invented by and named after Pascal Paillier in 1999, is a probabilistic asymmetric algorithm for public key cryptography. The problem of computing n-th residue classes is believed to be computationally difficult. The decisional composite residuosity assumption is the intractability hypothesis upon which this cryptosystem is based."

 

 

 

  • Papers:
    • OpenFHE: Open-Source Fully Homomorphic Encryption Library
      • https://eprint.iacr.org/2022/915 
        • "Fully Homomorphic Encryption (FHE) is a powerful cryptographic primitive that enables performing computations over encrypted data without having access to the secret key. We introduce OpenFHE, a new open-source FHE software library that incorporates selected design ideas from prior FHE projects, such as PALISADE, HElib, and HEAAN, and includes several new design concepts and ideas. The main new design features can be summarized as follows: (1) we assume from the very beginning that all implemented FHE schemes will support bootstrapping and scheme switching; (2) OpenFHE supports multiple hardware acceleration backends using a standard Hardware Abstraction Layer (HAL); (3) OpenFHE includes both user-friendly modes, where all maintenance operations, such as modulus switching, key switching, and bootstrapping, are automatically invoked by the library, and compiler-friendly modes, where an external compiler makes these decisions. This paper focuses on high-level description of OpenFHE design, and the reader is pointed to external OpenFHE references for a more detailed/technical description of the software library."
      • [Also see 'openfhe-development' GitHub Repo citation below, under 'GitHub Resources']

 

 

    • SoK: New Insights into Fully Homomorphic Encryption Libraries
      via Standardized Benchmarks (2022)
      • https://eprint.iacr.org/2022/425.pdf 
      • "Fully homomorphic encryption (FHE) enables arbitrary computation on encrypted data, allowing users to upload ciphertexts to cloud servers for computation while mitigating privacy risks. Many cryptographic schemes fall under the umbrella of FHE, and each scheme has several open-source implementations with its own strengths and weaknesses. Nevertheless, developers have no straightforward way to choose which FHE scheme and implementation is best suited for their application needs, especially considering that each scheme offers different security, performance, and usability guarantees. To allow programmers to effectively utilize the power of FHE, we employ a series of benchmarks called the Terminator 2 Benchmark Suite and present new insights gained from running these algorithms with a variety of FHE back-ends. Contrary to generic benchmarks that do not take into consideration the inherent challenges of encrypted computation, our methodology is tailored to the secure computational primitives of each target FHE implementation. To ensure fair comparisons, we developed a versatile compiler (called T2 ) that converts arbitrary benchmarks written in a domain-specific language into
        identical encrypted programs running on different popular FHE libraries as a backend. Our analysis exposes for the first time the advantages and disadvantages of each FHE library as well as the types of applications most suited for each computational domain (i.e., binary, integer, and floating-point).
        "
      • "This work was partially supported by the University of Delaware Research Foundation Grant 21A01012 and
        the Electrical and Computer Engineering department at the University of Delaware.
        "

 

 

  • GitHub Resources:
    • GitHub Repo: Awesome - A curated list of amazing Homomorphic Encryption libraries, software and resources

 

    • GitHub Repo: mpc4j
      • https://github.com/alibaba-edu/mpc4j 
      • "Multi-Party Computation for Java (mpc4j) is an efficient and easy-to-use Secure Multi-Party Computation (MPC), Homomorphic Encryption (HE), and Differential Privacy (DP) library mainly written in Java."
      • Language: Java
      • License: Apache 2.0
      • Status: Appears to be active (recent updates in 2026) 

 

 

    • GitHub Repo: Ciphercraft
      • https://github.com/ADWISE-VCU/Ciphercraft 
      • "Contains Packages for ElGamal, Paillier, Goldweiser-Micali and DGK Homomorphic Encryption System. Also implements secure multiplication, division and comparison.
      • Language: Java 
      • License: MIT 
      • Status: (last updated ~2025) 

 

    • GitHub Repo: fhe-core
      • https://github.com/kryptnostic/fhe-core 
      • Language: Java, Wolfram Language 
      • License: Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public 
      • Status: DEPRECATED (see krypto)

 

 

  • Spring Security support for Homomorphic Encryption (HE): 

 

 Suggested links for relevant IETF RFCs:

 

 

 

 

 

 

 

 

Suggested software development (security-related) books for further reading:   

(Note: I will be citing books published by Manning, O'Reilly, and Packt - as well as some others)

 

 

 Post-Quantum Cryptography (PQC) links for further reading

  

  • Regulatory Forces:

 

  
  • Spring Security support for Post Quantum Cryptography (PQC):  
  • Enhancement: NimbusJwtEncoder does not support Edwards Curve signature (EdDSA) family algorithms. #17098


National Institute of Standards and Technology (NIST) Cryptographic links for further reading:  

  • Use of Cryptographic Modules by Federal Agencies and Departments
    • https://csrc.nist.gov/projects/cryptographic-module-validation-program
      • "FIPS 140-2 and FIPS 140-3 requirements are applicable to all U.S. Federal agencies. Agencies must use cryptographic-based security systems to provide adequate information security for all operations and assets as defined in 15 U.S.C. § 278g-3."
      • "Non-validated cryptography is viewed as providing no protection to the information or data—in effect the data would be considered unprotected plaintext. If the agency specifies that the information or data be cryptographically protected, then FIPS 140-2 or FIPS 140-3 is applicable. In essence, if cryptography is required, then it must be validated. Should the cryptographic module be revoked, use of that module is no longer permitted."

 

WordCount

Copyright

© 2001-2026 International Technology Ventures, Inc., All Rights Reserved.