Skip to content

Instantly share code, notes, and snippets.

@amaya382
amaya382 / guidepost.plantuml
Last active October 11, 2017 05:50
scala.collection選択フローチャート(http://plantuml.com/plantuml/uml に投げると見れます)
@startuml
start
if (複数の型) then (Y)
:shapeless.HList;
detach
else (N)
if (順序が重要) then (Y)
if (規則的な値を生成) then (Y)
:immutable.Range;
detach
implicit class RichMutableMap[K, V](val m: scala.collection.mutable.Map[K, V]) extends AnyVal {
def upsert(key: K, insertValue: => V, updateValue: => V => V = null): scala.collection.mutable.Map[K, V] = {
if (m.contains(key) && updateValue != null)
m.update(key, updateValue(m(key)))
else
m.update(key, insertValue)
m
}
}
@amaya382
amaya382 / agg.zsh
Last active February 4, 2016 17:07
calculate avg without outliers(arg1: command, arg2: output file, arg3: regex for output, -i=--iters(opt): #iters, -o=--outliers(opt): #outliers, -a+=--additional-regex(opt,experimental): regex for additional target)
#!/bin/zsh
# TODO: impl for two or more additional regexs
zparseopts -D -A opts -- i: -iters:=i o: -outliers:=o p: -parallel=p a+: -additional-regex:=a
niters=5
noutliers=1
regexs=("$3")
local -A opts
if [[ -n "${opts[(i)-i]}" ]]; then
niters=${opts[-i]}
@amaya382
amaya382 / cs.cs
Created April 14, 2015 11:08
既に定義済みのものを後からInterfaceとして公開する, 型チェック付きのダックタイピングっぽい感覚…?
public class Named : Person, IImplName { }
public interface IImplName
{
string Name { get; set; }
}
public class Person
{
public string Name { get; set; }
}
package com.chatwork.quiz.collection
import com.chatwork.quiz.{MySome, MyNone, MyOption}
import scala.annotation.tailrec
sealed trait MyList[+A] {
// Easy
@amaya382
amaya382 / keyboard.md
Last active August 29, 2015 14:16
MINILA Air US赤軸ベースに青軸とクリア軸を混ぜてついでにキー配置も弄ってみた

MINILA Air US赤軸ベース青クリア混合にしてみた記録

こんな感じでキー軸を加工して,

こんな感じに配線しなおして,

@amaya382
amaya382 / Option.cs
Last active January 7, 2019 05:47
実用重視のOptionMonad"""モドキ""" in C#
//直和を表現しきれない点を気にしたら負け
public interface IOption<out T> : IEnumerable<T>
{
bool HasValue { get; }//== this.Any()
}
sealed public class Some<T> : IOption<T>
{
private readonly T val;
public bool HasValue { get { return true; } }
@amaya382
amaya382 / rewrite_gitinfo.sh
Last active August 29, 2015 14:13
過去のcommitのユーザ名とメールアドレスを一括書き換え
git filter-branch -f --commit-filter '
if [ "$GIT_AUTHOR_EMAIL" = "{old email}" ];
then
GIT_AUTHOR_NAME="{new name}"
GIT_AUTHOR_EMAIL="{new email}"
GIT_COMMITTER_NAME="{new name}"
GIT_COMMITTER_EMAIL="{new email}"
git commit-tree "$@"
else
git commit-tree "$@"
@amaya382
amaya382 / c87.md
Last active February 7, 2024 16:10
SublimeTextで作るお手軽Markdown文章作成環境

これはC87で頒布した部誌「OhUCC!」に寄稿した記事に若干の追記をしたものです.


SublimeTextで作るお手軽Markdown文章作成環境

0. Markdownって?

Markdownとはいわゆるマークアップ言語です. Markdownの簡単な規則に則るだけで整ったHTMLが作成できます. また, 現在ではHTMLだけではなく, LaTeXやPDFなどにも変換するアプリが提供されているため大変汎用的です. ちなみにこの文章もすべてMarkdownで書いています.

1. 最終目標

@amaya382
amaya382 / encode.sh
Last active August 29, 2015 14:12
chinachu encode
#!/bin/bash
log=/home/chinachu/chinachu/log/encode
echo -----start encoding @$(date +%Y/%m/%d/%H:%M:%S)----- >> $log
start=$(date +%s)
echo $1 >> $log
ffmpeg -i $1 -vcodec libx264 -acodec libfdk_aac -tune animation ${1%.*}.mp4 2>&1 | grep "^[^f]" >> $log