複数マシン間で、atomで取ったメモを同期するための環境を整えた

自分は、いろんな作業をするときに、人に報告したり、twitterに書いたりするほどでもないことを、atomを使ってmarkdown形式でメモをとりながら進めています。
1台のマシンでメモを取るだけなら、シンプルでいいんですが、VMを含め、複数台のマシンを行ったり来たりしながら作業するとなると、これらの間でどうやってメモを同期するか、という点が悩ましくなってきます。
今回のエントリは、どうやってatomを用いて、複数のマシンでどうやってメモを同期させるか考えたっていう、そんなお話。

TL;DR

  • atomのsync-on-saveはとても良い
  • WindowsとLinuxだとパッチ当てないと動かない(2017年10月12日時点)

gitでメモの同期をとりたい。でもコマンド打つの、面倒だな。

ファイル単位で同期を取る仕組みというのは、atomには色々あって、たとえばRemote-FTPというパッケージで実現することができます。
最初はこれを使っていたんですが、同期の粒度がファイルだと、複数のマシンで同じファイルを変更したときに、どちらかがどちらかをうっかり上書きして、せっかく書いたメモを失う、なんてことになりそうだなと思いました。
実際に上書きをしてしまったことはなかったものの、そういうことが起こりうるということを意識しなければならないのがなんとなくストレスでした。

だから、ファイルよりも小さい単位で同期を取りたい。
そうだ!僕達には、gitがある!gitを使おう!と考えました。

でも、gitも、コミットメッセージを書いたり、共有のためにpushしたりと、やらなければいけないことが多くてちょっと面倒です。

sync-on-save というパッケージに面倒事を引き受けてもらう

どうせ、自分が適当に見るメモなんだから、コミットメッセージなんて適当に自動でつけてくれればいいし、pushも勝手にやってくれればいいのに。
そんなパッケージないかなー?と探してみたところ sync-on-saveというパッケージがありました。

このパッケージを使って救われました。本当に欲しいものそのものでした。
コマンドパレットからEnable Syncすると、ファイルを保存したタイミングでgit commitとgit pushを自動でしてくれます。
あとなんか他の場所で同じファイル編集してたらmergeもしてくれる。

本当に便利だ。素敵だなぁ。

LinuxとWindows向けにバグがあって動かなかった→なおした

バグを見つけたので直しました!バージョン0.1.5からは何も考えずにATOMのパッケージをインストールすれば使えるようになりました!
みんな使ってみてね。

2017年10月12日時点でダウンロード可能な、バージョン0.1.4にはちょっとしたバグあり、WindowsとLinuxでは動きません。
直したのでプルリク投げてみるつもりです。

差分は1行なので、これ読んで今すぐ使ってみたい!って思った人は、sync-on-saveをインストールした上で、コードを直接いじるのが楽そうです。
コミットの情報はここにおいときますので参考にしていじってみてね。

https://github.com/sirrow/sync-on-save/commit/7df50d7094156b9fd030ab698a6ff69a680177af
おしまい。

本文に書ききれなかったけど書きたかった事

sync-on-saveを作った人について

sync-on-saveを作った人すごいなぁ、ありがたいなぁ。プルリクも投げなきゃいけないし、どんな人なんだろう?って思ったので調べてみたら、 Hajime Morita さんでした。
そういえば、rebuild.fm 聞いたことないし、今度聞いてみよう。

昔はssh + screen + emacsでメモを取ってた

自分は一昔前は、VPS上でscreenを動かして、その上で動かしたemacs -nwに、色んなマシンからsshでログインした上でattachしてメモを取ってました。
これはこれで悪い方法じゃなかった気がします。手軽だしね。ただ、ネットワークから切断されるとつらいんだこれ。
gitなら手元にコピーあるからネットワークなくても編集できるしね。そんなところが素敵。

35歳になりました

2017年10月3日に35歳になりました。
四捨五入したら40歳になる。マジか。
マジかとか書いちゃうアラフォーマジか。大丈夫なのか。
大人とは一体何なのか。

例年、誕生日前になったら、しっかりamazonの欲しいモノリストを作って、
twitterに流したりしていたのだけど、今年は完全に忘れていた。

