読者です 読者をやめる 読者になる 読者になる

yetnoneの日記

どこぞのPh.D. student。何をやっているかと聞かれると困る。

Bear: Markdownエディタ

Bearとかいう素晴らしいものを見つけてしまった。

Kobitoと比較した場合、個人的に特筆すべき点は、

  • UIがきれい
  • Markdownを書いたそばから解釈して修飾してくれる
  • メモ一覧にピン機能がある
  • メモのリンクが可能
  • チェックボックスを書ける
  • PDFその他ファイルを埋め込める、さらにAcrobatで開けるのでハイライト・コメント編集も可能
  • (Pro版だと)PDFにエクスポートできる(未確認)

すごい。ただ、現時点では以下のような至らない点もいくつかある。

  • 数式、表の入力ができない(LaTaXiTでPNGに出力してそれを貼り付けることはできる)
  • バックアップをどうするかまだよく分からない
  • Pro版は有料

数式と表は使いたいので少し痛いが、それを補っても余りあるほどのメリットがBearにはある。

すでにいくつかのメモをKobitoから以降したが、今後機能が順調に充実していけばおそらくBearに完全以降するだろう(このブログも怪しいと一瞬思ったが、短いメモや利用頻度の低いメモが一覧を圧迫するのが嫌いなので、そういったものや、今回のような一過性のメモについては今後もこちらに書くことになるだろう)。

あと余談だが、Bearはググラビリティが低すぎる。。。ググラビリティと使用率に相関があったりしないかなと考えたりするのだが、見つけたい人はちゃんと見つけるので大丈夫か。

Git(Hub)で他人のレポジトリをcloneして新規branchを作って自分のレポジトリに公開するまでの流れ

(Qiitaに書いた方がいいかも)

  • $ git clone URL
    • submoduleも一緒に取ってきたい場合は--recursiveをつける
    • submoduleをアップデートしたい場合は$ git submodule update --recursive
  • $ git remote -vで現在のリモートリポジトリ覧表示
  • $ git branchでブランチ一覧表示、引数を付ければその名前のブランチを作成
  • $ git checkout BRANCH_NAMEでブランチ移動
  • GitHub上で自分の(空の)レポジトリを作成
  • $ git remote add REMOTE_NAME REMOTE_URLでリモートリポジトリを作成
  • $ git add .; git commit -m "MESSAGE"
  • $ git push REMOTE_NAME BRANCH_NAMEで自分のレポジトリのブランチに追加
  • .gitmodulesのURLを適切なものに変更する
    • ../REPOSITORY_NAMEだと自分のレポジトリ、URLのフルパスにすると任意の(他人の)レポジトリを参照できる
  • $ git submodule add URL LOCAL_NAME; git submodule update --init --recursiveでsubmoduleを追加
    • $ git branch -rでmaster以外にどのブランチがあるか確認
    • $ git checkout BRANCH_NAME origin/BRANCH_NAMEでブランチ追加
    • submoduleが指すコミットを変更したい場合は、submodule内部で$ git checkout BRANCH_NAME|COMMIT_ID -> submodule外部で$ git add .
    • $ git submodule deinit ディレクトリ名; git tm -rf ディレクトリ名で削除
  • $ git log --oneline --graph --decorateでログツリーを確認
  • $ git pull, $ git mv, $ git rm (--cached), $ git status

SSH接続

  • $ git remote -vhttps://github.com/...と表示されたら、$ git remote set-url origin git@github.com:...
  • 以降はここに従って~/.ssh/configを編集
    • id_rsa以外の鍵を使いたい場合は-iで指定
  • Gtk-WARNING **: cannot open display と表示されたら$ unset SSH_ASKPASS

.gitignoreファイル

  • 複数のディレクトリに置くことができる
  • 深い階層の.gitignoreに書かれた指定の方が優先順位が高い
  • 以下の上の行から順に解釈される
    • /を含まない、もしくは末尾以外にのみ/を含む行(e.g. file, /file, path/to/file, /path/to/file)
    • 末尾が/の行(e.g. /path/to/directory/, path/to/directory/)
    • !で始まる行(e.g. !/path/to/file)
      • !以降のパターン文字列が示すファイルまたはディレクトリを無視しない
      • 前の無視指定を上書きする
      • 以降の無視指定に上書きされうる
    • 空行もしくは#で始まる行
      • 解釈されない
  • ワイルドカード(*, ?, [0-9]など)も使える

所得

所得 = 収入 - 必要経費

いつも分からなくなるので、ここに書いておく。今年はちゃんと確定申告で必要経費を引いておいてよかった。

それにしても、税金高い。こりゃ文句言われるわけだ。自分の場合年金はまだ免除されるけど。

Wordに貼り付けたPDFがベクトル形式ではなくなってしまう現象

タイトルの通り。外部のPDFからWordに貼り付けたPDFは、大抵はそのままベクトル形式で配置され、拡大・縮小しても綺麗なまま保たれる。

しかし、たまにこれがうまく行かず、貼り付けたその時点は綺麗に写っているものの、一度ファイルを閉じて再度開くと(!)荒くぼやけたサムネイルになってしまうことがあった。

