複数マシン間で、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なら手元にコピーあるからネットワークなくても編集できるしね。そんなところが素敵。

Macbook Airを買ったよ traktorの環境もwindowsからmacに移行したよ

なんか、6月11日に、よーしおにいちゃんアニゲのん!いっちゃうぞー!電車の中で毒にも薬にもならない文章がんばって書くぞーとか思ってたんです。
で、電車の中でもちゃんとすわれたし、よーしいいぞと思ってノートPC開いたんです。
そしたらなんか、

壊れたthinkpad e220s

壊れてた。。

ノートPCって大切ですよね。ないと生きていけませんよね。
というか、近々DJもあるし、ここ1年くらいはPCDJどっぷりだし、PCに壊れられるのは非常に困る訳です。つーか割と本当に参った。

半年くらい前からノートPC新調しようかどうかずーっと悩んでいたので、そのタイミングで新調してしまわなかったことをちょっと後悔しつつ、でもぼさっとしていると本当に人前に立ってDJできなくなってしまうので、以前から購入を考えていたMacbookを買ってみました。

Macbook Airの11インチ、SSDは256GBのモデルです。11万円くらい。

触りはじめの第一印象は、キーボードのストロークが狭くて気になるということと、滑り止めがなくて、机の上で滑るということでした。
でも2日使っていたら、それもだんだん慣れてきて、むしろLinuxで日常的に使ってるコマンドラインが使えることが心地よくなってきているこのごろです。

ちなみに壊れていたのはモニタ部分だけだったようで、HDMIで外付けモニタをつないだところ普通に表示されたので、データの救出は容易にできました。。よかった。。

で、肝心のPCDJ環境(traktor)なのですが、思いのほか簡単に移行できました。
まだ全部のデータが確認できた訳ではないので、おかしな部分があるかも知れませんが、おおよそ大丈夫っぽい。

traktorはバージョンごとに設定ファイルを格納しているディレクトリがあるので、そのディレクトリをコピーして、曲のデータも一通りコピー。でも、設定ファイル内に格納されている曲データのパスがかわってしまうので、そこの部分だけtraktorのtrack collectionの曲名を右クリックして出てくるrelocateボタンを押してやれば勝手に見つけてくれます。見つからないものに関しては、もともとのファイルパスも示してくれるので、元のPCの中にちりぢりになってしまっていた曲データも簡単に見つけることができて、ほんとに思いのほか簡単に移行できました。よかったよかった。

macbook_traktor

HHKBは矢印キーがなくて使い辛いわけでもemacsやviで使うことを想定していて硬派ってわけでもないと思う。

HHKBが好きで、googleでHHKBと検索しては、HHKBを扱っているblogなんかをニヤニヤと眺める日々を送っております。
そういったレビューを見ていると、

  • 矢印キーがなくて使い辛い
  • emacsやviで使うことを想定していて硬派

みたいなことが書いてあるわけです。

で、
やっぱり矢印キーがあるRealForceにしました! とか
矢印キーあるが日本語のHHKB Pro 2 にしました! とか
HHKB Lite 2 にしました! とか

書いてあるわけです。。

僕は、それって違うと思うんですよ!

むしろ、HHKB(英字)のFnキー押しながら使うあの矢印キーは、
これはこれで超使いやすい
って思ってます。

これが、HHKB Pro 2 のキーマップです。

ぱっと見、Fnキーも、同時押しで使う矢印キーも変な場所にあるなぁという気分になると思います。
だけど違う!そこが間違っている!

右手の小指でFnキーを押すと矢印キーがちょうど人差し指と中指の場所に来ます。

ちょっと右手を移動させて小指でFnキーを押すだけで、人差し指と中指で矢印キーが操作可能になるのです!

なるほど!と 思いませんか?!
これは楽だ! 思いませんか?!

思いますよね!

vi派やemacs派、コマンドラインで日常生活を過ごす人にとって矢印キーなど不要で、それを取っ払ったHHKBはかっこいい。確かにそうかもしれません。
しかし、矢印キーが必要なアプリケーションを使用する場合にも、まったく困らない。
いやむしろ矢印キーは押しやすい場所にあるんだと、あなたももう気づいたはずです!

さあ!みんなでHHKB Pro 2(英字)を買いにいこう!

AppleさんとMicrosoftさんについてちょっと落ち着いて考える。

ここ数年の話で言えば、Macは、一般消費者向けのPCで、中央集権的なソフトウエア及びコンテンツのレポジトリを作るというプラットフォームの囲い込みにより、成功を収めました。WindowsもWindows 8 で似たようなプラットフォームを作りました。

