From 10316f4c8259c65edf49462bc0e2a76011577e1c Mon Sep 17 00:00:00 2001 From: Sadeep Madurange Date: Sat, 25 Jul 2026 16:48:16 +0800 Subject: Add reference to Domsson's fakesteak and minor tweaks to articles. --- _log/2d-geometry-kernel.md | 27 +++++++++++---------------- _log/bumblebee.md | 12 ++++++------ _log/fpm-door-lock-lp.md | 2 +- _log/fpm-door-lock-rf.md | 3 +-- _log/jint-gadget-chain-rce.md | 32 ++++++++++++++++---------------- _log/matrix-digital-rain.md | 5 +++-- _log/site-search.md | 17 +++++++---------- _log/vcs-1.md | 8 +++----- 8 files changed, 48 insertions(+), 58 deletions(-) diff --git a/_log/2d-geometry-kernel.md b/_log/2d-geometry-kernel.md index 5275ad8..2fc685a 100644 --- a/_log/2d-geometry-kernel.md +++ b/_log/2d-geometry-kernel.md @@ -6,29 +6,24 @@ layout: post Written in 2026, backdated to 2022. -Joined real estate firm mid-migration from C# to Java. Lacking a geometry -kernel, the project had stalled. - +Real estate firm decided to rewrite the building design system from C# to Java. Building geometries are small—mostly 2D. No frame budgets or low-latency constraints. Numerical parity with Rhino was mandatory. Architects and -structural engineers supplied test cases and tolerances. +structural engineers supplied test cases and floating-point tolerances. Implemented polygon clipping with Sutherland–Hodgman. No drama. Fortune's algorithm was a missed opportunity. Implemented the beach line using -a linear list instead of the balanced binary tree. Planned to return to this. -Never had the chance. +a linear list instead of the balanced binary tree. Planned to return to this; +never had the chance. Z and H-shaped floor plan offsets produced self-intersections that even Rhino -mishandled. Couldn't implement straight skeletons under time pressure. Wrote a -custom solver that fixed invalid loops by backtracking instead. - -Problem of finding the largest inscribed rectangle surprised me. No single -algorithm covered both convex and concave shapes. Brute-force grid search -yielded 12% more buildable area—but not the true optimum. - -Java BSP library produced results numerically incompatible with Rhino's. -Replaced BSP trees with vector-based primitives and JBLAS. +mishandled. Could not get straight skeletons working under time pressure. Wrote +a custom solver that fixed invalid loops by backtracking instead. -Migration resumed. +Problem of finding the largest inscribed rectangle was surprisingly difficult. +No single algorithm covered both convex and concave shapes. Brute-force grid +search yielded 12% more buildable area—but not the true optimum. +Java BSP library proved numerically incompatible with Rhino. Replaced BSP trees +with vector-based primitives and JBLAS instead. diff --git a/_log/bumblebee.md b/_log/bumblebee.md index 7962279..0a9ab49 100644 --- a/_log/bumblebee.md +++ b/_log/bumblebee.md @@ -1,23 +1,23 @@ --- -title: Web script synthesizer +title: Bumblebee date: 2025-04-02 layout: post project: true thumbnail: thumb_sm.png --- -One year at trading firm; scripts are saturating CPUs, stalling servers. -Forced to restart them. +One year at trading firm; scripts are saturating CPUs, servers are choking. +Forced to restart them daily. -2025-02: Built a C# WinForms app to record browser sessions and synthesize -better scripts. +2025-02: Built Bumblebee: a C# WinForms desktop app that records browser +sessions and synthesize browser automation scripts. Andy helped. JS hooks, WebView2 browser, Scintilla.NET editor emit events. Backend -interprets them and emits Selenium browser automation code. +interprets them and emits Selenium code. Two linear lists store events and code—no time for ASTs. Mid-session manual edits desync lists, block optimizer. Workaround: only edit script after diff --git a/_log/fpm-door-lock-lp.md b/_log/fpm-door-lock-lp.md index 5b7d33a..781266e 100644 --- a/_log/fpm-door-lock-lp.md +++ b/_log/fpm-door-lock-lp.md @@ -8,7 +8,7 @@ thumbnail: thumb_sm.jpg Second iteration of the [lock](../fpm-door-lock-rf). The old version worked but drew too much quiescent current. Sensor and servo pulled 13.8mA and 4.6mA idle. -Linear regulators were a disaster. Battery didn't last 24 hours. +Linear regulators dissipated too much heat. Battery didn't last 24 hours.