UDM Parameters for Google Search

Detailed guide to Google Search UDM (Universal Display Mode) parameters, each with descriptions and example searches.

Published: June 18, 2025 | Last Modified: June 18, 2025

Yahoo Finance API via RapidAPI

This program loads comma-separated stock symbols from a file named symbols.txt and then queries the Yahoo Finance API using a RapidAPI endpoint. It retrieves prices for every 60 minutes on a max time window.

Published: May 11, 2023 | Last Modified: May 13, 2025

Key Event Tester

This diagnostic tool allows you to type into a text area and logs keyboard events, providing valuable information such as key codes, key names, and modifier keys (Alt, Ctrl, Shift, Meta). As you interact with the text area, the captured event data will be displayed in real-time. This can be particularly useful for debugging and understanding the nuances of keyboard events in your application.

Published: May 8, 2023 | Last Modified: May 13, 2025

Deep Floyd IF

My tentative work flow for running Deep Floyd IF locally for image generation.

Published: May 3, 2023 | Last Modified: May 13, 2025

net use

Connects a computer to or disconnects a computer from a shared resource, or displays information about computer connections. The command also controls persistent net connections. Used without parameters, net use retrieves a list of network connections.

Published: April 13, 2023 | Last Modified: May 13, 2025

Thin Plate Spline Motion Model

A practical guide to using the Thin Plate Spline Motion Model for animating static images by transferring motion from a driving video, with setup instructions and observations about optimal video dimensions and motion tracking limitations.

Published: April 12, 2023 | Last Modified: May 13, 2025

Managing Global Address List (GAL) Visibility with PowerShell

A comprehensive guide to managing user visibility in the Global Address List (GAL) using PowerShell, covering both on-premises Active Directory and Exchange Online environments with detailed scripts for checking and modifying the msExchHideFromAddressLists attribute.

Published: April 5, 2023 | Last Modified: May 13, 2025

Windows Remediation

A comprehensive collection of Windows troubleshooting and repair tools including DISM, SFC, DLL registration commands, and PowerShell scripts for reinstalling Windows apps.

Published: March 3, 2023 | Last Modified: May 13, 2025

OpenAI Whisper Speech Recognition Guide

Whisper is a general-purpose speech recognition model. It is trained on a large dataset of diverse audio and is also a multi-task model that can perform multilingual speech recognition as well as speech translation and language identification.

GitHub Repository

Installation

pip install git+https://github.com/openai/whisper.git 

Fix CUDA not detecting GPU

Whisper will default to the CPU if a GPU is not detected, which is considerably slower.
pip uninstall torch
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116

Example usage

# Transcribe
whisper input.mp3 --model medium.en --language en --task transcribe
# Translate
whisper japanese.wav --model large --language Japanese --task translate

Available models and languages

There are five model sizes, four with English-only versions, offering speed and accuracy tradeoffs. Below are the names of the available models and their approximate memory requirements and relative speed.

Published: February 24, 2023 | Last Modified: May 13, 2025

Microsoft LAPS (Local Administrator Password Solution) Guide

Microsoft LAPS (Local Administrator Password Solution) is a tool designed to securely manage local administrator account passwords on Windows domain-joined computers. It automates password generation and rotation, and stores passwords in a secure manner, providing greater control and security over local accounts.

Published: February 23, 2023 | Last Modified: May 13, 2025

Microsoft Teams PowerShell Management Guide

PowerShell scripts for Microsoft Teams stuff.

Get all owners of all teams and team channels

## Documentation: https://learn.microsoft.com/en-us/powershell/module/teams/?view=teams-ps
 
# Run the following command to install the latest PowerShellGet:
Install-Module -Name PowerShellGet -Force -AllowClobber
 
# Install the Teams PowerShell Module.
Install-Module -Name MicrosoftTeams -Force -AllowClobber
 
# To start working with Microsoft Teams PowerShell module, sign in with your Azure credentials.
Connect-MicrosoftTeams
 
$user =Read-Host -Prompt 'Input the user name'
$teams = Get-Team -User $user
$teamMemberships=@()
$teamChannels=@()
$teamChannelMemberships=@()
 
$i = 1

