Macでよく使ってるアプリ 2013-07

会社でMacBookPro導入が実行されて、本体も届いたんだけどセットアップする時間がないので、こっちをアップデートしておく。約2年経てばそれなりに変わりますね。

ブラウザ

GoogleChrome

RockMeltブラウザ側の開発をやめてサービスに重心を置くってことで、乗り換え。
FacebookTwitterへのシェアが簡単にできて気に入ってたんですがね。

開発ツール

Emacs

EmacsのMac版。変わらず。

XCode

説明不要。gitクライアントも含まれるし。

HomeBrew

MacPortsはもう古い!これからはBrewだ!ってのを大昔に聞いてたようで、大分前に乗り換えてました。

Sourcetree

サイト管理用にbitbucketを使っていて、そのサポート用。

情報管理

Evernote

Webに流した情報はEvernoteに自動で格納されるようにしてる。検索対象を一つに限定出来るのが便利。

Pocket (Formerly Read It Later)

元 Read It Later。Web上でとりあえずクリッピング。気に入ったのはEvernoteへ保存。

Twitter

引き続きTwitter.app。Growlとの連携で開いてる間はそれを流し読み。見逃した奴も面白ければそのうちまた回ってくるでしょうという考え。

xmind

MacでもWindowsでも使えるマインドマップツール。Mac版でノード作成直後の挙動がチョット直感的ではない。

DVDリッピング

HandBreak

iPod touch用など出力先がプリセットされているのでお手軽にリッピング出来ます。が、最近アップデートされてない&してない。ひかりTVで録画できるようになったせいかと。

ツール

ランチャー

OS標準のもの。タッチパッド+キーボードで操作できるので良い。

Growl

これも据え置きで使ってます。通知のためのツール。いろんなアプリからの通知をGrowlに一元化出来て、Spacesなどで見えていない領域にあるアプリの通知も表示できるので良いです.Extraを適度に入れるとさらによし。

Gyazo

スクリーンショットをそのままWebにアップできる.手軽にアップロード出来るので編集が不要のものには便利.

MenuMeters

継続:Macの状態をモニタリングしてメニューバーに表示するためのツール。

OnyX

Macのディープなところをメンテナンスするためのツール.基本的にコマンドラインで出来たりもするんだけど,まぁ使ってみて.

外部モニタ AirDisplay

iPadiPhoneを外部モニタにしてくれるツール。もちろんマウス操作も可能。twitterクライアントなんかを画面外にだしておくことで、メインスクリーンは仕事に集中できます。

メーラ

GMail

継続。説明不要。

動画編集

FinalCut Pro

iMovieで物足りなくなったらこれを買うしかないです。

日本語入力

Google 日本語入力

複数プラットフォームでの同一環境が欲しかったので...

標準品

  • iCal: よい出来なので.
  • iPhoto 管理が容易なので.
  • iTunes: iPhone 使ってるので.
  • Reminder : 人間って忘れる生き物だよね。
  • Terminal : 人としてまともなUNIX環境は必要ですよね。

Jenkinsとbitbucket private repository の連携にはnotifyCommitが便利

とあるサイトのコンテンツ管理を 、

  1. bitbucket のプライベートリポジトリ
  2. Jenkinsはユーザ認証有り
  3. pushしたら、httpサーバ側で自動的にpull
  4. サイト更新されてる(゚д゚)ウマー

ってやろうとしてて、軽くハマったので過程と解決策。

最初:ユーザ認証なしのJenkins + Token付きのビルドリクエスト

bitbucketの[Admin]->[Service]からToken付きのビルドリクエストをPOSTするようにして、要件の1,3,4は達成。

http://my.domain:8080/job/jabba/build?token=jabbajabbajabba

Jenkinsユーザ認証かけとこねー

誰それ構わずリクエスト送られても困るんで、ユーザ認証をかけておこうかと。
(Jenkinsでユーザ認証設定)

動かねー orz...bitbucketさんもリクエストを送れないようになったので当然です。

解決策:git plugin

git pluginにはnotifyCommitという機能があるらしいというのがわかりました。

これはアツイ。早速以下のように設定。

  • bitbucketの[Admin]->[Service]からPOSTするURLを変更。

http://my.domain:8080/git/notifyCommit?url=git@bitbucket.org:user/repos.git

  • Jenkinsのビルド・トリガにて、SCM Pollingに変更。スケジュールは空白。

