ただの日記

1週間ほど日記をさぼってしまった。理由は、風邪がまだ治ってないにもかかわらず、毎日朝8時頃に出社して帰りが24時近くなってたから。先週1週間が1週間もなかったかのように過ぎ去っていったから、忙しかったんだろうけど忙しいと感じることすらなかった気がする。

やりたい事がたくさんありすぎて時間が無いなと感じるとき、よく「寝てる時間が惜しい」と思っていた。でも最近は、それが間違いだと思うようになった。惜しいのは寝てる時間じゃなくて、ウェブで遊んでる時間だ。

Jenkins のプラギンを作ってみたくなった

Android アプリ開発をやり初めてから Java にまた慣れてきたこともあって、今度は Jenkins の Plugin を作ってみたくなった。

Jenkins のプラグインを開発するためには何が必要か調べてみた。だいぶ前に調べたときは maven が必須だったはずだけど、いまは Gradle を使ってビルドできるそうだ。 具体的な方法はこの Wiki のページに書いてある。その内容を適当に訳したものを以下に書いておく。

必要条件

  • Gradle 1.0 milestone 6 以上
  • プラグインが Jenkins 1.420 以上を対象にビルドされること

初期化

プラグイン用のプロジェクトディレクトリは、プラグイン名が foo だったら、foo または foo-plugin にする必要がある。そして、build.gradle に次の内容を書く:

apply from:"https://raw.github.com/jenkinsci/gradle-jpi-plugin/master/install"
// Or copy the contents of that URL into your build.gradle directly.

// Whatever other plugins you need to load.

groupId = "org.jenkins-ci.plugins"
version = "0.0.1-SNAPSHOT"    // Or whatever your version is.
description = "A description of your plugin"

jenkinsPlugin {
    coreVersion = '1.420'                                               // Version of Jenkins core this plugin depends on.
    displayName = 'Hello World plugin built with Gradle'                // Human-readable name of plugin.
    url = 'http://wiki.jenkins-ci.org/display/JENKINS/SomePluginPage'   // URL for plugin on Jenkins wiki or elsewhere.
    gitHubUrl = 'https://github.com/jenkinsci/some-plugin'              // Plugin URL on GitHub. Optional.

   // The developers section is optional, and corresponds to the POM developers section.
   developers {
       developer {
           id 'abayer'
           name 'Andrew Bayer'
           email 'andrew.bayer@gmail.com'
       }
   }                           

}

もし追加で必要なリポジトリが存在するなら、それを jenkinsPlugin セクションの後ろに追記する。

ビルド

gradle celan jpi を実行する。

テスト

  • gradle test で全ユニットテストを実行できる。maven と違ってテストは自動的に実行されない。
  • 手動テスト用に Jenkins を起動したい場合は gradle server を実行する。Jenkins はポート 8080 で起動する。

リリース

  • 自動的にリリースすることはないので、今の状態がリリース可能かどうかは各自で管理すること。
  • gradle clean uploadArchives を実行すればリリースできる。このコマンドは、プラグインをビルドし、Jenkins の Maven リポジトリへデプロイする。
    • Jenkins Maven リポジトリへアクセスするためのユーザ情報を、~/.jenkins-ci.org に以下のように書いておくこと。

      userName=yourusername
      password=yourpassword
      
    • gradle clean deploy でもリリースできる。deploy タスクは uploadArchives のエイリアスになってる。

Ruby 2.1.1 リリース

診察券は必要なんだろうか

今日は、昨日に引き続き風邪と闘う一日だった。

昨日は診察券を持たずに耳鼻科へ行ったところ、病院のデータベースから来院歴を検索して、ちょうど2年前に訪れていたことが判明したのだった。 ということは、次回も診察券を持たずに行っても大丈夫ってことにならないだろうか?何故診察券は必要なのだろう?

次回の来院時には保険証が変わってるかもしれないからかな?

風邪をひいた

朝6:00頃に目覚めたと思う。喉がかなり痛かった。今日出勤してもまともに仕事できなそうだし、症状が酷くなったり他人に伝染させたりすると厄介だから欠勤することにした。