$teamMemberships = foreach ($team in $teams) {
    $GroupId = $team.GroupId   
    
    Get-TeamUser -GroupId $GroupId | Select-Object *,@{Name="GroupId";Expression={$GroupId}}
    $channels = Get-TeamAllChannel -GroupId $GroupId | Select-Object *,@{Name="GroupId";Expression={$GroupId}}
    $teamChannels += $channels

    $teamChannelMemberships += foreach ($channel in $channels) {
        $channelDisplayName = $channel.DisplayName
        Get-TeamChannelUser -GroupId $GroupId -DisplayName $channelDisplayName | Select-Object *,@{Name="GroupId";Expression={$GroupId}}
    }

    $percent = [Math]::Round((100 * $i) / $teams.Length)
    Write-Progress -Activity "Search in Progress" -Status "$percent% complete"
    $i++
    }

$teams | Export-Csv -Path "teams.csv" -NoTypeInformation
$teamMemberships | Export-Csv -Path "team-memberships.csv" -NoTypeInformation
$teamChannels | Export-Csv -Path "team-channels.csv" -NoTypeInformation
$teamChannelMemberShips | Export-Csv -Path "team-channel-memberships.csv" -NoTypeInformation

Published: February 23, 2023 | Last Modified: May 13, 2025

Managing Windows User Accounts with net user Command

The “net user” command is a Command Prompt (Shell) command used to manage user accounts on a Windows operating system. It can be used to create, modify, or delete user accounts, as well as to change passwords and manage group memberships.

Syntax

net user [username [password | *] [options]] [/DOMAIN]
net user username {password | *} /ADD [options] [/DOMAIN]
net user username [/DELETE] [/DOMAIN]
net user username [/TIMES:{times | ALL}]
net user username [/ACTIVE: {YES | NO}]

Add a user

To add a new user account:

Published: February 22, 2023 | Last Modified: May 13, 2025

Windows Driver Management with pnputil

You can uninstall third-party drivers (such as the WAVES MaxxAudio Pro driver) from the Command Prompt (CMD) by using the “pnputil.exe” utility. Here’s the basic process:

Open Command Prompt as administrator: Press the Windows key + X, and then select “Command Prompt (Admin)”.

Type the following command and press Enter:

pnputil.exe -e
# or export the list to a file
pnputil.exe -e > !drivers.csv

This command lists all the third-party drivers installed on your system.

Published: February 17, 2023 | Last Modified: May 13, 2025

Phishing Email Decoding Tools

atob() obfuscation

This p5.js script is designed to find and decode base64-encoded strings that are nested within one another. The script has several functions that work together to achieve this goal:

isBase64(str): This function checks if a given string str is a valid base64-encoded string. It uses a regular expression to test the string and the atob() function to try decoding the string. If the decoding is successful, the function returns true; otherwise, it returns false.

Published: February 15, 2023 | Last Modified: May 13, 2025

PowerShell Script for Azure AD Synchronization Management

This PowerShell script performs the following actions:

  1. It retrieves the Windows identity and security principal of the current user account.
  2. It then retrieves the security principal for the Administrator role.
  3. It checks if the current user is running as an administrator. If the user is not running as an administrator, the script relaunches itself as an elevated process.
  4. If the user is running as an administrator, the script displays a menu with three options: “Delta Sync”, “Full Sync”, and “Exit”. The user is prompted to select an option by entering the corresponding number.
  5. Based on the user’s selection, the script runs the appropriate command using the Start-ADSyncSyncCycle cmdlet with either the Delta or Initial policy type. If the user selects “Exit”, the script exits.
  6. Finally, the script displays a message indicating that it is running and to check the “miisclient” to confirm. It then pauses for 10 seconds using the Start-Sleep cmdlet.
$myWindowsID = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$myWindowsPrincipal = New-Object System.Security.Principal.WindowsPrincipal($myWindowsID)
$adminRole = [System.Security.Principal.WindowsBuiltInRole]::Administrator

if (-not $myWindowsPrincipal.IsInRole($adminRole)) {
    $newProcess = New-Object System.Diagnostics.ProcessStartInfo "PowerShell"
    $newProcess.Arguments = $myInvocation.MyCommand.Definition
    $newProcess.Verb = "runas"
    [System.Diagnostics.Process]::Start($newProcess)
    exit
}

