『未来へつなぐ食のバトン: 映画『100年ごはん』が伝える農業のいま』を読みました。 タイトルにつられて、ジャケ買いみたく購入した書籍です。ちょっとした読書。 この本は、「100年ごはん」の舞台となった大分県臼杵市の、「ほんまもん農産物」への取り組みについて書かれているものです。 10年、20年、100年先までを見据えて、何代も続く子供たちにしっかりと食を楽しんでほしいという思いで行われ始めた取り組みに関して書かれています。そして、映画化された100年ごはんに繋がる話としてまとめられています。 農作物を作るにあたり、 土 を大事にするところへの言及など、本当にしっかりとした取り組みだと感じました。私は実家が農家、兼業農家ですので、土地が痩せることや、作物を作ることができるような肥えるということもそれなりに体験として知っています。そういう人からみても、しっかりとした思いと取り組みと理解できるような内容が書かれていました。 土をしっかりする、土台を作る。 同じ釜の飯を食べるということ 同じ方向性を持って、前に進むにあたり必要なこと。それが同じ釜の飯を食べるということ。そのようなコミュニケーションに関しても書かれてました。 食って、なんだかんだで生活に身近なものですし、作物自体を楽しんだり、その先の料理を楽しんだり。そういうところで楽しみを感じたら、楽しい毎日を送れそうですね。More
『物語 シンガポールの歴史』を読んだ
『物語 シンガポールの歴史』を読みました。 最近、初海外ということでシンガポールに行ったのですが、その前に買って、私が読んだのは今更という… 私がお世話になった教授に学びました。 “海外へ向かう時、その土地の歴史を知っておくことが、相手にとって礼儀になる” 。結構、頭に残ってて、こういう歴史はすべて正確に覚えるまでいかなくとも多少なりとも読んでいます。 内容は全体的に学びが多かったです。 “何の天然資源を持たない小さな都市国家の唯一の資源が人である” “国民が豊かな生活を満喫する傍らで、労働力の枯渇を原因に国家命題の経済発展が止まるかもしれない” 印象に残った箇所。ついつい、固定資産をあまり持たない、ソフトウェア産業になぞらえてしまいました。 人民行動党体制における国家運営とは、社会のさまざまな集団の利害調整だけではなく、企業経営と同様に専門家能力ひ秀でた者が効率性と合理性を原理に運営するものであるということである。 シンガポールの、発展に向けた戦略など、なるほどなーというものが多かったです。能力主義の良し悪し、独裁というか、管理重視の社会などの経験。それらの戦略を、国家全体をまるで企業経営のように運用していく形が良くも悪くも素晴らしいと思えました。 そういえば、シンガポールに対する日本占領の歴史を知らなかったことは反省すべきだなと感じました。 私個人のシンガポール旅行は、結構英語で話して、彼女以外とはほとんど日本語使うことがなかったです。英語がそれなりだったら、旅行、という範囲内だと苦なく楽しいですね。More
koboldをRubyで実行、結果を整える簡単なラッパーkoboldyを書いた
koboldというYahoo!がOSS化した画像比較ツール(https://github.com/yahoo/kobold)をRubyを介して実行、結果をJSON形式で保存するライブラリを作成しました。 https://github.com/KazuCocoa/koboldy https://rubygems.org/gems/koboldy やっていることは以下。 koboldの設定ファイル(の一部)をファイルへ出力する 今後、ちまちまoptionを増やすかも konoldコマンドを実行する koboldがインストールされていることが必要 koboldの結果を解析して、JSON形式で整えてファイルに出力する JSでやったほうが楽だったかなーと思いつつも、Rubyのほうが楽だったので。。。More
『人工知能 人類最悪にして最後の発明』を読んだ
『人口知能は人を超えるか』を読んだ 〜 シンギュラリティは突破されるかに引き続き、人工知能系の本を読みました。読んだ本は 人工知能 人類最悪にして最後の発明 です。 今まで、人工知能系の本は良い、挑戦的な明るい未来を描いたものが多かったのですが、それとは異なる思想、意見のものを読みたかったということが一番の動機です。 結果、予想通り?読み終わった後、人工知能がAGI(Artificial General Intelligence)、さらにはASI(Artificial Super Intelligence)になったときの危険性のことだけが頭に残った感じです。人工知能が人にとって制御不能になったときの危機感を強烈に書き続けているものですね。 読んでいて頭に残ったのは以下の引用です。 AIは人間を憎みもしないし愛しもしないが、人間を構成する原資を何か別のことに使うかもしれない。 — エリエゼル・ユドカワウスキー、機会知能研究所研究員 機械は人を憎んで何かをするのではなく、人という原子の塊をどう使うとより良い世界になるかを考える、そんな感じの話をしているところです。 日に日に我々は、機械に従属するようになっていく。日ごとにより多くの人間が、機械の世話をする奴隷として拘束されていく。 今、Web界隈ではBotを使った業務支援であったり、何か通知を送るということをして私たち含むシステムを動かしています。そのような大きなシステムとしてみると、確かに今の段階ですでに機械に使われ始めているなーと感じました。また、定期的な通知をBotに送ってもらっているのですが、最近のHipChatの不具合で正しく動かなくなったときに、実際の作業に支障がでてきたことも、少しこの指摘を体現しているのでしょうか。 アップルの共同創業者、スティーブ・ウォズニアック氏が提唱した、チューリングテストの代わりになるテストである「 ミスターコーヒーテスト 」の話も面白かったです。これは、人のようか?を判断する、有名なテストとしてのチューリングテストよりも、より人として判断するのに単純なことをテストにしようという話で出てきたものです。 最後に、オートメーテッド・インサイツ社のスポーツ記事の自動生成とその必要性の話が印象的でした。課題に対して、機械による記事の自動生成を適用した事例です。このような課題解決に、まるで人のように文章を書く機械が必要とされるのは面白いですが、この本の思想からいうとだんだんと機械の影響力が上がることに頭を寄せないといけないのでしょうね。 私は、人工知能は何か人に役立つ未来を考えていた側の人です。ただ、これはエンジニア気質の人の多くの意見なのですが、やはりそれとは異なった感じを強烈に持つ人も多いのですね。テストエンジニアとして多様性を知っておくことが必要な立場である以上、異なる意見も頭に入れておきたいところです。More
[Elixir]パターンマッチを使って条件分岐を関数で分ける
Elixirは関数定義の引数に対してパターンマッチを利用できます。 ちょっと、ちゃんとElixirっぽくしようということで使ってみました。 対象は以下。 https://github.com/KazuCocoa/simple_app_reporter_ex/blob/master/lib/reporter.ex get_body_json という関数は、HTTPoisonのレスポンスを引数として、そのレスポンスに適した処理を行うというものです。 修正前 caseを使って、得られたHTTPoisonのレスポンス毎に処理を分けています。 1つの関数内で条件が分岐するので、関数内の処理が必然的に多くなります。 修正後 関数定義の引数でパターンマッチを利用しています。上記の case における条件がそのまま関数定義になります。 この結果、 get_body_json() という関数に値を与えると、引数のHTTPoisonの状態によってElixirが勝手に処理を分けます。 1つの関数が過度に肥大化しなくなり、関数が最低限の責務を持つようにプログラムできるのが良いですね 🙂 締め Elixirは、条件分岐を処理する方法として 関数定義 case if cond がありますが、個人的には上記の順で考える頭を作っていきたいなと思ってます。 テストシナリオを書くときも結構条件分岐は出てくるのですが、こういう感じで責務を分けることができると処理を集中できて良いなーとふと。More
ElixirのバージョンコントロールをKiexで行う
Elixirも1.0.5がリリースされたことで、 rbenv のようなバージョンコントロールないかなーと探してみたら、kiexがありました。 https://github.com/taylor/kiex 使い方は簡単。 以下コマンドを実行する bash_profileなどに以下を追記する。 kiex コマンドを実施する この時点では、1.0.5が最新なので、 $ kiex install 1.0.5を実施しました。 あとは、 use や default で指定してあげれば良いですね。 ~/.kiex/ 配下に、gitやビルドした結果が格納されて、 use などのコマンドで切り替えて複数バージョンを使い分ける、ということになります。 なるほど。More
『日本の大和言葉を美しく話す』を読んだ
『日本の大和言葉を美しく話す―こころが通じる和の表現』を読みました。 前々から、少しづつ読んでいたものです。 日頃から使っている表現もあれば、よく知らなかった表現もあり、視野を広げることができました。 他国の文化を知ると、自身の文化や面白さを知っているということが価値のあることなのだなと感じました。また、単に話したり表現したりするだけではなく、このような面白さを少し混ぜながら表現すると身近も少し面白いものになりますね。More
『デザイン思考が世界を変える』を読んだ
デザイン思考が世界を変えるを読みました。 この本は、デザイン思考やサービス工学といった、”体験”に焦点をあてたサービスづくりに関して言及している本です。 何か案を出すときは、着想・発案・実現の3つが重要だとよく言われます。本書では、それらも含め、実例を交えつつ”デザイン思考”に関して述べています。 様々に高度化してきた最近では、単なる壊れにくものが良いものという時代がではなくなってきました。そのため、サービスという体験、さらには体験自体に価値を織りなしていく様が重要な位置を占めます。それに伴い、サービス工学なども発達してきました。それは、多角的な角度から物事を見て、より良い体験を提供できるように構築していく考え方です。 デザイン思考、工学的な話も含めてざっと幾つか書籍を読んでいるのですが、この本は手にとって気軽に読めるサイズのものなので、時間を見つけて嗜んで見ると良いかもしれませんね 🙂More
アプリのレビューを新着順で取得するライブラリをElixirで実装してみた
過去、 GooglePlay/AppStoreのレビューを取得するスクリプトを少し整えた のようにRubyでAppStoreやGooglePlayで新着レビューを取得する実装を書きました。 それを題材にElixirを使って同様のライブラリを書いてみました。Elixir歴は、Getting Startedを1巡したくらい。 GitHub https://github.com/KazuCocoa/simple_app_reporter_ex Hex https://hex.pm/packages/reporter Doc http://hexdocs.pm/reporter/0.1.1/ HTTPoison、Poison、Quinn、Flokiを使って、HTTP通信やJSON、XML、HTMLスクレイピングを満遍なく触った気がします。 テストデータ用意してのDocTestや、ExUnitなどもザーッと触りましたが、Elixirというか、Erlangの良さであるprocessを使った並行実行は実装していません。 もう少し気が向けば触っていこうかなと思っている次第。More
Appium1.4.5(1.4.6)がリリースされ、ROADMAPも追加されてた
1.4.5がリリースされましたね。 fix problem with npm shrinkwrap that caused Appium not to start だそうです。依存関係を持ったライブラリの更新が主な模様。 他、以下が追加された模様です。 iOS only: webviewConnectRetriesの追加 WebViewでコネクション貼るときにretry回数を可変にしたものぽい 他、数週間前にAppium、ROADMAPを追加していましたね。 ちょっと中身みてみました。 いくつか予想していたものがあって、そうだよね〜というものも。 DroidDriver backend integration Apple Watch support iOS 8.4 support https://github.com/appium/appium/blob/master/ROADMAP.md Non-UIAutomation iOS backend これ、Calabashとか参考にすると確かにできそうなのですが、Philosophyを曲げることになるので個人的にはお流れになってほしいような。(Appiumがカバーする領域がぶれそう) 追記(2015/06/20) Appium 1.4.5、npmリリース失敗してましたね。 Appium 1.4.6が re-publish されて実質1.4.5が使えるようになりました。More