Skip to content

Instantly share code, notes, and snippets.

View Himura2la's full-sized avatar
💭
Nya?

Himura Kazuto Himura2la

💭
Nya?
View GitHub Profile
@Himura2la
Himura2la / csv_sup.py
Last active July 4, 2023 11:38
CSV Supplementer
import json
import os
import csv
from urllib.request import urlopen, Request, HTTPError
csv_path = os.path.expanduser(r"~\Desktop\data.csv")
additional_cols = []
def fetch_additional_data(row):
# TODO

"([^"]+)"$ ➡️ $1

This regex is used for the following CSV transformation:

... requests
... SY 167,DSW 167
... DSJ 119
... KA 330,INS 251,K 153
@Himura2la
Himura2la / certbot-wildcard.sh
Last active June 6, 2023 10:24
Renew a wildcard certificate using certbot
#!/bin/bash
set -xe
export domain='change.me'
certbot --config ./cli-certbot.ini certonly -d "*.$domain"
# Follow the instructions.
ansible-vault encrypt "./tmp/config/live/$domain/privkey.pem" --output "./${domain}_privkey.pem.vault"
cat "./tmp/config/live/$domain/fullchain.pem" > "./${domain}_fullchain.pem"
@Himura2la
Himura2la / hashicorp-cluster-discover.sh
Last active February 23, 2023 06:54
Discover HA cluster of HashiCorp tools (Consul, Nomad, and Vault)
#!/bin/bash
hash curl || exit 1
hash jq || exit 2
usage_msg="
Usage:
$0 <leader|followers> <consul|nomad|vault> <host_address> [<query_string>]
Examples:
$0 leader vault my-vault.example.com
@Himura2la
Himura2la / grow-partition.md
Last active July 17, 2023 14:01
How to grow a mounted partition
  1. Grow the disk in your hypervisor (Hyper-V: Edit Disk in Actions panel)

  2. Apply the disk size change (you can do echo 1 | sudo tee /sys/class/block/sda/device/rescan instead of partprobe)

    $ sudo partprobe /dev/sda
    
    $ sudo dmesg | tail
    ...
    [4688278.217348] sd 2:0:0:0: Capacity data has changed
    

[4688278.217583] sd 2:0:0:0: [sda] 83886080 512-byte logical blocks: (42.9 GB/40.0 GiB)

@Himura2la
Himura2la / Paginate.cs
Last active September 5, 2023 12:59
Pagination for EF queries
const int batchSize = 50;
async Task Paginate<TEntity>(DbSet<TEntity> dbSet,
Func<int, CancellationToken, Task> action,
CancellationToken cancellationToken = default) where TEntity : class {
var count = await dbSet.CountAsync(cancellationToken);
var remain = count;
while(remain > 0) {
logger.LogInformation($"Processing {batchSize} of {remain} items...");
await action(skip: count - remain, cancellationToken);
@Himura2la
Himura2la / install_azure_addswap.sh
Created September 20, 2022 12:03
Use Azure temporary disk for swap without waagent (on Debian)
cat <<'EOF' | sudo tee /usr/local/sbin/addswap.sh
#!/bin/sh
if [ ! -f /mnt/swapfile ]
then
/usr/bin/fallocate -l 30G /mnt/swapfile
/usr/bin/chmod 600 /mnt/swapfile
/usr/sbin/mkswap /mnt/swapfile
/usr/sbin/swapon /mnt/swapfile
fi
@Himura2la
Himura2la / url-converter.html
Last active May 20, 2022 14:23
awfice-style URL encoder/decoder
<body><style>textarea{width:99%;height:49%;}body{margin:0;}textarea{width:99%;font-size:18px;padding:0.5em}</style><textarea placeholder="Decoded" id="d"></textarea><textarea placeholder="Encoded" id="e"></textarea><script>document.querySelectorAll("textarea").forEach(t=>t.addEventListener("keyup",function(e){switch(e.target.id){case"d":document.getElementById("e").value=encodeURIComponent(e.target.value);break;case"e":document.getElementById("d").value=decodeURIComponent(e.target.value);break;}}))</script></body>
#!/bin/bash
groupA0=(
"group-A0 item-0"
"group-A0 item-1"
)
groupB0=(
"group-B0 item-0"
"group-B0 item-1"
"group-B0 item-2"
)
#!/bin/sh
url='https://httpstat.us/500'
attempts=3
delay_sec=3
curl_return_code=1
while [ $curl_return_code -ne 0 ] && [ $attempts -gt 0 ]
do
echo "--- requesting..."