Hatena::ブログ(Diary)

hnwの日記 このページをアンテナに追加 RSSフィード

[プロフィール]
 

2015年1月31日(土) 江戸前セキュリティ勉強会でgithub.comの弱い鍵を探す話をしました このエントリーを含むブックマーク このエントリーのブックマークコメント

先週1/24(土)に江戸前セキュリティ勉強会で「偶然にも500万個のSSH公開鍵を手に入れた俺たちは」というタイトルでLT発表してきました。以下が発表資料です。



このプレゼン資料はLT用に圧縮して作ったので、わかりにくい部分があったかもしれません。そこで、Q&A形式で補足を書いてみました。


「最大公約数を求める攻撃はSSHユーザー鍵についても現実的脅威なのか?」

結論から言うと、SSHユーザー鍵に限れば脅威でないというのが個人的な考えです。

続きを読む

トラックバック - http://d.hatena.ne.jp/hnw/20150131

2015年1月17日(土) Javaで書かれたPHP処理系のJPHPが高速だった このエントリーを含むブックマーク このエントリーのブックマークコメント

JPHPというJavaで書かれたPHP処理系があります。これは2013年10月にはじまった新しいプロジェクトで、大半をメイン開発者一人で開発しているようですが、既に一定以上の完成度です。また、内部的にはPHPファイルを解釈して直接Javaバイトコードコンパイルしており、かなり高速なPHP処理系になっています。


他のPHP処理系と異なり、既存のPHPコードをWebサーバ上で動かすことを重視していないようにも見えますが、興味深いプロジェクトですので紹介します。


JPHPを動かしてみる

さっそくJPHPを試してみましょう。現時点ではGitHubからソースコードを持ってきてビルドする必要があります。JDK7以上が必要ですので注意してください。JPHPのドキュメント「Getting Started」の通り、次のようにしてJPHPがビルドできます。


$ git clone https://github.com/jphp-compiler/jphp.git
$ cd jphp
$ chmod +x gradlew
$ ./gradlew dist

ビルド後、次のようにすればJPHPが実行できます。


$ build/dist/jphp -f jphp-example-project/src/main/php/bootstrap.php

Hello World!

$

ベンチマークテスト

PHPソースコード付属のベンチマークテストZend/bench.phpを動かしてみました。ただし、このbench.phpのテストのうちmandel()だけは無限ループしてしまうようだったので、コメントアウトして実行しました。

続きを読む

トラックバック - http://d.hatena.ne.jp/hnw/20150117

2015年1月7日(水) PHPのJava実装であるQuercusをCLIで動かしてみた このエントリーを含むブックマーク このエントリーのブックマークコメント

今日は有名PHP実装の一つであるQuercusを紹介します。これはJavaサーブレットコンテナResinを開発しているCaucho社が開発しているもので、当然のことながらJava環境で動作します。既存のPHPコードを動かすのにJava環境のノウハウや資産が生かせれば良いところ取りができるわけで、野心的なプロジェクトだと言えるでしょう。前回記事「MacOSX上で.NET環境向けPHPコンパイラPhalangerを動かしてみた」で紹介したPhalangerと似た発想ですね。


今回はコマンドラインからQuercus単体で使ってみました。いちいちアプリケーションサーバセットアップしなくても気軽に試せるのは嬉しいところです。


QuercusをCLIから動かす

Quercusには「com.caucho.quercus.CliQuercus」というコマンドラインインターフェース用のクラスが提供されています。これを使ってみましょう。


まずはQuercusのwarファイルからjarファイルを取り出します。Quercusホームページ下部の「Downloads」から「quercus-4.0.39.war」をダウンロードしてwarを展開します。


$ mkdir -p /tmp/quercus
$ cd /tmp/quercus
$ unzip -x $HOME/Downloads/quercus-4.0.39.war WEB-INF/lib/quercus.jar

ここで取り出したquercus.jarだけでPHPスクリプトが動きます。