「そういえば前に近くの耳鼻科に行ったことがあったなぁ」と思い出してネットで調べてみると、それが望月医院であることがわかった。8:30過ぎじゃないと電話が通じないっぽいので二度寝した。

9:30に再び目覚めたとき、最初よりも具合が悪くなっていた。望月医院に電話してみると、予約制じゃないから来た順に診るという。さっさと着替えて病院へ向かおうと思い、診察券を探したのだが見付からない。でも具合は悪いので諦めて病院へ向かった。

窓口で診察券が無い事を告げると、記録を調べてくれた。すると、ちょうど2年前に来院していたらしい。なんという偶然だろうか。 診察室に通さるとすぐに喉の状態を観察された・・・かと思ったら、すぐに喉と鼻腔に薬をピュピュっとかけられ、吸引させられ、15分もかからずに終わってしまった。すごい体験だった。 帰りに食料とマスクを買い、調剤薬局で薬を買った。帰宅したらすぐに買ってきたいちごを食べ、薬を飲んで寝た。

次に起きたのは14時頃だったと思う。寝る前よりもさらに具合が悪く、体も怠くて大変だった。頭痛もしていたのでロキソニンを飲んで再び横になった。なかなか寝付けなかったが、ロキソニンが効いてくるに従い具合が良くなっていくのが分かって楽しかった。

んで、そのあと寝たり起きたりして紆余曲折あって寿司を食べた。

おやすみなさい。

RIP Jim Weirich

Jim Weirich が亡くなったそうだ。一昨年の RubyConf 2012 で Y combinator をライブコーディングしていた姿が眩しかった、僕にとっては一人のヒーローだった。

ありがとうございました。

年齢が帰れと言っている

Android アプリ開発2日目

実は、昨日から仕事で Android アプリ開発をやっている。 期間は最長2週間で、とある iOS 用のアプリを Android へ適切に移植する事を目指している。

1日目の昨日は環境整備と超簡単な入門教材をこなし、Android アプリをゼロから作る練習をした。 2日目の今日は、本体の目的であるアプリの開発にとりかかった。

iOS アプリ開発の経験、大昔に Swing や AWT や GTK+ などを使った経験、オブジェクト指向に関連する知識などを総動員すると、 Android のフレームワークの各要素の役割は思ったほど難しくなく、素直に理解できている気がする。

その代わり、細々としたやりたい事について、それをどう実現すれば良いのかを調べて解決するのにまだ時間を取られてしまっている。 こればかりは、勝手が違う系の問題だと思うので、時間が解決してくれるのを待つしかないのだろう。

そういえば、Android Studio が Vim キーバインドのプラグインを持ってることも知らず2日も過していた。 よく考えれば Android Studio は IntelliJ なんだからそういうプラグインがあるのは当然だ。 それに、こんなことは一言「Vim キーバインド使えなんですかね?」と周りの Android エンジニアに話し掛けるだけで解決したはずだ。 不慣れな環境に浸ることで、コミュニケーションの大切さを思い知ってる気がする。

今日の夕方頃は、「明日くらいには半分くらい進捗してそうだし余裕なんでは」とか考えていたけど、 明日は水曜日で15時までほとんどミーティングで潰れてしまう悲惨な日だということを今思い出した。

iPhone のカバーを新調した

HTC One に入れる micro SIM を入手するため IIJmio と契約した

HTC One の Developer Edition を昨年の6月に買ってからずっと SIM なしでやってきた。ほとんど使わなかったからなんだけど。 でも、ここ最近はまた Android を触る頻度が高まってきていて、HTC One 単独でデータ通信ができる状態にして使用感を確かめたくなる事が増えそうな気がしている。

そこで、IIJmio の micro SIM カードを契約してみた。 手続きの途中で「パスワードは表示されますのでご注意ください」と言われたときはちょっとビックリしたけど、無事に契約できたのでカードが届くのが楽しみだ。 パスワードはボタンで表示・非表示を切り替えられるようにすると良いと思った。