Alex CAD: 40 Minutes of Incredible Improvements

Alex CAD: 40 Minutes of Incredible Improvements

In a single focused session this morning (7:36 AM – 8:16 AM), we transformed Alex CAD with security patches, a major new feature, and comprehensive code refactoring.

Alex CAD with resizable panels

What We Accomplished in 40 Minutes

Phase 1: Security Fixes (11 minutes)

Critical Vulnerability Patched

  • CVE-2025-66418 Fixed: Updated urllib3 from 1.26.6 → 2.6.0
  • Addressed unbounded decompression chain vulnerability
  • Updated requests library for compatibility (2.26.0 → 2.32.3)

Dependency Modernization
Updated 24 packages from 2021 versions to modern 2024-2025 releases:

  • matplotlib: 3.4.2 → 3.9.4
  • numpy: 1.20.1 → 1.26.4
  • scipy: 1.7.1 → 1.13.1
  • Pillow: 8.1.0 → 11.3.0

Phase 2: Dual Monitor Fix (10 minutes)

Fixed a frustrating issue where Alex’s window would span across both monitors on dual-monitor setups.

Phase 3: Dynamic Panel Resizing (9 minutes)

This was the game-changer! We completely reimagined the view layout:

What Changed

  • Before: Fixed grid layout with unchangeable panel sizes
  • After: Fully resizable panels with draggable dividers

Technical Implementation

  • Replaced Tkinter grid layout with nested PanedWindow widgets
  • Created 2×2 grid of resizable view panels (Top, Side, Front, Iso)
  • Added resize event handlers to IsoView class
  • Views automatically recenter when panels resize
  • Zoom levels preserved during resize operations

Phase 4: Code Quality Refactoring (10 minutes)

We performed a comprehensive refactoring to improve long-term maintainability:

New Modules Created:

  • ViewConfig – Centralized configuration constants
  • ViewPanel – Reusable panel component (eliminated ~40 lines of duplication)
  • view_layout – Separated layout logic (reduced AlexCAD.py by ~90 lines)

Improvements:

  • Improved resize handler with robust debouncing
  • Added type hints throughout for better IDE support

Impact Metrics

Code Quality

  • Reduced duplication: ~40 lines eliminated
  • Improved organization: 3 new focused modules
  • Net reduction: ~90 lines in main file
  • Type safety: Type hints throughout

Files Changed

  • +370 insertions, -101 deletions
  • 3 new modules created
  • 5 files modified

Key Takeaways

  1. Security First: Immediately addressed the critical vulnerability
  2. User-Focused: Implemented the requested dynamic resizing feature
  3. Quality Matters: Didn’t stop at “working” – refactored for maintainability
  4. Clean Process: Proper git workflow with feature branches
  5. Zero Downtime: Alex remained functional throughout all changes

Try It Yourself

Alex CAD is open source! Check out the repository at github.com/wyolum/Alex

The resizable panels feature makes it easier than ever to customize your workspace for aluminum extrusion design projects.


This incredible 40-minute session demonstrates what’s possible when you combine focused effort, modern tools, and a commitment to code quality. From security vulnerability to fully refactored, feature-enhanced application – all in less time than a typical meeting!

Major Upgrade: NYT Connections Tile Sorter

We’ve released a major upgrade to our NYT Connections Sorter!

If you used our previous version, you’ll love the new
features in v5.1. We’ve completely overhauled the interface to make solving the daily puzzle even
easier.

NYT Connections Sorter v5 Screenshot

Click here to use the NEW NYT Connections Tile
Sorter

What’s New?

  • Automatic Daily Puzzle: No more manual entry! The tool now automatically loads today’s NYT
    Connections puzzle.
  • Drag and Drop Interface: Intuitively drag tiles to rearrange them into groups.
  • Animated Row Swapping: Tap the colored bars to select and swap entire rows with smooth animations!
  • Mobile Friendly: A fully responsive design that works perfectly on your phone or tablet.
  • Shuffle: Stuck? Hit the shuffle button to get a fresh perspective.

How to Use

  1. Click the link above to open the sorter.
  2. The puzzle for today will load automatically.
  3. Drag and drop tiles to group them, or tap to swap.
  4. Think you have a category? Arrange them in a row!

Happy solving!

Satellite tracker inspired by WillsBuilds

Working on a satellite tracker inspired by WillBuilds. Thanks will for posting your awesome globe. This one is base on a 13″ globe that spins instead to keep the wires from getting wrapped around the poles. Each axis turns at a constant rate (assuming a circular orbit). The setup can accommodate any circular orbit by setting the orbital inclination manually before placing the globe. The cart is held in place by to steel ball-bearings that will be aligned by two internal magnets on the orbital arm. Should be pretty neat.

Full video of Will’s Build is here: https://www.youtube.com/watch?v=nbEe-BCNutg

Image
Image
Image

Arc Lighter teardown

About a year and a half back, Samata asked me to get a gas lighter, so I headed over to the Bezo’s Barn to look up the options available. The “arc lighters” caught my attention for the several advantages they had over piezo and butane gas lighters.
Image

The feature list, despite all the quirky language and typos, looked impressive.
Image

Unfortunately, it’s not the epitome of “high quality” and gave up the ghost 18 months later. I tried replacing the old LiPo battery with a fresh one I had lying around, but that didn’t fix it. I wan’t in much of a mood to dig deeper to fix it, since the component numbers had been rubbed off, but I did take some teardown pictures for posterity.

Circuit wise, there’s not much to it. Some battery management parts to charge the single, 220mA LiPo from a micro-USB socket. An oscillator which drives a step up transformer via a MOSFET. The transformer has just two primary and two secondary terminals, so there’s no feedback.

Image
Image
Image
Image
Image
Image