去年は、結構色々頂いたのだけど、それをあまり有効活用できなかったという反省もある。
もっとアクティブに活動できたら良かったと思う。
インターネットに欲しいモノリストを公開して、それで、何かをもらうってことは、
インターネットに対してその分、何か面白いことを仕掛けていく責任みたいなものと表裏一体だと思っている。
そういった面で、今年一年はあんまりいろいろできなかったなーって思ってる。

だから、今年に関しては、何かいただくというのも気が引けるので、
今年は別に欲しいものリストは作らなくても作らなくてもいいかなぁとも思ったんだけど、
普段、あまり何がほしいのかを整理する機会もないので、
ほしいものを棚卸しする機会だと思って整理してみることにした。
毎年、何が欲しかったのか、ということを記録して振り返れるのは悪くないとおもう。

で、今年のリストがこれ。
http://www.amazon.co.jp/registry/wishlist/3B9IYL63UAU7K/ref=cm_sw_r_tw_ws_x_5uy1zbZV51GHX

正直、最近、音楽はさっぱり、って感じなんだけど、ほしいものを整理したら結局楽器だらけになった。

raspberry pi 3 が届いた

で、10月3日の夜10時頃にとりあえずまとめてtwitterに流したら、
さっそく翌日、10月4日にみかるちゃんからraspberry pi 3が届いた。

先に書いたとおり、今何が欲しいのかを自分でまとめて、
ついでにネタでtwitterに流しておくかと言った気持ちだったので本当に何かが届くことを想定なんてしてなかった。
なので、届いた結果、raspberry pi 3を動かすために必要なmicrosdカードとmicro usbのケーブルが、
家にまったくないことに気づいて、焦ってamazonでmicrosdとmicrousbのケーブルを注文する、ということが起きた。
それくらい、なにかが届く可能性なんて、まともに想定していなかった。

動かすのに必要な物はひと通り注文して、ちゃんと動かす事ができた。
このraspberry pi 3 を使ってやりたい事があるので、
形としてまとまってきたらまたblogに書くことにしようと思う。

PEPSI Strong 5.0GVがたくさん届いた。

自分は、コーラの中ではペプシコーラが好きで、その中でも特にこのStrong 5.0GVってのが一番好きで

前述の通り、流石に誰もなにも送って来ないだろうと思っていたら、
motioncraftから2ケース、
伊波さんたあんふたつむらにゃむずから1ケースずつ、
合計5ケース届いた。

1ケースあたり500mlのペットボトルが24本入っているため、合計で500mlペットボトル120本、24kgのペプシコーラが家に届いた。
(なお、まだ届いてないけど発送したと名乗り出てくれている人も居る。マジか。)

自分は、このコーラが大好きなので、たくさんあっても全く困らないのだが、
普通に飲むだけではあまりに芸がないなと思って、とりあえずtwitterの名前に残りのペットボトルの本数を書くことにした。

こんなかんじ。

しかし、これには問題があると言う事がわかった。
コーラを飲むのは自分だけではなく、嫁さんも飲む。
だから、自分だけが書き換えたのでは数えもれが発生してしまう。

どうしようかなーと悩んでいたら、嫁さんが
「コーラのペットボトルを飲み終わった時に押すボタンみたいなのがあったらいい」と言った。
「ほー なるほどー」、と思ったのでつくった。

もともと持ってたraspberry pi(初代)のGPIOにタクトスイッチを繋ぎ、
ボタンを押したことをnode-redで検出し、node.jsで作ったREST API を叩くようにした。

REST APIは、ペプシの残り本数を状態として持っており、叩かれたら本数を1本減らして、
1本飲んだと言うことをtwitterにポストしつつ、名前を変更する。

毎日、日本時間で23:55に、状態を確認するシェルスクリプトをキックし、状態をCSVに書きだす。
で、書き出されたCSVを読んで、グラフにする。
グラフはここ。
http://sirrow.info/pepsi/

まぁ、なんか、そういうものを作った。
開発環境を作るところからだったのでけっこう時間がかかってしまった。
全部で4〜5時間くらいだと思う。10月7日から9日が3連休で本当に良かった。

コーラを贈ってくれた人も、贈ってくれなかった人もtwitterの名前とかグラフとか見て、
こんなに減ったのかーとなんだかしみじみしてくれれば、無駄に作った甲斐がある。

包丁用の砥石とオシロスコープをもらった

tmy先生からいただいた。

