Skip to content

Instantly share code, notes, and snippets.

View retorillo's full-sized avatar

Retorillo retorillo

View GitHub Profile
(?:\ud83d\udc68\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffb|\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc]|\ud83d\udc68\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd]|\ud83d\udc68\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffb|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffc]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffd]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udfff\u200d\ud8
// ExtractTwemojiFileNames
// Extract all emoji characters from text
// [EXAMPLE] 🕵🏾‍♀️ => 1f575-1f3fe-200d-2640-fe0f
// Licensed under the MIT license
// Migrated from twemoji.js v12.1.3 (Twitter Inc.)
static IEnumerable<string> ExtractTwemojiFileNames(string text) {
Regex regex = new Regex("(?:\ud83d\udc68\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffb|\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc]|\ud83d\udc68\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd]|\ud83d\udc68\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffb|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udf
// Licensed under CC0, No Rights Reserved
Shader "Custom/TransparentCutoutDoubleSidedDiffuseShader" {
Properties {
_Color ("Color", Color) = (1, 1, 1, 1)
_Alpha ("Alpha Map", 2D) = "white" {}
_Normal ("Normal Map", 2D) = "bump" {}
_Cutout ("Cutout", Range(0, 1)) = 0.5
}
SubShader {
Tags {
@retorillo
retorillo / fontforge_monospaced_font_generationt.md
Last active July 20, 2022 13:18
fontforgeによる等幅合成フォント作成時の注意点

fontforgeによる等幅合成フォント作成時の注意点

make.pyはファイル名に使うべきではない

pythonをインストールしている環境ではmakeコマンドよりもmake.pyが優先して実行されることがあり混乱する。

cidFlattenは使うべきではない

同じコード値を示すグリフは複数ある場合がある。 この場合cidFlattenは期待しない結果となる。

Creating fast drawing video with ffmpeg

ffmpeg -i "concat:video1.ts|video2.ts|video3.ts" -c copy concat.ts
ffmpeg -i concat.ts -an -filter:v "setpts=0.03125*PTS" -c:v libx264 -preset ultrafast -crf 0 m32.mp4
  • Use setpts=0.25*PTS for x4 video, setpts=0.03125*PTS for x32 video.
  • Use -an to remove audio track.
setlocal enabledelayedexpansion
set NaN=0
for /f "delims=0123456789" %a in ("432432") do set NaN=1
if !NaN! equ 0 (
REM process for number
)
if !NaN! equ 1 (
REM process for NaN
)
REM This snippet can concat many TS files up to 9999 (1.ts - 9999.ts)
REM NOTE: `ffmpeg -i "concat:[too many files]"` will fail
@echo off
setlocal enabledelayedexpansion
set skipped_files=
(
for /f %%f in ('dir /b *.ts') do (
set num=%%~nf
REM This snippet sort *.ts files in numerical order. Up to 9999. (1.ts - 9999.ts)
@echo off
setlocal enabledelayedexpansion
(
for /f %%f in ('dir /b *.ts') do (
set num=%%~nf
set elif=1
if !elif! equ 1 if !num! lss 10 set "num=000!num!" && set elif=0
if !elif! equ 1 if !num! lss 100 set "num=00!num!" && set elif=0
if !elif! equ 1 if !num! lss 1000 set "num=0!num!" && set elif=0

Various way to achieve output from other executable

stdin w/ terminal script

#include <stdio.h>

int main() {
  char buffer[256];
  while (fgets(buffer, sizeof(buffer), stdin))

Install Latest GCC on Ubuntu

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-8 g++-8
sudo update-alternatives --install \
 /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 \
 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9