Skip to content

Instantly share code, notes, and snippets.

View derekjhyang's full-sized avatar

Derek Yang derekjhyang

View GitHub Profile
const lineConfig = {
channelAccessToken: 'XXXXXXXXXXX',
channelSecret: 'XXXXXXXXXXX'
};
const crypto = require('crypto');
const channelSecret = lineConfig.channelSecret;
app.post('/webhook', line.middleware(lineConfig), (req, res) => {
// 給 LINE 的 body 要是 string
@derekjhyang
derekjhyang / k9s.txt
Created November 3, 2023 08:35 — forked from BigNerd/k9s.txt
K9s column descriptions
View: Pods(<namespace>)[number of pods listed]
NAME pod name
READY number of pods in ready state / number of pods to be in ready state
RESTARTS number of times the pod has been restarted so far
STATUS state of the pod life cycle, such as Running | ... | Completed
CPU current CPU usage, unit is milli-vCPU
MEM current main memory usage, unit is MiB
%CPU/R current CPU usage as a percentage of what has been requested by the pod
%MEM/R current main memory usage as a percentage of what has been requested by the pod
@derekjhyang
derekjhyang / gpg-no-tty.sh
Created September 21, 2023 13:44 — forked from saschadoemer/gpg-no-tty.sh
Simple workaround for "no-tty" GPG signing - Part I
# file /home/user/gpg-no-tty.sh
#!/bin/bash
/usr/bin/gpg --batch --no-tty "$@"
@derekjhyang
derekjhyang / index.js
Created August 11, 2023 16:17 — forked from adamelliotfields/index.js
Grafana Dashboard Screenshot using Puppeteer
#!/usr/bin/env node
/**
* Grafana Dashboard Screenshot
*
* Derived from https://github.com/sindresorhus/capture-website/blob/v0.8.0/index.js
* by @sindresorhus (MIT).
*/
const fs = require('fs');
@derekjhyang
derekjhyang / export_k3d_kube_config.sh
Last active November 17, 2022 16:26
Export your k3d cluster kubeconfig
#!/bin/bash
set -x
default_k3d_cluster=$(k3d cluster list --no-headers | awk '{print $1}')
export KUBECONFIG=$(k3d kubeconfig write ${default_k3d_cluster})
kubectl cluster-info
@derekjhyang
derekjhyang / Spark streaming using a Rate Source and Console Sink.scala
Created September 21, 2022 15:43 — forked from omairaasim/Spark streaming using a Rate Source and Console Sink.scala
How to perform Spark streaming using a Rate Source and Console Sink
// Databricks notebook source
import org.apache.spark.sql.{SparkSession}
import org.apache.spark.sql.functions._
// Create Spark Session
val spark = SparkSession.builder().master("local")
.appName("Rate Source")
.getOrCreate()
val df = spark.readStream.format("rate")
Recording Rule Example 1
================================
# Aggregating up requests per second that has a path label:
- record: instance_path:requests:rate5m
expr: rate(requests_total{job="myjob"}[5m])
- record: path:requests:rate5m
expr: sum without (instance)(instance_path:requests:rate5m{job="myjob"})
Recording Rule Example 2
@derekjhyang
derekjhyang / script-template.sh
Created December 24, 2020 02:51 — forked from m-radzikowski/script-template.sh
Minimal safe Bash script template - see the article with full description: https://betterdev.blog/minimal-safe-bash-script-template/
#!/usr/bin/env bash
set -Eeuo pipefail
trap cleanup SIGINT SIGTERM ERR EXIT
script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P)
usage() {
cat <<EOF
Usage: $(basename "${BASH_SOURCE[0]}") [-h] [-v] [-f] -p param_value arg1 [arg2...]
#!/bin/bash
wget -qO - https://package.perforce.com/perforce.pubkey | sudo apt-key add -
sudo bash -c 'echo "deb http://package.perforce.com/apt/ubuntu $(lsb_release -cs) release" > /etc/apt/sources.list.d/perforce.list'
cat /etc/apt/sources.list.d/perforce.list
sudo apt update -y && sudo apt install -y helix-p4d
#!/bin/bash
cd /tmp && wget https://download.teamviewer.com/download/linux/signature/TeamViewer2017.asc
sudo apt-key add TeamViewer2017.asc
sudo sh -c 'echo "deb http://linux.teamviewer.com/deb stable main" >> /etc/apt/sources.list.d/teamviewer.list'
sudo sh -c 'echo "deb http://linux.teamviewer.com/deb preview main" >> /etc/apt/sources.list.d/teamviewer.list'
sudo apt update -y
sudo apt install -y teamviewer