Skip to content

Instantly share code, notes, and snippets.

View mdiener21's full-sized avatar

Michael Diener mdiener21

View GitHub Profile
@mdiener21
mdiener21 / create_glab_pull_merge_request.sh
Last active July 15, 2026 06:08
Gitlab worktree bash alias to pull merge request locally with glab cli
# cmr - open a GitLab merge request branch in a separate Git worktree
# Usage: cmr <MR_ID> [REMOTE]
# Example: cmr 1234 origin
# Uses 'origin' when no remote is provided.
# The worktree is created one directory above the repository using the branch name.
@mdiener21
mdiener21 / create_git_worktree_alias.sh
Created July 15, 2026 06:02
git worktree alias for my bash
git config --global alias.wta '!f() { git worktree add -b "$1" "../$1"; }; f'
git config --global alias.wtr '!f() { git worktree remove "../$1"; }; f'
git config --global alias.wtl '!f() { git worktree list; }; f'
@mdiener21
mdiener21 / git-commands.sh
Last active February 19, 2026 06:20
Git commands I forget
# set local credentials
git config --global credential.helper store
git config --global user.name "$GITLAB_USER_NAME"
git config --global user.email "$GITLAB_USER_EMAIL"
# update remote url
git remote set-url origin <NEW_GIT_URL_HERE>
# git commits per developer
@mdiener21
mdiener21 / solve_rubics_cube_wired.md
Created October 27, 2022 17:59
Solve Rubiks Cube Wired instructions

Make the daisy Create the white cross Solve the first layer Solve the second layer Create the yellow cross: F U R U' R' F' Solve the yellow face: R U R' U R U2 R' Move yellow stickers upper right-hand corner of left-face Orient "fish" down and to the left relative to your perspective

@mdiener21
mdiener21 / delete_geoserver_layer.py
Created March 19, 2022 14:24
Delete a geoserver layer using the API with Python Requests
import requests
def delete_layer(layer_name):
s = requests.Session()
GEOSERVER_USER = 'someusername'
GEOSERVER_PASS = 'asecretthingy'
s.auth = (GEOSERVER_USER, GEOSERVER_PASS)
headers_json = {'Content-type': 'application/json', }
del_url = "https:/yourgeoserver.com/workspaces/SsmeWorkspaceName/datastores/someDataStoreName/featuretypes/" + layer_name + "?recurse=true"
r = s.delete(del_url, headers=headers_json, data={})
@mdiener21
mdiener21 / generate_git_stats.sh
Last active January 22, 2022 06:31
Git log commands for engineering managers
# git commits per developer
git shortlog -sn --no-merges --since "01 January 2019"
# a clearer better git log view of commits
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
@mdiener21
mdiener21 / calc_merge_stats.sh
Created January 31, 2021 19:23
print to sdout user git merge info
#!/bin/bash -e
set -o pipefail
# Any arguments are incorrect. Note that git intercepts --help and tries to
# open the man page.
if [ $# -gt 0 ]; then
echo 'Usage: git merge-stats'
exit 1
fi
@mdiener21
mdiener21 / remove_rings.sql
Last active March 1, 2020 15:51
Postgis remove all rings from all polygons
UPDATE multipoly_table_with_rings AS myrings
SET geom = noring.geom
FROM (
SELECT id, ST_Collect(ST_MakePolygon(geom)) AS geom
FROM (
SELECT id, ST_NRings(geom) AS nrings,
ST_ExteriorRing((ST_Dump(geom)).geom) AS geom
FROM multipoly_table_with_rings
WHERE ST_NRings(geom) > 1
) AS foo
@mdiener21
mdiener21 / select_polys_with_points_inside.sql
Last active September 11, 2019 15:07
Select all polygons that contain 1 or more points
SELECT DISTINCT s.id, s.tags
FROM myspace_polys as s
JOIN mypoi_points as as p
ON ST_Contains(s.geom, p.geom);
@mdiener21
mdiener21 / run_postgis_docker.sh
Last active January 2, 2019 07:57
Use docker to create a postgresql and postgis db https://hub.docker.com/r/kartoza/postgis/
$ docker run --name=postgis -d -e POSTGRES_USER=user001 -e POSTGRES_PASS=123456789 -e POSTGRES_DBNAME=gis -p 5432:5432 kartoza/postgis:9.6-2.4