砥石はもともと、tmy先生のお家にあったものと同じ物をたまたま欲しいものリストにいれてた。
あと、オシロスコープは自分に贈ってくれると同時に、tmy先生自身も買ったらしい。
なので、両方ともお揃い。ちょっとうれしい。

砥石は早速使ってみた。
いろんな経緯があって、自分の家には同じ包丁が2つある。
なので、片方を研いで、もう片方は研がずに比べて見たら、
研いだ方がめちゃめちゃよく切れるようになった。

それを確認した後、もう片方も研いだ。

当たり前っちゃあ当たり前だけど、包丁は研ぐとよく切れるようになる。とてもよい。

オシロスコープは、今後頑張って使っていこうと言う感じ。
電子工作、捗るようになるだろうか。

何も書いてないから何か書くか

もうほんと、何も更新してなかったんで、なんでもいいから何か書いて、何か書く癖というのを取り戻したいところ。
昔、どんな風に書いてたか振り返ってみたところ、なんか、2015年くらいまでは2週間に1回は更新していたらしい。まぢか。
次は2週間以内に書くようにしよう。

redmineの環境が吹っ飛んだ

最近何も更新がなかったのは、これのせいかもしれない。

仕事でもそうなんだけど、やる気はredmineにあるチケットによって起きたりする。
で、プライベートで使う用の安いVPS上に作ったredmineの環境がぶっ飛んでしまって、
かつ、バックアップも取ってなかったので、
何をどこからやっていいのかさっぱりわからなくなってしまった。

メモ帳もなくせば役に立たない。
どこかのredmine saasでも使おうかと思ったんだけど、
GCE上に同じ環境を作ってもう一度やって行こうと思う。

docker上で動かすようにしてあるので、定期的にbackupをオブジェクトストレージに突っ込むみたいな仕組みも作れればいいなと思う。
まぁでもそれはもう少し先に考えたい。

Splatoon 2始めた

最近何も更新がなかったのは、これのせいかもしれない。

遊んでます。先日、全ガチマルールでSになりました。
ホコだけはS+に上がったこともあったけど落ちました。

Nintendo Switchのフレンドコード置いておくのでフレンド申請してやってください。
一緒に遊びましょう。遊んでやって。
SW-3746-8859-4280

remix書いた

書いたんだぞー!おー!

今も次の曲をふと思い出したように書き進めている。いつできるかなぁ。

タスク管理をtrelloからOpenProjectに変えようかなと思ったけど結局redmineにした話

今回の移行に当たって考えたことのまとめから書いておく

Wrikeは最高だけど、高すぎて厳しい。
OpenProjectは貧乏VPSには性能面で辛かった。
結局Redmineしか選択肢がなかった。
RedmineをDockerでインストールするとプラグインのインストールが辛かった。

ことの経緯

自分は生きるのが下手で、タスク管理やスケジュール管理がうまくできず、どうやってこれらをやっていくのかということについて色々試行錯誤していたりします。

昔はredmineで何でもかんでも管理することで落ち着いていたのですが、

  1. タスクの数が増えてきた時にごちゃごちゃしてくる
  2. 自力でホスティングするのめんどくさい
  3. UIが前時代的で辛い

あたりが理由で、trelloに移行していました。
子供が生まれてあんまり難しいことを家でやらなくなっていたので、シンプルな使い勝手のtrelloがとてもいい感じでした。
ただ、このところ子供がある程度大きくなってきて、自分が色々する時間も取れるようになってきたので、何か新しいことをしようと思った時に、タスクの入れ子が1段階しかできないtrelloだと複雑なことをしようとしたきのタスクのドリルダウンがしづらくて窮屈に感じられるようになってきました。

なので、タスクの入れ子現実的な範囲でいいので入れ子にできることを条件に色々探して見ました。

Wrike試してみた

2017年っぽいUIでスッゲー使いやすくて、これにしようって思ったのですが、試用期間が終わると、Freeではタスクの入れ子ができないので今回の要件に合わない。
けど課金額はどうだ?と思って調べて見たところ、課金は1人あたり月 $5と書いてあったので、$5ならVPS1つ借りるのと同じだしいけるんじゃないかと思ったんですが、5人ぶんまとめて契約しなきゃいけないらしく、1人で使うとしても月$25になってしまって辛いということが判明し断念。

すごくつかいやすいのに。もうちょっとカジュアルに使える価格設定だったらよかったのになぁと後ろ髪を引かれつつ使うのをやめました。

