Skip to content

Instantly share code, notes, and snippets.

View kana's full-sized avatar

Kana Natsuno kana

View GitHub Profile
@kana
kana / tomodachi.php
Created August 17, 2017 12:28
Don't confuse PHP & reference with other languages' reference.
<?php
function test_copy_on_write()
{
print "test_copy_on_write\n";
$a = 100;
xdebug_debug_zval('a');
//==> a: (refcount=1, is_ref=0)=100
<?php
$a = 1;
debug_zval_dump($a);
//==> long(1) refcount(2)
// Novice: Huh? Why is refcount 2? The value is only pointed by $a, so refcount must be 1!
// Tatsujin: PHP uses copy-on-write. The value is passed by value to debug_zval_dump.
// It doesn't modify the passed value. The value is shared by $a and debug_zval_dump.
// Therefore refcount is 2.
@kana
kana / nicegif
Created December 19, 2017 09:41
#!/bin/bash
colors=256
fps=30
half=
while true
do
case "$1" in
'-c')
const bodyParser = require('body-parser')
const express = require('express')
const moment = require('moment-timezone')
const slack = require('slack')
const VERIFICATION_TOKEN = process.env.VERIFICATION_TOKEN
const OAUTH_ACCESS_TOKEN = process.env.OAUTH_ACCESS_TOKEN
const app = express()
aaa
@kana
kana / t-right-to-left-2-up.sh
Last active May 15, 2019 12:36
Rearrange PDF pages
# Original PDF:
# 1. Front cover
# 2. content 1
# 3. content 2
# 4. ...
# 5. content -2
# 6. content -1
# 7. Back cover
#
# Resulting PDF:
@kana
kana / nes-ize
Created May 23, 2019 13:50
NES-ish image color reduction
#!/bin/bash
if ! [ "$#" = 1 ]
then
echo "Usage: $0 FILE"
exit 1
fi
d="$(identify "$1" | cut -d' ' -f3)"
width="${d/x*/}"
@kana
kana / algorithm comparison.md
Last active September 10, 2019 08:02
Hatokura random sampling memo
Algorithm Card set Times Elapsed Note
A-Res FG only 100k 18,741ms Acceptable speed for small card set
A-Chao FG only 100k 8,561ms Broken probability
Uniform FG only 100k 8,145ms Current implementation
A-Chao All 100k 11,215ms Broken probability
Uniform All 100k 11,774ms Current implementation
A-Res / sort All 100k 163,021ms Simple implementation but heavy
A-Res / heap(A) All 100k 31,068ms Push all cards then pop N cards
A-Res / heap(W) All 100k 23,028ms The same as described in Wikipedia
font=~/Library/Fonts/MyFavoriteFont.ttf
icon=apple-touch-icon.png
convert \
-background transparent \
-size 980x640 \
\( \
-background transparent -fill white \
-font "$font" \
-gravity center \
@kana
kana / 4k.sh
Last active September 24, 2020 14:52
convert m.png -gravity west -resize 3840x2160 -extent 10x ,left.png
convert m.png -gravity east -resize 3840x2160 -extent 40x ,right.png
convert \
\( ,left.png -gravity west -resize '2160x2160!' -blur 0x20 \) \
\( m.png -gravity center -resize '3840x2160' \) \
\( ,right.png -gravity east -resize '2160x2160!' -blur 0x20 \) \
+append ,base.png
convert ,base.png -gravity center -extent 3840x2160 -quality 90 ,t.jpg