Posts

Showing posts from June, 2023

Prusa 2.6 3D Slicer demonstrates the power of open source contributions - tree supports

Image
Prusa Slicer is another fantastic example of the strength of open-source software .  The Prusa Slicer 2.6 release showed out-of-the-box thinking that can significantly impact 3D print times and simplify trimming and post-processing. My favorite new feature is tree supports  where the program takes an intelligent approach to building supports for overhangs and spans that are too big to be printed over nothing but air . Video https://youtu.be/2JBIeFagYnQ 3D Model Used Mason Jar lamp on Thingiverse Supports Prusa Slicer 2.5 supported the printing of removable supports when rendering longer spans over open spaces.  The molten filament will droop as it crosses from one support to another. The best practice guidance is to use supports  for any angle over 45 degrees. The green zig-zag is the removable support material. They are dense and can be difficult to remove. The end result is that the final print can have a lot of places that may need minor touchups. The zig-zag ends can have a bit mor

The Internet mall idea boomed then died and then Amazon and Alibaba grew up

Image
At the beginning of the Internet, people envisioned a shopping mall.  They had no e-commerce experience or history. The technology was too low bandwidth to deliver today's experience. Pictures and catalog content had to be delivered  "overnight"  to potential customers if you wanted an actual  catalog  experience. The analogy broke down due to technology and the unfettered access customers had to any website. MCI wanted to build an Internet Mall at the dawn of the Internet era.  They and everyone else knew that shopping would be big on the Internet and they envisioned that they could manage the mall front and that companies would lease space on the mall website. The technology was limited so the thing would only work if people would leave their computers on at night to download product catalogs. The project product people used analogies and patterns they were comfortable with when putting together proposals. The development team was pretty vocal that the internet wasn'

A simplified version of Kubernetes Network for developing on Windows and WSL and Docker Desktop

Image
Pictures always help. We can use this one to put together a basic description of how the Windows, WSL2 Linux distributions, and Docker on WSL and Kubernetes talk to each other over localhost. We’ll cover why you got to do things like port-forwarding or proxy with a Kubernetes network. There is asymmetric behavior between the different components. I'm sure somebody knows the magical explanation.  Click to enlarge Video Walkthrough Magical localhost networking with Docker WSL2 Windows and Linux Heavily Edited Video Transcript You have a Windows host with its ethernet adapter. Each Linux WSL2 instance has an eth0 network adapter. The Windows host and WSL instances are attached to a private network on the Ethernet Switch (WSL) Then you have the localhost adapter. WSL makes it look like localhost is visible to all WSL instances and to the Windows host.  A port on WSL2 127.0.0.1 is also available on any other WSL2 instance and from the Windows host all on 127.0.0.1.   This sharing is act

Address Pools and Interfaces for Docker and WSL and Windows

Image
Docker Desktop and WSL2 integration on Windows 10/11 "just works" in many situations but feels like magic. I needed a map of the networks and names to understand why I needed proxies, port forwarders, and projected ports. May this be useful to you also :-) The Windows 10/11 machine in this diagram is known as Z820. This diagram is an outside-looking-in topology. There are multiple networks and different name resolutions for the same names depending on where you are in the network. In some places, the same hostname is resolved to different IPs if you use DNS vs the host table, /etc/hosts Click to Enlarge This diagram is a simplified version of the previous one with the WSL network and associated Linux installations removed. Click to Enlarge Video YouTube Windows WSL2 Docker Node Pool and Desktop Networks and Names The Six Networks in this diagram The network IP ranges in the diagram above are those of the default Docker / WSL installations and can be adjusted via various mech

A bank CIO once told us every project was on time or coming in early

Image
I worked for a vendor at a bank in the early 2000s. We raised the issue of how many programs and projects were off-course in an already-planned meeting with a CIO. The CIO said we were off base and that  We have 320 software projects in flight - 315 on time - 5 will be early The reality was that everything went to production in Q4. The next year's Q1 was filled with production fixes. I'm pretty sure the real story was Real-time information radiators have given a different impression Question Did the executive know what was happening but was defending their teams? Was the true health hidden from the executive? Did the company not have accurate metrics? Does anyone believe that all their software projects were on time or early? Maybe they just keep adjusting dates until they are accurate. It was not a feature driven agile shop that delivered incrementally Were bonuses the primary drivers for this viewpoint? Revision History Created 2023 06 

Use Amazon Coretto for OpenJDK Java 8 for Debian Linux like Kali - other version too

Image
Linux package repositories often only hold the latest LTS versions.  You have to look elsewhere if you need something like Java 8.  Look to Amazon Coretto if you want specific versions of Java installed on your Linux instance.  Amazon maintains Corretto distributions going back to Java 8 when checked at 2023 06. Debian, Ubuntu, Kali, etc. Users can add the Corretto repository to their instances and then install specific OpenJDK versions using standard apt . Installation Partially derived from https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/generic-linux-install.html The Corretto install instructions assume you have add-apt-repository  installed.  So install add-apt-repository sudo apt update sudo apt install software - properties - common Add the Corretto repository wget - O - https: // apt.corretto.aws / corretto.key | sudo apt - key add - sudo add-apt - repository 'deb https://apt.corretto.aws stable main' Install Java 8 Corretto sudo apt - get update; sudo apt -

