
Network Uptime Monitor
Know a camera or access point is down before anyone complains.
- Python
- SQLite
- ICMP / TCP
- HTML / CSS
Practical, hands-on lessons, a free book, and real tools — written in plain language, in English and Persian.
Short, practical reads you can follow along with. New ones added over time.
Open a terminal, find out where you are, and run your first real commands — with the exact output from a live Ubuntu system.
ReadList, create, move and delete files without a mouse — the handful of commands you'll use every single day.
ReadThat rwxr-xr-x string next to every file isn't noise — it's who can read, write and run it. Learn to read and change it.
ReadVariables, text, decisions and loops — the core of Python, with tiny examples you can run as you read.
ReadThe language that runs in every browser — including this site. Variables, functions, and making a page react.
ReadTurn a sequence of commands you type every day into one script you run with a single word.
ReadEvery device on a network has a number so others can find it. Here's how those numbers work, in plain language.
ReadBefore any tool, security is a way of thinking. The few habits that stop the vast majority of real attacks.
ReadInteractive tools that run on your own device — nothing is uploaded.
Turn on your camera or upload a photo: it maps 478 points on your face, follows your eyes, estimates your eye colour, reads expressions, counts fingers, recognises hand gestures and tracks your body — live.
Open the toolMy writing, free to read online.
Working tools I wrote for real problems in network, security and IT support. Each one comes with its source code, documentation and automated tests.

Know a camera or access point is down before anyone complains.
$ python3 genconfig.py examples/broken.json --check examples/broken.json: 7 problem(s) - VLAN 1003 is reserved or out of range - Gi1/0/4 used by both 'PCs' and 'Printers' - Gi1/0/4-6: access VLAN 50 is not defined - Gi1/0/24: trunk allows undefined VLAN 20 - Gi1/0/24: native VLAN carries user traffic (VLAN hopping risk) - management VLAN 99 is not defined
Describe a switch once, get a complete hardened IOS config.
$ python3 log_analyzer.py sample/auth.log --block cisco Failed logins: 69 Successful logins: 9 Source IPs: 5 Flagged (5+ failures within 300s, or a login after them): 2 IP Fails Burst Invalid Top usernames 198.51.100.77 18 18 0 admin 203.0.113.45 46 46 9 ftpuser, pi, guest, ubuntu
Find brute-force attacks in Linux logs, and whether anyone got in.
$ python3 portscan.py 192.168.1.0/28 --banner Scanning 14 host(s), 26 port(s)... 192.168.1.1 22/tcp open ssh SSH-2.0-Cisco-1.25 80/tcp open http Server: lighttpd 192.168.1.8
See which services every device exposes, and which ones shouldn't be open.
$ python3 subnet_calc.py vlsm 172.16.0.0/22 Reception=120 Rooms=300 Cameras=60 Office=25 Name Need Subnet Mask Fits -------------------------------------------------------- Rooms 300 172.16.0.0/23 255.255.254.0 510 Reception 120 172.16.2.0/25 255.255.255.128 126 Cameras 60 172.16.2.128/26 255.255.255.192 62 Office 25 172.16.2.192/27 255.255.255.224 30
Plan IP addressing for every department without wasting addresses.
Log every IT job and show management where the time goes.
A year-long report on the hotel's Instagram views, reach and engagement, with recommendations to turn views into bookings.
A 10-month report breaking down 179 IT tasks by month and area across the hotel.