タグ

2010年2月3日のブックマーク (7件)

  • Java変態文法最速マスター - プログラマーの脳みそ

    Java基礎文法最速マスター - いろいろ解析日記をリスペクト。 Javaの変態文法・技法一覧です。Javaの基礎をある程度知っている人はこれを読めばJavaの変態をマスターしてJavaを書くことができるようになっています。簡易リファレンスとしても利用できると思いますので、これは足りないと思うものがあれば教えてください。 1.基礎 エンクロージング型内部classの作成 外部classのインスタンスに紐付くインスタンスを生成します。外部クラスのインスタンス - 内部クラスのインスタンス間に、クラス - インスタンスのような関係を持たせることができます。 public class Outer { public class Inner { } } というようなクラスを作った場合、 Outer o = new Outer(); Inner i = o.new Inner(); となります。new

    Java変態文法最速マスター - プログラマーの脳みそ
    mattn
    mattn 2010/02/03
  • JavaScript変態文法最速マスター - 葉っぱ日記

    Java変態文法最速マスター - プログラマーの脳みそをリスペクト。 JavaScriptの変態文法・技法一覧です。あんまり使わないけど、知ってるとXSSとか攻撃したいのにWAFに妨害されるなど、いろいろ制約があるという場合に便利。 文字列の生成 引用符を使わずにさくっと文字列を作る。fromCharCode とか使ってもいいけどめんどくさいので、正規表現やE4Xを利用。 alert( /string/.source ); alert( <>string</> ) 空白文字を使わず記述 文脈上、スペースを書きたいけれどいろいろ制約があって書けない場合にはコメントで代替。実行するコードを作り上げてevalしてもいいけど大袈裟なので。 var/**/x=1; */ を含むコードブロックをコメントアウト コードの塊りをコメントアウトしようと思って /* */ で囲むと、コード内に string.

    JavaScript変態文法最速マスター - 葉っぱ日記
    mattn
    mattn 2010/02/03
  • Facebook's HipHop Goes Public With a New PHP Runtime | Developer.com

    Developer.com content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More. The open source dynamic scripting language PHP is widely deployed across the Web, powering countless Web sites (including the Internet.com network). Now Facebook is aiming to change the game with today’s release of a major new PHP effort called HipHo

    Facebook's HipHop Goes Public With a New PHP Runtime | Developer.com
    mattn
    mattn 2010/02/03
    最初からC++でか(省略されました
  • volatile爆発しろ! - yamasaのネタ帳

    volatileという英単語には「爆発しやすい」という意味があるようですね。豆知識。 さて、前エントリのスライドで説明したように、マルチスレッドプログラムを正しく動作させるためにはCPUやコンパイラによるリオーダーを制限することが重要であり、そのためにメモリバリア(メモリフェンス)という仕組みがあるわけです。そして、CやC++のvolatile変数はメモリバリアとしての効果を持っていない、という問題点について指摘しました。この部分をもう少し掘り下げてみます。 マルチスレッドプログラムを正しく同期化させるために必要な「メモリバリア付きアトミック操作」について、それが正しく動作するために満たすべきチェックポイントを挙げると以下になります。 コンパイラは、その操作自体を最適化によって消去してしまったりしない。 コンパイラは、その操作をアトミックに実行できる命令を出力する。 コンパイラは、その操作

    volatile爆発しろ! - yamasaのネタ帳
    mattn
    mattn 2010/02/03
  • マルチコア時代のLock-free入門 - yamasaのネタ帳

    日、並カンにてLock-freeアルゴリズムについて発表しました。発表資料は以下になります。 なお、今回の発表で割愛したメモリバリアの詳細については、以下の発表資料を参照ください。 そろそろvolatileについて一言いっておくか また、Hazard pointerやタグ付きポインタを使用したサンプルコードを以下に置いています。こちらも参考にどうぞ。 yamasa/lockfree - GitHub マルチコア時代のLock-free入門View more presentations or Upload your own.

    マルチコア時代のLock-free入門 - yamasaのネタ帳
    mattn
    mattn 2010/02/03
    アクセサ持ったテンプレートとか使えばC++でも出来なくないんじゃないかなー。
  • OSS とテスティングと CPAN Testers の話 - tokuhirom's blog

    http://blogs.itmedia.co.jp/hozawa/2010/01/post-b5e0.html URL とあんま関係ないかんじのチラ裏ですけど。 実際、オープンソースのプロダクトって、作者の環境とちがう環境だとうまくうごかないみたいなことはあって、memcached は Solaris だと変な挙動をしてたし、Q4M は i386 固有の問題があったとか、まあそういうのは色々ありますわな。 で、どうするかというと、みんながつかってる構成をつかえばいいじゃーん、という。memcached を linux 2.6.x でつかってるユーザはたくさんいるので、その環境におけるバグはすくないはずだから、linux 2.6 でつかうのが一番安全だろう。とかそういうこと。 OSS はつかうユーザがおおいほど、バグにあたる可能性は低くなるはず。 Solaris でうごかないのは残念だとお

    mattn
    mattn 2010/02/03
    レアOSの為に俺のソースをお前のpatchで汚してたまるか!なんて人を見るとワクワクします。
  • 安全なファイル書き換えにはディレクトリも fsync すべき。だけど Perl でどう書くか - kazuhoのメモ置き場

    間違ってたらツッコミお願いします。 ext4 が出たタイミングで話題になったことだけど、(ext4 に関係なく一般論として) ファイルを安全に書き換えるためには、いくつかの手順を踏む必要がある。で、Perl だとだいたい以下のようになる。 # 1) 適当なテンポラリファイル名 (格納先と同ディレクトリ) my $newfn = "tmp.$$"; # 2) ファイルを書いて fsync open my $fh, '>', $newfn or die "failed to open file:$newfn:$!"; print $fh $data; IO::Handle::flush($fh); or die "flush failed:$!"; IO::Handle::sync($fh); or die "fsync failed:$!"; close $fh; # 3) 古いファイルを別

    安全なファイル書き換えにはディレクトリも fsync すべき。だけど Perl でどう書くか - kazuhoのメモ置き場
    mattn
    mattn 2010/02/03