タグ

2015年10月5日のブックマーク (4件)

  • lua-nginx-module を導入した話 (1) JSON-RPC 2.0 batch request編 - mosa_siru’s blog

    nginxにluaを組み込む openresty/lua-nginx-module · GitHub というのが非常に便利で、単なるreverse proxyだったnginxに、あらゆる役割を持たせられるようになります。 nginxの設定を動的にしたり、nginxからDBやmecached, redisなどへのアクセスも可能になります。HTTP requestを発行することさえできます。 これにより、例えばnginxの設定をDB化したり(NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした)、ちょっとした認証機能を入れたり、アクセスをmemcachedやredisなどに記録して攻撃を動的に判定してブロックしたりとか、nginxのレイヤーで色んなことができるようになります。(バックエンドのアプリケーションでも勿論同様のことは可能ですが、前段でブロックできるのが嬉し

    Ehren
    Ehren 2015/10/05
  • 機械学習ツール最前線

    ここ1年ほど、人工知能、特に機械学習Machine Learning)に関する技術革新が著しい。ディープラーニング(多段のニューラルネットワークによる機械学習)が画像認識、音声認識で目覚ましい成果を挙げているのは、その象徴だ。 それに伴い、機械学習の機能を情報システムに組み込むツールも充実してきた。クラウドサービスして提供する「クラウドAI」を米IT企業が相次ぎリリースしたほか、大規模データを扱えるオープンソース実装も増えている。 特集では、主要な機械学習ツールの特徴や使いこなし方を解説する。 [6]国産の深層学習フレームワーク「Chainer」とは何か 稿では、Preferred Networks/Preferred Infrastructureが開発したディープラーニングの開発フレームワーク「Chainer」の概要を説明する。 2015.10.01 [5]NVIDIA DIGIT

    機械学習ツール最前線
    Ehren
    Ehren 2015/10/05
  • 障害の事後分析を読んで得た教訓 ― 「何がシステムを停止させるのか?」 | POSTD

    私はポストモーテム(事後分析)の記録を読むのが大好きです。ポストモーテムを読むと勉強になりますが、大抵の教材的資料とは違って、興味深いストーリーが含まれているのです。相当な時間をかけてGoogleMicrosoftのポストモーテムを読みました。大きな障害を招く最大の原因について、私は(まだ)きちんと分析していませんが、何度も繰り返し目にするポストモーテムのパターンがいくつかあります。 エラーハンドリング 適切なエラーハンドリングのコードを書くのは難しいものです。エラーハンドリングのコードに含まれるバグは、 大きな 問題を引き起こす主な原因となっています。つまり、エラーによってバグのあるエラーハンドリングのコードが実行されるということは、単に個々のエラーが重なるだけという事態にはとどまらないのです。障害が重なって重大なシステム停止につながることはよくあります。それはある意味明らかなことで、

    障害の事後分析を読んで得た教訓 ― 「何がシステムを停止させるのか?」 | POSTD
    Ehren
    Ehren 2015/10/05
  • [Ruby] Ruby 3.0 の特大の非互換について - まめめも

    タイトルは釣りです。すみません。Ruby 3.0 はかなり先の将来の話なので、最終的にどうなるかはわかりません。でも Ruby 3.0 に重大な変更が予定されているのは事実なので、一緒に考えて欲しいと思います。 immutable string literal Ruby 3.0 では文字列リテラルをデフォルトで immutable (破壊的変更不可) にする、という方針が『決定』しました。(Feature #11473: Immutable String literal in Ruby 3) つまり、次のようなプログラムが動かなくなります。(当チケットから少し改変して引用) sql = "SELECT #{sec_id}, pt.path, st.doc_count " sql << "FROM #{stats_tablename} AS st " #### ←ここで例外: can't m

    [Ruby] Ruby 3.0 の特大の非互換について - まめめも
    Ehren
    Ehren 2015/10/05