Skip to content

Instantly share code, notes, and snippets.

@kawanet
kawanet / minimal-ajax.js
Last active March 2, 2022 10:50
Minimal Ajax XHR GET
(function(url, cb) {
var req = new XMLHttpRequest();
req.onreadystatechange = function() {
var err, res;
if (req.readyState === 4) {
if (req.status >= 200 && req.status < 300) {
try {
res = JSON.parse(req.responseText);
} catch (e) {
@kawanet
kawanet / escape-emoji.js
Last active January 5, 2021 08:25
絵文字(Unicode サロゲートペア)をエスケープする関数
const esc = str => str.replace(/(\\)|[\ud800-\udfff]/g, (m, c) => c ? ('\\' + c) : ("\\u" + m.charCodeAt(0).toString(16)));
esc('\\') === '\\\\';
'🍺' === '\ud83c\udf7a';
esc('🍺') === '\\ud83c\\udf7a';
JSON.parse(esc('"\\"')) === '\\';
@kawanet
kawanet / express-one-liner.js
Created May 18, 2020 05:42
Node.js + Express.js = Web Server in 1 line
node -e '(e=require("express"))().use(e.static("htdocs")).listen(3000)'
@kawanet
kawanet / readFile.js
Created May 17, 2020 04:20
async readFile with STDIN support when path is "-"
function readFile(path: string): Promise<Buffer> {
return new Promise((resolve, reject) => {
const readble = (path === "-") ? process.stdin : fs.createReadStream(path);
readble.on("error", reject).pipe(concatStream(resolve));
});
}
@kawanet
kawanet / ec2-hostnamectl.sh
Created February 27, 2020 05:14
EC2ホスト名を登録する
#!/bin/bash
aws ec2 describe-tags --region ap-northeast-1 --output text \
--query 'Tags[?Key==`Name`].Value|[0]' \
--filter "Name=resource-id,Values=$(curl -s http://169.254.169.254/latest/meta-data/instance-id/)" | \
xargs sudo hostnamectl set-hostname
sudo sh -lc "echo 'preserve_hostname: true' > /etc/cloud/cloud.cfg.d/50_preserve_hostname.cfg"
@kawanet
kawanet / amazon-cloudwatch-agent.json
Created February 11, 2020 13:08
CloudWatch Agent 設定
{
"agent": {
"metrics_collection_interval": 60,
"logfile": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log",
"region": "ap-northeast-1"
},
"metrics": {
"metrics_collected": {
"cpu": {
"measurement": [
@kawanet
kawanet / docker-hostname.sh
Created February 11, 2020 12:56
Dockerコンテナ内で個別のホスト名を設定する
#!/bin/bash
docker="$(egrep ':/docker/[0-9a-f]+$' /proc/self/cgroup | head -1)"
docker="${docker##*/}"
hostname "docker-${docker:0:8}"
@kawanet
kawanet / heap_size_limit.sh
Last active February 5, 2020 13:39
node --max-old-space-size option and heap_size_limit
#!/bin/sh
node --max-old-space-size=1000 -e 'console.log(Math.floor(v8.getHeapStatistics().heap_size_limit/1024/1024))'
# 1049
node -e 'console.log(Math.floor(v8.getHeapStatistics().heap_size_limit/1024/1024))'
# 1456
node --max-old-space-size=2000 -e 'console.log(Math.floor(v8.getHeapStatistics().heap_size_limit/1024/1024))'
# 2066
@kawanet
kawanet / docker-socat-1234.sh
Created September 4, 2019 16:29
Docker for Macで1234番ポートでlistenする
#!/bin/sh
# @see https://github.com/docker/for-mac/issues/770
docker run -d -v /var/run/docker.sock:/var/run/docker.sock -p 1234:1234 alpine/socat TCP-LISTEN:1234,fork UNIX-CONNECT:/var/run/docker.sock
@kawanet
kawanet / aws-describe-to-md.sh
Last active September 10, 2020 02:56
AWS インフラ構成を Markdown で出力
#!/bin/sh
# Name: aws-describe-to-md.sh
# Gist: https://gist.github.com/kawanet/5c135535d9bf49722b96cab29fa94708
# Author: 2019 Yusuke Kawasaki
# License: MIT
#
# Download:
# curl -o aws-describe-to-md.sh https://gist.githubusercontent.com/kawanet/5c135535d9bf49722b96cab29fa94708/raw/aws-describe-to-md.sh
#