本日でようやく前期の担当授業が終了し、一息つきました。今回の授業では、Ruby on Railsで独自開発しているLMSを用いました。残念ながら、授業用e-Learning教材とLMSを共に開発しながらの自転車操業だったので、研究成果になるほどの結果は得られなかったのですが、サーバ運用についてはある程度のノウハウが得られたので、簡単にメモしておきます。
Railsサーバとしては、当初、CenOSサーバでapache+passenger構成を利用していました。passengerは、ローカルで開発したrailsファイル一式をリモートサイトに置くだけで稼働でき、非常に運用が楽なのですが、httpアクセスに対する応答時間がかかることや、spawn timeが数秒程度かかるなどの反応遅延が気になってました。なお、passengerについては、この記事などを参考にチューニングした後は、多少反応が良くなりました。
その後、twitterで使われていることでも評判のunicornと、unicornと一緒に使われることの多いwebサーバのnginxの構成に変更しました。それらの設定の際は、以下の記事を参考にしました。
上記3つめの参考ページに記載されているように、”Rails 2.3.x isn’t compatible with Rack 1.1.0″のようで、これには結構はまりました。
なお、この構成にしただけで、チューニング後のpassengerとapacheの構成と比べても、約30%反応速度が速くなりました。very nice!
この速度チェックは、dojoライブラリを用いている、運用中のLMSサービスに対して行っています。dojoライブラリは多数のjavascriptファイルを読みこむため、このように読み込みファイル数が多い場合は、nginx+unicorn構成が有効になるように感じています。
勤務先の秋田大学総合情報処理センターでは、スーパーコンピュータ関連の講習会を最近2回開催しました。どちらの講習会も主な対象者は秋田大学の教職員・学生でしたので、ここでは事後のアナウンスのみしておきます。
まず、6月18日には、東北大学サイバーサイエンスセンターとの共催で「東北大学サイバーサイエンスセンター講習会」を開催しました。当日は東北大学サイバーサイエンスセンターから、計5名の教員・技術職員が来秋してくださり、講演と講習を実施しました。講習では共同利用施設である東北大学のスーパーコンピュータSX-9で、実際にプログラムを実行させてもらい、参加してくれた多くの学部学生・大学院生にも良い経験になったのではと思っています。

また、7月16日には秋田大学保有のスーパーコンピュータSX-8iの講習会を開催しました。この講習会では、NECソフトウェア東北株式会社から講師をお招きし、SX-8i上で実行するプログラムのベクトル化の概要とベクトル化率の高め方などを、座学で講習してもらいました。現在、秋田大学総合情報処理センターでは、SX-8iの学内利用の課金無償化を行っているので、この講習会をきっかけに、SX-8iの利用を検討してもらえたらと思っています。

現在の私の研究(e-Learning)では、スーパーコンピュータを全く使っていませんが、大学院生時代は東北大学が当時保有していたSX-4で数値計算をしていました(ああ、あの時苦労して作った「第一原理分子動力学法」のコードは、全く闇に埋もれてしまった・・・)。このためFortran90の話やベクトル化率の話は、とても懐かしかったです。また、東北大学サイバーサイエンスセンター内の展示室では、SX-4が展示されているとのこと。今度、見に行ってみようかな。
勤務先の秋田大学総合情報処理センター内に、「オープンスペース」を新設したのでアナウンスします。
総合情報処理センターのPC利用者数が年々増加しているのに対して、センター内で利用できるPCの数が十分ではなかったため、昨年度末からセンター内を整理して、ようやく数日前に新規のPC利用スペースの運用を開始しました。
従来のPC利用スペース(端末室)では、それぞれの場所に対してPC台数の違い程度しか差がなかったため、今回のPC利用スペース新設では、従来とは違った使い方もできる場所としてデザインしました。その際には、「「未来の学び」をデザインする」に記載のMITのメディアラボや、はこだて未来大学のオープンスペースを参考にさせてもらいました。とはいえ空間的な制約があるため、小規模なオープンスペースとしての新設ですが。
この新設オープンスペースでは、その使い方により4つのコーナーを設けましたが、特に力を入れたのは、ノートPCを6台ずつ用意した机を2台設置したグループ学習コーナーです。対面でのコミュニケーションをとりやすくするため、ノートPCを設置し、PC画面を共有するためプラズマディスプレイも設置しました。また、このコーナーでは、SkypeインストールPCとマイクスピーカーも用意し、プラズマディスプレイとSkypeを用いたテレビ会議利用も可能としています(要予約)。なお、このコーナーは教職員に加え学生でも利用予約をできるようにし、複数人数での協調学習をスムーズに行えるように運用しています。
このオープンスペースの開設から1週間程度経ちましたが、その間の学生の利用頻度も高く、ほっとしているところです。
なお、オープンスペース運用開始時に学内に配布したリーフレット画像を、以下に添付しておきます。


