tokuhirom's Blog Search parallelStream の利用スレッド数 http://stackoverflow.com/questions/30802463/how-many-threads-are-spawned-in-parallelstream-in-java-8 defaultではCPUコア数と同じとのこと Created: 2017-05-16T03:49:54 Updated: 2017-05-16T03:49:54
tokuhirom's Blog Search parallelStream の利用スレッド数 http://stackoverflow.com/questions/30802463/how-many-threads-are-spawned-in-parallelstream-in-java-8 defaultではCPUコア数と同じとのこと Created: 2017-05-16T03:49:54 Updated: 2017-05-16T03:49:54
Spring boot の metrics 機能について spring boot には metrics 機能が標準でついている。metrics では Counter と Gauge の2種類のメトリクスを食わせることが可能である。 Counter は、単純に増加/現象する値を表すのに使うメトリクス値である。 たとえば、アクセスの件数、エラーの件数、現在利用中の値を取得したりするのに使う。 サンプルコードは以下の通り。 @Service public class FooService { @AutoWired private CounterService counterService; @Autowired private FooRepository fooRepository; public Foo get(String key) { counterService.increment("f
File::Temp を使っていると、表題のようなエラーが発生することがある。 これは一件すると、ファイルを開く処理が失敗した用に見えて、ファイル開き過ぎとかかなあと思うんだけど、実際はそういうことではないようだ。 File::Temp の実装はこのへんになっていて、要するに EEXIST が発生した場合に 1000 回ファイル名を変えてリトライして、その結果としてダメだったというときにいい感じにあがる例外である。 https://github.com/Perl-Toolchain-Gang/File-Temp/blob/master/lib/File/Temp.pm#L602 ここを見れば分かる通り、EEXIST の時だけしか次のループにいかないので、OS 的な問題ではない。 https://github.com/Perl-Toolchain-Gang/File-Temp/blob/ma
Servlet container で static contents を serve するには web.xml に default servlet を設定するといいらしいです。 <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/static/*</url-pattern> </servlet-mapping> http://stackoverflow.com/questions/132052/servlet-for-serving-static-content じゃあこの default servlet って servlet API の仕様に入っているの? というところですが、実際のところ別に標準ではないという噂を聞きました。 http://stackoverflow.com/questions/16
Content-Security-Policy の nonce を利用すると、XSS の脅威をかなり軽減できます。 そこで、Web Application Framework ではデフォルトで対応したほうがよいのではないか、という旨を @hasegawayosuke さんから教えて頂いたので、実装について考えてみました。 とりあえず CSP の nonce はどういうものなのかを考慮するために、コード例を探していたのですが、実際に動くサンプルというものが nonce 関連のもので見当たりませんでした。 そこで、実際に動くサンプルを用意しました。 https://github.com/tokuhirom/csp-nonce-sample 以下は Sinatra で書かれたサンプルコードです。 require 'sinatra' require 'securerandom' get '/' d
Mail::Krohn is alternative library for Email::Sender. I don't want to use Email::Sender since it depends on Moose. I want to run our application in tight memory. Some of the developers call the sendmail command by himself. Mail::Krohn is minimized version of Email::Send. But all required features for most web applications are supported(I hope). Enjoy! 【追記】 Now, Email::Sender was switched to Moo. I
Test::Pretty is a prettifier for Test::More. When you are writing a test case such as following: use strict; use warnings; use utf8; use Test::More; subtest 'MessageFilter' => sub { my $filter = MessageFilter->new('foo'); subtest 'should detect message with NG word' => sub { ok($filter->detect('hello from foo')); }; subtest 'should not detect message without NG word' => sub { ok(!$filter->detect('
https://github.com/tokuhirom/node-perl/ ここ最近、プログラミング言語同士の壁が徐々に破壊されている気がします。あるプログラミング言語上で別なプログラミング言語を動くようにしたり、置き換えてしまったりするような類です。今回はその一つ、CPAN moduleをnode.js上で動かすという、かなり無茶な気がしなくもない、そんなソフトウェアnode-perlを紹介します。 var Perl = require('../index.js').Perl; var perl = new Perl(); perl.use('LWP::UserAgent'); var ua = perl.getClass('LWP::UserAgent').new(); var res = ua.get('http://mixi.jp/'); console.log(res.as_
表題の件につきまして、解説します。 firefox などの web browser は geo location API を提供していますが、この位置情報のデータをコマンドラインからとる方法というのが、すんなりとした方法で提供されているものがちょっとみあたりませんでした。 これができると、自分の note pc の中で cron をうごかしておいて、何時から何時までのあいだにどこにいたかを記録するとかできておもしろそう。ライフログ!!! というわけでやってみようとおもったのだが、存外情報がすくなくてこまった。 結論からもうしますと、iwlist コマンドをつかうと wi-fi のアクセスポイントを scan してくれるので、この出力をつかいましょう。 iwlist wlan0 scanとかうつといいですね。 で、これでえた mac address をもとに、 http://ks0608.h
JSON.pm の relaxed モードについてPerl5 の JSON.pm/JSON::XS では relaxed JSON というものがサポートされている。これは JSON 仕様をゆるくしたもので、 shell style のコメント(# 以後がコメントとなる)のサポートと、ケツコンマのサポートが含まれている。 JSON が設定ファイルとしてつかいづらいといわれる所以はたいがいコメントがつかえないことなので、まあこれなら許容範囲かな、と。mobirc の設定ファイルもこれにしてみました。 JSON の場合は、JS がわかる人なら手でかけるのと、まあわからなくても覚えることがすくないし、覚えても損がない感じがイカス!とおもいました。
http://d.hatena.ne.jp/language_and_engineering/20120619/p1 whatever / 25 ; # / ; die "this dies!"; これね。 BEGIN { if ( 0.5 < rand() ) { eval "sub whatever() { }; 1" or die $@; } else { eval "sub whatever { }; 1" or die $@; } } whatever / 25 ; # / ; die "this dies!"; こういう風に prototype がちがうと残念ですね。 この話題 2008 年にみたわー http://www.perlmonks.org/?node_id=663393 ってことで。
まあ、便利なんだけど、実際あまりつかうことはないかもね、という。 というか言語コアの方で use 5.10; したときに deprecate 、みたいになるといいね。
Date: Sat Mar 3 15:41:02 2012 +0900 あたりの変更かとおもうのだけど、いままでの設定だと新規のファイルをつくれなくなった。 こまったので、ドキュメントをみたところ、ファイルをしぼりこむ source と file を新規作成するsourceが別になったようだ。 - nmap bg :Unite -buffer-name=files buffer_tab file_mru file<CR> + nmap bg :Unite -buffer-name=files buffer_tab file_mru file bookmark file/new<CR>として解決した。
なんかこう、世間をみておりますと、いろいろなものがはやったりすたれたりしておりますね。 prototype.js のあとに MooTools とかなんかいろいろあったけど、それを静観して jQuery にいったらだいぶ楽でした。 mod_perl1.3 のときに、mod_perl1.9 とか mod_perl2 を導入してる某はてな社や FCGI を導入している某モジャモジャ社の人から DIS られたりもしましたが、それを静観していたら、plack の季節がやってきて、一個とばしで楽でした。 apache1.3 をつかってるときに lighty やばいよっていってる人いましたが、今はメンテされてないようで、僕は nginx をつかっています。 まあそんな風に、流行っているものは、だいたい攻めすぎてたりなんだりであんまり定着しなかったりするので、現状のものにたいしてそこまでのメリットがないの
Perl5 では glob("no_such_file") が ("no_such_file") をかえすが File::Zglob では () をかえす。File::Zglob は gauche の実装を参考にしているので、gauche の実装とたぶんおなじ挙動。Ruby の Dir.glob も 空の配列をかえす。 glob の挙動としては、空リストがかえってくる方が素直だとおもうのだが、Perl5 ではどうしてこうなっているのか。 Perl5 の glob は、csh の glob をもらってきているので、シェルの glob 展開をそのままうけいれてしまっているのだろうという話を gfx がしていた。 なるほどたしかにそうかもしれない。shell では、ただの文字列はそのままただの文字列としてかえる。 しかしライブラリの挙動としてはやはり空リストをかえす方が素直だとおもう。
yacc や lex をつかっていても「なんかよくわからんけどうごく」という状態になりがちだったり、グローバル変数にまみれたりしがちだが、re2c + lemon だとそのへんがすっきりする。 レキサを以下のようにかく。yyfill を自前でかかなければいけないのがちょっと面倒だが、このようなクラスを手軽にかけるのはやはり便利である。flex ではこうはいかないのだ。 #ifndef CALC_SCANNER_H_ #define CALC_SCANNER_H_ #include <stdio.h> #include <string.h> #include <string> #include <sstream> #include <vector> #include <iostream> #include <fstream> #include "scanner.def.h" #include
http://frepan.org/~tokuhirom/Daiku-0.01/ Rake みたいなの、Perl にも欲しいね、って5年ぐらい前からおもってたけどいいのができたって噂をきかないので自分でかいた。 #! perl use Daiku; use autodie ':all'; task 'all' => 'foo'; file 'foo' => 'foo.o' => sub { system "gcc -c foo foo.o"; }; rule '.o' => '.c' => sub { system "gcc -c foo.o foo.c"; }; build shift @ARGV || 'all'; こういうかんじでつかえる。簡単でしょ。 以下設計のメモ。 基本的には Rake とインターフェイスをあわせめでつくってる。巨人の肩に云々。 DSL を DSL としてゴリゴ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く