[{"content":"Outcome\nUnderstand why PID 1 (\u0026ldquo;mommy process\u0026rdquo;) owns every orphan on the box Recall the SysV init flow \u0026amp; its pain points Know what systemd bundles and why nerds argue about it PID 1 — the mommy process Starts first in the kernel’s user-space hand-off → gets PID 1 Every other process is its child, grandchild, or further down the tree If a parent dies, PID 1 adopts the orphan so its exit status can be reaped (prevents zombies) Zombie = process finished execution but still holds a slot in the table; init uses wait() to clean it up SysV init (a.k.a. Sys5 or \u0026ldquo;classic init\u0026rdquo;)\nPlain-text shell scripts in /etc/init.d/* Scripts run sequentially via run-levels (/etc/rc*.d) Drawbacks Serial startup ⇒ slow boot No dependency handling — you hand-craft order Limited monitoring — service crash may go unnoticed systemd Think of it as \u0026ldquo;init ++\u0026rdquo;: still PID 1, but also conductor for system state and services.\nWhat’s inside\nsystemctl — master CLI to start/stop/enable units journalctl — unified log viewer networkd, logind, timedated, etc. — micro-daemons Units replace old scripts; simple INI syntax Perks\nParallel boot with dependency graph → faster startup Built-in health monitoring \u0026amp; auto-restart One CLI for everything (systemctl status nginx.service) Controversies Bigger footprint than minimalist folks like Binary journal files in /var/log/journal Pros: indexed, structured, tamper-resistant Cons: need journalctl; harder with plain tools Want old school? set Storage=none in journald.conf Quick commands Show PID 1: ps -p 1 -o comm= List orphans adopted by PID 1: ps -o pid,ppid,comm | awk \u0026lsquo;$2==1 \u0026amp;\u0026amp; $1!=1\u0026rsquo; Tail last boot logs: journalctl -b -e Memory prompts for exams \u0026ldquo;Mom adopts orphans\u0026rdquo; → PID 1 waits on zombies SysV = scripts + run-levels; systemd = units + parallel boot Recall SUID, SGID, Sticky bits from the permissions cheat-sheet Todos Mini post on writing a simple .service unit Compare OpenRC vs systemd on Alpine/Gentoo ","permalink":"https://ivangoncharuk.github.io/linux-study/systemd/","summary":"\u003cp\u003eOutcome\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ci class=\"bi bi-eye-fill\"\u003e\u003c/i\u003e Understand why PID 1 (\u0026ldquo;mommy process\u0026rdquo;) owns every orphan on the box\u003c/li\u003e\n\u003cli\u003e\u003ci class=\"bi bi-clock-history\"\u003e\u003c/i\u003e Recall the SysV init flow \u0026amp; its pain points\u003c/li\u003e\n\u003cli\u003e\u003ci class=\"bi bi-diagram-3-fill\"\u003e\u003c/i\u003e Know what systemd bundles and why nerds argue about it\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003ch2 id=\"pid-1--the-mommy-process\"\u003ePID 1 — the mommy process\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ci class=\"bi bi-person-fill\"\u003e\u003c/i\u003e Starts first in the kernel’s user-space hand-off → gets PID 1\u003c/li\u003e\n\u003cli\u003e\u003ci class=\"bi bi-diagram-3\"\u003e\u003c/i\u003e Every other process is its child, grandchild, or further down the tree\u003c/li\u003e\n\u003cli\u003e\u003ci class=\"bi bi-emoji-smile-upside-down\"\u003e\u003c/i\u003e If a parent dies, PID 1 adopts the orphan so its exit status can be reaped (prevents zombies)\u003c/li\u003e\n\u003cli\u003e\u003ci class=\"bi bi-bug-fill\"\u003e\u003c/i\u003e Zombie = process finished execution but still holds a slot in the table; init uses wait() to clean it up\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003ch2 id=\"sysv-init-hahahugoshortcode9s7hbhb\"\u003eSysV init \u003ci class=\"bi bi-archive-fill\"\u003e\u003c/i\u003e\u003c/h2\u003e\n\u003cp\u003e(a.k.a. Sys5 or \u0026ldquo;classic init\u0026rdquo;)\u003c/p\u003e","title":"Intro to systemd"},{"content":"Linux Filesystem cheatsheet Dir What’s in there Quick vibe /etc System-wide config (fstab, ssh/, apt/…) Brain – tweak here, bend the OS /bin Core binaries (ls, cp, bash) First-aid toolkit; always present, even in rescue mode /sbin Sysadmin binaries (mount, ip, systemctl) Same as /bin but root-only toys /usr/bin Full app set (gcc, python) Userland galaxy – 90 % of commands /usr/sbin Heavier daemons (sshd, cron) Admin apps still in userland /usr/local Locally compiled stuff Keeps your builds safe from the distro’s package manager /var Logs, spool, caches, DB files Growing stomach – watch disk usage /run (/var/run) Volatile runtime state (PIDs, sockets) tmpfs in RAM, born early at boot /home Users’ dirs You, your dotfiles, your mess /opt 3rd-party bundles (Chrome, VMware) Vendor playground; easy to nuke /dev Device nodes (/dev/sda, /dev/null) “Everything’s a file” made real /proc Kernel + process pseudo-FS cat /proc/cpuinfo = free hardware probe /sys Kernel objects, drivers Modern cousin of /proc; tweak power/LEDs /tmp Scratch space Auto-purged; don’t stash secrets /boot Kernel \u0026amp; bootloader bits (vmlinuz, grub/) Small, often its own partition Why the weird names? usr ≠ “user” originally—Unix System Resources (/usr/bin). sbin = system binaries (super-user land). opt from optional add-ons in SVR4 days. run split from /var so early-boot services get instant writable RAM. Quick cross-OS compare OS Root Apps live in User homes Mount style 🐧 Linux/*BSD / /usr/bin, /opt /home/ivan Any device mounts anywhere (/mnt/usb) via fstab macOS / /Applications (GUI), /usr/bin (CLI) /Users/ivan External drives auto-mount under /Volumes Windows C:\\ C:\\Program Files / Program Files (x86) C:\\Users\\Ivan Letters (D:\\, E:\\) instead of grafting into a single tree Handy aliases \u0026amp; shortcuts ~ → home dir (/home/ivan, /Users/ivan). . = current dir, .. = parent. /var/run → symlink to /run on modern distros. /bin \u0026amp; /sbin often symlink to /usr/bin \u0026amp; /usr/sbin (the usr-merge trend). Mounting in one breath Linux glues extra filesystems into the tree:\nmount /dev/sdb1 /media/usb\nmacOS auto-mounts to /Volumes/DriveName,\nWindows splits the forests into drive letters.\nTODOs Break out /proc \u0026amp; /sys deep dive Write a note on permissions \u0026amp; chmod octals Draft a Mac vs Linux path mash-up table ","permalink":"https://ivangoncharuk.github.io/linux-study/linux_fs/","summary":"\u003ch2 id=\"linux-filesystem-cheatsheet\"\u003eLinux Filesystem cheatsheet\u003c/h2\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eDir\u003c/th\u003e\n          \u003cth\u003eWhat’s in there\u003c/th\u003e\n          \u003cth\u003eQuick vibe\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ci class=\"bi bi-gear-fill\"\u003e\u003c/i\u003e \u003ccode\u003e/etc\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eSystem-wide config (\u003ccode\u003efstab\u003c/code\u003e, \u003ccode\u003essh/\u003c/code\u003e, \u003ccode\u003eapt/\u003c/code\u003e…)\u003c/td\u003e\n          \u003ctd\u003eBrain – tweak here, bend the OS\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ci class=\"bi bi-wrench-adjustable\"\u003e\u003c/i\u003e \u003ccode\u003e/bin\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eCore binaries (\u003ccode\u003els\u003c/code\u003e, \u003ccode\u003ecp\u003c/code\u003e, \u003ccode\u003ebash\u003c/code\u003e)\u003c/td\u003e\n          \u003ctd\u003eFirst-aid toolkit; always present, even in rescue mode\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ci class=\"bi bi-shield-lock\"\u003e\u003c/i\u003e \u003ccode\u003e/sbin\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eSysadmin binaries (\u003ccode\u003emount\u003c/code\u003e, \u003ccode\u003eip\u003c/code\u003e, \u003ccode\u003esystemctl\u003c/code\u003e)\u003c/td\u003e\n          \u003ctd\u003eSame as \u003ccode\u003e/bin\u003c/code\u003e but root-only toys\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ci class=\"bi bi-box-seam\"\u003e\u003c/i\u003e \u003ccode\u003e/usr/bin\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eFull app set (gcc, python)\u003c/td\u003e\n          \u003ctd\u003eUserland galaxy – 90 % of commands\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ci class=\"bi bi-server\"\u003e\u003c/i\u003e \u003ccode\u003e/usr/sbin\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eHeavier daemons (\u003ccode\u003esshd\u003c/code\u003e, \u003ccode\u003ecron\u003c/code\u003e)\u003c/td\u003e\n          \u003ctd\u003eAdmin apps still in userland\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ci class=\"bi bi-hammer\"\u003e\u003c/i\u003e \u003ccode\u003e/usr/local\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eLocally compiled stuff\u003c/td\u003e\n          \u003ctd\u003eKeeps your builds safe from the distro’s package manager\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ci class=\"bi bi-graph-up\"\u003e\u003c/i\u003e \u003ccode\u003e/var\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eLogs, spool, caches, DB files\u003c/td\u003e\n          \u003ctd\u003eGrowing stomach – watch disk usage\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ci class=\"bi bi-lightning\"\u003e\u003c/i\u003e \u003ccode\u003e/run\u003c/code\u003e (\u003ccode\u003e/var/run\u003c/code\u003e)\u003c/td\u003e\n          \u003ctd\u003eVolatile runtime state (PIDs, sockets)\u003c/td\u003e\n          \u003ctd\u003etmpfs in RAM, born early at boot\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ci class=\"bi bi-house-door\"\u003e\u003c/i\u003e \u003ccode\u003e/home\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eUsers’ dirs\u003c/td\u003e\n          \u003ctd\u003eYou, your dotfiles, your mess\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ci class=\"bi bi-layers\"\u003e\u003c/i\u003e \u003ccode\u003e/opt\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e3rd-party bundles (Chrome, VMware)\u003c/td\u003e\n          \u003ctd\u003eVendor playground; easy to nuke\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ci class=\"bi bi-hdd\"\u003e\u003c/i\u003e \u003ccode\u003e/dev\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eDevice nodes (\u003ccode\u003e/dev/sda\u003c/code\u003e, \u003ccode\u003e/dev/null\u003c/code\u003e)\u003c/td\u003e\n          \u003ctd\u003e“Everything’s a file” made real\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ci class=\"bi bi-cpu\"\u003e\u003c/i\u003e \u003ccode\u003e/proc\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eKernel + process pseudo-FS\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003ecat /proc/cpuinfo\u003c/code\u003e = free hardware probe\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ci class=\"bi bi-motherboard\"\u003e\u003c/i\u003e \u003ccode\u003e/sys\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eKernel objects, drivers\u003c/td\u003e\n          \u003ctd\u003eModern cousin of \u003ccode\u003e/proc\u003c/code\u003e; tweak power/LEDs\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ci class=\"bi bi-trash\"\u003e\u003c/i\u003e \u003ccode\u003e/tmp\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eScratch space\u003c/td\u003e\n          \u003ctd\u003eAuto-purged; don’t stash secrets\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ci class=\"bi bi-power\"\u003e\u003c/i\u003e \u003ccode\u003e/boot\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eKernel \u0026amp; bootloader bits (\u003ccode\u003evmlinuz\u003c/code\u003e, \u003ccode\u003egrub/\u003c/code\u003e)\u003c/td\u003e\n          \u003ctd\u003eSmall, often its own partition\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3 id=\"why-the-weird-names\"\u003eWhy the weird names?\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eusr\u003c/code\u003e ≠ “user” originally—\u003cem\u003eUnix System Resources\u003c/em\u003e (\u003ccode\u003e/usr/bin\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esbin\u003c/code\u003e = \u003cem\u003esystem binaries\u003c/em\u003e (super-user land).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopt\u003c/code\u003e from \u003cem\u003eoptional\u003c/em\u003e add-ons in SVR4 days.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erun\u003c/code\u003e split from \u003ccode\u003e/var\u003c/code\u003e so early-boot services get instant writable RAM.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"quick-cross-os-compare\"\u003eQuick cross-OS compare\u003c/h3\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eOS\u003c/th\u003e\n          \u003cth\u003eRoot\u003c/th\u003e\n          \u003cth\u003eApps live in\u003c/th\u003e\n          \u003cth\u003eUser homes\u003c/th\u003e\n          \u003cth\u003eMount style\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e🐧 Linux/*BSD\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e/\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e/usr/bin\u003c/code\u003e, \u003ccode\u003e/opt\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e/home/ivan\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eAny device mounts anywhere (\u003ccode\u003e/mnt/usb\u003c/code\u003e) via \u003ccode\u003efstab\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ci class=\"bi bi-apple\"\u003e\u003c/i\u003e macOS\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e/\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e/Applications\u003c/code\u003e (GUI), \u003ccode\u003e/usr/bin\u003c/code\u003e (CLI)\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e/Users/ivan\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eExternal drives auto-mount under \u003ccode\u003e/Volumes\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ci class=\"bi bi-microsoft\"\u003e\u003c/i\u003e Windows\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003eC:\\\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003eC:\\Program Files\u003c/code\u003e / \u003ccode\u003eProgram Files (x86)\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003eC:\\Users\\Ivan\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eLetters (\u003ccode\u003eD:\\\u003c/code\u003e, \u003ccode\u003eE:\\\u003c/code\u003e) instead of grafting into a single tree\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3 id=\"handy-aliases--shortcuts\"\u003eHandy aliases \u0026amp; shortcuts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e~\u003c/code\u003e → home dir (\u003ccode\u003e/home/ivan\u003c/code\u003e, \u003ccode\u003e/Users/ivan\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.\u003c/code\u003e = current dir, \u003ccode\u003e..\u003c/code\u003e = parent.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e/var/run\u003c/code\u003e → symlink to \u003ccode\u003e/run\u003c/code\u003e on modern distros.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e/bin\u003c/code\u003e \u0026amp; \u003ccode\u003e/sbin\u003c/code\u003e often symlink to \u003ccode\u003e/usr/bin\u003c/code\u003e \u0026amp; \u003ccode\u003e/usr/sbin\u003c/code\u003e (the \u003cem\u003eusr-merge\u003c/em\u003e trend).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"mounting-in-one-breath\"\u003eMounting in one breath\u003c/h3\u003e\n\u003cblockquote\u003e\n\u003cp\u003eLinux glues extra filesystems \u003cstrong\u003einto\u003c/strong\u003e the tree:\u003cbr\u003e\n\u003ccode\u003emount /dev/sdb1 /media/usb\u003c/code\u003e\u003cbr\u003e\nmacOS auto-mounts to \u003ccode\u003e/Volumes/DriveName\u003c/code\u003e,\u003cbr\u003e\nWindows splits the forests into drive letters.\u003c/p\u003e","title":"Introduction to Linux Filesystem"},{"content":" My private documentation site setup guide\nOutcome Local wiki/blog at ~/vault, one command on or off. Edits show up live the second you hit save. Git keeps history \u0026amp; lets friends add stuff. Pushes auto-build to Netlify so you can read it anywhere without opening ports. This one-time setup should take approx 3 min\nInstall Hugo If you haven\u0026rsquo;t already installed Hugo on your system, use your own apropriate package manager.\nIn this guide, I\u0026rsquo;m using macOS with the brew package manager.\nbrew install hugo Scaffold the site Assuming you want to make this project called vault:\nhugo new site ~/vault \u0026amp;\u0026amp; cd ~/vault # Drop in a theme, TODO: find better theme git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke themes/ananke echo \u0026#39;theme = \u0026#34;ananke\u0026#34;\u0026#39; \u0026gt;\u0026gt; config.toml git add . \u0026amp;\u0026amp; git commit -m \u0026#34;fresh hugo vault\u0026#34; Tiny on/off script inside ~/vault/vaultctl:\nFirst make the script file. Use any name you wish for this toggle script. In this case, I used vaultctl.sh touch vaultctl.sh Next, copy this script and add it in your vaultctl.sh, or whatever you\u0026rsquo;ve named it.\n# TODO: test and update docs for linux and windows in the future #!/usr/bin/env bash PID=\u0026#34;$HOME/vault/.hugo.pid\u0026#34; PORT=1313 IP=$(ipconfig getifaddr en0) # Wi-Fi IP on macOS case \u0026#34;$1\u0026#34; in start) [[ -f $PID ]] \u0026amp;\u0026amp; echo \u0026#34;running already\u0026#34; \u0026amp;\u0026amp; exit hugo server --bind 0.0.0.0 --baseURL \u0026#34;http://$IP:$PORT\u0026#34; \\ --source \u0026#34;$HOME/vault\u0026#34; --port \u0026#34;$PORT\u0026#34; \u0026gt;/dev/null 2\u0026gt;\u0026amp;1 \u0026amp; echo $! \u0026gt; \u0026#34;$PID\u0026#34; echo \u0026#34;live at http://$IP:$PORT\u0026#34; ;; stop) [[ -f $PID ]] \u0026amp;\u0026amp; kill \u0026#34;$(cat $PID)\u0026#34; \u0026amp;\u0026amp; rm \u0026#34;$PID\u0026#34; \u0026amp;\u0026amp; echo \u0026#34;stopped\u0026#34; ;; *) echo \u0026#34;usage: vaultctl start|stop\u0026#34; ;; esac ⚠️Important⚠️ To be able to execute the file like ./vaultctl,\nYou must give the file execute permissions with chmod command:\nchmod +x vaultctl How to use To fire it, up run ./vaultctl, make sure you gave the file execute permissions with the chmod command.\n# TODO: add post about chmod and file permissions in general, and how to read octals hugo new docs/new-note.md\u0026#39; # → edit → save Save to git:\ngit add . \u0026amp;\u0026amp; git commit -m \u0026#34;note\u0026#34; \u0026amp;\u0026amp; git push turn it off by executing the toggle script ./vaultctl to stop\nTo let others post # only need to do once git remote add origin git@github.com:YOURUSERNAME/vault.git git push -u origin main # push site + script # give friends write access on GitHub Everyone edits markdown, pushes, done.\nShip a public clone (with Netlify, 60 sec) Now you’ve got\nhttps://whatever.netlify.app\nas the “on-the-road” copy, and the home server stays private.\nOther TODOs, remove me in the future please! # TODO: add screenshot when I decide to use this # TODO: improve the netlify section for beginners # TODO: set personal reminder for myself to make these tutorials more often for personal reference. # TODO: add more personally useful bash scripts to this hugo site # TODO: add a gists post, or just use github # TODO: funny section of various scam texts I received over the years ane regularly update it. I cannot believe I wrote all this on my phone! ill probably forget to delete this sentence, but the chances anyone actually reaches this far,\n","permalink":"https://ivangoncharuk.github.io/posts/quick_start_pocket_docs/","summary":"\u003chr\u003e\n\u003cp\u003eMy private documentation site setup guide\u003c/p\u003e\n\u003ch1 id=\"outcome\"\u003eOutcome\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eLocal wiki/blog at \u003ccode\u003e~/vault\u003c/code\u003e, one command on or off.\u003c/li\u003e\n\u003cli\u003eEdits show up live the second you hit save.\u003c/li\u003e\n\u003cli\u003eGit keeps history \u0026amp; lets friends add stuff.\u003c/li\u003e\n\u003cli\u003ePushes auto-build to Netlify so you can read it anywhere without opening ports.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis one-time setup should take approx 3 min\u003c/p\u003e\n\u003ch1 id=\"install-hugo\"\u003eInstall Hugo\u003c/h1\u003e\n\u003cp\u003eIf you haven\u0026rsquo;t already installed \u003cstrong\u003eHugo\u003c/strong\u003e on your system,\nuse your own apropriate package manager.\u003c/p\u003e","title":"Pocket-Docs Site: quick start"},{"content":"Outcome •\tRemember the general Taylor formula and the Maclaurin special case •\tKnow how to grab the first n terms for quick approximations •\tRecall the remainder term’s shape to bound your error\nDefinition For a function $f(x)$ with enough derivatives near $a$:\n$$ f(x)=\\sum_{k=0}^{\\infty}\\frac{f^{(k)}(a)}{k!}(x-a)^{k} $$ •\tIf $a=0$ it’s called a Maclaurin series.\nThe $n^{\\text{th}}$-degree Taylor polynomial:\n$$ P_n(x)=\\sum_{k=0}^{n}\\frac{f^{(k)}(a)}{k!}(x-a)^{k} $$\nRemainder / error after $n$ terms (Lagrange form):\n$$ R_n(x)=\\frac{f^{(n+1)}(\\xi)}{(n+1)!}(x-a)^{,n+1}, \\quad \\xi \\text{ between } a \\text{ and } x $$\nClassic examples Function\tFirst few Maclaurin terms $\\displaystyle e^{x}$\t$1+x+\\dfrac{x^{2}}{2!}+\\dfrac{x^{3}}{3!}+\\cdots$ $\\displaystyle \\sin x$\t$x-\\dfrac{x^{3}}{3!}+\\dfrac{x^{5}}{5!}-\\cdots$ $\\displaystyle \\cos x$\t$1-\\dfrac{x^{2}}{2!}+\\dfrac{x^{4}}{4!}-\\cdots$\nQuick hack: drop after $x^{3}$ for $\\sin x$ when $|x|\\le 0.2$ — error $\u0026lt;10^{-4}$ thanks to $R_3$.\nHow to grind it fast 1.\tTake derivatives until the pattern is obvious. 2.\tEvaluate at $a$ (often $0$). 3.\tPlug into the coefficient formula $\\dfrac{f^{(k)}(a)}{k!}$. 4.\tStop at the term your exam asks for; quote the remainder to justify accuracy.\nMnemonic: \u0026ldquo;Derive, Plug, Divide, Write.\u0026rdquo;\nMicro-practice Approximate $\\ln(1+x)$ near $x=0$ up to $x^{3}$:\n$$ f(x)=\\ln(1+x), ; f’(x)=\\frac1{1+x},;f’’(x)=-\\frac1{(1+x)^2},;f’’’(x)=\\frac{2}{(1+x)^3} $$\nAt $x=0$: $f(0)=0,;f’(0)=1,;f’’(0)=-1,;f’’’(0)=2$.\nSo\n$$ \\ln(1+x)=x-\\frac{x^{2}}{2}+\\frac{x^{3}}{3}+R_3(x) $$\nwith\n$$ |R_3(x)|\\le\\frac{2|x|^{4}}{4!(1+\\xi)^{4}}\\le\\frac{|x|^{4}}{12} $$\n(for $|x|\\le 0.5$, error $\u0026lt;0.002$).\nSource: lecture PDF \u0026ldquo;Taylor Series\u0026rdquo;\n","permalink":"https://ivangoncharuk.github.io/posts/taylor-series/","summary":"\u003cp\u003eOutcome\n•\t\u003ci class=\"bi bi-target\"\u003e\u003c/i\u003e Remember the general Taylor formula and the Maclaurin special case\n•\t\u003ci class=\"bi bi-123\"\u003e\u003c/i\u003e Know how to grab the first n terms for quick approximations\n•\t\u003ci class=\"bi bi-exclamation-diamond-fill\"\u003e\u003c/i\u003e Recall the remainder term’s shape to bound your error\u003c/p\u003e\n\u003chr\u003e\n\u003cp\u003eDefinition \u003ci class=\"bi bi-book\"\u003e\u003c/i\u003e\u003c/p\u003e\n\u003cp\u003eFor a function $f(x)$ with enough derivatives near $a$:\u003c/p\u003e\n\u003cp\u003e$$\nf(x)=\\sum_{k=0}^{\\infty}\\frac{f^{(k)}(a)}{k!}(x-a)^{k}\n$$\n•\tIf $a=0$ it’s called a Maclaurin series.\u003c/p\u003e\n\u003cp\u003eThe $n^{\\text{th}}$-degree Taylor polynomial:\u003c/p\u003e\n\u003cp\u003e$$\nP_n(x)=\\sum_{k=0}^{n}\\frac{f^{(k)}(a)}{k!}(x-a)^{k}\n$$\u003c/p\u003e\n\u003cp\u003eRemainder / error after $n$ terms (Lagrange form):\u003c/p\u003e","title":"Taylor Series - crash-course"},{"content":"Outcome Understand how rwx maps to octal digits. Set, fix, and audit permissions quickly using: chmod chown setfacl Remember what SUID / SGID / sticky and ACL do without Googling. Permissions Basics Octal Symbolic Meaning 0 --- No rights 1 --x Execute only 2 -w- Write only 3 -wx Write + Execute 4 r-- Read only 5 r-x Read + Execute 6 rw- Read + Write 7 rwx Read + Write + Execute Mnemonic: 421 $\\rightarrow$ rwx\nJust add them to get each digit.\nExample:\nchmod 640 file $\\rightarrow$ rw- r-- ---\n(owner can read/write, group can read, others have no permissions).\nCheat-sheet for common tasks Task\tCommand Give owner execute\tchmod u+x script.sh Remove “others” write\tchmod o-w *.md Exact mode (octal)\tchmod 755 /usr/local/bin/tool Change owner \u0026amp; group\tsudo chown ivan:devs project Recursive group write\tchmod -R g+w shared/ Default mask for new files\tumask 002 UID / GID – User / Group ID numbers. ACL – Access Control List, extra per-user rules beyond rwx. Special bits Bit\tOctal flag\tWhat it does SUID\t4\tRun program as file owner (often root) SGID\t2\tRun as file’s group or make new files inherit the dir’s group Sticky\t1\tOn dirs: only owner may delete own files (e.g. /tmp) Combine by prepending the flag digit: chmod 4755 /bin/foo sets SUID + 755. ACLs in one breath Why? rwx covers only owner / group / others; ACL adds per-user or per-group rules. Add rule: setfacl -m u:alice:rw file View rules: getfacl file Works on ext4, XFS, APFS Windows NTFS uses ACLs by default (icacls). Handy commands to remember cat /etc/os-release – check distro info ls -l – view permissions (symbolic) stat -c %a file – view octal mode find . -type f ! -perm 644 – spot odd perms systemctl list-units \u0026ndash;type=service – list active services Octal memory drill Write this on scratch paper, then quiz yourself:\nr (4) w (2) x (1) 7 = rwx 6 = rw- 5 = r-x 4 = r-- 3 = -wx 2 = -w- 1 = --x 0 = --- Pick random numbers; translate to symbols \u0026amp; back. Aim for \u0026lt; 5 s per conversion. Practice: chmod \u0026ndash;verbose 640 dummyfile and read the output. Todos Add /proc \u0026amp; /sys permission quirks. One-pager on symbolic vs octal chmod. Compare Linux ACL vs Windows NTFS ACL. ","permalink":"https://ivangoncharuk.github.io/linux-study/unix_style_file_perms/","summary":"\u003ch1 id=\"outcome\"\u003eOutcome\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUnderstand how rwx maps to octal digits.\u003c/li\u003e\n\u003cli\u003eSet, fix, and audit permissions quickly using:\n\u003cul\u003e\n\u003cli\u003echmod\u003c/li\u003e\n\u003cli\u003echown\u003c/li\u003e\n\u003cli\u003esetfacl\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eRemember what SUID / SGID / sticky and ACL do without Googling.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003ch1 id=\"permissions-basics\"\u003ePermissions Basics\u003c/h1\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth style=\"text-align: center\"\u003eOctal\u003c/th\u003e\n          \u003cth style=\"text-align: center\"\u003eSymbolic\u003c/th\u003e\n          \u003cth\u003eMeaning\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: center\"\u003e0\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003ccode\u003e---\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eNo rights\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: center\"\u003e1\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003ccode\u003e--x\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eExecute only\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: center\"\u003e2\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003ccode\u003e-w-\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eWrite only\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: center\"\u003e3\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003ccode\u003e-wx\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eWrite + Execute\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: center\"\u003e4\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003ccode\u003er--\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eRead only\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: center\"\u003e5\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003ccode\u003er-x\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eRead + Execute\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: center\"\u003e6\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003ccode\u003erw-\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eRead + Write\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: center\"\u003e7\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003ccode\u003erwx\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eRead + Write + Execute\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003e\u003cstrong\u003eMnemonic:\u003c/strong\u003e\n\u003ccode\u003e421\u003c/code\u003e $\\rightarrow$ \u003ccode\u003erwx\u003c/code\u003e\u003c/p\u003e","title":"Unix Permissions Cheat-Sheet"},{"content":" Versatile IT Professional \u0026amp; Aspiring Software Developer An adaptable Computer Science graduate with hands-on experience in help-desk support, certified mobile device repair, and small-to-mid-scale network setup. Comfortable in Python and full-stack JavaScript environments and eager to bring strong troubleshooting and development skills to software-engineering or advanced IT roles.\nLocation Baltimore, MD Email goncharukivan.biz@gmail.com LinkedIn linkedin.com/in/ivangoncharuk GitHub github.com/ivangoncharuk Phone (410) 703-0807 Education B.S. in Computer Science Towson University, May 2025\nTechnical Skills Here\u0026rsquo;s a breakdown of my technical expertise:\nIT \u0026 Platforms Support \u0026 Admin: Active Directory (user \u0026 group management), KACE ticketing system, TeamViewer, Workstation imaging \u0026 deployment, User onboarding/off-boarding, Microsoft Office Suite troubleshooting. Platforms: Windows (Desktop \u0026 Server), Linux, macOS, Android, iOS. Hardware: PC/laptop component replacement \u0026 upgrade, Manufacturer-certified mobile device repair (Apple, Samsung, Google), Peripheral setup. Development Languages: Python, JavaScript, SQL, Bash, Java, C++, C, PowerShell. Dev Tools: Git, Docker, Node.js/Express, React/Next.js, RESTful APIs, MySQL/PostgreSQL, NoSQL, Agile workflows. Networking Protocols \u0026 Services: TCP/IP, DNS, DHCP, LAN/WAN troubleshooting. Infrastructure: Cat5e/Cat6 installation \u0026 termination, Wi-Fi configuration \u0026 security, VPN client setup. Professional Experience Mobile Repair Technician — uBreakiFix by Asurion\nHampden, MD • May 2024 – Sep 2024\nDiagnosed and repaired hardware/software issues on 200+ mobile devices using manufacturer-approved tools (Samsung Fenrir, Apple GSX, AST 2). Provided clear, jargon-free explanations of complex repairs, consistently earning high customer-satisfaction scores. IT Help Desk — MileOne Auto Group\nTowson, MD • Jan 2024 – May 2024\nDelivered Tier 1/2 support for 3,000+ employees, resolving Windows, printer, enterprise-app, and network issues through the KACE system. Administered full user lifecycle in Active Directory; imaged and deployed 50+ workstations and routed Cat5e/Cat6 drops. Authored and updated internal documentation to streamline team workflows. Census Enumerator — U.S. Census Bureau\nQueen Anne’s County, MD • Aug 2020 – Nov 2020\nConducted door-to-door interviews, safeguarding sensitive PII on government-issued devices. Met or exceeded daily interview quotas under strict federal accuracy standards. Projects 💻 Palette – MERN platform connecting creatives with project owners. Built with React, Redux, Tailwind, Node, Express, MongoDB, and JWT.\nView on GitHub\n💻 Networked Tic-Tac-Toe – Real-time multiplayer game using Python, PySide6, and socket programming.\nView on GitHub\n💻 AlgoViewer – Interactive Python tool that visualizes sorting algorithms with customtkinter.\nView on GitHub\nOfficial Resume For a downloadable version, please see the PDF below.\nClick to view my resume in PDF format ","permalink":"https://ivangoncharuk.github.io/resume/","summary":"\u003cstyle\u003e\n  .job-title {\n    font-weight: 600;\n  }\n  .company-info {\n    font-style: italic;\n    color: var(--secondary);\n  }\n  .project-links a {\n    margin-right: 10px;\n  }\n  details summary {\n    cursor: pointer;\n    font-size: 1.1rem;\n    padding-bottom: 5px;\n  }\n\u003c/style\u003e\n\u003ch2 id=\"versatile-it-professional--aspiring-software-developer\"\u003eVersatile IT Professional \u0026amp; Aspiring Software Developer\u003c/h2\u003e\n\u003cp\u003eAn adaptable Computer Science graduate with hands-on experience in help-desk support, certified mobile device repair, and small-to-mid-scale network setup. Comfortable in Python and full-stack JavaScript environments and eager to bring strong troubleshooting and development skills to software-engineering or advanced IT roles.\u003c/p\u003e","title":"My Resume"},{"content":"Welcome! This post exists to test and demonstrate all the key features supported by the PaperMod theme in Hugo.\nThis will help verify your theme setup and content rendering.\n🧮 MathJax Test Einstein said $E = mc^2$\n$$ \\int_{-\\infty}^{\\infty} e^{-x^2},dx = \\sqrt{\\pi} $$\n✍️ Typography This is bold, this is italic, this is bold italic, and this is inline code.\nThis is a blockquote. It supports multiple lines too.\n🔢 Table of Contents (ToC should be visible if toc: true is set in front matter and showtoc is enabled in your config.)\n📚 Headings H3 Heading H4 Heading H5 Heading 📎 Lists Unordered list: Item A Item B Nested B1 Nested B2 Ordered list: First Second Third 📌 Task List Create Hugo site Set up PaperMod Deploy to production 🖼 Image Test 💻 Code Block def greet(name): return f\u0026#34;Hello, {name}!\u0026#34; print(greet(\u0026#34;Hugo User\u0026#34;)) ","permalink":"https://ivangoncharuk.github.io/posts/hello-world/","summary":"\u003cp\u003eWelcome! This post exists to \u003cstrong\u003etest and demonstrate\u003c/strong\u003e all the key features supported by the \u003ca href=\"https://github.com/adityatelange/hugo-PaperMod\"\u003ePaperMod\u003c/a\u003e theme in Hugo.\u003cbr\u003e\nThis will help verify your theme setup and content rendering.\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"-mathjax-test\"\u003e🧮 MathJax Test\u003c/h2\u003e\n\u003cp\u003eEinstein said $E = mc^2$\u003c/p\u003e\n\u003cp\u003e$$\n\\int_{-\\infty}^{\\infty} e^{-x^2},dx = \\sqrt{\\pi}\n$$\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"-typography\"\u003e✍️ Typography\u003c/h2\u003e\n\u003cp\u003eThis is \u003cstrong\u003ebold\u003c/strong\u003e, this is \u003cem\u003eitalic\u003c/em\u003e, this is \u003cem\u003e\u003cstrong\u003ebold italic\u003c/strong\u003e\u003c/em\u003e, and this is \u003ccode\u003einline code\u003c/code\u003e.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThis is a blockquote.\nIt supports multiple lines too.\u003c/p\u003e\u003c/blockquote\u003e\n\u003chr\u003e\n\u003ch2 id=\"-table-of-contents\"\u003e🔢 Table of Contents\u003c/h2\u003e\n\u003cp\u003e(ToC should be visible if \u003ccode\u003etoc: true\u003c/code\u003e is set in front matter and \u003ccode\u003eshowtoc\u003c/code\u003e is enabled in your config.)\u003c/p\u003e","title":"Test Post: Hugo + PaperMod Full Feature Demo"},{"content":" whoami I\u0026rsquo;m Ivan Goncharuk, a recent Computer Science graduate from Towson University. I have a passion for software development and am currently seeking opportunities to apply my skills in a professional setting.\nI enjoy working on projects that challenge me and allow me to grow as a developer. In my free time, I like to explore new technologies and contribute to open-source projects.\nContact You can reach me via email at goncharukivan.biz@gmail.com or connect with me on LinkedIn.\nSocial Media I don\u0026rsquo;t use social media much, but you can find me on:\nGitHub Hobbies I enjoy coding, reading about new technologies, and playing video games. I also like to stay active by going to the gym and playing pickleball.\n","permalink":"https://ivangoncharuk.github.io/about/","summary":"\u003c!-- Add content about Ivan Goncharuk here. --\u003e\n\u003ch2 id=\"whoami\"\u003ewhoami\u003c/h2\u003e\n\u003cp\u003eI\u0026rsquo;m Ivan Goncharuk, a recent Computer Science graduate from Towson University. I have a passion for software development and am currently seeking opportunities to apply my skills in a professional setting.\u003c/p\u003e\n\u003cp\u003eI enjoy working on projects that challenge me and allow me to grow as a developer. In my free time, I like to explore new technologies and contribute to open-source projects.\u003c/p\u003e","title":""}]