Posts

Flutter democratizes UI development and grows the UI developer pool

Image
Google's open-source Flutter is a multi-platform UI tool that can bring more people into professional UI development.  In other words, Flutter democratizes user interface construction, taking it out of the hands of a few platform-specific specialists. It lets one person implement business functions across web applications, iOS native, and Android native. This reduces specialization and the amount of skew between the different platform implementations. Platform specialization may still be required.  We still need experts.  We just need fewer of them when building our applications. Flutter is a User Interface toolset that lets software developers create mobile and web applications without requiring that they be user interface specialists. Flutter isn't a tool built on top of another tool built on top of some weird 1990s library. It was created to build applications with mobile, web, and desktop portability in mind.  Less living on an island UI development in general and Mobile de

An argument for public or opensource contributions as part of a personal portolio

Image
We expect artists to bring previous work, architects to bring previous designs, and writers to bring previous articles. Why are programmers any different? Opensource contributions or personal repositories are pieces of that person's portfolio. They give a feel for your interests, how you think, problem solve and, what you think is important. "Walk me through why you put this together this way". "I only had a little time and the primary thing I needed was XYZ". A person's contributions and comments give a feel for the person in a way a synthetic 45-minute crush programming test in an unfamiliar environment by itself does not. If your company doesn't give you 20% time, how do you expect to get out of the narrow niche your company has you working in? How do you expect to enhance your technical radar without external exploration and discovery? I code at work. I don't have time for that. People create code to get paid. That is why we work, to get paid

Why are there 4 different windows backup tools?

Image
I do not understand how any mere mortal has any idea what data protection backup tool to pick or how to balance the risks. The Windows backup/data protection story is a sorry mess. Windows 11 and 10 have at least 4 different ways to protect or backup your files. Who thought this was a good idea? Why isn't there a Microsoft-provided capabilities matrix? I understand that these are legacy but someone should have at least pulled this stuff together and put a pretty cover page on it. Some of these are traditional backup tools.  Others are network drives or network drive mirrors where files in the mirror are deleted when you delete the file locally.  This can leave you one action away from losing data depending on how the trash folder operates. A backup is an off-drive copy of your data that can be recovered when your hard drive goes bad, a machine is damaged/stolen or you accidentally delete a file.  Backups are usually saved on network shares, cloud drives, or removable media.  Micros

Resetting and using Philips Hue bulbs with the Amazon Echo or hub

Image
The Amazon Alex app is a unifying console for IOT and other experiences.   I recently struggled trying to reset some legacy Zigbee devices that were paired with controllers I no longer had. It turns out I can use that app to reset my bulbs even though: It isn't obvious how you reset devices. The failure connect screen doesn't offer reset as an option. The program doesn't list my Amazon Echo as being able to do that on the screen where it describes resetting the devices. Backstory I received a pair of white Philips Hue A19 bulbs as part of an Amazon promotion.  Later I sold my Echo and got a new Amazon Echo with the built-in hub.  Newer Hue lighting supports both Zigbee and Bluetooth while older devices are controllable over Zigbee networks.  Never have I ever owned a Philips Hue hub. The bulbs must be reset to factory settings to onboard them to a new hub. In my case, my 4th gen Amazon Echo. The older bulbs can't be reset over Bluetooth. I couldn't get the rapid on/

Did anyone dogfood this experience? A bog standard gate experience gone bad.

Image
I had a consulting job at a company that got new gates.  The new gates have a different experience between doors and based on whether you are going in or out. Between 1000 and 4000 people use the gates per day. A back-of-the-napkin analysis says this interface costs the company $300/day or over $80,000 per year plus any frustration. They often pause at this gate system to deal with the interface inconsistencies.  3000 people * 5 seconds / 3600 sec/hr * $80/hour fully loaded * 5 d/w * 50 w/y The gate system as a use case They bought a combined entry/exit system. Looks good from here. Here is a different set of gates by the same vendor in the same building.  I was going to say that these were on the way out but this picture is also on the way in. Bi-directional gate control - flow optimization The gates support traffic in both directions.  Each turnstile has two card readers, one for each direction through the gate. The card reader is "right-handed" on entry and "left-hand

