Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions 080_ci_cd/scripting/alternatives.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
## Alternatives

<i class="fa-duotone fa-solid fa-bullseye-arrow fa-4x"></i> <!-- .element: style="float: right;" -->

High-level programming language

Abstraction (consume logic from existing tools)

XXX
2 changes: 1 addition & 1 deletion 080_ci_cd/scripting/errors.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<i class="fa-duotone fa-solid fa-poo-storm fa-4x"></i> <!-- .element: style="float: right;" -->

set -o errexit
set -o errexit (all you need? No!)

set -o nounset (?)

Expand Down
10 changes: 10 additions & 0 deletions 080_ci_cd/scripting/performance.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,16 @@ XXX

<i class="fa-duotone fa-solid fa-person-running-fast fa-4x"></i> <!-- .element: style="float: right;" -->

### Interpreted language

XXX

---

## Performance

<i class="fa-duotone fa-solid fa-person-running-fast fa-4x"></i> <!-- .element: style="float: right;" -->

### Avoid excessive forking

O(n), ~100 processes, 13 seconds:
Expand Down
4 changes: 3 additions & 1 deletion 080_ci_cd/scripting/portability.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,4 +41,6 @@ cat file | grep --quiet "pattern"

# Works on both
cat file | grep -q "pattern"
```
```

Decreases readability
15 changes: 5 additions & 10 deletions 080_ci_cd/scripting/readability.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
## Readability

<i class="fa-duotone fa-solid fa-book-open-reader fa-4x"></i> <!-- .element: style="float: right;" -->

## Readability

### Avoid Oneliners

