タグ

ブックマーク / nari.hatenablog.com (17)

  • はじめての並行プログラミング(1) - I am Cruby!

    第53回 社内勉強会に使用したテキストファイル「はじめての並行プログラミング(1)」 今回話すことスレッド? 並行プログラミングの難しさ 複数の仕事を同時に『並行プログラミング』とあるプログラムで何かの処理を同時におこないたい 方法は大きく分けて二つプロセススレッド(軽量プロセス)※ スレッド in プロセス の関係。プロセスとスレッドの違い(簡単に言えば)プロセスは「資源を共有しない」。スレッドは「資源を共有する」。スレッドが共有するもの メモリアドレス空間、ファイルハンドルなどスレッドが共有しないもの プログラムカウンタ、スタック、ローカル変数スレッドを使うメリットよいとこ 一つのプロセス内で並行処理が可能 非同期な処理とか 起動も低コスト データの同期が低コスト グローバル変数で受け渡しなどわるいところ 共有データの扱いが難しい(超重要)スレッドの安全性(safety)スレッドセーフ

    s5ot
    s5ot 2011/02/14
  • hudsonでrvmを使ってrails3アプリを継続的インテグレーション(CI) - I am Cruby!

    hudson, rails前々から興味があったhudsonをrails3のアプリケーションで使ってみた。rvmを利用して綺麗な環境でビルドすることが目標。 hudsonの起動第1回 Hudsonの導入|gihyo.jp … 技術評論社を参考にしました。すんなり動くかと思いきや、HTTPサーバが起動しない。しかもエラーも吐かないものだから困った。 原因を調べるとhudsonが悪いワケじゃなかった。winstoneの中でIPv6localhostにconnectしているところでシーンという感じ。ip6tablesを見るとloが空いてなくて、パケットがことごとく捨てられてたみたい。 ping6 ::1 すら何も帰ってこなかった…。タイムアウトに時間がかかるのでエラーが吐かれる前に手で止めてて、エラーが確認できなかったのです。しくしく。 とりあえず、IPv4を優先的に使うようにする。 $ jav

    s5ot
    s5ot 2010/12/23
  • 3日目 - I am Cruby!

    RubyKaigi2010最終日。寂しいなぁ。 ベットから落ちて腰と後頭部を強打。朝ですねってことで起きた。朝ご飯ではオムレツをべた。うまいけど、い過ぎた。部屋に帰ると鍵がない。どうやら部屋の中に忘れたみたい。フロントで鍵をもらう。 さて、最初はmrknさんのセッション。BigDecimalのインスタンス生成の辺りは酷いんだなぁ、とか。あとモードのお話は聞いていて楽しかった。こうやってRubyはよくなっていくのだなぁ。 suzumura_ssさんのセッション。castoroは便利そうだと思った。ちょっとあとでコード読んでみよう。ToshiyukiTerashita’s castoro at master - GitHub 次が大変迷うんだけど、miuraさんの方に参加。yarv2llvmの話。ちょっと僕は理解するのに精一杯だった。かなり大変なことを仕様としていることは理解した。 芝さん

    s5ot
    s5ot 2010/08/30
  • RubyKaigi2010発表 - I am Cruby!

    RubyRubyKaigi2010ではGCについて発表します。1日目の16:00〜17:00の所です。日Ruby会議2010, 8月27日〜29日なんと、大ホールになってしまったので…。たぶん、みなさんの考えだと「あー、裏番組に行こうかな」みたいな感じかもしれないのでこのブログで宣伝しておきます。 今回は「LazySweepGC」の話をします。「ついにCRubyのGCの根幹部分に手が入ったね!」みたいな話です。マニアックな人はそれなりに楽しめる内容だと思います。 やはり、大ホールなので「GC何それおいしいの?」的な人も考慮した内容を前半にいれています。GC初心者の方もお気軽にお越し下さい。 ちょっとしたゲームを使ってデモをやります。narioだったかなんだったかちょっと忘れちゃいましたけど、以前作ったゲームよりはクオリティが低いです。 ちなみにスライドは英語で書きませんし、英語で喋ること

    s5ot
    s5ot 2010/08/25
  • ruby1.9.2からロードパス内にカレントディレクトリを含まない理由 - I am Cruby!

    rubyruby1.9.2からロードパス内にカレントディレクトリを含まなくなりました。 $ rvm -e "puts $:" info: ruby-1.8.7-p249: ruby 1.8.7 (2010-01-10 patchlevel 249) [i686-linux] /home/xxx/.rvm/rubies/ruby-1.8.7-p249/bin /home/xxx/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/site_ruby/1.8 /home/xxx/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/site_ruby/1.8/i686-linux /home/xxx/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/site_ruby /home/xxx/.rvm/rubies/ruby-1.8

    s5ot
    s5ot 2010/07/06
  • Lang-8の添削機能はお手軽に日本人の英語力を上げてくれる、と思う!! - I am Cruby!

    English最近、Lang-8を改めて使い始めた。このLang-8、私は日人が英語を学ぶのに非常に適したサービスだと思う。  日記は書かない私の使い方はちょっと特殊で、まず日記を書かない。なぜかというと、日記を書けるほどの英語力がまだないからだ。辞書を引き引きしながら日記を書くのは大変だ。私はそんな労力を使って日記など書きたくない(えっへん!)。 「面倒」というのは勉強の大敵であると思う。面倒なものは長続きしない。長続きしなければ知識は定着しないので、「簡単」であることが勉強には求められる。(もちろん、勉強に対する「自分の情熱」があれば、それが一番よい)  人の日記の添削結果を見る私は主に「他人がどのような添削をされたか」を見る。マイホームの「あなたと同じ言語を学習している人の日記」を開き、添削があった日記を読むのだ。私の場合は「英語」の日記がでてくる。そのため、ほとんどが日人が書い

    s5ot
    s5ot 2010/05/30
  • GC本の作業ログ - I am Cruby!

    結城さんのデザパタの作業ログがとても参考になったので。# しかし、あのクオリティを持つがたった3ヶ月で書き上がったというのは神がかり的ですよね。 2009/04/29 執筆開始 2009/05/30 Pythonの章書き始め 2009/07/06 Pythonの章書き上げ: 78P 2009/07/11 Pythonの章を監修者様へ 2009/07/30 DalvikVMの章書き始め 2009/08/09 DalvikVMの章書き上がり: 58P 2009/08/09 Pythonの章をレビュア様へ 2009/08/17 Rubiniusの章書き始め 2009/09/05 Rubiniusの章書き上がり: 47P 2009/09/07 DalvikVMの章をレビュア様へ 2009/09/07 保守的GCの章書き始め 2009/09/14 DalvikVMの章を監修者様へ 2009/09

    s5ot
    s5ot 2010/03/12
  • 「ガベージコレクションのアルゴリズムと実装」がAmazonで予約可能に! - I am Cruby!

    gcbook, GCガベージコレクションのアルゴリズムと実装作者: 中村成洋,相川光,竹内郁雄出版社/メーカー: 秀和システム発売日: 2010/03/18メディア: 単行クリック: 218回この商品を含むブログ (3件) を見るどうやら予約可能になったようです。どうぞよろしくお願いいたしますm(_ _)m # 注:なお、上部のリンクは私のあさましリンクとなっています。# このリンク経由で買っていただくと、そのお金を買ったりして、豪遊する予定です!!(キリッ

    s5ot
    s5ot 2010/03/07
  • 「ガベージコレクションのアルゴリズムと実装」という本を書きました。

    gcbook, gcai, GCGCLoverのみなさん、お待たせしました。「ガベージコレクションのアルゴリズムと実装」の情報公開です。 書名:ガベージコレクションのアルゴリズムと実装 著者:中村 成洋/相川 光 監修:竹内 郁雄 ページ数:472ページ 体価格:3,200円 発売開始日:2010年3月17日(水) ※地域・書店によって遅れることがあります ISBN:978-4-7980-2562-9 C3055 読み所 書は次の2つのテーマを扱います。 1.GCのアルゴリズム(アルゴリズム編) 2.GCの実装(実装編) アルゴリズム編では、これまでに考案されてきた数多くのGCアルゴリズムの中 から、重要なものを厳選して紹介します。伝統的かつ基的なものから、やや 高度なアルゴリズムを選定しています。GC独特の考え方や各アルゴリズムの特 性などを理解していただくのがアルゴリズム編の最大

    s5ot
    s5ot 2010/03/04
  • シャイな人が懇親会の楽しむには - I am Cruby!

    イベント, Tips技術系のイベントにつきものなのは懇親会です。懇親会というと当はみんなでお酒を嗜みながら、ワイワイキャッキャする会なのですが、シャイな人はそうはいきません。 私はかなりシャイな人間なので、まず知らない人にいきなり声をかけれません。しかし、そうすると誰も私のことなんか知らないわけで、声をかけてもらえません。つまり、人とは喋らずにビールを呑み、周りの人の話を聴きながらつまみを頂くというロンリーストレンジャースタイルに陥るわけです。 それってかなり退屈ですし、もったいないですよね。でも、どうしたらいいのでしょう。そこで私が考えたシャイな人向けの懇親会お楽しみ術を以下にまとめます。# お楽しみ術ってなんかかっこいいな  自分のことを知っていると期待しすぎない「自分のことを知っている人はほとんどいないんだ!」という気持ちで懇親会に臨むべきです。「誰か知っててくれるはずや!」と思い

    s5ot
    s5ot 2009/09/30
  • レールに乗っていゆくには - I am Cruby!

    RailsRailsのレールにうまく乗るのは難しいなぁと日々実感する毎日。ということで最近思っていることをメモ程度に。  fixture は使わない、代わりにmachinistかfactory_girl もうこりごりです。 fixture。 感想&理由はあとで書く 手動テストデータをどうするか。 fixture を自動テストで使っている場合、どうしてもinvalidなデータが入る。動かない。yaml_waml や yaml_db を使ってDBダンプしたデータを使うとどうか。 まぁ machinist とか使う場合は rake db:fixtures:load でもいいか。 マスターはymlで書く。fixtureみたいな感じで読み込めばいい。(DBのマスタデータをfixtureからロード - I am Cruby!) マスターデータに id は絶対に振ること。id : 235121651 と

    s5ot
    s5ot 2009/09/03
  • Railsのちょっと気の利いたプラグインたち - I am Cruby!

    Railsこれはちょっとだけ便利だな!というRailsプラグインたちを集めてみた.Safe ERB サニタイズを注意してくれるプラグインsvn - Revision 6: /plugins/safe_erbSafe Record SQLエスケープを注意してくれるプラグインauthorNari’s safe_record at master — GitHubannotate_models モデル,fixtureファイルの先頭にカラム名などのスキーマの情報を書いてくれるプラグイン Plugins - Annotate models - Agile Web Development rails_footnotes development環境で常に下にデバッグ用の情報が出力される.(例 params, session, SQL, filter内容)drnic’s rails-footnotes at

    s5ot
    s5ot 2008/11/26
  • 次に来る言語 - I am Cruby!

    etcCyanだと言っていた.なんと,まつもとさんとyharaさんがだぜ...ごくり言語仕様がすごく面白いのだとか.使ってみるかな.Cyan, Yet Another New language - takuto_hの日記 高校生なのか.すごいなー.いや,tazantさんの中学生にも驚いたけど.これもびっくりだ.

    s5ot
    s5ot 2008/11/26
  • passengerを読み解く(例のあのプロセスが動くまで) vol2 - I am Cruby!

    passenger, Ruby, Railsさて,第二回ではApache拡張ライブラリ内部を少し読んでみたいと思う.その前に,Passengerでの高速化のうんちくを一つ.  高速化についてPassengerではmod_rubyのようにruby自身をApacheに取り込んで,プロセス生成せずに高速化を図る手法とは違う.FastCGIのように一度作ったプロセスは極力永続化させようという手法で高速化を図る.ここらへんはPassenger アーキテクチャ概要 (koshigoe 仮訳) 2. Passenger のアーキテクチャを見ていただくとよいかと思う. 簡単に説明すると,PassengerはApplicationPoolServerというまんまアプリケーションをプールして管理するプロセスを立ち上げて,Apacheのプロセスはそのプロセスに接続を依頼する.そして,ApplicationPoo

  • passengerを読み解く(動かすまで) vol1 - I am Cruby!

    Ruby, Rails, passengerpassengerを読んでみる事にしました.なんでかと言いますとWeb(サーバとか)が大好きだからです. passengerとは簡単に言うと,HTTPサーバであるApacheにアプリケーションサーバを組み込んで,ApacheだけでRailsが動く拡張モジュールです.また,言い換えると、PassengerはApacheを拡張し、アプリケーションサーバーのように行動できるようにします.通常,ApacheからRailsアプリケーションを動作させる場合,mongrelなどのAPサーバが必要ですが,それが不要です.それと,色々と高速に動作します.その理由とかは,後々読んでいくうちに解説できればと思います.(というかまだ読んでないのでよく分からない)  動かしてみるでは,PassengerをApacheに組み込んでRailsアプリを動かしてみましょう.Rai

  • GC用プロファイラ作った! - I am Cruby!

    GC, Rubyどういうもの? GC.profile = true # 計測対象の処理 GC.display ってすると ---- 以下のプロファイル情報が出力される ----- GC 10 invokes. Index Use Size(byte) Total Size(byte) Total Object GC time(ms) 0 338620 360448 18018 0.00000000000000014129 1 605620 622592 31122 0.40010000000000001119 2 1080300 1097728 54873 0.00000000000000007657 3 1931420 1949696 97461 0.40000000000000018874 4 3470040 3489792 174447 0.4001000000000003442

  • どきどきの2ndDay - I am Cruby!

    RubyKaigi, RubyIRCログここに置きました。rubykaigi_gc_irc.log概ね好評で嬉しい限りです。 動画スタッフの方が動画を上げてくださいました。ありがとうございます。kaigifreaks+=1また、RubyKaigi2008で検索するといっぱい出てくるのでよろくね。ニコニコ動画(夏) 内容写真は竹迫さんのFlickrから。Flickr: takesako’s Photostreamどもです!今日はサブセッションでしゃべくりました! 直前はまぁ凄く緊張したわけですが、しゃべり出すとそうでもなく。みなさんに暖かい目でみてもらえたのでよかったなぁと。あと、不真面目な資料作ってよかったなぁと思いました。let’s gc improve.pdf 立ち見の人も出るくらいの盛況ぶりで(これは休憩が入ったからかな)最後の拍手に感動してしまった。。(TT) これもスタッフの方々

  • 1