かまたま日記3

プログラミングメイン、たまに日常

Ubuntuでgitがアップデートされてるか確認する

先日Gitの脆弱性が発表されて、自分たちのサーバでいろいろ対応した時のメモです。バージョンはUbuntu14.04。

バージョン確認

$ dpkg -l git
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                                           Version                              Architecture                         Description
+++-==============================================================-====================================-====================================-=================================================================================================================================
ii  git                                                            1:1.9.1-1ubuntu0.6                   amd64                                fast, scalable, distributed revision control system

自動アップグレードの設定確認

Ubuntuでは unattended-upgrades というパッケージで自動アップグレードができるようになるようです。 設定内容は /etc/apt/apt.conf.d/20auto-upgrades で確認します。

Ubuntu 16.04: 自動アップデート / アップグレードの設定をする - Narrow Escape

$ cat /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

自動アップグレードの実施確認

自動アップグレードの履歴は /var/log/apt/history.log に出力されてるので、内容を確認します。 こんな感じのログが出てるはず。

Start-Date: 2017-08-11  06:27:58
Upgrade: git-man:amd64 (1.9.1-1ubuntu0.5, 1.9.1-1ubuntu0.6), git:amd64 (1.9.1-1ubuntu0.5, 1.9.1-1ubuntu0.6)
End-Date: 2017-08-11  06:28:29

携帯をP10 liteに変えた

2014年の4月くらいからNexus 5を愛用してたんですが、2016年10月にセキュリティパッチの提供も終了してしまい、さらに以前修理したにもかかわらず、また最近液晶を割ってしまい、そろそろ変えないとと思っていました。

とりあえず、色々考えた結果、HuaweiのP10 liteにした次第です。

普通のP10と迷いましたが、高かったのとliteでもNexus 5より高スペックだったのでまあ良いかなと思い決断しました。

使い始めて1週間位経ちますが、Nexus 5と比べても全然サクサクなので不満はありません。あといちばん良かったのが指紋認証の機能で、いちいちPINを入れる手間が省けたのが一番良かったです。アプリを開くたびに結構長くて複雑なパスワード入れないといけない1Passwordのアプリも対応してて感動でした。最近の機種にはデフォルトで付いてるものなのかもしれませんが、3年ぶりに買い替えた身としてはかなり驚いた次第です。

俺的90年代アニソンTOP20

@ojiry さんとTwitterで懐かしアニソンの話になり、面白そうだったのでやってみました。俺的ランキングなので異論などはあると思いますが、ご覧くださいw

ルール

  • 1990~1999年に放送されたアニメ (TV, OVA, 劇場版) の主題歌、挿入歌
  • 作品と歌手は重複なし
続きを読む

Little Glee Monster の新体制初ライブに行ってきた@渋谷duo

麻珠の活動休止発表以降初のミニライブに行ってきました。 この記事によると、競争率約10倍だったようです。それはともかく、リトグリの再スタートとなる貴重なライブに参加できてよかったです。今後も応援していきます。

f:id:kamatama_41:20170428195150j:plain

開催場所の渋谷duoはリトグリがはじめてワンマンライブを開催した場所です。また、Girls be Free!のMVの最後のライブ映像の場所でもあります*1

www.youtube.com

セットリスト

  • Seasons of love (アカペラ)
  • 好きだ
  • Go my way (新曲)
  • HARMONY
  • SAY
  • だから、ひとりじゃない
  • はじまりのうた (アンコール)

詳細・感想など

  • 麻珠パートの多くはアサヒが担当していた。今後はアサヒがある程度メインパートをやっていくものと思われます
  • しかし既存曲はどうしてもまだ麻珠と比べてしまい違和感が拭えない感じが。聞いていく内に慣れてくるのかなとも思いますが
  • 新曲のGo my wayは道のりは険しいけど進んでいく的な歌詞で*2、今のリトグリの決意表明のように感じた
  • MCは最初かれんが麻珠のことについて「中学生の時から一緒だったし、最初は受け入れがたかった。色々話しあいをしたけど、麻珠の決意は固かったので今は応援している」
  • 次に芹奈が今後の決意表明「武道館の夢は叶った。次の夢の2020年のオリンピックに向かって、とても大きい夢だけど絶対諦めないのでついて来てほしい」
  • 新曲「だから、ひとりじゃない」が5/31発売。リリイベも7都市で開催
  • 秋ツアーの詳細発表 (20都道府県23公演)

