nDiki : Homebrew

2017年12月11日 (月)

ターミナルや Alfred から Slack に投稿するのに slackcat を入れた

ぼっち Slack ワークスペースに思い浮かんだことをつぶやいておくことにしたのでターミナルや Alfred for Mac からもさくっと投稿できるように、slackcat を入れてみました。

slack は Go で書かれているのでさくっとビルドできますが Homebrew でもインストールできます。

 brew install slackcat

あとは最初に

 slackcat --configure

と --configure オプション付きで slaccat を1回実行し認証を済ませます。認証が済めば以下のように標準入力から slackcat にテキストを渡すことで Slack に投稿できます。

 echo 'hello' | slackcat --channel timeline --stream

便利。

[ 12月11日全て ]

2017年12月13日 (水)

今日のさえずり: さっそく超グラコロ食べた。超満足。

[ 12月13日全て ]

2018年2月26日 (月)

Markdown で書いているノートWeb ブラウザで見るのに MkDocs を使う

ノート/メモははライティングアプリ Ulysses を使い Markdown で書いていて、検索・閲覧・整理も Ulysses で基本済ませています。ただいくつかの良く参照するファイルはブックマークやハイパーリンクから Web ブラウザでさっと表示させたかったりします。なので以前は Plack::App::Directory::Markdown を使った自作 PSGI アプリケーションを使ってました。

が、セットアップしたり保守したりという手間を今とれないなと思って、 Markdown ビューアを探してみたところ MkDocs が良さそうなので試してみました。

MkDocsHomebrew で入れてみる

MacBook ProHomebrew で入れて動かしてみます。

 $brew install MkDocs
 $mkdir -p ~/var/mkdocs
 $cd ~/var/mkdocs
 $mkdocs new local
 $cd local
 $mkdocs serve

Web サーバが立ち上がるので http://127.0.0.1:8000/ にアクセスすると ~/var/mkdocs/local/docs/index.md の内容を HTML に変換したものが表示されます。お手軽! 設定変更は ~/var/mkdocs/local/mkdocs.yml できます。

あとは docs の下に Markdown ファイルを置いておけば Web ブラウザで閲覧できます。docs の下に既存の Markdown ファイルノートディレクトリへシンボリックリンクを作ればそれらも辿って表示されます。

pip で入れ直す

試していてブラウザでのレンダリング表示が重いなと思って HTML ソースを見たら同じ JavaScript ファイルを何十回も読み込んでいて何か変ぽかったので Homebrew のをやめて pip で入れなおしました。どちらも現在 mkdocs 0.17.2 ですが pip で入れた方は問題なかったのでこちらを使うことにします。

 $brew uninstall mkdocs
 $brew install python
 $pip2 install mkdocs

MkDocs静的サイトジェネレータで、プレビューサーバは補助的機能ですがまずまず使えそうです。

[ 2月26日全て ]

2018年7月20日 (金)

Homebrew でプログラミング用フォント Ricty をインストール

2014年頃に Emacs の設定に Ricty フォントを追加していました(記憶がない)

 (add-to-list 'default-frame-alist '(font . "Ricty"))

けれども今の環境には Ricty を入れてなかったので入れました。

 $ brew tap sanemat/font
 $ brew install ricty
 $ cp -f /usr/local/opt/ricty/share/fonts/Ricty*.ttf ~/Library/Fonts/
 $ fc-cache -vf

Homebrew でパッチを当てた Emacsアップデート

Emacs 26.1 が出ているので久しぶりに Emacsアップデート

前回と同様 @takaxp 氏のパッチを使いました。感謝。手順は前回の手順とほぼ同じ。

 $ cd ~/tmp
 $ curl -LO https://gist.githubusercontent.com/takaxp/5294b6c52782d0be0b25342be62e4a77/raw/9c9325288ff03a50ee26e4e32c8ca57c0dd81ace/emacs-25.2-inline-googleime.patch
 $ brew update
 $ brew edit emacs