Moving a WSL virtual disk to another drive with automation

Image
I have a couple disk drives in my experimental box and I want to move the WSL disks to one of the secondary, non-boot, drives. I want to use the bandwidth that exists on multiple drives on multiple buses and get better performance for my WSL instances. I do the same thing for VMS that I run in VMware Workstation or Fusion. All the text on this page came from the video transcript of    Moving a WSL virtual disk to another drive WSL Distributions WSL is managed as registered distributions. Each one of those distributions has an associated vhdx. Those are located on the C:\ drive so also I tend to run out of C:\ space because I do all kinds of other things there. We're going to need to do a couple tweaks to move them and make this work. There's no way to edit this easier to do what we want or make the change with just a config file change. Migration Discussion We're going to destroy the existing registration and recreate the registration with the vhd somewhere else. Termin

Run the Kali-Linux GUI in WSL2 with only two lines of code

Image
Microsoft has added graphics support to Windows WSL2 by adding a new graphical component called WSLg. The thing rocks but Linux can be fiddly for setting up what is essentially a remote desktop.  It turns out that the Kali team created a single package that handles everything,  kali-win-kex . Just install kali-win-kex and run it. Video Steps Upgrade WSL to support GUI integration Update your WSL to make sure  WSLg  is installed and is on the latest version. This code exists in the move-distribution.ps1 script wsl --update Install kali-win-kex Option 1: Enable kali-win-kex and run the Kali GUI without any upgrades From the Kali-Linux shell prompt # install the Kali remote destop server sudo apt update sudo apt install -y kali-win-kex # start the Kali remote desktop with Windows integration Option 2: Run updates, install all packages, enable kali-win-kex, run the Kali GUI Install package  kali-win-kex  and add remote desktop access to the

Additional file-copy-speedtest benchmarks show smaller than expected differences with NVMe and 600GB/s SATA

Image
I wanted to get a feel for the perceived performance difference between a PCIE P3700 and a 6Gb/s SATA drive with Windows NTFS file system operations.  What would the real-world speed difference be for moving a lot of files around on an NTFS file system? My file copy tests showed results similar to what we see in application boot tests.  Everyday operational differences are about 1/2 of what we see in benchmarks. CrystalDiskMark NVMe mode test:  The PCIE measures as 4x-5X faster in sequential reads and 3X-4X faster in sequential writes. Windows file copy:  The PCIE drive measures about 2X faster than the SATA drive. Configuration Code Used: https://github.com/freemansoft/file-copy-speed-test Copy operation: 10,000 files each of size 200KB. C: is a 600GB/s SATA drive NTFS  I: is an Intel P3700 NVMe drive NTFS Test Results The test copies 2GB across 4 different permutations.  PS C:\Users\joe\Documents\GitHub\file- copy-speed -test> .\speedtest-file-copy.ps1 ____________________________

Meetings without Agenda and Background Must Die

Image
Meetings can be crazy expensive and demoralizing when they burn hours without generating results.  Good design sessions, decision-making sessions problem-solving sessions start with the pre-meeting work.  An empty meeting invitation is useless and a time drain. Invitees should decline them. A meeting without any context about the problem or prior decisions is going to fail or be way more expensive than it needs to be. Invitees should decline them. Invitations should always state the purpose, contain an agenda, describe the expected decisions that need to be made, and contain background content. Everyone has to do their part.  Organizers must meet some minimum bar for meetings to have any value.  Attendees must read the invitations and the background materials. There will be super secret projects  where no agenda and no supporting information are provided. Those should be the exception rather than the rule. Click to Enlarge Productive meetings have inputs, processes, and outputs. We'

The Meeting was Pointless if there were No Decisions Captured and No Action Items Generated and Assigned

Image
Meetings are useless if those attending don't understand the outcome and if the decisions made and additional action items are not captured in a way that can be shared and verified. Meeting minutes or some other document must describe the decisions that are reached, open action items that are assigned, and a checklist of the original agenda items that were actually covered. YouTube Generated Transcript This Video https://youtu.be/2YakVsOT74g transcript with minor edits  I'm going to do three talks about meetings This first one is about making sure that somebody actually knows why they're having a meeting and they've explained it to people and provided the information that was required to run that meeting.  The second one's like how to run a meeting correctly. That is the one I struggle with the most. I'm not going to cover that one yet. The third one is capturing the outcome of a meeting. How do we know if it was worthwhile? I got to tell you I have been in I a

Two Could Vendors and their Very Different Interaction Models or Feel

Image
It is surprising how a vendor's internal culture or local management culture biases your opinion of that company.  I worked with two different cloud vendors for 5 years each over a 10-year period. Both were in it to make money but one was significantly easier and more productive to work with. Transcript YouTube Video of Two Cloud Vendors   A slightly edited YouTube AI-generated transcript of the video I've worked with two different Cloud vendors while working for four different companies and two different Cloud vendors. Let me rephrase that.  I've worked at four different outfits working with two different Cloud vendors. The two Cloud vendors had completely different operating models. I worked with Amazon AWS and Microsoft Azure I've never worked with the Google team but they always weird me out because they cancel stuff. This is across 10 years of interactions, five years in Azure two different times and five years in AWS two different times four different teams. The v