tokuhirom's blog
[Perl6] how do i debug if got an exception from internal methods
I got a `Cannot use a Buf as a string, but you called the Stringy method on it` excetption. It come
2015-09-28(Mon)
[perl5] Shipped HTTP::MultiPartParser for Perl6
I ported @chansen's HTTP::MultiPartParser to Perl6. You can parse multipart/form-data content ver
2015-09-28(Mon)
[mac][osx][java][mysql] JDBC で mysql につなごうとしたら "Communications link failure" のエラーが出るとき
gradle でテストを動かしていたら、途中で JDBC が "Communications link failure" と言って死ぬ場合がある。 これは com.mysql.jdbc.excepti
2015-09-28(Mon)
Linux 上で5秒で chroot jail を使えるコマンド「jailing」が凄い!
<p style="font-size:300%"><blink><a href=" style="color:red;font-weight:bold;text-decoration: underl
2015-06-02(Tue)
OSX で getgrent(3) を呼ぶと、同じエントリが二度でるように見える
有効なグループのリストを得るには、`getgrent(3)` を呼べばいいが、この関数 OSX だと奇妙な動きをする。 perl -E 'while (@e=getgrent) { say
2015-06-02(Tue)
Exclude logback.xml from jars with Gradle
開発時用の logback 設定を src/main/resources/logback.xml に入れているとして、その時に logback.xml をどうやって jar に含めないかという話し。
2015-06-02(Tue)
supplementary groups をサポートする setuidgid であるところの setusergroups.c 書いた
supplementary groups をサポートした setuidgid が欲しいケースがある。 というのもあると思うけど、とにかく依存がない setuidgid が欲しい、みたいなケースもあ
2015-06-02(Tue)
Java の AST を解析できる javaparser がアツい!!!
javaparser は Java をパースして AST にしてくれるライブラリである。 この手のライブラリは数多あるのだが、ほとんどのものが Java 1.5 ぐらいでメンテナンスが止まってい
2015-06-02(Tue)
Perl 5.20 以後 $& は遅くない
Perl では長らく $& を一度でもプログラム中に記載しているとあらゆる正規表現マッチが遅くなるというイシューが知られていた。 しかし perldoc perlvar してみると、以下のように記載
2015-06-02(Tue)
cmake で prove 使ってテストする
CMake 使ってテストするときでもよく訓練された Perl Monger は TAP でテスト結果を出力するものだ。 その結果を TAP で集計したいという時には以下のようにすればよろしい
2015-06-02(Tue)
どこかのライブラリがエラー出してるっぽいんだけど、誰が出してるのかさっぱりわからない時
なんかしらないけどやたらとエラーメッセージがでるが、どこの誰が出しているのかさっぱりわからないという時、ありますよね。 そんな時は諦めて jar の中を grep してしまうのがいいかもしれないです
2015-06-02(Tue)
Perl6で「ソフトウェアエンジニアならば1時間以内に解けなければいけない5つの問題」の5問目を解いてみた
Perl6 だと eval が EVAL になってるのと、文字列結合演算子が ~ になっているのと実行が異常に遅いこと以外は違いはない。 calc(1, 1); sub cal
2015-06-02(Tue)
Java8 で5番目の問題を解く件
Java には eval がないから実装が面倒だ。そんな風に考えていた時期が私にもありました。 最近の Java 8 には JavaScript engine である Nashorn が標準搭載され
2015-06-02(Tue)
Server::Starter を Java で利用する方法。または、System.inheritedChannel() の挙動について
Server::Starter を Java でも使いたいなあ、そうすれば LL の場合と同じような運用ができるなあ、という要望をたまに稀によく聞きます。 そんなときに決まって返される答えは、`fdo
2015-06-02(Tue)
Blocking echo server in Java
ServerSocketChannel を利用した blocking な echo server の実装でまともなのが見当たらなかったので書いた。 `System.inheritedChannel(
2015-06-02(Tue)
Server::Starter から簡単に Java プロセスを起動できるようになった
JVM には inetd から起動するときのために、file descriptor 0 をソケットとして開く機能がついている。Jetty 等もこの機能に対応しているので、簡単に利用できる。 file
2015-06-02(Tue)
本気で Server::Starter を fatpack する方法
イチから作るには以下のようにせよ。 curl -o cpanm /usr/bin/perl cpanm -n -L tools App::FatPacker::Simple Ser
2015-06-02(Tue)
検索結果は 200 OK を返す
検索結果が0件なときに「存在しない」のだから404を返そうとするコードをたまに見るんだけど、これは 200 OK でやったほうが良い。 処理自体が成功したかどうかを返すのに HTTP status
2015-05-07(Thu)
ANSI Color を IntelliJ の console でつかいたいよ、って人~
によれば、IntelliJ IDEA 14 だと本体でサポートされているとかいないとか。 Grep Cosole plugin で、古い IntelliJ でも使える様子。 僕はIntelliJ
2015-05-07(Thu)
avans 1.0.0 が出ていた
avans 1.0.0 ってのが出てます。 以後、非互換の変更は semver にそってメジャーバージョンアップ時に行われます。 もう社内で結構使われていて、非互換の変更を気軽に入れられる感じでは
2015-05-07(Thu)
Best Java Blogs を一気に購読する
ここに乗ってたやつをいっきに ldr に登録しようと思って、OPML 作った。 生成スクリプトは以下の通り。ldr はHTMLのリンク先をまとめて登録する方法もあるっぽいんだけどうまく動かな
2015-05-07(Thu)
slf4j.detectLoggerNameMismatch=true で slf4j のクラス名間違いを検出する
`-Dslf4j.detectLoggerNameMismatch=true` とするとクラス名が間違っていることをレポートしてくれるようになる。 (本来なら `Logger.getLogger(_
2015-05-07(Thu)
[perl] epoch 秒っぽいやつを置換する
をみてやってみた。 > cat sql_result id 1 created_at 1419702037 updated_at 14197020
2015-05-07(Thu)
Safari で Reopen Closed Tab したい
Cmd+Z で出来た…… ref.
2015-05-07(Thu)
mod_extract_forwarded メモ
mod\_extract\_forwarded が既に組み込まれた httpd が提供されているときにどうやって設定するかっていうメモ。 (ビルドの方法については述べないという意味です) mod\_
2015-05-07(Thu)
CentOS6 で the_silver_searcher を入れる
epel にもないので、、 素直に手で入れるのが吉。 sudo yum -y groupinstall "Development Tools" sudo yum -y instal
2015-05-07(Thu)
bash のヒストリが保存されなくて謎だな、って環境に陥った時の対処法
そういう環境、無くはない。いろいろ理由があってそうしてる場合もあるから、履歴保存するリスクについても考慮する必要はありますが、リスクはないと判断した場合には以下のような手順で対応可能。 <hr>
2015-05-07(Thu)
mprofile を Python に移植した
`SHOW FULL PROCESSLIST` を 0.1 秒ごとに1000回取得し、その結果を眺めるという kazuho さんが書いた mprofile という便利スクリプトがあります。 これ
2015-05-07(Thu)
ipcalc - IP Calculator
CIDR の計算をする機会が最近多いんですが、毎度手でやってたんだけど手でやるの大変だな、ッて思ったのでツールを探してみたら ipcalc っていうツールがいいらしいと知りました。 $
2015-05-07(Thu)
homebrew で入れた MySQL 5.6 で general log を取る
デバッグ時には general log を取るようにしたら便利。 発行されたログを全部見れる。 /usr/local/Cellar/mysql/5.6.22/my.cnf あたりに以下のように追記
2015-05-07(Thu)
MySQL Connector/J を利用するときは cacheServerConfiguration=true を設定する
2015-05-07(Thu)
詳解Tomcatを読んだ
* Valve は Starlet::Plugin::* 的なもの。 * SemaphoreValve は便利そう * RemoteIpValve はよさそう。 * RemoteIpFil
2015-05-07(Thu)
mprofile-python がパワーアップしていた
setup.py が設定されてちゃんとした python のパッケージになりました。pip でインストールできるようになって便利。 mpdump を直接いじって使ってね、という怠惰な実装だったのが、
2015-05-07(Thu)
git flow を使ってみている
Java で開発するにあたって、なんだかんだ git flow とかにしたほうが説明の手間とか少なくて楽だな、とおもって git flow にしている。
2015-05-07(Thu)
JavaMail でメール送ったらどういう挙動になるか試すやつを書いた
JavaMail でメール送る奴書いたけど、それがちゃんとその環境で送れるかとか試すのがだるいという向きのためのやつです。 fat jar で javamail でなんとなくメールを送ります。
2015-05-07(Thu)
"default" servlet はどこから来るの?
Servlet container で static contents を serve するには web.xml に default servlet を設定するといいらしいです。 <ser
2015-05-07(Thu)
mod_jk な apache に、「自分は HTTPS を扱っている」と思い込ませる
SetEnv HTTPS on で OK です。 HTTPS という名前を避けたい場合は JkHTTPSIndicator HOGE などと設定すればよい。
2015-05-07(Thu)
Freemarker で文字列のテンプレートを適当にレンダリングする
なんかこんな感じです。 private String render(String templateString, Object dateModel) throws IOException, Tem
2015-05-07(Thu)
Freemarker で uriFor する
いわゆるひとつの uriFor 的なものを freemarker 用に実装してみるという。 import java.io.UnsupportedEncodingException;
2015-05-07(Thu)
Perl6 の開発先端を味わう方法
過去にも掲載したと思いますが、こんなシェルスクリプトで一発でインストールできます。 #!/bin/sh set -x set -e WORK=$HOME/.
2015-05-07(Thu)
[java] どのブランチから作られた jar かをわかりやすくしたい
どのリビジョンが実際にデプロイされてるかをその場ですぐに確認したいというような要求がある。 そういうわけで、jar の中にリビジョン情報などを埋め込みたい。 そんなときには git-commit-i
2015-05-07(Thu)
jolokia につないで雑に情報を見るツールを書いた
<img src=" jmx/jolokia なサーバーがいっぱいたってるんだけど、いちいち jconsole の URL とか調べるのがダルい、という問題があり、そういったものをささっとアクセ
2015-05-07(Thu)
JS とかの管理を grunt+bower でやるようにしてみた
bower 的なものを使わないと、「これどこから拾ってきたんや……」という感じになりがちなので、一応やったほうがいいでしょうと。 bower は直接使っていると、git のレポジトリをぶちまけるばか
2015-05-07(Thu)
JavaMail をモッキングしてテストしたい。
Java でメールを送るなら JavaMail で送るのが普通らしい。 とはいえ、生の JavaMail で書いてるとダルいので適宜以下のようにラッパをかましたりする。 本文は Freemarker
2015-05-07(Thu)
apimock 0.2.0 を出した
外部の API を呼ぶときにそのモックをつくるやつの 0.2.0 を出した。 外部の API を呼ぶようなコードを、呼び出し部分のクラスをモッキングしてもいいのだが、それよりも API サーバー
2015-05-07(Thu)
vue.js の Object に対する v-repeat って使いにくいのでは?
ざっくり言うと: 具体的には jolokia の返す API response を元に vue.js でテンプレート書くの辛い vue.js の 0.11.0 を使ってて思ったことのメモ。 vue
2015-05-07(Thu)
jdbcutils 1.1.0 を出した
jdbcutils の 1.1.0 が出ました。jdbcutils は JDBC を便利に使うためのユーティリティ集です。 今回追加になったのは `JDBCUtils#executeQueryFor
2015-05-07(Thu)
jdbcutils と tinyorm に問題が見つかったのでメジャーバージョンアップした
jdbcutils 2.0.0 と tinyorm 1.0.0 を出しました。 ざっくり言うと、`getColumnLabel()` を呼ぶべきところで `getColumnName()` を呼んで
2015-05-07(Thu)
Embedded Tomcat の起動が遅いんですけど~ って人
最近は Embedded Tomcat をテスト時に利用しているが、こちら極めて起動が遅い。 と思って調べていたところ、 metadata-complete="true" を設定すればいいとの情報を
2015-05-07(Thu)
avans での Freemarker の取り扱いを変えた。
既存コードには関係ない話ですが、今朝リリースした 1.5.3 のスケルトンジェネレータでの変更についてです。 avans ではいままで avans-freemarker を利用していましたが、これが
2015-05-07(Thu)
JMX にアクセスして値を取得したい
Java で何かを実装したい場合、Tomcat ちゃんやらなんやらの remote のプロセスからデータを取得したいという欲求を覚えることでしょう。 そういう時の取得方法についてサンプルプログラムを
2015-05-07(Thu)
servlet 3.0 の multipart 関連処理を有効にする方法
Java の Servlet API では 3.0 以後、multipart 関連の処理が可能だが、デフォルトでは利用不可となっている。 これを有効にするには web.xml に以下のように記述すれ
2015-05-07(Thu)
google guice の依存関係を visualize したいよ、って人
以下のように実装すればよい。graphviz 用の .dot ファイルが生成される。 PrintWriter out = new PrintWriter(new File(filenam
2015-05-07(Thu)
Google Guice で、Module の設定を上書きしたい
テストコード等で Module の設定を上書きしたいトキがあると思う。 そういう時には Modules.override() を使えばいい。 Guice.createInjector(Mod
2015-05-07(Thu)
avans 1.10.0 が出てます
avans の 1.10.0 が出ています。 avans-tinyvalidator が @BeanParam を validation していなかったので、するように変更しました。
2015-05-07(Thu)
routes が /{id:[0-9]{5}}/{title:[a-zA-Z_]+} のような形式に対応していた
Java 用の simple な dispatcher ライブラリである routes の 0.5.0 が出ました。 今回のバージョンでは @moznion からのパッチにより、より柔軟なディスパッ
2015-05-07(Thu)
ant と気合でファイルを読み込んで表示したい。
ant でファイルを読み込みたい。という思いがある。 loadFile → echo でいけます。 <?xml version="1.0" encoding="UTF-8"?> <
2015-05-07(Thu)
Xslate の mark_raw は template に書かない
Xslate の mark_raw は template 側では使わずに、Controller ないし Model で使って欲しい。 ある文字列が、HTML として処理すべきものかどうかは、サーバー
2015-05-07(Thu)
がんばれ父ちゃん
韓国では2番目に有名な日本酒らしい。 日本では見たこと無いが、新潟で作られているらしい。
2015-05-07(Thu)
[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)
Prev
Next