Write-Host '1) Delta Sync (Recommended, unless told to do a full sync)'
Write-Host '2) Full Sync'
Write-Host '3) Exit'

$selected_menu_item = Read-Host 'Which number would you like to run (1 or 2)? (Enter Number and Press Enter)'

switch ($selected_menu_item) {
    1 { Start-ADSyncSyncCycle -PolicyType Delta }
    2 { Start-ADSyncSyncCycle -PolicyType Initial }
    3 { Write-Host 'Exit'; exit }
    default { Write-Host 'Incorrect Input' -ForegroundColor Red }
}

Write-Host 'Running Now.... Check miisclient to confirm'
Start-Sleep -s 10

Published: February 9, 2023 | Last Modified: May 13, 2025

Microsoft 365 Email Security Management Guide

Block Unwanted Emails

Objective: Prevent sending or receiving emails from specific external email addresses or domains.

Action: Navigate to the Tenant Allow/Block List in the Microsoft Security Center. Configure the settings to block specific email addresses or domains. For direct access, use this link: Tenant Allow/Block List.

Review Past Week of Sign-In History

Objective: Review sign-in history to identify any unusual user activity.

Action: Access the Azure portal’s sign-in history section. Specify the user of interest and examine their sign-in locations and activities. Access the portal here: Azure Sign-In History.

Published: February 7, 2023 | Last Modified: May 13, 2025

MiDaS Depth Estimation Guide

GitHub Repository

During installation, I ran into an issue where the CUDA package wasn’t found. Had to modify environment.yaml to:

name: midas-py310
channels:
  - pytorch
  - defaults
dependencies:
  - nvidia::cuda-toolkit=11.7.0
  - python=3.10.8
  - pytorch::pytorch=1.13.0
  - torchvision=0.14.0
  - pip=22.3.1
  - numpy=1.23.4
  - pip:
    - opencv-python==4.6.0.66
    - imutils==0.5.4
    - timm==0.6.12
    - einops==0.6.0

Commands that were helpful for troubleshooting CUDA:

Published: February 6, 2023 | Last Modified: May 13, 2025

Download Streams

A guide to downloading HTTP Live Streams (HLS) by locating and using .m3u8 playlists with ffmpeg, including browser developer tools techniques for finding stream sources.

Published: June 9, 2022 | Last Modified: May 13, 2025

Logistic Map

A C# implementation of the logistic map that visualizes how this simple mathematical model produces complex chaotic behavior when modeling population growth under resource constraints.

Published: May 14, 2022 | Last Modified: May 13, 2025

Archimedean Spiral

An interactive p5.js sketch that generates Archimedean spirals using polar coordinates, with the ability to export SVG files for physical fabrication.

Published: May 4, 2022 | Last Modified: May 13, 2025

Download YouTube Videos

A guide to downloading YouTube videos and audio using yt-dlp and youtube-dl command-line tools, including various options for format selection and quality settings.

Published: April 16, 2022 | Last Modified: May 13, 2025

Record Desktop Silently

A stealth desktop recording solution combining ffmpeg, batch scripting, and VBScript to capture Windows sessions without visible indicators, featuring configurable frame rates and recording durations.

Published: February 9, 2022 | Last Modified: May 13, 2025

k-means Clustering

A Processing visualization of the k-means clustering algorithm, demonstrating iterative centroid-based data partitioning and Voronoi cell formation for different values of k.

Published: May 18, 2021 | Last Modified: May 13, 2025

Remove-AppxPackages

A PowerShell script that removes unwanted Windows Store apps (AppX packages) while preserving essential system apps, using a list of package names to exclude from removal.

Published: August 28, 2019 | Last Modified: May 13, 2025

Buddhabrot

An implementation of the Buddhabrot fractal rendering technique, which visualizes escape-time trajectories of points outside the Mandelbrot set, creating intricate patterns that resemble a seated Buddha figure.

Published: August 25, 2019 | Last Modified: May 13, 2025

Daily Donation Report

