Category Archives: Technology

Taste vs Skill in Coding with AI

Came across this article and I think it does a good job explaining my current views on coding with AI:

An important distinction is Taste vs Skill. Taste is what you bring to the problem. Skill is what you do with the problem once you understand it. A lot of engineers have skill without taste. They can write anything you describe, but they cannot tell you whether the thing you described is worth building. They will follow the spec down into the ground and ship exactly the wrong solution, on time, with full test coverage.

Taste is also not speed. Speed is how fast you get from idea to merge. Taste is how often the idea was worth merging in the first place. I have worked with engineers who shipped half as much as the people around them and moved the business twice as far, because every single thing they shipped was pointed at something that mattered. They rejected work that would not move a metric. They pushed back on specs that did not add up. They asked the question everyone else was too busy to ask. This is why it’s important to listen when these engineers raise a concern, instead of dismissing them because they are slowing down the initiative.

The simplest way I can describe taste is this. When you look at a piece of code, you feel something before you can explain what. That feeling is the compressed memory of every system you have broken, every bug you have chased at 2 am, every design you have watched rot under real traffic. AI can approximate the surface patterns. It cannot approximate the ache. That ache is the thing that tells you how much this shortcut is going to cost you in a month. It tells you this abstraction is premature. It tells you this test is testing the wrong layer. Taste is your scar tissue. Taste is your intuition. AI does not have this.

This is the pattern I keep coming back to. Engineers with taste use AI to iterate toward a thing they already know is right. Engineers without taste use AI to guess at what right might look like, and then ship whichever guess compiled. These are not the same activity. They look the same from the outside. They produce completely different codebases over the course of a year.

The market rate for typing is dropping fast. The market rate for knowing what to type is not.

Please remember to subscribe to the newsletter or feed to stay up to date!

Disclaimer: Thoughts and opinions are my own, and do not reflect the views of any employer, family member, friend, or anyone else. Some links may be affiliate links, but I don't link to anything I don't use myself.

Why pay for a “rare” handle when you can get one for free?

$2500 as the lowest price? What a joke. Seriously, setup your own Mastodon instance and create as many handles as you want.

Please remember to subscribe to the newsletter or feed to stay up to date!

Disclaimer: Thoughts and opinions are my own, and do not reflect the views of any employer, family member, friend, or anyone else. Some links may be affiliate links, but I don't link to anything I don't use myself.

Visualize data with the new hierarchy control in D365

Check out this article: Visualize data with the new hierarchy control in D365

This looks super cool and nice to see it being added (back) in as native functionality.

Note: Since this is an automatically created post there is no commentary on it other than any minimal notes I may have included. Read it and do your own critical thinking. I may get around to adding some/more of my own thoughts or categorizing it… but maybe not. Should the article be behind a paywall let me know and I will figure out a way to get it to you.

Please remember to subscribe to the newsletter or feed to stay up to date!

Disclaimer: Thoughts and opinions are my own, and do not reflect the views of any employer, family member, friend, or anyone else. Some links may be affiliate links, but I don't link to anything I don't use myself.

Measuring the impact of AI on software engineering – with Laura Tacho

Check out this article: Measuring the impact of AI on software engineering – with Laura Tacho

https://pca.st/xtlj21if

Note: Since this is an automatically created post there is no commentary on it other than any minimal notes I may have included. Read it and do your own critical thinking. I may get around to adding some/more of my own thoughts or categorizing it… but maybe not. Should the article be behind a paywall let me know and I will figure out a way to get it to you.

Please remember to subscribe to the newsletter or feed to stay up to date!

Disclaimer: Thoughts and opinions are my own, and do not reflect the views of any employer, family member, friend, or anyone else. Some links may be affiliate links, but I don't link to anything I don't use myself.

Drip files one at a time for processing with a Windows batch script

Ever have a collection of files that you need to send off to something else for processing, but need to process the files one at a time waiting for the completion of each (signaled by a file’s existence because you have no hook to the return code of the originating process) before continuing with the next?

No? Just me? 🤣 Anyway, here’s a script that takes an array of files, copies them to a directory for a different app to process, waits for that process to end (by looking for the file with a done extension added) before continuing on with the next.

@echo off
setlocal enabledelayedexpansion

set IMPORTDIR=X:\App\Process\

rem List your files here (one per line)
set FILES[0]=X:\Data\File1.csv
set FILES[1]=X:\Data\File2.csv
set FILES[2]=X:\Data\File3.csv

rem Set the number of files
set NUMFILES=3

set SLEEP_SECONDS=5

for /L %%I in (0,1,%NUMFILES%-1) do (
    call :WAITLOOP "!FILES[%%I]!"
)

echo All files processed.
exit /b

:WAITLOOP
rem Get the base name (without extension) and directory
set "FULLFILE=%~1"
set "BASEDIR=%~dp1"
set "BASENAME=%~n1"

if "%BASENAME%"=="" (
    rem This is important so we actually terminate
    goto :EOF
)

rem Compose the .done filename
set "DONEFILE=%IMPORTDIR%%BASENAME%.csv.done"

if exist "%DONEFILE%" (
    echo Removing previous done file.
    del "%DONEFILE%"
)

copy "%FULLFILE%" "%IMPORTDIR%%BASENAME%.csv"

:LOOP
if exist "%DONEFILE%" (
    echo File found: %DONEFILE%
    goto :EOF
) else (
    echo Waiting for file: %DONEFILE%
    timeout /t %SLEEP_SECONDS% /nobreak >nul
    goto LOOP
)

