Skip to content

Instantly share code, notes, and snippets.

View princeppy's full-sized avatar

👑 Prince Park 👑 princeppy

View GitHub Profile
@princeppy
princeppy / oracle-schema-diagram.md
Last active April 22, 2026 16:52
Oracle Schema Diagram Skill (DBML output)

name: oracle-schema-diagram description: > Use this skill whenever the user provides Oracle SQL (SELECT, stored procedures, views, or anything with FROM/JOIN/WHERE) and wants to understand the database structure, generate a schema-extraction query, identify table relationships, or produce a DBML database diagram for dbdiagram.io. Triggers include: "generate schema SQL", "extract table columns", "database diagram", "ER diagram", "DBML", "dbdiagram.io", or any time Oracle SQL is pasted alongside a request to see columns, relationships, or structure. Also triggers when the user uploads a CSV from the extraction query and wants a diagram built from it. Also triggers when the user has already received a DBML diagram earlier in the conversation and returns with a revised CSV, clarifications, or corrections — treat this as an iteration on the existing analysis, not a fresh start. Use this skill even when the user does not say "DBML" explicitly — if they want a database diagram from Oracle SQL, default to this

@princeppy
princeppy / AUTO_SUBMODULE_UPDATE.md
Last active April 16, 2026 12:01
Describes how to set up automatic submodule updates so that when someone pushes to the submodule repository, the parent repository automatically pulls the latest submodule reference and pushes it.

Auto-Pull Submodule from Remote

This document describes how to set up automatic submodule updates so that when someone pushes to the submodule repository, the parent repository automatically pulls the latest submodule reference and pushes it.

Overview

Push to submodule repo (main branch)
  |
  v

You are an expert technical analyst. Your task is to generate a comprehensive, accurate CLAUDE.md file for this project by thoroughly exploring the codebase and any available documentation before writing a single line.

Phase 1 — Discovery (do all of this before writing anything)

Explore the repository structure completely:

  • Run find . -maxdepth 4 -not -path '*/obj/*' -not -path '*/.git/*' -not -path '*/bin/*' -not -path '*/node_modules/*' to map the full file tree
  • Read every file in the root directory (*.md, *.txt, *.json, *.xml, *.yml, *.yaml, .gitignore, .editorconfig, .globalconfig, Directory.Build.props, global.json)
  • Read every *.csproj and *.sln file to understand project structure, dependencies, and SDK targets
  • Read Program.cs, Startup.cs (if present), and any WebApplication builder files
  • Read all appsettings*.json files EXCEPT appsettings.Production.json

Recursively Remove Empty Subfolders on macOS

Simple one-liner to remove empty directories recursively

find /Volumes/Projects/nodejs/eCard -type d \
    -empty -depth \
    -not -path "*/.git" -not -path "*/.git/*" \
    -delete

PySpark Vs Pandas

PySpark is the Python library for Spark programming. It allows you to use the powerful and efficient data processing capabilities of Apache Spark from within the Python programming language. PySpark provides a high-level API for distributed data processing that can be used to perform common data analysis tasks, such as filtering, aggregation, and transformation of large datasets.

Pandas is a Python library for data manipulation and analysis. It provides powerful data structures, such as the DataFrame and Series, that are designed to make it easy to work with structured data in Python. With pandas, you can perform a wide range of data analysis tasks, such as filtering, aggregation, and transformation of data, as well as data cleaning and preparation.

PySpark Pandas
@princeppy
princeppy / dd-MMM-yyyy Regex.md
Last active November 29, 2024 14:38
dd-MMM-YYYY, dd/MMM/YYYY, dd.MMM.YYYY

Debuggex

^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]|(?:Jan|Mar|May|Jul|Aug|Oct|Dec)))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2]|(?:Jan|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)(?:0?2|(?:Feb))\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9]|(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep))|(?:1[0-2]|(?:Oct|Nov|Dec)))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$

Regular expression visualization

Debuggex Date Formatter

@princeppy
princeppy / delete-files-from-googledrive.py
Created August 12, 2023 08:30
delete files which are modified on a particular date
import glob
import os
import time
dir_name = '/content/drive/MyDrive/'
target_date = datetime.datetime.strptime('2023-03-30', '%Y-%m-%d').date()
print(target_date)
# Get list of all files only in the given directory
import io
import requests;
import pathlib;
from PIL import Image
# =================================================================== #
def download_image(url):
filename = url.split('/')[-1];
print(f"Filename : {filename}")
@princeppy
princeppy / appify
Last active May 29, 2020 09:55 — forked from mathiasbynens/appify
appify — create the simplest possible Mac app from a shell script
#!/bin/bash
# https://gist.github.com/princeppy/dd3ca67e3233589aa7ab102568806f4b
# https://mathiasbynens.be/notes/shell-script-mac-apps
if [ "$1" = "-h" -o "$1" = "--help" -o -z "$1" ]; then cat <<EOF
appify v3.0.1 for Mac OS X - http://mths.be/appify
Creates the simplest possible Mac app from a shell script.
Appify takes a shell script as its first argument: