本
はじめに いま、自分は所属している組織にアイデアを広める活動を行っています。 活動をしていて、方向性をたまに見失ったり、本当に正しいのか不安になったり、どうやって周りを巻き込むかなど、色々と悩むことがあります。それぞれに対して自分なりに考え…
問題解決の考え方の一つに TOC というものがあるのですが、どういったものか知りませんでした。知り合いのコンサルの方に TOC を学びはじめる取っ付きやすい本がないか聞いたら、『ザ・ゴール コミック版』を教えてもらいました。 オリジナルの『ザ・ゴール…
はじめに How Resque Manages Processes の続きです。 主旨 Unicorn が親プロセスを終了する際に、どうやって親なし子プロセスができないように制御しているかを読み解く。 コードリーディング大会 勉強会メンバーでコードを読んでみました。読んだコードは…
はじめに Ending の続きです。 まとめ なぜ Resque が job を実行するのに fork しているのかというと、ワーカーのプロセスが使うメモリ量の肥大化を防ぐためだ。job を実行する度に fork するのでメモリは使うデメリットはあるが、実行後のクリーンアップが…
はじめに Spawning Terminal Processes の続きです。 まとめ キーワードは「抽象化」と「コミュニケーション」。 「抽象化」…沢山のプログラミング言語があるが、カーネルから見れば全て同じもの。数字のアイデンティファイアがついて、カーネルのリソースに…
はじめに 『Daemon Processes』の続きです。 勉強会でのまとめ 本文の自分の理解のまとめ、本文の知識をもって試したこと、議論したこと、自分の理解のための補足などを書きます。 イントロダクション Rubyプログラムからシェルのコマンドを実行する方法には…
はじめに Processes Can Communicate の続きです。 主旨 デーモン化の仕組みを知るために Rack の rakupコマンドの実装を読みます。 コードリーディング大会 デーモン化の処理を理解するため、コードリーディングや勉強会メンバーとディスカッションを行いま…
はじめに Processes Can Get Signals の続きです。だいぶ終盤になってきました。 まとめ プロセス間コミュニケーション(IPC)の一般的な方法はパイプとソケットがある。パイプは単方向。パイプはファイルディスクリプタをもつリソースなので子プロセス間で…
はじめに Zombie Processes の続きです。 この本は社内勉強会で読み進めているのですが、今回から進め方を少し変えました。今までは本文を逐次翻訳で読み進めていました。それだと勉強会の期間が長引きそうなので、今回からは予習を前提にしました。メンバー…
はじめに Processes Can Wait の続きです。 まとめ 子プロセスが終了した後に親プロセスで wait するとその子プロセスの情報を得ることができる。なぜそれが可能になるのかというと、カーネルが終了した子プロセスの情報をキューイングして保持してくれるか…
はじめに Processes Are Friendly の続きです。 まとめ プロセスは wait できる。Ruby の Process.wait は「親プロセスのもつ子プロセスのいずれか一つが exit するまで親プロセスを待たせるブロッキングコール」である。Process.wait の戻り値は exit した…
はじめに Orphaned Processes の続きです。 大事なことのまとめ Copy-on-Write(以下 CoW)についての説明(Processes Can Fork を読んだときの感想でふれた)。 MRI や Rubinius は CoW をサポートしていない。CoW をサポートするには CoWフレンドリーにな…
はじめに Processes Can Fork の続きです。 メモ 子プロセスがからむとターミナルから制御するのは難しい。ターミナル上でつくった親プロセスの実行が終わったあとでも子プロセスは残り続ける。親をなくしたプロセスを制御する方法は 2つで、それらはデーモ…
はじめに Processes Have Exit Codes の続きです。 メモ プロセスはフォークできる。フォークしてつくられた子プロセスは親プロセスの正確なコピーである。したがって500MBのサイズのプロセスをフォークしてできるプロセスのサイズも500MBである。また、親プ…
はじめに Processes Have Names の続きです。 メモ すべてのプロセスはエクジットコードを持っている。慣習的に 0 は成功でその他は失敗を示す。 Ruby でプログラムを終了する方法はいくつかある。 exit: code=0。at_exitブロックは実行される exit!: code=1…
はじめに Processes Have Arguments の続きです。 メモ プロセス間で連携するときに使える情報は2つあり、それらはプロセス名とエクジットコード。プロセス名はだぶることもある。プロセス名は Resque で活用されている。 やってみた: プロセス名が変えられ…
はじめに Processes Have an Environment の続きです。 メモ すべてのプロセスは引数の配列を持っている。Ruby では ARGV に保持されている。引数がよく使われるケースは ファイル名を受け取ってファイルを操作 コマンドラインの入力をパースする(例: Ruby …
はじめに Processes Have Resource Limits の続きです。 メモ すべてのプロセスは親から環境変数を引き継ぐ。環境変数のライフサイクルは各プロセスにあり、それぞれのプロセスでグローバル。bash と ruby といったように、異なる言語で動いているプロセス間…
はじめに Processes Have File Descripters を読みました の続きです。 メモ ファイルディスクリプターには 2種類リミット、ソフトリミットとハードリミットがある。ソフトリミットは物理的なリミットではない。Ruby ではリミットをこえると例外が起きる。ソ…
はじめに Processes Have Parents を社内勉強会で読みました の続きです。 メモ Unix の思想の一つは「すべてがファイルである」。テキストファイルもデバイスもソケットもファイル。ファイルディスクリプタはOSがファイルを識別するための識別子である。な…
はじめに 『Process Have IDs』 に引き続き読みました。 大事なこと すべてのプロセスは親プロセスを持っている。たとえば zsh上で irb を実行した場合、zsh が irb の親プロセスとなる。このことは irb上の Process.ppid を ps -p することで確認できる。デ…
はじめに 『Working with Unix Processes』を社内勉強会で読んでます。 引き続きメモです。 メモ プロセスには ID がシーケンシャルにふられて Kernel がそれを管理する。ID というシンプルなものだからこそプログラムで扱いやすいものになっている。Ruby で…
はじめに Introdcution に引き続き『Working with Unix Processes』の Primer を社内勉強会で読んだときのメモを書きます。本の内容の要約や本を読んで実際に試してみたことなどが混ざってます。 メモ manpage には次のようなセクションがある。1: コマンド,…
はじめに The Pragmatic Bookshelf から購入しました。いま社内勉強会で読み進めています。プロセスまわりがサッパリなのでこれを機に理解を深められたらなと思います。書いたコードがなぜ動くのかを知りたくてワクワクしてます。 大事だと思ったことや登場…
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)社内勉強会でリーダブルコードの読書会をやり、昨日で読み終わりました。各会だれかが音読して読み進める形式でやりました。みんなでワイワイ議論しながら読…
まつもとゆきひろ コードの世界~スーパー・プログラマになる14の思考法オブジェクト指向・Ruby on Rails・セキュリティ・関数型プログラミングなどなど、幅広い分野をカバーしている本でした。自分の親しみのある分野はいい復習になったり深く知るきっかけに…
Titanium Mobile iPhone/Androidアプリ開発入門―JavaScriptだけで作るTitanium Mobileで開発するiPhone/Androidアプリ (Smart Mobile Developer)体系的にまとめられていて読みやすく、スマフォアプリの開発が初めての自分でもわかりやすい内容でした。2冊の…
何かをやってみよう、創ってみようとワクワクしてくる本です :) 率直でロジカルでリズムよく読める文章から色々なことを考えるきっかけをもらいました。いま、そんなきっかけをもらった文章をピックアップして、自分の考えたことをつらつらと書きまとめてい…
このカテゴリには、自分が読んだ本のレビューを書いていきます。 In this category, I'll put reviews of books I read. まず第一号は、この本。 First one is this book. 怖いくらい通じるカタカナ英語の法則 (ブルーバックス (B-1574)) The Law of Frighte…