A Google Apps Script that automates the collection and distribution of Google Forms data by aggregating submissions, converting them to XLSX format, and sending formatted HTML email reports.

Published: August 25, 2019 | Last Modified: May 13, 2025

Robo Mirror

A batch script that leverages robocopy to perform automated file mirroring based on a predefined list of target paths.

Published: February 28, 2019 | Last Modified: May 13, 2025

Cube Wave

A Processing implementation of a 3D cube wave animation using PeasyCam for camera control, featuring dynamic lighting and orthographic projection for a mesmerizing visual effect.

Published: December 30, 2018 | Last Modified: May 13, 2025

Lorenz Doll

A Processing visualization where each pixel of an image is transformed into a Lorenz System, with the system’s velocity mapped to the original pixel’s brightness values.

Published: November 21, 2018 | Last Modified: May 13, 2025

Orbiting Pixels Utility

A p5.js interactive visualization that transforms images into dynamic grids of orbiting objects, where each object’s rotation phase and characteristics are mapped to pixel brightness values.

Published: November 12, 2018 | Last Modified: May 13, 2025

Barnsley Fern

A Processing implementation of the Barnsley Fern fractal, demonstrating iterative geometric transformations to create a self-similar fern-like pattern with applications in computer graphics and chaos theory.

Published: June 28, 2018 | Last Modified: May 13, 2025

Comparing Java Distance Functions

A Java program that compares various distance calculation methods, including Manhattan, Euclidean, and Chebyshev distances, and visualizes their differences using Processing.

Published: April 17, 2018 | Last Modified: May 13, 2025

Faster Java String Inputs

A high-performance Java input reader class optimized for programming contests, providing fast integer and double parsing with automatic tokenization and buffering options.

Published: April 11, 2018 | Last Modified: May 13, 2025

UVa Online Judge Challenge "1112"

This problem involves a relatively small graph, so I opted to implement the Floyd-Warshall Algorithm instead of Dijkstra’s Algorithm for the sake of simplicity. This algorithm finds the shortest path between every pair of vertices in a graph, running in O(n^3) time. Although this might sound inefficient, the UVA judge accepted this program with a runtime of 0.12 seconds, which is well within the 3-second threshold. I designed this algorithm using an object-oriented approach and avoided arrays, so that if I ever have enough free time, I can easily integrate it into Processing and visualize it in 3D.

Published: April 9, 2018 | Last Modified: May 2, 2025

Basic Prime Checker, C++

A C++ program that efficiently checks for prime numbers using optimized division tests and square root-based factorization.

Published: March 24, 2018 | Last Modified: May 13, 2025

AT&T Hackathon

A reflection on participating in the AT&T Hackathon, focusing on Android game development, optimization techniques, and rapid prototyping of 3D scene building functions.

Published: March 12, 2018 | Last Modified: May 13, 2025

10PRINT Image Filter

An interactive p5.js implementation of the classic 10PRINT algorithm, offering customizable image filtering with options for both precise and hand-drawn style maze patterns.

Published: January 31, 2018 | Last Modified: May 13, 2025

Open Simplex Noise

A Processing implementation exploring 4D Simplex Noise to create smooth, organic looping animations through a 2D grid of pixel objects with variable noise scaling.

Published: January 2, 2018 | Last Modified: May 13, 2025

Flipping Tiles

A Processing sketch creating mesmerizing animations of tiles that flip based on either random patterns or Perlin noise algorithms, demonstrating creative uses of procedural animation.

Published: November 18, 2017 | Last Modified: May 13, 2025

Juno Cam Image Processing

A Java program that reconstructs and processes raw image data from NASA’s Juno spacecraft’s pushframe camera, combining multiple filter strips to create high-resolution composite images of Jupiter.

Published: November 12, 2017 | Last Modified: May 13, 2025

UVa Online Judge Challenge "10550"

“Now that you’re back to school for another term, you need to remember how to work the combination lock on your locker. A common design is that of the Master Brand, shown at right. The lock has a dial with 40 calibration marks numbered 0 to 39. A combination consists of 3 of these numbers; for example: 15-25-8. To open the lock, the following steps are taken…”

Published: November 9, 2017 | Last Modified: May 2, 2025