私の勤務先である秋田大学総合情報処理センターでは、次年度、学習者同士が会話をしながらPC操作ができる端末室を、一部屋新設することを予定しています。その参考資料として、以前から気になっていた、美馬のゆり・山内祐平著の「未来の学び」をデザインするを読み終えたので、感想を記載します。
同書では、「未来の学び」を
学校に入学する前の子どもたちが、日々嬉々としていろいろなことを学んでいるように、大人にとっても、学びを楽しい知的探求の活動とすることができるはずです。これが著者らが考える「未来の学び」の姿です。(p.30)
と位置づけ、それを育む学習環境として、「空間」、「活動」、「共同体」の3視点から実践例やヒントを紹介しています。
第1章の「空間」では、MITのメディアラボや、はこだて未来大学での空間デザインについて述べられています。空間設計の具体例として特に参考になったのは、グループ学習教室の設計のポイントとして述べられている、
「グループ作業ができるような机」というだけでなく机やいすが動いて、人数や活動に応じて変形できる(p.104)
と言う点。はこだて未来大学の実践例として、壁に沿ってPC、中央に可動式のテーブル等を配置したケースが挙げられています。可動式の机にPCを常設するのは難しいと思うので、この例のように固定PC机と可動グループ学習テーブルを分離するか、固定グループ学習テーブルにPCも設置するか、のどちらかになるのでしょうか。このあたりは、もう少し実践例を調査したいと思っています。
第2章の「活動」では、
人間の学習を「知識の獲得」という個人的な営みではなく、対話やコミュニケーションから生まれるものであり、その時の状況や文脈とは切り離せないものである(p.141)
とする状況的学習論について、スファードによる獲得メタファと参加メタファの対比が紹介されている箇所などが、特に参考になりました。
第3章の「共同体」では、
通常、日本の学校で行われるテレビ会議は、儀式的な側面が強く、遠隔地間でお互いに調べたことを発表して終わってしまう場合が多い(p.171)
と指摘している点が印象に残っています。確かにこれはその通りで、多くのテレビ会議システムを用いた遠隔交流授業では、著者らが言う
現代の関心共同体にも適用可能な概念として実践共同体(p.155)
の構築までは、時間等の都合で実現できてないケースが多いのでは、と感じています。このあたりは、ベストプラクティスも集積できていると思うので、同種の授業を設計する際は注意したい点ですね。
美馬 のゆり 山内 祐平
東京大学出版会
売り上げランキング: 117218
Flex + Railsの構成でwebアプリケーションを作ることを考えているので、購入したFlex on Rails: Building Rich Internet Applications with Adobe Flex 3 and Rails 2 (Developer’s Library)を参考に機能チェックをしています。
FlexとRails間のデータの橋渡しには、同書でも取り上げているRubyAMFを使おうと考えているため、早速”Chapter5 Passing Data with AMF”を読み進めるも、クラスマッピングに関する記述でつまづいたのでその覚え書きをメモしておきます。
利用している環境は以下の通りで、これは”Flex on Rails”の環境より新しいものとなります。
- Ruby: 1.8.7
- Rails: 2.3.5
- RubyAMF: 1.6.5
- Flex SDK: 3.5
まず、Flexから、rubyamf_scaffoldで生成したcontoller上のfind_allを呼び出すことはうまくいきました。
次に、Flex上のVOで以下のようにRemoteClassに対するaliasを設定し、
package flexonrails.examples.vo {
[RemoteClass(alias="Contact")]
[Bindable]
public class Contact {
...
}
}
rubyamf_config.rbで”ClassMappings.assume_types = true”の指定をした後に、この型のデータをFlexからRailsのcontoller上のsaveに渡そうとすると、以下のようなエラーが表示され正常に動作しません。
You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[]
ここやここを見ると、Rails2.3系では解決していない問題のようですね。
取り急ぎ、rubyamf_config.rbで”ClassMappings.assume_types = false”にした上で、
ClassMappings.register(:actionscript => 'Contact', :ruby => 'Contact', :type => 'active_record')
のように手動でマッピングすると、Rails2.3.5でも問題なくsaveが呼び出せました。
Tony Hillerson Daniel Wanja
Addison-Wesley Professional
売り上げランキング: 26867
おすすめ度の平均:

RubyAMFについて内容が貧弱でちょっとがっかり