Compare commits
229 Commits
b913a56f8f
...
zq/persona
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0db2151f92 | ||
|
|
d0610a5907 | ||
|
|
53df5b46a3 | ||
|
|
b7f08ba46d | ||
|
|
832eb1a913 | ||
|
|
a980d6393e | ||
|
|
1b8c74a204 | ||
|
|
cd62a01ec5 | ||
|
|
d63dc6d2cf | ||
|
|
2213fe8a0c | ||
|
|
4965341e1e | ||
|
|
5cccf8a822 | ||
|
|
d08965126f | ||
|
|
e6a8f7b1e9 | ||
|
|
e436fe532c | ||
|
|
9de58a438a | ||
|
|
3dfbf6fd5e | ||
|
|
75648ff77b | ||
|
|
14d35af78e | ||
|
|
2488f07808 | ||
|
|
87926dc7cd | ||
|
|
0392a0fb05 | ||
|
|
c435a7eb78 | ||
|
|
314ca414b3 | ||
|
|
41d5f8820e | ||
|
|
a45015fae8 | ||
|
|
cc958b74af | ||
|
|
d271f03e4d | ||
|
|
cb33ea3c25 | ||
| 4619213e22 | |||
| 7c3d79354e | |||
| d20236832b | |||
| c182ad18e5 | |||
| 608bfe904e | |||
| 269ee61321 | |||
| c9cf182138 | |||
| b84f5d2691 | |||
| 1b796ce91e | |||
| 9eb6e9ccbb | |||
| ea8a64505b | |||
| 43351539bf | |||
| 966acb8e15 | |||
| fd20eea287 | |||
| 0874b544e0 | |||
| 3215d19915 | |||
| a6feebd664 | |||
| 3446f1f6ff | |||
| d8927c17ba | |||
| 8feaef21f1 | |||
| ce05a3b059 | |||
| 9270f1e6ad | |||
| d69912ec0b | |||
| 6c8afc2be9 | |||
| b9aff29cfd | |||
| bb60827782 | |||
| dba6a3d733 | |||
| 1278027484 | |||
| 92093b9351 | |||
| ad8cd407e2 | |||
| 669eafadd3 | |||
| c865db47da | |||
| 8328d43650 | |||
| 0d9b3cfbd2 | |||
| b9cb71a310 | |||
| 8f8a5dddf9 | |||
| fa1f9d010a | |||
| cb24fa6bd6 | |||
| 791a4a4d27 | |||
| dacc1b9e90 | |||
| cfe2943548 | |||
| 9bcc4507d1 | |||
| d9d2454de4 | |||
| 2b3dcb45ee | |||
| 4f6d206d4e | |||
| 7b3a60f937 | |||
| 6c478207d3 | |||
| ba12affd72 | |||
| b38b0d3270 | |||
| 1566b2c595 | |||
| f267933239 | |||
| 527bc66b05 | |||
| 52a0160198 | |||
| 5dc0b93416 | |||
| 771a73029e | |||
| 0ef179385d | |||
| 909cde2465 | |||
| 2e3efb201b | |||
| 4c7be9373a | |||
| c67501e446 | |||
| 3531636805 | |||
| 83f18a26f0 | |||
| 4519cfe804 | |||
| fc3962ee44 | |||
| be254d661d | |||
| 083ade12eb | |||
| a2bc77805c | |||
| 6f29244850 | |||
| 36ae6062c2 | |||
| 3f8b7c8342 | |||
| 063350b4bc | |||
| 901ee02929 | |||
| 90af31d02a | |||
| d002554036 | |||
| e806c865e5 | |||
| 473bc19d25 | |||
| e0f0e3a0ee | |||
| 67424af48b | |||
| 63bd4d5fd4 | |||
| 110f39303d | |||
| 2b5a23b566 | |||
| eea34a1c68 | |||
| bd368b5ccd | |||
| e2e4f1467f | |||
| 39ee0639b9 | |||
| 14d931431e | |||
| e7d386b2b2 | |||
| e22dfc5a12 | |||
| e45e05ea40 | |||
| 3cd053988c | |||
| 9623935ed0 | |||
| 63f260866e | |||
| ca82878edf | |||
| fb3a474738 | |||
| dababb86fc | |||
| 52a764664e | |||
| ae7505d651 | |||
| a76b559a0e | |||
| 70b428fce7 | |||
| 1789fd7625 | |||
| bebed1f788 | |||
| 66848674e9 | |||
| 138193ce13 | |||
| a18debbf21 | |||
| a504eb9179 | |||
| aea803793a | |||
| 7645a34619 | |||
| 3bfc40b460 | |||
| ee98d815d1 | |||
| a92d2eed57 | |||
| 1667225694 | |||
| 40dbbe3f12 | |||
| f68bd5281b | |||
| f511163bee | |||
| f25d203105 | |||
| a68e262730 | |||
| dbc897370c | |||
| b8b3871650 | |||
| a82053f976 | |||
| fe9d55d638 | |||
| 90724c22ff | |||
| 4533c5129f | |||
| 7ffca5e39b | |||
| 97f497855f | |||
| 6af4cb1d23 | |||
| 8262a076de | |||
| 2df30b9c87 | |||
| 6322e54ba1 | |||
| 3cb44b880c | |||
| c65df7d95a | |||
| 3d87e3d1e8 | |||
| 10c1ffbb19 | |||
| c6d21e0530 | |||
| 4f0b042f09 | |||
| 3c1f76e65c | |||
| dc244c1e98 | |||
| 900ef114a3 | |||
| 2fd5a098b1 | |||
| d33e1771af | |||
| d3a668f353 | |||
| 72cd3e89ad | |||
| 82813556f2 | |||
| cc0b739e66 | |||
| 11fbf2f331 | |||
| fa992de25a | |||
| 687126b974 | |||
| ee15d02a91 | |||
| fcf6e0b10e | |||
| d2266ef1e0 | |||
| b04154cd10 | |||
| 2ae4d73649 | |||
| 86b6e9baed | |||
| 0d96b3e81f | |||
| 2e110ffcf5 | |||
| 5ad20b29f5 | |||
| 2c2a393285 | |||
| 7072189dde | |||
| bb299b2f98 | |||
| 1f5bd9e089 | |||
| 172a1f85c3 | |||
| 529acd4fcc | |||
| 7fbe850756 | |||
| 73ba1b3eb5 | |||
| 4d1ab5c244 | |||
| 8441402f49 | |||
| 0ea03a61cf | |||
| 623727e71c | |||
| 20f770ad59 | |||
| 7f455a08d5 | |||
| d04ff6b68e | |||
| 980f66d77d | |||
| d391094ad6 | |||
| 56b9342fd2 | |||
| 07b5987213 | |||
| 5f719f8519 | |||
| a30d85d9a9 | |||
| 1e234aef54 | |||
| 8fb912dffe | |||
| a5b0e8e38a | |||
| d145846a35 | |||
| 903eb88fdc | |||
| 755d6705fa | |||
| 5084779465 | |||
| c4fcf2db39 | |||
| 0a102ac81c | |||
| 1f49db69c9 | |||
| 53f1df5e86 | |||
| c15fcda8c6 | |||
| 78cfe20d64 | |||
| 04f2f7b845 | |||
| 8f234a746d | |||
| fb120bc50a | |||
| a34379b38e | |||
| ea2fe05037 | |||
| 04f8538754 | |||
| f7b8c4c276 | |||
| f59359ce0f | |||
| 9b9d2f55cf | |||
| d398462161 | |||
| 58303320c0 |
60
.gitea/workflows/build.yml
Executable file
@@ -0,0 +1,60 @@
|
||||
name: Build Org Website
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths-ignore:
|
||||
- assets/content/hidden-details.json
|
||||
- assets/scripts/hidden-details.js
|
||||
|
||||
schedule:
|
||||
- cron: "0 0 * * *"
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: org-web-build
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: org-web
|
||||
|
||||
env:
|
||||
SITE_OUTPUT_DIR: /home/zaine/master-folder/org-platform/org_web/output
|
||||
|
||||
steps:
|
||||
- name: Commit hidden details files on scheduled/manual run
|
||||
if: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }}
|
||||
run: |
|
||||
cd /home/zaine/master-folder/org-platform/org_web
|
||||
|
||||
git switch main
|
||||
|
||||
git config user.name "gitea-actions"
|
||||
git config user.email "gitea-actions@localhost"
|
||||
|
||||
git add assets/content/hidden-details.json assets/scripts/hidden-details.js
|
||||
|
||||
if git diff --cached --quiet; then
|
||||
echo "No hidden details changes to commit."
|
||||
else
|
||||
git commit -m "Update hidden details [skip actions]"
|
||||
git push origin main
|
||||
fi
|
||||
|
||||
- name: Build site
|
||||
run: |
|
||||
cd /home/zaine/master-folder/org-platform/org_web
|
||||
mkdir -p /home/zaine/logs
|
||||
SITE_CLEAN=1 make 2>&1 | tee /home/zaine/logs/org-web.log
|
||||
|
||||
- name: Monitor build and notify Discord
|
||||
if: always()
|
||||
env:
|
||||
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
|
||||
API_KEY: ${{ secrets.API_KEY }}
|
||||
run: |
|
||||
cd /home/zaine/master-folder/org-platform/org_web
|
||||
/snap/bin/pwsh -NoProfile -File ./gitea-build-monitor.ps1
|
||||
7
.gitignore
vendored
Executable file
@@ -0,0 +1,7 @@
|
||||
.venv/
|
||||
output/
|
||||
.org-timestamps/
|
||||
backups/
|
||||
__pycache__/
|
||||
*~
|
||||
.syncthing*.tmp
|
||||
0
.packages/archives/elpa/archive-contents
Normal file → Executable file
0
.packages/archives/elpa/archive-contents.signed
Normal file → Executable file
0
.packages/archives/melpa/archive-contents
Normal file → Executable file
0
.packages/htmlize-20250724.1703/htmlize-autoloads.el
Normal file → Executable file
0
.packages/htmlize-20250724.1703/htmlize-pkg.el
Normal file → Executable file
0
.packages/htmlize-20250724.1703/htmlize.el
Normal file → Executable file
0
.packages/htmlize-20250724.1703/htmlize.elc
Normal file → Executable file
5
.projectile
Executable file
@@ -0,0 +1,5 @@
|
||||
-.venv/
|
||||
-output/
|
||||
-backup/
|
||||
-*~
|
||||
-.packages/
|
||||
95
Makefile
Executable file
@@ -0,0 +1,95 @@
|
||||
.PHONY: all clean norm test test-elisp author author-install author-start author-stop author-stop-legacy author-restart author-status author-logs author-health author-diagnostics help
|
||||
|
||||
VENV := .venv
|
||||
PY := $(VENV)/bin/python
|
||||
PIP := $(VENV)/bin/pip
|
||||
OUTPUT_DIR ?= $(if $(SITE_OUTPUT_DIR),$(SITE_OUTPUT_DIR),output)
|
||||
PERM_DIR := /home/zaine/master-folder/projects/scripts/bash-scripts
|
||||
|
||||
AUTHOR_SERVICE_DIR := /home/zaine/master-folder/org-platform/authoring-service
|
||||
|
||||
all: set-perms clean-output build search clean-venv
|
||||
|
||||
build:
|
||||
@echo "Building project..."
|
||||
emacs -Q --script build-site.el
|
||||
|
||||
set-perms:
|
||||
@echo "Setting permissions for output directory..."
|
||||
cd $(PERM_DIR) && sudo ./master-perms.sh
|
||||
|
||||
search: $(VENV)
|
||||
@echo "Generating search index"
|
||||
$(PY) search-index-json.py
|
||||
|
||||
test:
|
||||
$(MAKE) -C "$(AUTHOR_SERVICE_DIR)" test
|
||||
|
||||
test-elisp:
|
||||
emacs -Q --batch -l lisp/tests/build-site-tests.el -f ert-run-tests-batch-and-exit
|
||||
|
||||
$(VENV):
|
||||
@echo "Generating virtual environment"
|
||||
python3 -m venv $(VENV)
|
||||
$(PIP) install -r requirements.txt
|
||||
|
||||
clean-output:
|
||||
@echo "Cleaning output directory..."
|
||||
rm -rf "$(OUTPUT_DIR)"
|
||||
|
||||
clean-venv:
|
||||
@echo "Cleaning virtual environment..."
|
||||
rm -rf $(VENV)
|
||||
|
||||
norm:
|
||||
@echo "sorting out the backups..."
|
||||
find . -path ./backups -prune -o -type f -name '*~' -exec mv {} backups/ \;
|
||||
|
||||
author: author-start
|
||||
|
||||
author-install:
|
||||
$(MAKE) -C "$(AUTHOR_SERVICE_DIR)" author-install
|
||||
|
||||
author-start:
|
||||
$(MAKE) -C "$(AUTHOR_SERVICE_DIR)" author-start
|
||||
|
||||
author-stop:
|
||||
$(MAKE) -C "$(AUTHOR_SERVICE_DIR)" author-stop
|
||||
|
||||
author-stop-legacy:
|
||||
$(MAKE) -C "$(AUTHOR_SERVICE_DIR)" author-stop-legacy
|
||||
|
||||
author-restart:
|
||||
$(MAKE) -C "$(AUTHOR_SERVICE_DIR)" author-restart
|
||||
|
||||
author-health:
|
||||
$(MAKE) -C "$(AUTHOR_SERVICE_DIR)" author-health
|
||||
|
||||
author-status:
|
||||
$(MAKE) -C "$(AUTHOR_SERVICE_DIR)" author-status
|
||||
|
||||
author-diagnostics:
|
||||
$(MAKE) -C "$(AUTHOR_SERVICE_DIR)" author-diagnostics
|
||||
|
||||
author-logs:
|
||||
$(MAKE) -C "$(AUTHOR_SERVICE_DIR)" author-logs
|
||||
|
||||
help:
|
||||
@echo "Available targets:"
|
||||
@echo " make - Full rebuild"
|
||||
@echo " make build - Rebuild the output directory"
|
||||
@echo " make set-perms - Set permissions for output directory"
|
||||
@echo " make clean-output - Remove output directory"
|
||||
@echo " make clean-venv - Remove venv directory"
|
||||
@echo " make norm - Move backup files"
|
||||
@echo " make test - Run authoring server tests"
|
||||
@echo " make test-elisp - Run Emacs Lisp build tests"
|
||||
@echo " make author - Install and start the authoring UI service"
|
||||
@echo " make author-install - Install and enable the authoring UI service"
|
||||
@echo " make author-stop - Stop the authoring UI service"
|
||||
@echo " make author-restart - Restart the authoring UI service"
|
||||
@echo " make author-status - Show authoring UI service status and page count"
|
||||
@echo " make author-diagnostics - Show authoring UI runtime diagnostics"
|
||||
@echo " make author-logs - Show recent authoring UI service logs"
|
||||
@echo " make search - Create the search index"
|
||||
@echo " make help - Show this help message"
|
||||
31
README.md
Executable file
@@ -0,0 +1,31 @@
|
||||
# Introduction
|
||||
|
||||
This repository contains code for the website https://zainezq.com, which serves as a central familial hub for me.
|
||||
|
||||
The site is written using Emacs and Org-mode, and exported using the `org-publish` functionality. See the `build-site.el` script for details on how the site is built and published.
|
||||
|
||||
Asset structure and frontend boundaries are documented in `docs/assets-architecture.md`.
|
||||
|
||||
## Local authoring UI
|
||||
|
||||
The authoring UI now lives in `/home/zaine/master-folder/org-platform/authoring-service`.
|
||||
|
||||
Run `make author` from either repository to install and start the user systemd service, then open `http://127.0.0.1:8765` to create or edit blog and post Org files from a browser. When deployed behind the reverse proxy, use `https://author.zainezq.com`.
|
||||
|
||||
Useful service commands:
|
||||
|
||||
- `make author-restart` restarts the service and waits for the page API to respond
|
||||
- `make author-stop` stops the service
|
||||
- `make author-status` shows systemd status and the editable page count
|
||||
- `make author-logs` shows recent journal logs
|
||||
|
||||
The editor writes normal `.org` pages with the metadata used by the publishing pipeline:
|
||||
|
||||
- blogs default to `blogs/YYYY/MM-month/slug.org`
|
||||
- posts default to `posts/slug.org`, or `posts/section/slug.org` when a section is provided
|
||||
- new pages can use an explicit path under `blogs/` or `posts/`
|
||||
- saving a page starts `emacs -Q --script build-site.el` and then regenerates the search index
|
||||
|
||||
Lima pages are Markdown files under `lima/`. Selecting the Lima page type shows a Markdown toolbar for common formatting and an attachment button. Uploaded images and videos are stored under `assets/images/hzone/YYYY/MM/` and inserted into the Markdown page.
|
||||
|
||||
Saves enqueue builds. The editor remains usable while publishing runs, and the queue section shows the current build, pending builds, and recent build results.
|
||||
@@ -1,7 +0,0 @@
|
||||
#+TITLE: About Page
|
||||
#+DATE: <2025-08-04 Mon>
|
||||
#+OPTIONS: toc:nil num:nil title:nil
|
||||
|
||||
* About
|
||||
|
||||
TODO
|
||||
BIN
assets/.DS_Store
vendored
517
assets/content/comment-pages.json
Normal file
@@ -0,0 +1,517 @@
|
||||
[
|
||||
{
|
||||
"slug": "benefits-of-reading",
|
||||
"title": "Benefits of Reading",
|
||||
"url": "/blogs/2025/08-august/benefits-of-reading.html"
|
||||
},
|
||||
{
|
||||
"slug": "hilberts-hotel",
|
||||
"title": "Hilbert's Hotel",
|
||||
"url": "/blogs/2025/08-august/hilberts.hotel.html"
|
||||
},
|
||||
{
|
||||
"slug": "spending-all-day-on-this-website",
|
||||
"title": "09-08-2025: Website Changes",
|
||||
"url": "/blogs/2025/08-august/spending-the-whole-day-on-this-website.html"
|
||||
},
|
||||
{
|
||||
"slug": "third-time",
|
||||
"title": "Third Time",
|
||||
"url": "/blogs/2025/08-august/third-time.html"
|
||||
},
|
||||
{
|
||||
"slug": "wacom-with-arch",
|
||||
"title": "Wacom With Arch",
|
||||
"url": "/blogs/2025/08-august/wacom-with-arch.html"
|
||||
},
|
||||
{
|
||||
"slug": "what-i-want-to-do-with-emacs",
|
||||
"title": "What Do I Want To Do With Emacs",
|
||||
"url": "/blogs/2025/08-august/what-do-i-want-to-do-with-emacs.html"
|
||||
},
|
||||
{
|
||||
"slug": "zettlekasten",
|
||||
"title": "Zettelkasten Method",
|
||||
"url": "/blogs/2025/08-august/zettelkasten.html"
|
||||
},
|
||||
{
|
||||
"slug": "02-11-25-week-review",
|
||||
"title": "[02-11-2025] - Weekly Review",
|
||||
"url": "/blogs/2025/11-november/02-11-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "09-11-25-week-review",
|
||||
"title": "[09-11-2025] - Weekly Review",
|
||||
"url": "/blogs/2025/11-november/09-11-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "16-11-25-week-review",
|
||||
"title": "[16-11-2025] - Weekly Review",
|
||||
"url": "/blogs/2025/11-november/16-11-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "23-11-25-week-review",
|
||||
"title": "[23-11-2025] - Weekly Review",
|
||||
"url": "/blogs/2025/11-november/23-11-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "30-11-25-week-review",
|
||||
"title": "[30-11-2025] - Weekly Review",
|
||||
"url": "/blogs/2025/11-november/30-11-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "07-12-25-week-review",
|
||||
"title": "[07-12-2025] - Weekly Review",
|
||||
"url": "/blogs/2025/12-december/07-12-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "14-12-25-week-review",
|
||||
"title": "[14-12-2025] - Weekly Review",
|
||||
"url": "/blogs/2025/12-december/14-12-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "21-12-25-week-review",
|
||||
"title": "[21-12-2025] - Weekly Review",
|
||||
"url": "/blogs/2025/12-december/21-12-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "28-12-25-week-review",
|
||||
"title": "[28-12-2025] - Weekly Review",
|
||||
"url": "/blogs/2025/12-december/28-12-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "04-01-26-week-review",
|
||||
"title": "[04-01-2026] - Weekly Review",
|
||||
"url": "/blogs/2026/01-january/04-01-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "11-01-26-week-review",
|
||||
"title": "[11-01-2026] - Weekly Review",
|
||||
"url": "/blogs/2026/01-january/11-01-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "18-01-26-week-review",
|
||||
"title": "[18-01-2026] - Weekly Review",
|
||||
"url": "/blogs/2026/01-january/18-01-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "25-01-26-week-review",
|
||||
"title": "[25-01-2026] - Weekly Review",
|
||||
"url": "/blogs/2026/01-january/25-01-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "01-02-26-week-review",
|
||||
"title": "[01-02-2026] - Weekly Review",
|
||||
"url": "/blogs/2026/02-february/01-02-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "08-02-26-week-review",
|
||||
"title": "[08-02-2026] - Weekly Review",
|
||||
"url": "/blogs/2026/02-february/08-02-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "15-02-26-week-review",
|
||||
"title": "[15-02-2026] - Weekly Review",
|
||||
"url": "/blogs/2026/02-february/15-02-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "22-02-26-week-review",
|
||||
"title": "[22-02-2026] - Weekly Review",
|
||||
"url": "/blogs/2026/02-february/22-02-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "24-02-26",
|
||||
"title": "Integration tests failing (sob)",
|
||||
"url": "/blogs/2026/02-february/24-02-26.html"
|
||||
},
|
||||
{
|
||||
"slug": "26-02-26",
|
||||
"title": "Starting the Journeys Upgrade",
|
||||
"url": "/blogs/2026/02-february/26-02-26.html"
|
||||
},
|
||||
{
|
||||
"slug": "27-02-26",
|
||||
"title": "Journeys rambles again...",
|
||||
"url": "/blogs/2026/02-february/27-02-26.html"
|
||||
},
|
||||
{
|
||||
"slug": "third-meeting-with-lima",
|
||||
"title": "Third Meeting with lima :)",
|
||||
"url": "/blogs/2026/02-february/third-meeting.html"
|
||||
},
|
||||
{
|
||||
"slug": "01-03-26-week-review",
|
||||
"title": "[01-03-2026] - Weekly Review",
|
||||
"url": "/blogs/2026/03-march/01-03-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "08-03-26-week-review",
|
||||
"title": "[08-03-2026] - Weekly Review",
|
||||
"url": "/blogs/2026/03-march/08-03-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "15-03-26-week-review",
|
||||
"title": "[15-03-2026] - Weekly Review",
|
||||
"url": "/blogs/2026/03-march/15-03-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "22-03-26-week-review",
|
||||
"title": "[22-03-2026] - Weekly Review",
|
||||
"url": "/blogs/2026/03-march/22-03-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "29-03-26-week-review",
|
||||
"title": "[29-03-2026] - Weekly Review",
|
||||
"url": "/blogs/2026/03-march/29-03-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "cooking-dinner-29-03-26",
|
||||
"title": "Cooking Dinner (num)",
|
||||
"url": "/blogs/2026/03-march/cooking-dinner-29-03-26.html"
|
||||
},
|
||||
{
|
||||
"slug": "feeling-sleepy",
|
||||
"title": "Feeling extremely sleepy",
|
||||
"url": "/blogs/2026/03-march/feeling-sleepy.html"
|
||||
},
|
||||
{
|
||||
"slug": "fixing-the-dag-18-03",
|
||||
"title": "DAG fixes",
|
||||
"url": "/blogs/2026/03-march/fixing-the-dag-18-03.html"
|
||||
},
|
||||
{
|
||||
"slug": "installing-emacs-23-03",
|
||||
"title": "Installing Emacs on Windows",
|
||||
"url": "/blogs/2026/03-march/installing-emacs-23-03.html"
|
||||
},
|
||||
{
|
||||
"slug": "intellectually-challenging-myself-30-03-26",
|
||||
"title": "Intellectually challenging oneself",
|
||||
"url": "/blogs/2026/03-march/intellectually-challenging-myself-30-03-26.html"
|
||||
},
|
||||
{
|
||||
"slug": "more-thoughts-regarding-changes-26-03-26",
|
||||
"title": "More thoughts on schedule changes",
|
||||
"url": "/blogs/2026/03-march/more-thoughts-regarding-changes-26-03-26.html"
|
||||
},
|
||||
{
|
||||
"slug": "oversleeping-16-03",
|
||||
"title": "Oversleeping and missing a meeting...",
|
||||
"url": "/blogs/2026/03-march/oversleeping-16-03.html"
|
||||
},
|
||||
{
|
||||
"slug": "quick-lunch-24-03",
|
||||
"title": "Making Lunch QUiCk!!",
|
||||
"url": "/blogs/2026/03-march/quick-lunch-24-03.html"
|
||||
},
|
||||
{
|
||||
"slug": "setting-a-wird-tracker-19-03",
|
||||
"title": "Setting a Wird Tracker",
|
||||
"url": "/blogs/2026/03-march/setting-a-wird-tracker-19-03.html"
|
||||
},
|
||||
{
|
||||
"slug": "thoughts-on-life-25-03-26",
|
||||
"title": "Thoughts on life...",
|
||||
"url": "/blogs/2026/03-march/thoughts-on-life-25-03-26.html"
|
||||
},
|
||||
{
|
||||
"slug": "training-on-friday-afternoon-27-03-26",
|
||||
"title": "Training time on Friday afternoon",
|
||||
"url": "/blogs/2026/03-march/training-on-friday-afternoon-27-03-26.html"
|
||||
},
|
||||
{
|
||||
"slug": "05-04-26-week-review",
|
||||
"title": "[05-04-2026] - Weekly Review",
|
||||
"url": "/blogs/2026/04-april/05-04-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "12-04-26-week-review",
|
||||
"title": "[12-04-2026] - Weekly Review",
|
||||
"url": "/blogs/2026/04-april/12-04-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "16-04-26",
|
||||
"title": "Rambles",
|
||||
"url": "/blogs/2026/04-april/16-04-26.html"
|
||||
},
|
||||
{
|
||||
"slug": "19-04-26-week-review",
|
||||
"title": "[19-04-2026] - Weekly Review",
|
||||
"url": "/blogs/2026/04-april/19-04-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "26-04-26-week-review",
|
||||
"title": "[26-04-2026] - Weekly Review",
|
||||
"url": "/blogs/2026/04-april/26-04-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "action-plan-07-04-26",
|
||||
"title": "Action plan to change teams",
|
||||
"url": "/blogs/2026/04-april/action-plan-07-04-26.html"
|
||||
},
|
||||
{
|
||||
"slug": "adding-more-wird-22-04-26",
|
||||
"title": "Adding another Wird",
|
||||
"url": "/blogs/2026/04-april/adding-more-wird-22-04-26.html"
|
||||
},
|
||||
{
|
||||
"slug": "april-almost-over-28-04",
|
||||
"title": "April is almost over...",
|
||||
"url": "/blogs/2026/04-april/april-almost-over-28-04.html"
|
||||
},
|
||||
{
|
||||
"slug": "comparison-14-04",
|
||||
"title": "Comparison is the thief of joy",
|
||||
"url": "/blogs/2026/04-april/comparison-14-04.html"
|
||||
},
|
||||
{
|
||||
"slug": "ending-the-week-17-04-26",
|
||||
"title": "End of week thoughts",
|
||||
"url": "/blogs/2026/04-april/ending-the-week-17-04-26.html"
|
||||
},
|
||||
{
|
||||
"slug": "joining-new-team-meeting-02-04-2026",
|
||||
"title": "New team meeting",
|
||||
"url": "/blogs/2026/04-april/joining-new-team-meeting-02-04-2026.html"
|
||||
},
|
||||
{
|
||||
"slug": "making-notes-through-org-noter-06-05",
|
||||
"title": "Making Notes through Org Noter",
|
||||
"url": "/blogs/2026/04-april/making-notes-through-org-noter-06-05.html"
|
||||
},
|
||||
{
|
||||
"slug": "sitting-outside-in-the-sun-21-04-26",
|
||||
"title": "Sitting in the sun",
|
||||
"url": "/blogs/2026/04-april/sitting-outside-in-the-sun-21-04-26.html"
|
||||
},
|
||||
{
|
||||
"slug": "starting-new-rotation-08-04-26",
|
||||
"title": "Starting new rotation",
|
||||
"url": "/blogs/2026/04-april/starting-new-rotation-08-04-26.html"
|
||||
},
|
||||
{
|
||||
"slug": "weekly-target-06-04-26",
|
||||
"title": "[06-04-2026] - Weekly target",
|
||||
"url": "/blogs/2026/04-april/weekly-target-06-04-26.html"
|
||||
},
|
||||
{
|
||||
"slug": "wise-words-29-04",
|
||||
"title": "Wise Words I need to engrain",
|
||||
"url": "/blogs/2026/04-april/wise-words-29-04.html"
|
||||
},
|
||||
{
|
||||
"slug": "03-05-26-week-review",
|
||||
"title": "[03-05-2026] - Weekly Review",
|
||||
"url": "/blogs/2026/05-may/03-05-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "10-05-26-week-review",
|
||||
"title": "[10-05-2026] - Weekly Review",
|
||||
"url": "/blogs/2026/05-may/10-05-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "17-05-26-week-review",
|
||||
"title": "[17-05-2026] - Weekly Review",
|
||||
"url": "/blogs/2026/05-may/17-05-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "24-05-26-week-review",
|
||||
"title": "[24-05-2026] - Weekly Review",
|
||||
"url": "/blogs/2026/05-may/24-05-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "31-05-26-week-review",
|
||||
"title": "[31-05-2026] - Weekly Review",
|
||||
"url": "/blogs/2026/05-may/31-05-week-review.html"
|
||||
},
|
||||
{
|
||||
"slug": "ai-datacamp-08-05",
|
||||
"title": "AI Datacamp",
|
||||
"url": "/blogs/2026/05-may/ai-datacamp-08-05.html"
|
||||
},
|
||||
{
|
||||
"slug": "authoring-service-09-05-26",
|
||||
"title": "Authoring Service",
|
||||
"url": "/blogs/2026/05-may/authoring-service-09-05-26.html"
|
||||
},
|
||||
{
|
||||
"slug": "back-to-back-meetings-13-05",
|
||||
"title": "Back to back meetings",
|
||||
"url": "/blogs/2026/05-may/back-to-back-meetings-13-05.html"
|
||||
},
|
||||
{
|
||||
"slug": "characters-12-05",
|
||||
"title": "Meet the characters!",
|
||||
"url": "/blogs/2026/05-may/characters-12-05.html"
|
||||
},
|
||||
{
|
||||
"slug": "having-a-daily-checkpoint-s-12-05",
|
||||
"title": "Having a daily checkpoint(s)",
|
||||
"url": "/blogs/2026/05-may/having-a-daily-checkpoint-s-12-05.html"
|
||||
},
|
||||
{
|
||||
"slug": "memory-observatory-12-05",
|
||||
"title": "Memory Observatory",
|
||||
"url": "/blogs/2026/05-may/memory-observatory-12-05.html"
|
||||
},
|
||||
{
|
||||
"slug": "poppadoms-num-13-05",
|
||||
"title": "Poppadoms num",
|
||||
"url": "/blogs/2026/05-may/poppadoms-num-13-05.html"
|
||||
},
|
||||
{
|
||||
"slug": "sun-soak-01-05",
|
||||
"title": "Soaking in the sun",
|
||||
"url": "/blogs/2026/05-may/sun-soak-01-05.html"
|
||||
},
|
||||
{
|
||||
"slug": "using-codex-07-05-26",
|
||||
"title": "Using Codex",
|
||||
"url": "/blogs/2026/05-may/using-codex-07-05-26.html"
|
||||
},
|
||||
{
|
||||
"slug": "using-gifs-13-05",
|
||||
"title": "Sans spins for us!",
|
||||
"url": "/blogs/2026/05-may/using-gifs-13-05.html"
|
||||
},
|
||||
{
|
||||
"slug": "working-on-eid-day-27-05-26",
|
||||
"title": "Working on Eid day",
|
||||
"url": "/blogs/2026/05-may/working-on-eid-day-27-05-26.html"
|
||||
},
|
||||
{
|
||||
"slug": "cleaning-up-the-repos",
|
||||
"title": "Cleaning up the repos",
|
||||
"url": "/blogs/2026/06-june/cleaning-up-the-repos.html"
|
||||
},
|
||||
{
|
||||
"slug": "publish-pages",
|
||||
"title": "How to publish pages using Org Publish",
|
||||
"url": "/blogs/publish-pages.html"
|
||||
},
|
||||
{
|
||||
"slug": "setup",
|
||||
"title": "Setup",
|
||||
"url": "/home/guide/setup.html"
|
||||
},
|
||||
{
|
||||
"slug": "backlog",
|
||||
"title": "Backlog",
|
||||
"url": "/home/backlog.html"
|
||||
},
|
||||
{
|
||||
"slug": "wedding-countdown",
|
||||
"title": "Countdown",
|
||||
"url": "/home/countdown.html"
|
||||
},
|
||||
{
|
||||
"slug": "notes",
|
||||
"title": "Notes",
|
||||
"url": "/home/notes.html"
|
||||
},
|
||||
{
|
||||
"slug": "services",
|
||||
"title": "Service",
|
||||
"url": "/home/services.html"
|
||||
},
|
||||
{
|
||||
"slug": "competency-board",
|
||||
"title": "Competency Status Board",
|
||||
"url": "/home/status.html"
|
||||
},
|
||||
{
|
||||
"slug": "airflow",
|
||||
"title": "Datamarts, Airflow and DAG's",
|
||||
"url": "/posts/career/airflow.html"
|
||||
},
|
||||
{
|
||||
"slug": "career-intro",
|
||||
"title": "Career Introduction",
|
||||
"url": "/posts/career/career-intro.html"
|
||||
},
|
||||
{
|
||||
"slug": "cross-site-scripting-xss",
|
||||
"title": "Cross-Site Scripting (XSS)",
|
||||
"url": "/posts/career/cross-site-scripting-xss.html"
|
||||
},
|
||||
{
|
||||
"slug": "database-permissions",
|
||||
"title": "Database Permissions, Roles, and Accounts",
|
||||
"url": "/posts/career/database-permissions.html"
|
||||
},
|
||||
{
|
||||
"slug": "high-availability-disaster-recovery",
|
||||
"title": "High Availability, Disaster Recovery and Business Continuity",
|
||||
"url": "/posts/career/ha-dr.html"
|
||||
},
|
||||
{
|
||||
"slug": "invest-principles",
|
||||
"title": "Invest Principles",
|
||||
"url": "/posts/career/invest-principles.html"
|
||||
},
|
||||
{
|
||||
"slug": "understands-the-javascript-language",
|
||||
"title": "Understands the Javascript language",
|
||||
"url": "/posts/career/javascript.html"
|
||||
},
|
||||
{
|
||||
"slug": "lean",
|
||||
"title": "Lean",
|
||||
"url": "/posts/career/lean.html"
|
||||
},
|
||||
{
|
||||
"slug": "management-of-self",
|
||||
"title": "Management of self training",
|
||||
"url": "/posts/career/management-of-self.html"
|
||||
},
|
||||
{
|
||||
"slug": "monitoring-and-logging",
|
||||
"title": "Monitoring and Logging",
|
||||
"url": "/posts/career/monitoring-and-logging.html"
|
||||
},
|
||||
{
|
||||
"slug": "normalisation",
|
||||
"title": "Benefits of Normalisation",
|
||||
"url": "/posts/career/normalisation.html"
|
||||
},
|
||||
{
|
||||
"slug": "owasp-top-10",
|
||||
"title": "OWASP Top Ten",
|
||||
"url": "/posts/career/owasp.html"
|
||||
},
|
||||
{
|
||||
"slug": "pipelines-learning",
|
||||
"title": "Pipelines and how they work (as well as CI/CD)",
|
||||
"url": "/posts/career/pipelines.html"
|
||||
},
|
||||
{
|
||||
"slug": "probation-objectives",
|
||||
"title": "Probation Objectives:",
|
||||
"url": "/posts/career/probation-objectives.html"
|
||||
},
|
||||
{
|
||||
"slug": "requirements-features",
|
||||
"title": "Requirements, features, user stories, tasks, walking skeletons",
|
||||
"url": "/posts/career/requirements-features.html"
|
||||
},
|
||||
{
|
||||
"slug": "restful-api",
|
||||
"title": "Restful API",
|
||||
"url": "/posts/career/restful-api.html"
|
||||
},
|
||||
{
|
||||
"slug": "retrospectives",
|
||||
"title": "Retrospectives",
|
||||
"url": "/posts/career/retrospectives.html"
|
||||
},
|
||||
{
|
||||
"slug": "solid-principles",
|
||||
"title": "SOLID Principles",
|
||||
"url": "/posts/career/solid-principles.html"
|
||||
},
|
||||
{
|
||||
"slug": "wireframe-designs",
|
||||
"title": "Wireframe Designs",
|
||||
"url": "/posts/career/wireframe-designs.html"
|
||||
}
|
||||
]
|
||||
6
assets/content/hidden-details.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"schemaVersion": 3,
|
||||
"generatedAt": "2026-06-17T20:42:16",
|
||||
"entries": [],
|
||||
"stories": []
|
||||
}
|
||||
BIN
assets/fonts/NotoSans-Regular.ttf
Executable file
BIN
assets/fonts/Roboto-Regular.ttf
Executable file
BIN
assets/fonts/times.ttf
Executable file
BIN
assets/icons/apple-touch-icon.png
Executable file
|
After Width: | Height: | Size: 226 KiB |
BIN
assets/icons/icons8-favicon-50.png
Executable file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
assets/icons/icons8-film-tape-100.png
Executable file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
assets/icons/icons8-z-key-64.png
Executable file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/icons/pen-icon.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
4
assets/images/1_to_2.svg
Executable file
|
After Width: | Height: | Size: 163 KiB |
BIN
assets/images/240226-pr.png
Executable file
|
After Width: | Height: | Size: 59 KiB |
BIN
assets/images/26-02-26-di-errors-2.png
Executable file
|
After Width: | Height: | Size: 265 KiB |
BIN
assets/images/26-02-26-di-errors.png
Executable file
|
After Width: | Height: | Size: 324 KiB |
BIN
assets/images/27-02-26-xserver.png
Executable file
|
After Width: | Height: | Size: 118 KiB |
BIN
assets/images/blogs/2026-03-12-journeys-branch.png
Executable file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/images/blogs/2026-03-18-slack-dag-manager.png
Executable file
|
After Width: | Height: | Size: 87 KiB |
BIN
assets/images/blogs/2026-03-23-install-emacs.png
Executable file
|
After Width: | Height: | Size: 36 KiB |
BIN
assets/images/blogs/2026-03-24-lunch.jpg
Executable file
|
After Width: | Height: | Size: 2.4 MiB |
BIN
assets/images/blogs/2026-03-29-dinner-1.jpg
Executable file
|
After Width: | Height: | Size: 930 KiB |
BIN
assets/images/blogs/2026-03-29-dinner-2.jpg
Executable file
|
After Width: | Height: | Size: 942 KiB |
BIN
assets/images/blogs/2026-03-29-dinner-3.jpg
Executable file
|
After Width: | Height: | Size: 661 KiB |
BIN
assets/images/blogs/2026-04-02-slack.png
Executable file
|
After Width: | Height: | Size: 170 KiB |
BIN
assets/images/blogs/2026-05-01-sun.jpg
Executable file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
assets/images/blogs/2026-05-08-ai-pubs-history-2.webp
Executable file
|
After Width: | Height: | Size: 23 KiB |
BIN
assets/images/blogs/2026-05-08-time-to-100m-pic.webp
Executable file
|
After Width: | Height: | Size: 61 KiB |
BIN
assets/images/blogs/2026-05-09-authoring-service.png
Executable file
|
After Width: | Height: | Size: 334 KiB |
BIN
assets/images/blogs/2026-05-09-discord-alterts-gitea.png
Executable file
|
After Width: | Height: | Size: 134 KiB |
BIN
assets/images/blogs/2026-05-09-gitea-pipelines.png
Executable file
|
After Width: | Height: | Size: 127 KiB |
BIN
assets/images/blogs/2026-05-12-lima.jpg
Normal file
|
After Width: | Height: | Size: 123 KiB |
BIN
assets/images/blogs/2026-05-12-screenshot-2026-05-12-163301.png
Normal file
|
After Width: | Height: | Size: 860 KiB |
BIN
assets/images/blogs/2026-05-13-200.gif
Normal file
|
After Width: | Height: | Size: 343 KiB |
BIN
assets/images/blogs/2026-05-13-image.jpg
Normal file
|
After Width: | Height: | Size: 307 KiB |
BIN
assets/images/blogs/2026-05-13-poppadoms.jpg
Normal file
|
After Width: | Height: | Size: 217 KiB |
BIN
assets/images/blogs/2026-05-13-screenshot-2026-05-13-131807.png
Normal file
|
After Width: | Height: | Size: 78 KiB |
BIN
assets/images/blogs/2026-05-13-spinning-spin.webp
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
BIN
assets/images/blogs/2026-05-27-screenshot-2026-05-27-160508.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
assets/images/blogs/2026-06-04-screenshot-2026-06-04-143726.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
assets/images/career/2025-10-10-stress-in-workplace.png
Executable file
|
After Width: | Height: | Size: 66 KiB |
BIN
assets/images/career/2025-10-10-user_stories.jpg
Executable file
|
After Width: | Height: | Size: 929 KiB |
BIN
assets/images/career/2025-11-05-retrospective_boat_model.png
Executable file
|
After Width: | Height: | Size: 291 KiB |
BIN
assets/images/career/2025-11-10-Aware-of-the-Benefits-of-Normalisation.png
Executable file
|
After Width: | Height: | Size: 508 KiB |
BIN
assets/images/career/2025-11-15-airflow.png
Executable file
|
After Width: | Height: | Size: 88 KiB |
BIN
assets/images/career/2025-12-02-retros.jpg
Executable file
|
After Width: | Height: | Size: 284 KiB |
BIN
assets/images/career/2026-01-17-airflow-flow.png
Executable file
|
After Width: | Height: | Size: 64 KiB |
BIN
assets/images/career/2026-01-17-datamart-high-level.png
Executable file
|
After Width: | Height: | Size: 44 KiB |
BIN
assets/images/career/2026-01-17-high-level-dora.png
Executable file
|
After Width: | Height: | Size: 38 KiB |
BIN
assets/images/career/2026-03-05-api-protocols.png
Executable file
|
After Width: | Height: | Size: 138 KiB |
BIN
assets/images/career/2026-06-01-xss-attack.webp
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
assets/images/career/owasp/Screenshot 2025-10-16 134403.png
Executable file
|
After Width: | Height: | Size: 86 KiB |
BIN
assets/images/career/owasp/Screenshot 2025-10-16 134438.png
Executable file
|
After Width: | Height: | Size: 118 KiB |
BIN
assets/images/career/owasp/Screenshot 2025-10-16 134457.png
Executable file
|
After Width: | Height: | Size: 62 KiB |
BIN
assets/images/career/owasp/Screenshot 2025-10-16 134512.png
Executable file
|
After Width: | Height: | Size: 96 KiB |
BIN
assets/images/career/owasp/swappy-20251106-214613.png
Executable file
|
After Width: | Height: | Size: 103 KiB |
BIN
assets/images/career/owasp/swappy-20251106-214648.png
Executable file
|
After Width: | Height: | Size: 104 KiB |
BIN
assets/images/career/owasp/swappy-20251106-214700.png
Executable file
|
After Width: | Height: | Size: 113 KiB |
BIN
assets/images/career/owasp/swappy-20251106-214709.png
Executable file
|
After Width: | Height: | Size: 98 KiB |
BIN
assets/images/career/owasp/swappy-20251106-214717.png
Executable file
|
After Width: | Height: | Size: 35 KiB |
BIN
assets/images/career/wireframes/Screenshot 2025-10-31 112139.png
Executable file
|
After Width: | Height: | Size: 27 KiB |
BIN
assets/images/career/wireframes/Screenshot 2025-10-31 112206.png
Executable file
|
After Width: | Height: | Size: 59 KiB |
BIN
assets/images/career/wireframes/Screenshot 2025-10-31 112427.png
Executable file
|
After Width: | Height: | Size: 57 KiB |
BIN
assets/images/career/wireframes/Screenshot 2025-10-31 115621.png
Executable file
|
After Width: | Height: | Size: 46 KiB |
BIN
assets/images/career/wireframes/Screenshot 2025-10-31 115949.png
Executable file
|
After Width: | Height: | Size: 65 KiB |
BIN
assets/images/career/wireframes/Screenshot 2025-10-31 120038.png
Executable file
|
After Width: | Height: | Size: 75 KiB |
BIN
assets/images/career/wireframes/Screenshot 2025-10-31 120203.png
Executable file
|
After Width: | Height: | Size: 68 KiB |
0
assets/images/gr.png
Normal file → Executable file
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
BIN
assets/images/hzone/2026-05-09-screen-shot-2025-11-10-at-18-02-10-fullpage.png
Executable file
|
After Width: | Height: | Size: 71 KiB |
BIN
assets/images/hzone/patpat.png
Executable file
|
After Width: | Height: | Size: 203 KiB |
BIN
assets/images/lima-third-meeting.jpg
Executable file
|
After Width: | Height: | Size: 2.5 MiB |
0
assets/images/org-roam-ui-graph.png
Normal file → Executable file
|
Before Width: | Height: | Size: 296 KiB After Width: | Height: | Size: 296 KiB |
BIN
assets/images/reviews/02-12-25-retros.jpg
Executable file
|
After Width: | Height: | Size: 284 KiB |
BIN
assets/images/reviews/07-12-25-daily-retros.jpg
Executable file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
assets/images/reviews/15-11-2025-guac.png
Executable file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
assets/images/reviews/16-11-25-daily-retros.jpg
Executable file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
assets/images/reviews/23-11-2025-netdata.png
Executable file
|
After Width: | Height: | Size: 142 KiB |
BIN
assets/images/reviews/23-11-2025-reader.png
Executable file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
assets/images/reviews/23-11-2025-vnc.png
Executable file
|
After Width: | Height: | Size: 783 KiB |
BIN
assets/images/reviews/23-11-25-daily-retros.jpg
Executable file
|
After Width: | Height: | Size: 3.2 MiB |
BIN
assets/images/reviews/30-11-2025-acutal.png
Executable file
|
After Width: | Height: | Size: 147 KiB |
BIN
assets/images/reviews/30-11-25-daily-retros.jpg
Executable file
|
After Width: | Height: | Size: 2.4 MiB |
BIN
assets/images/reviews/PDT-bruno-vehicle-web-api.png
Executable file
|
After Width: | Height: | Size: 29 KiB |
BIN
assets/images/reviews/c-sharp-vehicle-breakpoints.png
Executable file
|
After Width: | Height: | Size: 438 KiB |
BIN
assets/images/reviews/competencies/competencies-09-11-25.png
Executable file
|
After Width: | Height: | Size: 254 KiB |
BIN
assets/images/reviews/competencies/dev-plan-09-11-25.png
Executable file
|
After Width: | Height: | Size: 230 KiB |