himadatenodeの日記 このページをアンテナに追加 RSSフィード

*日記だけど 本人のメモや整理が垂れ流されてるだけなので。誤字脱字だらけで意味不明な電波が送信されてます。まともな漢字で翻訳されたのは、その内どこかにまとめて書くかもしれません。

HimaDataNode bookmark archive

xyzzyを使いたい人向け

2016-11-10 1年前に直感 木村太郎氏「トランプ大統領誕生」なぜ予言できたのか

[]トランプで感じる民主主義の本質

■利益を最大化しても支持されるわけではない

 メディアがトランプは民主主義の失敗だとか、扇動されてるとか、お祭り気分とか言ってるのは左翼的な盲目さだと思う。個人的にはオバマが当選した時よりも今回のトランプのほうが民主主義の意義がよく分かった*1。なぜならオバマが当選するのは民主主義の理想像の一つであり表に出ている魅力の一つで、当選してもある意味当然。民主主義の理想的な帰結の一つだったわけだからそれが実現したとしても何の不自然さもなかった。一方トランプの当選はもっと示唆に飛んでいる。

 トランプで表に出てきた意味は、「多数派の民衆の幸福の最大化」こそが民主主義であるという点にある。これは飛躍しているので順を追う必要があるだろう。まず前提としてヒラリーはオバマ路線を踏襲していた。つまりオバマ路線から変化しないという選択肢だった。アメリカはオバマ路線の中で停滞ムードではあったが、経済成長はしいていた。ではなぜ米国民は穏やかな成長を選択しようとしたヒラリーにNOといい、変革者であるトランプにYESといったのか。それは全体として経済成長をしていたとしても、その利益を得ていたのは上位数%の富裕層だけで、実際の労働者階級ブルーワーカーは利益を得ていなかったから。何の成長の実感もない多数派は全体の利益ではなく、自分たちの利益を求めてNOを叫んだ。ある意味エゴ。そしてそのエゴとトランプはちょうどマッチした。

 その結果いえることは「民主主義の本質は全体の利益を最大化することではない」という事。オバマヒラリーの路線で全体の利益が最大化されたとしても、民主主義の選択は「最大多数の最大幸福」だったのだ。つまり「功利主義」。そうじゃないと投票で多数派に負ける。トランプの方針は米国に必ずしも利益をもたらすものではなかった。それにもかかわらず米国民はシステムの変革を重視し利益の最大化は重視しなかった。つまり全体として利益が増えることよりも、多数派の不遇を訴えたのだ。目の前の報われない多数の声の方が人数が多いのだから投票すればその結果が出る。これは凄く民主主義的であるといっていいと思う。幻想の中の社会主義的な民主主義ではなく最大多数の幸福を求める判断が生む結果。一見不思議なように見えるトランプの大勝は、冷静に考えるとむしろ必然ですらある。


■逆に限界が見えたのは資本主義

 トランプは金持ちの不動産屋であり、如何にも資本主義の象徴のように見えるが、現実的には個人として金持ちなだけで、権力や金をもった富裕層の代表ではない。ヒラリーこそが権力を持つセレブの象徴であった。実際に選挙資金はクリントン氏が圧倒してトランプ氏の32倍もあったのだ*2。これでいえることはメディアという権力を抱き込み、ワシントンのシンクタンクという権力を代表し、個人の金ではなく資本主義の富裕層集団として金を集めたクリントン財団は富裕層の権化といっても良い。

 これだけの金と権力をかけたのだからヒラリーが勝っても何の不思議もない。しかし実際にはトランプが圧勝した。これはリーマンショックのあと米国で巻き起こった上位数%の富裕層にノーという動きむしろよく似ている。その結果その上位数%が利益を得るシステムを破壊してでも変革を望む少々停滞しても幸せなアメリカを選ぶ。まさに「保守に向かっての変革」。日本で言うと保守と革新で右翼左翼がわかれてしまっているので、話がややこしいが、全体として幸せな停滞に向かうという意味ではトランプは結果的に正当な保守主義者達の代弁者にもなりえたのではないかと思う。

 そこで、なぜ資本主義の限界が見えるのか。まず資本の投下量と選挙結果が一致しないということ。これは金や経済成長では解決できない問題として最後に民主主義が立ちはだかったといっても良い。しかし、それで金を選ばなかったのは全体の利益が見えていない民衆の間違いだというのは資本主義に立場がより過ぎている。何故かというと世界はグローバル化し、資本は世界を飛び交っている。その中には米国より経済的に可能性に満ちた地域が多数ある。将来の米国の覇権は安泰ではない。むしろほぼ確定的に中国やインドの台頭し、現状維持では資本の勝負で米国が勝てない可能性がかなりある。特に長期的なスパンで見た場合、穏やかに成長しながら勝負していては米国が負ける可能性の方がむしろ高い。

 純粋な資本主義の勝負で米国が勝てない可能性が濃厚に漂う、つまり資本主義勝負では限界が見えている。だから、共和党の候補は軍事力でISを爆撃しまくるといってみたり、グローバル化もやめて世界の警察を辞めて国内に集中して代わりにロシアインドと連携して包囲網を作るというトランプ的な世界観が支持された。まだ米国が勝てているときにブロックで封じ込めてしまえば資本主義勝負で勝てなくても米国勝利の可能性はぐっと高まる。米国の覇権が安定していた時期の世界を覆う警察、強者の戦略から、互角の勝負で勝つための戦力の集中へシフトチェンジしたわけだ。万が一があっても現状の軍事力勝負なら負けない。結果米国の選択は理想的なグローバルな資本主義ではなく、米国が覇権を維持し勝つための米国の勝てるルールの中の限定的な資本主義を選んだ。

 TPPを選ばずにロシアやインドとの連携を選ぶ時点で、その構想から日本が外れつつあるという点が日本人としては気がかり。ということを今日の朝起きて朝飯を食べながらぼんやりニュースを見てて思った。

[]労働者左翼なのか?

 ついでに選挙後にニコニコを見ていて面白いなと思ったこと。放送では米選挙の感想を猪瀬、東、夏野という3人が色々話していた。そこで面白いなと思ったのは東さんが左翼的な視点で色々話していて、日本と米国のイデオロギーの違い色々出ちゃっていた点だ。

 トランプの勝利は労働者階級よりのトランプと富裕層よりのヒラリーの戦いとういう構図で、労働者側の勝利だった。多数派だった労働者側が「やり方はわからんが、なんとかしろ」と叫んで勝った。しかし日本では労働者というと左翼が何故か連動しておりプロレタリアみたいな雰囲気がある。そして放送では左派よりと思われる労働者の話をしていたが、現実は米国の労働者は共和党支持で保守だ。理由は国が成長して一部の富裕層の利益より、労働者は別に利益がないから。

 労働者=左翼みたいな日本基準の視点で話を作っていく発想ではヒラリーがなぜ負けたのか理解できないと思った。米国ではほとんどいつの時代も労働者は共和党の支持者なのだ。

 労働者本人達が無意識に選択している思想的なものは、最大多数の幸福。全体の利益を最大化するために、資本を集中運用し結果一部の富裕層が儲けるのでは、最大多数の幸福にならない。一部の金持ちがウォールストリートで儲けるだけで、労働者の生活は何も変わらないのだから。

*1:私が個人的にトランプの発言が好きだというわけではない。むしろトランプにはあまり共感はできない。しかし凄く示唆には富んでいた。

*2http://www.jiji.com/jc/article?k=2016062100839&g=int

2016-10-08 <阿蘇山噴火>320キロ先、高松まで降灰

[]tanythingは低スペPC以外ではデフォ設定がお勧めできない

最近KeySnailのtanythingを入れてみて、開いてたタブが全て吹き飛んで凄い面倒だったのでメモ。tanythingはタブを沢山開いていると重くなるノートPCなら機能するけど、そこそこのスペックのデスクトップだと大量にタブを開いておいたほうが操作が早いので、タブを閉じる系のデフォルトでついている操作を全部きってタブ選択だけにした方がマシになると思った。

2016-10-01 豊洲市場 専門家が見た安全性

[]KeySnailのHoKで使うキー設定のメモ

KeySnailのプラグインでHoKを入れた場合にキーの指定に使うキーを切り替える話。忘れててPC変えたときに調べて手間取ったのでメモ。

KeySnailの設定ファイルを開いて//{{%PRESERVE%の間の所に

//{{%PRESERVE%
// ここにコードを入力して下さい.
plugins.options["hok.hint_keys"] = "asdf";
//}}%PRESERVE%

"asdf" の所に使うキーを指定すればおk。ある程度よりキーの数を増やした方がワンタッチで切り替えれるようになる。ただし他のキー設定をデフォルトのキー設定でHoKを使っ手いる場合は”e”キーを入れない方がよい。eキーはHoKのオンオフを切り替えるキーなので、間違えてHoKを動かした時にオフに出来なくて不便。

個人的には、qwrasdfzxcvあたりを使ってwasdのキー設定の周りで切り替えれるようにすると便利な気がする。

2016-08-23 リアル「安倍マリオ土管」説も 池袋駅前に謎の「緑の物体」

[]git for windows だけで出来る ssh

最近 xyzzy の git のを色々試してみて気づいたのでちょっと色々試した事とかを書いてみる。git で ssh を使う時の解説ページがいくつもある。ただ何故かほぼ putty を使っている。個人的にも putty を使ってたので、putty で ssh を使う人がいるのは分かるんだけど、git の場合 git bash があるから別に絶対 putty って事もないはず・・・。しかし Windows だと何故かほぼ ssh を使う時 putty を使ってる説明になっている。もしかして putty じゃないと上手くいかないのかなとか色々思ったり。

なので putty を使わないで git for windows で ssh を試してみた。適当にやったら普通に出来た。なんで windows だと putty の説明になっているのか分からないが、説明で見た putty を使う方法より git for windows だけの方がインストールする手間も少なくて簡単な気がしないでもない。むしろ putty を使う事で複雑になっている気が。

これはもしかして布教なのか? Windows 以外の方が分かりやすくて簡単だよ的な布教なのか?ヨーダのようなすばらしい導師に導かれたい人は Mac にお布施をしろと?Windows でフォースの暗黒面を前面に押し出した Emacs もどきの xyzzy を使っているベーダーは putty 使っとけと?だが待ってほしい。フォースの暗黒面に染まりきってる xyzzy ユーザーなら Windows だけ除け者になる理由はない事に気づくはずだ。っていうか、Windows で git を使おうと思ったら大体インストールする git for windows に ssh も一緒に入っているわけで、あえて別のやり方って分かり難くないのかこれはと。ということで日本語だと何故か猫も杓子も putty で説明してるので、適当にやってみたらできた git for windows の ssh-agent を使って SSH をしてみる話。

  1. git for windows をインストールする
  2. git bash のエディタを xyzzy にする
  3. git bash で vi 開いちゃって閉じたい
  4. git for windows のインストールが終わったら確認
  5. git for windows で ssh の鍵を作る
  6. git for windows で ssh の鍵を登録する
  7. gitlab の SSH 設定をする
  8. ssh の設定が上手く言っているか試
  9. ssh の config 設定をしておく
  10. https で clone したのを ssh にする
  11. SSH で git push とかしてみる
  12. 簡単に`ssh-agent`して ssh-add する
  13. git bash すると ssh-agent を自動で起動
  14. SSHの方が遅いからHTTPSにする?

少々 git bash がとっつき難くても、ついでに bash にも慣れて ssh-agent も覚えてしまえば、実は mac でも linux でも似たような操作で出来ちゃって winndows 使ってる人が知識を広げるのに git bash はとても向いてる気がする。あと捻くれものの為に、説明は github じゃなくて gitlab を使う。github の説明はたくさんあるけど gitlab での説明は少ないので少しは為になるかと。

■詳しい話はもっと偉い人が書いてるのを読んだら良いと思う

ちなみに私は適当にやったら動くなと思っただけで、git for windows に関して本当に詳しいわけでも git に詳しいわけでもない。それどころかこの設定してそんな時間が経っているわけでもないし、まだ常用しているわけでもないのでずっと使ってみたら問題があるかも知れない。本当の細かい話は偉いヨーダ的な人に聞いたら良いと思う。

■xyzzy的な話

ここに書いた ssh の設定とかをしても、xyzzy から git add したり git commit したりする分には特に問題ない。push とか clone とかは git bash からやった方が安心かもしれないが、やっぱり add と commit が回数が多い気がするので、そこさえ抑えれば、後は別に git bash でいい気はする。

■git gui的な話

git gui でも ssh-agent の設定をすれば ssh 出来そうだったけど確かめてはいない。git gui の場合は help の show ssh key から鍵が見えるので多分出来るんじゃないかと思う。

