New

Linux tips
Desktop Environment
x-session-manager
sudo update-alternatives --config x-session-manager

“…set this up by editing your $HOME/.dmrc file. The sessions available to your display manager (whichever one you use) are .desktop files normally located in /usr/share/xsessions …”

source

Composer PHP Package Manager – Useful scripts

Install Composer (itself, the pkg manager). Required for installing any php packages designed to be installed using Composer.

sudo apt --fix-missing update
sudo apt install zip unzip 7zip 
cd /etc/php
sudo mkdir --mode 775 composer
sudo chown -R $USER:www-data ./composer
cd ./composer
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo cp composer.phar /usr/local/bin/composer
# why not create new terminal tab [Ctrl+Shift+T]
composer global update composer
composer global update 
cd /var/www/html
composer update

# installs composer_php_package_manager
Winter CMS Plugins
Install via composer (recommended)

Start at Packagist

So, what if these items aren’t new? This is a collection of websites, concepts, phrases, words, SaaS items which are “new” to me.

For people working in Artificial Intelligence, beware the Sleepy Pickle

quick_bookmark_to_folder

add new lister pane to current view Files – your new MS Windows File Manager (aka. Explorer replacement)

My PHP CMS – Ann De Browsa (any dir browser)

Ann De Browsa (any dir browser)

Try my php CMS for browsing your development server. I use it frequently.

use case

Do you find it useful?

#!/bin/sh
# transform.sh
# Sends development server path to the browser address 
# Loads as a new URL
clear 
# Set up color codes
BOLD=$(tput bold)
RESET=$(tput sgr0)
YELLOW=$(tput setaf 3)
GREEN=$(tput setaf 2)
RED=$(tput setaf 1)
CYAN=$(tput setaf 6)