色々試してみて分かったことは以下の通り。

  • ある特定のPDFファイルをIllustrtorを使って編集すると起こる(AcrobatKeynoteで編集すると大丈夫だった)
  • それぞれを別々に貼り付けても大丈夫だったものが、複数を(Illustrator, PowerPoint, Keynote等で)1枚のPDFにまとめてから貼り付けるとダメ
  • PDFを経由しないでPowerPointオブジェクトを貼り付けるとうまくいく

結局解決できずPowerPointからオブジェクトを直接コピーして貼り付けることにしたのだが、謎すぎる。Wordが勝手にサイズを圧縮していると思ってそれ関連と思われる色々な機能をオフにしてもダメ。

普段はWord (というかOffice全体)なんて使わないのだが、今回は様々な兼ね合いで使わざるを得ず仕方なくdocxを用意した。途中、何度嫌になったことか。。この手のソフトウエアは、便利さを謳いながら、その実制限された機能を詰め込んでいるだけで、自由度が低く結局やりたいことなんかできないというのが個人的な印象だ。タダ飯は無いのである。

2017/5/22追記

おそらく原因が判明したので追記。Keynoteからオブジェクトをコピーする時に、どうやらベクトル形式のオブジェクトであってもラスター形式でクリップボードに保持されるらしい。。

以前はベクトル形式のままできたと思うのだが(ググるクリップボード経由でpdf保存みたいな記事がいくつか出てくる)。。。

PowerPointは大丈夫。謎仕様だ。Keynoteの株は自分の中で大暴落。

今まで図を書くときは基本的にRを使っていた。しかし、言語仕様のせいかライブラリのせいか、Rはなんとも言えない使いにくさがある。

ちょうどベン図を描きたいと思っていた。ベン図なんて表現としては基本中の基本だから、いくらでもライブラリが転がっているだろう。そう思っていた。

しかし、蓋を開けてみると、ライブラリがいくつかあることにはあるのだが、どれも使ってみると納得いかない。

  • PDFで保存できない
  • 大きさを集合の要素に合わせてスケールできない
  • 色とかの自由度が低い

等々。

そこで、じゃあそこらへんのwebサービスでも使ってみようかとググってみると、これまた使いにくい数々のツール達が。古くて汚い画像しか出力できないもの、スケールしないもの、そもそもUIが煩雑、(濃度の指定だけではなく)集合を直接指定しないといけないもの、等々。。。

正直かなりうんざりしていた。だがその時、ふとpythonのことを思い出した。自分はこれまで、python ユーザにはおなじみのはずであるmatplotlibを全くといっていいほど使ってこなかった。謎である。

結果として、matplotlib_vennのvenn2で非常に満足のいくベン図が書けたという、それだけの話。しかし、Rは可視化ツールとしてだけ使うのはちょっと面倒だし、Javascriptを持ち出してくるのは大袈裟な感じがするし(加えて大体面倒だし)、pythonの手厚いサポートを受けたmatplotlibは便利だということに(今更)気がついたので、今後はRからこっちに切り替えていきたいと思う。

画像の一部分の比較

画像処理というには簡単すぎる内容かもしれないが、画像の一部分を切り出してすでにあるものと比較、という処理。最近やっていないのにブックマークが邪魔だったので、ここにまとめようと思い立った。

簡潔にまとめると以下の通り。

画像切り出し

  • $ convert -crop 横ピクセル数x縦ピクセル数+横始点ピクセル+縦始点ピクセル 元画像 出力画像名
    • 例: $ convert -crop 960x720+160+0 src.png dest.jpg
    • ピクセル指定のところは代わりに50%のような割合指定も可能

画像比較

  • $ perceptualdiff -threshold 閾値ピクセル数差 画像1 画像2
    • 例: $ perceptualdiff -threshold 100 fig1.png fig2.png

参考文献

programmer-jobs.blogspot.jp

画像比較 with perceptualdiffkazucocoa.wordpress.com

Macにpython 2とpython 3を共存させる

文字列の扱いとかprintの関数化とかで個人的に好きなのはpython3だが、python2も使えた方が良いだろうと思い、よく知られているpyenvを導入。今後も使いそうなのは以下のコマンドか。

  • $ pyenv versions
    • これまでにインストールしたバージョンの確認
    • systemMacに最初から入っているpythonインタプリタで、他のバージョン数字がpyenvで入れたもの
  • $ pyenv install --listもしくは-l
    • インストール可能なバージョンのリストを表示
  • $ pyenv install バージョン名
    • バージョン名とは上のコマンドで表示された名前のこと
  • $ pyenv global バージョン名
  • $ pyenv rehash
    • バージョン変更したらこれを実行

関係ないんですが、コマンドの説明をする時に変数(ユーザによって入力が変わる部分)をどう表現するかによく困るんですが、英語斜体とか大文字よりも日本語で書くと分かりやすいと個人的に思うのですが、どうなんでしょうか。統一的な記法とかあれば知りたい。

参考文献

qiita.com

qiita.com