Skip to content

Instantly share code, notes, and snippets.

@tomykaira
tomykaira / wthor.rb
Created August 10, 2012 01:40
parser for WTHOR file (othello, reversi)
#!/usr/bin/env ruby
# parser for WTHOR file
# Copyrihgt (c) tomykaira 2012
# Lisence: MIT
filenames = ARGV.length == 0 ? ["WTH_2000/WTH_2000.WTB"] : ARGV
CLEAN = true
filenames.each do |fn|
@tomykaira
tomykaira / How-to-use-github-repo-as-IDEA-setting-repo.md
Last active June 2, 2021 05:38
Memo, how to sync github repo as IDEA setting repository.

Official document: https://www.jetbrains.com/help/idea/settings-tools-settings-repository.html

Problem

With Personal Access Token (PAT), as far as I tried, it is impossible to push changes to private repos. Therefore it is impossible to use https:// git url as sync rpeo.

With git@github.com URL, jgit (jsch) emits authorization errors on sync even if the SSH pub key is added to your Github account. This is because jgsch does not support OpenSSH format ssh private keys.

dominion考 基本セットのみ。2日目くらい。

ゲームルールからみちびかれる最も基礎的な戦略=属州を最短ターン数で手に入れる

  • 先に27勝利点までいけばだいたい勝てる

あまり相手の動きを考える必要はない。相手が最適に動いたときに4枚(あるいは12枚/人数)の属州を手に入れるよりもさらに短いターン数で同数の属州を手にいれればだいたい勝てる。 相手の動きが気になるのはアクションのみだが、基本セットのアタックはだいたい魔女と民兵くらいのもので、リアクションが堀しかないので、リアクションを前提としたデッキの組み方をする必要は薄い。相手が高サイクルでアタックを打てる組み方をしてきたら諦める。村系+デッキ圧縮で引切や前駆者+ドローなどはこれにあたるが、そもそも組めないアクションカード群になることのほうが多い。 初心者のうちは貪欲に属州を狙うだけ考えればいい。

@tomykaira
tomykaira / clockwork-init.sh
Created October 25, 2011 10:21
Create a new project with clockwork for heroku.
#!/bin/sh
# Licence: MIT
# Created by tomykaira, 2011-10-25
if [ $# -ne 1 ]; then
echo "Give me your new project name (only)"
exit 1
fi
@tomykaira
tomykaira / java2smali.sh
Created September 9, 2017 17:52
Java to smali conversion, one liner.
#!/bin/sh
set -e
JAVA_HOME='/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home'
cd /tmp
cat > input_tmp.java <<EOF
public class input_tmp {
public static void main(String[] args) {
#02: DeviceInformation
#03: Custom Service: b88612e9-b3c1-45ee-aaf5-5e145e2d9831
BLE: set #03
Selected service Custom Service: b88612e9-b3c1-45ee-aaf5-5e145e2d9831.
#00: Custom Characteristic: b88612ea-b3c1-45ee-aaf5-5e145e2d9831 W
#01: Custom Characteristic: b88612eb-b3c1-45ee-aaf5-5e145e2d9831 N
#02: Custom Characteristic: b88612ec-b3c1-45ee-aaf5-5e145e2d9831 R
#03: Custom Characteristic: b88612ed-b3c1-45ee-aaf5-5e145e2d9831 R
#04: Custom Characteristic: b88612ee-b3c1-45ee-aaf5-5e145e2d9831 R
@tomykaira
tomykaira / scala_mysql.md
Created October 7, 2013 04:22
How to use personal SSL CA on connecting to MySQL from Scala (sbt)

java の keytool で keystore を作成する。パスワードを要求されるので、ここでは "testpass" にする。

keytool -importcert -alias mysqlServerCACert -file PASS_TO_CA_CART.pem -keystore keystore

sbt の起動時に、この keystore を渡す。

sbt run \
-Djavax.net.ssl.keyStore=/path/to/keystore \
-Djavax.net.ssl.keyStorePassword=testpass \

-Djavax.net.ssl.trustStore=/path/to/keystore \

@tomykaira
tomykaira / README.md
Created December 16, 2019 01:46
How to set up TimeMachine drive on your NAS (but inefficient, slow).
  • Login to your SMB with Finder, and save the password to Keychain.
  • Create timemachine-macbook.sparsebundle under the SMB root directory.
  • Mount it to /Volumes/TimeMachine.
  • Run tmutil setdestination /Volumes/TimeMachine as root (with sudo).
  • Allow security command to access your keyring to automate mounting TimeMachine drive.
    • security find-generic-password -wa TimeMachineSparseBundlePass
@tomykaira
tomykaira / Sustainable_Fab.md
Last active December 9, 2019 14:24
farmtory Advent Calendar 2019 の 12/09 の記事です。

farmtory Advent Calendar 2019 の 12/09 の記事です。farmtory 部員ではありませんが、むらさきさんにお声がけをいただき書かせていただくことになりました、 tomykaira です。fab や make といったとき、どうしてもモノ作りの文脈で語られることが多い気がします。しか し farmtory のコンセプトのひとつは「都市の自給自足をリビルドする」。自給自足の概念は、サステナブルに直結します。たんに自分で作ったモノが壊れたときに自分で直せるというだけでなく、モノが壊れずに長い期間使えること、また楽しく有用に使えることが、今回お話したい sustainable fab です。

私は普段はソフトウェアエンジニアをしていますが、趣味と実益を兼ねて、PC周辺機器を自作したり作業環境を hack したりしています。過去にはリモートワークスタイルを記事する記事を書いたりしていますね。この記事を書いたのが18年4月。もう1年半前というのは大変おどろきです。その間引越しや海外旅行をふくめ、いろんなことがありましたがだいたい同じスタイルで今も仕事をしています。こまかい構成変更はいろいろあります。たとえば重すぎる iMacを降ろして地面に置くようにした、PC をグレードアップして Ryzen TR2 にした、など。しか し一番大きく、効果の高かった変更は入力デバイスの変更でした。

すでにいろんなところでお話していますが、寝た状態で作業すると、座って作業するときに前提になっているいろいろな事実が壊れます。たとえば、ほぼ重力がありません。身体の全体はマットレスに支えられています(もしかしたらマットレスも前回からのアップデートかもしれ ません)。すると通常のキーボードの打鍵は重すぎるのです。キーボードは腕や指の全体の力をつかって打つように設計されている気がしま す。わたしの小さな手の非力な指先だけで押し下げていると疲れてしまいます。またマウスは布

@tomykaira
tomykaira / error.txt
Created August 28, 2019 19:33
Silly example case to reproduce "Unknown column" error on mysql 5.6, but not on mysql 8.0+
Unknown column 'x6.z' in 'where clause'
java.sql.SQLSyntaxErrorException: Unknown column 'x6.z' in 'where clause'
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:970)
at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:387)
at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java)
at slick.jdbc.StatementInvoker.results(StatementInvoker.scala:38)