Sieve of Eratosthenes

An x86 MASM implementation of the Sieve of Eratosthenes algorithm that finds and counts prime numbers up to a given value n, translated from Java to assembly language.

Published: October 17, 2017 | Last Modified: May 13, 2025

UVa Online Judge Challenge "272"

“TEX is a typesetting language developed by Donald Knuth. It takes source text together with a few typesetting instructions and produces, one hopes, a beautiful document. Beautiful documents use…”

Published: October 17, 2017 | Last Modified: May 2, 2025

Nth Fibonacci Number

An x86 MASM assembly program that calculates and displays the nth Fibonacci number, demonstrating basic assembly programming concepts and memory management.

Published: October 7, 2017 | Last Modified: May 13, 2025

UVa Online Judge Challenge "100"

“Problems in Computer Science are often classified as belonging to a certain class of problems (e.g., NP, Unsolvable, Recursive). In this problem you will be analyzing a property of an algorithm whose classification is not known for all possible inputs. Consider the following algorithm…”

Published: October 5, 2017 | Last Modified: May 2, 2025

UVa Online Judge Challenge "10110"

“There is man named ”mabu” for switching on-off light in our University. He switches on-off the lights in a corridor. Every bulb has its own toggle switch. That is, if it is pressed then the bulb turns on. Another press will turn it off. To save power consumption (or may be he is mad or something else) he does a peculiar thing. If in a corridor there is n bulbs, he walks along the corridor back and forth n times and in i-th walk he toggles only the switches whose serial is divisable by i. He does not press any switch when coming back to his initial position. A i-th walk is defined as going down the corridor (while doing the peculiar thing) and coming back again. Now you have to determine what is the final condition of the last bulb. Is it on or off?”

Published: October 5, 2017 | Last Modified: May 2, 2025

Kattis Challenge "Parking"

“When shopping on Long Street, Michael usually parks his car at some random location, and then walks to the stores he needs. Can you help Michael choose a place to park which minimises the distance he needs to walk on his shopping round? Long Street is a straight line, where all positions are integer. You pay for parking in a specific slot, which is an integer position on Long Street. Michael does not want to pay for more than one parking though. He is very strong, and does not mind carrying all the bags around.”

Published: September 15, 2017 | Last Modified: May 2, 2025

Kattis Challenge "Sum of Others"

“Every day, your job requires you to add up long lists of integers, like the following:

3 + 2 + -4 + 8 + 3 + -6 + 1 + 4 + 6 + -1 + -6 = 10

That is, a sum of positive and negative integers, followed by an equals sign, followed by a single integer. To save yourself some time, you normally leave out the and signs as you write down your work, so the previous example would be…”

Published: September 15, 2017 | Last Modified: May 2, 2025

UVa Online Judge Challenge "11172"

“Some operators checks about the relationship between two values and these operators are called relational operators. Given two numerical values your job is just to find out the relationship between them that is (i) First one is greater than the second (ii) First one is less than the second or (iii) First and second one is equal.”

Published: August 24, 2017 | Last Modified: May 2, 2025

Kattis Challenge "Line Them Up"

“An eccentric coach asks players on the team to line up alphabetically at the start of practice. The coach does not tell the players whether they need to line up in increasing or decreasing order, so they guess. If they guess wrong, the coach makes them run laps before practice. Given a list of names, you are to determine if the list is in increasing alphabetical order, decreasing alphabetical order or neither.”

Published: August 18, 2017 | Last Modified: May 2, 2025

Kattis Challenge "Server"

“You are in charge of a server that needs to run some submitted tasks on a first-come, first-served basis. Each day, you can dedicate the server to run these tasks for at most minutes. Given the time each task takes, you want to know how many of them will be finished today.”

Published: August 18, 2017 | Last Modified: May 2, 2025

A Java implementation of the counting sort algorithm, a non-comparison based sorting method with O(n+k) time complexity, demonstrated using Processing.

Published: July 18, 2017 | Last Modified: May 13, 2025

An interactive p5.js sketch that generates 2D terrain using Perlin noise, with different colors representing water, sand, and grass based on elevation values.

Published: July 16, 2017 | Last Modified: May 13, 2025