```bash
Expand All @@ -11,16 +11,11 @@ curl -sSLf https://launchermeta.mojang.com/mc/game/version_manifest.json | jq -r

... or...

```bash
# Latest version of Docker Desktop
curl -sSf https://desktop.docker.com/linux/main/amd64/appcast.xml | xq -j | jq -r '.rss.channel.item.enclosure."@shortVersionString"'
```

... or...

```bash
# Tools supported by uniget
regctl manifest get ghcr.io/uniget-org/tools/metadata:main -p local --format=raw-body | jq -r '.layers[0].digest' | xargs regctl blob get ghcr.io/uniget-org/tools/metadata | tar -xzO metadata.json
regctl manifest get ghcr.io/uniget-org/tools/metadata:main -p local --format
raw-body | jq -r '.layers[0].digest' | xargs regctl blob get
ghcr.io/uniget-org/tools/metadata | tar -xzO metadata.json
```

---
Expand Down
9 changes: 8 additions & 1 deletion 080_ci_cd/scripting/when_to_avoid.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,18 @@
<i class="fa-duotone fa-solid fa-triangle-exclamation fa-4x"></i> <!-- .element: style="float: right;" -->

length
- https://github.com/nicholasdille/docker-setup/blob/v1.7.47
- script of ~900 lines
- 4 sources files of ~1000 lines

complexity
- https://github.com/nicholasdille/docker-setup/blob/v1.7.47
- 4 sources files of ~1000 lines

readability

maintainability

performance (process forks)
performance (process forks)

logic (make or buy)
30 changes: 10 additions & 20 deletions 2025-11-20_ContainerConf-shell-code.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta charset="utf-8" />

<title>How Much<br/>Shell Code<br/>is Enough</title>
<title>How Much Shell Code is Enough</title>

<!-- https://gauger.io/fonticon/ -->
<link rel="icon" href="images/favicons/kubernetes.ico" />

<link rel="stylesheet" href="node_modules/reveal.js/dist/reset.css" />
<link rel="stylesheet" href="node_modules/reveal.js/dist/reveal.css" />
<link rel="stylesheet" href="node_modules/reveal.js/dist/theme/black.css" />
<link rel="stylesheet" href="node_modules/highlight.js/styles/rainbow.css" />
<link rel="stylesheet" href="node_modules/reveal.js/dist/theme/black.css" id="theme" />
<link rel="stylesheet" href="node_modules/highlight.js/styles/rainbow.css" id="theme" />
<link rel="stylesheet" href="themes/theme2022.css" />
<link rel="stylesheet" href="themes/common.css" />

Expand All @@ -25,17 +25,11 @@
<div class="reveal">
<div class="slides">

<section id="title" data-separator="^---$" data-separator-vertical="^--$" data-background="images/bernd-dittrich-p8dvOcIjkfY-unsplash.jpg" data-background-size="130%" data-background-position="left 0% top 30%" class="center" style="padding: 1em 1em 1em 1em; color: white; background: rgba(0, 0, 0, 0.5); width: 33%; margin: auto; text-align: right;">

<h1 style="font-size: 1.5em; color: white;">How Much<br/>Shell Code<br/>is Enough</h1>

<p><img src="images/logos/clc2025_white.svg" style="height: 2em; margin-top: 0.5em;" /></p>

<h2 style="font-size: 1.2em; text-transform: none; color: white;"></h2>

<p><i>Nicholas Dille, Haufe Group</i></p>

<p><a href="https://www.continuouslifecycle.de/"> </a></p>
<section id="title" data-background="images/arjun-kapoor-gR_-FEC_zQc-unsplash.jpg" data-background-size="100%" data-background-position="left 0% top 30%" style="color: white; width: 100%; height: 100%; margin: auto;">
<div style="position: absolute; bottom: 0; right: -2em; background: rgb(0, 0, 0, 0.5); width: max-content; text-align: right; padding: 0.25em 0.75em 0.25em 0.75em;">
<i>Nicholas Dille, Haufe Group</i>
<h1 style="margin: 0; font-size: 1.5em; color: white;">How Much Shell Code is Enough</h1>
</div>
</section>

<section data-markdown="000_introduction/02_bio.md" data-separator="^---$" data-separator-vertical="^--$"></section>
Expand All @@ -59,6 +53,7 @@ <h2>Agenda</h2>
<section data-markdown="080_ci_cd/scripting/errors.md" data-separator="^---$" data-separator-vertical="^--$"></section>
<section data-markdown="080_ci_cd/scripting/development.md" data-separator="^---$" data-separator-vertical="^--$"></section>
<section data-markdown="080_ci_cd/scripting/when_to_avoid.md" data-separator="^---$" data-separator-vertical="^--$"></section>
<section data-markdown="080_ci_cd/scripting/alternatives.md" data-separator="^---$" data-separator-vertical="^--$"></section>

<section id="summary" data-separator="^---$" data-separator-vertical="^--$">
<h2>Summary</h2>
Expand Down Expand Up @@ -92,6 +87,7 @@ <h3 id="events">Upcoming events</h3>
width: 1400,
height: 850,
margin: 0.05,
controls: false,
controlsTutorial: false,
showSlideNumber: false,
hash: true,
Expand All @@ -115,12 +111,6 @@ <h3 id="events">Upcoming events</h3>
hideInactiveCursor: true,
hideCursorTime: 3000,

totalTime: durationInMinutes * 60,
allottedTime: durationInMinutes * 60 * 1000,

barColor: 'rgb(200, 0, 0)',
pausedBarColor: 'rgba(200, 0, 0, .6)',

markdown: {
smartypants: true
},
Expand Down
9 changes: 5 additions & 4 deletions 2025-11-20_ContainerConf-shell-code.yaml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
date: 2025-11-xx
metadata:
title: How Much<br/>Shell Code<br/>is Enough
title: How Much Shell Code is Enough
title_slug: shell-code
subtitle: ""
box:
width: 33%
width: 80%
favicon: images/favicons/kubernetes.ico
background:
image: images/bernd-dittrich-p8dvOcIjkfY-unsplash.jpg
size: 130%
image: images/arjun-kapoor-gR_-FEC_zQc-unsplash.jpg
size: 100%
position: left 0% top 30%
event:
name: " "
Expand Down Expand Up @@ -38,6 +38,7 @@ slides:
- 080_ci_cd/scripting/errors.md
- 080_ci_cd/scripting/development.md
- 080_ci_cd/scripting/when_to_avoid.md
- 080_ci_cd/scripting/alternatives.md

summary:
- icon: sparkles
Expand Down
Binary file added images/arjun-kapoor-gR_-FEC_zQc-unsplash.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed images/bernd-dittrich-p8dvOcIjkfY-unsplash.jpg
Binary file not shown.
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"author": "Nicholas Dille",
"license": "Apache-2.0",
"dependencies": {
"@awesome.me/kit-7a4232352c": "^1.0.4",
"@awesome.me/kit-7a4232352c": "1.0.4",
"@fortawesome/fontawesome-pro": "7.0.1",
"highlight.js": "11.11.1",
"reveal.js": "5.2.1"
Expand Down