Posts

Showing posts from June, 2024

Migrating Native Applications to Flutter entrypoint by entrypoint

Image
Organizations with significant investments in native applications will probably migrate flutter feature-by-feature or navigation flow by navigation flow.  They may be able to migrate from the back of the app to the front of the application with all of the Flutter code in a single package or bound to a single every-growing function set. The alternative approach is to migrate targets of opportunity in different locations across the existing application.  Features-of-opportunity migration means that we will probably end up with a set of unrelated features that will get invoked at different points in the existing native application.  We organize those work streams or flows into their own package .  Each of those packages is essentially its own mini Flutter program with its own main() program.  Android and iOS native applications can import a single Flutter  module  that should contain  all  the Flutter functionality. We need to include all various Flutter functions in that single module. 

NVidia AI Studio Workbench is a containerized ML playground

Image
NVidia AI Studio creates and manages containerized ML environments that isolate ML projects on local and remote machines.  You no longer have to switch environments  or remember which version of Python or Anaconda you are using in your global machine environment. NVidia simplifies the initial configuration by providing predefined image definitions containing Python, PyTorch and other tools to be used with or without NVidia Graphics cards. The actual development is done via browser-based tools like JupyterLabs notebooks. Workbench spins up local proxies that port forward into the development container. See videos below NVidia Workbench runs in a WSL instance NVidia workbench runs in its own WSL instance.  Each project runs in its own Docker container.  You can look at the NVidia main WSL instance by opening a shell into that WSL instance. The following command can be run in a Windows terminal window. wsl -d NVIDIA-Workbench NVidia projects live in the WSL instance in   /home/workbench/n

Install and use 'htop' when the Linux 'top' command isn't wide enough or is too hard to read

Image
I was trying to troubleshoot an issue on an NVIDIA AI Workbench WSL instance and the top program didn't show enough information.  It was hard to read the monochrome output and the command section was too narrow to tell me the full program launch commands with all the parameters.  The NVIDIA VMs had htop  installed which colorized pieces of information and displayed at full widescreen width. Installation htop on Ubuntu Install with apt apt update && apt install htop in my case sudo apt sudo apt update && apt install htop   Installing htop in a WSL Instance (Ubuntu) Find the WSL instance wsl -l -v Shell into the VM using the wsl command wsl -d <wsl instance name> Install htop sudo apt update && apt install htop Installing htop in a docker desktop WSL instance (Alpine) I wanted to see what was happening in the WSL instance that runs my Docker containers to see the CPU load and process details. Shell into the Docker Desktop wsl instance with  wsl -d docker

Cut a model with Prusa Slicer and put it back together with dovetail joints

Image
The Prusa Slicer supports a couple different patterns for cutting a model into pieces and then joining it back together after the print. I wanted to print a sword that was too large for my printer.  It needed to be in 4 pieces.  The Prusa Slicer supports cutting a model using an infinite plane and joining those back together after the print with plugs, snaps, dowels, or dovetail joints.   The dovetails work great but need different reinforcement and printing settings than the plugs or snaps. The standard planar cut The standard cut is "planar" or a flat cut across the piece.  This is a pretty common way of cutting a figure to split printing or for some other need. The slicer "Add Connectors" button brings you to another screen that lets you size the connectors that will join the two pieces. You can place a connector anywhere on the cut line by clicking on it.  The geometry of the connector is specified in the panel. Dovetail Cut You can instead try a dovetail cut th