Perlのシグナルハンドラ
シグナル受信時実行するサブルーチンの設定
$SIG{シグナル名} = サブルーチン名;
シグナル受信時の動作をデフォルトに戻す
$SIG{シグナル名} = 'DEFAULT';
シグナルの受信を無視
$SIG{シグナル名} = 'IGNORE';
シグナルの一部
SIGINT: interrupt, Ctrl+Cによる中断
SIGTERM: termination, killコマンドのデフォルトシグナル
SIGALRM: alarm, alarmで設定した時間が経過
10秒経つ前にCtrl+C押した場合、即座に終了せずループを抜けて終わる例
use 5.018; use strict; use warnings; use utf8; my $stop = 0; $SIG{INT} = sub { $stop = 1; }; print "start"; for (1..10) { sleep(1); print "sleep:$_"; if ($stop) { last; } } print "end";
plantumlにて日本語入れたら死んだ
$ java -jar plantuml.jar example.uml Error line 10 in file: example.uml Some diagram description contains errors
エンコーディングを指定したら通った
$ java -Dfile.encoding=UTF-8 -jar plantuml.jar example.uml
URLスキームによるAndroid/iOSアプリ起動
Android/iOS共通のURLスキーム
{app_scheme}://{controller}/{action}?{query}
ex:
example_app://api/login?login_id=user1
Android/iOSの双方で起動可能
ただしアプリが未インストールだと何も起きない悲しみに包まれる
未インストールならばストアに遷移させたい
これを実現するならば、
- URLスキームへ遷移
- 一定時間遷移出来ていない場合、ストアURLへ遷移
みたいな感じに
Android専用のURLスキーム
intent://{controller}/{action}?{query}#Intent;package={package};scheme={app_scheme};end;
ex:
`intent://api/login/login_id=user1#Intent;package=com.example.exampleapp;scheme=example_app;end;
これに遷移するだけでアプリがインストールされてれば起動、
なければストアで遷移してくれる、スゴイ
入社した
4月になったから新社会人マンになった