Skip to content

Instantly share code, notes, and snippets.

@juliendkim
juliendkim / mem_to_bit.c
Created October 23, 2019 02:55
How variables are represented in memory
#include <stdio.h>
#include <stdlib.h>
#define MEM_TO_BIN(obj) mem_to_bin((char[sizeof(obj) * 9 + 1]){""}, &(obj), sizeof(obj))
char *mem_to_bin(char *buffer, void *object, size_t sizeof_object) {
const unsigned char *p = (const unsigned char *)object;
p += sizeof_object;
char *s = buffer;
while (sizeof_object-- > 0) {
@juliendkim
juliendkim / Install unbound dns cache on Mac.sh
Last active April 25, 2024 04:56
unbound dns cache server on Mac
$ brew install unbound
$ unbound-anchor -a /usr/local/etc/unbound/root.key
$ unbound-control-setup -d /usr/local/etc/unbound
$ unbound-checkconf /usr/local/etc/unbound/unbound.conf
$ sudo brew services start unbound
@juliendkim
juliendkim / video.html
Last active November 1, 2019 14:32
ATTRIBUTE : permit AUTOPLAY with MUTED / prevent fullscreen with PLAYSINLINE
<video autoplay loop muted playsinline>
<source src="video.mp4" type="video/mp4">
<source src="video.webm" type="video/webm">
<!-- legacy browser fallback -->
<img src="video.gif" alt="video">
</video>
@juliendkim
juliendkim / docker.sh
Last active August 15, 2020 14:37
docker
### MariaDB ###
$ docker pull mariadb
$ docker run --name maria -d -p 3306:3306 -v ~/docker/maria:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=PASSWORD mariadb
$ docker exec -it maria mysql -u root -p
### Mysql ###
$ docker pull mysql
$ docker run --name mysql -d -p 3307:3306 -v ~/docker/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=PASSWORD mysql
$ docker exec -it mysql mysql -u root -p -P3307
@juliendkim
juliendkim / png2icns.sh
Created November 4, 2019 12:06
Convert PNG file to ICNS file on Mac
#!/bin/bash
if [ $# -eq 0 ]
then
echo 1024x1024 png file to icns converter
echo
echo Usage: $0 png-filename [output-folder]
echo
echo Ex : $0 app.png
echo Ex : $0 app.png myapp
@juliendkim
juliendkim / sort_reverse_by_strlen.php
Last active November 4, 2019 12:24
Sort reverse by Unicode string length
<?php
/**
* @param string $str1
* @param string $str2
* @return int
*/
function sort_reverse_by_strlen($str1, $str2): int
{
return (mb_strlen($str1) === mb_strlen($str2))
? strnatcmp($str2, $str1)
@juliendkim
juliendkim / Clear Mac Finder and Dock icon cache.sh
Last active November 9, 2019 05:13
Clear Mac Finder and Dock icon cache, and Reset Launchpad layout
$ sudo rm -rfv /Library/Caches/com.apple.iconservices.store
$ sudo find /private/var/folders/ \( -name com.apple.dock.iconcache -or -name com.apple.iconservices \) -exec sudo rm -rfv {} \;
$ sleep 3
$ sudo touch /Applications/*
$ killall Dock
$ killall Finder
@juliendkim
juliendkim / 1 prerequisite.sh
Last active November 9, 2019 15:08
GObject(GTK3+) with Python
$ brew install pkg-config gobject-introspection libffi gtk+3
$ export PKG_CONFIG_PATH=/usr/local/Cellar/libffi/3.2.1/lib/pkgconfig
$ export LC_ALL=en_US.UTF-8 # ko_KR.UTF-8
@juliendkim
juliendkim / add (multiple) SRT to MP4 and MOV.sh
Last active April 29, 2024 13:19
Add multiple subtitles to an MP4/MOV with FFMPEG
# single subtitle with MP4(for MOV : change mov_text to srt)
$ ffmpeg -i VIDEO.mp4 -i SUBTITLE.srt -c:v copy -c:a copy -c:s mov_text OUTPUT.mp4
$ ffmpeg -i VIDEO.mov -i SUBTITLE.srt -c:v copy -c:a copy -c:s srt OUTPUT.mov
# multiple subtitles with MP4(for MOV : change mov_text to srt)
$ ffmpeg -i VIDEO.mp4 -i KOREAN.srt -i ENGLISH.srt \
-c:v copy -c:a copy -c:s mov_text \
-map 0:v -map 0:a -map 1 -map 2 \
-metadata:s:s:0 language=kor -metadata:s:s:1 language=eng \
OUTPUT.mp4
@juliendkim
juliendkim / play-local-video.html
Created November 11, 2019 08:16
Play video files on localhost
<input type="file" accept="video/*" />
<video controls autoplay></video>
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script>
$('input').on('change', changeEvent => {
var reader = new FileReader();
reader.onload = onLoadEvent => $('video').attr('src', onLoadEvent.target.result).play();
reader.readAsDataURL(changeEvent.currentTarget.files[0]);
});