tokuhirom's blog
jcmd が "well-known file is not secure" という IO 例外を上げてくるときの対処
jcmd が "well-known file is not secure" などと意味不明なことを申した場合、この例外は 以下の位置から上がっている。 ``` JNIEXPORT void JN
2015-12-19(Sat)
C++ と valgrind
libstdc++ は内部でメモリプールを持っている上に、プロセス終了時に開放しないので、valgrind が勘違いする。 以下のような極めて単純なプログラムでも All heap blocks w
2015-12-19(Sat)
valgrind でメモリリークの誤検出が起きる場合、suppression を指定する
valgrind は、問題がない場合でも誤検出することがママある。 そのような場合、suppressions ファイルを生成すればよい。 たとえば、`dlopen()` は内部でエラーメッセージ保存
2015-12-19(Sat)
cmake で変数を全部ダンプする
cmake で現在利用可能な変数の名前とその値をすべてダンプしたいということがあると思う。そんな時にはこうしたらいい。 get_cmake_property(_variableNames V
2015-12-19(Sat)
MoarVM における DESTROY メソッドの呼び出し手順
refcnt 型のインタープリタの場合デストラクタの呼び出しは極めて容易だが、GC の場合はちょっと面倒だ。 Rakudo の場合は、src/Perl6/Metamodel/Finalization
2015-12-19(Sat)
Perl5 での Plack に当たる Crust をみんなで作った話
この記事は <a href=" 6 Advent Calendar 2015</a> の1日目です。 Perl 6 は、2015年のクリスマスにリリースされることになっており、我々としてはそれを待ち
2015-12-19(Sat)
C 言語で qsort_r がポータブルじゃなくて困る時の対策
qsort は、ソート対象の変数以外を渡すことができないため、マルチスレッドのプログラムでは取り扱いづらい。tls 使えばいいが、それもなあ、という感じな時は、qsort_r を使いたい。 しか
2015-12-19(Sat)
AssertJ 用の IntelliJ postfix completion plugin を書いた
2015-12-19(Sat)
xfce4で、スタートメニューを開くコマンド
xfce4-popup-whiskermenu
2015-12-19(Sat)
spring boot で、freemarker のテンプレートの読み込みがサーバー再起動しないと読まれなくてだるいって時の対処方法
spring boot はデフォルトでは classpath から読んでるので、まあなんか再読み込みさせるのが難しい。eclipse なら自動でコンパイルされるのでまだマシだが、intellij だと
2015-12-19(Sat)
My latest hack around Server::Starter
In past few days, I sent some p-r to Sever-Stater. This is my note around these commits. # Added --
2015-09-28(Mon)
shipped tinyorm 1.6.0
I shipped tinyorm 1.6.0 # Added mysql's SET type support #22 I added `@SetColumn` annotation. Tiny
2015-09-28(Mon)
How do I include git.properties file into war/tar with gradle?
You can put the task like following: task generateGitProperties { def revisionHash = ["
2015-09-28(Mon)
jps を自前で実装してみる
tools.jar の中に入ってるクラスを呼べば、同じようなことができるとのこと。 ``` import java.net.URISyntaxException; import java.util.
2015-09-28(Mon)
golangで、制御文字を表示させたい
なんか文字列を比較して見た目には同じなのだがマッチしないというような場合、"\x00" のような制御文字が混入している可能性がある。 このような場合、Perl では Devel::Peek を利用して
2015-09-28(Mon)
golang で os/user 使ってるとクロスコンパイル時にうまく動かないってとき
cgo 使ってる部分が動かないとのことで。 user name 取りたいときは `os.Getenv("USER")` とでもするのが妥当そうである。 なお、windows だとなんか動いてい
2015-09-28(Mon)
h2o の fastcgi サポートで Plack::Handler::FCGI を動かす
h2o で PHP を FCGI で動かすという話題が最近見かけますが、もちろん h2o+FCGI+Perl も快適に動作します。 具体的には以下のように書けばよろしい。 listen: 9
2015-09-28(Mon)
pthread のバージョンを確認したいでござる
pthread で NPTL が使われてるかどうか確認したかったのだけど、ただしく確認する方法がよくわからなかったので confstr で調べた。 #include <malloc.h>
2015-09-28(Mon)
golang で regexp のキャッシュ
golang で regexp をコンパイルするときは var stack_at_re = regexp.MustCompile(`\s*at ([^(]+)\(`) のように M
2015-09-28(Mon)
java と strace
java command は `clone(2)` するので、普通に strace してもダメ。 `strace -f java ...` のように -f オプションをつければ、clone した先も追
2015-09-28(Mon)
Graceful shutdown on Embedded Jetty
You should set following 2 options. server.setStopAtShutdown(true); server.setStopT
2015-09-28(Mon)
apache bench(ab) が OSX で刺さった夜は
ある日、OSX Yosemite で apache bench でベンチマークを使っていると、なぜか stuck して困っていた。 ``` ab -c 10 -n 16500 ``` どうも、対
2015-09-28(Mon)
gradle で findbugs の除外ルールを設定する
findbugs { excludeFilter = file("${project.rootDir}/config/findbugs/findbugs_filter.xml"
2015-09-28(Mon)
How do I include git revision in jar file with gradle?
If you want to include source git revision into jar file, you can include it in MANIFEST.MF. This he
2015-09-28(Mon)
Java 8 の DateTimeFormatter の曜日等のフォーマットについて
DateTimeFormatter を利用して曜日などのフォーマットを行おうとすると、実際どういうふうにフォーマットされるのかよくわからんということになる。 をちらっと見ると、以下のように書いてあ
2015-09-28(Mon)
Jetty でディレクトリリスティングを拒否したい
webAppContext.setInitParameter("org.eclipse.jetty.servlet.Default.dirAllowed", "false"); で、
2015-09-28(Mon)
groovy で ant task を記述したい
ant でロジックを記述するのはなかなか大変であるし、今となっては潰しのきかないスキルでもあり、未来ある若者に ant を使わせるべきではない。 しかし、世の中には ant を利用することを強いられ
2015-09-28(Mon)
log4jdbc は logback の設定をミスってるとすげー遅い
log4jdbc を使うと jdbc でアクセスしたクエリのログが簡単にとれて便利なのだが、設定を誤るとパフォーマンスを超絶劣化させてくるので注意が必要である。 log4jdbc はデバッグレベルだと
2015-09-28(Mon)
BetterTouchTool が便利
2015-09-28(Mon)
gradle でブランチ名からバージョン番号を指定する
うちの職場では、jar を jenkins でビルドして、nexus enterprise にアップすることにより、実際にデプロイされたコードの履歴を保持するというようなことをやっている。 なので、
2015-09-28(Mon)
YAPC::Asia 2015 に行ってきた
<iframe src="//www.slideshare.net/slideshow/embed_code/key/bvkklAVgJcMGSu" width="425" height="355"
2015-09-28(Mon)
perl6 で TSV を SQL に変換する
もはやこういったものは Perl6 で書いた方が楽かもしれない。 ``` my @header = lines.shift.split(/\t/); say "INSERT INTO member
2015-09-28(Mon)
elasticsearch と testing
Java で elasticsearch を利用したアプリケーションを開発する場合、NodeBuilder など用いて、JVM 内で elasticsearch を立ち上げるのが順当に見えるが、実際は
2015-09-28(Mon)
サーバーサイドのテンプレートエンジンに mustache を使うのはあんまよくないようだ
mustache は速いしいいんじゃないの? と思ったのだが、実際使ってみると微妙だ。 ## 機能が少ない やはり機能がしょぼい。それはそれでいいんだけど。特に自分でテンプレートを記述する時という
2015-09-28(Mon)
Perl5's File::Path::mkpath equivalent in perl6
Shell::Command::mkpath provides same feature. > use Shell::Command; > mkpath("/tmp/x/y/z");
2015-09-28(Mon)
[perl6] how do i read binary file?
You can read a file as binary file in this form: my $dat = slurp($filename, :bin);
2015-09-28(Mon)
Perl6 で windows かどうか判定したい
`$*DISTRO.is-win` とするだけでよい。極めて読みやすい。
2015-09-28(Mon)
[perl6] done が done-testing に変わる
変わるってことで、まあ Perl6 が正式リリースされる前だからいいんだが、Perl6 のコードを取り出すにはどうすりゃいいんだってことになって、soozy.slack で話題になっていた。 最
2015-09-28(Mon)
perl6 で stacktrace をフルで出す
CATCH { .backtrace.full.say } で OK です。
2015-09-28(Mon)
You can install cperl by plenv
Today, reini released cperl-5.22.1, is faster, typed perl5 implementation. See I added cperl suppo
2015-09-28(Mon)
I wrote Raw::Socket for Perl6.
## Concept We can't pass file handles to another threads on MoarVM. See This is serious problem
2015-09-28(Mon)
perl6 ではコールバックを受け取る関数では Sub を受け取るように明示する
perl6 では以下のようなコードでは 3 が帰る。 (sub { (-> { return 3 })(); return 4 })().say `-> { }` という記法からすると
2015-09-28(Mon)
formatting moarvm's profiler result in CLI
moarvm outputs profiler result as HTML. It's too heavy to display for large programs. But it can out
2015-09-28(Mon)
lldb で core ファイルを見たい
lldb binary -c core で見れる。
2015-09-28(Mon)
fork と kevent
kqueue は fork した後はイベントが無効となり利用できない。 BSD 系のOSではrforkというシステムコールが用意されておりこれを利用すれば引き続き同じリソースを利用可能だが、Mac O
2015-09-28(Mon)
I talked about perl6 in gotanda.pm
<iframe src="//www.slideshare.net/slideshow/embed_code/key/tHiemmNqYBUeXr" width="425" height="355"
2015-09-28(Mon)
[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)
Prev
Next