# Check if a filename argument is provided
if [ $# -eq 0 ]; then
    FILENAME=$(OLDPWD)
else
    FILENAME="$1"
fi

# Resolve the absolute path of the file using realpath
FULL_PATH="$(realpath "$FILENAME")"
FILENAME_ONLY="${FULL_PATH##*/}"

# Start with a friendly greeting using printf
printf "%s\n" "${CYAN}Hello, ${BOLD}$USER${RESET}"
printf "%s\n" "${CYAN}Some vars shown are ENV Vars and some set in this script. Please make note of them${RESET}"
sleep 2

# Display the current directory
printf "%s\n" "${YELLOW}Current path is:${RESET} [echo ${PWD}]"
printf "%s\n" "${GREEN}${PWD}${RESET}"
sleep 2

# Display the filename sent to transform.sh
printf "%s\n" "${YELLOW}\$FILENAME as sent to transform.sh [here]${RESET}"
sleep 1
printf "%s\n" "${CYAN}\$FULL_PATH is created using \$FILENAME and \$(realpath _name_)${RESET}"
sleep 2
printf "%s\n" "${YELLOW}FULL_PATH=\"\$(realpath \"\$FILENAME\")\"${RESET}"
printf "%s\n" "${GREEN}$FULL_PATH${RESET}"
sleep 2

# Display the OLD path
printf "%s\n" "${YELLOW}OLDPWD: ${RESET}${CYAN}${OLDPWD}${RESET}"
sleep 1

# Display the filename only
printf "%s\n" "${CYAN}Object name to transform.sh: ${RESET}${BOLD}${FILENAME_ONLY}${RESET}"
sleep 3

# Check if HOSTNAME is set and valid
if [ -z "$HOSTNAME" ]; then
    # If HOSTNAME is not set, default to 'localhost'
    HOSTNAME="localhost"
    printf "%s\n" "${RED}No HOSTNAME set, using default: ${HOSTNAME}${RESET}"
else
    printf "%s\n" "${CYAN}Using system HOSTNAME: ${HOSTNAME}${RESET}"
fi

# Construct the URL and ensure it is properly formatted
URL="http://${HOSTNAME}/public/index.phtml?path2url=${FULL_PATH}"

# Open browser with the constructed URL
printf "%s\n" "${YELLOW}Open browser (using xdg-open alias):${RESET}"
printf "%s\n" "${CYAN}The PHP app AnnieDeBrowsa should be at path eg. /var/www/html/anniedebrowsa${RESET}"
sleep 1
printf "%s\n" "${YELLOW}Confirm your environment is correct at line 40 in transform.sh${RESET}"
sleep 3

# Use xdg-open to open the URL in the default browser
xdg-open "$URL"

# Show the variables used
sleep 1
printf "%s\n" "${CYAN}Variables used include:${RESET}"
sleep 1
printf "%s\n" "${YELLOW}PWD:${RESET} ${GREEN}$PWD${RESET}"
sleep 1
printf "%s\n" "${YELLOW}OLDPWD:${RESET} ${CYAN}$OLDPWD${RESET}"
sleep 1
printf "%s\n" "${YELLOW}FULL_PATH:${RESET} ${CYAN}$FULL_PATH${RESET}"
sleep 1
printf "%s\n" "${YELLOW}FILENAME_ONLY:${RESET} ${CYAN}$FILENAME_ONLY${RESET}"
sleep 1
printf "%s\n" "${YELLOW}HOSTNAME:${RESET} ${CYAN}$HOSTNAME${RESET}"

# Show the final clickable URL
printf "%s\n" "${CYAN}Click URL:${RESET}"
sleep 1
printf "%s\n" "${GREEN}$URL${RESET}"

# Exit the script
sleep 5
exit

Use the transform script above AFTER the app is installed. E.g.

my_prompt$> nano /usr/local/bin/transform.sh

copy paste contents into transform.sh then chmod to make it executable.

sudo chmod 755 -v /usr/local/bin/transform.sh

run the script

my_prompt$>; /usr/local/bin/transform.sh /var/www/html/my_project/demo.html

Chota CSS Micro Framework Chota! Quick Reference Guide

Installation

Easy Install – Just save the file as adb_deploy.sh and run it from a bash terminal, or copy paste from here. Note: the line endings must be LF, not CR/LF for it to run correctly in BASH.

#!/usr/bin/env bash
# Fancy screen rendering courtesy of CalculonGPT

# ANSI Color Codes
RED='\033[31m'
GREEN='\033[32m'
YELLOW='\033[33m'
BLUE='\033[34m'
CYAN='\033[36m'
BOLD='\033[1m'
RESET='\033[0m'

# Progress Animation Function
spinner() {
  local pid=$1
  local delay=0.1
  local spin='|/-\\'
  while kill -0 $pid 2>/dev/null; do
    for i in $(seq 0 3); do
      echo -ne "\r[${CYAN}${spin:$i:1}${RESET}] "
      sleep $delay
    done
  done
  echo -ne "\r[${GREEN}✓${RESET}] "
}

clear

echo -e "${YELLOW}=================================================${RESET}"
echo -e "${BOLD}ADB Deploy Script - Annie De Browsa Installer${RESET}"
echo -e "${YELLOW}=================================================${RESET}\n"

sleep 1
echo -e "${CYAN}Requires PHP running on a local HTTP server (e.g., LAMP stack)${RESET}"
sleep 1

# Define Paths
HTDOCS=/media/wd2tb01/var/www/bunsen
HOSTNAME=bunsen
MY_PROJECT_DIR=phcode
MY_PROJECT=$HTDOCS/$MY_PROJECT_DIR

echo -e "\n${BOLD}Step 1: Preparing Environment...${RESET}"
sleep 1

# Ensure clean workspace
echo -e "${YELLOW}Cleaning previous installations...${RESET}"
sudo rm -rf ${MY_PROJECT} & spinner $!
echo -e "${GREEN}✔ Cleaned workspace${RESET}"

# Create project directory
sudo mkdir -p --mode=755 ${MY_PROJECT}
echo -e "${GREEN}✔ Created project directory at ${MY_PROJECT}${RESET}"

# Set permissions
echo -e "${YELLOW}Setting permissions...${RESET}"
sudo chmod 755 -R ${MY_PROJECT}
sudo chown $USER:www-data -R ${MY_PROJECT}
echo -e "${GREEN}✔ Permissions set${RESET}"

# Clone repository
echo -e "${BOLD}Step 2: Cloning Repository...${RESET}"
sleep 1
echo -e "${CYAN}Fetching from GitHub...${RESET}"
git clone https://github.com/ajaxStardust/AnnieDeBrowsa.git ${MY_PROJECT}/adbdeploy & spinner $!
echo -e "${GREEN}✔ Repository cloned successfully${RESET}"

# Move contents and clean up
echo -e "${BOLD}Step 3: Organizing Files...${RESET}"
sleep 1
cp -r -vv ${MY_PROJECT}/adbdeploy/* ${MY_PROJECT}/
sudo rm -rf ${MY_PROJECT}/adbdeploy
echo -e "${GREEN}✔ Files moved and deployment directory removed${RESET}"

# Composer installation
echo -e "${BOLD}Step 4: Installing Dependencies...${RESET}"
sleep 1
composer install --working-dir=${MY_PROJECT} & spinner $!
echo -e "${GREEN}✔ Dependencies installed${RESET}"
composer dump-autoload --working-dir=${MY_PROJECT}
echo -e "${GREEN}✔ Autoload dumped${RESET}"

# Display Final URL
# Display Final URL
echo -e "\n${YELLOW}=================================================${RESET}"
echo -e "${BOLD}Deployment Complete!${RESET}"
echo -e "${YELLOW}=================================================${RESET}\n"
echo -e "${GREEN}✔ Access your app at:${RESET}"
echo -e "${CYAN}https://${HOSTNAME}/${MY_PROJECT_DIR}/public/index.phtml${RESET}\n"
Software

I like the built-in WordPress block, “Details” which does the same thing as “Lightweight Accordion” which comes from some plugin, such as used here (at time of publishing/ article updating).

Microsoft Windows Desktop Software (DL DIV#Custom DT
Unicodia

Use Unicodia to check where on the Unicode plan you need to land

https://mercury13.github.io/unicodia
Div#custom DD > DL > Div > DD > Quote > Embed

Use Unicodia to check where on the Unicode plane you need to land

Cross-Platform Desktop Software
Glaxinmate
glaxnimate

Glaxnimate is a simple and fast vector graphics animation program. Check it out!

Linux Desktop Environment Software

Was he never burped?

Div#custom DD > DL > Div > DD > Quote > Embed
Climate Change Resources
Electronics Recycling

United States Environmental Protection Agency (EPA) – Electronics Recycling

Pennsylvania Department of Environmental Protection (DEP)

Financial Products, Investments, Etc

Exchange-Traded Fund (ETF): What it is and How to Invest (investopedia.com)

Investing

Just some quick reminders about a few more modern, en vogue, or otherwise current investment options:

Exchange Traded Funds
Rich Habits Podcast, with Austin Hankwitz and Robert Croak
Software Package Managers – Winget | Apt | Pacman | choco

I wouldn’t have agreed years ago, but I’ve come to believe that a system is most stable when its native package manager utility is used primarily, if not exclusively for installation and maintenance of all software installed on the system.

Microsoft Windows – Winget
Unknown titles and winget

When I find I feel uncomfortable using a tool or practice in my daily work, I’m in the habit of putting that tool into use more often, so I’m sure to earn more practice with it. And so on. This is an example of my Obsession over that sort of thing. I don’t really know how to manipulate Winget. I’m much better with apt, apt-get, aptitude, and even Pacman by now.

Illustrated on the PowerShell command line below, you’ll see I use traditional tactics to try to find the correct identifier (name) for the “Firefox Developer” edition which wants to launch on this system, instead of the Firefox Nightly, as I desired today.

Let’s see what I encounter using grep to look for parts of the desired titles. I tried a name from the list of known applications, Pandora, to verify that I was in fact using the tool correctly.

PS C:\Users\jsaba> winget list | grep fire3
PS C:\Users\jsaba> winget list | grep fire
PS C:\Users\jsaba> winget list | grep Pandora
Pandora                                  MSIX\PandoraMediaInc.29680B314EFC2_15.0.… 15.0.3.0
PS C:\Users\jsaba> winget list | grep ozilla
Firefox Developer Edition (x64 en-US)    Mozilla.Firefox.DeveloperEdition          134.0                        winget
Firefox Developer Edition (x64 en-US)    Mozilla.Firefox.DeveloperEdition          127.0                        winget
Mozilla Maintenance Service              ARP\Machine\X64\MozillaMaintenanceService 127.0
PS C:\Users\jsaba> winget uninstall "Firefox Developer Edition"
No installed package found matching input criteria.
PS C:\Users\jsaba> winget uninstall "Firefox Developer Edition*"
No installed package found matching input criteria.
PS C:\Users\jsaba> winget uninstall "Firefox Developer Edition (x64 en-US)"
Multiple versions of this package are installed. Either refine the search, pass the `--version` argument to select one, or pass the `--all-versions` flag to uninstall all of them.
PS C:\Users\jsaba> winget uninstall "Firefox Developer Edition (x64 en-US)" --all-versions
(1/2) Found Firefox Developer Edition (x64 en-US) [Mozilla.Firefox.DeveloperEdition]
Starting package uninstall...
Successfully uninstalled

(2/2) Found Firefox Developer Edition (x64 en-US) [Mozilla.Firefox.DeveloperEdition]
Starting package uninstall...
Successfully uninstalled

PS C:\Users\jsaba>

Note: It would have saved time had I simply known, and used the “ID” column (e.g. Mozilla.Firefox.DeveloperEdition), recognizable by one complete character string with at least “one dot”. For example, until i used the “--all-versions” option, Winget kept returning zero results!

Strict results may be familiar to you from using Apt, or Pacman where partial matches are typically not enabled by default.

Apt / Aptitude
software or operation whaht

blah blah, blah diddly blah

Flatpak (etc)

Python etc
os

all about os

os.getcwd

return the full path to the current working directory. like pwd in BASH

Terms + Phrases & Quotes
HBCU
Historically Black Colleges and Universities
Immediate Legibility

“DAO Leadership & Decentralized Team Building”

Steph Alinsug @ Seed Club (Spotify Podcast)
Immediate Legibility
Some chick used it in a podcast. She seemed pretty smart!
Right? And oh boy is she all about the buzzwords!
Quotes – E.g. for Citations
A-Z Quotes by Author
Uniquify
In SQL, when SQL server creates a unique identifier for any non-unique data. The “Uniquifier Class” from the Microsoft .NET API Browser
Websites, APIs, Services
Lightning Web Components (Salseforce)
LWC is a Salesforce joint, not unlike Slack. Did you know you don’t have to be corporate and own a Salesforce license to use LWC? Here’s a guide to Lightning Web Components.
What Google Font Is?
The old two birds and one stone fable. What Google Font is it? Upload your image containing text to match with Google Fonts!
CSS Web Ring
Webring. Wow. I totally forgot there exists such a thing.
Not sure how it happened, but I stumbled up this! The CSS Webring. Far As I recall that’s a really old ancient thing.
WordPress married Figma
WordPress Figma Design Library – It seems like they want you to make blocks with it. Hmm…
Ludwig.guru
Ludwig is the sentence search engine that helps you write better English and understand if what you’re writing makes sense in real English. From ludwig.guru
https://ludwig.guru
Deque

Web Accessibility Testing from deque.com

Companion browser extesion to Deque.com

OWASP

Security stuff, like Cross Site Request Forgery (CSRF), and the like.

Podcasts

The MKBHD Podcast
Steph Alinsug @ Seed Club

More to come!

Rich Habits Podcast, with Austin Hankwitz and Robert Croak
Joe Rogan Feat Tucker Carlson

Whatchu do