Skip to content

Instantly share code, notes, and snippets.

@darcyliu
darcyliu / create_db.sh
Created November 24, 2024 06:13
Create/Delete databases and users in PostgreSQL
#!/bin/bash
# Check if the correct number of arguments are provided
if [ "$#" -ne 2 ]; then
echo "Usage: $0 <database_name> <user_name>"
exit 1
fi
# Command-line arguments
DB_NAME="$1"
# OS release info
uname -s
uname -r
uname -n
# Start up time
uptime
# CPU info
cat /proc/stat
@darcyliu
darcyliu / setup-wireguard.sh
Created December 31, 2023 08:17
Setup WireGuard on FreeBSD
pkg install -y wireguard wireguard-tools
cd /usr/local/etc/wireguard/
umask 077
wg genkey > freebsd.private
wg pubkey < freebsd.private > freebsd.public
wg genkey > client.private
wg pubkey < client.private > client.public
@darcyliu
darcyliu / install-kubernetes-on-buster.sh
Last active May 11, 2024 17:06 — forked from BeerOnBeard/install-kubernetes-on-buster.sh
Set up a single-node Kubernetes system on Debian 12 (bookworm). Use Flannel as the network fabric. Install the Kubernetes dashboard.
#!/bin/bash
set -e;
# Set up a single-node Kubernetes system on Debian 10 (Buster).
# Use Flannel as the network fabric. Install the Kubernetes
# dashboard.
# disable swap
swapoff -a;
@darcyliu
darcyliu / web.go
Created April 8, 2020 14:27
Go web starter
package main
import (
"net/http"
"fmt"
"log"
"flag"
"net"
"time"
"runtime"
@darcyliu
darcyliu / UIImage+Helpers.m
Created December 25, 2019 06:28
Image Resizing
@implementation UIImage (Helpers)
- (UIImage *)scaleImageToSize:(CGSize)newSize
{
UIGraphicsImageRenderer *renderer = [[UIGraphicsImageRenderer alloc] initWithSize:newSize];
UIImage *image = [renderer imageWithActions:^(UIGraphicsImageRendererContext*_Nonnull myContext) {
[self drawInRect:(CGRect) {.origin = CGPointZero, .size = newSize}];
}];
return image;
}
@darcyliu
darcyliu / ClassesList.m
Created September 4, 2019 09:18
List all image names and class names
#import <objc/runtime.h>
NSArray *AllImageNames() {
unsigned int imageCount = 0;
const char **imageNames = objc_copyImageNames(&imageCount);
NSMutableArray<NSString *> *imageNameStrings = [[NSMutableArray alloc] initWithCapacity:imageCount];
if (imageNames!=NULL) {
for (unsigned int i = 0; i < imageCount; i++){
const char *imageName = imageNames[i];
NSLog(@"image name: %s", imageNames[i]);
@darcyliu
darcyliu / hello.cpp
Created July 2, 2019 05:30
mutex example
// mutex example
// clang++ hello.cpp -std=c++11 -o hello
#include <iostream> // std::cout
#include <thread> // std::thread
#include <mutex> // std::mutex
std::mutex mtx; // mutex for critical section
void print_block (int n, char c) {
// critical section (exclusive access to std::cout signaled by locking mtx):
@darcyliu
darcyliu / attribute.c
Created July 2, 2019 05:27
Clang constructor and destructor attributes
// clang attribute.c -o attribute
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("Hello World!\n");
return 0;
}
__attribute__((constructor)) static void beforeFunction()
{
printf("beforeFunction\n");
@darcyliu
darcyliu / PriorityQueue.h
Last active November 6, 2018 03:07
Objective-C Priority Queue
//
// PriorityQueue.h
// PriorityQueue
//
// Created by Darcy Liu on 2018/11/6.
// Copyright © 2018 Darcy Liu. All rights reserved.
//
#import <Foundation/Foundation.h>