Using OpenTelemetry to send Python metrics and traces to Azure Monitor and App Insights

Image
Microsoft has updated its Python libraries that let us send 3rd party library invocation metrics and traces and application-specific custom metrics and traces to Application Insights.  Their OpenTelemetry Exporters make it simple to route the standard Python OpenTelemetry library observations to Application Insights. You bootstrap the Azure config and credentials and then use standard OT calls to capture metrics and trace information. SpeedTest network Metrics in Azure using OpenTelmetry A couple of years ago I wrote a program to record the health of my home internet connection and store that information in Azure Application Insights. I did this with a Python program that leveraged Microsoft's OpenCensus Azure exporter.  That library is becoming obsolete with the move from OpenCensus to OpenTelemetry.   That project has now been ported to Open Telemetry!  It involved 6 hours and 40 lines of code that was preceded by 20 hours of whining and internet surfing. The hard part was figuri

T-shirt sizing - Estimating workload and capacity without false precision

Image
T-shirt sizing is a great way of estimating the relative size or level of effort of a set of tasks. Effort and cost discussions are significantly easier when decoupled from hours and dollars. It lets people focus on the problem definition and possible approaches without getting hung up on absolute values. Size some work items relative to each other. "This one feels maybe twice the size of this other one".  Bin the sorted items in arbitrary groups (T-Shirt sizes) Small, Medium, Large, etc. based on the amount of work or complexity.   New items are sized the same way when they are first introduced. They are compared to the existing backlog and slotted into the buckets. This process gives you a feel for work and relative complexity without resorting to false precision for specific days and hours. Velocity and Capacity can be extrapolated later after tasks of various sizes are completed. Start with relative sizing and then iterate closer to absolute sizing as you know more. Peopl

NVIDIA Broadcast - Eye Contact - No more looking down in videos

Image
NVIDIA added a new beta feature to NVIDIA Broadcast that manipulates the speaker's eye position to make it appear as if they are looking at the camera instead of the prompt or contact.  It isn't perfect but it really helps.  You can see the effect in the two pictures below. This has been around for a while but I never noticed. NVIDIA added support in Jan 2023.  Camtasia added support for NVidia Broadcast in Camtasia 2022 update 2 or 3. Virtual Camera works with other programs like Camtasia The NVIDIA broadcast acts as a virtual camera that can be used in other programs like Camtasia 2022.  You'll want the latest version of Camtasia Revision History Created 2024 02

Want to run a local LLM? How much memory does your NVIDIA RTX have?

Image
Want to run LLMs locally? The new NVIDIA  Chat with RTX   requires 8GB of VRAM. Other language models require even more.  You can use the Windows utility ' dxdiag ' to see how much memory your NVIDIA RTX card has. Windows-R or click on the Windows key and type in the search bar. Enter dxdiag Click on Display or in my case Display 1 We're looking for the amount of  Display Memory (VRAM)  I have 12,086MB or 12GB so I'm good to go. Machine Learning models suddenly made me care how much VRAM my NVIDIA graphics card has. I can never remember the exact model let alone how much VRAM it has.  Now I have this handy article to remind me how to find the numbers I need. Vido Revision History 2024 02 created

Supporting command line arguments in Dart programs

Image
Dart programs, really all programs, are either hardcoded against certain targets and configurations or they configurable at startup. Not sure about you but the word "hardcoded" always sounds bad.  The most common way of providing configuration information is probably: Command-line arguments Environmental variables Properties files or other accessible storage Properties services The approach you pick depends on the nature ephemeral nature of the program, the environment you run in, and if the configuration can change while the program is running .  Sometimes you use a combination, one configuration method at bootstrap, and then a different one as the program continues running. In all command-style programs, I've found that I need some way to bootstrap the process.  It almost always has command-line arguments or environmental variables. Environment variables are great but can be a bit opaque depending on how the program is run. My go-to is to include run-time argument suppo