[]git for windowsインストールする

 まず適当に適切にインストールする。古い Git for Windows だと何か日本語が化けたりするらしいので新しい奴を入れなおした方が良いと思う。ここで使っている環境は Git for Windows v2.9.0 。それだけ。新規でやる人は Cygwin とかその手のを入れたりすると環境変数の関係で条件が変わるきがするけど、そういうの入れてる人には説明が必要ない気がするというか、自分で何とかしたら良いと思う。もう一度書いとくけど、ここで使っている環境は Git for Windows v2.9.0 だけ。WinSCP とか TortoiseGit とか Putty とか OpenSSH を別途入れたりはしない。勿論 Cygwin とか Mingw-w64/MSYS2 も入れない。というか、こういう話って、色々入れる方が条件が変わったり失敗パターンが増えてかえって難しい気がする。挫折した人のための xyzzy の話でも書いたけど、まず基本的な奴でやって理解してないと、飛ばして先に進むとわからなくなる気がするので、先に一番スタンダードそうなので試して上手く行ったら便利そうなのを試せばいいんじゃないかと。

 やりかたは Putty をいれないから当然だけど Pageant じゃなくて、git for windows に付属している ssh-agent でやる。っていうか 付属してるんだからそれを使っても良いと思うんだよ。一応みんな基本で入れてる git for windows で満足出来ない人は putty とかを自分で設定くらいできるでしょっていう気もするので。

■一応インストール時の注意点

Run Git from the Windows Command Prompt

これを選ぶと環境変数 path に

C:\Program Files\Git\cmd(パスはGitをインストールした場所による)

を追加する。

Run Git and included Unix tools from the Windows Command Prompt

これを選ぶと環境変数 path に

C:\Program Files\Git\cmd

C:\Program Files\Git\mingw64\bin

C:\Program Files\Git\usr\bin

の3つを追加する。らしい。

ssh は Git\usr\bin に入っているのでここでは "Run Git and included Unix tools from the Windows Command Prompt" を選んだ方が都合がいい気はするが、個人的には確か Run Git from the Windows Command Prompt を選んだきがするのに Git\usr\bin のパスが通っていたのでその辺はよく分からない。適当にインストールをして試して駄目なら変えればいいと思う。Cygwin とか他のツールを使ってる人は慣れてると思うので、そういう人は自分で調節したら良いと思う。使えないけど趣味で Cygwin を入れてるという人は使うものだけ入れた方が良い。というかそうしないと挫折する。xyzzy でも同じだけど、使えないのに入れてると問題を引き起こすので。特に環境変数のあたりは問題が起きるし、インストーラでも実際警告の一文が出ている。

[]エディタxyzzy にする

 まずエディタの設定の話を先にしておかないと、設定ファイルを変えるたびに vi が立ち上がって操作方法が分からない人がいる気がするので先にエディタの設定。

core.editor

コミットやタグのメッセージを編集するときに使うエディタは、ユーザーがデフォルトエディタとして設定したものとなります。デフォルトエディタが設定されていない場合は Vi エディタを使います。このデフォルト設定を別のものに変更するには core.editor を設定します。

$ git config --global core.editor emacs

xyzzy ならば、 emacs となっている所を、xyzzycli にでもすればいい。.gitconfig の場所は ~/.gitconfig なので、一度

$ vi ~/.gitconfig

から .gitconfig の設定をして

editor = "エディタのパス"

をチェックすればいい気はする。UTF-8(BOMなし)で保存にすると良いらしい。ただ、 git bash 使う時だけならどうせちょっと設定ファイルいじるだけなので vi を使った方が親和性は高い気がする。説明しといてなんだけど、ここは後から変えたい人が変えればいい場所だと思う。個人的にも vi のままにしている。

[]vi の閉じ方

 vi を使えば良いといっても閉じ方が違うので慣れてないと困るかもしれないから一応。

$ vi ~/.bashrc

とかをやると、bash から vi が立ち上がってどうやって戻ればいいのか分からないかもしれないが、基本的にはESCを連打しておいて、

:wq

を打てば保存して閉じる事が出来る。 vi での編集を済ませたたら :wq で普通に閉じるだけ。 :wq で無理な場合は :wq! で閉じると閉じれるかもしれない。 vi なので閉じ方は何個もあるが基本は :wq を打てばおk。一応他の方法は :x 、ZZ なんかも似たような感じで閉じるが例によってなんでこんな何個も用意しているのかは似非ベイダーじゃなくてヨーダにでも聞かないとよく分からない。

[]インストールが終わったら確認

 SSHで通信する前に git bash を動かして

$ ssh-key

で tab を連打してみる

上手くいってる場合

$ ssh-key
ssh-keygen.exe   ssh-keyscan.exe

という感じで ssh-keygen.exe などの候補が出る。上手くいってない場合は候補に出ないかもしれない。普通は git for windows を上手くインストールすれば勝手にパスが通ってる気がする。っていうか個人的には選択肢を選んで適当にインストールしただけでこうなっていたので他の環境はよく分からないけど。 Cygwin とか入れてると環境変数が面倒な事になるとかはどこかで見た。

[]sshの鍵を作る

打つコマンド

$ ssh-keygen.exe -t rsa -C "メールアドレス"

打った後

$ ssh-keygen.exe -t rsa -C "メールアドレス"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/username/.ssh/id_rsa):  #左のパスで良ければ[Enter]。
Created directory '/c/Users/username/.ssh'.
Enter passphrase (empty for no passphrase): #パスフレーズを打つ
Enter same passphrase again: #もう一度確認でパスフレーズ

 keyを作る場所は、変えない方が面倒ないのでそのまま推奨する。そのままだと普通に使ってるwindowsの場合は[~/.ssh]で鍵のパスが指定できてフルパスが必要ないので打つのが楽。パスフレーズはパスワードみたいなものだと思えば良い。覚えておかないと駄目。

成功した場合

Your identification has been saved in /c/Users/username/.ssh/id_rsa.
Your public key has been saved in /c/Users/username/.ssh/id_rsa.pub.
The key fingerprint is:

こんな表記が出て~/.ssh/以下にid_rsaというファイルがで作られる。

The key's randomart image is:
+---[RSA 2048]----+
|     .o...o.oo++ |
|     +.*.o.+.=o o|
|    o E %.=.+o . |
|   . o B X +...  |
|    . . S = o    |
|     . + o +     |
|      =   . o    |
|     .     o     |
|                 |
+----[SHA256]-----+

あと何かこんな模様が出てくる。模様の詳細はランダムなので細かくは違ってもいい。

失敗した場合

open /c/Users/username/.ssh/id_rsa failed: No such file or directory.
Saving the key failed: /c/.ssh/id_rsa.

とか出た場合は

$ cd ~/

で移動して

$ mkdir .ssh

でフォルダを作れば良い。別に git bash からじゃなくてもc/Users/user/の所に.sshという名前のフォルダを作れば問題ない。

[]sshの鍵を登録する

鍵が出来たら、ssh-agentを起動して鍵を登録

  1. $ ssh-agent
  2. $ eval `ssh-agent`
  3. $ $ ssh-add

をやる。

$ ssh-agent
$ eval `ssh-agent`

しておいてから ssh-add で鍵を登録

$ ssh-add ~/.ssh/id_rsa

成功した場合

$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /c/Users/username/.ssh/id_rsa: #パスフレーズを入れる
Identity added: /c/Users/username/.ssh/id_rsa (/c/Users/username/.ssh/id_rsa)

失敗した場合

Could not open a connection to your authentication agent.

とかエラーがでる

失敗した場合の対策

 前の手順を見直す。

 ssh-agent が起動してないとエラーがでる

 eval `ssh-agent` してないとエラーがでる(これはWindowsの場合だけらしい)

$ eval `ssh-agent`で成功した場合

$ eval `ssh-agent`
Agent pid number

成功しているとAgent pid で数字が出るだけ。色々出てる場合は何か違う事しているんじゃないかと思う。

$ eval `ssh-agent`で失敗した場合

$ eval `ssh-agent`
bash: `ssh-agent`: command not found

どこかの設定をコピペしてて表記が変わっている場合とかがある。

例えば、`(半角)が`(全角)とかになってると失敗する。

[]gitlabの設定をする

$ clip < ~/.ssh/id_rsa.pub

クリップボードに公開鍵をコピーして、gitlab の profile bから SSH keys の設定をする。Key の所にコピーしたのを貼り付けて、title に適当な名前を入れて Add key で登録

[]sshの設定が上手く言っているか試す

$ ssh -T git@gitlab.com

成功した場合

$ ssh -T git@gitlab.com
Welcome to GitLab, username

失敗した場合

$ ssh -T git@gitlab.com
The authenticity of host 'gitlab.com (104.210.2.228)' can't be established.

失敗した場合の対策

gitlab の profile から ssh key がちゃんと登録されているか確認する。SSH をはじめに使う場合、鍵が何個も登録されている場合はとりあえず使う奴に絞って、後は remove しとく。何個も登録されてると、違う鍵になってたりする。あと回線がhttpsしか許可されてない場合とかも稀によくあるかもしれない。

ssh -vT git@gitlab.com

デバッグできるらしい。-T のオプションは使っていない人も多いみたいなのでつけないと駄目って事もないと思う。

[]configで設定しておく

$ vi ~/.ssh/config

SSH の config を設定しておく。

ex

Host gitlab
  HostName gitlab.com
  User git
  ForwardAgent yes

この例では

$ ssh -T git@gitlab.com

の代わりに

$ ssh -T gitlab

で同じ事ができるようになる。あくまで例なので、ここは config の書き方をよく調べて自分に都合が良いように設定すれば良い。

Host 任意の接続名
HostName ホスト名
User ユーザー名
Port ポート番号
IdentityFile 鍵へのPATH(例 ~/.ssh/hoge.key)
ServerAliveInterval 秒数
ProxyCommand

ServerAliveInterval は放置しとくとログアウトしてしまうサーバーなどを一定間隔で生存報告してログアウトさせない。

[]https で clone したのを ssh にする

 既に https で clone してて ssh に出来ないよって言う人も origin を ssh に変更すれば普通に ssh になるはず。

今の origin を確認する

$ git remote -v

https になっている場合

origin  https://gitlab.com/accountname/hoge.git (fetch)
origin  https://gitlab.com/accountname/hoge.git (push)

見たいに https が出るはず。hogeの所は変動する。

origin を変更する

$ git remote set-url origin git@gitlab.com:accountname/hoge.git

git@gitlab.com:accountname/hoge.git の所は自分の gitlab のページの HTTPS/SSH の URL を入れる。HTTPS と SSH はプルダウンメニューから選べるので SSH の URL を選ぶ。

上手く言ったかを確認する

$ git remote -v
origin  git@gitlab.com:accountname/hoge.git (fetch)
origin  git@gitlab.com:accountname/hoge.git (push)

のように https の所が git@gitlab.com: になっていれば変更できている。

[]SSHgit push とかしてみる。

$ git pull

して上手くいってれば

$ git pull
Already up-to-date.

となる。

$ git push origin master

して上手くSSHで接続できていればファイルの情報が表示されて下の方に

To git@gitlab.com:accountname/hoge.git

のように To git@gitlab.com:accountname/hoge.git になっているはず。

[]簡単に`ssh-agent`して ssh-add する

このままだと git bash を起動する度に ssh-agent を動かす事に。それが面倒な場合の色々

$ vi ~/.bashrc

で.bashrcを編集して

alias ssh-set='eval `ssh-agent -s` ; ssh-add'

とかすると、ssh-set で 'eval `ssh-agent -s` と ssh-add を実行してくれる。ssh-set の所は好きな名前にすれば良い。でもこの設定はぶっちゃけあまり必要はなくて、ssh-agent を自動で起動する方がらくだと思う。

[]git bash すると ssh-agent を自動で起動

$ vi ~/.bashrc

で.bashrcを編集して

#ssh-agent
eval `ssh-agent`
ssh-add

と追記しておくと、git bash を動かす時に自動で ssh-agent を起動してパスフレーズの入力を一度だけ求められるようになる。git bash が起動している間は何度もパスフレーズを入力する必要はない。 devian のページとか見るとパスフレーズなしで ssh の話が出てるので、案外一人で触るならパスフレーズもなくてもいいのかもしれない。やりたい人は下のURLを参考にでもすれば良いと思う

個人的にはパスフレーズは入れている。あと、パスフレーズを設定しても~/.bash_profilとかにパスフレーズを書いてしまって入力を省略する方法とかもあるらしい。パスフレーズの入力も省略はできるらしいが、折角 SSH にしてもそれじゃ本末転倒な気がするので、一度くらいは打てばいい気がする。

実は上に書いた設定だと ssh-agent はログアウトしても残る。ので、ログアウトする時に終了するように .bash_logout に

eval `ssh-agent -k`

を追記しておく。これをやらないと git bash を動かすたびに ssh-agent のプロセスが増えまくる。

何度も git bash を立ち上げたり消したりするような使い方をする場合は ssh-agent が起動する度にパスフレーズを聞かれる。それが嫌な場合はログアウトしたときに ssh-agent を消さないでおく方法もある。 ssh-agent のプロセスを消さないと起動するたびに Windows のプロセスに残ってしまうので $ vi ~/.bashrc で書き換える内容を下のようなのにしておくと幸せになれる。