$ echo '<?php var_dump(PHP_INT_MAX);' > int_max.php
$ java -cp WEB-INF/lib/quercus.jar com.caucho.quercus.CliQuercus int_max.php
int(9223372036854775807)

ベンチマークテスト

では、このCLI版のQuercusとPHPとの速度を比較してみましょう。PHPソースコード付属のベンチマークテストZend/bench.phpMacOSX 10.9上で実行してみました。

続きを読む

トラックバック - http://d.hatena.ne.jp/hnw/20150107

2015年1月2日(金) MacOSX上で.NET環境向けPHPコンパイラPhalangerを動かしてみた このエントリーを含むブックマーク このエントリーのブックマークコメント

(1/7 追記)ベンチマークテスト結果が不正確だったので、再測定して書き直しました。以前の記事よりもPHPの結果が良くなっています。


あけましておめでとうございます。このたび、gihyo.jpの新春特別企画として記事「PHP処理系の未来」を寄稿いたしました。HHVMとPHP7を絡めて最近のPHPの動向を紹介するような内容になっていますので、是非ご覧くださいませ。


この記事を書くにあたり、HHVM以外にも有望なPHP処理系があるかどうかを調べていました。その結果、HHVMほどではないにせよ実用レベルに近いPHP処理系が複数あることがわかりました。


そうした実装のうち、今回は.NET FrameworkおよびMono環境で動くPHPコンパイラPhalangerを紹介します。PhalangerはC#で書かれており、PHPソースコードから.NETアセンブリを出力します。Windows上では本家PHPより高速ということですし、PHPVisualStudioで開発したり.NETの資産を利用したりする狙いもあるようで、夢が広がるプロジェクトですね。Phalanger開発者がDEVSENSE社という会社を起業して有償サポートを提供しているなど、本気度が高いPHP処理系の一つだと言えるでしょう。


ただ、中の人も含め常用している人は全員Windows環境のようで、Linux/MacOSXの情報は非常に少ない状況です。今回MacOSXMono環境で動かせたので紹介します。


Monoインストール

まずはMonoを準備してください。PhalangerではMonoの設定ファイルを書き換える必要があるので、普段使っているMonoとは別にインストールした方が無難かと思います。普段Monoを使っていない場合は単にHomebrewインストールすれば良いでしょう。


$ brew install mono

Phalangerのインストール

PhalangerにはMacOSX用のパッケージはありません。Windows用のバイナリファイルをダウンロード&展開します。僕はPhalangerのダウンロードページから「Phalanger 3.0.0.4072 (bin).zip」をダウンロードしました。


これを作業ディレクトリに展開し、「Installation/3.0/Linux - PhalangerWiki」を参考に作ったインストールスクリプトインストールします。インストールスクリプト内でxmlstarletを使っているので、必要に応じてインストールしてください。

続きを読む

2014年12月31日(水) 2014年をふりかえる このエントリーを含むブックマーク このエントリーのブックマークコメント

年末なので今年のふりかえりを書きます。基本的には自分用エントリなんですが、何かの参考になれば。


書いた

2014年はてなダイアリーに本記事を含め30本の記事を書きました。人気があったのは下記の記事です。



また、会社ブログにも3件記事を書きました。



参加した

勉強会発表を3件行いました。



また、ISUCON4の予選・本戦に出場しました。予選は学生枠を含めた通過28チーム中16位、本戦は30チーム中13位でした。楽しかったんですが、成果としては少しだけdstat力が上がった程度のような気がしますね…。精進せねば。



少し毛色が変わりますが、会社主催のプログラミングコンテスト天下一プログラマーコンテスト2014」の本戦に運営スタッフとして参加しました。作問などもお手伝いできて非常に楽しかったので、来年も何かの形で関わりたいですね。


  • 9/6 本戦

ちなみに、AtCoderアカウントがあれば過去問にチャレンジできます。学生さんターゲットの大会ではありますが、予選は社会人の方も参加できますので、興味のある方はぜひ来年トライしてみてください。


続きを読む

トラックバック - http://d.hatena.ne.jp/hnw/20141231
 
ページビュー
1362195