From 8b9f0a0ffb8b0c481509120dfbef1db4c1839032 Mon Sep 17 00:00:00 2001 From: Sadeep Madurange Date: Wed, 25 Feb 2026 00:15:00 +0800 Subject: Improve bumblebee post. --- _log/bumblebee.md | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/_log/bumblebee.md b/_log/bumblebee.md index 57dc49d..e9b228b 100644 --- a/_log/bumblebee.md +++ b/_log/bumblebee.md @@ -1,32 +1,34 @@ --- -title: 'Bumblebee: web script synthesizer' +title: Bumblebee date: 2025-04-02 layout: post project: true thumbnail: thumb_sm.png --- -For work. Browser session-to-code conversion. Pre-LLM. +Few months at trading firm. Brittle ETL jobs. Scripts max out CPUs. No hardware +bailout—budget cuts, €0.4 mil/month cloud costs. Workaround: restart stalling +servers. Fine idea in every respect; only doesn't solve the problem. + +Need better scripts. Created tool on my own time to synthesize/optimize code +from browser sessions: -Script quality pitiful. Created tool to generate them by analyzing browser events. - -Stack: C# WinForms host, WebView2 browser, Scintilla.NET editor. - -Data structure: twin lists--one for events, one for text. +Stack: C# WinForms host, WebView2 (Edge), Scintilla.NET editor. -Implementation: +Data flow: injected JS hooks + browser → events → commands → optimizer → +editor. - - Interception: Injected JS hooks + internal browser events. - - Transformation: Event → Token → Instruction table → String. - - Optimization: Toss unnecessary clicks, squash input events. - - Rendering: Two-way binding between text and Scintilla editor. +Events, commands stored in two linear lists. Lists desync on manual edits, +blocks optimizer. ASTs are overkill. Workaround: edit at end of session only. -NOTE: Lists desync on manual edits; blocks optimizer. Replace lists -with ASTs. +First iteration of optimizer complete. Squashes event sequences into single +commands (e.g., calendar clicks → text input). Better DOM addressing (xpath, +id, element) using heuristics. Working on key optimization: bypass browser, +grab data file directly when possible. -Script generation: minutes/hours → seconds. +Abandoned project—left the firm. Source code: under NDA. -- cgit v1.2.3