About Wentz Wu

Wentz is a co-founder of Amicliens, a company from Taiwan delivering business solutions. He enjoys applying IT technologies to solve business problems and has been working in the IT industry for over 20 years.

Delivering Quality Software

Software delivery is not deployment. Delivery hands over the software to the customer, while deployment installs and provisions the software to the production environment. We have to be cautious about the term CD. Does it mean continuous delivery or continuous deployment? Both share the same acronym but convey different ideas. Software or application is only one part of the information system that shall be certified and accredited (C&A) to get the authorization to operate (ATO). In other words, the information system is authorized instead of the software alone. Continuous deployment may not comply with the C&A process. It’s a security concern that the software development or IT operations team often ignores when implementing continuous deployment.

Quality refers to the “degree to which a set of inherent characteristics of an object fulfills requirements.” (ISO/TS 82304-2)

Software refers to “all or part of the programs, procedures, rules and associated documentation of an information-processing system.” (ISO 17894)

“In software development, a build is the process of converting source code files into standalone software artifact(s) that can be run on a computer, or the result of doing so.” (Wikipedia)

ISO Standards

  • ISO/IEC/IEEE 15288:2023
    Systems and software engineering — System life cycle processes
  • ISO/IEC/IEEE 12207:2017
    Systems and software engineering — Software life cycle processes
  • ISO 9001:2015
    Quality management systems — Requirements
  • ISO/IEC 20000-1:2018
    Information technology — Service management — Part 1: Service management system requirements
  • ISO/IEC 19770-1:2017
    Information technology — IT asset management — Part 1: IT asset management systems — Requirements
  • ISO/IEC 27000:2018
    Information technology — Security techniques — Information security management systems — Overview and vocabulary

References

Modularization and Encapsulation

Source: visual-paradigm.com

A module is a functional unit that accepts inputs and produces outputs. Modularization is the process of putting things of interest into a module and minimizing dependencies upon external things outside the module. High cohesion and low coupling are well-known modularization principles.

Encapsulation puts things in a module and protects them by controlling the visibility of outsiders. Most object-oriented programming (OOP) languages support encapsulation through the language construct – class, a wrapper of primitive data types (properties) and codes (methods). Members in a class can be seen in public, isolated in private, or protected and shared by child classes only.

WUSON Peacock Guardian Model

This diagram summarizes what I’ve learned these years in the Cybersecurity arena. I hope it helps in practice and the journey of CISSP. It defines assets from the perspective of information systems (the peacock), aligns with the ISC2 control types mentioned in OSG, and incorporates GRC, business mindset, and cultural awareness.

Understanding USB

The article, USB: Port Types and Speeds Compared – Choosing the right USB cable for your computer and peripherals by Tripp Lite by Eaton, provides informative information about USB standards and connectors.

StandardNameLogoYearConnectorSpeedCable
USB 1.1Full Speed USB1998A
B
12 Mbps3 m
USB 2.0Hi-Speed USB2000 A (Micro, Mini)
B (Micro, Mini)
C
480 Mbps5 m
USB 3.2 Gen 1 USB 3.0
USB 3.1 Gen 1
SuperSpeed
2008 (USB 3.0)
2013 (USB 3.1)
A
B (Micro)
C
5 Gbps3 m
USB 3.2 Gen 2 USB 3.1
USB 3.1 Gen 2
SuperSpeed+
SuperSpeed 10Gbps
2013 (USB 3.1)A
B (Micro)
C
10 Gbps3 m
USB 3.2 Gen 2×2 USB 3.2
SuperSpeed 20Gbps
2017 (USB 3.2)C20 Gbps3 m
USB 4 USB4 Gen 2×2
USB4 20Gbps
2019C20 Gbps0.8 m
USB 4 USB4 Gen 3×2
USB4 40Gbps
2019C40 Gbps0.8 m
Source: Tripp Lite by Eaton

A USB Type-C connector has twelve pins. Four pairs of pins, aka “lanes,” are used to transmit (TX) and receive (RX) data, as highlighted in the following diagram by Eaton.

Both USB 3.0 (5 Gbps) and USB 3.1 (10 Gbps) can use the Type-C connector but only one TX lane and one RX lane, depending on the orientation of the connector. USB 3.2 takes advantage of all four lanes to achieve a 20 Gbps data rate.

USB Connectors

Source: TeleTec

USB-C Connector Pin Layout

Source: Texas Instruments
Source: The Customize Windows

USB 3.2 Gen 2 (10Gb) Speed Test: 531 MB out of 10 Gb (1000MB or so)

  • UGREEN M.2 SSD Case with NVMe and USB 3.2 Gen 2 (10 Gb) connectors
  • Transcend M.2 SSD 1TB with NVMe PCIe Gen4 X4 (8 GB)
  • USB 3.2 Gen 2X2 (20Gb) Expansion Card on PCIe Gen 3 X4 (4 GB) – ASM3242 Chip

PCIe Gen 3 X16 Speed Test: 1.68 GB out of 4 GB

  • Transcend M.2 SSD 1TB with NVMe PCIe Gen4 X4 (8 GB)
  • M.2 SSD with NVMe (max: 4 lanes) Expansion Card on PCIe Gen 3 X16 (16 GB)

References

Linux Notes

Secure Shell

Linux error detection and correction (EDAC)

Trusted Platform Module (TPM)

Kali

Proxmox