タグ

ブックマーク / blog.matsumoto-r.jp (13)

  • mixi卒業式答辞

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 とりあえず、美しい鳥取砂丘の海岸の写真。 学校ではありません。 mixiはそろそろ卒業です。 こんな閉鎖的な空間だと、外でしゃべったらええやんって気持ちになっちゃうんで、更新するのは多分やめます。 もともとWEBってのは、個人が今まで実現することができなかったものを実現できる、つまりは不特定多数に対する個人の主張、それを手軽にすることができるみたいなもんが大きいので、せっかくここまできて、またちーさいネットワークコミュニティに自分を置くというのは、どうも性格的に無理っぽくなってきました。 WEB2.0の世界では、こうやって様々な社会をネットワーク内に形成するというのは、一つの特徴だし、情報の提供側に対して、情報を受ける側が、仲間意識を持って何

    mixi卒業式答辞
    sh19910711
    sh19910711 2022/10/09
    2007.03 / "閉鎖的な空間だと、外でしゃべったらええやんって気持ちになっちゃう / WEBに社会ができるというのは、興味深い話だし、社会ができるってことは、今までの繰り返しになることは誰にでも予想できる"
  • mrubyでカジュアルにLinuxのプロセスをサスペンドしてみよう

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 子育てと家事にいそしんでいてあまり研究ができていない松です。こんばんは。 今日はmrubyからLinux上で動いているプロセスをサスペンドしてイメージとして保存し、サーバ再起動後や任意のタイミングでサスペンドしたタイミングのプロセスを復帰させてみましょう。 そのために、mruby-criuというmrubyのモジュールを作りました。これはCRIUという技術を使っていて、上記のようなプロセスのサスペンドが可能になります。 今回は簡単なプロセスサスペンドの例を紹介します。 カウンタをインクリメントするプロセスを起動 まずは以下のように1秒毎にsleepしながらカウンタをインクリメントして表示する簡単なスクリプトを用意します。 [program l

    mrubyでカジュアルにLinuxのプロセスをサスペンドしてみよう
  • 人間とウェブの未来 - OSvのような環境でもサクっと動くmrubyのWebサーバ作った

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 OSvがとても面白いので色々いじっていると、結果的にmruby-simplehttpserverというWebサーバをmrubyで動かすためのmrubyモジュールができてしまいました。 これは、OSvのようにライブラリをがんがん入れられないような環境でも、とりあえずSocketとIOがあれば動くシンプルなWebサーバを動かすためのmrubyモジュールです。 そもそもOSvって何?という方はこの辺りを見るか、syuu1228さんに聞くのが良いと思います。簡単に言うと、これからの時代、ハイパーバイザにがんがん仮想マシンをデプロイする際に、その仮想マシンにリッチなOSがあまり必要ないケースって結構あって(例えばmemcachedだけが動いているVMと

    人間とウェブの未来 - OSvのような環境でもサクっと動くmrubyのWebサーバ作った
  • なぜApacheにmrubyを組み込もうと思ったか

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 なぜWebサーバソフトウェアであるApacheやNginx等にmrubyを組み込もうと思ったのかを整理しておきたいと思いました。 目的はWebサーバの開発支援 Webサーバの開発支援をしたい という壮大な目的が以前からありました。 それがどういうことかは後述するとして、ここでいうWebサーバの開発とは、Webサーバの内部機能拡張を指しています。それを行うにはどうしたら良いかをまず簡単に説明したいと思います。(スクラッチでWebサーバを1から実装するのもよいですが、ここではスコープ外とします) 例えば、Apacheを例にあげると、Webサーバの内部機能拡張はモジュール単位で組み込むという方法が取られています。ApacheやNginxはWebサー

    なぜApacheにmrubyを組み込もうと思ったか
    sh19910711
    sh19910711 2016/08/26
    昔Apacheモジュール書こうとして何度も挫折したのを思い出した
  • mruby-cgroupとmod_mrubyでApacheのリソースを制御、そこから得られるcgroupの挙動とは

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 C言語で書かれた任意のホストプログラムにmrubyを組み込み、そのプロセスリソースを簡単かつ強力に制御するために、mruby-cgroupというmrbgemを作り、以前の記事で紹介しました。 もちろん、mruby-cgroupをmod_mrubyに組み込むことで、ホストプログラムであるmod_mruby、さらにはApacheそのもののリソース制御が可能になり、Webサーバへのリクエスト単位でもリソース制御が可能になります。 しかし、軽量なリクエストに対して、無条件にリソース制御の機能を適応してしまうと、リソース制御を適応すること自体がボトルネックになる可能性が十分あります。また、それとは別に、cgroupの想定していない挙動が得られるかもしれ

    mruby-cgroupとmod_mrubyでApacheのリソースを制御、そこから得られるcgroupの挙動とは
  • 今日からmrubyをはじめる人へ

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 ApacheCon NA 2013に参加し、早めにポートランド国際空港に到着しました。時間があるので、今日(2013年3月2日)からmrubyを始める人へ簡単なチュートリアルをしようと思います。 mrubyというプロジェクト mrubyとは、組み込み機器やアプリ組み込みに最適化された軽量スクリプト言語です。記述方法は既存のRubyのように書くことができます。C言語で書かれたホストアプリにmrubyを組み込むことで、ホストアプリをRubyの記述でコントロールすることができます。例えばmod_mrubyは、RubyでApache APIをつつけるようにmrubyをApacheに組み込むためのモジュールで、ApacheモジュールをRubyで記述する

    今日からmrubyをはじめる人へ
  • 非同期I/OやノンブロッキングI/O及びI/Oの多重化について

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 2017年5月20日追記 エントリはI/OのOperationとCompletionおよびデータ整合性を混ぜてまとめた一部誤った定義になっているので、正確な定義を日語で知りたい方は下記にリンクしたエントリを読むことをおすすめします。 非同期とノンブロッキングとあと何か Apache2.4.1のevent_mpmnginx及びnodde.jsのアーキテクチャを考える上で、非同期I/OやノンブロッキングI/O、I/Oの多重化に関してある程度正確な理解が必要だと思ったのでまとめておく。 ここで「ある程度」といったのは、非同期を表すAsynchronousとノンブロッキングのnon-blockingは曖昧に使われる場合が多いからだ。まず、英語

    非同期I/OやノンブロッキングI/O及びI/Oの多重化について
  • Docker HubとGitHubを連携させてmod_mruby実行環境をDockerで簡単にデプロイ

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 Docker Hub公開のアナウンスがあったので、早速Docker HubとGitHubを連携させてmod_mrubyの実行環境をDockerイメージとして作った上で、それをMac上のVagrantで動くCoreOS内のDocker環境にデプロイしてみました。 エントリではmod_mrubyとしていますがここは重要ではなく、自身が開発しているGitHubのアプリケーションに置き換えて読んで頂けると、便利さが見えてくるかと思います。 試してみると、非常に簡単にDockerイメージを作成できた上に、迅速にmod_mrubyの軽量な実行環境をデプロイできたので、その流れを簡単に紹介したいと思います。 Docker Hubにアカウントを作ってGit

    Docker HubとGitHubを連携させてmod_mruby実行環境をDockerで簡単にデプロイ
  • Apache httpd 2.4の便利そうな新しいコア機能

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 Apache httpdの2.4系を触っていて、面白そうだなーと思う新しいコア機能を幾つか紹介したいと思います。こういうの欲しかった!と思える機能がちらほら見受けられます。 MPMをLoadableに扱える PreforkやWorker、eventのMPM切り替えを、これまではコンパイル時に行う必要がありましたが、それぞれのMPMがモジュール化されLoadableになりました。これによって、MPMを切り替えて試したりする作業が格段にやりやすくなったと思います。 むしろこれになれて2.2系を触ると、うおおおーっめんどくさい!ってなります。 モジュール単位やディレクトリ単位でログレベルを制御 エラーログの出力レベルを、モジュール単位で設定できたり

    Apache httpd 2.4の便利そうな新しいコア機能
  • apxsを使ってApacheのディレクトリ構成を動的に取得

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 もはやApache httpdのディレクトリ構成やファイル配置はディストリビューションによって全く異なってきているのが現状です。 そういう状況で、システムにインストールされているApacheの設定に対して、なにかアクションを起こしたい場合は、システム依存のパスをスクリプトに直接かいている人もいるかもしれません。 そこで今回は、apxsコマンドさえ特定できれば、Apacheのディレクトリ構成やファイルの配置を動的に取得できるので、それを試してみましょう。 apxsのクエリオプションを使う 動的に構成情報を取得するためには、apxsのクエリーオプションを使えば良いです。クエリオプションは-qで与えられており、例えば以下のコマンドを実行すると、 [

    apxsを使ってApacheのディレクトリ構成を動的に取得
  • GNU GLOBALとvimで巨大なコードでも快適にコードリーディング

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 これまでも、多くの記事にされていて、恐らくKernelや巨大なコードを読んでいる人にとっては当たり前なのかもしれませんが、あまりに快適だったのとこれをきちんとやれてなかった事に自戒をこめて記事にしようと思います。grepとかscreenを駆使していた時間を返してほしい! 対象者 僕がLinux大好きなので、Linux上での動作を前提にしています。対象者はLinux KernelやApache HTTP Server等、数万から数十万、さらには数百万行のコードをじっくり読んでいきたいと考えている人におすすめしたいと思います。巨大なコードを何のツールも使わずに読むのはかなりきついはずです。しかし、今回はGNU GLOBALと呼ばれるソースコードタ

  • SPDY対応アプリケーションをC言語で実装する方法

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 昨日、SPDYのCライブラリであるspdylayがめでたく1.0.0としてリリースされたので早速使ってみました。まずはmacOSX10.8.3で試してみました。ビルド方法はメモに書いていますので参考にして下さい。 今回はSPDYで通信できるクライアントをCで書く際に、どのような実装の流れになるかを紹介したいと思います。エントリで実装流れを把握したら、spdylay/spdylay.hを読む事をおすすめします。 SPDYのCライブラリspdylayの概要 spdylayのAPIはコールバックベースで実装されています。ただ、今回はコールバックされる関数の詳細な実装まで説明すると、全体的な流れが見えにくくなるので、コールバック関数の実装の仕方は省

    SPDY対応アプリケーションをC言語で実装する方法
  • mod_spdyから学ぶSPDYとストリーム並列処理の実装

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 HTTP関連の研究をしているので、そろそろ古い技術を詰めるばかりではなく(これはこれでとても大事な事なのですが)、新しい技術についても調べておきたいところです。 ということで、僕のSPDYに関する現状の理解を、mod_spdyに関する情報を元にまとめておきたいと思います。 SPDY概要 SPDYの概要を表す図としては、下記が良く用いられます。 TLS上にのせたSPDYストリーム上でHTTPやWebSocketを扱うプロトコルで、特徴としては、以下の4つがあげられます。 ストリームの並列化 フレームレイヤーやヘッダーの圧縮 リクエストの優先処理 サーバからのリソースプッシュ HTTP/2.0についても、SPDYを元に仕様が検討されています。では

    mod_spdyから学ぶSPDYとストリーム並列処理の実装
  • 1