summaryrefslogtreecommitdiffstats
path: root/_log/bumblebee.md
diff options
context:
space:
mode:
authorSadeep Madurange <sadeep@asciimx.com>2026-05-04 09:01:42 +0800
committerSadeep Madurange <sadeep@asciimx.com>2026-05-07 09:57:01 +0800
commit35c999ea426a5f0b32e2b5d5bab5fe010ea9ce97 (patch)
treef5365289bf1fc4d9d660b9699b3f60a790dfa1ed /_log/bumblebee.md
parentfb15536326a8d5b3187981b0036df65f4bb60996 (diff)
downloadwww-35c999ea426a5f0b32e2b5d5bab5fe010ea9ce97.tar.gz
Improve accuracy of framing.
Diffstat (limited to '_log/bumblebee.md')
-rw-r--r--_log/bumblebee.md19
1 files changed, 9 insertions, 10 deletions
diff --git a/_log/bumblebee.md b/_log/bumblebee.md
index 21a9a07..bbe0490 100644
--- a/_log/bumblebee.md
+++ b/_log/bumblebee.md
@@ -1,16 +1,16 @@
---
-title: Built a browser session script synthesizer
+title: Built a browser automation script synthesizer
date: 2025-04-02
layout: post
project: true
thumbnail: thumb_sm.png
---
-One year at trading firm. Webscraper is giving too many problems. CPUs are
+One year at the trading firm. Webscrapers are causing problems. CPUs are
saturated, servers are stalling.
-2025-02: Built Bumblebee, a C# WinForms application, to record browser sessions
-and automate the synthesis of scripts.
+2025-02: Built a C# WinForms application to record browser sessions and
+automate the synthesis of scripts.
<video style="max-width:100%; margin-bottom: 10px" controls="" poster="poster.png">
<source src="bee.mp4" type="video/mp4">
@@ -20,8 +20,7 @@ Hosted WebView2 (Edge) in the WinForms application to render web content.
Intercepted events by injecting JS hooks to web pages (client-side events) and
listening to WebView events (internal browser events). Converted intercepted
-events to Selenium code by sending through if-else statements. Crude—no time
-for something better.
+events to Selenium code by sending through if-else blocks.
Implemented a basic optimizer to squash event sequences into single commands
(e.g., calendar clicks → text input), use heuristics to improve DOM addressing
@@ -30,11 +29,11 @@ Implemented a basic optimizer to squash event sequences into single commands
Integrated Scintilla.NET editor to allow user more control over the generated
script.
-Events and code are stored in two linear lists. Mid-session manual edits desync
-the lists, block the optimizer. ASTs are overkill for now. As a workaround,
-only edit scripts at the end of recording.
+Events and code are stored in two linear lists. Without ASTs, mid-session
+manual edits desync the lists, block the optimizer. As a workaround, only edit
+scripts at the end of recording.
-2025-03: Shipped the first iteration and began work on key optimization: bypass
+2025-03: Shipped the first iteration. Began work on a key optimization: bypass
the browser, grab data files directly when possible.
2025-04: Abandoned project. Left the firm.