#ssh-agent
SSH_AGENT_FILE=$HOME/.ssh-agent
test -f $SSH_AGENT_FILE && source $SSH_AGENT_FILE
if ! ssh-add -l > /dev/null 2>&1; then
    ssh-agent > $SSH_AGENT_FILE
    source $SSH_AGENT_FILE
    ssh-add $HOME/.ssh/id_rsa
fi

個人的にはこっちのが楽なんじゃないかと思ったが、このやり方は色々な方法があるようなので、自分の好きなのを選べばいい気がする。こういう話は私みたいなフォースの暗黒面たる windows に染まっていない詳しそうな人が書いているのを色々見た方が良いと思う。この場合は .bash_logout には何も追記しないで良い。 ssh-agent の多重起動を防ぐので ssh-agent が一つだけになる。ただし、ログアウトしてもプロセスをキルしないので、一度 git bash を立ち上げたら後はログアウトしても ssh-agent が立ち上がった状態になる。そのため2度目の git bash 起動時にはパスフレーズの入力も必要ない。 ssh-agent のプロセスはつけっぱなしになる。プロセスをキルしたい場合は git bash を閉じる前に

$ ssh-agent -k

とすれば ssh-agent のプロセスもキルする事が出来る。この辺の問題は OpenSSH を利用するとかなり改善するらしい。多重起動防止とかがあるので。

[]SSHの方が遅いからHTTPSにする?

SSHの方が遅いからHTTPSにするという話を見かけたけど、よく見ると追記されてて

~/.ssh/config に次の設定をすれば、SSH でも十分速くなるようです。

Host github.com
  Compression yes
  Ciphers arcfour256

すれば早くなるらしい。

*1:フォースの暗黒面たる windows の力も結構なものなので多分 Mac じゃないからじゃなくて ssh-agent の種類で色々違うというか。 OpenSSH じゃないからじゃないかと思った。

2016-08-06 <尖閣>周辺に中国船230隻…接続水域侵入、政府が抗議

[]xyzzyhtmlを書く人向け

最近xyzzyのWikiが何かスパムが増えすぎている気がする。前からあったけど、日本語がないコメントをはじくプラグインか何かないんだろうか。ワードプレスにあるbotを弾く奴みたいなのがあればいいのにとか思いつつhtmlを書く人向けの話

■入れた方がいいと思う拡張

javascriptを使わない人でも、html+-modeだけじゃなくてjavascript-modeも一緒に入れておいたほうが良いと思う。最近のhtmlは読むときにコードにjavascriptが混じってるので。multi-major-modeは色分けの問題を大分解消する。

■必要なら入れた方がいいと思う拡張

  • emmet
  • php-mode

php-modeはphpが混じったファイルを見る日とならhtmlだけじゃなくてついでに入れたら良いと思う。emmetはhtmlを大量に手で書く必要がある人なら便利。

div>ul>li*3>a>span.outlink{click}

みたいな風に書くと

<div>
  <ul>
	<li><a href=""><span class="outlink">click</span></a></li>
	<li><a href=""><span class="outlink">click</span></a></li>
	<li><a href=""><span class="outlink">click</span></a></li>
  </ul>
</div>

みたいに展開してくれるらしい。emmetはxyzzywikiとかであまり見かけないと、便利だと思う。多分手打ち速度はめちゃくちゃ速くなるんじゃないだろか。

■個人的にやってるの

個人的にやっているのはfirefoxで画面を選択してコピーしたテーブルとかをxyzzy上でもう一度テーブルとかに戻すlispとかは作ったりしている。原理的には

  • html+-mode
  • javascript-mode
  • multi-major-mode

これをfirefoxでコピーすると

    html+-mode
    javascript-mode
    multi-major-mode

見たいに前に半角スペースが4つ入ったのになるので、半角スペース四つならリストにして

<li>html+-mode</li>
<li>javascript-mode</li>
<li>multi-major-mode</li>

見たいなのにするだけなんだけど。これの何が便利なのかというと別にそんなに便利じゃないはずなのに何故か頻繁に使っている気がする。自分で何でこういうのをそんなに使っているのか理解できないが何故か便利になるタイミングが結構ある。特にテーブルの奴はよく使っている。