サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ブックレビュー
blog.matsumoto-r.jp
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 mrubyでKey-Value Storeにアクセスできるクライアントをこれまでいくつか作ってきたので、VedisやHashの性能が見たいというのと、その他ちょっとした興味でそれぞれのKVSのSET/GETを投げてみて速度の比較をしてみました。 といっても、それぞれの良さを考慮したベンチマークではなくソフトの良し悪しを測るものではないので、この条件だとこういう結果になるという参考程度に見て頂ければと思います。 比較対象は、mrubyのHash、Redis、Vedis(In-Memory)、Vedis(On-Disk)、Memcachedです。それぞれ、Fedora19のyumでインストールした後にserviceコマンドで起動させただけの状態で
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 フクオカRuby大賞優秀賞を頂き、その夜博多のホテルで受賞の余韻に浸っていました。次の日にはセミナーでの発表も控えているので、身体を休めるべく早めにベッドに向かい寝る事にしました。その夜は、めずらしくホテルでぐっすりと眠る事ができ、朝起きていつものようにPCを起動させると、日本OSS奨励賞の受賞通知メールが届いていました。 今年は春日大社でおみくじを引くとなんと「凶」だったため、「あー、今年は子供も生まれるし大変な年になるのかな」と思いつつも、「研究は神頼みするものでもなく自分でつかみ取るものだし」と気を引き締めていた直後の出来事でした。 自分は大学時代に経験した悔しさをきっかけに、よりよい研究をするために一旦大学を離れ企業で現場の運用や開発
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 WEB+DB PRESS vol.79では @udzura さん執筆の「一歩先ゆくRuby」で、「Webエンジニアのためのmruby入門」という記事が掲載されています。 この記事では、組込み機器のためのmrubyという印象が強い中、@udzura さんはmrubyがWebエンジニアにとっても面白い使い方ができるのではないかと注目し、Webエンジニアにとっても有用な使い方が可能だという事を初心者でもわかりやすい明快な文章で紹介されています。後半では、僕が作ったmod_mrubyについても紹介されています。ありがとうございます! @udzura さんに査読の依頼を頂き記事をチェックしたのですが、非常に完成度が高く常にmrubyの事を追っている僕も
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 先日、Ruby東京プレゼンテーション2014というイベントがあり、その中のテクニカルトークというパネルディスカッションで、mrubyとWebサーバのお話をしてきました。パネルディスカッションの登壇者は、Matzさん、トレタの増井さん、九工大の田中先生、Cloudius Systemsの浅田さん、みずほ情報総研の橋本さん、僕でした。 全体通して感想を書くと話が長くなってしまうので、自分のところだけ感想を書くとして、自分が担当した前半のプレゼンは「mrubyによるWebサーバ機能の拡張」、後半のプレゼンは「mrubyとこれからのWebサーバ技術」についてです。簡単に感想を書いておきます。 前半は例のごとく、mod_mrubyやngx_mrubyに
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 研究者にとって、自身の研究業績をWebページで公開する事は非常に重要だと思います。そういった内容のやり取りもtwitterで見かけますが、その賛否はおいておいて、今回はWikiで書いていた研究業績ページをGitHub Pageに移行しました。 やったことは非常に簡単で、GitHub上にmatsumotoryというレポジトリを作成し、そのレポジトリにREADME.mdを作成、その中にMarkdownで業績を記述して、それをそのままSettingsからGitHub Pagesにしただけです。 松本亮介の研究・開発業績ページ これが結構便利で、 GitHubアカウントだけあれば公開できる 業績ページのような箇条書きスタイルにMarkdown記法が合
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 年末にSPDYやHTTP2の勉強がてら、mrubyでSPDYやHTTP2通信可能なmrbgemを作りました。 mruby-spdy mruby-http2 これで、mrubyを組み込んだアプリケーションやデバイスからSPDY・HTTP2通信ができるようになって未来が広がりますね。 現状はクライアントのGETのみができます。これで、例えばmod_mrubyやngx_mrubyに組み込んで、あるURLにアクセスした場合はバックエンドでSPDYやHTTP2な通信をすることもできますね。 サンプル SPDYやHTTP2通信をするためにはRubyで以下のように書きます。 SPDY通信 [program lang=’ruby’ escaped=’true
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 論文の執筆や発表の準備で最新のmrubyに追随できていなかったのですが、ようやくmod_mrubyとngx_mrubyを最新版のmrubyに対応させました。対応した項目は以下となります。これでmrubyの最新版でも動くようになりました。 mrb_stateが持っていたirepテーブルの削除に対応(バイトコードのGC化) symbol関連のAPI変更に対応 ARENAの持ち方を修正 パフォーマンス比較をするには良いタイミングなので、最新版のmod_mrubyとngx_mrubyのパフォーマンスを計測しました。 最新のパフォーマンス比較 計測方法はいつも通りシンプルなものなので、「この条件だと大体こういう差がでる」という意味での参考情報として見て
2013年ももうすぐ終わってしまいますね。今日も非常に寒く、年の終わりを肌で感じております。 とりあえずの区切りということで、2013年に取り組んできた研究を簡単にまとめておこうと思います。 はじめに まずは、今年取り組んだ研究の各内容の最終成果の論文を紹介します。全てPDFで読めるようにしています。 [IPSJ 論文誌]大規模共有型Webバーチャルホスティング基盤のセキュリティと運用技術の改善 [IEICE 論文誌]スレッド単位で権限分離を行うWebサーバのアクセス制御アーキテクチャ mod_mruby: スクリプト言語で高速かつ省メモリに拡張可能なWebサーバの機能拡張支援機構 リクエスト単位でコンピュータリソースを分離可能なWebサーバのリソース制御アーキテクチャ これらの内容に関しては他にも幾つか論文は書いたのですが、最終的な成果としては各内容が上記の論文としてまとまりました。 で
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 本エントリはmruby advent calendar 2013 18日目の記事になります。 17日目はtsahara@githubさんによる「mruby で C 言語の構造体をラップしたオブジェクトを作る正しい方法」という素晴らしい記事でした。今回の話題はこの話にも少し絡むので、まるで内容を見透かされていた気分です。 はじめに ところで、僕がadvent calendarにmrubyネタを書くなら何が良いかなぁと考えていたのですが、おそらくmrubyに関する細かいネタは多くの人が書くだろうと思い、自分らしいネタを書こうと思っていました。そこでふと、mrubyが公開後、自分は大量にmrbgemとよばれるmrubyの拡張モジュールを書いてきた事
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 このエントリでは久しぶりに日記のような記事を書こうと思う。なので、いつもの技術エントリはですます調だが今日は日記調に適当な感じでいこうと思う。 自分は、他人への配慮を踏まえた上で思った事は言うべきだと考えている人間だし、それを我慢して空気を読んだり間違っていると思っているのにその意見に迎合するのは好きではない。もちろん、自分の言った事が間違っていたら、それを認め謝らないといけない。僕はそういう間違いを恐れない議論が必要だと考えている人間だ。 しかし、そうやって生きてきてはいるが、「我慢する事」は自分にとって非常に大事だと思っている。いつでもなんでもどんな時でも、言いたい事を言うのも良いのだが、我慢することで得られる事もあるという事を、年末も近
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 ApacheモジュールはApache httpdに組み込んで使うために、いまいちモジュール単体のテストやプロファイルやデバッグがやりにくい印象があります。 デバッグに関しては以前gdbを使った方法を紹介しましたが、今回は色々あるプロファイラの中で比較的楽にプロファイルが得られるOProfileを使ったプロファイルの取り方を紹介したいと思います。非常に簡単です。 ちなみに、プロファイラをかます事で対象そのものに影響を大きく与えてはいけないという意味で、この話だけでも研究になりそうですが、あまり深入りし過ぎるとまた別の方向にいってしまいそうなので、今回はそういった精度よりもどれだけ簡単にできるかというところに重点を置いた方法を紹介したいと思います
数年前になんとなく面白がって書いてた「Linux系インフラエンジニア3年目のスキルを見抜く50の質問(ホスティングの場合)」というのが、昔の資料をあさってると出てきて、意外と面白かったので少しだけ手を加えて(古い情報とかあったので)公開しようと思います。 意外とリアルなものがあって懐かしい気分になりました。過去に書いた以下の記事もどうぞ参考にして下さい。 「Linuxエンジニアを目指して入社一年目にやって役にたったと思う事」 「Linuxエンジニアを辞めて大学院に入学しました」 追記: 設問1があまりによくないので、@tagomorisさんのアドバイスを頂きつつ変更しました。1を消して3を追加しています。ありがとうございます! 2000台以上のサーバー運用経験はありますか? サーバやネットワーク機器のキッティング経験はありますか? サーバやネットワーク機器の交換を現地のデータセンター職員に
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 以前mruby-redisを作ったのですが、mrubyでRedis使う場合に、inetとかunix domain socketで使えなくても良いし、サーバー機能無しでIn-Memoryにアプリケーションと同一プロセス上で動いたり、必要だったらOn-Diskぐらいで共有できる程度の軽量なKVSを使いたいなぁ、でもなんだかんだちょっとした事にRedis使いやすいしまぁRedis使うか、なんて思っている人はいると思います。 そんな人のために、「サーバー機能無しでIn-Memoryにアプリケーションと同一プロセス上で動いたり、必要だったらOn-Diskぐらいで共有できる程度の軽量なKVS」であるVedisをmrubyから簡単に使えるmruby-ved
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 IOT研究会やコンテナ勉強会で発表した内容を制御コード例を交えて具体的なリソース制御の書き方を紹介したいと思います。 詳しい内容は上の行のエントリへのリンクを見て頂くとして、簡単にまとめると、Apacheへのリクエスト単位でCPUやDISK I/O等のコンピュータリソースを制御しようという話になります。今回はその仕組(mod_mrubyでcgroupを制御)の導入から具体的な制御DSLコードのサンプルを紹介します。 導入 導入はこれまでに何度も紹介していた内容とかぶるのですが、mod_mrubyのインストールと同様です。まずはgithubからmod_mrubyをcloneして、mod_mrubyディレクトリにあるbuild_config.rb
ようやく、スレッド単位で権限分離を行うWebサーバのアクセス制御アーキテクチャ(mod_process_security)について書いた論文がIEICE(電子情報通信学会)のジャーナルに無事採録・公開されました。ですので、いつも通り論文を誰でも見られるよう、また、自身の研究状況を報告する意味でも本エントリで公開したいと思います。 IEICEジャーナル論文:スレッド単位で権限分離を行うWebサーバのアクセス制御アーキテクチャ 前回IPSJ(情報処理学会)のジャーナルに採録された「大規模共有型Webバーチャルホスティング基盤のセキュリティと運用技術の改善」において、セキュリティとパフォーマンスの両立が実現できていなかったため、それを解決するためのアクセス制御アーキテクチャを提案した、という内容になっています。アクセス制御の複雑化や、WebホスティングのみならずWebコンテンツのアクセス制御の必
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 論文や発表が少し落ち着いたので、研究の実装を再開しています。 そこでふと思ったのですが、そういえばngx_mrubyとlua-nginx-moduleのパフォーマンス比較していないなぁと思いました。でも、今検証環境が色々あって揃っていないので微妙だなぁと思いつつも、やっぱり気になると試さずにはいられないたちなので、簡単なhello worldのベンチマーク比較をしてみました。 ngx_mrubyとlua-nginx-moduleの導入 検証環境がないので一から導入しました。意外と簡単ですね。 [program lang=’bash’ escaped=’true’] wget http://nginx.org/download/nginx-1.
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 ということで、先日「コンテナ型仮想化の情報交換会@東京」に参加して発表もしてきました。元々、主催者の加藤さんは僕が尊敬するエンジニアの1人でもあり、何かお手伝いできると良いなと思っていて、発表のお誘いを受けた時はとてもうれしく思いました。また、今回はTwitter上ではそれなりにお話している人達にも沢山あえるということで、バーチャルな世界から初めて東京に出ていくという意味で恥ずかしくもワクワクするような勉強会でした。発表個々の感想はこれから続くであろう参加者の皆様の参加エントリに期待して、このエントリには勉強会全体の感想を書き綴ろうと思います。 @matsumotory さんの周囲をペパボの面々 がぐるっと取り囲んでいる — ito hiro
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 昨日、「リクエスト単位でコンピュータリソースを分離可能なWebサーバのリソース制御アーキテクチャ」という新しい研究内容を情報処理学会のインターネットと運用技術(IOT)研究会で発表してきました。 (4)リクエスト単位で仮想的にコンピュータリソースを分離するWebサーバのリソース制御アーキテクチャ◎松本亮介,岡部寿男(京都大学) #ipsjiot pic.twitter.com/NhfLL1mgtZ — Naoto MATSUMOTO (@naoto_matsumoto) September 27, 2013 この研究会は、研究者だけでなくエンジニアの皆さんにとっても面白い内容が沢山聞くことのできる研究会なので、学術系問わず参加されることをおす
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 最近、各所でApacheのVirtualHostを利用した高集積ホスティングのセキュリティに関するインシデントが起きています。僕自身、自分の専門の一つがWebサーバのセキュリティなので、他人事には思えず、毎日各所の経過情報を眺めています。また、数社からApacheのセキュリティに関してもいくつか質問を受けたりしており、公に話せるような内容はこのブログでも公開していきたいと思います。 ということで、ApacheのVirtualHostによる高集積Webホスティングにおけるsymlink問題を根本解決するにはどうしたら良いのかを考えました。まずは、静的コンテンツも動的コンテンツのようにファイルのユーザ権限で処理する方法から紹介します。その後、ホス
Vol.54 No.3 1077–1086 (Mar. 2013) Web 1,a) 1 1 2012 6 28 , 2012 12 7 AmazonEC2 Apache VirtualHost Web VirtualHost Apache suEXEC Web Apache Improvement of Security and Operation Technology for a Highly Scalable and Large-scale Shared Web Virtual Hosting System Ryosuke Matsumoto1,a) Masashi Kawahara1 Teruo Matsuoka1 Received: June 28, 2012, Accepted: December 7, 2012 Abstract: As the recent deployme
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 @jj1bdxさんに「このような運用論文を誰でも読める形で」「情報処理学会や信学会の論文誌掲載論文は、論文誌に掲載された後であれば、著者がWeb上で公開するのに制限はない」という情報を頂き、別に公開しない理由もないので、大規模共有型Webバーチャルホスティング基盤のセキュリティと運用技術の改善という内容で書いた論文を公開したいと思います。 僕が会社にいた時、ApacheのVirtualHost環境でレンサバを構築するというのは既にセキュリティ・運用性・パフォーマンスにおいて色々と問題がある事は10年以上前から分かっており、別の方法で共有環境を構築していました。 ある時、VirtualHostで共有環境を真面目に組むとどうなるか、という議論を元
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 ようやくngx_mrubyでもmod_mrubyのように動的なリバースプロキシ設定ができるようになりました。タイトルは完全に@hibomaさんによる「lua-nginx-module の紹介 ならびに Nginx+Lua+Redisによる動的なリバースプロキシの実装案」をパク … inspireしたものになっています。 今回の工夫点としては、 ngxin内部の変数をうまく使う redisとのセッションはnginx起動時に一度だけ行なって、そのオブジェクトを使いまわす proxy_passを使って汎用的な設定にする の3点です。 1に関しては、前回の「ngx_mrubyでnginxの内部変数を操作する」で紹介しました。 2に関しては、リクエスト
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 mrubyにおいて、mrb_stateを共有しているRubyコード間で、userdataを自由に読み書きできるmruby-userdataというmrbgemを作りました。 これは、mrubyの状態遷移情報を格納しているmrb_stateを共有している限り、あるタイミングでコードAが呼ばれて、次に別のタイミングでコードBが呼ばれた場合、コードAでuserdataオブジェクトを保存しておけば、コードBからそのオブジェクトを取り出せる仕組みです。 グローバル変数を使えばコード間でやり取りができますが、なんとなくグローバル変数を使うのは実装上バグを生みそうなので、C側にuserdataを保存しておくハッシュテーブルオブジェクトを作っておいて、そこにR
最近はコード書きに時間をとれていませんが、昨日は久々にngx_mrubyを少し触る事ができたので、その際にできるようになったタイトルのような処理を紹介したいと思います。 今のngx_mrubyは、nginx.conf上で設定した変数やnginxのコア変数をmruby上でgetしたり、mruby上で変数に値をsetしたりすることができるようになりました。 また、mruby_setというディレクトリを使うと、nginx.conf上での変数設定時に、mrubyのコードの結果を渡す事ができます。さらにはそのコード内で、それより以前にsetディレクティブで設定した変数を呼び出す事ができます。 confに直接Rubyを書く場合 日本語で書くと結構分かりにくいのでサンプルを示します。例えば、以下のようにconfを書きます。 [program lang=’ruby’ escaped=’true’] loc
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 mrubyも少しずつ知られてきていて、WindowsやLinux、MacOSX等マルチプラットフォームで色々遊んでいる人が多いことでしょう。そうなってくると、しばらく弄ってみた後はやっぱりマルチプラットフォームで同じようにHTTPで通信してみたいと思いませんか? 例えば、 mrubyでHTTPのGETとかPOSTとかしてみたり mrubyを組み込んだデバイスからTwitterに呟いてみたり 各種デバイスからZabbixをつついてみたり エアコンを監視してるRaspberry PiからGrowthForecastにデータを送ってグラフ化してみたり 組み込みデバイスや低レイヤーなソフトウェアからfluentdにデータを送って解析してみたり という
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 「P2Pファイル共有ネットワークを利用したフラッシュクラウド耐性のある協調型負荷分散手法」という内容で、COMPSACという国際会議で代理で発表してきました。(去年の国際会議では僕が色々あって、代理で先生に発表してもらったような形ですね) 今回は、著者の方が色々あって発表できないので、共著者の僕が代理で発表してきました。著者や先生と相談した結果、面白い内容なので公開しようということになり、僕のブログが一番手っ取り早いので、ここで紹介します。 研究の概要 研究の概要としては以下になります。 世界のインターネット人口は年々増加を続けており,現在約22億人に達して いる.また新興国の発展に伴い,今後その数はさらに増加することが見込まれ る.このよう
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 ext3ファイルシステムの復元の代表的なツールとしてextundeleteがあります。 しかし、extundeleteは「ext3ファイルシステムとファイルの削除・復元について」のエントリにおける正確なファイルの紐付けやその検知ができていません。extundeleteで復元してしまうと、「ext3ファイルシステムとファイルの削除・復元について」で述べた通り、復元対象ファイルのinodeが以前にも違うファイルで使われていて、そのinodeの以前の情報がディレクトリエントリから抽出できてしまった場合、先に見つかったファイル名でinodeの指し示すデータブロックを復元してしまいます。そのため、意図していないファイル名とデータブロックのファイルが復元
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 研究の一環でext3ファイルシステムのファイル管理方法や、ファイルを削除した時の復元について色々調べたので、それを忘れないように記事にしておこうと思います。 はじめに 今回はext3ファイルシステムについて調査してみました。僕はLinuxでファイルを扱う前提の研究をしているし、大規模環境でのファイルの処理はとても重要だと思っています。 また、ファイルシステムについて理解を深めておく事で、今後新たなネタにならないか等も考えています。現在はext4やBtrfs等の調査が進んでいますが、改めて基本に戻ってext3について調査しました。 まずは、分かりやすいようにext3ファイルシステムでファイルを削除した場合に、どのようにファイル復元ができるのかを
次のページ
このページを最初にブックマークしてみませんか?
『人間とウェブの未来(旧)』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く