tokuhirom's blog
[perl] コントローラがどのテンプレを表示したかをテストする
Module::Spy をつかう。 my $render = spy_on('Text::Xslate', 'render'); # コントローラをよぶ ...;
2014-11-28(Fri)
Added experimental cookie_jar support in Furl
Hi, I added experimental cookie_jar support in Furl. You can use cookie_jar like following code:
2014-11-28(Fri)
Released Web::ChromeLogger
Web::ChromeLogger is a ChromeLogger library for Perl5. Chrome Logger is a Google Chrome extension
2014-11-28(Fri)
Shipped scan-prereqs-cpanfile 1.00
scan-prereqs-cpanfile is using Perl::PrereqScanner::Lite instead of Perl::PrereqScanner now. This ch
2014-11-28(Fri)
How do I install Memcached::libmemcached on OSX.
Extract tar ball and cd to src/. And call `./README 1.0.18`. Then, it downloads tar ball from bitb
2014-11-28(Fri)
Devel::MemProfile つくったけどオクラ入りにした話
B::Size2::Terse と Devel::Symdump を使ってメモリをプロファイルしようとしたんだけど、パッケージに紐づくやつしか見れないから、やっぱあんま意味ないなということでお蔵入り。
2014-11-28(Fri)
オープンソースのフレームワークとサポート期限
オープンソースのウェブアプリケーションフレームワークで、ある程度ユーザーベースが大きい場合には、対応パッチなり、ウェブアプリケーションファイヤーウォールのルールなりなんなりが広く公開される事が多いので
2014-11-28(Fri)
DBD::mysql の quote_identifier の挙動
mysql.xs のこのへんを参照のこと。 case SQL_IDENTIFIER_QUOTE_CHAR: /*XXX What about a DB sta
2014-11-28(Fri)
JSON-RPC 2.0 の over HTTP についての雑感
「うちは JSON-RPC やらんのかね」みたいなことを聞かれたので、前に考えた内容をここに晒す。 ## method 名について メソッド名が content-body にしか入らないので、ログ
2014-11-28(Fri)
daemontools とかでログ見てる時に途中で tail -f の結果が流れなくなる時の対処方法
`tail -F` 使う。
2014-11-28(Fri)
go で ukigumo-server にテスト結果を送る
なんかこういう感じで書けば良さそう。このコードを530倍ぐらい発展させれば Perl の Ukigumo::Client と同じのができると思う。 golang で書けば、セットアップが簡単になるから
2014-11-28(Fri)
js-xlsx で js で excel のファイルを生成する
Excel ファイルの生成、めんどくさいですよね。CSV の生成めんどくさいですよね。HTML を出力した上でさらにやるのはだるい、というわけで、HTML の DOM を解析して JS で XLSX
2014-11-28(Fri)
golang で lint したいのですが?
golint を使おう。 golint かけると、それなりにコミュニティの空気を読んだ感じのコードがかけるらしい。 つかわない理由がないので、使った方がいい。
2014-11-28(Fri)
Groovy を Android で使った場合の得失について
Groovy が Android をサポートしたということのメリットについて考えて見る。 Android アプリの開発においても、できるだけコンパイル時にエラーを検出したいので、@CompileSt
2014-11-28(Fri)
Java のプロファイラは visualvm がいいのかな
2014-11-28(Fri)
xlsx ファイルを git diff しやすくする為の天才的な wrapper script を go に移植した
とりあえずこれ、Perl とか使うだけで発狂するわけでもないけど、golang に移植した。mattn さんとか他の人もやってそう。 以下、感想。 * golang で可変配列使うの、co
2014-11-28(Fri)
Caliper1.0-beta1 が guava 17.0 と conflict してる気がする
Benchmark.pm みたいなやつの Java 用のやつないかな、と思って探したところ、google の人が出してる caliper ってのが良さそうだった。 しかし、Caliper が古い g
2014-11-28(Fri)
Java で HTML Escape とかのベンチマーク
なんとなくとってみた。結局 Caliper でとった。guava が意外と速いんだなあ。 ``` package me.geso.javaMicroBenchmarks; import java.
2014-11-28(Fri)
golang で JSONPath 的にデータ取り出したいときは @mattn_jp の go-scan が便利
golang で net/http とってきて JSON を parse して所定のキーを取り出すプログラムを書きたかった。 こういう場合、JSONPath とか使って書きたいのだが、JSONPath
2014-11-28(Fri)
cpan-repository command.
I wrote cpan-repository command. It shows CPAN repository URL from module name. ## SYNOPSIS
2014-11-28(Fri)
nanobench - Java 8 で簡単にマイクロベンチマークをとれるフレームワーク作った
Caliper や JMH などを試してみたが、案外あれは使うのが難しかったり、インストールが難しかったり、結果がよみづらかったりする。 Perl 5 に標準添付されているベンチマークフレームワークで
2014-11-28(Fri)
Parallel::Prefork で子プロセスが死なない場合の対応方法
殺しても死なない子は念入りに殺す必要があるし、死なないなら死なないで死んでないことを記録に残しておく必要がある。 infof("[%d] Worker exiting...", $$);
2014-11-28(Fri)
Dropwizard のサブコマンドを実装する方法
Dropwizard で作られたアプリケーションは java -jar Hello-0.0.1-SNAPSHOT.jar server production.yml ja
2014-11-28(Fri)
Dropwizard+Hibernate で発行したSQLをログに出力する
DBIx::QueryLog のように、発行したSQLを直接みたいな、と思ったりしたわけですが、それは以下のように行えばよいようだ。 database.properties に hibernate.
2014-11-28(Fri)
JPA2 の @GeneratedValue について
JPA2 ではすべての entity に id がふられている。その id の採番方式は選択することができる。 @GeneratedValue(strategy=GeneratedValue
2014-11-28(Fri)
Java8 Stream API では collector とかを複数回呼ぶと実行時エラーになる
以下のようなコードは、実行時エラーになる。 Stream<String> ss = Arrays.asList("hoge", "fuga").stream(); System.ou
2014-11-28(Fri)
Lingua::EN::Inflect みたいなのを Java でやるには Evo Inflector を使う
System.out.println(English.plural("word")); // == "words" とかやればいいので楽。
2014-11-28(Fri)
Java 8 で例外を投げていることをテストしたい
特定の条件で例外を投げるコードを書いたときに、それをテストしたい。なんてときがある。 このクラスの例外があがってるってことだけ判断できればいいんだけどな、ぐらいのゆるい条件のとき。 そんな時は以下の
2014-11-28(Fri)
cv ってコマンドが面白い
procfs で他のプロセスの seek 位置をみることで、進捗状況を外からモニタリングするツールとのこと。
2014-11-28(Fri)
nanobench のインターフェース変えた
lambda 使わないほうがいいんじゃない?という意見を kazuho さんから頂いたので、使わないようにしてみた。 lambda 使わない方がデバッガで追いやすいというのは一理あるので、それもまたい
2014-11-28(Fri)
Java で Regexp::Assemble のように効率的な正規表現を文字列のリストから組み立てる
[graph-expression]( ってやつに入ってる RegExpUtils ってのを使うと出来ます。 (サンプルコードは groovy) #!/usr/bin/env groovy
2014-11-28(Fri)
groovy の grapes がうまくいかないときのデバッグ方法
groovy -Divy.message.logger.level=4 -Dgroovy.grape.report.downloads=true examples/synopsis.groov
2014-11-28(Fri)
Regexp::Trie を java に移植した
Regexp::Assemble っぽいことをするには graph-expression に入ってるやつを使えばいい、という話は[昨日書いた]( のですが、生成コードがあまり綺麗ではないし、まあ今
2014-11-28(Fri)
Split Amon2::Plugin::Web::CSRFDefender from core distribution.
## 1. Amon2::Plugin::Web::CSRFDefender was removed from Amon2 core distribution. Amon2::Plugin::Web
2014-11-28(Fri)
Karabiner の private.xml を設定した
Realforce 買ったので private.xml を書いた。 private.xml を書くと、MBP 本体のキーボードと外付けキーボードとの間で別の設定ができるようになるし、設定を複数の環境
2014-11-28(Fri)
cpan-outdated 的なことを maven でやりたい
mvn versions:display-dependency-updates でできる。コアなやつなので、pom.xml をいじらなくても使える。便利。
2014-11-28(Fri)
jackson で JDK8 の Optional をうまく扱ってほしい
jackson では JDK8 の Optional にまだ対応していません。 Jackson 自体が JDK6 をサポートしているので、コアのデータバインディングに入ることはないのですが、それにして
2014-11-28(Fri)
[Security Notice] Amon2, HTTP::Session2 security updates
Last week, I shipped Amon2 and HTTP::Session2 includes security fix. ## [Must] Update "secret" if y
2014-11-28(Fri)
Apache HttpClient で Content-Body を String として得る
public String getContentBody(CloseableHttpResponse res) { ByteArrayOutputStream stream =
2014-11-28(Fri)
「Javaとベンチマーク」というタイトルでJJUG ナイト・セミナー 「ビール片手にLT&納涼会」で話してきたよ~
<iframe src="//www.slideshare.net/slideshow/embed_code/38248472" width="427" height="356" frameborde
2014-11-28(Fri)
なぜ Teng は良いものなのか
なぜ Teng は良いものなのか、を YAPC で再考させられたのでここにメモしておく。 Teng は自社開発のウェブアプリケーションを作ってる人たちが作っていて、それがうちのニーズにあってるのでい
2014-11-28(Fri)
pom.xml から classpath を生成するやつ(cache 機能つき)
pom.xml で指定した依存関係を読み込んだ状態で、いい感じに起動させたい、みたいなことがよくある。しかし、都度 maven から起動するのもめんどくさいし、`mvn exec:java` はさまる
2014-11-28(Fri)
Perl 初心者がウェブアプリケーションを書く時に気をつけるべきこと
$c->req->param('id') みたいなメソッドは使ってはいけない。これは歴史的経緯から残っているものなので、基本的に使わない方がいい。 $c->req->paramet
2014-11-28(Fri)
How do I write pretty print JSON filter with Jackson?
byte [] bytes = ...; ObjectMapper mapper = new ObjectMapper(); mapper.enable(Serializati
2014-11-28(Fri)
YAPC::Asia 2014 で Test::Kantan というライブラリについて発表してきました
<iframe src="//www.slideshare.net/slideshow/embed_code/38911119" width="427" height="356" frameborde
2014-11-28(Fri)
Java 8 Stream API で Immutable な List を作成する
data.stream().collect(Collectors.collectingAndThen(Collectors.toList(), Collections::unmodifiabl
2014-11-28(Fri)
Java なウェブアプリのテストをするための mech というライブラリを書いていた
@Test public void testGoogle() throws Exception { try (Mech mech = new Mech(" {
2014-11-28(Fri)
Java で lazy なアクセサを書きたい
それ lombok でできるよ。 import lombok.Getter; public class GetterLazyExample { @Getter
2014-11-28(Fri)
Eclipse が起動しなくなった
なんかしらんけど起動しなくなった。Eclipse が起動しなくては仕事にならないということで調べたところ、Windows 上での情報が多くて辛かった。結局、以下のコマンドでかいけつ。 rmt
2014-11-28(Fri)
[java]インターフェースにArrayを露出させた場合の話
Java の世界ではプリミティブな配列が存在している。 プリミティブな配列は速度が List などと比べると圧倒的に速いのでついつい使いたくなる。 しかし、Java 言語では immutable な
2014-11-28(Fri)
Content-Security-Policy と nonce の話
Content-Security-Policy の nonce を利用すると、XSS の脅威をかなり軽減できます。 そこで、Web Application Framework ではデフォルトで対応し
2014-11-28(Fri)
LL から Java に移行した人がはまりがちなこと
こんにちは。Java 初心者です。 Java 初心者、得に LL から Java に来た人にありがちな問題について社内向けに書いたものをオープンアンドシェアさせていただきます。 前提として、我々は
2014-11-28(Fri)
[ruby] readline がなくて後から入れたい時
readline ライブラリは ruby の標準ライブラリなはずだけど入ってない環境もあるので gem install rb-readline しておく必要がある。
2014-11-28(Fri)
[ruby] スクリプトの実行結果をログファイルに書く
Ruby で書いたスクリプトの実行結果をログファイルに残したい。しかし tee とかでトルのもめんどくさい。 そんな時は ruby の STDOUT/STDERR をロガーのパイプに置き換えてしまえば
2014-11-28(Fri)
[java] SecureRandom のアルゴリズムの選択について
# 前提 Java SE 8 + Linux 前提です。 # Java で暗号的に安全な乱数をえる Java で暗号的に安全な乱数を得るには SecureRandom クラスを利用します。 Se
2014-11-28(Fri)
avans 0.34.0 出した
avans の 0.34.0 を出した。 クエリパラメータが足りていない場合などに例外をあげていたのだが、例外的な状況じゃないので、エラーレスポンスを真面目に返すようにした。
2014-11-28(Fri)
[java] webscrew に basic auth header のパーサーつけた
表題の通りです。 avans で Authorization header をパースするのがダルいので、一応そのへんの機能をつけた。 (webscrew とは web application を作
2014-11-28(Fri)
Yosemite にしたら AppleScriptEngine.jar がどやこやで Eclipse でコンパイルできなくなった。
から Java for OS X 2014-001 を入れたら治った。よかった。
2014-11-28(Fri)
tinyorm 0.28.7 がでてます
`SELECT ~ FOR UPDATE` と `INSERT ~ ON DUPLICATE KEY UPDATE` の2つの機能が実装されてます。 <S>この2つは、mysql 特有のクエリですが、
2014-11-28(Fri)
Shipped router-simple 0.16
Added `directory_slash` option by @fayland++. It works like Apache's DirectorySlash option.
2014-11-28(Fri)
Prev
Next