cutmail's blog

write the code

読了「ソフトウェア開発の名著を読む 第二版」

ソフトウェア開発に関する10冊の書籍を紹介している。
ソフトウェア開発を始めたばかりの人など、どういう本から読んだら良いかわからない時に手にとって見ると良い感じの内容だった。
いくつか読んだことがない本もあったので、これを期に読んでみようと思う。

  1. プログラミングの心理学
    • ソフトウェア開発の人間的側面について
  2. 人月の神話
    • 見積もりとスケジューリングの単位としての「人月」の危険性を指摘した不朽の名著
  3. ピープルウェア
    • ソフトウェア開発における人間的側面を重視し、人間中心に考えることの大切さを説く
  4. デッドライン
    • 人間中心のプロジェクト管理について、デマルコが小説形式で表現した作品
  5. ソフトウェア職人気質
    • ソフトウェア開発を「工学」ととらえることをやめて、「職人気質」という基本へ回帰せよと提唱する
  6. 達人プログラマー
  7. コードコンプリート
  8. プログラミング作法
  9. リファクタリング
    • マーチン・ファウラーの不朽の名作
  10. ビューティフルコード
    • 「美しいコード」について、33名の著名なプログラマーがそれぞれの想いを語る超大作

ソフトウェア開発の名著を読む 【第二版】 (技評SE選書)

ソフトウェア開発の名著を読む 【第二版】 (技評SE選書)

「ALLIANCE 人と企業が信頼で結ばれる新しい雇用」を読んだ

LinkedIn創業者であるリード・ホフマンによる、終身雇用ではない、人と企業の新しい雇用関係についての本。 人と企業の長期的関係のために、定期的に仕事を変えたりする期間を「コミットメント期間」と呼び、本書では3つのコミットメントタイプについて解説している。

  • ローテーション型
    • 会社との相性が将来的にどうかを評価する
  • 変革型
    • 従業員のキャリアを一変させ、会社に大きな変革をもたらす
  • 基盤型
    • コアバリューを守り伝える

それぞれのタイプごとに狙いや期間の長さ、更新に関してなども違う。

また印象に残った点として、社員には社外のネットワークを徹底的に活用することを推奨することや、退職したOBなどとも関係を続けることが企業にとって長期的に大切だということが挙げられていた。

ALLIANCE アライアンス―――人と企業が信頼で結ばれる新しい雇用

ALLIANCE アライアンス―――人と企業が信頼で結ばれる新しい雇用

第一回testotips.ioに参加してきた

3/19にクックパッドさんで行われたtestotips.ioという勉強会に参加してきました。 testotips.ioはテスト/テスト・ツール周りのtipsを持ち寄って情報共有したいというところから始まったとのことです。

testtips.ioのs.ioは塩→塩味

第一回目のテーマはAppiumでした。

以下メモ。

Appiumの中身とその周辺Tips(仮)

@Kazu_cocoaさん

Appiumのテスト結果レポートをSahaginで作ってみる

@nosonosonosoさん

AppiumのPHPクライアントを使う上で行っている工夫

@takahashi22さん

  • 背景、やりたいこと
    • アプリの品質向上とより高頻度でのリリース
    • クラッシュを削減する方法の必要性
  • 手法

    • Appium, Espresso
  • システム全体蔵

  • アプリテスト自動化の現状
    • まずはAndroid
    • 並列実行可能、ID指定は4.3以上
    • WebViewへの切り替えも実用的に動いている
      • ログインとか
    • UI操作のスモークテスト的な位置づけでAppiumを利用
    • UIの細かい機能はespresso

Appiumを使ってiPhone Safari、Andorid Chromiumを使ってアプリをテストするTips

@HC_asagiさん

  • Excelに書いたシナリオテストからテストを実行

Running appium tests on Jenkins

@vishaljaynさん


Appiumを実際に使っている方の発表が多く、まだ使っていない自分としては導入してみてもいいかなと思えました。 次回はユニットテストなど、もう少し低レイヤーのテーマでやるとのことでした!

第9回potatotipsでAndroidアプリ開発のログ出力について発表をしました #potatotips

既に先週のことですが、弊社でpotatotips#9を開催いたしました。

バタバタしてしまいましたが、たくさんの方に来て頂き、そこそこ盛り上がってのではないかと思います。

他の方の発表まとめなどはこちら。

AndroidとiOSのtipsを共有するpotatotips #9に参加してきたので発表内容まとめてみた!

自分はLog周りの話と、Timberの紹介をしました。

Vagrantのpluginをインストールしようとして、nokogiriのインストールエラーで止まってしまう件の対応

DigitalOcean上にVMを立てていろいろやるのを、Vagrantから実行したかった。

vagrant-digitaloceanプラグインをインストール。

$ vagrant plugin install vagrant-digitaloceal

ところが、

$ vagrant plugin install vagrant-digitaloceal
Installing the 'google' plugin. This can take a few minutes...
Building nokogiri using packaged libraries.
Building libxml2-2.8.0 for nokogiri with the following patches applied:
        - 0001-Fix-parser-local-buffers-size-problems.patch
        - 0002-Fix-entities-local-buffers-size-problems.patch
        - 0003-Fix-an-error-in-previous-commit.patch
        - 0004-Fix-potential-out-of-bound-access.patch
        - 0005-Detect-excessive-entities-expansion-upon-replacement.patch
        - 0006-Do-not-fetch-external-parsed-entities.patch
        - 0007-Enforce-XML_PARSER_EOF-state-handling-through-the-pa.patch
        - 0008-Improve-handling-of-xmlStopParser.patch
        - 0009-Fix-a-couple-of-return-without-value.patch
        - 0010-Keep-non-significant-blanks-node-in-HTML-parser.patch
        - 0011-Do-not-fetch-external-parameter-entities.patch
************************************************************************
IMPORTANT!  Nokogiri builds and uses a packaged version of libxml2.

If this is a concern for you and you want to use the system library
instead, abort this installation process and reinstall nokogiri as
follows:

    gem install nokogiri -- --use-system-libraries

If you are using Bundler, tell it to use the option:

    bundle config build.nokogiri --use-system-libraries
    bundle install

However, note that nokogiri does not necessarily support all versions
of libxml2.

For example, libxml2-2.9.0 and higher are currently known to be broken
and thus unsupported by nokogiri, due to compatibility problems and
XPath optimization bugs.
************************************************************************
Bundler, the underlying system Vagrant uses to install plugins,
reported an error. The error is shown below. These errors are usually
caused by misconfigured plugin installations or transient network
issues. The error from Bundler is:

An error occurred while installing nokogiri (1.6.2.1), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.6.2.1'` succeeds before bundling.

という感じのnokogiriのインストールエラーが表示されてしまった。 システムに入っているものとは違うバージョンのnokogiriを使おうとしているようなので、 ググったところ、

http://stackoverflow.com/questions/23621717/vagrant-plugin-and-nokogiri-install-issue

システムに入っているnokogiriを使うNOKOGIRI_USE_SYSTEM_LIBRARIES=1というオプションが!

再度オプションを付けて試したところ、無事インストールできた。

$ NOKOGIRI_USE_SYSTEM_LIBRARIES=1 vagrant plugin install vagrant-digitalocean                                                                                      
Installing the 'vagrant-digitalocean' plugin. This can take a few minutes...
Installed the plugin 'vagrant-digitalocean (0.5.4)'!