電子書籍に特化したオンラインの出版社、達人出版会から、『徹底解剖「G1GC」 アルゴリズム編』(中村成洋著、600円)が6月末に出ました。Java7(OpenJDK7)で採用されたG1GCアルゴリズムを、豊富な図を使って丁寧に解説した本です。A4換算で60ページほどです。 島根在住の中村さんに、Skypeでお話を伺いました。 GCアルゴリズムを網羅的に解説した前著とも言える『ガベージコレクションのアルゴリズムと実装』と併せて読むのがオススメだそうですが、私は中村さんが管理している「GCアルゴリズム詳細解説」のWikiと併せて読みました。GCの各種アルゴリズムって並行処理時の整合性確保のための実装や性能評価は難しいのでしょうけど、アイデア自体は、そこまで複雑じゃないものが多いですよね。ヒープメモリという部屋をどう区分けして、そこにどういう性質(生存期間や生き死に)のオブジェクト群を、どう配置
計算機科学において、ソフトウェアトランザクショナルメモリ(英: software transactional memory, STM)は、データベーストランザクションに似た並行性制御機構であり、並列計算を行う際の共有メモリへのアクセス法である。この機構はロックベースの同期を用いた並行性制御の代替手段として機能し、ノンブロッキングな方法で実装される物もある。ここでいうトランザクションとは、共有メモリに対する一連の読み出しと書き込みを実行するコードを意味する。論理的にはこれらの読み出しと書き込みは、時間的なある一点で行われ、他のトランザクションからはその間の状態は見えない。トランザクションを行うためにハードウェアにサポートさせるアイデア(ハードウェアトランザクショナルメモリ)は、1986年に Tom Knight により論文と特許として出された。そのアイデアを普及させたのが Maurice H
Thanks for signing up! Sorry we're full for now, but you'll be able to start using Canvas when we have more invites available or if one of your Facebook friends already using Canvas invites you. Canvas is currently in closed beta. You’ll have to request an invite to join Canvas. Why Facebook? During the beta period we are using Facebook Connect to validate users and handle invitations. Only your f
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
追記: 2011-12-20T03:18:11+09:00 結構この記事をしばしば参考にして安易にSystemV IPC 共有メモリに突っ込む事をやる人も居るようですが、IPC::Shareable 自体が長い事、メンテされてない上に、SystemV IPC 自体も古くさい手法です。大人しくファイルに書き出すなり、SQLite などを使って保存したりだとか、AnyEvent, Coro 等で書き直すとか、より簡単で確実な方法を試した方が良いでしょう。 つまるところ、この方法はお勧め出来ません。エントリ自体は削除せずに残しておきますが、そのつもりで読んで下さい。 オライリーの Perl クックブックの古い奴のレシピ 16.12 とかに書いてある内容なんですけど、自分でも試してみました。 IPC::Shareable のインストール 残念ながら現在のバージョン 0.60 はそのままだとテストが
7月1日にCookpadにインターンとして参加してから1週間が経過した。「インターンに参加する」では齟齬があり、「インターンとして参加する」が最もしっくりくる雰囲気。ここでは時間が過ぎていくのが速すぎて恐ろしい。月と太陽まで高速なサイクルを回さなくてもいいのに。 今まではてなで働いた経験しかなかったけど、今回クックパッドで働いた経験が1週間貯まった。これまでは「はてなだからこうしているのかもしれない」という捉え方しか出来なかったけど、この時点で「ああどこも共通してこうなっているのかも」という視点に立って考えることが出来る状態になった。その視点から考えてみて、幾つかの共通する意見が明確になってきた。 学習コスト Cookpadの開発は、途中からJoinしやすい環境が整っていた。Railsを採用しているところは特に、内製フレームワークに対する理解の為の学習コストが発生することなく、開発に取り掛
この文書は GNU 一般公有使用許諾書、バージョン 2 もしくはそれ以降により規定される条件の下で使用できます。 この文書は以下の二つの文書を参考にして書かれました: Debian パッケージの作り方 (別名 Debmake マニュアル)、Copyright © 1997 Jaldhar Vyas. 新メンテナー向け Debian パッケージング法、copyright © 1997 Will Lowe. The rewrite of this tutorial document with updated contents and more practical examples is available as "Guide for Debian Maintainers". Please use this new tutorial as the primary tutorial documen
bundlerでgemを作ってみる 昨日のYokohama.rbで#railshackathonに向けたアイデアソンでいろいろ話してたら 新しいブログシステムのメージが具体化してきた。 実装はbilbo以上に小さくできそうな気がしているので、もうアイデアをメモするよりもメモがわりにプロジェクトを立ち上げてしまっていいかなと。 で、どうせだから今回はgem化してみよう。 以前@jugyoに教えてもらったjewelerを使ってみようかなと思ったけど、gem作成においてより後発のbundlerを使ってみることにする(thx @takkanm @nagachika)。 雛形の作成 gem install bundler 新しいgem化するプロジェクト名をpipinとすると、 bundle gem pipin これでpipin gemの雛形ができる。 => create pipin/Gemfile
Refinery CMS というのは、Rails をベースにした CMS。 公式サイトにもテストに関するガイドはあるのだが、テストを開始する前の準備の記載がないのでメモしておく。 How to test Refinery - Guides - Refinery CMS そもそも、Refinery CMS は CMS なので、Refinery CMS 自体のテストを実施する必要があるの?という話もあるかもしれないが、 Refinery CMS は既存の動作を override できたり、通常の Rails アプリの感覚で拡張できたり、はたまた engine の仕組みを使って必要な機能を拡張していける。 いろいろ手をいれていくと新たに追加した部分だけでなく、既存の環境を壊していないよね?と確認したくなるもの。既存環境のテストをできる状態にはしておきたい。 テスト環境の構築には、Refinery
こんにちは。 タイトルの通りなんですが、Capistrano みんなつかってるよねー。 ってことで独自のデプロイシステムをもってなくてさすがにFTPでUPはしてませんって人は結構使ってるもんだと思ってるんですけど、Capistrano ってなんかデフォルト各サーバで vcs の update 的なことをするか、ローカルにソースツリーを用意してやる場合に使えるのは scp で、なんかエコじゃないよねと言う話で、いちいちソースツリー全部配布されてたら転送量も時間もかかってしょうがないので、まーrsyncがいいんだよね、ということで、そんな時は capistrano_rsync_with_remote_cache (なげえよ) を使えばいいよね!ってお話です。 *1 luisparravicini/capistrano_rsync_with_remote_cache · GitHub このご時世
AWK リファレンス AWK とは? AWK はフィルタリングによく使用されるコマンドであるが、同様にしてフィルタリングに使用される grep や cut と決定的に違うところは、AWK 自体が独立した一つのスクリプト言語であるということだ。つまり、AWK は正確にはコマンドではなく、AWK スクリプト・インタプリタである。 例えばテキストから 1 フィールド目を抽出する場合には、awk '{ print $1 }' と実行するが、ここで引数として AWK に渡している { print $1 } の部分が AWK スクリプトのソースになっている。 ちなみにこの { print $1 } は「全ての行に関して 1 フィールド目を標準出力に出力せよ」という意味になる。 この AWK は Perl などといった他のスクリプト言語ほど高機能ではないが、単一のテキストファイルや標準入力からのテキスト
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く