Category Archives: Technology

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.

On E2EE and FOSS

Building on yesterday’s rant about Sellouts and Hypocrites, one of the 1st things you need to understand in order to extract yourself from the tech titans are the concepts of:

End to End Encryption (E2EE)

With E2EE you own your data. Not the software creator. They just own or maintain the software that makes it possible for you to work with your data. Here’s a good primer if you’re really interested, but the point is E2EE is what keeps the titan (FB, X, Goog, etc) from reading/using your data. Believe it or not, there are E2EE services for just about anything.

Free and Open Source Software (FOSS)

FOSS (aka FLOSS) takes things one step further to prevent vendor lock-in from any 1 titan. This is usually enhanced by the FOSS taking advantage of a protocol. The web and email are two of the best examples of what FOSS has enabled. With a little bit of know how anyone can run a website and send or receive email without being forced through a single provider (be it Gmail, Outlook.com, etc). There are even FOSS social media networks!

In Summary

Yes, I know these are overly simplified descriptions, but the point isn’t to get dragged into holy wars over the pedantic differences between FOSS and FLOSS, or encryption at rest vs in transit… it’s to understand what you’re looking for and, more importantly, why!

One last point before I go… Not all FOSS includes E2EE, nor does E2EE mean the software is FOSS (we software developers have to make a living after all). No one ever said freedom comes free.

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.

Sellouts and Hypocrites

Well, if you look at which sellouts and hypocrites were at the felon’s coronation it is obvious we’re surrounded by them, and that’s just part of why you’re reading this here. If you feel the same way I suggest you start extracting yourself from the clutches of the oligarchs. But how?…

We’ll start with the basics and delve into some specifics in future posts, but in summary… STOP SUPPORTING THE TITANS.

And supporting means using their services or buying anything from them.

Don’t be a “user”.

You’re just being “used”.

You want to keep your account for periodic check ins while you extract yourself or to spread the word that others should get out too? Go for it. Hell, I haven’t figured out how to extract myself from all of them yet.

But if you’re with me I’d encourage you to follow along and share any tips you have!

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.