Skip to content

Instantly share code, notes, and snippets.

@koki-h
koki-h / boot_chronium.sh
Last active February 16, 2019 11:39
chroniumをキオスクモードで起動する
#ディスプレイ番号を指定すれば別のコンソールからも起動可能
# cronの @reboot に書けば自動でブラウザ起動
DISPLAY=:1 chromium --kiosk
@koki-h
koki-h / mov2mp4.sh
Last active May 29, 2018 13:21
movからmp4へ変換(acodecは指定しなくても大丈夫そう) ref: https://stackoverflow.com/questions/12026381/ffmpeg-converting-mov-files-to-mp4
ffmpeg -i in.MOV -vcodec copy out.mp4
@koki-h
koki-h / diff_dir_every.rb
Created April 19, 2018 07:53
2つのディレクトリ名を受け取り、それぞれの中にある同名のファイルのdiffを取る
dir1 = ARGV[0]
dir2 = ARGV[1]
Dir.glob("#{dir1}/*").sort.each do | file |
filename = File.basename(file)
puts "#{file} vs #{dir2}/#{filename} :"
puts `sdiff -bBWs #{file} #{dir2}/#{filename}` #side-by-sideで差分のある行だけを表示
end
@koki-h
koki-h / parse_swift_time.php
Last active February 23, 2018 04:49
swiftのtimeIntervalSinceReferenceDateで生成した日付数値をphpでパースする
<?php
// SwiftのtimeIntervalSinceReferenceDateは'2001-01-01 00:00:00 UTC'からの経過秒数を返すため
// phpでは'2001-01-01 00:00:00 UTC'のUnixタイムを加算して日付に変換する。
// see: https://developer.apple.com/documentation/foundation/nsdate/1417376-timeintervalsincereferencedate$reference_time = strtotime('2001-01-01 00:00:00 UTC');
$reference_time = strtotime('2001-01-01 00:00:00 UTC');
$swift_time = 541047955; //example
$d = date("Y/m/d H:i:s",$swift_time + $reference_time );
var_dump($d); //string(19) "2018/02/23 03:05:55"
@koki-h
koki-h / parse_swift_time.js
Last active February 23, 2018 04:48
swiftのtimeIntervalSinceReferenceDateで生成した日付数値をjsでパースする
// SwiftのtimeIntervalSinceReferenceDateは'2001-01-01 00:00:00 UTC'からの経過秒数を返すため
// jsでは'2001-01-01 00:00:00 UTC'のUnixタイムを加算して日付に変換する。
// またjsでは時刻をミリ秒単位で扱うので注意を要する。
// see: https://developer.apple.com/documentation/foundation/nsdate/1417376-timeintervalsincereferencedate
process.stdin.resume();
process.stdin.setEncoding('utf8');
// Your code here!
var reference_time = Date.parse('2001-01-01 00:00:00 UTC');
var swift_time = 541047955; //example
var d = new Date(swift_time * 1000 + reference_time);
@koki-h
koki-h / h2_select.rb
Created February 8, 2018 08:55
H2DBにSELECT文を発行して結果をファイル出力
dir = ARGV[0]
dbs = %w(d1 d2) # 複数DBに対して処理をする
tables = %w(t1 t2 t3)# 複数テーブルに対して処理をする
dbs.each do |d|
db_name = "./dir/#{d}" # DBファイル名から拡張子を除いたもの
puts db_name
tables.each do |t|
sql = "select * from #{t}"
# h2.jarは http://repo1.maven.org/maven2/com/h2database/h2/1.4.185/h2-1.4.185.jar
@koki-h
koki-h / rsync_under_deathmarch.rb
Last active January 30, 2018 02:43
同期元ディレクトリにファイルが次々に追加される中、rsyncするとどうなるか
# Ctrl-Cで止めてください
# bashで以下を実行すると同期元と同期先の差分が調べられます。
# diff <(ls -l src/) <(ls -l dst/)
require "fileutils"
include FileUtils
mkdir_p("src")
mkdir_p("dst")
t1 = Thread.start do
while true do
@koki-h
koki-h / sort_diff.sh
Created January 25, 2018 05:39
2つのディレクトリに存在する同名のファイルを中身をソートして比較する
function sort_diff() {
filename=$1
echo $filename
sort dst/$filename | (sort src/$filename | diff /dev/fd/3 -) 3<&0
}
sort_diff sample.txt
@koki-h
koki-h / hms2s.rb
Last active January 22, 2018 02:26
時間のhms表記を全て秒に換算する
times = [
"02h 37m 59s",
"18m 43s",
"09s",
"09s",
"09s",
"09s",
"09s",
"09s",
"09s",
@koki-h
koki-h / application_record.rb
Last active July 12, 2017 09:47
複数項目が関連するエラーを発生させた時、メッセージは1つで良いが複数項目に色をつけたい場合は app/models/ 配下を以下のようにする。
class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
# Validationエラーの時、メッセージは出したくないが、フィールドに色はつけたいので
# errors.add()でメッセージ部分にnilを入れた時はfull_messagesでメッセージが返らないようにした。
class ActiveModel::Errors
def full_messages
map { |attribute, message| full_message(attribute, message) if message }.delete_if{|message| message.nil?}
end
end