で起動したエディタで先頭の方に数行追加。

 # 以下を追加
 patch :p1 do
   url "file:///Users/naney/tmp/emacs-25.2-inline-googleime.patch"
 end

 depends_on "autoconf" => :build
 depends_on "automake" => :build
 # ここまで

でインストール。

 $ brew uninstall emacs
 $ brew install --with-cocoa --verbose emacs
[ 7月20日全て ]

2018年8月5日 (日)

macOS High Sierra にアップグレード

今日プリンタ印刷をしようとしたらプリンタとうまく通信できていなくて、そういえば SSH も数日前から接続できないことがあって、あれっと思ったら App Store にもうまくつながらなかったり。考えられるのはノートン セキュリティを再インストールしたことぐらい。ファイアウォールの設定も見てみたけれど問題なさそうなので、このタイミングで macOS High Sierra に上げておくことにしました。

macOS Sierra 10.12.6 から macOS High Sierra 10.13.6 へのアップグレードになります。アップグレードした結果、印刷できるようになったし SSH 問題も解決したので良しとします。

ScanSnap Manager は要アップデート

それから iTerm2 で新しいウィンドウを開くと

 failed MSpanList_Insert 0x2d4000 0x3abc7c6fbf83 0x0
 fatal error: MSpanList_Insert

 runtime stack:
 runtime.throw(0x277a4b)
 	/usr/local/go/src/runtime/panic.go:491 +0xad fp=0x7ffeefbff550 sp=0x7ffeefbff520
 runtime.MSpanList_Insert(0x296e48, 0x2d4000)
 	/usr/local/go/src/runtime/mheap.c:692 +0x8f fp=0x7ffeefbff578 sp=0x7ffeefbff550
 以下続く

エラーを吐くようになりました。.bashrc の中で読んでいる direnv が出していたので自前でビルドしていたのを捨てて Homebrew で再インストール。

 brew install direnv

途中

 xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
 Error: Failure while executing; `git config --local --replace-all homebrew.private true` exited with 1.

と出て git が動かなくなってしまっていることに気がついたので、こちらは

 xcode-select --install

で対応。

[ 8月5日全て ]

2020年7月23日 (木)

nodebrew で Node.js をインストール

今まで Node.js はそれほど使っていなかったのでシンプルにインストールしていたけれど、ホームディレクトリ直下に node_modules を置くのが嫌という地味な理由でバージョンマネージャを使うことにした。

Node.js を使った開発をしておらずプロジェクト毎に Node.js を切り替える必要は無いので nvm ではなく nodebrew を選んだ。

nodebrew をインストール

Homebrew でインストールしセットアップを実行する。

 $ brew install nodebrew
 $ nodebrew setup

.bashrc に PATH 設定を追加する。

 # nodebrew
 if [ -d $HOME/.nodebrew/current/bin ]; then
     PATH=$HOME/.nodebrew/current/bin:$PATH
 fi

nodebrew で Node.js 安定版をインストール

 $ nodebrew install-binary stable
 $ nodebrew use stable

これで安定版の Node.js を使えるようになった。

[ 7月23日全て ]

2021年1月5日 (火)

最近の Unisonビルドする

双方向ファイル同期化ツール Unison File Synchronizer、 Mac で使っているのが Unison 2.48.6 の GUI 版なのだけれど、古いせいか macOS Catalina だと「Install command-line tool」 が機能しない(/usr/bin にインストールしようとしているからかな)。

macOS 上で text UI 版がちょっと使いたい & GUI 版も新しいのにしたいなと思ってビルドとかした。

現在の Unison のバージョン

2021年01月05日時点での安定版は 2.51.3

Homebrew で入れる

 $ brew install unison

で text UI 版の「unison version 2.51.3 (ocaml 4.10.0)」が入る。GUI 版は入らない。

macOS Catalina 上でビルドする

Unison 最新版のバイナリ配布が見当たらないのでビルドしてみる。 Xcode が必要。

 $ xcode-select --install

で入る Command Line Tools だけだと text UI 版の Unison しかビルドできないので App Store から Xcode をインストールした。

OCaml は Homebrew ので済ます。

 $ brew install ocaml