Just update the details as needed, but the above is tested and works!

Please remember to subscribe to the newsletter or feed to stay up to date!

Disclaimer: Thoughts and opinions are my own, and do not reflect the views of any employer, family member, friend, or anyone else. Some links may be affiliate links, but I don't link to anything I don't use myself.

Handing secrets in PHP Docker Compose site

If you’re using a single instance server (not Docker Swarm) and Docker Compose, but want to keep your secrets out of source control it’s not too bad. First, make sure you’re excluding “.env” in your .gitignore…

.env

Then, add your secrets to a .env file (file name must be exactly .env) in the same folder as your docker-compose.yml…

SEC_1=Something
SEC_2=SomethingElse

Then, be sure to expose your secrets in the “environment:” section of your docker-compose…

    environment:
      SEC_1: ${SEC_1}
      SEC_2: ${SEC_2}

Upload both the .env and docker-compose.yml to the server, and restart docker to pick up the env vars…

docker compose down
docker compose up -d

And finally, use the values in your PHP…

getenv('SEC_1')

Oh yeah, and since your .env won’t be in source control I’d still recommend finding a secure place to save it like a password manager.Please remember to subscribe to the newsletter or feed to stay up to date!

Disclaimer: Thoughts and opinions are my own, and do not reflect the views of any employer, family member, friend, or anyone else. Some links may be affiliate links, but I don't link to anything I don't use myself.

Disabling a WordPress Plugin via Command Line

Ever look on in horror as your WordPress site crashes with no obvious reason? I have, and this time I’m writing down what I did 🙂

First I checked the logs using Docker (if you’re not running via Docker… you should be)

docker logs [container]

Hopefully that gives you some clues. In my case there were errors all over the place pointing at a particular plugin, so 1st I had to access the bash shell for that container like so…

sudo docker exec -it [container] /bin/bash

From there, simply cd to the plugin directory and rename the directory…

cd wp-content/plugins/
mv [plugin] [plugin]-off

Which should allow things to start running again. At a minimum the plugin should be disabled, and if not working you can continue the hunt.

Please remember to subscribe to the newsletter or feed to stay up to date!

Disclaimer: Thoughts and opinions are my own, and do not reflect the views of any employer, family member, friend, or anyone else. Some links may be affiliate links, but I don't link to anything I don't use myself.

Browser Switch

In the continued march towards divesting usage of the tech oligarchs toys, today let’s focus on the tool used most often… the simple browser.

Just a few years ago there weren’t many players (besides the oligarchs: Chrome, Edge, Safari, and to a lesser extent Firefox) in the browser game, but recently there’s been a proliferation including: Vivaldi, Duck, Brave, and more.

After trying a few out, I’ve come around Vivaldi. To be fair, I tried it out a few years ago and it wasn’t cutting it, but recent updates seem to be really solid. So much so that it’s become my default browser.

Just a few of the things I like about it include:

  • E2EE sync
  • Notes
  • RSS reader
  • Customizable

There are a number of other features built in as well that I haven’t found much need for, but includes:

  • Email client
  • Web calendars
  • Workspaces
  • Reading list

…and more.

Whatever your choice, I’d encourage you to try out a new browser, and feel better about yourself for supporting the little guys.

Please remember to subscribe to the newsletter or feed to stay up to date!

Disclaimer: Thoughts and opinions are my own, and do not reflect the views of any employer, family member, friend, or anyone else. Some links may be affiliate links, but I don't link to anything I don't use myself.

Using an AI Chatbot for Browser Search Engine

Most searches I run I just want an answer, and don’t want to have to sift through ads or multiple websites. So, here’s how you can use perplexity.ai as your default search engine in Vivaldi (it’s a similar process on other browsers as well). Maybe ask perplexity.ai how to do it on your browser of choice!

  1. Open Vivaldi “Settings” and go to “Search”
  2. Click the “+” to add a “Search Engine”
  3. Add Perplexity. The “URL” is https://www.perplexity.ai?q=%s

That’s it! Feel free to make it your “Default Search Engine”

Please remember to subscribe to the newsletter or feed to stay up to date!

Disclaimer: Thoughts and opinions are my own, and do not reflect the views of any employer, family member, friend, or anyone else. Some links may be affiliate links, but I don't link to anything I don't use myself.

Communication is Key

Now that we’ve discussed E2EE and FOSS, let’s start with probably the most important thing you want E2E Encrypted… your communication!

Did you know that most text messages sent from your phone or chat/IM messages sent through social media companies can be seen, read, or processed in a number of ways?

How gross is that??

Very!

So what to do? Use an end to end encrypted messaging service like Signal. Signal is cross platform (no blue/green bubble shaming) so works on iOS and Android, but also has desktop apps that work on Windows, Mac, and Linux! Add in rich media (photo/video support) as well as calling (including video calling), and you shouldn’t need any other communication tool (other than email – which we’ll get to)

Note: Please don’t be fooled by the titans saying they have E2EE too. It may be “technically” true, but usually there are manual steps or other “gotchas” involved, and often the titan has a copy of the key to read your messages. Save yourself the research and just use Signal.

Think Apple’s iMessage is special? Think again.

Please remember to subscribe to the newsletter or feed to stay up to date!

Disclaimer: Thoughts and opinions are my own, and do not reflect the views of any employer, family member, friend, or anyone else. Some links may be affiliate links, but I don't link to anything I don't use myself.