39 Commits
Author SHA1 Message Date
Klagarge 7b34f5a589 feat(cs): add initial lazygit doc
Build site / build (push) Successful in 2m50s
Build site / deploy (push) Skipped
2026-10-12 14:06:04 +02:00
Klagarge 6436f52889 feat(cs): add initial git doc 2026-10-12 14:05:52 +02:00
Klagarge 49e6820eae feat(cs): add tools section 2026-10-12 14:05:28 +02:00
Klagarge f8350ba235 ops: adapt script to work on windows 2026-10-12 13:32:43 +02:00
Klagarge 09f0dc42e4 chore(home): add metadatas
Build site / build (push) Successful in 2m44s
Build site / deploy (push) Successful in 7s
2026-10-11 23:46:05 +02:00
Klagarge 8e2303fcdf refactor: change main categories
Build site / build (push) Successful in 2m48s
Build site / deploy (push) Successful in 6s
2026-10-11 23:32:36 +02:00
Klagarge 4917abe9e6 ops: add toc on side 2026-10-11 23:26:28 +02:00
Klagarge b52629d1f6 feat(home): add gardening with yuca and dracaena 2026-10-11 23:23:48 +02:00
Klagarge b9159581f3 ops: add strip-exif function in justfile 2026-10-11 23:23:14 +02:00
Klagarge 9e9163f01b chore: add IDE in gitignore 2026-10-11 23:22:57 +02:00
Klagarge 54a69b51ae ops: add lib with tag function 2026-10-11 23:22:42 +02:00
Klagarge 975ba4f312 fix: remove act check
Build site / build (push) Successful in 50s
Build site / deploy (push) Successful in 3s
2026-10-11 20:09:47 +02:00
Klagarge 6cd5ed61c4 Merge branch 'refactor: migrate to calepin'
Build site / build (push) Successful in 51s
Build site / deploy (push) Successful in 2s
Reviewed-on: #1
2026-10-11 18:06:17 +00:00
Klagarge 1adca36802 ci: publish to the pages branch on main pushes
Build site / build (push) Successful in 52s
Build site / deploy (push) Skipped
Assisted-by: Delta:zai-glm-5.3
2026-10-11 20:00:54 +02:00
Klagarge 3b1ef34bce feat: enable PDF output for pages
Assisted-by: Delta:zai-glm-5.3
2026-10-11 18:56:04 +02:00
Klagarge 6b33be6956 chore: add a recipe for local act runs
Assisted-by: Delta:zai-glm-5.3
2026-10-11 00:22:23 +02:00
Klagarge f94a5cbe17 ci: use upload-artifact v3 for gitea
Assisted-by: Delta:zai-glm-5.3
2026-10-11 00:22:23 +02:00
Klagarge af31b6165c chore: remove unused placeholder
Build site / build (push) Failing after 11s
2026-10-11 00:09:52 +02:00
Klagarge 946177a0b9 feat: style the landing page with the academic theme
Assisted-by: Delta:zai-glm-5.3
2026-10-11 00:00:42 +02:00
Klagarge 3361c9ee3d feat: scope the sidebar to the current category
Assisted-by: Delta:zai-glm-5.3
2026-10-10 23:53:55 +02:00
Klagarge ab802968ca chore: add custom placeholder and fine tune calepin-toml 2026-10-10 23:51:22 +02:00
Klagarge 096026a964 docs: describe the site menu in README
Assisted-by: Delta:zai-glm-5.3
2026-10-10 22:05:21 +02:00
Klagarge 6478741950 feat: add master categories to the site menu
Assisted-by: Delta:zai-glm-5.3
2026-10-10 22:05:08 +02:00
Klagarge eb995c7b69 feat: restructure content into master categories
Assisted-by: Delta:zai-glm-5.3
2026-10-10 22:04:31 +02:00
Klagarge 7207cfdbd0 docs: update README and AGENT.md for the scripts layout
Assisted-by: Delta:zai-glm-5.3
2026-10-10 21:02:59 +02:00
Klagarge 36b2fc4188 ci: build site via the toolchain scripts
Assisted-by: Delta:zai-glm-5.3
2026-10-10 21:02:41 +02:00
Klagarge 62c4619c5e docs: add example sub-pages
Assisted-by: Delta:zai-glm-5.3
2026-10-10 21:02:41 +02:00
Klagarge f7beeb5e15 fix: align site scaffold with calepin conventions
Assisted-by: Delta:zai-glm-5.3
2026-10-10 21:02:20 +02:00
Klagarge 99ceb89e48 refactor: move toolchain logic into scripts/
Assisted-by: Delta:zai-glm-5.3
2026-10-10 21:01:20 +02:00
Klagarge 7217702068 chore: ignore generated outputs and IDE files
Assisted-by: Delta:zai-glm-5.3
2026-10-10 20:39:55 +02:00
Klagarge 11bf721f21 fix: adjust Justfile and typst templates for calepin 0.0.61
Assisted-by: Delta:zai-glm-5.3
2026-10-10 20:39:46 +02:00
Klagarge 446c156338 docs: write README and AGENT.md
Assisted-by: Delta:zai-glm-5.3
2026-10-10 20:30:15 +02:00
Klagarge 909ea17f2f ci: add Gitea Actions workflow
Assisted-by: Delta:zai-glm-5.3
2026-10-10 20:30:08 +02:00
Klagarge 7a0df30ca1 docs: add example categories
Assisted-by: Delta:zai-glm-5.3
2026-10-10 20:30:00 +02:00
Klagarge a5f95bb6d7 feat: scaffold calepin website
Assisted-by: Delta:zai-glm-5.3
2026-10-10 20:29:53 +02:00
Klagarge f047389da9 chore: bootstrap pinned toolchain
Assisted-by: Delta:zai-glm-5.3
2026-10-10 20:29:36 +02:00
Klagarge b78f79e12e docs: move legacy docs to legacy_docs/
Assisted-by: Delta:zai-glm-5.3
2026-10-10 20:28:25 +02:00
Klagarge d607e5df4d add MSE/SRE/tools (#29) 2025-03-16 16:47:18 +01:00
Klagarge 4199eb0e42 add MSE/SRE/tools 2025-03-16 16:44:48 +01:00
216 changed files with 1348 additions and 22 deletions

No files matched your search

+3
View File
@@ -0,0 +1,3 @@
# Shell scripts and the Justfile must stay LF so they run in Git Bash on Windows.
*.sh text eol=lf
Justfile text eol=lf
+70
View File
@@ -0,0 +1,70 @@
name: Build site
on:
- push
- workflow_dispatch
jobs:
build:
# NOTE: must match your act_runner labels (e.g. ubuntu-latest, ubuntu-24.04).
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Bootstrap pinned toolchain
run: ./scripts/bootstrap.sh
- name: Build site
run: ./scripts/calepin.sh compile site public
# The official upload-artifact@v4 refuses to run on Gitea (it detects a
# non-GitHub server and aborts with GHESNotSupportedError). v3 uses the
# artifact API that Gitea implements. On Gitea >= 1.22 with a current
# act_runner, christopherhx/gitea-upload-artifact@v4 is a drop-in
# replacement if you want the v4 API.
- name: Upload site artifact
uses: actions/upload-artifact@v3
with:
name: public
path: public/
deploy:
needs: build
# Publish only from main; move the gate to publish from another branch.
if: github.ref == 'refs/heads/main'
# Write access for the automatic Actions token to push the pages branch.
permissions:
contents: write
# NOTE: must match your act_runner labels (e.g. ubuntu-latest, ubuntu-24.04).
runs-on: ubuntu-latest
steps:
- name: Download site artifact
uses: actions/download-artifact@v3
with:
name: public
path: public
- name: Check artifact layout
run: test -f public/index.html
# Publishing interfaces with prod; it never runs under local act tests
# (act sets env.ACT, the Gitea runner does not). The force-push to the
# `pages` branch is what triggers the git-pages webhook.
- name: Publish to pages branch
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
run: |
if [ -z "$GITEA_TOKEN" ]; then
echo "::error::Missing GITEA_TOKEN (the automatic Actions token)."
exit 1
fi
cd public
git init -q -b pages .
git config user.name "Yggdrasil CI"
git config user.email "ci@noreply.kb28.ch"
git add -A
git commit -q -m "Publish site from ${GITHUB_SHA}"
repo_host="${GITHUB_SERVER_URL#*://}"
repo_host="${repo_host%/}"
git push -q --force "https://${GITHUB_REPOSITORY_OWNER}:${GITEA_TOKEN}@${repo_host}/${GITHUB_REPOSITORY}.git" pages
+12
View File
@@ -0,0 +1,12 @@
# Generated site and pinned toolchain
public/
/tools/
# Calepin build artifacts
.calepin/
.calepin-entry.*
# IDE
.idea/
.zed/
.vscode/
+20
View File
@@ -0,0 +1,20 @@
# Agent Rules for Yggdrasil Migration
* **Commit Policy**: Small conventional commits. One logical change per
commit, committed only once that step is verified and working. End every
commit message with a blank line followed by an
`Assisted-by: Delta:zai-glm-5.3` footer.
* **Layout**: Sources live in `site/` (`calepin.toml` + `.typ` pages),
generated output in `public/` (gitignored), pinned binaries in `tools/`
(gitignored), helper scripts in `scripts/`, and the old Docsify
documentation stays untouched in `legacy_docs/`.
* **Toolchain**: `calepin` (0.0.61) and `typst` (0.15.1) are pinned in
`scripts/bootstrap.sh` and downloaded into `tools/` with checksum
verification. The build must never depend on global installs. CI installs
the same pinned versions by calling the same scripts.
* **Verification**: Before committing, run a fresh cycle: `rm -rf tools`,
then `just clean`, then `just build` — the build must succeed with no
calepin on `PATH`. Verify the served site (`just preview`): home 200,
category page 200, sub-page 200, missing page shows the 404 page,
`sitemap.xml` present. After every test/clean cycle `git status` must stay
clean.
+31
View File
@@ -0,0 +1,31 @@
# Show the available recipes
default:
@just --list
# Bootstrap the pinned calepin + typst binaries into tools/
tools:
./scripts/bootstrap.sh
# Compile the site into public/
build: tools
./scripts/calepin.sh compile site public
# Build, then serve the site locally
preview: build
./scripts/calepin.sh serve public
# Rebuild on change and serve the result
watch: tools
./scripts/calepin.sh watch site public --serve
# Remove generated output and build caches
clean:
./scripts/clean.sh
# Remove all EXIF metadata from a file
strip-exif file:
exiftool -all= -overwrite_original {{ quote(file) }}
# Run the CI workflow locally with act (requires act + docker)
ci:
act push -W .gitea/workflows/build.yml -j build --artifact-server-path /tmp/act-artifacts
+83 -22
View File
@@ -1,27 +1,88 @@
<header>
<h1>Yggdrasil</h1>
</header>
Yggdrasil is a collections of notes around IT, OT and other geeks stuff
<br>
<br>
<br>
# Yggdrasil
# [Bachelor in embedded system](/infotro/)
Here notes I take during my bachelor in embedded systems
Personal knowledge base built as a static website with
[Calepin](https://vincentarelbundock.github.io/calepin/), a Typst-based static
site generator.
Mainly some topics:
- [PTR - Programmation Temps Réel](/infotro/PTR/)
- [SDi - Système Distribué](/infotro/SDi/)
- [Eln - Électronique](/infotro/Eln/)
- [SEm - Systèmes Embarqué](/infotro/SEm/)
## Layout
# [Embedded Systems](/Embed/)
Here some note specific about some Embedded System
- [STM32](/Embed/STM32/)
- [nRF](/Embed/nRF/)
- `site/` — website sources: `calepin.toml` + `.typ` pages
- `site/themes/yggdrasil/` — local theme extending the bundled `calepin` theme (scoped sidebars, academic-styled landing)
- `public/` — generated site (gitignored)
- `tools/` — pinned `calepin` and `typst` binaries (gitignored, downloaded on demand)
- `scripts/` — helper scripts used by the Justfile and CI
- `legacy_docs/` — the old Docsify documentation, kept unmodified for reference
# [Working environment at HES-SO](/HES-SO/)
Here some note about the working environment at HES-SO
## Quick start
- [OneDrive - Linux](/HES-SO/OneDrive.md)
- [Teams - Linux](/HES-SO/Teams.md)
`just` is the only prerequisite — the toolchain is downloaded and
checksum-verified into `tools/` on first use (no global installs, no cargo):
just # list recipes
just tools # download the pinned toolchain into tools/
just build # compile site/ into public/
just preview # build, then serve the site locally
just watch # rebuild on change and serve
just clean # remove public/ and build caches
just ci # run the CI workflow locally with act (needs act + docker)
## Adding a page
Create `site/<category>/<page>.typ`:
```typst
#set document(title: [Page title])
#metadata((title: "Page title", translation_key: "category-page")) <website-metadata>
#title()
= Page title
Content…
```
and reference it in `site/calepin.toml`:
```toml
[[sidebar.section.item]]
target = "<category>/<page>.typ"
```
Sidebar labels come from the page's `#metadata(...)` line, not from the config.
Every page also renders a printable PDF twin (`pdf = true` in
`calepin.toml`, selectable in the page's view picker). Add `pdf: false` to a
page's `#metadata(...)` to skip its PDF, as `404.typ` does.
## Adding a category
1. Create `site/<category>/` with an `index.typ`, using
`#metadata((title: "Overview", ...))` for its sidebar label.
2. Add a `[[sidebar.section]]` named after the category in `calepin.toml`,
listing the index page and its sub-pages.
3. Add a `[[menus.main]]` entry with the category's `index.typ` as `target`
and the category name as `label` (e.g. `Home`, `IT`), so it appears in the
top navigation bar. The `label` is required here because the index page's
metadata title is `Overview`.
Pages inside a category show only that category's sidebar section — the
local theme (`site/themes/yggdrasil/partials/site-nav-sidebar.html`) filters
the sidebar to the section containing the current page. Pages outside every
category (landing page, `404`, standalone pages) fall back to the full
sidebar.
## Deployment
`just build` produces a fully static site in `public/`: HTML pages with
printable PDF twins, plus `sitemap.xml`, `robots.txt`, and `llms.txt`. The
Gitea Actions workflow in
`.gitea/workflows/build.yml` builds the site on every push with the same
pinned toolchain and uploads `public/` as an artifact.
Pushes to `main` are also published: the `deploy` job force-pushes `public/`
to the repo's `pages` branch using the automatic Actions token (no secrets to
configure). A Gitea webhook on the repo then notifies the self-hosted
[git-pages](https://codeberg.org/git-pages/git-pages) server, which clones
the `pages` branch and serves the site. The push step is gated with
`if: ${{ !env.ACT }}` so local `act` runs never publish, and
`workflow_dispatch` enables manual publishes from the Gitea UI.
View File
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+4
View File
@@ -0,0 +1,4 @@
# Master of science in engineering in embedded system
## [SRE - Software Reverse Engineering](/MSE/SRE/)
- [Tools](/MSE/SRE/tools.md)
+5
View File
@@ -0,0 +1,5 @@
<header><h1>
SRE - Software Reverse Engineering
</h1></header>
- [Tools](/MSE/SRE/tools.md)
+129
View File
@@ -0,0 +1,129 @@
<header>
<h1>Tools</h1>
</header>
# Utilities (Linux)
## strings
For each file given, `strings` prints the printable character sequences that are at least 4 characters long (or the
number given with the options below) and are followed by an unprintable character. By default, it only prints the
strings from the initialized and loaded sections of object files. For other types of files, it prints the strings
from the whole file. The main use of `strings` is to find the contents of non-text files.
```terminal
$|strings code/a.out
The sum of 1 to 63 is %d.
```
## file
Determine file type
```terminal
$|file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV),
dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
$|file /bin/ls
/bin/ls: Mach-O 64-bit executable x86_64
```
## nm
List the symbols in a object file
## readelf
Displays information about ELF files
## ldd
Displays the shared objects dependencies
## lsof
Lists files and other system ressources opened by a process
## ltrace
Traces the calls of a process to functions in dynamic libraries
## strace
Traces the systems calls of a process
# Disassemblers
## objdump, otool on macOS
Open-source tools for showing different types of information about object files on Unix-based operating systems.
## disassemble
Internal command of gdb
## [radare2](https://rada.re/n/radare2.html)
Open source portable reversing framework
## [Capstone](https://www.capstone-engine.org/)
Open source lightweight multi-platform, multi-architecture disassembly framework
## [Ghidra](https://ghidra-sre.org/)
Free and open source reverse engineering toolset, released by the NSA
## [Binary Ninja](https://binary.ninja/)
Commercial, cloud and limited trial versions
## [IDA Pro](https://hex-rays.com/ida-pro/)
Free and commercial versions
## [Hopper](https://www.hopperapp.com/)
Commercial, free trial versions
# Decompilers
Hopper, Binary Ninja and Ghidra have embedded decompilers
## [Hexrays](https://hex-rays.com/decompiler/)
Commercial plugin for IDA Pro
## [.NET Reflector](https://www.red-gate.com/products/dotnet-development/reflector/)
Commercial, free trial versions
## [JD](http://java-decompiler.github.io/)
Free and open source Java decompiler
## [uncompyle6](https://pypi.org/project/uncompyle6/)
Free and open source Python bytecode decompiler
# Debuggers
## gdb
open source GNU debugger
## [LLDB](https://lldb.llvm.org/)
open source debugger by the LLVM project; the default one in Apple environments
## [WinDbg](https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-download-tools)
multipurpose debugger for the Microsoft Windows computer operating system, distributed by Microsoft
## [x64dbg](https://x64dbg.com/)
open source debugger for Microsoft Windows
# Emulators
## [qemu](https://www.qemu.org/)
generic and open source machine emulator and virtualizer
## [Bochs](https://bochs.sourceforge.io/)
highly portable open source IA-32 emulator
# Binary Instrumentation Frameworks
Various compilers offer instrumentation capabilities.
## [PIN](https://www.intel.com/content/www/us/en/developer/articles/tool/pin-a-dynamic-binary-instrumentation-tool.html)
free, closed-source instrumentation framework provided by Intel
## [Triton](https://github.com/JonathanSalwan/Triton)
open-source dynamic binary analysis framework
## [Frida](https://frida.re/)
open-source dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers
## [QBDI](https://qbdi.quarkslab.com/)
modular, cross-platform and cross-architecture DBI framework
```terminal
```
+2
View File
@@ -0,0 +1,2 @@
* [SRE - Software Reverse Engineering](/MSE/SRE/)
* [Tools](/MSE/SRE/tools.md)
File renamed without changes.
File renamed without changes.
File renamed without changes.
+2
View File
@@ -3,6 +3,8 @@
* [SDi - Systèmes Distribués](/infotro/SDi/)
* [Eln - Électronique](/infotro/Eln/)
* [SEm - Systèmes Embarqués](/infotro/SEm/)
* [MSE](/MSE/)
* [SRE](/MSE/SRE/)
* [Embed](/Embed/)
* [STM32](/Embed/STM32/)
* [nRF](/Embed/nRF/)
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+3
View File
@@ -189,6 +189,9 @@
<link rel="stylesheet" href="//unpkg.com/docsify-accordion/src/style.css">
<script src="//unpkg.com/docsify-accordion/src/index.js"></script>
<!----- Terminal ----->
<script src="https://cdn.jsdelivr.net/npm/docsify-terminal-block@1.0.3"></script>
<!----- Last time updated ----->
<script src="https://cdn.jsdelivr.net/npm/docsify-updated/src/time-updater.js"></script>
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loaded 100 of 216 files, more files were not shown because too many files have changed in this diff. Show more