Auto-backup: 2026-09-02 00:33
This commit is contained in:
parent
a1739c0319
commit
f14c82dc42
33 changed files with 19827 additions and 337 deletions
BIN
layouts/.DS_Store
vendored
BIN
layouts/.DS_Store
vendored
Binary file not shown.
|
|
@ -21,5 +21,6 @@
|
||||||
{{ partial "ticker.html" . }}
|
{{ partial "ticker.html" . }}
|
||||||
|
|
||||||
<script src="/js/script.js"></script>
|
<script src="/js/script.js"></script>
|
||||||
|
<script src="/js/ascii-shimmer.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,16 @@
|
||||||
{{ define "main" }}
|
{{ define "main" }}
|
||||||
<div class="main-content">
|
<div class="main-content">
|
||||||
<!-- STARTSEITE: KI-LABOR -->
|
<!-- STARTSEITE: KI-LABOR -->
|
||||||
|
|
||||||
|
<!-- ASCII-SHIMMER SCHRIFTZUG -->
|
||||||
|
<div class="ascii-shimmer-hero"
|
||||||
|
data-ascii-shimmer
|
||||||
|
data-text="KILABOR"
|
||||||
|
data-cell="10"
|
||||||
|
data-color="#ff4500"
|
||||||
|
data-dim-color="rgba(212,175,55,0.35)"
|
||||||
|
style="max-width: 900px; margin: 0 auto 10px; width: 100%;"></div>
|
||||||
|
|
||||||
<header>
|
<header>
|
||||||
<h1 style="color: #ff4500; font-size: 2.5rem; letter-spacing: 8px; text-shadow: 0 0 20px rgba(255,69,0,0.4);">SASCHAS ZENTRUM FÜR DIGITALE ANARCHIE</h1>
|
<h1 style="color: #ff4500; font-size: 2.5rem; letter-spacing: 8px; text-shadow: 0 0 20px rgba(255,69,0,0.4);">SASCHAS ZENTRUM FÜR DIGITALE ANARCHIE</h1>
|
||||||
<p class="tagline" style="color: #d4af37; font-size: 1.1rem; letter-spacing: 3px;">Beruf: Geisteskrank & Gemini Player</p>
|
<p class="tagline" style="color: #d4af37; font-size: 1.1rem; letter-spacing: 3px;">Beruf: Geisteskrank & Gemini Player</p>
|
||||||
|
|
|
||||||
BIN
public/.DS_Store
vendored
BIN
public/.DS_Store
vendored
Binary file not shown.
File diff suppressed because one or more lines are too long
|
|
@ -1 +1,15 @@
|
||||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Categories on DIGITALE ANARCHIE | KI-LABOR</title><link>/categories/</link><description>Recent content in Categories on DIGITALE ANARCHIE | KI-LABOR</description><generator>Hugo</generator><language>de-de</language><atom:link href="/categories/index.xml" rel="self" type="application/rss+xml"/></channel></rss>
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>Categories on DIGITALE ANARCHIE | KI-LABOR</title>
|
||||||
|
<link>//localhost:1414/categories/</link>
|
||||||
|
<description>Recent content in Categories on DIGITALE ANARCHIE | KI-LABOR</description>
|
||||||
|
<generator>Hugo</generator>
|
||||||
|
<language>de-de</language>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<atom:link href="//localhost:1414/categories/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
</channel>
|
||||||
|
</rss>
|
||||||
|
|
|
||||||
BIN
public/img/.DS_Store
vendored
BIN
public/img/.DS_Store
vendored
Binary file not shown.
File diff suppressed because one or more lines are too long
114
public/js/ascii-shimmer.js
Normal file
114
public/js/ascii-shimmer.js
Normal file
|
|
@ -0,0 +1,114 @@
|
||||||
|
/* ASCII-Shimmer: rendert einen Text als flimmerndes ASCII-Art-Textbild.
|
||||||
|
Idee: Buchstaben werden zu einer Pixelmaske, innerhalb der Maske
|
||||||
|
werden Zeichen aus einem Zeichensatz zufaellig neu gewuerfelt. */
|
||||||
|
(function () {
|
||||||
|
function initAsciiShimmer(container) {
|
||||||
|
var text = container.dataset.text || 'KILABOR';
|
||||||
|
var cell = parseInt(container.dataset.cell || '10', 10);
|
||||||
|
var primaryColor = container.dataset.color || '#ff4500';
|
||||||
|
var dimColor = container.dataset.dimColor || 'rgba(212,175,55,0.35)';
|
||||||
|
var intervalMs = parseInt(container.dataset.interval || '140', 10);
|
||||||
|
|
||||||
|
var denseChars = ['$', '@', '%', '#', '&', '8', '0'];
|
||||||
|
var edgeChars = ['+', 'x', '-', '=', ':', '.', 'o'];
|
||||||
|
|
||||||
|
var canvas = document.createElement('canvas');
|
||||||
|
canvas.style.display = 'block';
|
||||||
|
container.appendChild(canvas);
|
||||||
|
var ctx = canvas.getContext('2d');
|
||||||
|
|
||||||
|
var mask = [];
|
||||||
|
var timer = null;
|
||||||
|
var cssWidth = 0;
|
||||||
|
var cssHeight = 0;
|
||||||
|
|
||||||
|
function buildMask() {
|
||||||
|
var width = container.clientWidth || 600;
|
||||||
|
var fontSize = Math.min(width / (text.length * 0.62), 160);
|
||||||
|
var height = Math.ceil(fontSize * 1.3);
|
||||||
|
cssWidth = width;
|
||||||
|
cssHeight = height;
|
||||||
|
|
||||||
|
var dpr = Math.min(window.devicePixelRatio || 1, 2);
|
||||||
|
canvas.width = Math.round(width * dpr);
|
||||||
|
canvas.height = Math.round(height * dpr);
|
||||||
|
canvas.style.width = width + 'px';
|
||||||
|
canvas.style.height = height + 'px';
|
||||||
|
ctx.setTransform(dpr, 0, 0, dpr, 0, 0);
|
||||||
|
|
||||||
|
var mCanvas = document.createElement('canvas');
|
||||||
|
mCanvas.width = width;
|
||||||
|
mCanvas.height = height;
|
||||||
|
var mctx = mCanvas.getContext('2d');
|
||||||
|
// Canvas bleibt transparent (alpha 0) - nur der Text bekommt Alpha > 0,
|
||||||
|
// darueber wird die Maske erkannt (kein separates Schwarz-Fuellen!).
|
||||||
|
mctx.fillStyle = '#fff';
|
||||||
|
mctx.font = "900 " + fontSize + "px 'Courier New', monospace";
|
||||||
|
mctx.textBaseline = 'middle';
|
||||||
|
mctx.textAlign = 'center';
|
||||||
|
mctx.fillText(text, width / 2, height / 2);
|
||||||
|
|
||||||
|
var imgData = mctx.getImageData(0, 0, width, height).data;
|
||||||
|
var cols = Math.floor(width / cell);
|
||||||
|
var rows = Math.floor(height / cell);
|
||||||
|
mask = [];
|
||||||
|
|
||||||
|
for (var ry = 0; ry < rows; ry++) {
|
||||||
|
for (var rx = 0; rx < cols; rx++) {
|
||||||
|
var px = Math.floor(rx * cell + cell / 2);
|
||||||
|
var py = Math.floor(ry * cell + cell / 2);
|
||||||
|
var idx = (py * width + px) * 4;
|
||||||
|
var alpha = imgData[idx + 3] / 255;
|
||||||
|
if (alpha > 0.15) {
|
||||||
|
mask.push({ x: rx, y: ry, alpha: alpha });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function draw() {
|
||||||
|
ctx.clearRect(0, 0, cssWidth, cssHeight);
|
||||||
|
ctx.font = cell + "px 'Courier New', monospace";
|
||||||
|
ctx.textBaseline = 'middle';
|
||||||
|
ctx.textAlign = 'center';
|
||||||
|
|
||||||
|
for (var i = 0; i < mask.length; i++) {
|
||||||
|
var c = mask[i];
|
||||||
|
var isDense = c.alpha > 0.7;
|
||||||
|
var set = isDense ? denseChars : edgeChars;
|
||||||
|
var char = set[(Math.random() * set.length) | 0];
|
||||||
|
ctx.fillStyle = isDense ? primaryColor : dimColor;
|
||||||
|
ctx.fillText(char, c.x * cell + cell / 2, c.y * cell + cell / 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function start() {
|
||||||
|
buildMask();
|
||||||
|
draw();
|
||||||
|
timer = setInterval(draw, intervalMs);
|
||||||
|
}
|
||||||
|
|
||||||
|
function stop() {
|
||||||
|
if (timer) { clearInterval(timer); timer = null; }
|
||||||
|
}
|
||||||
|
|
||||||
|
start();
|
||||||
|
|
||||||
|
var resizeTimeout;
|
||||||
|
window.addEventListener('resize', function () {
|
||||||
|
clearTimeout(resizeTimeout);
|
||||||
|
resizeTimeout = setTimeout(function () { buildMask(); draw(); }, 200);
|
||||||
|
});
|
||||||
|
|
||||||
|
document.addEventListener('visibilitychange', function () {
|
||||||
|
if (document.hidden) { stop(); } else if (!timer) { start(); }
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', function () {
|
||||||
|
var containers = document.querySelectorAll('[data-ascii-shimmer]');
|
||||||
|
for (var i = 0; i < containers.length; i++) {
|
||||||
|
initAsciiShimmer(containers[i]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
|
@ -1,26 +1,358 @@
|
||||||
<!doctype html><html lang=de-de><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><title>Mac Nerds Terminal | DIGITALE ANARCHIE | KI-LABOR</title><link rel=stylesheet href=/css/style.css></head><body><div class="bg-gear gear-left">⚙</div><div class="bg-gear gear-right">⚙</div><script>document.body.classList.add("js-enabled")</script><header class=main-header></header><main class=container><div class=mac-nerds-wrapper style="max-width:900px;margin:0 auto;padding:20px"><header style=text-align:center;margin-bottom:40px><p style="color:rgba(212,175,55,.5);font-family:courier new,monospace;letter-spacing:4px;font-size:.75rem;margin-bottom:8px">// GEHEIMES TERMINAL-ARCHIV</p><h1 style="color:#ff4500;letter-spacing:10px;font-size:2.2rem;text-shadow:0 0 20px rgba(255,69,0,.3);font-family:courier new,monospace;margin:0">MAC NERDS TERMINAL</h1><p style="color:rgba(212,175,55,.4);font-family:courier new,monospace;font-size:.8rem;margin-top:10px">Geheime Terminal-Befehle und macOS Tweaks für den digitalen Widerstand.</p></header><div id=cat-filter style=display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:30px><button class="cat-btn active" data-cat=all onclick='filterCat("all",this)'>ALLE</button>
|
<!DOCTYPE html>
|
||||||
<button class=cat-btn data-cat=dateien onclick='filterCat("dateien",this)'>DATEIEN</button>
|
<html lang="de-de">
|
||||||
<button class=cat-btn data-cat=netzwerk onclick='filterCat("netzwerk",this)'>NETZWERK</button>
|
<head><script src="/livereload.js?mindelay=10&v=2&port=1414&path=livereload" data-no-instant defer></script>
|
||||||
<button class=cat-btn data-cat=performance onclick='filterCat("performance",this)'>PERFORMANCE</button>
|
<meta charset="UTF-8">
|
||||||
<button class=cat-btn data-cat=sicherheit onclick='filterCat("sicherheit",this)'>SICHERHEIT</button>
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<button class=cat-btn data-cat=system onclick='filterCat("system",this)'>SYSTEM</button>
|
<title>Mac Nerds Terminal | DIGITALE ANARCHIE | KI-LABOR</title>
|
||||||
<button class=cat-btn data-cat=tweaks onclick='filterCat("tweaks",this)'>TWEAKS</button></div><div id=cmd-grid><div class=cmd-card data-cat=system><div class=cmd-card-header><span class=cmd-cat-badge>SYSTEM</span>
|
<link rel="stylesheet" href="/css/style.css">
|
||||||
<span class="cmd-risk risk-safe">SAFE</span></div><h3 class=cmd-title>Hardware-Kurzprofil !</h3><div class=cmd-block onclick='copyCmd(this,"system_profiler SPHardwareDataType | grep -E "Model|Chip|Memory|Serial"")'><code>system_profiler SPHardwareDataType | grep -E "Model|Chip|Memory|Serial"</code>
|
</head>
|
||||||
<span class=copy-hint>[KOPIEREN]</span></div><p class=cmd-desc>Model, Chip, RAM und Seriennummer auf einen Blick — ohne Klicken durch Systeminfo.</p></div><div class=cmd-card data-cat=system><div class=cmd-card-header><span class=cmd-cat-badge>SYSTEM</span>
|
<body class=" ">
|
||||||
<span class="cmd-risk risk-safe">SAFE</span></div><h3 class=cmd-title>macOS Version</h3><div class=cmd-block onclick='copyCmd(this,"sw_vers")'><code>sw_vers</code>
|
|
||||||
<span class=copy-hint>[KOPIEREN]</span></div><p class=cmd-desc>ProductName, Version und Build. Schneller als jedes UI-Menü.</p></div><div class=cmd-card data-cat=system><div class=cmd-card-header><span class=cmd-cat-badge>SYSTEM</span>
|
<div class="bg-gear gear-left">⚙</div>
|
||||||
<span class="cmd-risk risk-safe">SAFE</span></div><h3 class=cmd-title>CPU exakter Bezeichner</h3><div class=cmd-block onclick='copyCmd(this,"sysctl -n machdep.cpu.brand_string")'><code>sysctl -n machdep.cpu.brand_string</code>
|
<div class="bg-gear gear-right">⚙</div>
|
||||||
<span class=copy-hint>[KOPIEREN]</span></div><p class=cmd-desc>Zeigt den genauen CPU-String wenn jemand fragt und du nicht suchen willst.</p></div><div class=cmd-card data-cat=netzwerk><div class=cmd-card-header><span class=cmd-cat-badge>NETZWERK</span>
|
|
||||||
<span class="cmd-risk risk-safe">SAFE</span></div><h3 class=cmd-title>Netzwerkqualität testen</h3><div class=cmd-block onclick='copyCmd(this,"networkQuality")'><code>networkQuality</code>
|
<script>document.body.classList.add('js-enabled');</script>
|
||||||
<span class=copy-hint>[KOPIEREN]</span></div><p class=cmd-desc>Apples eigenes Speedtest-Tool seit macOS 12. Misst Upload, Download und Responsiveness (RPM).</p></div><div class=cmd-card data-cat=netzwerk><div class=cmd-card-header><span class=cmd-cat-badge>NETZWERK</span>
|
<header class="main-header">
|
||||||
<span class="cmd-risk risk-safe">SAFE</span></div><h3 class=cmd-title>Alle offenen Ports</h3><div class=cmd-block onclick='copyCmd(this,"lsof -i -n -P | grep LISTEN")'><code>lsof -i -n -P | grep LISTEN</code>
|
|
||||||
<span class=copy-hint>[KOPIEREN]</span></div><p class=cmd-desc>Welcher Prozess hört auf welchem Port? Unverzichtbar wenn ein Port schon belegt ist.</p></div><div class=cmd-card data-cat=dateien><div class=cmd-card-header><span class=cmd-cat-badge>DATEIEN</span>
|
</header>
|
||||||
<span class="cmd-risk risk-safe">SAFE</span></div><h3 class=cmd-title>DS_Store aufräumen</h3><div class=cmd-block onclick='copyCmd(this,"find ~ -name '*.DS_Store' -delete 2>/dev/null && echo 'Aufgeräumt.'")'><code>find ~ -name '*.DS_Store' -delete 2>/dev/null && echo 'Aufgeräumt.'</code>
|
|
||||||
<span class=copy-hint>[KOPIEREN]</span></div><p class=cmd-desc>Löscht alle .DS_Store-Dateien im Home-Verzeichnis. Gut vor git-Commits.</p></div><div class=cmd-card data-cat=performance><div class=cmd-card-header><span class=cmd-cat-badge>PERFORMANCE</span>
|
|
||||||
<span class="cmd-risk risk-safe">SAFE</span></div><h3 class=cmd-title>Top 15 CPU-Fresser</h3><div class=cmd-block onclick='copyCmd(this,"top -o cpu -n 15 -l 1 | tail -16")'><code>top -o cpu -n 15 -l 1 | tail -16</code>
|
<main class="container">
|
||||||
<span class=copy-hint>[KOPIEREN]</span></div><p class=cmd-desc>Einmaliger Snapshot der 15 CPU-intensivsten Prozesse.</p></div><div class=cmd-card data-cat=tweaks><div class=cmd-card-header><span class=cmd-cat-badge>TWEAKS</span>
|
|
||||||
<span class="cmd-risk risk-safe">SAFE</span></div><h3 class=cmd-title>Dock: sofortiges Einblenden!</h3><div class=cmd-block onclick='copyCmd(this,"defaults write com.apple.dock autohide-delay -float 0 && defaults write com.apple.dock autohide-time-modifier -float 0.3 && killall Dock")'><code>defaults write com.apple.dock autohide-delay -float 0 && defaults write com.apple.dock autohide-time-modifier -float 0.3 && killall Dock</code>
|
<div class="mac-nerds-wrapper" style="max-width: 900px; margin: 0 auto; padding: 20px;">
|
||||||
<span class=copy-hint>[KOPIEREN]</span></div><p class=cmd-desc>Entfernt die Verzögerung beim Dock-Einblenden. Sofort aktiv.</p></div><div class=cmd-card data-cat=sicherheit><div class=cmd-card-header><span class=cmd-cat-badge>SICHERHEIT</span>
|
|
||||||
<span class="cmd-risk risk-safe">SAFE</span></div><h3 class=cmd-title>SSH Key im Agent speichern</h3><div class=cmd-block onclick='copyCmd(this,"ssh-add --apple-use-keychain ~/.ssh/pfadzumkey")'><code>ssh-add --apple-use-keychain ~/.ssh/pfadzumkey</code>
|
|
||||||
<span class=copy-hint>[KOPIEREN]</span></div><p class=cmd-desc>fügt für die aktuelle session den key zum ageten hinzu, beim nächsten aufruf von ssh host wird der key austomatisch benutzt</p></div></div></div><style>.mac-nerds-wrapper{font-family:courier new,monospace}.cat-btn{background:0 0;border:1px solid rgba(212,175,55,.3);color:rgba(212,175,55,.5);padding:6px 16px;font-family:courier new,monospace;font-size:.75rem;letter-spacing:2px;cursor:pointer;transition:all .2s}.cat-btn:hover,.cat-btn.active{border-color:#d4af37;color:#d4af37;background:rgba(212,175,55,8%)}#cmd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:20px}.cmd-card{background:linear-gradient(135deg,#1a1008 0%,#0d0d0d 100%);border:1px solid rgba(184,115,51,.3);padding:20px;transition:border-color .2s,box-shadow .2s}.cmd-card:hover{border-color:rgba(212,175,55,.6);box-shadow:0 0 20px rgba(212,175,55,5%)}.cmd-card.hidden{display:none}.cmd-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.cmd-cat-badge{font-size:.6rem;letter-spacing:3px;color:rgba(184,115,51,.7)}.cmd-risk{font-size:.6rem;letter-spacing:2px;padding:2px 8px;border:1px solid}.risk-safe{color:#4caf50;border-color:rgba(76,175,80,.4)}.risk-warning{color:#ff9800;border-color:rgba(255,152,0,.4)}.risk-danger{color:#ff4500;border-color:rgba(255,69,0,.4)}.cmd-title{color:#d4af37;font-size:1rem;letter-spacing:2px;margin:0 0 12px}.cmd-block{background:#000;border:1px solid rgba(184,115,51,.2);padding:10px 14px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;transition:border-color .2s}.cmd-block:hover{border-color:rgba(212,175,55,.5)}.cmd-block code{color:#7ec8a4;font-size:.8rem;word-break:break-all;flex:1}.copy-hint{color:rgba(212,175,55,.3);font-size:.6rem;letter-spacing:1px;white-space:nowrap;transition:color .2s}.cmd-block:hover .copy-hint{color:rgba(212,175,55,.8)}.cmd-block.copied{border-color:#4caf50}.cmd-block.copied .copy-hint{color:#4caf50}.cmd-desc{color:rgba(212,175,55,.45);font-size:.78rem;line-height:1.5;margin:0}@media(max-width:600px){#cmd-grid{grid-template-columns:1fr}}</style><script>function filterCat(e,t){document.querySelectorAll(".cat-btn").forEach(e=>e.classList.remove("active")),t.classList.add("active"),document.querySelectorAll(".cmd-card").forEach(t=>{t.classList.toggle("hidden",e!=="all"&&t.dataset.cat!==e)})}function copyCmd(e,t){navigator.clipboard.writeText(t).then(()=>{const t=e.querySelector(".copy-hint"),n=t.textContent;t.textContent="[KOPIERT ✓]",e.classList.add("copied"),setTimeout(()=>{t.textContent=n,e.classList.remove("copied")},1500)})}</script></main><footer class=main-footer><div class=footer-inner><p>© 2026 Sascha Rode | DIGITALE ANARCHIE | POWERED BY HUGO</p></div></footer><div id=newsticker style="position:fixed!important;bottom:0!important;left:0!important;right:0!important;z-index:999999!important;background:rgba(0,0,0,.92)!important;border-top:1px solid rgba(255,69,0,.35)!important;display:flex!important;align-items:center;height:28px!important;overflow:hidden;font-family:courier new,monospace!important;visibility:visible!important;opacity:1!important"><span class=ticker-label style="flex-shrink:0;font-size:.6rem;letter-spacing:2px;color:rgba(255,69,0,.7);padding:0 15px;border-right:1px solid rgba(255,69,0,.2);white-space:nowrap;height:100%;display:flex;align-items:center;background:rgba(255,69,0,5%)">// SYSTEM_LOG_FEED</span><div class=ticker-track-wrap style=flex:1;overflow:hidden;height:100%;display:flex;align-items:center><div class=ticker-track id=ticker-track-global style="display:inline-flex;white-space:nowrap;animation:ticker-scroll 45s linear infinite"><span class=ticker-item style="font-size:.65rem;letter-spacing:1px;color:rgba(212,175,55,.7);padding:0 30px;text-transform:uppercase">[ HUGO SYSTEM INITIALISIERT... ]</span>
|
<header style="text-align: center; margin-bottom: 40px;">
|
||||||
<span class=ticker-item style="font-size:.65rem;letter-spacing:1px;color:rgba(212,175,55,.7);padding:0 30px;text-transform:uppercase">[ WP-KERN GELÖSCHT // ANARCHIE LEVEL 100 ]</span></div></div></div><style>@keyframes ticker-scroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}.ticker-item::before{content:'▶ ';color:rgba(255,69,0,.5)}.ticker-track:hover{animation-play-state:paused}</style><script>(function(){const e=document.getElementById("ticker-track-global");if(!e)return;const t=["STATUS: HUGO OPERATIONAL","DESIGNATION: OVERLORD SASCHA","KAFFEESTAND: KRITISCH","ANARCHIE-ENGINE: LÄUFT OHNE WP-BALLAST","MISSION: TOTALE KONTROLLE","DATENINTEGRITÄT: ABSOLUT","WARNUNG: SYSTEM EXTREM SCHNELL","GEMINI NEURAL LINK: AKTIV"];e.innerHTML="",[...t,...t].forEach(t=>{const n=document.createElement("span");n.className="ticker-item",n.style.cssText="font-size:0.65rem; letter-spacing:1px; color:rgba(212,175,55,0.7); padding:0 30px; text-transform:uppercase;",n.textContent=t,e.appendChild(n)})})()</script><script src=/js/script.js></script></body></html>
|
<p style="color: rgba(212,175,55,0.5); font-family: 'Courier New', monospace; letter-spacing: 4px; font-size: 0.75rem; margin-bottom: 8px;">// GEHEIMES TERMINAL-ARCHIV</p>
|
||||||
|
<h1 style="color: #ff4500; letter-spacing: 10px; font-size: 2.2rem; text-shadow: 0 0 20px rgba(255,69,0,0.3); font-family: 'Courier New', monospace; margin: 0;">MAC NERDS TERMINAL</h1>
|
||||||
|
<p style="color: rgba(212,175,55,0.4); font-family: 'Courier New', monospace; font-size: 0.8rem; margin-top: 10px;">Geheime Terminal-Befehle und macOS Tweaks für den digitalen Widerstand.</p>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="cat-filter" style="display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin-bottom: 30px;">
|
||||||
|
<button class="cat-btn active" data-cat="all" onclick="filterCat('all', this)">ALLE</button>
|
||||||
|
|
||||||
|
<button class="cat-btn" data-cat="dateien" onclick="filterCat('dateien', this)">DATEIEN</button>
|
||||||
|
|
||||||
|
<button class="cat-btn" data-cat="netzwerk" onclick="filterCat('netzwerk', this)">NETZWERK</button>
|
||||||
|
|
||||||
|
<button class="cat-btn" data-cat="performance" onclick="filterCat('performance', this)">PERFORMANCE</button>
|
||||||
|
|
||||||
|
<button class="cat-btn" data-cat="sicherheit" onclick="filterCat('sicherheit', this)">SICHERHEIT</button>
|
||||||
|
|
||||||
|
<button class="cat-btn" data-cat="system" onclick="filterCat('system', this)">SYSTEM</button>
|
||||||
|
|
||||||
|
<button class="cat-btn" data-cat="tweaks" onclick="filterCat('tweaks', this)">TWEAKS</button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="cmd-grid">
|
||||||
|
|
||||||
|
<div class="cmd-card" data-cat="system">
|
||||||
|
<div class="cmd-card-header">
|
||||||
|
<span class="cmd-cat-badge">SYSTEM</span>
|
||||||
|
<span class="cmd-risk risk-safe">SAFE</span>
|
||||||
|
</div>
|
||||||
|
<h3 class="cmd-title">Hardware-Kurzprofil !</h3>
|
||||||
|
<div class="cmd-block" onclick="copyCmd(this, 'system_profiler SPHardwareDataType | grep -E \u0026#34;Model|Chip|Memory|Serial\u0026#34;')">
|
||||||
|
<code>system_profiler SPHardwareDataType | grep -E "Model|Chip|Memory|Serial"</code>
|
||||||
|
<span class="copy-hint">[KOPIEREN]</span>
|
||||||
|
</div>
|
||||||
|
<p class="cmd-desc">Model, Chip, RAM und Seriennummer auf einen Blick — ohne Klicken durch Systeminfo.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="cmd-card" data-cat="system">
|
||||||
|
<div class="cmd-card-header">
|
||||||
|
<span class="cmd-cat-badge">SYSTEM</span>
|
||||||
|
<span class="cmd-risk risk-safe">SAFE</span>
|
||||||
|
</div>
|
||||||
|
<h3 class="cmd-title">macOS Version</h3>
|
||||||
|
<div class="cmd-block" onclick="copyCmd(this, 'sw_vers')">
|
||||||
|
<code>sw_vers</code>
|
||||||
|
<span class="copy-hint">[KOPIEREN]</span>
|
||||||
|
</div>
|
||||||
|
<p class="cmd-desc">ProductName, Version und Build. Schneller als jedes UI-Menü.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="cmd-card" data-cat="system">
|
||||||
|
<div class="cmd-card-header">
|
||||||
|
<span class="cmd-cat-badge">SYSTEM</span>
|
||||||
|
<span class="cmd-risk risk-safe">SAFE</span>
|
||||||
|
</div>
|
||||||
|
<h3 class="cmd-title">CPU exakter Bezeichner</h3>
|
||||||
|
<div class="cmd-block" onclick="copyCmd(this, 'sysctl -n machdep.cpu.brand_string')">
|
||||||
|
<code>sysctl -n machdep.cpu.brand_string</code>
|
||||||
|
<span class="copy-hint">[KOPIEREN]</span>
|
||||||
|
</div>
|
||||||
|
<p class="cmd-desc">Zeigt den genauen CPU-String wenn jemand fragt und du nicht suchen willst.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="cmd-card" data-cat="netzwerk">
|
||||||
|
<div class="cmd-card-header">
|
||||||
|
<span class="cmd-cat-badge">NETZWERK</span>
|
||||||
|
<span class="cmd-risk risk-safe">SAFE</span>
|
||||||
|
</div>
|
||||||
|
<h3 class="cmd-title">Netzwerkqualität testen</h3>
|
||||||
|
<div class="cmd-block" onclick="copyCmd(this, 'networkQuality')">
|
||||||
|
<code>networkQuality</code>
|
||||||
|
<span class="copy-hint">[KOPIEREN]</span>
|
||||||
|
</div>
|
||||||
|
<p class="cmd-desc">Apples eigenes Speedtest-Tool seit macOS 12. Misst Upload, Download und Responsiveness (RPM).</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="cmd-card" data-cat="netzwerk">
|
||||||
|
<div class="cmd-card-header">
|
||||||
|
<span class="cmd-cat-badge">NETZWERK</span>
|
||||||
|
<span class="cmd-risk risk-safe">SAFE</span>
|
||||||
|
</div>
|
||||||
|
<h3 class="cmd-title">Alle offenen Ports</h3>
|
||||||
|
<div class="cmd-block" onclick="copyCmd(this, 'lsof -i -n -P | grep LISTEN')">
|
||||||
|
<code>lsof -i -n -P | grep LISTEN</code>
|
||||||
|
<span class="copy-hint">[KOPIEREN]</span>
|
||||||
|
</div>
|
||||||
|
<p class="cmd-desc">Welcher Prozess hört auf welchem Port? Unverzichtbar wenn ein Port schon belegt ist.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="cmd-card" data-cat="dateien">
|
||||||
|
<div class="cmd-card-header">
|
||||||
|
<span class="cmd-cat-badge">DATEIEN</span>
|
||||||
|
<span class="cmd-risk risk-safe">SAFE</span>
|
||||||
|
</div>
|
||||||
|
<h3 class="cmd-title">DS_Store aufräumen</h3>
|
||||||
|
<div class="cmd-block" onclick="copyCmd(this, 'find ~ -name \u0026#39;*.DS_Store\u0026#39; -delete 2\u0026gt;\/dev\/null \u0026amp;\u0026amp; echo \u0026#39;Aufgeräumt.\u0026#39;')">
|
||||||
|
<code>find ~ -name '*.DS_Store' -delete 2>/dev/null && echo 'Aufgeräumt.'</code>
|
||||||
|
<span class="copy-hint">[KOPIEREN]</span>
|
||||||
|
</div>
|
||||||
|
<p class="cmd-desc">Löscht alle .DS_Store-Dateien im Home-Verzeichnis. Gut vor git-Commits.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="cmd-card" data-cat="performance">
|
||||||
|
<div class="cmd-card-header">
|
||||||
|
<span class="cmd-cat-badge">PERFORMANCE</span>
|
||||||
|
<span class="cmd-risk risk-safe">SAFE</span>
|
||||||
|
</div>
|
||||||
|
<h3 class="cmd-title">Top 15 CPU-Fresser</h3>
|
||||||
|
<div class="cmd-block" onclick="copyCmd(this, 'top -o cpu -n 15 -l 1 | tail -16')">
|
||||||
|
<code>top -o cpu -n 15 -l 1 | tail -16</code>
|
||||||
|
<span class="copy-hint">[KOPIEREN]</span>
|
||||||
|
</div>
|
||||||
|
<p class="cmd-desc">Einmaliger Snapshot der 15 CPU-intensivsten Prozesse.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="cmd-card" data-cat="tweaks">
|
||||||
|
<div class="cmd-card-header">
|
||||||
|
<span class="cmd-cat-badge">TWEAKS</span>
|
||||||
|
<span class="cmd-risk risk-safe">SAFE</span>
|
||||||
|
</div>
|
||||||
|
<h3 class="cmd-title">Dock: sofortiges Einblenden!</h3>
|
||||||
|
<div class="cmd-block" onclick="copyCmd(this, 'defaults write com.apple.dock autohide-delay -float 0 \u0026amp;\u0026amp; defaults write com.apple.dock autohide-time-modifier -float 0.3 \u0026amp;\u0026amp; killall Dock')">
|
||||||
|
<code>defaults write com.apple.dock autohide-delay -float 0 && defaults write com.apple.dock autohide-time-modifier -float 0.3 && killall Dock</code>
|
||||||
|
<span class="copy-hint">[KOPIEREN]</span>
|
||||||
|
</div>
|
||||||
|
<p class="cmd-desc">Entfernt die Verzögerung beim Dock-Einblenden. Sofort aktiv.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="cmd-card" data-cat="sicherheit">
|
||||||
|
<div class="cmd-card-header">
|
||||||
|
<span class="cmd-cat-badge">SICHERHEIT</span>
|
||||||
|
<span class="cmd-risk risk-safe">SAFE</span>
|
||||||
|
</div>
|
||||||
|
<h3 class="cmd-title">SSH Key im Agent speichern</h3>
|
||||||
|
<div class="cmd-block" onclick="copyCmd(this, 'ssh-add --apple-use-keychain ~\/.ssh\/pfadzumkey')">
|
||||||
|
<code>ssh-add --apple-use-keychain ~/.ssh/pfadzumkey</code>
|
||||||
|
<span class="copy-hint">[KOPIEREN]</span>
|
||||||
|
</div>
|
||||||
|
<p class="cmd-desc">fügt für die aktuelle session den key zum ageten hinzu, beim nächsten aufruf von ssh host wird der key austomatisch benutzt</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.mac-nerds-wrapper { font-family: 'Courier New', monospace; }
|
||||||
|
|
||||||
|
.cat-btn {
|
||||||
|
background: transparent;
|
||||||
|
border: 1px solid rgba(212,175,55,0.3);
|
||||||
|
color: rgba(212,175,55,0.5);
|
||||||
|
padding: 6px 16px;
|
||||||
|
font-family: 'Courier New', monospace;
|
||||||
|
font-size: 0.75rem;
|
||||||
|
letter-spacing: 2px;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.2s;
|
||||||
|
}
|
||||||
|
.cat-btn:hover, .cat-btn.active {
|
||||||
|
border-color: #d4af37;
|
||||||
|
color: #d4af37;
|
||||||
|
background: rgba(212,175,55,0.08);
|
||||||
|
}
|
||||||
|
|
||||||
|
#cmd-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
|
||||||
|
gap: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cmd-card {
|
||||||
|
background: linear-gradient(135deg, #1a1008 0%, #0d0d0d 100%);
|
||||||
|
border: 1px solid rgba(184,115,51,0.3);
|
||||||
|
padding: 20px;
|
||||||
|
transition: border-color 0.2s, box-shadow 0.2s;
|
||||||
|
}
|
||||||
|
.cmd-card:hover {
|
||||||
|
border-color: rgba(212,175,55,0.6);
|
||||||
|
box-shadow: 0 0 20px rgba(212,175,55,0.05);
|
||||||
|
}
|
||||||
|
.cmd-card.hidden { display: none; }
|
||||||
|
|
||||||
|
.cmd-card-header {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
.cmd-cat-badge {
|
||||||
|
font-size: 0.6rem;
|
||||||
|
letter-spacing: 3px;
|
||||||
|
color: rgba(184,115,51,0.7);
|
||||||
|
}
|
||||||
|
.cmd-risk {
|
||||||
|
font-size: 0.6rem;
|
||||||
|
letter-spacing: 2px;
|
||||||
|
padding: 2px 8px;
|
||||||
|
border: 1px solid;
|
||||||
|
}
|
||||||
|
.risk-safe { color: #4caf50; border-color: rgba(76,175,80,0.4); }
|
||||||
|
.risk-warning { color: #ff9800; border-color: rgba(255,152,0,0.4); }
|
||||||
|
.risk-danger { color: #ff4500; border-color: rgba(255,69,0,0.4); }
|
||||||
|
|
||||||
|
.cmd-title {
|
||||||
|
color: #d4af37;
|
||||||
|
font-size: 1rem;
|
||||||
|
letter-spacing: 2px;
|
||||||
|
margin: 0 0 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cmd-block {
|
||||||
|
background: #000;
|
||||||
|
border: 1px solid rgba(184,115,51,0.2);
|
||||||
|
padding: 10px 14px;
|
||||||
|
cursor: pointer;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
gap: 10px;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
transition: border-color 0.2s;
|
||||||
|
}
|
||||||
|
.cmd-block:hover { border-color: rgba(212,175,55,0.5); }
|
||||||
|
.cmd-block code {
|
||||||
|
color: #7ec8a4;
|
||||||
|
font-size: 0.8rem;
|
||||||
|
word-break: break-all;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
.copy-hint {
|
||||||
|
color: rgba(212,175,55,0.3);
|
||||||
|
font-size: 0.6rem;
|
||||||
|
letter-spacing: 1px;
|
||||||
|
white-space: nowrap;
|
||||||
|
transition: color 0.2s;
|
||||||
|
}
|
||||||
|
.cmd-block:hover .copy-hint { color: rgba(212,175,55,0.8); }
|
||||||
|
.cmd-block.copied { border-color: #4caf50; }
|
||||||
|
.cmd-block.copied .copy-hint { color: #4caf50; }
|
||||||
|
|
||||||
|
.cmd-desc {
|
||||||
|
color: rgba(212,175,55,0.45);
|
||||||
|
font-size: 0.78rem;
|
||||||
|
line-height: 1.5;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 600px) {
|
||||||
|
#cmd-grid { grid-template-columns: 1fr; }
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
function filterCat(cat, btn) {
|
||||||
|
document.querySelectorAll('.cat-btn').forEach(b => b.classList.remove('active'));
|
||||||
|
btn.classList.add('active');
|
||||||
|
document.querySelectorAll('.cmd-card').forEach(card => {
|
||||||
|
card.classList.toggle('hidden', cat !== 'all' && card.dataset.cat !== cat);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function copyCmd(el, cmd) {
|
||||||
|
navigator.clipboard.writeText(cmd).then(() => {
|
||||||
|
const hint = el.querySelector('.copy-hint');
|
||||||
|
const orig = hint.textContent;
|
||||||
|
hint.textContent = '[KOPIERT ✓]';
|
||||||
|
el.classList.add('copied');
|
||||||
|
setTimeout(() => { hint.textContent = orig; el.classList.remove('copied'); }, 1500);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="main-footer">
|
||||||
|
<div class="footer-inner">
|
||||||
|
<p>© 2026 Sascha Rode | DIGITALE ANARCHIE | POWERED BY HUGO</p>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="newsticker" style="position:fixed !important; bottom:0 !important; left:0 !important; right:0 !important; z-index:999999 !important; background:rgba(0,0,0,0.92) !important; border-top:1px solid rgba(255,69,0,0.35) !important; display:flex !important; align-items:center; height:28px !important; overflow:hidden; font-family:'Courier New', monospace !important; visibility: visible !important; opacity: 1 !important;">
|
||||||
|
<span class="ticker-label" style="flex-shrink:0; font-size:0.6rem; letter-spacing:2px; color:rgba(255,69,0,0.7); padding:0 15px; border-right:1px solid rgba(255,69,0,0.2); white-space:nowrap; height:100%; display:flex; align-items:center; background:rgba(255,69,0,0.05);">// SYSTEM_LOG_FEED</span>
|
||||||
|
<div class="ticker-track-wrap" style="flex:1; overflow:hidden; height:100%; display:flex; align-items:center;">
|
||||||
|
<div class="ticker-track" id="ticker-track-global" style="display:inline-flex; white-space:nowrap; animation: ticker-scroll 45s linear infinite;">
|
||||||
|
<span class="ticker-item" style="font-size:0.65rem; letter-spacing:1px; color:rgba(212,175,55,0.7); padding:0 30px; text-transform:uppercase;">[ HUGO SYSTEM INITIALISIERT... ]</span>
|
||||||
|
<span class="ticker-item" style="font-size:0.65rem; letter-spacing:1px; color:rgba(212,175,55,0.7); padding:0 30px; text-transform:uppercase;">[ WP-KERN GELÖSCHT // ANARCHIE LEVEL 100 ]</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@keyframes ticker-scroll {
|
||||||
|
0% { transform: translateX(0); }
|
||||||
|
100% { transform: translateX(-50%); }
|
||||||
|
}
|
||||||
|
.ticker-item::before { content: '▶ '; color: rgba(255,69,0,0.5); }
|
||||||
|
.ticker-track:hover { animation-play-state: paused; }
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function() {
|
||||||
|
const track = document.getElementById('ticker-track-global');
|
||||||
|
if (!track) return;
|
||||||
|
const ITEMS = [
|
||||||
|
"STATUS: HUGO OPERATIONAL",
|
||||||
|
"DESIGNATION: OVERLORD SASCHA",
|
||||||
|
"KAFFEESTAND: KRITISCH",
|
||||||
|
"ANARCHIE-ENGINE: LÄUFT OHNE WP-BALLAST",
|
||||||
|
"MISSION: TOTALE KONTROLLE",
|
||||||
|
"DATENINTEGRITÄT: ABSOLUT",
|
||||||
|
"WARNUNG: SYSTEM EXTREM SCHNELL",
|
||||||
|
"GEMINI NEURAL LINK: AKTIV"
|
||||||
|
];
|
||||||
|
track.innerHTML = '';
|
||||||
|
[...ITEMS, ...ITEMS].forEach(text => {
|
||||||
|
const span = document.createElement('span');
|
||||||
|
span.className = 'ticker-item';
|
||||||
|
span.style.cssText = "font-size:0.65rem; letter-spacing:1px; color:rgba(212,175,55,0.7); padding:0 30px; text-transform:uppercase;";
|
||||||
|
span.textContent = text;
|
||||||
|
track.appendChild(span);
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/script.js"></script>
|
||||||
|
<script src="/js/ascii-shimmer.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +1,81 @@
|
||||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>/</loc><lastmod>2026-04-03T00:00:00+00:00</lastmod></url><url><loc>/anarchie/</loc><lastmod>2026-04-03T00:00:00+00:00</lastmod></url><url><loc>/posts/protocol-top/</loc><lastmod>2026-03-18T00:00:00+00:00</lastmod></url><url><loc>/posts/protocol-uptime/</loc><lastmod>2026-03-18T00:00:00+00:00</lastmod></url><url><loc>/posts/protocol-weather/</loc><lastmod>2026-03-18T00:00:00+00:00</lastmod></url><url><loc>/personen/bruder/</loc><lastmod>2026-03-18T00:00:00+00:00</lastmod></url><url><loc>/posts/gemini-link/</loc><lastmod>2026-03-18T00:00:00+00:00</lastmod></url><url><loc>/mac-nerds/</loc><lastmod>2026-03-18T00:00:00+00:00</lastmod></url><url><loc>/personen/mutti/</loc><lastmod>2026-03-18T00:00:00+00:00</lastmod></url><url><loc>/posts/neural-hack/</loc><lastmod>2026-03-18T00:00:00+00:00</lastmod></url><url><loc>/posts/operation-apollo/</loc><lastmod>2026-03-18T00:00:00+00:00</lastmod></url><url><loc>/personen/</loc><lastmod>2026-03-18T00:00:00+00:00</lastmod></url><url><loc>/posts/</loc><lastmod>2026-03-18T00:00:00+00:00</lastmod></url><url><loc>/posts/flux-overdrive/</loc><lastmod>2026-03-18T00:00:00+00:00</lastmod></url><url><loc>/posts/icmp-echo/</loc><lastmod>2026-03-18T00:00:00+00:00</lastmod></url><url><loc>/posts/digital-ghost/</loc><lastmod>2026-03-18T00:00:00+00:00</lastmod></url><url><loc>/personen/sascha/</loc><lastmod>2026-03-18T00:00:00+00:00</lastmod></url><url><loc>/personen/schwester/</loc><lastmod>2026-03-18T00:00:00+00:00</lastmod></url><url><loc>/posts/spotlight-filter/</loc><lastmod>2026-03-18T00:00:00+00:00</lastmod></url><url><loc>/personen/sven/</loc><lastmod>2026-03-18T00:00:00+00:00</lastmod></url><url><loc>/posts/fork-bomb/</loc><lastmod>2026-03-18T00:00:00+00:00</lastmod></url><url><loc>/posts/n8n-resurrection/</loc><lastmod>2026-03-18T00:00:00+00:00</lastmod></url><url><loc>/posts/theme-annihilation/</loc><lastmod>2026-03-18T00:00:00+00:00</lastmod></url><url><loc>/personen/vater/</loc><lastmod>2026-03-18T00:00:00+00:00</lastmod></url><url><loc>/categories/</loc></url><url><loc>/tags/</loc></url></urlset>
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||||||
|
xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
||||||
|
<url>
|
||||||
|
<loc>//localhost:1414/</loc>
|
||||||
|
<lastmod>2026-04-03T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/anarchie/</loc>
|
||||||
|
<lastmod>2026-04-03T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/posts/protocol-top/</loc>
|
||||||
|
<lastmod>2026-03-18T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/posts/protocol-uptime/</loc>
|
||||||
|
<lastmod>2026-03-18T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/posts/protocol-weather/</loc>
|
||||||
|
<lastmod>2026-03-18T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/personen/bruder/</loc>
|
||||||
|
<lastmod>2026-03-18T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/posts/gemini-link/</loc>
|
||||||
|
<lastmod>2026-03-18T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/mac-nerds/</loc>
|
||||||
|
<lastmod>2026-03-18T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/personen/mutti/</loc>
|
||||||
|
<lastmod>2026-03-18T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/posts/neural-hack/</loc>
|
||||||
|
<lastmod>2026-03-18T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/posts/operation-apollo/</loc>
|
||||||
|
<lastmod>2026-03-18T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/personen/</loc>
|
||||||
|
<lastmod>2026-03-18T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/posts/</loc>
|
||||||
|
<lastmod>2026-03-18T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/posts/flux-overdrive/</loc>
|
||||||
|
<lastmod>2026-03-18T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/posts/icmp-echo/</loc>
|
||||||
|
<lastmod>2026-03-18T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/posts/digital-ghost/</loc>
|
||||||
|
<lastmod>2026-03-18T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/personen/sascha/</loc>
|
||||||
|
<lastmod>2026-03-18T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/personen/schwester/</loc>
|
||||||
|
<lastmod>2026-03-18T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/posts/spotlight-filter/</loc>
|
||||||
|
<lastmod>2026-03-18T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/personen/sven/</loc>
|
||||||
|
<lastmod>2026-03-18T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/posts/fork-bomb/</loc>
|
||||||
|
<lastmod>2026-03-18T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/posts/n8n-resurrection/</loc>
|
||||||
|
<lastmod>2026-03-18T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/posts/theme-annihilation/</loc>
|
||||||
|
<lastmod>2026-03-18T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/personen/vater/</loc>
|
||||||
|
<lastmod>2026-03-18T00:00:00+00:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/categories/</loc>
|
||||||
|
</url><url>
|
||||||
|
<loc>//localhost:1414/tags/</loc>
|
||||||
|
</url>
|
||||||
|
</urlset>
|
||||||
|
|
|
||||||
|
|
@ -1 +1,15 @@
|
||||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tags on DIGITALE ANARCHIE | KI-LABOR</title><link>/tags/</link><description>Recent content in Tags on DIGITALE ANARCHIE | KI-LABOR</description><generator>Hugo</generator><language>de-de</language><atom:link href="/tags/index.xml" rel="self" type="application/rss+xml"/></channel></rss>
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>Tags on DIGITALE ANARCHIE | KI-LABOR</title>
|
||||||
|
<link>//localhost:1414/tags/</link>
|
||||||
|
<description>Recent content in Tags on DIGITALE ANARCHIE | KI-LABOR</description>
|
||||||
|
<generator>Hugo</generator>
|
||||||
|
<language>de-de</language>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<atom:link href="//localhost:1414/tags/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
</channel>
|
||||||
|
</rss>
|
||||||
|
|
|
||||||
BIN
static/.DS_Store
vendored
BIN
static/.DS_Store
vendored
Binary file not shown.
114
static/js/ascii-shimmer.js
Normal file
114
static/js/ascii-shimmer.js
Normal file
|
|
@ -0,0 +1,114 @@
|
||||||
|
/* ASCII-Shimmer: rendert einen Text als flimmerndes ASCII-Art-Textbild.
|
||||||
|
Idee: Buchstaben werden zu einer Pixelmaske, innerhalb der Maske
|
||||||
|
werden Zeichen aus einem Zeichensatz zufaellig neu gewuerfelt. */
|
||||||
|
(function () {
|
||||||
|
function initAsciiShimmer(container) {
|
||||||
|
var text = container.dataset.text || 'KILABOR';
|
||||||
|
var cell = parseInt(container.dataset.cell || '10', 10);
|
||||||
|
var primaryColor = container.dataset.color || '#ff4500';
|
||||||
|
var dimColor = container.dataset.dimColor || 'rgba(212,175,55,0.35)';
|
||||||
|
var intervalMs = parseInt(container.dataset.interval || '140', 10);
|
||||||
|
|
||||||
|
var denseChars = ['$', '@', '%', '#', '&', '8', '0'];
|
||||||
|
var edgeChars = ['+', 'x', '-', '=', ':', '.', 'o'];
|
||||||
|
|
||||||
|
var canvas = document.createElement('canvas');
|
||||||
|
canvas.style.display = 'block';
|
||||||
|
container.appendChild(canvas);
|
||||||
|
var ctx = canvas.getContext('2d');
|
||||||
|
|
||||||
|
var mask = [];
|
||||||
|
var timer = null;
|
||||||
|
var cssWidth = 0;
|
||||||
|
var cssHeight = 0;
|
||||||
|
|
||||||
|
function buildMask() {
|
||||||
|
var width = container.clientWidth || 600;
|
||||||
|
var fontSize = Math.min(width / (text.length * 0.62), 160);
|
||||||
|
var height = Math.ceil(fontSize * 1.3);
|
||||||
|
cssWidth = width;
|
||||||
|
cssHeight = height;
|
||||||
|
|
||||||
|
var dpr = Math.min(window.devicePixelRatio || 1, 2);
|
||||||
|
canvas.width = Math.round(width * dpr);
|
||||||
|
canvas.height = Math.round(height * dpr);
|
||||||
|
canvas.style.width = width + 'px';
|
||||||
|
canvas.style.height = height + 'px';
|
||||||
|
ctx.setTransform(dpr, 0, 0, dpr, 0, 0);
|
||||||
|
|
||||||
|
var mCanvas = document.createElement('canvas');
|
||||||
|
mCanvas.width = width;
|
||||||
|
mCanvas.height = height;
|
||||||
|
var mctx = mCanvas.getContext('2d');
|
||||||
|
// Canvas bleibt transparent (alpha 0) - nur der Text bekommt Alpha > 0,
|
||||||
|
// darueber wird die Maske erkannt (kein separates Schwarz-Fuellen!).
|
||||||
|
mctx.fillStyle = '#fff';
|
||||||
|
mctx.font = "900 " + fontSize + "px 'Courier New', monospace";
|
||||||
|
mctx.textBaseline = 'middle';
|
||||||
|
mctx.textAlign = 'center';
|
||||||
|
mctx.fillText(text, width / 2, height / 2);
|
||||||
|
|
||||||
|
var imgData = mctx.getImageData(0, 0, width, height).data;
|
||||||
|
var cols = Math.floor(width / cell);
|
||||||
|
var rows = Math.floor(height / cell);
|
||||||
|
mask = [];
|
||||||
|
|
||||||
|
for (var ry = 0; ry < rows; ry++) {
|
||||||
|
for (var rx = 0; rx < cols; rx++) {
|
||||||
|
var px = Math.floor(rx * cell + cell / 2);
|
||||||
|
var py = Math.floor(ry * cell + cell / 2);
|
||||||
|
var idx = (py * width + px) * 4;
|
||||||
|
var alpha = imgData[idx + 3] / 255;
|
||||||
|
if (alpha > 0.15) {
|
||||||
|
mask.push({ x: rx, y: ry, alpha: alpha });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function draw() {
|
||||||
|
ctx.clearRect(0, 0, cssWidth, cssHeight);
|
||||||
|
ctx.font = cell + "px 'Courier New', monospace";
|
||||||
|
ctx.textBaseline = 'middle';
|
||||||
|
ctx.textAlign = 'center';
|
||||||
|
|
||||||
|
for (var i = 0; i < mask.length; i++) {
|
||||||
|
var c = mask[i];
|
||||||
|
var isDense = c.alpha > 0.7;
|
||||||
|
var set = isDense ? denseChars : edgeChars;
|
||||||
|
var char = set[(Math.random() * set.length) | 0];
|
||||||
|
ctx.fillStyle = isDense ? primaryColor : dimColor;
|
||||||
|
ctx.fillText(char, c.x * cell + cell / 2, c.y * cell + cell / 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function start() {
|
||||||
|
buildMask();
|
||||||
|
draw();
|
||||||
|
timer = setInterval(draw, intervalMs);
|
||||||
|
}
|
||||||
|
|
||||||
|
function stop() {
|
||||||
|
if (timer) { clearInterval(timer); timer = null; }
|
||||||
|
}
|
||||||
|
|
||||||
|
start();
|
||||||
|
|
||||||
|
var resizeTimeout;
|
||||||
|
window.addEventListener('resize', function () {
|
||||||
|
clearTimeout(resizeTimeout);
|
||||||
|
resizeTimeout = setTimeout(function () { buildMask(); draw(); }, 200);
|
||||||
|
});
|
||||||
|
|
||||||
|
document.addEventListener('visibilitychange', function () {
|
||||||
|
if (document.hidden) { stop(); } else if (!timer) { start(); }
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', function () {
|
||||||
|
var containers = document.querySelectorAll('[data-ascii-shimmer]');
|
||||||
|
for (var i = 0; i < containers.length; i++) {
|
||||||
|
initAsciiShimmer(containers[i]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})();
|
||||||
Loading…
Reference in a new issue