読者です 読者をやめる 読者になる 読者になる

distnoted について

mac が朝から暴走した

Activity Monitor を見たら distnoted とのこと。
初めて見る daemon だったので、man した。

man の内容
man page distnoted section 8

ソースコードが時間内に見つからなかった…

どうも Apple にクラッシュ状況を通知するデーモンのようなので kill して大丈夫のようだ。

ところで、この相談に載ってる人たちは何なの?
https://discussionsjapan.apple.com/thread/10171102?start=0&tstart=0

ちな、普段 暴走するのは ESET であることが多い。
Windows では優秀なだけに、頑張って欲しい所

API Document Tools

API って言った時に、API のリクエストを投げる方なのか、API の受け口の方なのかを意識しないと話がよくわからない 私です。

(つらっと雑談を書いた所、思っていたよりもアクセス数があったので他のところで書いた記事を転記します)

そんな私が API Document Tool を調べてみました

■ 参加選手 Swagger http://swagger.io/ RAML http://raml.org/ apiblueprint https://apiblueprint.org/ apiary https://apiary.io/ json-schema http://json-schema.org/

RSpec なら autodoc というのが良いらしいです

■ いろいろ書こうと思って調べたら… 下記の記事が、とてもよくまとまっていたので書かなくてもいいのではないか?と思い始めた http://qiita.com/taizo/items/5a969ace57394a2d5b4a

結論としては、今のところのツールだと全てにおいて簡単に実コードとドキュメントの差分が発生するので メンテが大変 でした。

使い道としては、API のモックサーバー(API をシミュレートしてくれるサーバー)が関の山。 もうちょっと簡単に更新できたり、チェックできるようになったら blog を書きます

■ 参考記事 Document tool 全般について調べた時に参考にさせていただきました http://qiita.com/horimislime/items/32acf0f1be33a269a309 http://qiita.com/taizo/items/5a969ace57394a2d5b4a

autodoc について参考にさせていただきました http://r7kamura.github.io/2013/12/01/autodoc.html

某イオンモールにて

先日、妻の実家にいた時のこと

今度、小学生になる幼稚園児の意気込みが書かれた掲示物があった。

大きな桜の幹を模した紙が幼稚園ごとにあり、桜の花びらの形に切られた紙には子どもたちの「意気込み」が書かれていた。

桜の花びらを一枚ごとに見ていくと「100点を取りたい」「勉強をがんばる!」という言葉が多く書かれていた。 新興住宅地として移住者が多く来ており、小学校の 1学年が 7クラスになるような地域の子どもたちは意気込みが違うな―なんて思っていた。

そんななか、一枚だけ達筆な文字で書かれている桜の花びらに目が奪われた。

「クラスで一番のアイドルになりたい!!!」

エクストラメーションマーク(!)が 3つもある。 そして、アイドル志望。

ここまで自分の欲望が出ているのもすごいし、アイドルになれるという自信を幼稚園児で持っているのもすごい。 この子にあってみたいけど、それは犯罪なので つくづくもったいない。

ぜひ「クラスで」ではなく「世界で」を目指してほしいなー

colemak の話

こんにちは、 Qooh0 です。 冬の寒さが一段と増してきましたね。 いかがお過ごしですか?

VOYAGE GROUP エンジニアブログ Advent Calendar 2015 の19日目です。

さて、我流でキーボードの打ち方を学んだ人なら「親指が痛くなった」という経験があるかと思います。 私は今年はじめて親指に違和感を覚えるようになりました。

考えられる対策で手軽にできるのは、だいたい下記 3つでしょうか。 1. ストレッチをする 2. キーボードを変える 3. 配列を変える


  1. ストレッチ

'腱鞘炎 ストレッチ' で検索すると、良い方法が見つかるかと思います。

  1. キーボードを変える

いろいろと世の中にはキーボードがあるので、手に合うものを探してみてください。 'Ergonomics' で検索すると、よりよいキーボードが見つかるかもしれません。

また gest.co のキーボードも手に優しそうです。

  1. 配列を変える

大抵の人は 'QWERTY 配列' という配列のキーボードを使用しています。 QWERTY 配列より腱鞘炎の予防に効果があると言われるものに 'Dvorak 配列' という配列があります。 もうちょっと QWERTY 配列寄りで、腱鞘炎の予防に効果があると言われるものに 'Colemak 配列' があります。

私は Colemak 配列を使っています。 Colemak 配列は、母音がスタンダードな手の配置にそって配置されており、 'QWERTY 配列' に比べ指の動きが少なくて済みます。 また、ショルダーハックを防ぐことが出来ます。

Colemak 配列を覚えるのに、下記サイトを使い練習をしました。 http://www.keybr.com/

