Github: https://github.com/KazuCocoa/http_proxy/releases/tag/0.5.0 Hex: https://hex.pm/packages/http_proxy Doc: http://hexdocs.pm/http_proxy/0.5.0/extra-api-reference.htmlMore
『システムの科学』を読んだ
システムの科学 第3版 を読みました。 FB上で誰かがコメントしていたことをきっかけに読んでみることにしましたが、これは大学院の頃にも読んでおきたかったと思ったものでした。(ただ、その頃に読んでも今ほど楽しめなかっただろうですが) 原書は “The Sciences of Artificial, Third Edition”です。人工物に対して、科学的な見解をまとめている本です。そこには数多の論文が引用されています。第3版では、複雑性に関する内容を取り入れて、システムへの考察もその時点での経験的な側面含めて述べています。 ここでいうシステム、とは複雑系を指しています。なので、人の生活や文化、組織の話だったり、コンピュータを使った分散システムの話であったりが対象です。認知心理学やデザインの科学のほか、複雑性に対するカオスや遺伝的アルゴリズムなどの話を交えつつ、それら”システム”に対していろいろ述べています。 人は、どんなにしたいと思っても、できないことをやろうとはしないであろう。… それ以外に選択の余地がないがゆえに、「十分良好な」代替案を受け容れる、そういう人間すなわち満足化を追求する人なのである。 面白かったところは、人が満足するとはどういう状態か、というような所まで踏み込んでいたことです。科学的な視点から、例えば創造したシステムが人を満足させる、満足したとはどうなっていることなのかまで書いています。ここら辺も踏まえて、ソフトウェアテストや品質という点で、私が進んでいるような先にあるテストエンジニアを目指す人には必要な論理的な基礎として学んでおきたい所ですね。 人工物の科学を考えるのでれば、デザインの評価(評価理論、計算方法、形式理論)、代替案の探索(発見的探索、資源配分、組織化の理論、問題の表現)を学ぶ必要があると途中で書いてました。ここら辺まで踏み込んでまとめられているものが、すでに1990年代にあったとは… 政治学には「代替案なしに批判だけすることはできない」という諺がある。 複雑性の話は、私自身が複雑系を対象に研究をしていた時期があったこともあり、とても面白かったです。複雑なシステムは、少なくとも 単純な仕組みが幾重にも階層的に連なり構成されるシステム であることを、いろいろな例を基に書いています。そこにはまだ経験的な話ベースの例が多いですが、この書籍を書いた以降の幾つかの経済系論文を追ったことがある身としては、ちゃんとした数式で証明された理論もあるので経験を理論で固めていく、という科学の話を追えたこともまた面白かったです。 最後に、経済学は、心理科学であると述べていることが面白かったです。富を追う、という所よりも、人の心理に注目しているところが品質ぽかった。 いろいろ頭を使いながら読む必要がありそうな本なのですが、これはまた読み返したい。 余談ですが、複雑系では私は The Wisdom of Crowds が面白かった憶えがあります。Kindle版もでていたのですね。More
『ヤバい統計学』を読んだ
『ヤバい統計学』を読みました。きっかけはなんだったのかな。覚えていないですが、確かKindleの安売りセールのときに目に止まって、読み物的に読み始めた記憶があります。 読んだ感想としては、特に”ヤバい”ところがパッとせず、大学でおそらく統計学などを学んだ人からするとそうだよね、というものが多いように見えます。見方によって色々解釈が変化するジレンマだったり、直感の裏にある統計的な視点であったり。 大学の頃、よく教授に『世の中は確率に満ちている。学ばなくても問題はないが、学んでいかせていれば賢く生きることができる。』といった感じのことを聞いていました。そこの実例が載っている感じ。 どうやら、原書は”numbers rule your world”のようで。確かに、そのタイトルからすると納得な内容でした。ふむ。More
SQuBOK読破会で紹介された書籍たち
『SQuBOKv2読破会 Advent Calendar 2015』、21日目の記事です。 この読破会では、毎回、各々が約1ヶ月間の間に読んだ書籍などを手短に紹介する、というちょっとした取り組みを導入をしてました。その内容はFacebookページで共有され、ざっと眺めると76コメントつくほどまでになってました。その多くにURLが貼っており、それらをたどることができる状態になっていたのでそれらを並べてみました。下の方に並べています。ご覧ください。 全部で76個ではないのは、Facebookページからスクレイピングで一括でURLを取得したので一部欠如が発生してしまったことや、コメントだけのところもあるためです。(横着してすみません。。。) 読み物から、技術書まで、いずれも1ヶ月でサクッとできるものから、できないものまで。多種多様な書籍が約1年かけて集まったと思います。それらをソフトウェアテスト、ソフトウェア開発、デザイン、そのほかという感じで分けてみました。眺めるとちょっと雑ですね… ただ、こう眺めるだけでも様々な書籍が読まれていることがわかります。SQuBOKがソフトウェア品質を扱うものであるように、ソフトウェア品質とは単にテストといった狭い視野ではなく、ソフトウェア開発全体やその周辺・人の興味に至るまでの様々な要素が絡んでいる、というところにもつながりを感じて面白いですね。 私の中でも、ほかの人が紹介する書籍にはすでに読んだことのある書籍、しっているけれど読んだことのない書籍、知りさえしなかった書籍などあり、多様な出会いがありました。ほかのメンバも同様にそのような出会いがあったことでしょう。 個人的にお勧めなのは アンティキテラ 古代ギリシアのコンピュータ です。これは、最古のコンピュータと呼ばれている歯車式の計算機が古代ギリシャに存在していた、というところに至るまでの軌跡を描いています。そこに関係した様々な人の関わりなどもあり、SFのようにも読むこともできます。なお、まだ現在も調査は実施されていて完全に解明されたわけではないようです。 知っていることが多いと、それだけ思考を狭めて創造的な考えができなくなることがあります。そして、それは私が大学時代に教授からよく言われていることでもあります。ただ、何か創造的な考えを行うために、ほかの既知の領域ではすでに知られていることに頼る、創造的な考えを行うための下支えとして書籍などに学ぶ、というのは私はありだと考えています。 書籍に限らず、頼り頼られつつ、何かやりたいことに集中できる環境を創造できるとよいですね。 Software Test Test Maturity Model integration ソフトウェアテスト技法ドリル―テスト設計の考え方と実際 実践 JUnit ―達人プログラマーのユニットテスト技法 Bug Advocacy: A Bbst Workbook つながる世界のソフトウェア品質ガイド ~あたらしい価値提供のための品質モデル活用のすすめ~ I am a Bug ソフトウェア・テスト PRESS Vol.10 ISTQB関連 JSTQB関連 Making Software ―エビデンスが変えるソフトウェア開発 落穂拾い (1966年) Software Development ソフトウェアアーキテクチャ―ソフトウェア開発のためのパターン体系 ソフトウェアエンジニアリング基礎知識体系 ―SWEBOK V3.0 7つの言語 7つの世界 オブジェクト指向入門…More
[Android]Espresso for AdapterView
Espressoは通常、 onView(mathers) によってビューの取得を行います。一方で、 Adapterview 系のレイアウトでは、レイアウトの要素は実行時に動的に作られます。その場合、 onView では、その動的に作られた要素をちゃんと取得することができないようです。 その場合は、 onData が提供されているので、それを使うことで代替します。 参考: https://developer.android.com/intl/ja/tools/testing-support-library/index.html ちなみに、 android.support.test.espresso.contrib がespresso-core以外でライブラリとして提供されているのですが、そこでは RecyclerViewActions が定義されています。中を読んでみると、このViewは onView で要素を取得して、それに対してactionしてねと書いてます。なるほど。 http://developer.android.com/intl/ja/reference/android/support/test/espresso/contrib/RecyclerViewActions.html 少し凝った使い方は公式でも用意されているので、参考になるかもしれません。 https://google.github.io/android-testing-support-library/docs/espresso/advanced/index.htmlMore
[Elixir]about parameterized test with Elixir(Eng ver)
Previously, I published support library to do parameterized test with Elixir on hex and WordPress. See here, but it in Japanese. The library is simple macro. So, anyone can use it easily. See readme and docs if you would like to know more hex https://hex.pm/packages/ex_parameterized GitHub https://github.com/KazuCocoa/ex_parameterized Example This file contains hidden or bidirectional Unicode…More
SQuBOKとそこから見える人
『SQuBOKv2読破会 Advent Calendar 2015』、14日目の記事です。 前回、私は『SQuBOKv2読破会と私』ということでこの読破会に参加して得たこと、役立ったことなどの、私自身の周りの話を書きました。 今回は少し趣向を変えて、SQuBOKを読んでいたときに感じたその書き手について書いてみます。SQuBOKは複数の人によって書かれ、レビューされ、洗練されました。そのため、複数人の書き手が関わっています。 私は書いているかた全員をしっているわけでもありません。また、誰がどこを書いたのか、ということもよく知らない、という前提があることはまず記載しておきます。 抽象的なまとめのうまさ 全体的に、適度な抽象度を保っていたことが素直に素晴らしいと感じました。適度な抽象度とは、経験からしても納得できることだし、未経験なことでも十分に想像につなげることができる範囲でうまくまとまっている、ということを指します。 こういう書籍は、時代によってすぐ陳腐化する表層的な話と、長年親しまれる深い話があります。表層的なものはそのときのはやりのツールや言葉を使ったものが多いです。一方、深い話はより人や組織につながるもの、考え方の基幹をなすものです。 書籍の良い点として、様々なレビューを繰り返しながらも1つの集大成に仕上げる工程があることでしょうか。今のところ、Webサイト上ではなかなか構築されない洗練度のものです。このSQuBOKもその例にもれず、様々な知見を持った方々が、頭をひねりながら作り上げた力作と感じるよな内容でした。 所々、表層的 一方で、v2ということもありv1を元に加筆・修正した箇所があります。私はv1はちゃんと読んだことはないので、その差分が明確にはわかっていません。ただ、書籍を読んでいるとここは加筆されただろうな、というところが見えてきます。良くも悪くも、時代が反映されている感じで。 いくつかの場所は、ほかの場所に比べて些か表層的な説明が多いです。つまり、その時代固有の言葉が表現の至るところに見えます。具体的なツールやサービスの名前であったり、1年後はまるっと変わっている、古くなっている可能性のある要素です。確かに、ここ数年を振り返っても特筆しておくことには価値があると思います。ただ、そういう内容はBOK系ではなく、通常の書籍などでもよかったかもしれません。そんな感触を受けるところもありました。 熱の入った表現 通常、BOK系は技術書的な読み物なことが多いです。ただ、Software Quality / Test関係は、人の営みが多分に関係する分野でもあります。そのため、人の改善プロセスといった人に寄り添う内容が中心に添えられている箇所も多分にあります。その箇所は、書いている人の色もあると思うのですが、比較的熱のこもった表現が散見されました。 締め 書き手を楽しむ、というのは、まるで小説を楽しむかのように見えるかもしれません。私は、通常は技術書はそんなに書き手の書き方を気にすることはありません。ただ、このSQuBOKは所々個性が感じられて、小説まではいかなくとも、書き手を楽しむこともできました。 普段何も考えずに触れるものも、少し違った視点でふれると違った面白みがありますね。 少し短いまとめとなりましたが、また。More
[Elixir]compile timeに決定されるモジュールの定数
Elixirでは以下のように @neko と定義することで、このモジュール内で共通して使える要素を定義できます。最近使い方を誤ってしまったのですが、この値はコンパイル時に決定されるので、それ以降に読まれる値を設定することはできません。 In other words, the value is read at compilation time and not at runtime. As we are going to see, this makes attributes useful to be used as storage during module compilation. http://elixir-lang.org/getting-started/module-attributes.html 例えば、 というような用途では、必ず default が代入されます。 つい忘れていてつまづいたので、メモ…More
システム自動化カンファレンス2015で登壇してきました
システムテスト自動化カンファレンス 2015で発表してきました。 今回はサービスを生業としている企業が少し目立つ感じで居ましたので、ビジネスの形態の違いから疑問を残したままの参加者もいるかもしれません。リリースに至るまでの文化の違いや、一見出してなんぼに見えすぎる世界など、その裏側の取り組みを除くとその疑問も拭えないものであるかもしれません。ですが、全体的に見慣れた風景とは違ったものが見えたのではないでしょうか。(そうだとうれしい) ところで… 私の発表は終わり頃で、聞かれている方々も結構お疲れだったのではないでしょうか。 1時間という長い時間が持ち時間だったので、入りの猫の画像であったり、所々少し誇張気味に表現しながらも、退屈せずに聞くことができるように工夫してみました。Twitterをみるに、概ね期待通りの効果が出たようでうれしい限りです。 発表 スライドは以下です。発表した感じ、想定した時間通りに、要素をかいつまみつつモバイルアプリの開発/テスト/ツール群/事例を共有できた気がします。 遊び ところで、最初の自己紹介のstruct( %{} )やパイプライン演算子など、モバイルとはほとんど関係ないElixirを取り入れていたことはお気づきだったでしょうか?ちょっとしたお遊び。 気づいてくれたかたもいたみたいです。 https://twitter.com/hayabusa333/status/675930652932308992 気づいたか。ついでにその前の%{}のところはstructです — KazuCocoa (@Kazu_cocoa) December 14, 2015 One more thing 発表の前にもスライドを公開しましたが、そちらには意図的に載せていなかったことがあります。One more thingです。正直なところ、いろいろ書いててもっと時間を使おうとも思ったところです。ただ、モバイル開発という文脈から距離のある方が多いと踏んで、情報過多になるだろうのでここはかなり端折りつつ、要点だけ載せるに止めました。 one more thing入れました #stac2015 https://t.co/8vwj30JcpG — KazuCocoa (@Kazu_cocoa) December 13, 2015 tgetterはこちら http://togetter.com/li/912197 最後に パネルのところでは、直前の1時間の発表で疲れてて、集中力に欠けてて申し訳ありませんでした… IoTの話は以前考えたことあるのですが、広い視野でみると分散系の話に落ち着いていくのではないかと思います。そこでは、研究でかじっていたビザンチン将軍問題も絡んでくるような分散ネットワークな話になると個人的には面白いと思っています。(大変ですが) 最後の砦というほど高尚な感じではなくて、そういう人がいるから開発時はそちらに集中できる環境になるといいなと思って進めています #stac2015 — KazuCocoa (@Kazu_cocoa) December 13, 2015 私よりも人格/スキル/能力共に高いかたが大勢いると思いますので、もし興味があるようでしたら一緒にこのような変化へ飛び込んで、さらにハッピーになりましょう。 この文化や取り組みに興味あるかたは一緒に働きましよう! https://t.co/X9MCsSjN4n #stac2015…More
[Elixir][Jupyter]Play IElixir on Jupyter
最近、Jupyterを知りました。 Python/Rubyで学んだのですが、Elixirでもあるか探してみたらありました。(なかったら作ってみようとしてた) 使い方は簡単で、Readmeに書いている通りにするだけです。 Jupyter https://jupyter-notebook.readthedocs.org/en/stable/index.html https://github.com/jupyter IElixir https://github.com/pprzetacznik/IElixir IErlang https://github.com/robbielynch/ierlang そのほか、利用可能なKernelは以下 https://github.com/ipython/ipython/wiki/IPython%20kernels%20for%20other%20languages こんな感じで起動できます。 ElixirというかErlang自体、こういう数値計算は得意としない領域なのですが、Elixir/Erlangをブラウザ越しに試す、という環境ではかなり使い勝手の良いものです。 🙂 追記: nbviewerを使えば、GitHub上でコードを簡単に共有もできてとても便利に使えます 🙂 (ただ、Elixir/Erlangは未対応です) http://nbviewer.ipython.org/More