今日時点で入るのは OCaml 4.10.0 だ。次に Unison 2.51.3 をビルドする。

 $ cd ~/tmp
 $ curl -OL https://github.com/bcpierce00/unison/archive/v2.51.3.tar.gz
 $ tar zxvf v2.51.3.tar.gz
 $ cd unison-2.51.3
 $ make all

make だけだと text UI 版しかビルドされないので make all してみた。が残念 GUI 版はエラーで途中で止まった。今はうまくビルドできないのかもしれない。

諦めて make で text UI 版だけバイナリを得ることにした。 make 後

 $ ./src/unison -version

で実行できることを確認。 ./src/unison を適当なところにコピーしておく(これなら brew install unison で十分だった)。

FreeBSD 上でビルド

ローカルホストの Unison とリモートホストの Unison のバージョンが合っていないと同期できないのでリモートホスト側 (FreeBSD 9.1-RELEASE-p24) でも同じバージョンのものをビルドする。さくらのレンタルサーバ プレミアムで root 権限はないのでユーザー権限にて。

まずは OCaml。最近の OCaml は opam というのでインストールして使うのが流儀らしい。 opam をインストール。

 $ cd ~/tmp
 $ mkdir bin
 $ curl -OL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh
 $ BINDIR=$HOME/tmp/bin sh install.sh

リモートホストの環境に合ったプレビルドが無いとエラーが出て install.sh ではインストールできず。

OCaml の前に遡って opam のビルドをする。

 $ cd ~/tmp
 $ curl -OL https://github.com/ocaml/opam/archive/2.0.7.tar.gz
 $ tar zxvf 2.0.7
 $ cd opam-2.0.7
 $ gmake cold CONFIGURE_ARGS="--prefix ~/tmp/opam"
 $ gmake cold-install

ビルドできた。opam を初期化する。

 $ PATH=$HOME/tmp/opam/bin:$PATH
 $ opam init

gpatch が無いとエラーで止まった。 patch へのシンボリックリンクで gpatch を作ってイケるかなと思ったけど今度は別のエラーで止まる。うーん。 opam で OCaml をインストールするのは断念。

OCaml のドキュメントを読んだら今まで通り configure して make も普通にできるじゃない。

 $ curl -OL https://github.com/ocaml/ocaml/archive/4.10.0.tar.gz
 $ tar zxvf 4.10.0.tar.gz
 $ cd ocaml-4.10.0
 $ ./configure --prefix $HOME/tmp
 $ gmake
 $ gmake install

次に Unison 2.51.3 をビルドする。出来上がったバイナリは今使っている Unison 2.48.3 と併用できるように別のディレクトリへ。

 $ cd ~/tmp
 $ curl -OL https://github.com/bcpierce00/unison/archive/v2.51.3.tar.gz
 $ tar zxvf v2.51.3.tar.gz
 $ cd unison-2.51.3
 $ PATH=$PATH:$HOME/tmp/bin
 $ gmake
 $ ./unison -version
 $ mkdir -p $HOME/local/unison-2.51.3/bin
 $ cp -a src/unison $HOME/local/unison-2.51.3/bin

サイト

[ 1月5日全て ]

2021年1月15日 (金)

2021年01月15日(金)の #nNote

fswatch

https://github.com/emcrisostomo/fswatch

指定したファイル・ディレクトリの変更をモニタし、変更があれば変更イベント情報を標準出力に出力するプログラム。 macOS にも対応している。 Homebrew でインストールできる。

 $ brew install fswatch
[ 1月15日全て ]

2021年1月19日 (火)

Zettlr はテキストファイルノートアプリに適した Markdown エディタ

Zettelkasten メソッドのための機能を備えた Markdown エディタに Zettlr がある。ローカルディレクトリ上に通常の Markdown ファイルとしてデータを保存するタイプで、ロックインの心配が無く他のツールと併用できる好みのアプリだ。インストールして1日使ってみた。

インストール (macOS )

Homebrew では以下で。

 $ brew install --cask Zettlr

今日時点でインストールされるのが 1.8.3 でちょっと古かったので