手が完全に覚えるまで 3ヶ月くらいかかりました。 特に、R と S に苦労しました。 S の位置に R が来るのですが、S を押したい時に R を押してた!ということが良くありました。 R と S などの些細な問題を除けば 1ヶ月もせずに覚えられると思います。

また、変更し始めた時はキーを打つスピードが下がるので、忙しい時には配列の変更をしないほうがいいと思います。 忙しくないと思って、配列の変更をした途端に忙しくなるとかは あるあるだと思います。

そして何より、物理的にキーの位置を変更するとペアプロが、とてもやりにくくなります。 私が 'QWERTY 配列' を使う分には問題ないのですが、他の人に Colemak 配列を使わせようとすると嫌がられます。 どうしてもペアプロをする場合、Mac のキー配列を QWERTY 配列に戻したりしています。

私個人としましては変なキー配列にすると苦労するので、物理的に楽なキーボードを試しまくることをお勧めします。

hubot で雑談したり、FAQ に答えてもらう

メモ

TL;DR

https://github.com/Qooh0/myhubot
script ディレクトリ以下に hubot + Slack で DoCoMo の雑談API と FAQ API に対応したスクリプトを置きました

■ hubot を触る

https://hubot.github.com/docs/
上記に書いてあるとおりにインストールすればOK
npm install -g yo generator-hubot を実行

その後

mkdir myhubot
cd myhubot
yo hubot

で入力していきます。
adapter を聞かれたら、 slack と入力します。

■ hubot を実行する

簡単なのは、実行スクリプトを書くことです。

[2015-09-06 19:04:36] % cat start-el.sh
#!/bin/zsh

cd src/myhubot
export PORT=10001
export HUBOT_SLACK_TOKEN=wwwwww
export DOCOMO_API_KEY='xxxxxx'
export DOCOMO_CLIENT_SECRET='sample'
export DOCOMO_CLIENT_ID='id_xxxxxx'
./bin/hubot --adapter slack

こうすると、 node.js では環境変数にアクセスできるので process.env.DOCOMO_API_KEY で設定を取得することができます。

■ ライブラリを追加したい場合

npm install —save <package> で追加することができます

Rails プロジェクトの実行環境を作る

これからしばらく Rails についての blog を更新していきます。
そのための下準備として、Ruby の実行環境を作り方を記載していきます。

■ プロジェクトの実行環境を作成する

昔は、実行環境を構築するまでが一苦労でしたが、今は誰かが用意してくれたやつを実行すればよいだけになっていることが多くて楽ですよね。今回のプロジェクトでは、 Ansible + Vagrant で作成していくことになりました、私が…。

■ なぜ Ansible か?

  • Client に特別なアプリを入れる必要がない
  • 特殊な DSL を覚える必要がない

■ なぜ Docker ではないのか?

  • なにか問題が発生した時に、ある程度開発者個人で対応できる必要があるが、そこまでコストを掛けられないのではないか?
  • 新しく人が入ってくるたびに、 Docker について学んでもらう必要があるが、そこまでコストを掛けられないのではないか? と判断したため

■ Ansible でやっていること

  • OS のインストール
  • 必要なライブラリのインストール
  • bashrc などへの書き込み、 ソフトリンクの作成など環境設定
  • プロジェクトのコードの Git clone
  • DB へのデータ投入

Ruby の実行環境について

Ruby の実行環境は Vagrant 内に rbenv —global で設定しています。
専用の VirtualBox なので、グローバルで設定したほうが良いという判断です。
ansible で設定しています。

Ubuntu 用は Galaxy.ansible.com で公開中です。
https://galaxy.ansible.com/list#/roles/2698

■ gem のインストールについて

開発環境を作成するときに ansible から bundler を グローバル環境に gem install しています。 bundler 以外のインストールについて気にするときは、Rails new した時に —path を指定するのを忘れないようにします。
一回、path を設定すると .bundler/config にインストール場所が保存されます。
この場合、Gemfile を更新した場合は次回から bundle install で OK です。

■ どこまで書くか問題

こういう環境設定の話って、どこまで書くか毎回悩みますわ…。

昔ながらの Private 関数の宣言、見にくくない?

ruby

■ その昔

Ruby には このような書き方しか許されてなかった…

class Hoge
  def fuga
  end

  def jack
  end

private:

  def sage
  end

  def age
  end
end

■ 今

しかし、時代は変わった

class Hoge
  private def sample
  end
end

def の前に private ってかけるようになった

今までだと、図の左のような作りになる
Public メソッド内で使用されているprivateメソッドが遠くに宣言されていて、ちょっと見にくい.
vimmer の :vsp / :sp 使えばいいじゃん的な発想 滅びろ! は、ちょっと…。
f:id:qooh0:20150829140923p:plain

そんなわけで、private を def の前に書けるようになったんだから、
昔の書き方にとらわれず、private を近くに書いてもいいんじゃないでしょうか?

……だめかな?