OpenProjectを試してみた

自力でホストしてもいいので何かいいものないかなぁと思って探して見たところ、最近はOpenProjectというOSSのプロジェクト管理ツールがあるという情報に当たったので、試してみようと一念発起。
公式でdocker imageが用意されていたので、これを利用しようとGoogle Compute Engineに1番安いインスタンスを立てて、dockerホスティング用のイメージを起動。その上にインストールすることを試みました。
が、なんかインストールがコケる。

インストールの感じを見ていると、どうも、dockerのイメージがでかいらしく、ディスクを使い切ってしまっていた模様。
なるほどね、と思って手元のPCのLinuxのVM上にdocker環境を整備してそこに入れてみたらいい感じで動いた。

Wrikeほどの使い勝手はないものの、RedmineよりはちょっぴりモダンなUIで、これでいいんじゃないかと思ってメモリの使用量を軽くチェックして見た所、起動するだけで1.2GBほど使う模様。
なんか、dockerのイメージ内に、サービスの本体であるRubyだけでなく、postgresやmemcacheも含んでいた。なるほど、イメージがでかいわけだ、とある程度納得。
しかし、メモリ使用量がこれでは、やすいVPSやクラウドインスタンス上に立てっぱなしに使うってのは若干厳しい。

とはいえ、ものは試しだと思って、昔契約した2GBのメモリが使える海外の安いVPSにインストールしてみた。
そしたら、起動はちゃんとしたものの、めちゃめちゃ重たい。
多分、ブラウザとサーバ間のレイテンシが何倍にも重なってUIの表示に効いてくるような作りになっているんだと思う。(未検証)

となると、手元のVMや家の中に置いたサーバーで動かすにはいいけど、外に置こうとするとレイテンシが辛くなってしまうな、ということで、これも不採用。

Redmineに戻ってきてしまった

色々不自由な点もあるけど、軽いし、もうredmineでいいや ということで、Redmineを改めて使い始めることにしました。
インストールはdockerで気軽に。アップデートもきっと手軽にできるでしょう。
いい時代だ。

Dockerでインストールした時にプラグインどうするんだ問題

Redmineには、プラグインが存在しています。いくつかのプラグインをDockerでインストールした手前、コンテナの中に踏み込んでプラグインをインストールするのはなんだかダサい気がしました。なので、自分でプラグイン用のDockerfileを書いてプラグイン類をインストールしました。
複数のプラグインを入れるのでそれぞれのDockerfileは分割して作成しました。
Dockerfileは、ベースとなるイメージの名前とバージョンを指定して、このイメージにどういうファイルを追加するのか、どういう風に起動するのかといった情報を追加して行くという書き方をするようになっています。

例えば、2つのプラグイン(それぞれプラグインAとプラグインBとする)をインストールするために
公式Redmineイメージ -> プラグインA追加イメージ → プラグインB追加イメージ
という順番でイメージを拡張するとします。
この時、プラグインA追加イメージを作るためのDockerfileには、ベースとなるのは公式Redmineイメージですよと書いてありますし、ブラグインB追加イメージを作るためのDockerfileにはベースはプラグインA追加イメージですよと書かれています。
なので、例えば、上記の状態から、やっぱりプラグインAが不要だから、プラグインAを取り除こうと思っても、単純にプラグインA追加イメージを作成しないだけではダメうまくいきません。プラグインB追加イメージ作成用DockerfileにあるベースとなるイメージをブラグインB追加イメージから公式Redmineイメージに書き換えないといけないという手間があります。

そんな感じで、若干、長く管理できるんだろうか、大丈夫なんだろうかという疑問は持ちつつも、とりあえずDockerでやっていこうということに決めました。

ちなみに、プラグインは、easy gantt plugin(free)Time Loggerだけ使ってます。シンプルに。

プラグイン追加後のDockerイメージをdockerhubにアップしておこうかなとも思ったのですが、easy gantt plugin が GPL v2にも関わらず、ソースコードは配布して欲しくなさそうなので自重。プラグインダウンロード用のワンタイムのURLを生成したり、そもそもgithubあたりにも置いてなかったりして、長く使い続けられるのか若干不安。ただ、そういった不安に目をつぶれるくらいeasy ganttでredmineは使いやすくなるので使っていこうと思います。
easy gantt freeは、ソースコード開示をしぶったりせず、最初からインストール済みのDockerイメージを配布しちゃえば、試してくれる人、買ってくれる人増えるんじゃないかなって思ったりするんですが、そうでもないんですかねぇ。

