tokuhirom's blog
俺がレビューコメントでよくつけるやつ
基本的にメンバーは良いコードを書くという前提で暮らしています。 * 良いと思います。テストがあるともっと良いと思います。 * 変更が軽微で、まあテストなくてもいいけど、あったほうがより良いよねえ、
2016-08-04(Thu)
spring boot + embedded tomcat で async request を graceful shutdown する
graceful shutdown 厨みたいになってますが、まあいいとして。。 embedded tomcat はちょっと見た感じ async request を綺麗に graceful shutdo
2016-07-30(Sat)
undertow と graceful shutdown と
undertow を利用する予定は特にないのだが、undertow だと graceful shutdown はどのように実現可能なのだろうか、ということが気になったので調べてみました。 ここでいう
2016-07-27(Wed)
hs_err_pidの生成タイミング
hs_err_pid は、jvm がクラッシュしたタイミングで生成されるが、実際どのようなタイミングで生成されるのかという話。 の report_and_die で生成されているとのこと。 VM
2016-07-22(Fri)
mybatis の mapper を groovy で書くぐらいなら kotlin でも良いのではないか
* * mybatis の xml は painful なので、groovy で書く、というライフハックがあるようです。 これはとても良いハックなのですが、最近の情勢を考えると、groovy よ
2016-07-20(Wed)
jailing を golang に移植した
なぜ golang に移植したかというとまあ以下のような理由です。 * capabilities で制御したかった * jailing は perl で記述されているために、setuid/se
2016-07-17(Sun)
OSS版 Ansible Tower alternative である Ansible Semaphore を試したぞ!
2016-06-25(Sat)
circleci_ikachan を書いた
circle ci の webhook を受け取って、ikachan に forward するやつです。 ちょっと必要だったので書きました。 今回は、go で書いてみました。
2016-06-24(Fri)
Promgen talk - Prometheus casual talks
I promoted promgen, a prometheus configuration management console web app at Prometheus Casual Talks
2016-06-17(Fri)
How do I display custom element with IncrementalDOM?
Incremental DOM is great library to build dynamic DOM tree. If you want to build DOM tree contains
2016-06-14(Tue)
x-tag で delegate しているときに root element を取得する方法
``` xtag.register('x-foo', { content: '<input /><span></span>', events: { focus: function(
2016-06-06(Mon)
spring-data-elasticsearch について
ES 2 が出てから半年以上経過しているにもかかわらず 2 対応がされていない。 クエリをすべてラップしているために 2 対応がなかなか難しいのだと思う。 Elasticsearch の場合、
2016-06-03(Fri)
[prometheus][java] Added Spring Boot Metrics integration to Prometheus' simpleclient_java
I sent p-r for client_java repository ... I want to export spring boot metrics to simpleclient_ser
2016-05-26(Thu)
[golang] json_path_scanner 書いた
JSON を読み取ったデータ構造を食わせると、「JSON Path」と「値」のペアのリストを得られるというやつ。 すでにありそうだったけど見当たらなかったので書いた。
2016-05-22(Sun)
[prometheus] apache_exporter なおした
Prometheus で apache を監視するための agent として apache_exporter があるが、これが全く動いてなかったので、動くようになおしておきました。
2016-05-18(Wed)
[ruby] 10s 10m みたいな文字列から秒数を求めるには chronic_duration を使う
なにかの実行間隔のような設定がある場合、chronic_duration を利用してパースすることができる。 実行例は以下の通り。integer をそのまま渡すとエラーになるので、integer
2016-05-17(Tue)
sequel の migration に関するメモ
Sequel には migration 機能がついている。これを利用するには以下のようなファイルを作成する。 ``` Sequel.migration do change do crea
2016-05-15(Sun)
個人的な grafana に対する不満トップ3
# Editable をオフにすると戻せない > You can make it editable again using the Save As... feature and enter the
2016-05-10(Tue)
CPU の system が妙に高いぞって時に犯人さがすには pidstat 使えば良い。
`pidstat -h -u | sort -nr -k 5,5 | head` すれば良い。 `sudo yum install -y sysstat` してインストール。 簡単に誰が syst
2016-05-10(Tue)
blog のバグを直した
ブログシステムをうっかり書き直したらちょっとバグってたので直した。 * ctime/mtime を timestamp で保持していたが git なので保持されてなくて死んでたのでファイルの中に c
2016-05-09(Mon)
[java][linux] Java の各プロセスのスレッド数を得るワンライナー
``` jps -l | ruby -ne 'pid, cmd = $_.chomp.split(/ /); puts pid + "\t" + File.read("/proc/#{pid}/sta
2016-05-09(Mon)
javaagent として動く java のサンプラを書いた
java アプリケーションのサンプリングを簡単にやるための簡単なライブラリを書いた。javaagent の習作的なやつです。 たんに、定期的に `Thread.getAllStackTraces
2016-05-09(Mon)
[docker] alpine linux を使うなら gosu じゃなくて su-exec で良い
gosu という setuidgid みたいなツールがあるが、よく README を読むと When using Alpine, it's probably also worth check
2016-05-08(Sun)
Java mixed-mode flame graphsについてのメモ
2016-05-08(Sun)
gradle が混乱したときにとにかく念入りにキャッシュ消したい時にうつコマンド
gradle を使っている時に、変なライブラリを依存に加えた結果、依存関係が混乱し、どうにもならなくなるときがある。 そんな時は設定を戻してから以下のように打てば、とにかくキャッシュは消えて、とりあえ
2016-05-02(Mon)
Freemarker でテンプレート書くときに、Freemarker tag っぽいのを出力したい
`${r"${person.name}"}` で OK. see. r"" は python と同じく raw string を表す。
2016-05-02(Mon)
Spring Boot とファイルアップロード
File upload のサンプルがこれ。 このへんによると、 ``` multipart.location specifies the directory where files will
2016-05-02(Mon)
gradle で maven central にリリースできた。
こちらを参考にしてやったら簡単にできた。 tagomoirs++ ``` // releng: gradle clean && gradle uploadArchives -Prelease
2016-05-02(Mon)
Spring の ConfigurationProperties を kotlin で使う
以下のように、`open class` にすれば良いらしい。kotlin のクラスはデフォルトで final 指定がつくので、open 指定しないとダメな様子。 ``` @Configuration
2016-05-02(Mon)
fluentd を手元で動かしてデバッグしたいとき
以下のようにして fluentd をインストール。 gem install fluentd --no-ri --no-rdoc /etc/fluent/fluent.conf に以下のよう
2016-05-02(Mon)
[spring] spring mvc で、一部のコントローラは先に処理させたい時のライフハック
/{user_id} はエンドユーザーのページだけど、 /entrylist は entry の list が出る、みたいな、ちょっと アレな URL 設計になってしまったサイトを spring m
2016-05-02(Mon)
Spring の Freemarker で参照可能な変数について
Spring で freemarker を利用している場合、いくつかの変数がデフォルトで利用可能になっている。 ``` protected SimpleHash buildTemplateMode
2016-05-02(Mon)
spring で controller 書くほどでもないんだけどテンプレートエンジンでレンダリングして欲しい時のやり方
addViewControllers ッテの使うと良いっぽい。 ``` @Configuration @Slf4j public class WebConfig extends WebMvcConf
2016-05-02(Mon)
oh-my-zsh やめて zplug にしようかと思ったけどやっぱり zgen にした
mput さんの記事→ を見て、zplug というものの存在を知った。 zplug を設定しようと思ったが、そもそも zsh の設定をこまごまとやるのがあんま好きじゃないし、コマンドのインストール
2016-05-02(Mon)
spring boot アプリケーションのMetrics値取得について
# Spring boot の metrics 機能について spring boot には metrics 機能が標準でついている。metrics では Counter と Gauge の2種類のメ
2016-05-02(Mon)
jspm で angular2 を使ってみる。
jspm+systemjs を angular2 では推してるっぽいし使ってみるかとおもって使ってみるとなかなか一筋縄ではいかない。 ベータ! という感じがしてよい。 そういうわけで、jspm+sy
2016-05-02(Mon)
How do I set TemplateExceptionHandler with spring-boot+freemarker?
You should use one of following properties. -Dspring.freemarker.template_exception_handler=reth
2016-05-02(Mon)
dropwizard metrics servlet で spring-boot app のメトリクスをいい感じに取得する
spring-boot の MetricsFilter はしょぼい。ステータスコードごとのリクエスト数のカウンタと、最後にアクセスされたリクエストの処理時間ぐらいしか取得できない。 これは不便。Dr
2016-05-02(Mon)
aspectj の post compile weaving を gradle で行う方法
spring boot の起動が極めて遅くて辛いなと感じていたところ、どうやら spring aop が極めて多くの時間を浪費しているということが判明した。 spring aop をオフにすると起動時
2016-05-02(Mon)
spring-boot のメトリクスデータを graphite に送る
2016-05-02(Mon)
rxjava で peek() みたいなことしたい
java8 stream api でいうところの peek をするには doOnNext を利用すればよい。
2016-05-02(Mon)
Alfred のワークフローを Perl で書きたい!
なんか Alfred2 を久々に使い始めている。 最近は IDE で生活する時間が長いので、terminal を開いてそこから peco を開いてみたいなことをするよりは、Alfred2 からサ
2016-05-02(Mon)
ansistrano について
Ansible 上で capistrano 的にデプロイできるようにするというプロジェクトがある。 これは一見良さそうだが、設定を真面目にやっていくと、同等のことを自分で手で書くのと同程度に大量の
2016-05-02(Mon)
【解決済み】jackson 2.7 以後は @ConstructorProperties を参照するようになっているので、lombok を使っている場合に何も考えずにアップグレードすると死ぬ
Jackson 2.7 がリリースされていますが、このバージョンから @ConstructorProperties を参照するようになっています。 See * * @java.beans
2016-05-02(Mon)
spring mvc の interceptor のパスマッチャのやつ
Spring mvc の interceptor ってやつ。hook みたいなやつ。以下のようなパスの設定ができる。 excludePathPatterns の設定だけだと動かないとかいう説もあって、
2016-02-06(Sat)
Harriet 0.05 released.
shipped.
2016-02-06(Sat)
Spring Boot で redirect: とかなってるやつを自分で拡張したい
通常の Spring Boot では `redirect:/` とか書くと、Moved Temporaly になるけど Moved Permanently 返したいときがある。 そんなとき、以下のよ
2016-02-06(Sat)
spring boot でテスト書いてたら 403 になって、csrf filter に引っかかってるぽくていらっとしたときの対策
``` @Before public void setUp() throws Exception { mockMvc = MockMvcBuilders .webApp
2016-02-06(Sat)
spring の MockMVC で通信結果をダンプしたいとき
mockmvc.perform(get("/")) .andDo(log()); とかしとけばいい。 .andDo(print()); のほうが、確実に出
2016-02-06(Sat)
spring boot で、テスト時だけ読ませたい @Configuration があるとき
なんかよくわからんけど @ContextConfiguration 指定すると @SpringApplicationConfiguration が処理されなくなるのかな。よくわからんけど。 なので
2016-02-06(Sat)
Java で method_missing したい。
Java で method_missing したいというのは、テストを書いているときによくあるケースである。 Mockito など利用すればいいのだが、その中身が気になってしまうのが、エンジニアの性で
2016-02-06(Sat)
Ported Cookie::Baker to Perl6
I ported @kazeburo san's great Cookie::Baker to Perl6. This is my third module for Perl6 ecosyste
2015-12-19(Sat)
Raw::Socket was retired.
I removed raw-socket from ecosystem. Because I had misunderstood the behavior of IO::Socket::Async
2015-12-19(Sat)
Getopt::Tiny for Perl6
Hi, I shipped Getopt::Tiny for Perl6's ecosystem. You can install it by panda command: panda
2015-12-19(Sat)
Shipped full featured Plack clone for Perl6 named `Crust`
Hi, i'm tokuhirom, one of the core developer of Plack. During the past few weeks, I've been hack th
2015-12-19(Sat)
«を入力する方法»
Perl6 ではよく `$<pairs>».made` などと入力するシーンがあるが、これの入力方法はわかりづらい。 この記号は Guillemet と呼ばれていて、まあ ASCII の範囲外なので普
2015-12-19(Sat)
WebSocket with Perl6
Yay, I released WebSocket.pm on ecosystem. You can write a WebSocket server very easy! Here is an e
2015-12-19(Sat)
Perl6 でリストから無限リストをつくる
## 問題 `my @a = <yellow red green>` のようなリストから `'yellow', 'red', 'green', 'yellow', 'red', 'green', ..
2015-12-19(Sat)
Perl6 のフィボナッチ数列生成についての解説
mattn ブログで紹介されている Perl6 のフィボナッチ数列が奇妙に見える人が多いようなので、まともな解説。 ref. フィボナッチ数列とは以下のような数列です。 1, 1, 2
2015-12-19(Sat)
Perl6 における イテレータの挙動のメモ
Perl6 のイテレータは、role Iterable を実装しているクラスから取得することができる。 Iterable には `iterator` メソッドが実装されていて、これを取り出せばよい。
2015-12-19(Sat)
Prev
Next