からバイナリビルドされた 1.8.6 をダウンロードしてインストールした。

Markdown エディタとして

ヘッダを大きめに表示したりリンクの URL を隠したりと一部プリレンダリングされるタイプ。日本語も問題無さそう。

ファイル末のあたりで文字入力するとエディタがガクガク揺れるは今後改善されると嬉しい。

見出し単位で折り畳む機能やサイドバーで目次を表示する機能があり、長めの文章を書くための支援が揃っている。

ファイル管理

ファイルツリー上にディレクトリとファイルの両方を表示する Combined モード以外に、ファイルツリー(ディレクトリツリー)とファイルリストの両方を表示する Expanded モード、ファイルツリーとファイルリストのどちらかを表示する Thin モードがある。

Expanded モードを選ぶと iA WriterUlysses などでもお馴染みのスタイルになりノートアプリとして使いやすくなる。

ファイルシステム上のディレクトリをルートディレクトリとしたワークスペースを複数同時に開いておける。用途別にディレクトリを分けている場合に便利だ。

全文検索はワークスペース単位。内部リンクもワークスペース単位で機能する。 自分は複数のワークスペースを横断的に全文検索したいので、本格的に使うなら1つのディレクトリの下にまとめる必要があるな。

ファイルの拡張子は md ではなく txt でも OK なので、ファイルを同期した Google ドライブ上で全文検索させられるのが嬉しい(Markdown ファイルの拡張子を md にすると Google ドライブで不便)。 md 固定の Obsidian より柔軟だ。

Zettelkasten メソッドと内部リンク

Makrdown ファイルから Markdown ファイルへファイルベース名を指定して 「[[ファイルベース名]]」の形で内部リンクできる(パス名は不要)。

また Markdown ファイル内にユニークな ID を書いておき、その ID を指定して「[[ID]]」としてリンクもできる。後者を使えばファイル名変更が気軽にできる。 ID の形式やリンクの開始文字列 [[ ・終了文字列 ]] もカスタマイズできて柔軟なのも良い。

iA Writer では

 ia-writer://open?path=/Locations/path/to/file.txt

のような URL を発行して擬似的にリンクするさせるしかないので比べると圧倒的に便利。

1日使ってみて

今メインで使っている Mac アプリケーションiA Writer に比べると Electron ベースの Zettlr は美しさで負けるのは仕方ないところかな。

Zettlr をテキストファイルノートアプリとして内部リンクを活用しながらパーソナルナレッジベースを作っていくのありだな。

[ ノート・日記はテキストファイルに ] [ Mac アプリケーション ]

[ 1月19日全て ]

2021年3月6日 (土)

今日のさえずり: 粉ふきいもにパラパラっとかかっている緑のあれ何ってなってる

  • 09:32 Suica のリピートポイントサービス、2021年3月1日から始まっているんだ。在来線乗車ポイントやオートチャージ・定期券購入時のポイントを考慮しつつ計算すると、自分の通勤ケースでは月14日まで→都度、月15〜16日→6カ月定期券、月17日→3/6カ月定期券、月18日以上→1/3/6カ月定期券のようだ。
  • 09:44 粉ふきいもにパラパラっとかかっている緑のあれ何ってなってる。
  • 09:49 粉ふきいもの緑のアレ、パセリだと思っていたけど青のりではと言われた。調べたら両方正解だった。
  • 09:53 粉ふきいものレシピを見ていたらカレー粉バージョンが出てきた。これ絶対美味しいやつでは。
  • 14:37 Homebrew の httpd のバージョンが上がった際に /usr/local/Cellar/httpd/2.4.12 が消え /usr/local/Cellar/httpd/2.4.46_2 が代わりに作られた結果 2.4.12/docs/ 消えてビビった。ここに置くべきでなかったっぽい。
  • 14:41 Time Machine で消えたディレクトリを復元。
[ 3月6日全て ]

About

Naney Naneymx

Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。

※本サイトの内容は個人的見解であり所属組織とは関係ありません。

Process Time: 0.023556s / load averages: 0.12, 0.16, 0.16