Unyablog.

のにれんのブログ

Raspberry pi 2 に GitLab を入れた

最近体調が悪いです。

さて、今回は自宅の Raspberry pi に GitLab を導入した話です。

GitLab とは、GitLab Inc. が開発しているサービスで、GitHub のクローン的なやつです。といってもインターフェースまでそっくりというわけではないですし、GitLab 独自の機能もあります。

昔は気持ち悪い生き物のアイコンで有名だったのですが、最近ロゴが変わってスッキリしました。

GitLab は自分のサーバーに設置することができ、さらにオープンソースの "Community Edition" なら無料です。無料でも十分な機能が使えそうでした。

導入理由

僕は書いたコードは GitHub で大抵オープンソースにしているのですが、レポートを tex で書いているのをオープンにするわけにもいかないので private repository にしようかなあと迷っていました*1

実際 private repository でもよかったのですが、 .xlsx とか .numbers 的なファイルもそこそこあったので外部に上げるのになんとなく抵抗があり*2、GitLab で管理することにしました。元々興味もあったし。

導入

*1:元々は Raspberry pi のあるディレクトリ上にレポジトリを作っていたのですが、webから気軽に見れないのが不便だなあと感じたので

*2:でかいバイナリや、どんな情報あるかわからない xlsx をGitHubにアップロードするのがなんとなく好まなかった

続きを読む

Android Studio 2.0 preview で Instant Run を使ったら最高だった

この記事は KMC アドベントカレンダー 1日目 の記事です。

さて、先日 Android Dev SummitAndroid Studio 2.0 (以下 AS 2.0) が発表されましたね。この会自体は結構前から告知されていたのですがまさかこんな機能が来るとは思っていませんでした。

Android Developers Blog: Android Studio 2.0 Preview

目玉機能は 'Instant Run' というもので、デバッグ中コードを書き換えた時に差分を高速にビルドし、 再インストール・Activityを再起動せずとも アプリのコードを変えられるというものです*1。実際にそんなことがありえるのか...?と疑いたくなりますが、動画も上がっているし正しそう。

これは自分で試してみるしかない!ということで試してみた話です。

Android Studio 2.0 preview をインストール

*1:Android 4.0 以上で使えるらしいです

続きを読む

Android の CI テストがたまに落ちるので戦った

前々回と前回の記事です。

結局 travis でも CircleCI でも確率的に落ちるじゃん的な話でした。

travis だと 1/2、 CircleCI だと 1/4 ぐらいで落ちてしまいます。さすがにこれだけ落ちると鬱陶しいのでなんとか直したいところ。

ということで直すために頑張った話です。

状況

続きを読む

circleCI で Android アプリのテストをする (travis から移行)

前回の記事です。

circleCI に移行する

前回の記事でまあうまく行ったのですが結構な確率で落ちる。masterが進んでるわけではないのに pr と pull で違う結果になったり、 merge すると落ちたりしていました。

いろいろやってみたのですが結局不安定なまま変わらなかったし、travisfirefox で見るとめちゃくちゃ重い*1といった理由で travis で消耗するのをやめようということになりました。

そして CircleCI を使ってみました!

CircleCI は travis CI と同じように CI サービスの一種です。travis は open source では無制限ですが、 CircleCI では4コンテナに制限されるみたいです。*2

まあ4コンテナもあれば十分でしょう。

build.gradle とかは前回の記事を参考にしてください。

.travis.tml から circle.yml へ

*1:Chrome だとそんなこと無いんですが...

*2:closed だと1コンテナのみ

続きを読む

travis で Android (Kotlin 付き) のテストをするときにしたことのメモ

自分の作ってるアプリにテスト書いてtravisでやってくれるようにした話です。

テスト

長らくテスト全く書かずにしてきたのですがいい加減そろそろテスト書かないとなあと思ったのでテストをシュババっと書きました。*1

とりあえず gradle にシュッとそれっぽい依存を書いて

そして kotlin でパパっとテストを書きました。*2

kotlin でテストできるか不安でしたが java でちょっとだけ書いてそれを convert したものを参考に書いたら普通に動いてくれたので安心。

ということでとりあえずテストは完成。実機でも無事通りました。

travis の前準備(キーの暗号化)

*1:軽いテストでActivity関係の闇なテストは行っていません

*2:expected と actual の順番がミスって逆になっています http://qiita.com/deflis/items/645451d7fd85932d1134

続きを読む

macのスクリーンショットのファイル名変更したくてショートカットを設定した話

mac でスクショを取って Dropbox に移動し、更に IFTTT 使って Google Drive に移送したかったのですが残念ながら mac のデフォルトのファイル名だとスペース入ってるからか IFTTT が認識してくれなかったのでファイル名を変更しようとしました。

検索したら

/System 内部をいじる方法がありましたが Rootless 使っているので残念ながら却下。

結局 Karabiner で

を参考にして Fn キーで ScreenShot コマンドを走らせるようにしました。

screencapture -i ~/Dropbox/Screenshots/Screenshot_`date '+%F_%H.%M.%S'`.png

を走らせればいい(内部で date コマンドを走らせて日付と時刻をファイル名に挿入しています)ので、

<vkopenurldef>
  <name>KeyCode::VK_OPEN_URL_SHELL_SCREENSHOT</name>
  <url type="shell">
    <![CDATA[   screencapture -i ~/Dropbox/Screenshots/Screenshot_`date '+%F_%H.%M.%S'`.png   ]]>
  </url>
</vkopenurldef>

のようにして設定しました。*1

*1:Dropboxスクリーンショット連携機能を使うと Desktop から Dropbox に移動されるときにリネームされてスペース入ってしまうので直接突っ込んでます

kotlin 1.0 beta candidate に上げて戻した話 (betaで解決)

先日 kotlin の 1.0 beta がリリースされました。

AndroidStudio を立ち上げるとアップデートできるよ!と言われたので早速アップデートして 1.0 beta を入れてみました。

リストに [index] でアクセスできたり static 関係の java との融和性が上がったりしてよさ気だったのですが、

Android 4.3 以下で INSTALL_FAILED_DEXOPT エラーが出るようになってしまいました。

初めは2.3以下で発生するメソッド数のやつかな~って思ったのですがどうも違う。じゃあ kotlin か~~ってなって build.gradle のバージョンをもとに戻したけどそれでもうまくいかない。ましてや謎の Syntax Error が出て来る...

ということでプラグインごとひとつ前に戻すことにしました。

幸いプラグインの過去バージョンは https://plugins.jetbrains.com/plugin/6954?pr=&showAllUpdates=true に全て公開されているので、直前に使っていたバージョンをダウンロードし、プラグインマネージャから 'Install from Disk' を選択しインストール、再起動することで Syntax Error もなくなり古い機種でもできるようになりました。

まさか 4.4 / 4.3 の変化でエラーが出るとは...androidは奥深いですね(汗)

追記: 2015/11/06

kotlin 1.0 beta 正式版にアップデートするとインストールできるようになりました。めでたい!