エンドユーザコンピューティングにおけるMacの地位はまず安泰だし、これからもシェアが伸びていくだろうなーと思っていました。

ただ、なんか最近様子が替わってきたように思います。
Microsoftは実はWindows 8 ですごく頑張ってるんじゃないか?と。
思うわけです。

PCにARMをMacに先んじて採用したWindows RT

世の中ではスマートフォンやタブレットPCが流行したことで、ARMが表舞台へと出てきました。近い将来、IntelのCPUが乗っているPCは、だんだん少なくなり、だんだんARMが搭載されたPCが増えてくるだろう、ということに関しては、一般的に知られるところであると思います。

僕は、最初にそれを実現するのはMac (具体的にはMac miniかMacbook Air)だと思っていました。
Macは、アプリケーションの開発環境を用意しており、同じソースコードを別のコンパイルオプションでコンパイルするだけで、Intel用の実行ファイルとARM用の実行ファイルを作り分けることができる仕組みを提供しています。また、iOS用の開発環境ではIntel用の実行ファイルを実行し、実機で用いる際にはARM用の実行ファイルを作るというつくりになっており、一つのソースコードから異なるCPU用の実行ファイルを作る仕組みがあるという実績が既にあります。さらに、Appleは、Power PCからIntelへのCPU変更を行ったという過去もあり、このようなCPUの変更にはノウハウがあるため、まず最初にやるのはMacであろうという思い込みがありました。

しかし、IntelからARMへの乗り換えを示唆する製品を先に出したのは、Microsoftでした。
Windows RTがこれにあたると考えています。
Windows RTないしWindows 8では同じ実行ファイルが動きます。.NetFramework用の中間言語にコンパイルされた実行ファイルであるという制限はつきますけれどね。(というか、Windows Phoneでも.NetFramework上に記述されたアプリケーションであれば理論上動くから実は今に始まった話ではなかった。。)

Microsoft Surfaceを僕はまだ触ったことがないけれど、一刻も早く触ってみたいと考えています。
また、MicrosoftがDellの株を大量に所有し、ハードウェアレイヤとの垂直統合を果たそうとしている点も見逃せないと思います。ハードウェアからコンテンツまでの垂直統合モデルは、もはやAppleだけのものではなくなりつつあるといっていいでしょう。

そして、実際に発売された製品という観点で見れば、Microsoftが一歩ぬきんでてしまっています。

これが、いまここにある現実だ。と思うわけです。

この先数年はどうなるのか。

まず、Appleはcoolだという意識を取り除き、冷静になりたいと思います。
僕はiOSの乗っているiPhoneやiPadのユーザだし、これらを結構気に入って使っていますし、家にはMac miniもMacbook Pro(17インチ)もあります。
そんな感じで、Apple製品は結構好きです。

でもApple製品だからと言って手放しで良いなんて言いきれるほどの盲目的な信者では僕はないし、そうなってしまってはいけないと思うわけで。

今後のApple製品のラインナップとMicrosoft製品のラインナップを冷静に評価し、自分のこれからをゆだねるプラットフォームについて冷静に考え、豊かに暮らせればと、思うのです。

EMC Style 2013 から EMCの戦略と企業文化を読み解く

どうも。ちゃーりーです。
先日から熱が出てしまい、動くのがしんどいので、会社を休んで布団でごろごろしています。
でも、布団でごろごろしていることにも限界があるので、暇つぶしに文章でも書こうと思います。

先日、EMCという会社が江南スタイルのパロディであるEMC Style 2013という動画をYoutubeへアップしました。

暇すぎるので、この動画の解説でもしようと思います。

EMCとはどんな会社なのか?

http://japan.emc.com/index.htm
トップページをみるだけでは一見してどのような会社か分かりずらいですが、ブロックストレージ(複数のハードディスクによって構成される巨大な外付けハードディスク)およびファイルストレージ(複数のハードディスクによって構成される巨大なWindowsファイル共有機能付きサーバ)を販売しているというのがメインの会社です。

他にも関連するさまざまな商品を扱っています。
そういえば、昨年かその前の年にVMwareを買収しました。今はVMwareはEMCの一部です。一般的にはVMwareよりも知名度が低い会社ですが、やってることはすごいです。

というわけで動画の解説

解説といっても何していいのか分からないのでTOEICのスコア695点の俺が必死で訳したりします。で、それとともにちょっとした脚注を付ける感じで。

Oopa EMC STYLE!
これがEMCのやりかただ!