*1:たぶんこれが前のワンマンの時だと思われます 参考: http://natalie.mu/music/news/132056

*2:自分が聞き間違えて無ければ

リトグリ麻珠 無期限活動休止

寝耳に水のこのニュース、、と言うわけでもなく、春ツアーのときから麻珠が脱退するのでは的なツイートがTwitterで散見されており漠然とした不安はありましたが、ついに来てしまったか、という感じです。

今思うと、春ツアー最終日麻珠の調子が悪そう と私が感じたのも、自分のリトグリ最後のライブということで色々思うことがあったのかなと推測されますね。

活動休止という選択は麻珠の歌手としてさらにレベルアップしたいというポジティブな決断だし、他のメンバーも彼女の決断を尊重し、応援しているので自分も応援したいです。麻珠が抜けたことで彼女のパートをどうするんだろうとか、コーラスの厚みが減ってしまうのではないだろうかという不安は正直ありますが、それらを乗り越えた新しいリトグリを期待したいと思います。

ガオラー歴8ヶ月ですが、麻珠がいたリトグリを生で経験できたのはとても幸運なことでした。Good Luck.

Little Glee Monster のライブに行ってきた@東京国際フォーラム

春ツアー最終日、行ってきました。最終日ということでメンバーガオラーともども気合はいってたと思います。秋ツアー決定したということで、楽しみですね。

  • 基本的なセットは武道館と同じ流れ
    • オレンジ, 永遠に, Girls be Free, 君のようになりたい が無かった。
  • たまに主旋律が聞こえないことがあった。 音響の問題か歌唱ミス?
  • 麻珠がちょっと調子悪そうに感じた、珍しい
  • 途中のMCでご当地CMソング集
  • アサヒのセッションは、"雨で湿気が多い、てるてる坊主忘れた"
  • 芹奈が武道館でJOYの歌詞間違え謝る、manakaも…?
  • 最後のMCで芹奈が “何百年後もみんなの心に残る歌手になりたい"、ぐう感動
  • 5/22 Earth, Wind & Fire の武道館公演のオープニングアクト決定
  • 秋ツアー決定

f:id:kamatama_41:20170409202053j:plain

gradle-embulk-pluginを作った #Embulk

TL;DR

EmbulkのJavaプラグイン開発のときにいろいろ便利につかえるGradleのプラグインを作りました。

github.com

使い方

最低限以下の記述を build.gradle にすれば動きます。*1
最新バージョンは 0.1.4 です (2017/03/21現在)

buildscript {
    repositories {
        jcenter()
        maven { url 'http://kamatama41.github.com/maven-repository/repository' }
    }
    dependencies {
        classpath "com.github.kamatama41:gradle-embulk-plugin:0.1.4"
    }
}

apply plugin: "com.github.kamatama41.embulk"


embulk {
    version = "0.8.18"  // 使うEmbulkのバージョン
    category = "file-input"  // 作るプラグインのカテゴリ (embulk newの時に指定するカテゴリ)
    name = "xlsx"  // 作るプラグインの名前

    // 作者名、メールアドレス、ホームページ (gemspecタスク用)
    authors = ["A User"]  
    email = "a.user@example.com"
    homepage = "https://github.com/a.user/embulk-input-xlsx"
}

何ができるか?

プラグインテンプレート生成

newPlugin タスクを実行することで embulk new コマンドを実行したときと同じテンプレートを生成することができます。*2