それよりも、easy redmineのホスティングサービス売りたい感じなのかなぁ。

nextream extend vol.5 でのちゃーりーのプレイリスト

なんか、久しぶりにDJしましたし、録画データもあるので、プレイリストを書き出してみるました。いつものことなのですが、当日何を流すのかなんて全く決めていない感じです。

nextream extendでは、初回から、自分のDJは頭の30分と終わりの30分に分けて行っていたのですが、ほかのDJから「主催のDJをまとまった時間聞きたい」との声が上がったため、今回は、終わりにまとめて1時間DJしました。
(ちなみに、オープニングはtnjに任せたのですが、tnjに頼んで本当に良かったなぁと思っています。)

あと、周辺情報としてですが、直前のDJは、Swingrooves の agさんで、ARE YOU READY / RASMUS FABER feat EMILY McEWAN から受け取りました。機材は、PCDJとレコードです。PCDJは、Traktor を launchpadで操作してました。control vinylは使っていなかったのですが、結果的にはレコードを行ったり来たりすることになったので、使っておけばもうちょっといろいろ楽だったはず。

1曲目: こっちを向いてよ(Midnight Jazzin’ Mix) / vivi (Remixed by tomosuke)

nextream extendのスタッフに音ゲー遊んでいる(いた)人が多いのでここから。
beatmania 2dx 6th styleのこっちを向いてよのremixです。素敵。

PCDJから再生

2曲目: Five Fathoms (The Unreleased Masters At Work Mixes) / Everything But The Girl

音ゲーつながりで beatmania 2dx 3rd styleに収録されてた five fathomsのremix。
リズムの類似性も調性も近くて繋ぎやすかった。

レコードから再生

3曲目: Reach Inside (restless soul peak time) / bah samba

リズムの類似性から引っ張ってきました。
なんか、とりあえずこの時、これ流したかった。というやつ。

なぜか、VJには超A & G の悠木碧出演回が流れてました。なぜ。

レコードから再生

4曲目: ビードロ模様 (motioncraft remix) / やなぎなぎ

リズムの類似性と仕様楽器の類似性から引っ張ってきたはずです。
ビードロ模様、好きだなぁ。

PCDJから再生

5曲目: ほほ笑みモード (C’s House Remix) / 花澤 香菜

拙作remix。
この日、すでに原曲が2回流れていたので、あえて3回目を流しました。
花澤香菜さんがハウサーの姫になってくれるとあのころ僕たちは本気で信じていたんだ。
ちなみに、原曲の作編曲はStudio Apartmentです。

PCDJから再生

6曲目: One True Love / Studio Apartment

花澤香菜さんに楽曲を提供し続けてくれなかったことについての当てつけです。

レコードから再生

7曲目: Staple Stable (C’s House Remix) / 戦場ヶ原ひたぎ

調性から引っ張ってきました。
あと、作るにあたってOne True Loveの頃のStudio Apartment等を参照していたので。

PCDJから再生

8曲目: ノーポイッ!(C’s House Remix) / Petit Rabbit’s

調性から引っ張ってきました。ここで後の選曲のリズムの感じに合わせて、意図的に強引に音の雰囲気をいじって居ます。

唯一神ごちうさは我々を導いてくれます。今でもやっぱりごちうさはすごかったなって思うもんなぁ。

PCDJから再生

9曲目: KIRA☆Power (C’s House Remix) / わか・ふうり・すなお from STAR☆ANIS

娘が生まれるにあたって女児アニメを見ようと考えてアイカツを見た結果、何曲もremixを書く結果となりました。そのうちの1曲。

この曲のアウトロをループさせて、スタッフのみんなに一言ずつ喋ってもらってます。

PCDJから再生

10曲目: SHINING LINE* (C’s House Remix) / わか・ふうり・ゆな from STAR☆ANIS

アイカツ、かけたかったんや。SHINING LINE*は特別な曲だな。って思います。

PCDJから再生

おわり

60分の持ち時間のうち12~13分くらいはスタッフのトークでしたが、それでも50分弱で10曲しかかけてなくて、
割とゆったりかけたなーという感じです。

また、DJしたいですね。
そろそろ次回nextream extendに向けて動き出しますので、よろしくお願いします。