タグ

2015年2月27日のブックマーク (6件)

  • OOエンジニアの輪! ~ 第 38 回 笹田 耕一さんの巻 ~ | オブジェクトの広場

    現在のお仕事について ---最初に、今どういうお仕事をやっておられるか、お話していただけますか? 東京大学大学院の情報理工学系研究科創造情報学専攻で特任助教をしています。ここ、情報理工学系研究科秋葉原拠点は、創造情報学という最近できた専攻のラボになっているんですが、主にここに常駐しています。 そこで具体的に何をしているかといいますと、文科省の「先導的 IT スペシャリスト育成推進プログラム」というプロジェクトに従事しています。産業界から「きちんとわかる IT 技術者が少ないので大学もなんとかしてくれ」という要請があったらしく、文科省の公募により、数拠点が選ばれました。 で、東大と東工大と NII(国立情報学研究所)の 3 つの研究機関が協力してそのうちのひとつ「情報理工実践プログラム」を行っているんですが、私はそこに雇われている、というわけです。 この拠点では、実際にソフトウェアを作ること

    OOエンジニアの輪! ~ 第 38 回 笹田 耕一さんの巻 ~ | オブジェクトの広場
    bunnyhop
    bunnyhop 2015/02/27
  • Nobody understands the GIL - Part 2: Implementation

    Nobody understands the GIL - Part 2: Implementation Published on June 14, 2013 by Jesse Storimer Last time, I began wanting to take you on a deep dive into MRI to see how the GIL is implemented. But first, I wanted to make sure I was asking the right question. Part 1 formulated the question, but today we'll look for answers inside MRI itself. We'll go looking for that elusive creature they call th

    Nobody understands the GIL - Part 2: Implementation
    bunnyhop
    bunnyhop 2015/02/27
  • Rubyコンテキストスイッチの不思議・その2 - 中年engineerの独り言 - crumbjp

    Rubyコンテキストスイッチの不思議 - LinuxとApacheの憂の続き Ruby extension内ではコンテキストスイッチは起きないハズなのに EventMachine内では確かに起きてる!の謎 EventMachineのソースを読む 詳しい事は省略するが pure_ruby.rb => run_machine ココでextensionの世界に入って来る。 んで、地続きで進み・・・ cmain.cpp => EventMachine->Run() で、EventMachineに入る em.cpp => EventMachine->Run() => _RunEpollOnce() => epoll_wait ココが問題の個所。 でもあからさまに変な奴がいるぜ! #ifdef BUILD_FOR_RUBY : TRAP_BEG; s = epoll_wait (epfd, epol

    Rubyコンテキストスイッチの不思議・その2 - 中年engineerの独り言 - crumbjp
    bunnyhop
    bunnyhop 2015/02/27
  • Rubyコンテキストスイッチの不思議 - 中年engineerの独り言 - crumbjp

    仕事上、ROMAに関わっているので、稀にはRubyもやります。 今回検証に使ったソースは此方 https://github.com/crumbjp/Personal/tree/master/study/ruby こんな感じで動くはずです gem install eventmachine bash run.sh Rubyスレッドのコンテキストスイッチの話 Rubyのスレッドはご存じの様に、1.8系は疑似スレッド、1.9系ではネイティブスレッドだけれど並列処理はしない(逐次実行)実装となっている。 疑似スレッド(green threads) OS上のスレッドを利用せずメインスレッドをRubyインタプリタで切り替えている。 当の意味での並列処理を行わない。 コンテキストスイッチはsignalがトリガとなっており、特定出来ないタイミングで切り替わる(※と思っていた) しかし特にExtension

    Rubyコンテキストスイッチの不思議 - 中年engineerの独り言 - crumbjp
    bunnyhop
    bunnyhop 2015/02/27
  • CRubyのGVLとビジーループ - kyabの日記

    mrubyのVMのマルチスレッド対応がgithubにて議論されています。 multi-thread support on the RiteVM #1657 自分もthread-safeなVMが欲しいなぁと思っています。STM32F4DiscoveryにFreeRTOS載せて使ってみたい。 並行・並列処理の戦国時代? さて、マルチコアが普通になったし、WebアプリのC10K問題があるので並行・並列処理は昨今のトピックです(多分)。 ただマルチスレッドプログラミングは難しすぎ!というは昔から言われていたことです。 で、もうちょい並行・並列処理を書きやすく出来ないのかよ?ということでErlang,go,Scala(Actor),EventMachine,Thread pool ,node.js,deferred,future,java.util.concurrent色々出てきました (言語とライ

    CRubyのGVLとビジーループ - kyabの日記
    bunnyhop
    bunnyhop 2015/02/27
  • ActiveRecordを拡張するgemでテストを書くには? - Money Forward Developers Blog

    エンジニアの越川です。ActiveRecordを拡張するgemを作りたい。そんなときテストで使うダミーのモデルのテーブルをどう作るかに悩みますね。 格的なRails拡張ではrails pluginコマンドを用いて開発することが多いと思います。その際は自動で作成されるspec/dummy配下のダミーアプリでmigrationを書くのが楽です。 一方そこまで大きくないActiveRecordの拡張ではもっと手軽に書きたいですね。 例として、protectedカラムがtrueのとき、destroyが出来ないようにするActiveRecordの拡張を考えてみましょう。(今回作成したgemは、github.com/ppworks/kienaideに置いてあります。) gemの作成手順 テストの書き方 <-題はここです rubygemsにリリース と言った流れを見て行きましょう。 gemの作成手順

    ActiveRecordを拡張するgemでテストを書くには? - Money Forward Developers Blog
    bunnyhop
    bunnyhop 2015/02/27