% gradle newPlugin
Starting a Gradle Daemon (subsequent builds will be faster)
:embulkSetup
Setting Embulk version to 0.8.18
:embulk_new_java-file-input_xlsx
2017-03-21 04:12:05.020 +0900: Embulk v0.8.18
Creating embulk-input-xlsx/
  Creating embulk-input-xlsx/README.md
  Creating embulk-input-xlsx/LICENSE.txt
  Creating embulk-input-xlsx/.gitignore
  Creating embulk-input-xlsx/gradle/wrapper/gradle-wrapper.jar
  Creating embulk-input-xlsx/gradle/wrapper/gradle-wrapper.properties
  Creating embulk-input-xlsx/gradlew.bat
  Creating embulk-input-xlsx/gradlew
  Creating embulk-input-xlsx/config/checkstyle/checkstyle.xml
  Creating embulk-input-xlsx/config/checkstyle/default.xml
  Creating embulk-input-xlsx/build.gradle
  Creating embulk-input-xlsx/lib/embulk/input/xlsx.rb
  Creating embulk-input-xlsx/src/main/java/org/embulk/input/xlsx/XlsxFileInputPlugin.java
  Creating embulk-input-xlsx/src/test/java/org/embulk/input/xlsx/TestXlsxFileInputPlugin.java

Plugin template is successfully generated.
Next steps:

  $ cd embulk-input-xlsx
  $ ./gradlew package

:newPlugin

BUILD SUCCESSFUL

Total time: 13.166 secs

既存Gradleタスクを網羅

Embulkのプラグイン開発時、最初に embulk new java-input foo のようなコマンドで雛形を生成すると思うのですが、そのときに出来る build.gradle で定義されてるタスクや処理はすべて利用可能です。具体的にはこのテンプレートに記述されてる以下のタスクになります。

これらのタスクはプラグイン側で定義してるので、書く必要が無くなります。*3

“org.embulk:embulk-core” の依存関係を省略可能

プラグイン側で、指定した version に対応したライブラリを追加するので以下の compile provide の記述を書く必要がありません。

dependencies {
    compile  "org.embulk:embulk-core:<embulk-version>"
    provided "org.embulk:embulk-core:<embulk-version>"
}

任意のEmbulkコマンドをGradleタスクとして実行可能

embulk_* のタスクを実行することで任意のembulkコマンドを実行できます。コマンド引数は _ で区切ります。

たとえば、 embulk_--version タスクは embulk --version が実行されます。

% ./gradlew embulk_--version
:embulkSetup
:embulk_--version
embulk 0.8.18

BUILD SUCCESSFUL

Total time: 4.129 secs

embulk_gen_install_embulk-input-hoge タスクは embulk gem install embulk-input-hoge が実行されます。

% gradle embulk_gem_install_embulk-input-command
Starting a Gradle Daemon (subsequent builds will be faster)
:embulkSetup
:embulk_gem_install_embulk-input-command
2017-03-22 07:21:11.578 +0900: Embulk v0.8.18
Successfully installed embulk-input-command-0.1.4
1 gem installed

BUILD SUCCESSFUL

Total time: 13.134 secs

テスト実行が簡単にできる

また、開発中のJavaプラグインをテスト実行(run, preview, guessなど)する場合、以下のような手順を踏むことになると思います。

  1. gradle package でJarライブラリを作る
  2. embulk run-L オプションでクラスパスを追加する

embulk_run タスク*4はそれを全部1コマンドにまとめたタスクです。さらに

  • embulk_run の時のconfigファイルはデフォルトで config.yml
  • embulk_guess の時の出力ファイルは output.yml

指定されます。つまり

  • gradle embulk_run = gradle package && embulk run config.yml -L .
  • gradle embulk_guess = gradle package && embulk guess config.yml -o output.yml -L .

とほぼ同義です。設定ファイルの名前を変えたい場合は build.gradle 内の configYaml, outputYaml を編集して下さい。

embulk {
    ....
    configYaml = "myconfig.yml"
    outputYaml = "myoutput.yml"
}

さいごに

Embulkプラグイン開発者の方は、是非、使ってみて下さい!

*1:今のところMaven CentralとかBintrayには登録してないのでオレオレMavenレポジトリからダウンロードします

*2:実際の処理でもembulk newを実行したあと必要なファイルをコピーしてきてます

*3:もちろん必要があれば上書きできます

*4:preview, guess, cleanupも同様