Nob
~/about
Hi, I'm Nob
I like understanding how things work on the inside, and I usually end up building something to get there
Most of these projects started with something small: knowing when the next bus was coming, playing with friends without keeping a server online, a phone IP that refused to change. Some turned out better than others; these are the ones that work
01 · mobile networks
IP Rotator
Changing an Android phone's public IP from a PC, over ADB
- The research Does toggling airplane mode over ADB change the public IP? With
settings put global airplane_mode_on, no: it only flips a setting, and the radio never actually goes down. The verdict in v0.1.0: "ADB can't do it" - The breakthrough While building Goket, my network panel, Claude (Anthropic's AI) found
cmd connectivity airplane-mode: it goes through Android's connectivity service and really powers the radio off, no root needed, on Android 16. That one's on Claude - Back to the repo Mode C: the phone's Wi-Fi stays off during the test, short cycles repeat until the carrier's CGNAT lets go of a new IP, and the IP is measured through the tethering interface. Real test: new IP on the first try, in 20 s. Shipped as v0.2.0
Real IP Rotator run: the IP goes from 190.130.xxx.204 to 190.130.xxx.83 on the first attempt
02 · android + python
celltrace
Finding cell towers without GPS
CellTraceLogger is an Android app that listens to the cellular network (Cell ID, LTE, 5G NR, signal strength) from a foreground service and logs every observation. celltrace is the Python library that matches those observations against OpenCellID and infers the infrastructure around you
03 · minecraft mod
jukz
A Minecraft world that lives wherever its host is online
A Fabric 1.21.1 mod. Every world gets a permanent UUID; when you open it, the network asks whether someone is already hosting it. If so, you join as a guest. If not, you become the host and announce it. Nobody has to keep a Minecraft server running
- Finding each other Multicast discovery on the local network, plus a rendezvous server for the internet; UPnP and STUN to get through each home's NAT
- First game Host and guest playing end to end. The DHT I had planned got dropped: the rendezvous server was simpler and more reliable
- The world fell out of sync Handing the world to the next host was losing changes. The fix: a WebSocket relay on the rendezvous server that carries the world snapshot
- Never lose the world If the last player closes the game with nobody else online, the world is uploaded to the cloud (R2) and the next player picks it up from there. Also fixed the case of two hosts at once
- Moving to Cloudflare The rendezvous server moved to a Cloudflare Worker with Durable Objects, the screens were rebuilt on one shared theme, and closing access no longer splits the world in two
164 commits over 13 days
04 · desktop app
ExphoraDB
Open huge datasets in under two seconds, no cloud involved
Explore JSON, CSV, SQLite, XML and more: filter, search, export, and share over end-to-end encrypted P2P. Local performance first
05 · live
Cali, right now
··· buses of the MIO, Cali's transit system, moving on ··· routes
Every @ is a real bus, at the position the MIO's own system reports. It refreshes every 10 seconds and leaves a · trail behind it. Lines are bus routes, each o is a station, ~ are rivers and ^ the hills. It's the same data behind Goko, the app I built to plan trips around the city
connecting to the MIO…
06 · my personal system
gok-
A family of apps I use every day, sharing one look and one infrastructure
Goko
Cali on a 3D globe with live MIO buses and a trip planner, direct routes and ones with transfers
Goket
A network panel for my desktop bar: Wi-Fi, ADB, phone controls and IP rotation
GokUN
Practice tests for the ICFES, Colombia's national exam: it pulls questions out of PDFs, has a step-by-step calculator, scoring and medals. Desktop and browser
GokCo
A viewer and organizer for my local shows and videos

private code · built for me
07 · minecraft + networking
AccessScope
What does a Minecraft server tell a player who tries to join?
It connects with a real session (Mineflayer), reads what the server sends back (kick message, MOTD, icon, server brand) and classifies the response. It can go out directly or through Tor, to compare what each route gets
- The foundation Every scan runs in its own isolated Node.js process that can be cancelled at any moment. The rules vote: if two disagree, the result is "ambiguous" instead of a guess. Tested live against real servers
- Polish Configurable timeouts, result export, automated tests, and a shareable image card showing what each server replied
try it · live sample
This is just a sample: it asks for the server's public status, the same thing the in-game server list shows. The full AccessScope joins with a real session and classifies the response; its code is private
private code
08 · library
pane
A real browser inside your Java app, drawn however you like
Chromium without a window: every page comes out as pixels your app draws, and takes mouse and keyboard input in GLFW codes. It's how Ko-fi opens inside Minecraft, in jukz. It's mine and MIT, built on java-cef
- My own library MCEF stops at 1.21.4 and is LGPL, so I wrote pane from java-cef's API. It works on all three Minecraft versions jukz supports
- My own copy of Chromium All six builds live at
chromium.nuulm.com. Copying them uncovered a Windows bug, fixed in v0.1.1
2 commits over 1 day
~/now
What I'm up to
···
Pulled live from my GitHub: where my latest change went and every recent commit. Private work shows up as private, with no name or message
activity over the last 5 weeks
~/numbers
By the numbers
0GitHub contributions in the past year
0days since my first repo
0buses this page is tracking right now
0public repos
live from GitHub and the MIO · the little city of bars is my contribution calendar for the past year
~/signatures
Who stopped by
··· countries have left their mark
Each ✦ is a country someone visited this page from: the more people arrive from there, the brighter it gets, and its line runs to Cali, where I am. The land is lit by the sun as it is right now. Drag the globe to spin it. Only the country is counted, nothing that identifies anyone
~/contact
Let's talk
Message me on Telegram or by email; everything public is on GitHub. And if something I make helped you, the Ko-fi supports all my projects; in practice that means jukz's servers, the only thing I spend money on