-
Notifications
You must be signed in to change notification settings - Fork 9
Useful Links
The links on this page are not necessarily representative of my views or those of any organization/group of which I am a member
The state of academic publishing in 3 graphs, 6 trends, and 4 thoughts
Advanced Configuration and Power Interface (ACPI) Specification
Ban Targeted Advertising? An Empirical Investigation of the Consequences for App Development
How to send books to your Kindle — even if they’re not from Amazon
No, “AMOLED Black” Does NOT Save More Battery Than Dark Gray
How to install ADB on Windows, macOS, and Linux - Note that the ./
may not be necessary on PowerShell 7+
- To enable
-
Quick Settings:
adb shell pm grant it.simonesestito.ntiles android.permission.WRITE_SECURE_SETTINGS
-
Private DNS Quick Tile:
adb shell pm grant com.jpwolfso.privdnsqt android.permission.WRITE_SECURE_SETTINGS
-
Quick Settings:
px = dp(dpi/160)
dp = 160px/dpi
-
Calculate
dpi
(same as ppi) -
px
is display horizontal resolution
State of Android on Mainline Kernels
- Android devices do NOT receive kernel version updates (see Paragraph 3)
- Generic bootable kernels are coming
- How Android updates work + how Projects Treble & Mainline fit into that
Search the page at the following URL for “security string” :
https://github.com/LineageOS/android_build/blob/lineage-X.Y/core/version_defaults.mk
Where X.Y
is the LineageOS version you’re using, e.g. 16.0. You should see a date which corresponds to an upstream Android patch date.
- ANSYS FLUENT Performance Comparison: AMD Opteron vs. Intel XEON, Part
- Xeon Gold Cascade Lake vs Epyc Rome - CFX & Fluent - Benchmarks (Windows Server 2019)
Extreme Thermal Expansion Modeling in ANSYS Mechanical (Workbench)
-
How to resolve the "The shared license is current not available for this application" error
- Click
Start
- Search for
Server (or Client) ANSLIC_ADMIN Utility 2020 R1
- Click
Run as Administrator
- In the window that pops up, click
Set License Preferences for User YourUsername
- Click the
2020 R1
radio button and clickOK
- Ensure all the tabs in the window that pops up have the
Use a separate license for each application
- Click
Apply
- Click
OK
- Click
-
How to resolve Model cells opening as Read-Only
- On the License Server:
- Click
Start
- Click
Ansys Inc License Manager
- Right-click on
SERVER ANSLIC_ADMIN
- Click
Run as Administrator
- Go to
Set Site Preferences
->Specify Product Order
->v12 and higher
- Click
Reset to Default
- Click
- On the workstation, after the above has been completed:
- Open Workbench
- Go to
Tools
->License Preferences
- Click
Reset to Default
- Quit and reopen Workbench
- On the License Server:
FS Bookmarks: A Shortcut to Reopen Files and Folders Directly in the Files App
Some Macs are getting fewer updates than they used to. Here’s why it’s a problem
macOS: Who's Behind This Network Connection?
-
System Settings
->General
->About
->System Report
->Software
->Applications
- Look at the
Kind
column
- Fixing “The following packages have been kept back” Error While Updating Ubuntu and Debian-based Linux Distributions
- How to clean up sources
- How to find a packages that depend on a given
PackageName
:# apt-cache rdepends --installed PackageName
. For soft dependencies (which may or may not be already installed) use# apt show PackageName
- How to fix
Key is stored in legacy trusted.gpg keyring
warning:# cp /etc/apt/trusted.gpg /etc/apt/trusted.gpg.d
Marvell acquired Aquantia in late 2019, and so drivers are now found at the Marvell website. Unfortunately, they haven't made it easy to find support or drivers for legacy Aquantia products. To do so:
- Find your Aquantia NIC part number
- Go here and filter by your OS and the part number from 1) above
You should find the driver download there. From what I've seen in various forum threads, the direct from the OEM driver update typically fixes link rate/stability issues.
How to ensure your board can boot generic kernels
- Artificial Gravity Countermeasure Evidence Report
- SpinCalc
- Space Calc
- Targeting myostatin/activin A protects against skeletal muscle and bone loss during spaceflight
- AI Is a Lot of Work
- The fine art of human prompt engineering: How to talk to a person like ChatGPT Washington state judge blocks use of AI-enhanced video as evidence in possible first-of-its-kind ruling
Best practices for data protection
Buy the largest capacity HDDs per bay or slot you can afford. Unit storage cost isn't a bad metric, but as fleet size grows, footprint costs begin to dominate. For example, it's less expensive in the long run to have 1 machine with 4x16 TB HDDs than 4 machines with 4x4 TB HDDs each. See the Retiring Pods section here for a case study.
How to disable:
$ balooctl suspend
$ balooctl disable
- Advanced Bash Scripting Guide
- bash history
- How to check version
- In commands,
#
meansroot
,$
means any other user - Writing Scripts on Linux using Bash
- Zsh/Bash startup files loading order (.bashrc, .zshrc etc.)
Passmark Software - CPU Benchmark Charts
Passmark Software - Video Card (GPU) Benchmark Charts
SOLUTION: Switch Windows 10 from RAID/IDE to AHCI operation. Note that you will also have to switch to AHCI in the BIOS.
- Bluesky Directory - A place to search for and find starter packs
- Bluesky Video Downloader
- Bluesky status - Bluesky down for you? Check here
- Bridgy Fed - This allows you to fully interact with the Fediverse from Bluesky
- Clearsky - See total active and accounts, top blockers and blockees, who blocked you, who you blocked, which lists you're on, and your account history
- Firesky - A real-time firehose of all BSky skeets
- Introducing Bluesky Starter Packs
- Label Scanner
- SkyKit - BSky account stats/analytics
-
The Moderately Skilled Person’s Guide to Making a Bluesky Feed - This works for any list with a
did
, not just the Mute lists in the instructions
Use Markdown syntax in the deck.blue app.
Fixed Broadband Deployment Data (FCC broadband map)
- Directory Structure
- FreeBSD Find Out All Installed Hard Disk Size Information
- FreeBSD Handbook
- How To Enable SSH On FreeBSD
- How to recover KDE if it doesn't load after updating FreeBSD from 12.x to 13.0-RELEASE
-
How to show package post-installation notes:
$ pkg info -D PackageName
-
How to use pkg-status.freebsd.org
- At the main page, click the filter icon to the left of
Package Builds
- Type the concatenation of the FreeBSD version and platform you're interested in, e.g.
121amd64
, into the search box - Click the number in the
Build
column corresponding to thePorts
columnpkg
repo of interest, wheredefault
=latest
andquarterly
=quarterly
- If looking for failed or skipped packages, check those headings in the page that follows
- If the desired package isn't there, click
previous build
and repeat iv)
- At the main page, click the filter icon to the left of
- How to switch packages from
quarterly
tolatest
- Instant Workstation: A script that automagically sets up KDE on a FreeBSD installation
- Quarterly and Latest Ports Branches (See Section 4.4.2)
- Shells
- Technical reasons to choose FreeBSD over GNU/Linux
Append username ALL=(ALL) ALL
to /etc/sudoers
or /usr/local/etc/sudoers
- Connect HDMI monitor only
- UEFI boot into the live USB
- Click
Xorg Setup
- In the window that pops up, select
Intel
- Click
OK
- In the list that follows, select
xf86-video-intel
- Click
OK
- Complete installation process
- Reboot
- Connect VGA monitor
- Reboot
The 2 monitors should now have an extended desktop. Use Meta
-> Display Settings
to configure them.
- UEFI boot into the live USB
- Install FuryBSD
- Enter BIOS
- In the boot sequence, delete all other entries except the UEFI one, and ensure the
UEFI
radio button is selected - Click
Add boot option
- Browse down through each successive folder to find a file that looks like
bootx64.efi
and select it - Name the boot method
FuryBSD
- Click
OK
- Ensure
FuryBSD
is checked in the UEFI boot list - Click
Apply
- Click
Exit
How to fix keyboard keys triggering the wrong things (such as End
raising the Application Menu)
- Add
export XKB_DEFAULT_RULES=evdev
to~/.xprofile
. If the file does not exist, create it first and then add the line - Reboot
- FreshPorts
- FreeBSD Ports Categories Listed By Groups (searchable)
- Download the FreeBSD archive from the Resilio Sync website
- Extract the FreeBSD archive
- Place the
rslsync
binary in/bin
- Start Resilio Sync by running
cd /bin && sudo ./rslsync
- To run Resilio Sync at boot, add the following entry to
/etc/crontab
:@reboot root cd /bin && ./rslsync
- Complete 1) of as root instructions
- Kill the
rslsync
process - Copy
.sync
from/bin
to~/
- Change the permissions and ownership of the
.sync
copy to grant MyUsernamerwx
and ownership - Start Resilio Sync by running
cd /bin && ./rslsync --storage /absolute/path/to/home/.sync/folder
(Source) - To run Resilio Sync at boot, add the following entry to
/etc/crontab
:@reboot MyUsername cd /bin && ./rslsync --storage /absolute/path/to/home/.sync/folder
- Download the new archive
- Extract the new archive
- Kill the
rslsync
process - Overwrite
/bin/rslsync
with the binary extracted in 2) - Run
# chmod +x /bin/rslsync
- Run
./rslsync --storage /absolute/path/to/home/.sync/folder
to startrslsync
- BTRFS and free space - emergency response
- Cheatsheet
- Filesystem error handling
-
Maximum number of snapshots per subvolume (12)This limitation seems to have been fixed in Linux kernel version 5 and later - Scrubbing and Balancing Maintenance Guidelines
- raid5/6 Write hole problem is intrinsic to Btrfs, may never be fixed
Use default values
Tab separated:
UUID=Insert_UUID_Here /path/to/Btrfs/filessystem btrfs defaults,autodefrag 0 0
Should be performed monthly. Put the following in the root crontab:
@monthly btrfs scrub start /path/to/Btrfs/filessystem
Effect of poor cabling on a service loop
- The Longest-Lasting Cars, Trucks & SUVs To Reach 250,000 Miles & Beyond
- Making the case for in-wheel motors
- New Car Interiors Aren't Getting More Distracting, You're Just Getting Old
- Protean Electric’s In-Wheel Motors Could Make EVs More Efficient
- What's The Difference Between AWD and 4WD? | Why The Systems Are More Important Than The Terms
Where should I place a carbon monoxide detector?
Everything you should know about certificates and PKI but are too afraid to ask
How to check if the ISP uses Carrier-grade NAT (CGN)
The climate is changing so fast that we haven’t seen how bad extreme weather could get
Most system administrators prefer firewall GUIs over CLIs
- Installation on Debian and Ubuntu
- Setting it up to start on boot
- Cockpit and the evolution of the Web User Interface
- Performing storage management tasks in Cockpit
- Managing software and services with Cockpit
Ultimate physical limits to computation
- Association of Simulated COVID-19 Vaccination and Nonpharmaceutical Interventions With Infections, Hospitalizations, and Mortality
- COVID-19 herd immunity: where are we?
- Syntax
- How to copy new scripts to Termux script folder on Android:
cp /sdcard/SourceFolder/Script.sh ~/.termux/tasker/Script.sh
e.g. cp /sdcard/Sync/Scripts/Shell/MoveFilesToSync.sh ~/.termux/tasker/MoveFilesToSync.sh
How to Schedule and Automate tasks in Linux using Cron Jobs
Pretty much anything that requires sudo
needs to be put here:
# -E crontab -e
Full Metal Backup Using the dd Command
- crontab(5) — cron — Debian buster — Debian Manpages
- The Debian Administrator's Handbook
- Don't Break Debian
- systemd documentation index
$ cat /etc/debian_version
Deep Learning and Traditional Machine Learning: Choosing the Right Approach
- Follow Steps 2.1 to 2.6 here
- Download the BIOS file into the top level of the bootable USB
- Follow these instructions
DHCP Scope - This is an excellent, concise writeup of how DHCP works
Nightly Windows 64-but builds - If you're having trouble installing the stable release on Windows, try this instead
How to Check if You are Using Wayland or Xorg?
What HTML tags are allowed within comments
When Bad DNA Tests Lead to False Convictions
- Cloudflare Secure DNS test
- DNS Security: Threat Modeling DNSSEC, DoT, and DoH
- Guide: how to discover which app is making DNS lookup requests on Windows using Sysmon & Event Viewer
- How to Flush and Reset the DNS Cache in Windows 10
How to search and download unpopular and old files on the internet
Is the economic news becoming more negative, and does it matter for consumers?
A Plug-and-Play Microgrid for Rooftop Solar - An excellent description of the power quality/power factor issues inherent in renewable energy sources, and how to overcome them
Situation: you find out your home has been prewired for Ethernet. How do you use the ports to connect your devices?
- Each Ethernet wall port should be fed by an Ethernet cable run from the port to a central location. That central location, which we'll call a junction box, is usually in the basement, a closet, the attic, or in the garage. Locate the patch panel before you move in and place items that might make it harder to find
- Determine which Category (5, 5E, 6, 6A, 7, 7A, or 8) of cable you have. It is usually printed along the length of the cables. This will determine your network's top (theoretical) speed. Cat 5 is good for 100 Mb/s, 5E & above for 1 Gb/s, Cat 6A & above for 10 Gb/s, and Cat 8 for 20 Gb/s
- If the cables aren not yet terminated (read: if they do not end in a male or female Ethernet jack), terminate them with a patch panel. You can either DIY this or have a structured cabling contractor do it for you
- Use cable testing tools to match the cables at the patch panel with other terminations in the home
- Connect your router (or switch downstream of your router) to the patch panel ports that have matches in the previous step
If there is no junction box in step 1, then detach the wall plates from the wall and ensure they're being fed by Ethernet cable. If they aren't, then consider these options. If they are, then your cabling may be point-to-point. Locate all cable terminations in the home and test them round-robin with the testing tools from Step 4, making notes as you go along to match ports with each other. A network connection can be established between any 2 matching port pairs. If you're unable to find any matching pairs, then your cables are somewhere that's not a junction box. Scour all closets, attics, cupboards, basements, sheds, and garages. Use the tracing probe to help. If you still can't find where your cables are going, contact a structured cabling contractor to see what's going on.
Troubleshooting speed differences
Move from Evernote to OneNote - The official Microsoft guide for this omits a lot of important details. This will fill you in.
- Digging deeper into how temperature and speed impact EV range
- EVs have 79% more reliability problems than gas cars, says Consumer Reports
- EVs to avoid if you want to dodge battery replacements that can cost up to $20,000
Instant fix for Exim4 ‘mailing to remote domains not supported’ error
Effects of Grill Patterns on Fan Performance/Noise
Use sudo -i
instead
- Run
# nano /etc/aliases
- Add emails to the above such as
root: email@address.com
- Run
# dnf install exim
# newaliases
-
Exclude a directory or multiple directories while using find command:
find /PathToBeSearched -options WhatYouAreLookingForIfNecessary ! -path /PathToBeExcluded1/* /PathToBeExcluded2/*
- To find a file with a certain name in a given path:
# find /PathToBeSearched -type -f -name filename.extension
- Accuracy and Checking in FEA, Part 1
- Accuracy and Checking in FEA, Part 2
- Free-Floating FEA Models
- The Forbidden Simulation Riff (Or how to set up fixed boundary conditions properly)
FEM vs. FVM - A comparison of both methods for CFD applications
- Firefox uses more RAM on FreeBSD than Linux because mozjemalloc (a heavily modified version of jemalloc) hasn't been ported to FreeBSD
- How to disable efficiency mode
- How To Install The Latest Firefox (Non-ESR) On Debian 10 Buster (Stable) Or Bullseye (Testing)
- Lastest Nightly builds
How to Install, Configure and Run the Fish Shell
Playing Around With The Fuchsia Operating System
How to sync ALL shared Google Calendars to Windows 10 Calendar app
Learn when you'll get software updates on Google Pixel phones
How to set the passphrase timer
4Kn and 512e drives have the same performance except for when they are used with 512n apps and OSes. In that case, 4Kn HDDs have no support, while 512e HDDs suffer a read-modify-write performance penalty relative to 512n HDDs.
In other words, a 512e HDD is a 4Kn HDD with backwards compatibility with 512n apps and OSes.
Per an anonymous Seagate engineering source, 512e HDDs outsell 4Kn HDDs by a wide margin among datacenter and hyperscale customers.
- 4k vs. 512 (Further discussion)
- 512e cannot be converted to 4Kn for most HDDs
- Advanced format (4K) disk compatibility update
- Don't Know What 4K Hard Drive Is? Look Here!
- FastFormat Technology Helps Future-Proof Systems - Only the Exos X14 and above support this
- Where to find FastFormat
- Windows:
Trim
should be listed underFeatures
for the HDD in CrystalDiskInfo - Linux:
TRIM
should be listed underCommands/features:
in the output of# hdparm -I /dev/DiskName
HDD noise dependent on mounting
How to calculate HDD max power consumption (you will need the HDD user manual to find the needed input data):
This is the easiest method, but it is conservative and therefore may unrealistically overestimate power usage by adding the max powers for each voltage under different conditions that are unlikely to occur simultanously:
- Find the input voltages (usually 5 VDC and 12 VDC)
- Multiply each input voltage by its maximum corresponding current value
- Sum all the results of 2) above.
Example (p. 12, Table 6):
Max Power = (5 VDC *1.22 A) + (12 VDC *2.88 A) = 40.66 W
- Same as above
- Multiple each input voltage by each listed corresponding current
- Sum the results of the above per condition. Using the previous example, sum the 5 VDC and 12 VDC powers (voltage x current) for each line in Table 6 separately
- Pick the highest result from Step 3
- If the HDD is in an enclosure, shuck it and connect it to a SATA dock or (preferably) an internal SATA port. If the HDD is already internal, try it on or in a different PC.
- If the host OS detects the HDD as newly connected in 1) above, copy all the data off it. If the OS does not detect the drive, you'll need a professional data recovery service.
- The HDD Platter Capacity Database
- On WD Red NAS Drives
- Seagate CMR and SMR Hard Drives
- WD Internal Client SMR HDDs (PDF warning)
How to fix the HDHomeRun app getting stuck on the Recorded screen or being unable to find any tuners
VESA DisplayHDR Certified Products
Home Lab Beginners guide – Hardware
Hybrid working from home improves retention without damaging performance
Which OpenIndiana directories to backup for bare metal recovery
Use the ZFS mirroring capability:
# zpool attach -f ... ... ...
You could also use:
# zpool replace [-f] pool device [new_device]
Wait for the resilver to complete. The result will be a two-way mirror, in the case of the first command. Then, detach the small disk and try booting from the big one, again for the first command.
# svccfg setnotify -g to-maintenance,to-offline,to-degraded mailto:MyEmailAddress@gmail.com
Per this reference, interactive login shells (e.g. SSH) read from ~/.bash_profile
, while interactive non-login shells (e.g. terminal window) read from ~/.bashrc
. OpenIndiana lacks a default ~/.bash_profile
, so create that first using touch .bash_profile
.
Put the following in .bash_profile
and then save it:
# Point .bash_profile to .bashrc if Bash is the current shell
# If running bash
if [ -n "$BASH_VERSION" ]; then
# Include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
An example of .bashrc
file is shown below:
#
# Define default prompt to <username>@<hostname>:<path><"($|#) ">
# and print '#' for user "root" and '$' for normal users.
#
# Standardized Bash prompt: https://github.com/jdrch/Hardware/issues/113
typeset +x PS1="\[\033[01;32m\]\u\[\033[01;34m\]@\h \[\033[35m\]\D{%F %T}\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "
# Useful aliases
alias ls='ls --color=auto'
# alias dir='dir --color=auto'
# alias vdir='vdir --color=auto'
# alias grep='grep --color=auto'
# alias fgrep='fgrep --color=auto'
# alias egrep='egrep --color=auto'
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
export HISTSIZE=1000
export HISTFILESIZE=2000
export HISTTIMEFORMAT='%F %T '
shopt -s histappend
# Tell OS where to find packages
export PATH="/usr/gnu/bin:/usr/bin:/usr/sbin:/sbin:/opt/local/sbin:/opt/local/bin:$HOME/bin:$HOME/.local/bin:/opt/local/sbin:/opt/local/bin:$PATH"
# Tell OS where to find man pages
export MANPATH=/opt/local/man:/usr/gnu/share/man:/usr/share/man:/usr/X11/share/man:$MANPATH
# Set default editor
export EDITOR=nano
If your history isn't persistent across sessions, change ownership of .bash_history
to yourself via # chown YourUsername .bash_history
. Your history settings should follow this format (the last line should always be there):
export HISTSIZE=1000
export HISTFILESIZE=2000
export HISTTIMEFORMAT='%F %T '
shopt -s histappend
To customize your root shells, repeat the same process for /root/.bash_profile
(create it if it doesn't exist) and /root/.bashrc
.
Log out and login again (via SSH or locally) to force your changes to take effect and test them.
- Publishers (repos) and how to set them
-
How to set up SFE repository
- Run
pfexec pkg set-publisher -G '*' -g https://sfe.opencsw.org/localhostoih localhostoih #new OpenIndiana Hipster x86
- Run
-
How to set up the pkgsrc repository (This needs to be done only once. From then on
# pkgin -y update
and# pkgin -y upgrade
will keep you on the latest package releases) -
How to update all packages & system
- Run the following:
-
# pkgin upgrade
(this is sufficient to keep packages from that repo updated) # pkgin autoremove
# pkg update -v -r
- Check the output of the last command to see if there's a new boot environment to boot into. If there is, reboot the machine
-
- Run the following:
- List of all available pkgsrc packages
-
Creating and Editing crontab Files
- Ensure
$EDITOR
environment variable is set to/usr/bin/nano
su
crontab -e
- Ensure
- Syntax of crontab File Entries
How to create and start a service: see Steps 10 - 14
$ zpool status -v ZPoolName
Immigrant and Native Consumption of Means‐Tested Welfare and Entitlement Benefits in 2020
Why Apple’s iMessage Is Winning: Teens Dread the Green Text Bubble
Recreate initramfs: update-initramfs -u -k all
Why Smart TVs, x86-64, Raspberry Pis, and consoles are the only IoT devices allowed in my house
- New RISC-V CPU claims recordbreaking performance per watt - RISC-V vs. ARM vs. x86, single benchmark
- The final ISA showdown: Is ARM, x86, or MIPS intrinsically more power efficient? Answer: power efficiency is largely independent of ISA
# pkg install py37-jupyterlab py37-graphviz py37-twisted
- Documentation
- How to display KDE lock screen time in 24-hour format
- How to Restart KDE Plasma Desktop without Rebooting:
plasmashell --replace
-
How to show a persistent custom notification:
notify-send -a CustomNotificationName -h "string:desktop-entry:org.kde.konsole" Custom2WordMessage
Explanation of memory usage as displayed, and workaround
- Acceptable latency values (<= 100 ms)
-
Latency Numbers Every Programmer Should Know
- Note: this analysis is not exhaustive. There are other considerations, such as memory bandwidth upper and lower limits
How to fix excessive reverse DNS lookups
How to find a product style code
- Basic Linux Commands
- Documentation parody: You Figure It Out
- GitStats
-
hier
man page (this describes the Linux filesystem hierarchy) - How To Add/Remove A Software Repository In Linux?
- How to Remove (Delete) Directory in Linux
- Linux Boot Process: What You Should Know
- Linux maintainers were infected for 2 years by SSH-dwelling backdoor with huge reach
- Mark all
username
's mail as read (delete):- In mail, enter
delete *
, then enterquit
- In mail, enter
- The Linux Kernel, CDDL and Related Issues
# chown -R GrantedUser FileOrFolderPath
chmod 700 FileOrFolderPath
Logical Volume Management Explained on Linux
If the mouse wheel scroll functionality randomly stops working, disable smooth scrolling in Logitech Options
ABX High Fidelity Test - Spotify HQ edition
-
How to delete mail
- Enter
delete n
, where n is the number of the message. You can also specify a range, such as1-4
- Hit
Enter
- Enter
quit
(do not enterexit
or your changes will not be saved) - Hit
Enter
- Enter
/var/mail/username
can be safely deleted
Try LAMBDA: Custom functions without code
If given string = "GivenString":
- Press
Alt
+F11
keys simultaneously to open the Microsoft Visual Basic Application window - In the Microsoft Visual Basic Application window, click
Insert
>Module
- Enter the following code into the Module window:
Sub DeleteSpecifcColumn()
Dim lastCol As Long
Dim i As Long
Dim ws As Worksheet
Dim strSearch As String
'What worksheet should we use?
Set ws = ActiveSheet
'What are we looking for?
strSearch = "GivenString"
Application.ScreenUpdating = False
With ws
'How many columns are there?
lastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
'Cycle right to left since we're deleting stuff
For i = lastCol To 1 Step -1
If InStr(1, .Cells(1, i).Value, strSearch) > 0 Then
'Keep it, do nothing
Else
.Cells(1, i).EntireColumn.Delete
End If
Next i
End With
Application.ScreenUpdating = True
End Sub
- Press the
F5
key to run the code
Sources:
- https://www.extendoffice.com/documents/excel/3086-excel-delete-columns-based-on-header.html
- https://www.reddit.com/r/excel/comments/g63767/how_do_i_batch_delete_excel_columns_whose_top/fo71e1m/
How to move Microsoft OneNote 2016 (& later?) notes from one PC to another
- How to get around Outlook 365 automatically encrypting emails you save to your computer
- How to restore the People Pane in Outlook 365
NOTE: Admin Center works on FQDN environments only.
How to keep your Windows installation healthy over the years without ever having to reinstall
- Ensure the latest stable BIOS and driver releases are installed. You can subscribe to email or RSS notifications from many OEMs
- Install updates as soon as they are offered for your PC
- Ensure the latest application releases are installed
- Be patient
- Run unsupported configurations
- Edit the Windows registry directly unless it's for a mission critical feature
- Enable optional features (under
Turn Windows Features On or Off
) unless they are mission critical - Install beta drivers unless they are mission critical or they address a mission critical bug
- Use Windows customizers
- Force updates on machines for whom the update hasn't been offered via Microsoft Update
- Delete your recovery partition
- Multiboot. Aside from Boot Camp, Windows is neither developed nor tested for this
- Be impatient, such as turning off your computer during an update unless it's stalled for literally 24 hours
Windows 10: How long will your next feature update take to install? Answer: 7 minutes
The Windows and Multithreading Problem (A Must Read)
These are articles based on previous gen Windows releases. While they may not be 100% accurate with respect to current releases, they do a fairly good job of giving a general idea of how Storage Spaces behaves and functions internally.
- Deep Dive: The Storage Pool in Storage Spaces Direct
- Storage Spaces - Designing for Performance
- Storage Spaces Frequently Asked Questions (FAQ)
- Virtualizing storage for scale, resiliency, and efficiency
Use this method if you're getting weird errors creating a storage pool in Control Panel's Storage Spaces GUI.
WARNING: Be careful when copying and pasting PowerShell code as sometimes important characters such as dashes or quotes get removed during the operation. Why? Your guess is as good as mine.
This example assumes you'll be using all poolable drives in your storage pool.
- Ensure the target drives are not part of a DrivePool or any similar volume spanning solution. If they are, remove them from the spanned volume or DrivePool
- Delete any volumes on the target drives in Windows Disk Management
- If it's not installed already, download and install the latest stable PowerShell release
- Run PowerShell as Administrator
- Find out if your target target drives can be pooled by running
Get-PhysicalDisk
and checking theCan Pool
column value. If it'sTrue
, skip to Step 8. If it'sFalse
: - Run
Reset-PhysicalDisk -FriendlyName "PhysicalDiskn"
for each drive, wheren
is the number in theNumber
column ofGet-PhysicalDisk
's output in Step 5 - Reboot the PC
- Run
Get-StoragePool -IsPrimordial $true | Get-PhysicalDisk | Where-Object CanPool -eq $True
. The output should be the drives you reset in Step 6, e.g.
PS C:\Windows\System32> Get-StoragePool -IsPrimordial $true | Get-PhysicalDisk | Where-Object CanPool -eq $True
Number FriendlyName SerialNumber MediaType CanPool OperationalStatus HealthStatus Usage Size
------ ------------ ------------ --------- ------- ----------------- ------------ ----- ----
0 ST12000NM0007-2A1101 12345678 HDD True OK Healthy Auto-Select 10.91 TB
1 ST12000DM0007-2GR116 87654321 HDD True OK Healthy Auto-Select 10.91 TB
If the above command produces no output, Reset-PhysicalDisk
likely failed. Fix that by doing this.
- Run
Get-StorageSubsystem
, e.g.
PS C:\Windows\System32> Get-StorageSubSystem
FriendlyName HealthStatus OperationalStatus
------------ ------------ -----------------
StorageSubsystemFriendlyNameString Healthy OK
- Create the storage pool by running
New-StoragePool -FriendlyName YourDesiredPoolName -StorageSubsystemFriendlyName 'StorageSubsystemFriendlyNameString' -PhysicalDisks (Get-PhysicalDisk -CanPool $True)
. Alternatively, if you want to use a specified subset of the eligible disks, run a command of the formNew-StoragePool –FriendlyName YourDesiredCamelCasePoolName –StorageSubsystemFriendlyName 'StorageSubsystemFriendlyNameString' –PhysicalDisks (Get-PhysicalDisk PhysicalDiska, PhysicalDiskb, PhysicalDiskc)
, wherea
,b
, andc
have the same definiton asn
in Step 6
Your storage pool should now be created, and you can create storage spaces on it using Control Panel's Storage Spaces GUI.
Reference (Good luck understanding it.)
The following will create a single column, 2-way mirror storage space that consumes all the available space on the pool using the same parameters as above:
- Open an elevated PowerShell prompt
- Run
New-VirtualDisk -StoragePoolFriendlyName YourDesiredPoolName -FriendlyName YourDesiredVirtualDiskName -ResiliencySettingName Mirror -NumberOfDataCopies 2 -ProvisioningType Fixed -UseMaximumSize -NumberOfColumns 1 -Verbose
Note that -UseMaximumSize
cannot be invoked with -ProvisioningType Thin
spaces, as thin spaces dynamically expand in situ with storage demand.
Confirm that the virtual disk has been created as specified:
PS C:\Windows\System32> Get-VirtualDisk
FriendlyName ResiliencySettingName FaultDomainRedundancy OperationalStatus HealthStatus Size FootprintOnPool StorageEfficiency
------------ --------------------- --------------------- ----------------- ------------ ---- --------------- -----------------
YourDesiredVirtualDiskName Mirror 1 OK Healthy 10.91 TB 21.82 TB 50.00%
To create a volume on the storage space, simply open Disk Manager. You'll get a prompt to initialize the new disk you created. Initialize it as GPT and then proceed to create a volume on it as you would otherwise. You then need to enable ReFS integrity streams on the volume via Set-FileIntegrity H:\ -Enable $True
. Do not forget this step as otherwise ReFS will not have data checksumming, which is pretty much the #1 reason to use it instead of NTFS.
The information available on this is sparse and a bit confusing, but basically it appears you can only expand volumes by 20% at time. This just means it will take multiple expansions when you add new disks. Threads on the subject:
- https://social.technet.microsoft.com/Forums/lync/en-US/c1cbb589-cd60-4147-ad22-855a28f9bc9e/cannot-extend-refs-volume-windows-2012-r2?forum=winservergen
- https://social.technet.microsoft.com/Forums/en-US/af4db752-b336-4d4e-80bb-8c8642c94eff/extended-refs-partition-but-new-sizefree-space-doesnt-show-in-explorer?forum=winserverfiles
- https://social.technet.microsoft.com/Forums/en-US/e2fd8c79-c2a7-426f-81a7-19d15b036a10/best-practices-to-extend-refs-volume-windows-server-2012-64-bit?forum=winserver8gen
See Option 2. I'd recommend you run this command after every semi annual Windows release, as ReFS/Storage Pool updates are delivered with Windows releases.
- Run
Get-StoragePool
, e.g.
PS C:\Windows\System32> Get-StoragePool
FriendlyName OperationalStatus HealthStatus IsPrimordial IsReadOnly Size AllocatedSize
------------ ----------------- ------------ ------------ ---------- ---- -------------
Storage pool OK Healthy False False 30.92 TB 512 MB
Primordial OK Healthy True False 54.57 TB 30.92 TB
- Remove problematic storage pool(s), e.g.
PS C:\Windows\System32> Remove-StoragePool -FriendlyName "Storage pool"
Confirm
Are you sure you want to perform this action?
This will remove the StoragePool "Storage pool".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): y
Note that the Primordial
storage pool cannot be removed.
Get-StoragePool
should now display the Primordial
pool only:
PS C:\Windows\System32> Get-StoragePool
FriendlyName OperationalStatus HealthStatus IsPrimordial IsReadOnly Size AllocatedSize
------------ ----------------- ------------ ------------ ---------- ---- -------------
Primordial OK Healthy True False 54.57 TB 0 B
- The affected disks should now show up as available for pooling:
PS C:\Windows\System32> Get-StoragePool -IsPrimordial $true | Get-PhysicalDisk | Where-Object CanPool -eq $True
Number FriendlyName SerialNumber MediaType CanPool OperationalStatus HealthStatus Usage Size
------ ------------ ------------ --------- ------- ----------------- ------------ ----- ----
2 ST12000NM0007-2A1101 12345678 HDD True OK Healthy Auto-Select 10.91 TB
1 WDC WUH722222ALE6L4 87654321 HDD True OK Healthy Auto-Select 20.01 TB
How to Backup and Restore Unsaved Word Documents – Windows 10 Tips
- How to fix the
Installer not responding
error:- Open an elevated PowerShell prompt at the installer's location
- Run the installer
./MobaXterm_installer_Version_Branch.msi
- When the error message pops up again, click
Retry
- The installation should then proceed as normal
Setup guide
- Official Napp-it forum
- HardForum thread
- Setup manual
- User manual
- Tuning
- Installation instructions (see Install napp-it/ setup your NAS ready to use)
-
napp-it-18.12.zip
,nappit2.sh
, &setup-napp-it.log
can all be safely deleted after successful installation
- How to fix Nautilus not starting:
$ tracker3 reset --filesystem
For v4:
# apt install nfs-kernel-server
Needs the following line:
/Path/To/Shared/Folder ClientIPAddressOrHostname(rw,async,no_subtree_check,no_root_squash)
If you need to export the same path to multiple clients, do this.
Restart the NFS server to load your changes: # systemctl restart nfs-kernel-server
# mount -t nfs -o nfsv4 ServerIPAddress:/PathToServerShare /LocalMountPath
# mount -t nfs -o nfsvers=4 ServerIPAddress:/PathToServerShare /LocalMountPath
Needs the following line:
ServerIPAddress:/PathToServerShare /LocalMountPath nfs rw,nfsv4acls 0 0
Assuming rpool1
is pool to be shared:
Run the following command:
# zfs set sharenfs='rw=@ClientIPAddress/32,root=@ClientIPAddress/32' ZFS-Dataset-To-Be-Shared
There is no need to restart anything after running that command; the OS automatically applies the settings and publishes the new share with them.
See Set up an NFSv4 client heading at the above link.
# apt install nfs-common
# mount -t nfs -o proto=tcp,port=2049 ServerIPAddress:/Path/To/Remote/Directory/On/Shared/ZFS/Dataset /Local/Mount/Path
Needs the following line:
ServerIPAddress:/Path/To/Remote/Directory/On/Shared/ZFS/Dataset /Local/Mount/Path nfs auto 0 0
- Copying NTFS permissions between folders
- Why you should avoid using open source NTFS implementations
Combine the below to set up:
- How to set up NTP Server and Client on Debian 11
- How to Install NTP Server and Client(s) on Raspberry Pi with Ubuntu Mate
- Don't be that open-source user, don't be me - This article also does a good job of explaining why many people choose to pay for closed source software
- List of Open Source Initiative approved licenses
- Open source licenses: What, which, and why
- Open source support difficulty
My OpenRC advice is to interact with it only:
- For apps included in your distribution base
- For apps that explicitly support it
- Never otherwise
- OpenRC vs rc.d Compare and contrast (PDF warning)
- Gentoo OpenRC to systemd Cheatsheet
- Gentoo Comparison of init systems
- Documentation
-
How to set up sending email from the system. Remember to delete duplicate entries in
/etc/postfix/main.cf
- openSUSE Software (package search)
- Resilio Sync
$ cat /etc/*release
How to connect to the NETGEAR BR500 router using OpenVPN-GUI on Windows
The sudden death and eternal life of Solaris
-
How do I update Pi-hole?:
# pihole -up
- How to get 3rd party apps to work with Pi-hole's API changes - Change the URL or API path, but keep the API key in its corresponding field
-
If FTL isn't running in the web console but has high CPU usage:
# service pihole-FTL stop
# mv /etc/pihole/pihole-FTL.db /etc/pihole/pihole-FTL.db.old
# service pihole-FTL start
- Known
dnsmasq
warnings - Restart FTL:
# pihole restartdns
Run:
pip3 install -U pip
How voting demographics changed between 2020 and 2024 presidential elections
Open System Software for Critical Applications (why POSIX is still relevant)
- How to fix Postfix emails sent to Gmail addresses not being received
- How To Install and Configure Postfix as a Send-Only SMTP Server
- Postfix Basic Configuration
- Ubuntu documentation
- Use Postfix to get email from your Fedora system
- Power over Ethernet - Everything you need to know
- Cable length and material matter greatly for PoE. See this troubleshooting example
- How do I customize my PowerShell prompt (colour and text)?
- How to run an executable
./ExecutableFileName
- Profile types and locations
Unlike Unix-like OSes, which enclose an entire path containing spaces in quotes, PowerShell syntax encloses only the folders with spaces, e.g. C:\'Program Files'\'Far Manager'\far.exe
- Use this syntax
- Add the command to your PowerShell profile file (see customization instructions above for location thereof)
- Save the profile file
- Relaunch PowerShell. The alias should now work
Disaster planning for regular folks
Best Practices for Press-Fit Assembly
How Pushout, Pull-through, Torque-out, etc. are determined
What is PSU Efficiency and Why is it Important?
Single Rail Power Supply Desktop Platform Form Factors ATX12VO (12 V Only)
Lonely people see the world differently, according to their brains
Difference between QT6 and LT20 QT6? - Use the lt20 qt6
build
- How American Racism Influenced Hitler
- Nothing Protects Black Women From Dying in Pregnancy and Childbirth
- Racism And Meritocracy
- Smartphone portrait photography and skin-tone rendering study: Results and trends
- Explanation of parity and redundancy levels
- Drive count vs. drive capacity vs. redundancy level vs. time reliability chart
- Reliability calculator
- Performance calculator
Distributed RAID was launched in 7.6.0 and allows a RAID5 or RAID6 array to be distributed over a larger set of drives. Previously if you created a RADI5 array over 8 drives, the data was striped across them with each stripe having a data strip on 7 of the drives and a parity strip on the 8th. In distributed RAID5 you specify the stripe width and the number of drives separately so you can still have 7 data strips protected by a parity strip but those 8 drives are selected from 64. On top of that we added distributed sparing, this is the idea that instead of having a spare sat on the side that isn't being used, each drive in the array gives up some of its capacity to make a spare.
Which logs to check in case of crashes and other problems:
/var/log/messages
/var/log/kern.log
- Adding a Real Time Clock (RTC) to the Raspberry Pi
- Backup a running Raspberry Pi over the network
- How to enable X11 forwarding for GUI apps launched with
sudo
- RaspberryPi 4: Change Boot Order Manually
- What is actually on your Raspberry Pi SD Card? (Raspberry Pi OS directory structure)
How to set up Reddit Enhancement Suite on Firefox
Age Gap Relationships: The Case for Marrying an Older Man
- How to determine which config file Resilio Sync is using and allow web UI access from other machines
- How to fix Resilio Sync launching under both
rslsync
and another user - How to run multiple instances under different users
What is a Vibration Resonance? (How to read a resonance plot)
- How repo unlocks and prunes work together
- How to unlock a repo
- If you are getting the
Fatal: unable to create lock in backend: repository is already locked by PID
error, run# restic -p /Path/To/Repo/Password/File -r /Path/to/Repo unlock
to unlock it
- If you are getting the
- Including and excluding files
- Scripting
If you get the already mounted or mount point busy.
error:
(Assuming the target card is /dev/sda
- Create a new partitional table on the target card in GParted (this will format the target card)
- Ensure the card isn't mounted:
-
$ df -l
. - If the card isn't listed, proceed to next step. If it is listed, unmount it via
# umount /dev/sda
-
- Run
rpi-clone
2020-09-01 - IDC - Desktop vs. Detachable Tablet vs. Notebook vs. Slate Tablet vs. Workstation
Press Meta
+ /
on a connected physical keyboard to bring up a comprehensive list
- How to fix
Task Start Failed
&Launch Failure
errors- Select the problematic task
- Click
Properties
- In the
Triggers
tab, highlight the trigger - Click
Edit...
- In the
Edit Trigger
window, in theBegin the task:
dropdown menu, selectOn a schedule
- Select the
One time
radio button - In the
Advanced Settings
section, check theRepeat task every:
box - In the
Repeat task every:
dropdown menu, select your preferred interval - In the
for a duration of:
dropdown menu, selectIndefinitely
- Check the
Enabled
box - Click
OK
- Click
OK
Task names are both unique and persistent. What the latter means is that even if you delete a task, if you create another task with the same name it will inherit all the history (and behavior!!!) of the deleted task.
Often, the best fix for a malfunctioning task is to completely delete it, then recreate it from scratch directly on the target machine using a different unique task name.
-
How to make a script executable: at script location, run
chmod +x <script-file-name-including-extension>
- How to execute script:
$ ./script.sh
or# ./script.sh
- How to chain commands using booleans
-
Place
set -u
just below the shebang of each script (or at the top of the script if there's no shebang) - Try It Online - Test code snippets with inputs and arguments online for many languages
How to view all the SharePoint files you have access to
Velocity Factors for various media
https://www.smartmontools.org/wiki/TocDoc
Installing and maintaining smoke alarms
Toward a unified taxonomy of text-based social media use
What would it take to build a self-sustaining astronaut ecosystem on Mars?
How to Land on a Planet Safely
Realizing “2001: A Space Odyssey”: Piloted Spherical Torus Nuclear Fusion Propulsion (Discovery II design)
After Thursday’s flight, Starship is already the most revolutionary rocket ever built
- This is the premier, most realistic internet connection diagnostic test online
- Run this test on a wired connection to your router or modem, if you can. Tests run on wireless connections are inconclusive due to the basic physics limitations of Wi-Fi
- If you were sent to this link from a discussion thread containing a problem you're having, please post your results (link on the results page) back in the thread. Doing so will help users on the thread diagnose your issues. The quality of the advice you receive is directly proportional to the quality of the information you provide
≥ A: Nothing to worry about for Bufferbloat or Quality
In the downstream direction:
- Check your modem's specifications to ensure it can handle the connection speed you're paying for. If you're on a cable connection, you should have a DOCSIS 3.1 modem at the very least. If not, get a new modem
- Flash your existing router with DD-WRT, if supported
-
WARNING:
- Although DD-WRT supports SQM, DD-WRT itself may not be stable or performant on your particular router
- Flashing 3rd party firmware may cause other issues with your router. If you are not willing to work around, report, and debug these issues, do Option 2 below instead
- DD-WRT builds may have been tested with your router's chipset, but not necessarily with your exact router model
-
WARNING:
- Get a new standalone wired (you will need a separate wireless AP if you choose this) or combo wired + wireless router with a faster CPU and more RAM. A router that supports later specs and/or higher speeds will typically fulfill this
Quality scores are typically indicative of internet connection signal strength at your modem (from your ISP). Unfortunately, most of the time this not something you can fix on your own. Contact your ISP, describing your symptoms, and tell them your modem (or ONT, if you have a fiber connection) may be experiencing low signal strength. They may either send a tech out for an onsite visit or otherwise fix the problem remotely via changes upstream of your modem. If you are indeed experiencing low signal strength and/or the issue is on their end most ISPs will not charge for the onsite visit.
A typical "good" signal strength for cable modems is somewhere between +/- 7 dB.
Try using a VPN with an endpoint in a major city nearby or in a major city near the datacenter of the service you're trying to use.
Probably the closest competitor to DSLreports' gold standard test. Unlike the latter, its Network Quality Score gives immediate, actionable results as opposed to jargon.
Good indicator of ping; some ISPs don't like it because they think it underestimates speed.
Speedtest Global Index: Good way of seeing how fast your connection is compared to the average in your country and worldwide. The further below your country or worldwide aveage your connection speed is, the more likely you are to have problems.
Automated, repeated testing over time. Probably good for investigating intermittent or episodic issues.
e.g. Mediacom Cable Speed Test
This is the speedtest your ISP is most likely to believe. They're not entirely wrong; the other tests have a lot of variables the ISP arguably has no control over. However, if your results here are frequently significantly lower than what you pay for, you certainly have grounds to contact your ISP about it.
- A Study of SSD Reliability in Large Scale Enterprise Storage Deployments
- The SSD Endurance Experiment: They’re all dead
- Some Observations on SSD Bit Rot
- Follow these instructions
- Set the desired default shell. For PowerShell 7.x, run:
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Program Files\PowerShell\7\pwsh.exe" -PropertyType String -Force
- (Optional) If you want to perform tasks that require admin privileges, you'll need to ensure each SSH session automtically starts with those by following Step 1
- If you're not on a domain, SSH into the server using
user@hostname
oruser@ip_address
Messages Matter Full Research Findings
- How to fix Package Control not showing up after being installed
- How to install & enable OLED Color Scheme in Sublime Text
- Install Package Control
- Launch the command palette:
Ctrl
+Shift
+P
- Search for
Install
- Highlight
Package Control: Install Package
- Press
Enter
- Enter the name of the package you want to install
- Press
Enter
The package will now install
How to run multiple sudo
commands on the same line: sudo some-command && sudo some-other-command
or sudo sh -c "some-command && some-other-command"
- How to create a new systemd service
- Understanding something about udev's normal network device names on Linux
- Using systemd journals to troubleshoot transient problems
- vs. init
How to fix W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://linux.teamviewer.com/deb stable InRelease: The following signatures couldn't be verified because the public key is not available
error
curl -L https://download.teamviewer.com/download/linux/signature/TeamViewer2017.asc | gpg --dearmor | sudo apt-key add -
# cp /etc/apt/trusted.gpg /etc/apt/trusted.gpg.d
# apt update
If the Telegram launch window has an error message only that says FATAL: Could not open '~/.local/share/TelegramDesktop/log_startXX.txt' for writing log!
- Close the desktop app window
- Delete
~/.local/share/TelegramDesktop/
- Launch the desktop app again
- Download & install F-Droid
- Install Termux
- The 1st time you open Termux, run
chmod 400 $PREFIX/libexec/termux-am/am.apk
- Run
termux-setup-storage
. If the command appears to not complete (the prompt doesn't return), exit and restart Termux - Check for the existence of the
~/storage
folder. All the phone's internal common storage folders are mounted there
USB 4.0 vs Thunderbolt 4.0: Differences and Similarities
TikTok owner has strong First Amendment case against US ban, professors say
Young physicist ‘squares the numbers’ on time travel - An explanation of how to time travel without creating paradoxes
Tire Test Results : In Search of the Fastest Tire and Wheel Width Combination
- Keyboard shortcuts
- Set a recurring due date
- How to format your CSV file so you can import it into Todoist
- Importing or exporting project templates
Any task that, if not accomplished, will, at the least:
- cost more money than if accomplished
- result in
- missed deadline at work
- data loss
- service interruption
- membership loss
- security compromise
- severely damage relationship with any of
- family member
- friend
- close professional contact
- negatively impact physical health
- damage professional
- reputation
- brand
- moderately damage relationship with any of
- family member
- friend
- close professional contact
- negatively impact mental health
- result in
- membership warning
- performance compromise
- slightly damage relationship with any of
- family member
- friend
- close professional contact
All other things that do not fit into the above 3 categories
TPM 1.2, 2.0 and fTPM (firmware-based TPM) Information
-
How to fix the
Unable to connect to url https://update-master.ixsystems.com/TrueNAS/trains.txt: Automatic update check failed. Please check system network settings.
error
- Add a splash of color to your command line environment
-
Coloring the tcsh prompt
- Comment out the 2nd prompt option
- To color the root crontab, make the 1st prompt option
set prompt="${green}%N${blue}@%m ${white}%~ ${green}%%${end} "
& place the file in/root/.cshrc
- Customizing your shell prompt
- Special shell variables
TV Projector Shootout Evaluation - Value Electronics
Cloud Keys are easily corrupted by power failures
- How to Easily Add Users to Groups in Ubuntu (See Section 2)
- How to fix
symbol 'grub_calloc' not found
grub boot error - How to Upgrade SSD
- Where the trash folder is located
GitHub. Run sudo dpkg-reconfigure unattended-upgrades
to enable it.
Legislator Misconduct Database
- The Unix Workbench
- What UNIX Cost Us - A talk about how "the UNIX way" makes a lot of stuff much more difficult than it needs to be
- How to place Veeam Agent for Windows backup chain on Veeam backup repository, so backup job continues chain
- The Backup & Replication installer chokes on compressed volumes
- October 2019 Gartner Magic Quadrant
- Type
:wq
- Hit
Enter
How to enable syntax highlighting
- Press
Esc
- Type
:syntax on
- Press
Enter
- Install Visual Studio Code
- Install Git. Select all the default options if you're on a personal computer. If you're on an enterprise domain machine, select the Windows certificate option
- When committing code, ensure your commit has a message. Otherwise the commit will fail
-
How to schedule it
- Author made a mistake in the screenshots; here's the correction
- Powershell commands & ReFS setup
- Shadow Explorer (shadow copies browsing tool)
Battle of the VPNs: Which one is fastest? (speed test)
Weather Forecast and Weather Forecast Accuracy for Your City
- Advanced Intel® Wireless Adapter Settings
- The difference between a mesh, multiple APs, repeaters, and extenders
- Mesh networking troubleshooting example
-
Official IEEE Working Group Project Timelines
- See the 802.11ax line for when the standard is likely to be ratified. It isn't as of yet
- Wi-Fi 4/5/6 (802.11 n/ac/ad/ax)
- WiFi Alliance Product Finder
- Wi-Fi Ping Spikes: Causes and Fixes
- What's Missing From Your Wi-Fi 6 Router? OFDMA
- What’s the Difference Between 802.11ac Wave 1 and Wave 2? [FAQ’s]
- Why mesh networking is bad (example)
The Ars Technica semi-scientific guide to Wi-Fi Access Point placement
The above article also explains that mesh wireless systems underperform under heavy network load (one of the problems they are marketed as solving.) FTA:
Under heavy network load, cheap wired access points like Ubiquiti UAP-AC-Lites or TP-Link EAP-225v3s absolutely smoke even the best mesh kits, if the mesh kits are limited to Wi-Fi backhaul only.
The below also applies to using a router as the downstream half of a wirless bridge.
Do NOT do this, because most consumer routers become unreachable from the LAN when in AP mode. As such, if you want to change any setting at all, you have to factory reset the router and set up AP mode from scratch with your desired setting
Also, if router's Wi-Fi speed rating is less than AC1750, its performance in modern wireless environments is going to be awful.
SmallNetBuilder's Wi-Fi Dynamic Frequency Selection (DFS) FAQ
Deriving max theoretical Wi-Fi data rates from (near-)1st principles
If you have multipe APs and want 1 of the APs to be exclusively (read: clients cannot see any other AP) acessible only within a defined space, you can Faraday Cage that space.
As a general rule, the fewer wireless client devices you have, the better your wireless performance will be.
The following are ways to improve your wireless range, from best to worst:
- Run Ethernet (copper or fiber) cable. Fiber is has a faster theoretical max speed, but is more brittle, requires more expensive gear, has very little client device support, cannot carry power, and has fewer capable installers. Copper cable generally has lower theoretical speeds, but has none of fiber's disadvantages. Generally speaking, unless you need network speeds in excess of 10 Gb/s, stick to Cat 6A or Cat 8 (<= 30 m runs only) copper cable. DO NOT USE Cat 7 AS IT IS NOT A TIA STANDARD. There are several ways to do run cable, all of which can be combined with each other:
- Run naked cable along the walls (in the seams between the wall and floor, floor and ceiling, or multiple walls). Use cord protectors to get the cable across foot traffic pathways, such as across doorways. OPTIONAL: use cable stables to attach the cable to the wall
- Advantages:
- Least expensive option
- Same performance as other more expensive options
- Easy reconfiguration
- If no cable staples are used, no alteration of building structure necessary (good for renters)
- No plenum rated cable required
- Disadvantages:
- Some people find exposed Ethernet cable and even cord protectors aesthetically unattractive
- Cables not in cord protectors or in unsecured cord protectors may be tripped over
- Cables not in cord protectors may be damaged by foot traffic, pets, children, etc.
- Extreme cable lengths may be needed for some runs, especially for larger homes
- High probability of cable tangles
- Secured non-velcro cord protectors need adhesive to stay put, which may damage flooring and carpeting
- Velcro cord protectors do not work on cut-pile carpet or non-carpet surfaces
- Wall alteration if cable staples are used
- Advantages:
- Same as above, but adding cable raceways to hide the cable in the seams and route it around pathways
- Advantages:
- Some people find it more attractive than running naked cable
- Cables less likely to be damaged than if they were naked
- Same performance as more expensive options
- Lower probability of cable tangles
- No plenum rated cable required
- If no cable stables are used, no structural alteration to house needed if raceways aren't attached to the wall
- Disadvantages:
- Some people find raceways just as aesthetically unattractive as naked cable
- Raceways will be loose unless they are attached to the wall
- Attaching raceways to the wall might structurally alter the building (not good for renters)
- The combined thickness of cables on a given route may be too large for the raceway
- Wall alteration if cable staples are used
- Advantages:
-
Internally wire your home for Ethernet
- Advantages:
- Most aesthetically attractive option
- More direct route to clients means shorter runs
- Lowest probability of cable tangles
- Adds value to your home (if properly finished)
- Minimizes need for cord protectors and raceways
- Disadvantages
- Requires cutting into the walls of the building (not for renters)
- Most expensive option, even if you DIY
- Can reduce the value of your home if finished poorly (professional installation is a good investment)
- Needs special plenum-rated cable for runs routed through air ducting for fire safety
- Advantages:
- Run naked cable along the walls (in the seams between the wall and floor, floor and ceiling, or multiple walls). Use cord protectors to get the cable across foot traffic pathways, such as across doorways. OPTIONAL: use cable stables to attach the cable to the wall
- Use MoCA adapters. If you don't have an RG6 coax outlet available where you need MoCA, then either run Ethernet cable (preferred), run RG6 coax cable, or see one of the following options. Any structural cabling or electrical contractor can run RG6 cable for you
- Get a better combo router or AP (see previous AP link)
- Use Powerline adapters. WARNING: Powerline adapters are very susceptible to noise and far less reliable than MoCA and Ethernet. If you do not have an electrical outlet nearby, then - in order of descending preference - run Ethernet cable, run coax cable, or install an electrical outlet. You will most likely need a licensed electrician for the outlet option for your own immediate safety and long term fire/electric shock safety of your home
- LAST RESORT: Deploy a wireless backhaul (communication between the satellite and base station) mesh network. WARNING: Mesh networks come with their own issues and are incredibly painful to troubleshoot
For the Ethernet, MoCA, and Powerline solutions: depending on your situation you can either connect the long range client via direct cabling or place a switch + standalone AP there. You can also use deploy a mesh network using the Ethernet, MoCA, or Powerline cabling for backhaul.
NEVER deploy a wireless extender; it will absolutely destroy your Wi-Fi performance.
WARNING: This is an advanced, involved troubleshooting method that involves network reconfiguration (setting Pi-hole as your network's DNS and DHCP server, then rebooting all your network clients for the setting to take effect).
- Install & setup Pi-hole (see above)
- In the Pi-hole dashboard, look for clients making an inordinate number of DNS lookups relative to their use. Check the query logs for such clients. Typically the lookups will be repetitive, such as multiple reverse lookups for another client on the LAN
- Use this method to find which process on each affected client is making the excessive lookups
- Disable the process found in the above step
- Repeat Step 2. If the excessive DNS queries are gone, you've solved the problem
Windows Insider Preview Downloads
Microsoft Is Giving Windows a Memory and It Might Change Everything
Automatically update WSL distributions using the Windows Scheduler
-
# apt update
=> winget update
.> winget source update --name winget
orwinget source update winget
(Requires starting SSH session with admin privileges. Follow Step 1 to set that up) -
# apt install packagename
=> winget install -e -id packagename
-
# apt remove packagename
=> winget remove -e -id packagename
winget --info
Wirless charging uses 47% more power than wired charging
How to convert a Workday job listing login redirect to the actual job listing
- How to fix X/S Enhanced game discs failing to install on the Xbox Series X or Xbox Series S
- How to fix nothing loading
- Feature Matrix
- Latest OpenZFS development status and relationship among projects
- Linus Torvalds recommends against ZFS (on Linux)
- OpenZFS 2.1 is out—let’s talk about its brand-new dRAID vdevs
- Performance, Part 1
- Performance, Part 2
- Quickstart (See Steps 3 to 6)
- RAIDZx vs. mirroring resilience to F drive destruction
- When To (and Not To) Use RAID-Z
- Why OpenZFS on Linux may be incompatible with Solaris ZFS
- ZFS 101—Understanding ZFS storage and performance
- ZFS versus RAID: Eight Ironwolf disks, two filesystems, one winner
How to check whether a zpool would benefit from deduplication:
# zdb -S zpoolName
- Check the value of the
dedup
output. Do not enable deduplication ifdedup
≤ 2
# zfs send -R
replicates everything, including all properties you need to make the target system bootable
- 13 Prompt Expansion
- How to Customize the zsh Prompt in the macOS Terminal
- Linux: zsh Prompt Setup
- Moving to zsh, part 6 – Customizing the zsh Prompt
- If you get a
not found on this medium
error during# zypper dup
, run# zypper ref
and then run# zypper dup
again - List all repositories:
# zypper lr -E -e - |grep name=
man
page- Remove a repository:
zypper rr repo_name
- Wiki
-
# apt update
=# zypper ref
-
# apt dist-upgrade
=# zypper dup
-
# apt clean
=# zypper clean
-
# apt autoremove
=# zypper dup --remove-orphaned
Organized Alphabetically:
- Explainers
- How Linux, BSD, UNIX, and macOS Relate to Each Other
- Why I Use Resilio Sync Instead of Syncthing
- Why US Buyers Should Purchase Datacenter HDDs instead of NAS HDDs
- Why You Should Separate Compute and Backup Workloads
- Why You Shouldn't Stress Test HDDs Unless You're Trying to Maximize Uptime
- Why You Shouldn't Use Most Premade NAS Solutions
- Guides
- Disaster Recovery and Backups for OpenRC BSDs to non ZFS Repositories
- Disk Encryption Options
- How Much Raw Storage You'll Need for RAID
- How Often Arrays Can Be Scrubbed Without Reducing HDD Life
- How to Calculate the Odds of Physical Attack Data Loss for a ZFS Array
- How to Configure a Samba Server
- How to Generate an Affordable Server or NAS Parts List
- How to Get Your Home Wired for Ethernet
- How to Install OpenIndiana
- How to Install Pycharm on Debian from the JetBrains script
- How to Set Up Regular, Recurring, Incremental, Online Filesystem Backups using Restic
- How to Set Up Regular, Recurring, Recursive, Incremental, Online, In Place Filesystem Backups Using zfsnap
- How to Store HDDs Long Term
- How to Update dnscrypt proxy in Debian with Minimal Downtime
- Projects
- Ongoing
- Future (in order of descending priority/implementation)
- Recommended Hardware
- Recommended Software
- Troubleshooting
- Useful Links