Skip to content

Instantly share code, notes, and snippets.

View secf4ult's full-sized avatar

Yu Xiao secf4ult

View GitHub Profile
@secf4ult
secf4ult / pre-commit
Created October 24, 2025 05:48
Git hooks
#!/usr/bin/bash
properties=$(git diff --cached --name-only | grep -E '.*\.properties')
# make git hook can read user input
exec < /dev/tty
if [[ -n "$properties" ]];then
while IFS= read -r f;do
printf ' - %s\n' "$f"
done <<< "$properties"
echo
@secf4ult
secf4ult / settings.json
Created October 22, 2025 02:33
CSpell settings for common lib names
{
"cSpell.userWords": [
"awssdk",
"jacoco",
"jasperreports",
"javadocs",
"javax",
"jaxb",
"jdbc",
"lmax",
@secf4ult
secf4ult / Oracle.sql
Last active June 21, 2024 03:20
SQL cheatsheet
-- Get the execution plan for the last command
SELECT * FROM dbms_xplan.display_cursor();
-- Get the hinted plan for the last command
SELECT * FROM dbms_xplan.display_cursor(format=>'+outline'));
pipeline {
agent any
parameters {
string(name: "myStringParam", description: "String Parameter")
choice(choices: ["Choice 1", "Choice 2"], name: "myChoiceParam", description: "Choice Parameter")
booleanParam(defaultValue: false, name: "myBooleanParam", description: "Boolean Parameter")
}
environment {
# jenkins
docker run -d -p 8081:8080 \
-p 50000:50000 \
--name jenkins \
-v jenkins-vol:/var/jenkins_home \
jenkins/jenkins:lts
@secf4ult
secf4ult / arrow-pointer.svg
Last active January 7, 2023 07:53
arrow-pointer svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@secf4ult
secf4ult / ackmann.c
Created February 23, 2021 10:30
Ackermann Function
#include <stdio.h>
int ack(int m, int n)
{
int ans;
if (m == 0) ans = n + 1;
else if (n == 0) ans = ack(m - 1, 1);
else ans = ack(m - 1, ack(m, n - 1));
return (ans);
}
@secf4ult
secf4ult / vue_reactivity.js
Last active February 23, 2021 10:32
Simple Vue reactivity.
const targetMap = new WeakMap()
let activeEffect = null
function track(target, key) {
let depsMap = targetMap.get(target)
if (!depsMap) {
targetMap.set(target, (depsMap = new Map()))
}
@secf4ult
secf4ult / setup_linux
Created February 23, 2021 07:22
Environment setup scripts.
#!/bin/sh
# Getting Ready
LOGDIR="~/log"
DOTFILES="~/.dotfiles"
# Update & Upgrade
sudo apt-get update -y
sudo apt-get upgrade -y
# Setup Prerequisite
@secf4ult
secf4ult / y.js
Last active February 9, 2021 08:34
Y Combinator in JavaScript
// from Crockford's talk: https://www.youtube.com/watch?v=ya4UHuXNygM
function Y(le) {
return (function (f) {
return f(f)
}(function (f) {
return le(function (x) {
return f(f)(x)
})
}))
}