From 4edf733b7bf460d1c27c9e6529b8d39cf5bb5e56 Mon Sep 17 00:00:00 2001 From: Sadeep Madurange Date: Thu, 18 Dec 2025 22:22:54 +0800 Subject: Bumblebee post. --- _site/about/index.html | 2 +- _site/feed.xml | 2 +- _site/posts.xml | 2 +- _site/projects/bumblebee/index.html | 30 ++++++++--------- _site/projects/matrix-digital-rain/index.html | 47 +++++++++++++-------------- _site/robots.txt | 2 +- _site/sitemap.xml | 30 ++++++++--------- 7 files changed, 56 insertions(+), 59 deletions(-) (limited to '_site') diff --git a/_site/about/index.html b/_site/about/index.html index 3888060..2964950 100644 --- a/_site/about/index.html +++ b/_site/about/index.html @@ -53,7 +53,7 @@
  • blg: Notes and tutorials about software and embedded systems.
  • poc: Projects, prototypes, and experiments.
  • abt: Site information.
  • -
  • rss: RSS (atom) feed.
  • +
  • rss: RSS (Atom) feed.
  • Site credits

    diff --git a/_site/feed.xml b/_site/feed.xml index 0b8599d..0309c54 100644 --- a/_site/feed.xml +++ b/_site/feed.xml @@ -1 +1 @@ -Jekyll2025-12-18T21:05:53+08:00http://localhost:4000/feed.xmlASCIIMX | BlogW. D. Sadeep MadurangeHow I manage Suckless software installations2025-11-30T00:00:00+08:002025-11-30T00:00:00+08:00http://localhost:4000/blog/suckless-softwareW. D. Sadeep MadurangeNeo4J A* search2025-09-14T00:00:00+08:002025-09-14T00:00:00+08:00http://localhost:4000/blog/neo4j-a-star-searchW. D. Sadeep MadurangeMOSFETs as electronic switches2025-06-22T00:00:00+08:002025-06-22T00:00:00+08:00http://localhost:4000/blog/mosfet-switchesW. D. Sadeep MadurangeHow to configure ATmega328P microcontrollers to run at 3.3V and 5V2025-04-10T00:00:00+08:002025-04-10T00:00:00+08:00http://localhost:4000/blog/arduino-unoW. D. Sadeep MadurangeHow to set up ATSAM3X8E microcontrollers for bare-metal programming in C2024-10-05T00:00:00+08:002024-10-05T00:00:00+08:00http://localhost:4000/blog/arduino-dueW. D. Sadeep Madurange \ No newline at end of file +Jekyll2025-12-18T22:22:36+08:00/feed.xmlASCIIMX | BlogW. D. Sadeep MadurangeHow I manage Suckless software installations2025-11-30T00:00:00+08:002025-11-30T00:00:00+08:00/blog/suckless-softwareW. D. Sadeep MadurangeNeo4J A* search2025-09-14T00:00:00+08:002025-09-14T00:00:00+08:00/blog/neo4j-a-star-searchW. D. Sadeep MadurangeMOSFETs as electronic switches2025-06-22T00:00:00+08:002025-06-22T00:00:00+08:00/blog/mosfet-switchesW. D. Sadeep MadurangeHow to configure ATmega328P microcontrollers to run at 3.3V and 5V2025-04-10T00:00:00+08:002025-04-10T00:00:00+08:00/blog/arduino-unoW. D. Sadeep MadurangeHow to set up ATSAM3X8E microcontrollers for bare-metal programming in C2024-10-05T00:00:00+08:002024-10-05T00:00:00+08:00/blog/arduino-dueW. D. Sadeep Madurange \ No newline at end of file diff --git a/_site/posts.xml b/_site/posts.xml index a9c2ffe..3aed0d0 100644 --- a/_site/posts.xml +++ b/_site/posts.xml @@ -1 +1 @@ -Jekyll2025-12-18T21:05:53+08:00http://localhost:4000/posts.xmlASCIIMXW. D. Sadeep Madurange \ No newline at end of file +Jekyll2025-12-18T22:22:36+08:00/posts.xmlASCIIMXW. D. Sadeep Madurange \ No newline at end of file diff --git a/_site/projects/bumblebee/index.html b/_site/projects/bumblebee/index.html index d414b1a..a07dd5f 100644 --- a/_site/projects/bumblebee/index.html +++ b/_site/projects/bumblebee/index.html @@ -55,36 +55,34 @@ of web scraping scripts.

    including scraping data from authorized websites for traders’ use.

    Manual authoring of such scripts took time. The scripts were often brittle due -to the complex nature of modern websites, and they lacked optimizations such as +to the complexity of the modern web, and they lacked optimizations such as bypassing the UI and retrieving the data files directly when possible, which would have significantly reduced our compute costs.

    To alleviate these challenges, I, with the help of a colleague, Andy Zhang, -built Bumblebee: a C# Windows Forms desktop application that uses Microsoft -Edge WebView2 for -rendering web content.

    +built Bumblebee: a web browser powered by C# Windows Forms, Microsoft Edge WebView2, and +the Scintilla.NET text editor.

    Bumblebee works by injecting a custom JavaScript program that intercepts client-side events and sends them to Bumblebee for analysis. In addition to front-end events, Bumblebee also captures internal browser events, which it then interprets to generate code in real time. Note that we developed Bumblebee -before the advent of now-popular LLMs. Bumblebee reliably handles dynamic -websites and pop-ups. The user can access developer tools, override any part of -the script at any point during the session (using the embedded Scintilla.NET editor), debounce -events, and block hidden elements and scripts.

    +before the advent of now-popular LLMs. Bumblebee supports dynamic websites, +pop-ups, developer tools, live manual override, event debouncing, and filtering +hidden elements and scripts.

    Before settling on a desktop application, we contemplated designing Bumblebee as a browser extension. We chose the desktop app because extensions don’t offer the deep, event-based control we needed. Besides, the company’s security policy, which prohibited browser extensions, would have complicated the -deployment of an extension-based solution. The initial prototype used a C# -wrapper of the Chromium project instead of WebView. WebView’s more intuitive -API and its seamless integration with Windows Forms led us to choose it over -the Chromium wrapper.

    - -

    Bumblebee predictably reduced the time we spent on authoring scripts from hours -to a few minutes. Since the code generation rules were written and optimized by -experts in web technologies, the quality of the scripts improved as well.

    +deployment of an extension-based solution. My first prototype used a C# binding +of the Chromium project. WebView’s more intuitive API and its seamless +integration with Windows Forms led us to choose it over the Chromium wrapper.

    + +

    What began as a personal side project to improve my own workflow enabled us to +collectively improve the quality of our web scripts at a much larger scale. +Bumblebee predictably reduced the time we spent on authoring scripts from hours +to a few minutes.

    by W. D. Sadeep Madurange

    diff --git a/_site/projects/matrix-digital-rain/index.html b/_site/projects/matrix-digital-rain/index.html index 3c441d4..5218c10 100644 --- a/_site/projects/matrix-digital-rain/index.html +++ b/_site/projects/matrix-digital-rain/index.html @@ -53,15 +53,15 @@ Matrix in C, with zero dependencies—not even ncurses.

    Overview

    -

    This is my fork of Domsson’s beautiful Fakesteak. While studying the code, I wondered -what it would take to faithfully recreate the original Matrix from the first -movie without sacrificing the program’s minimalism and elegance.

    +

    This is my fork of Domsson’s beautiful Fakesteak. While going through his code, I +wondered what it would take to faithfully recreate the original Matrix from the +first movie without sacrificing its minimalism.

    -

    My version adds:

    +

    My implementation supports: