tokuhirom's blog
  • [perl] Error in tempfile() using template /tmp/XXXXXXXXXX: Have exceeded the maximum number of attempts (1000) to open temp file/dir at hoge.pl line 14. のようなエラーが発生した場合の対処方法
    File::Temp を使っていると、表題のようなエラーが発生することがある。 これは一件すると、ファイルを開く処理が失敗した用に見えて、ファイル開き過ぎとかかなあと思うんだけど、実際はそういうことで
    2015-05-07(Thu)
  • [java] モダンな Annocation Processor の開発手順まとめ
    APT とは Annotation Processing Tool のことで、Java でコードの自動生成を行う際に利用される。 APT を利用すると、Java クラスやリソースの自動生成が可能となる
    2015-05-07(Thu)
  • jetty がログを出さないよって人
    jetty は slf4j が classpath にあると slf4j を使うようになる。 で、slf4j 使ってて logback で設定している場合、logback.xml の中で明示的に or
    2015-05-07(Thu)
  • maven で特定の module だけ処理させたくない。
    たとえば maven で multi module でプロジェクトを構築していて、開発用ツールが入っている module があるとする(localdev や devtools などという名前だったりす
    2015-05-07(Thu)
  • mvn の exec:java が終わるまでの時間が15秒ぐらい待ってて遅いってとき
    daemon thread の終了を待ってるせいで遅いっていう話があるんで雑に殺せば良いっていう気分のときは以下のオプションを与えればよい。 -Dexec.cleanupDaemonThreads=
    2015-05-07(Thu)
  • jetty で vhost でいい感じにアプリケーション動かしていく
    jetty で vhost 使う方法みたいな話が、意外と情報ない。 例えば、web 画面と admin 画面があるようなサイトで、実際には vhost を利用して運用したいという場合、一般的な id
    2015-05-07(Thu)
  • assertj 3.0.0 が良い
    Java 8 前提になっていて、非常に良い感じになっている。 Java 8 の Date & Time に標準対応した上に、様々なエンハンスメントが入っている。 中でも注目すべきは例外関連の機能追加
    2015-05-07(Thu)
  • GS Collections Kata をひと通りやった
    GS Collections というゴールドマン・サックスさんが出してる Java 用のコレクションライブラリがある。 Java Day Tokyo/JJUG CCC 2015 Spring で知った
    2015-05-07(Thu)
  • PMD をちょっと試した
    Java コードの品質を図るやつであると思うところの PMD をちょっと試してみたが、 検出項目が極めて微妙なんで諦めた。 PMD はネストした if 文をまとめろとか言ってくるが、そこは意味があっ
    2015-05-07(Thu)
  • gradle で maven central にあげる
    ちょっと前に gradle で maven central にあげようとしたら極めて困難な印象で挫折していたのだが、最近試したらすんなりといったのでご報告申し上げます。 単に gradle が難しい
    2015-05-07(Thu)
  • jetty.xml に関する雑感
    jetty.xml は、単にクラス定義を xml で書けるというもので、動的にすべてが行われる。 オブジェクトの定義をやるのを XML でやっている。 今ならば groovy でも使って書いた方がマシ
    2015-05-07(Thu)
  • Google Guice で system property の値を inejct したい
    `Names.bindProperties` 使おう! 任意の Module の中で以下のように設定する。 @Override protected void configure() { f
    2015-05-07(Thu)
  • 配列に要素を追加したようなやつをサックリ作る
    なんかこういうコードがあって冗長だな~ と思っていたんですが public static Optional<Path> which(String command) { final String
    2015-05-07(Thu)
  • Perl6 の DBIish わりと本当に動いていた
    ↓ のようにやったらちゃんと動いた。ちゃんと動くってすごい。 use DBIish; my $dbh = DBIish.connect("mysql", :host<localho
    2015-05-07(Thu)
  • perl 5.21.1+ で POSIX.pm が C99 functions を default で export する問題。
    Perl 5.21.1+ だと思うんだけど、POSIX.pm が C99 functions をサポートしていて、さらにそれを default で export してくる。具体的には round(
    2015-05-07(Thu)
  • InputStream から行単位でファイルを読み出したい時
    Java 8 では、`BufferedReader#lines` が定義されているのでこれを利用する。 `BufferedReader#lines` は、Stream<String> を返すので、その
    2015-05-07(Thu)
  • Files.lines() の返り値は try-with-resources で閉じる
    `Files.lines` は閉じていない BufferedReader を Stream に詰め込んで返すので、try-with-resources で閉じる必要がある。 The
    2015-05-07(Thu)
  • Paths.get(uri) について
    `Paths.get(uri)` で Path オブジェクトを取得可能だが、これはどんな URI をサポートしているのかという話。 結論からいうと `file://` 以外での利用は微妙。 `fi
    2015-05-07(Thu)
  • Shipped avans 0.37.0
    I shipped avans 0.37.0. It includes following exceptions: * Show full stack trace in full stack t
    2014-12-25(Thu)
  • maven archetype の作り方
    Java の世界では maven archetype を作成して、それを使って行うのが基本となっている。 なんだかめんどくさそうなので LL で生成していたのだが、やはりその LL のスクリプトをイ
    2014-12-25(Thu)
  • com.mysql.jdbc.PreparedStatement.executeUpdate が Can not issue executeUpdate() for SELECTs と言ってくる件
    com.mysql.jdbc を使っていて、executeUpdate で SELECT 文を発行しようとした場合、以下のような例外があがる。 ``` Caused by: java.sql.SQL
    2014-12-25(Thu)
  • Shipped routes 0.4.0
    Now, "/{x}" pattern allows '.', '-', '_'.
    2014-12-25(Thu)
  • avans アプリの処理フロー
    avans にかぎらず、java の web application 全般そうですが、 src/main/webapp/WEB-INF/web.xml がエントリポイントになっています。 最近では
    2014-12-25(Thu)
  • Validation Night で話してきた
    なんかしらんけどスライドアップしようとしたら slideshare に拒否られてるので悲しみ溢れております。 とりあえず思ってることをいくつか。 ## 相関バリデーションどうよ? ベーシックな単
    2014-12-25(Thu)
  • avans 0.39.0 における @QueryParam と @BodyParam の廃止について
    Avans に非互換の変更を入れます。 移行処置として、次のバージョンでは @Deprecated をつけた状態で一旦リリースします。その次のバージョンで削除します。 ## なにが問題か Ser
    2014-12-25(Thu)
  • json に値を直接書く話
    昔の JSON は Object か Array しかルートに書けなかったけど RFC 7159 では true/false/null/number/string を書けるようになってて便利だっておじ
    2014-12-25(Thu)
  • [java] Math.abs(Integer.MIN_VALUE) するとき
    Java において `Math.abs(Integer.MIN_VALUE)` は `Integer.MIN_VALUE` を返す。 MIN_VALUE が -2147483648 で MAX_VA
    2014-12-25(Thu)
  • JMX でシステムの状況をざっくり確認したい
    Perl の世界では、よく管理画面にヘルスチェック的な数字等を表示する機能を組み込みますが、Java の世界では JMX で見れるようにしておくのが一般的なようです。 <hr> JMX の使い方を
    2014-12-25(Thu)
  • IO::Socket::SSL のバグを修正する p-r を送った。
    `Can't locate object method "blocking" via package "GLOB"` っていうエラーがでてこまったんで、適当にパッチかいておくりつけました。 Fu
    2014-11-28(Fri)
  • AngularJS で Controller の継承をしたい
    したいなっておもって、Google で検索したところ、stackoverflow で [Can an AngularJS controller inherit from another contoll
    2014-11-28(Fri)
  • テストについての個人の雑感
    テストについての個人の雑感です。ここでいうテストってのは、なんかいわゆる開発をドライブするための開発者用のテストについてであって、品質の保証とかについては一切かんがえてません。 ## ざっくりいうと
    2014-11-28(Fri)
  • Perl で簡単にパーザを書く
    パーザを書こうという場合、Parse::RecDecsent のようなモジュールを使うのが一般的だが、Perl5 の正規表現は強力すぎるため、そんなものに頼らなくても超絶簡単にパーザを実装することが可
    2014-11-28(Fri)
  • rakudo + MoarVM を試す
    rakudo + MoarVM を試す
    2014-11-28(Fri)
  • Perl6 でディレクトリの中身を列挙する
    for dir("/tmp/") { .Str.say } でよい。 .Str が必要なのは、わたってくるのが IO::Path のインスタンスだからです。
    2014-11-28(Fri)
  • java.util.Properties についての雑記。
    * * Java の java.util.Properties のフォーマットでつくられたファイルをつかいたくなるときがあると思います。 そんなときには、Key に空白をふくめられるのかど
    2014-11-28(Fri)
  • Shipped Localizer 0.01
    Abstract: I released yet another localizetion library for us(me and co-workers). Localizer というモジュ
    2014-11-28(Fri)
  • DBD::mysql の async について
    並列にバンバン処理するかっこいい機能がついたわけではなく、だいぶアドホックな実装になっている。 mysql client として考えた場合に処理が遅いのは、DB サーバーの I/O や集計処理で、デ
    2014-11-28(Fri)
  • anton & giton
    ## giton について giton ってのかいた。 git submodule で github においてあるモジュールをインストールしようとしてたけど、ln でリンクはったりするのがめん
    2014-11-28(Fri)
  • Date::Simple が local $ENV{TZ} をさしかえててタイムゾーンがかわっちゃう件
    `Date::Simple#format` が内部で local $ENV{TZ}='UTC+0'; POSIX::strftime(...); のようにしており、`Date::S
    2014-11-28(Fri)
  • Perl 5.19.9 で実装された signatures の構文をためしてみる
    use 5.019009; use autodie; use feature 'signatures'; no warnings "experimental::sig
    2014-11-28(Fri)
  • MY_CXT_KEY is no longer used by current Perl5 implementation
    We met a strange bug around XS. This issue does not appear on recent Perl5 implementations. ... I
    2014-11-28(Fri)
  • Module::Spy - Spy for Perl5
    I released the new great [Module::Spy]( Repository is now on [github.com/tokuhirom/Module-Spy.git](
    2014-11-28(Fri)
  • Re: 「切り捨て」に int() は使うべからず
    遅レスだけど、精度がいらなくて floor() になろうが ceil() になろうがどっちでもいいなって時には int() を別につかっても構わない。 floor() ceil() のどちらかに
    2014-11-28(Fri)
  • [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 がいいのかな
    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)
Prev
Next
© tokuhirom