They want that storage,
彼らはあのストレージを欲している

that performs all day and night
それは昼も夜もいつも働いてくれる

Storage that can also limit data latency
ストレージはデータの遅延も抑えてくれる
(ハードディスクに書き込むときには、ディスクを回転させたり、ヘッドをシークさせたりする必要がありますが、その時間を短くしてくれる。という意味です。レコードで再生したい場所に針を置くのは大変ですよね。その時間がめちゃめちゃ短いという意味です。)

Strage that gets extra hot, with a data rush
ストレージはもっとアツくなる データの大量の流入によって
(ここは非常に難しいところですが、たくさんデータを書き込むと、ストレージといってもただの計算機なので本当にCPUはアツくなりますし、データが増えるとストレージという分野自体の需要が増し、アツくなるとも取れます。)

EMC arrays optimized with FLASH!
EMCのアレイ(ストレージの別の呼び方です)はFLASHで最適化されているぜ!
(SSDは早いですよね。でも容量が少ないので、よく使うデータだけSSDの上において、そうじゃないものをハードディスクに置くという仕組みは、一般的なPCでもISRTという仕組みが入ってきていますし、MACならFUSION DRIVEという仕組みで似たようなことが実現されています。)

I’m the data YEAH!
私はデータを扱っている会社だ!

Data that spins inside you every day,
データはいつもあなたたちの中で渦巻いている

Data that’s auto-tiered by policy,
データは自動的にティアード管理される
(さっき書いた、FLASHとハードディスクのどちらにデータを置くかはあらかじめ決めたルールに基づき自動的に行われているという意味です。)

Data that’s bursty when them backups start,
データはバックアップが始まったときに大量の読み書きが発生する

Big Data
ビックデータ

Analytics…
データ解析

Yes you!
そうお前だ!必要としているだろう?

Yeah now you KNOW!
お前はしっているだろう!EMCのストレージを!

Now everybody scale out down the row!
今、すべてが水平分散でスケールアウトする!

Oopa EMC STYLE!
それがEMCのやり方だ!

An array that’s green
青信号のアレイ

and dedupe what is on it
格納されているデータは重複排除されている
(重複排除とは、同じデータを2個持っている場合、それを1つにまとめることで容量を削減してくれるような技術のことです。)

An array that scales out
アレイはスケールアウトする

when the time is right
スケールアウトすべき正しい時に

An array that is UP
ちゃんと動いているアレイは

is more sexy than a failed array.
落ちてるアレイよりももっとイイ感じだ

EMC ALWAYS UP LIKE THAT!
EMCのアレイ(とか)はいつもこんな感じで動いている!

I’m a VM YEAH!
私はVMを扱っている会社だ!

I start off small but
私はスモールスタートだけど

then I autoscale,
自動的にスケールアウトする
(たくさん計算機が必要になると、勝手にVMの数を増やしてくれる仕組みがあるのです。便利ですね。)

I vMotion when DRS says,
私はDRSに頼まれたときにvMotionする
(vMotionとは、起動中の仮想マシンを、動かしたまま別のマシン上に移動させるものです。あるPCの上で動いているゲームのエミュレータを途中でステートセーブして、別のPC上でステートを読み出して続けることと技術的には同じです。DRSはサーバの負荷などを見ながら、性能が足りなければサーバの電源を入れてそこに仮想マシンをを移動させたり、性能があまっていれば、サーバの電源を落とすとともに、そこで動いている仮想マシンを移動させたりしてくれる、そういう機能のことを言います。)

…that can handle any workload,
どんなワークロードでも捌ける
(そりゃIaaSっすからね。。)

VMware!
VMwareだ!
(VMware は仮想マシンの製品です)

virtualization!
仮想化だ!

Yeah YOU!
そうお前だ!必要としているだろう?

Old hardware gone!
古臭いハードウェアはもういらない!

Now everybody scale out down the row!
今、すべてが水平分散でスケールアウトする!

Oopa EMC STYLE!
それがEMCのやり方だ!

まとめ

というわけで、
適当な和訳と解説でした。

Now everybody scale out down the row!
今、すべてが水平分散でスケールアウトする

Oopa EMC STYLE!
それがEMCのやり方だ

ってのが印象的で、会社としての今の戦略はとにかく何でも水平分散可能にすることなのでしょう。
タイトルに2013と入っているので、少なくとも2013年の現在においてはそうだということらしいです。
来年は違うことを言っているかもしれませんが、それは、EMCは今の考え方にとらわれ続けるような会社ではないんだという意思表明なのでしょう。

以上です。