動いてる(∩´∀`)∩ワーイ。これで要件の2も達成。さらには、ブランチ毎のJobを作っている場合でも必要なやつだけビルドしてくれるのもわかりました。

まとめ

  1. ユーザ認証かけたJenkinsとprivate repoの連携には git pluginの機能を使うと楽
  2. TOKENや、ジョブ名を指定する必要なし
  3. Notifyを受けたJenkinsのほうでジョブを探索してスケジューリング
  4. ブランチ毎のJobを作っている場合でも必要なやつだけビルド

なにこの素敵プラグイン。

情報共有の未来を読んでたら、石黒さんの話が登場しててびっくりした件

情報共有の未来【電子書籍】達人出版会から電子書籍で購入して、iPhoneでちまちま読んでいたのですが、その中で石黒さんの話が載ってて不意打ちをくらった。

本書は、yomoyomoさんが、の「情報共有の未来」というタイトルでWIRED VISIONに、2007年8月から2011年5月まで連載していたものの再録+あとがきの追加になっています。いささか古い話の部分はありますが、ある種の歴史書としての見方と、まだ達成されていない予言の書としての見方、そしてあとがきによる現在の対比が出来るというとても面白い構成です。

「第10章 Internet Turns On Junior Unsatisfied Nerds」から、itojunさんら当時のハッカーのやり取りを見た著者が高揚するばかりではなく絶望感を味わったという下りで、

98年の6Bone-JPBOFの話ですが、IPv6のルーティング周りを聞き取りにくい声でぼそぼそと説明していた人が、「なかなか接続がうまく行かないので頭に来てRIPngをスクラッチから書き始めて何とか成果を出し、嬉しかったのでBGP4+も作っちゃいました。OSPFv6を作っている人を何人か知ったのでぼくも手を貸すつもりです」と機器、どうやっても自分はこの人ったちのレベルまでは行けない、と一種の絶望感を味わったものです。

世代的なものはあるかもしれないですが、それを言い訳にしたくない気持ちもあり。
体験できるのにそこに身を置かないのはとてももったいないというのを再確認しました。

2013年の目標

人生二度目の海外での年越しでした。前回も今回も奥様が一緒でした。ありがとうございます。

写真はシャンゼリゼ通りの端に出現する観覧車から撮った写真。


昨年は巡り合わせによりWii U用のブラウザ開発に携わる事ができました。ゲーム業界な方達と一緒に仕事をすることで、本当に最高のブラウザの開発が出来たと思います。ありがとうございました。

Wii U プレミアムセット kuro (WUP-S-KAFC)

Wii U プレミアムセット kuro (WUP-S-KAFC)

また、期の半ばで課長職を拝命することになり、バリバリ書くという(いわゆる)「現場」らしい仕事からはかなり離れてしまいました。色々と兼任が多く、任せないと自分が回らなかったというのが正直なところです。残念な面もありましたが、採用面接など人と接する機会が多数出来た事で、自分のやりたい事やプロダクトとしてやるべき事を改めて考える機会となりました。

さらに、会社がW3Cに再加入したこともあり、日本会員会議などにも参加させてもらいました。
今後も諸々の活動に参加させてもらう予定ですので、SFC方面の方よろしくお願いします。

HTML5クックブック

HTML5クックブック

今年は

  1. 現在携わっているプロダクトについてもう少し幅広い責任を持って、ビジネスを回せるようになる。
  2. 体力の如実な衰えを感じているので、地道に体力をつける。
  3. 海外とのやり取りで語学力の無さを痛感する日々なので、真面目に体力増強。

を目標に日々精進したく思います。

ながの。

Chrome for Mac でアプリケーションショートカットを作る方法

強風により家に帰ってきたので、Jangoで音楽聞きながら作業。
jangoだけ別ウィンドウにしてたんだけど、Twitterクライアントのリンクオープンしてくれるもんだから、うざったいのでアプリケーションショートカット作成して追い出した。

なぜかはわからないが、Mac版Chromeのアプリケーションショートカットは無効にされている。そこでアプリケーションショートカットを作ってくれるスクリプトmakeApp.shをここからダウンロード。

ターミナルから以下のとおりに入力

$ cd ~/Downloads
$ chmod +x makeApp.sh
$ ./makeApp.sh
What should the Application be called (no spaces allowed e.g. GCal)?
ショートカットに付けたい名前を設定する
What is the url (e.g. https://www.google.com/calendar/render)?
URLを指定する
What is the full path to the icon (e.g. /Users/username/Desktop/icon.png)?
/Users/USERNAME/Downloads/jango_logo_108x48.png
$

これで、アプリケーションディレクトリにアプリケーションショートカットが作成されている。
なぜかアイコンが設定されていなかったけど、まぁいいや。問題ないので気にしない。

MacOSXでatコマンドを使おうとしてハマった話

世の中はSiriの日本語対応だとか、新しいiPadとかで大盛り上がりですが、どちらにもアップデートしない私はMacBook Airでスクリプティング。

RockMeltのフルスクリーン表示をデフォルトで使用しているのですが、没頭してたら時間がわからず困ります*1。そこで、growlnotifyで一定時間が経過したら通知するようなスクリプトを作成することにします。

時間のパースとかやりたくないなぁと思っていたところに、atコマンドの存在を知りました。

これで良いじゃん!と思いましたが、う、動かない...よくよく調べてみると、ただでは動かしてくれないらしい。

以下のようにすると良いとのこと。

$ sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist

試したところ、バッチリ動きました!

$ timer after 5

とかやると、5 分後にgrowlで表示してくれます。

メッセージの指定が出来なかったり1分前とか3分前とかの通知をしてくれなかったりしますが、それはおいおい気が向いた時にでも。

スクリプトはこちらに置いてあります。

*1:といってもtwitterは常にgrowl連携させているのですが...

[Jenkins] 第5回Jenkins勉強会に行って来ました。

品川の楽天タワーで行われた第5回Jenkins勉強会に参加してきました。

講演

DEV@cloud Jenkins-as-a-Serviceの舞台裏

Jenkinsのリード開発者@kohsukekawaさんによる、Jenkins のホスティングサービスDev@cloudの紹介。

CloudBeesが運営するサービス。 Amazon EC2の上に構築しているのでその裏側の紹介。

JVM:Slave毎にJVMで駆動。JVMで動かしている。
独自パッチ:標準のものから、マスターでビルドが起こらないようにするなど、独自パッチをあてているとのこと。このパッチはほしいぞ...。
Jenkinsの外:Chef (Rubyのコンフィグ管理ツール)をつかって、セットアップしたやつをAMI化しているらしい。そういうツールがあるのは知らんかった。
Linux Container:OSレベルの仮想化に使っている。スレーブのリサイクルが高速で、Amazon EC2の上での独立性を高めて、下のサービスに影響を受けなくて済むようにするための工夫。たしかにXとかslave側にはほとんど不要だからこうしておけばVirtualBoxのクライアントを複数立ち上げるより良さ気。
Nagiosによるモニタリング。信頼を獲得するために、動かしているシステムの状態を把握する。ディスクスペース、スレーブの稼働状況、負荷JVMヒープなどを監視。

要約⇒ちっちゃなことからコツコツと。少しずつシステマティックな管理を導入しよう。

早瀬さん@楽天 : 「楽天での"Continuous Delivery"読書会について」

楽天の中で"Continuous Delivery"読書会を開始したときの話。
Jolt Awardの中から本をピックアップして投票⇒読書会スタートの予定が、投票開始前に「CI本買いました!」って写真付きで社内SNSにアップする人が続出したために、"Continuous Delivery"を読むことになったとのこと。

一章毎の輪講形式。週一回ぐらい。3回目からカフェテリアでビール飲みながらに移行。実業務との関わりなどを絡めて行ったので上手くいっている。

「(このような活動を)社外に発信することで、社内のコミュニケーションが良くなった」とのこと。

加藤さん@mixi : 「mixi における Jenkins の運用について」

mixiでの実例。単純な繰り返し作業を無くすチームというのが存在するとのこと。これはいいチーム。
JenkinsのMasterは3台

  1. iOS: Build + インストール用に .plist 作成
  2. Android: Build Test + Gerrit
  3. "mixi"という名のテスト環境: コードをチェックアウト& テスト
  • テスト結果をTAP::Harness::JUnitを使って、JUnit形式整形⇒Jenkinsで表示
  • Code Metricsは、Perl::Metrics::Liteや、Devel::Cover::Report::Clover

と書いては見たものの、Perlモジュールなんてわからねぇ...。

"try" Job:パラメタライズドビルドにブランチURLを渡してフィーチャーブランチをテスト。しばらく前に似たような要求があったのでその時に知ってればよかったな。最初にチェックアウトして、終わったら忘れる。ブランチであることが確定していたら、svn switchでもイケるかも。
ブランチを作る?作らない?:Web系開発のトレンドでは、ブランチを作らず、メインラインに直接コミットして、コンフィグ変更で実行できるようにするのが主流になりつつあるらしい。

メインラインにコミットして、コンフィグ変更で実行できるようにしている。これのメリットは、A/Bテストがやりやすいこと。
test is dead:正しい作り方も大事だけど、意味のあるものを作るのが大事。テストがこけているどうのこうの小さいところに拘らず、製品を作ってるんだっていう、もっと高い意識を持つのが重要。

LT

Smart Jenkins on Ruby

東大笹田研究室のコ 文婷さん、胡 益さん。節電のためにビルドマシンを24時間つけておくことができなくなったため、夜中にテストするように。Slaveマシンの自動On/Off。

RubyでJenkinsのプラグインが開発できる!

ビアバッシュ

参加費で購入したというピザと、楽天のおごり(!!)の缶ビールで乾杯。
Jenkins特集が掲載される Web+DB PressJenkins実践入門オライリーのJenkins本BeeingGeekが抽選によりプレゼントされました。

まとめ

Keep
  • redmineに引き続きJenkinsの勉強会に参加。今後も開発の基盤に使うシステムに今後も参加する。出来れば年内にどこかで発表できるぐらいのネタを作りたい。引き続き社外でのプレゼンスを上げる努力。
Try
  • 前回のTryを踏まえ、今回はJenkins入れて行ったけど、iProxy有効にした場合に起動してくれなくなった...。要事前確認。