isEOL(@Angelworm_)

this method describes @Angelworm_ is End Of Life

oh-my-zsh環境下でも"普通の"履歴補完をしてほしい

あまりにしょうもない話だけど、なんか最近解決して助かったのでメモ。

他人が使っている面白げな機能をバンバン追加すると、その使い勝手の悪いところだけが濃縮されてよくわからない痛みを伴う環境が出来上がったりします。
特に、手元の環境では、MacBookに特にまともなカスタマイズをしていないzsh + oh-my-zsh、しかもバージョンもよくわかっていないという悲惨な状態だったりします。

このoh-my-zsh、自分は見栄えのいいpromptがあるからというあんまりな理由で使い続けているのですが、どうも履歴を遡って入力する機能周りで好みに合わない挙動をします。
冷静に考えて(oh-my-)zshをやめて素直にカラーテーマを入れ直せばいいのでしょうが、それではスッキリしないので設定を変えます。

問題というのは、oh-my-zshではUP-Arrow-Keyで現在プロンプトに入力している文字列と前方一致するものだけが検索される状況です。
便利な人には便利なんでしょうが、中途半端に入力してから気持ちを変えがちな人間としては、いきなり履歴のわけのわからないところに飛ばされて途方に暮れるわけです。
ちなみにこの状況に陥ってから文字列を消しても最初に戻ってこれるわけでは無いので、補完された文字列を消してEnterを打つしか手がないわけですね。

これはUP-Arrow-Keyが差し代わっている事が原因らしいので、こんな感じで差し替えればいいらしいです。
大昔の記事によればこんな感じだそうで https://github.com/robbyrussell/oh-my-zsh/issues/2735#issuecomment-160455066

すなわち上キーをこんな感じで前のにもどしてやればOKっぽい。

zmodload zsh/terminfo
bindkey "$terminfo[kcuu1]" up-line-or-history
bindkey "$terminfo[kcud1]" down-line-or-history
bindkey "$terminfo[cuu1]" up-line-or-history
bindkey "$terminfo[cud1]" down-line-or-history

FirefoxでChromeっぽいタブ表示を実現する

この記事は(null)のN日めの記事です。
前日の記事は(null)さんの(null)でした。興味深い話でしたね。

世の中にはいくつものブラウザが存在し、それぞれが独自の個性と操作性を持っているという現状は(利用者にとっては)とても良い状況ですね。

タブのピン留め機能は便利ですが、開いたタブが右端に表示されると、新しいタブが右端と左端に固まりやすいですね。
私はタブを100個くらい同時に開くタイプなので、タブはすべて表示されている方が都合がいいのですが、
悲しいことにMacで使えるブラウザの代表、SafariFirefoxではタブはスクロールボタンが表示され、すべてを一覧することができるわけではありません。

safari
f:id:n-karasu:20171203173539p:plain

firefox
f:id:n-karasu:20171203173545p:plain

その中でも特にお気に入りだったのがChromeで、どれだけタブを開いても細くなるだけでいくらでも開けるのが特に好きでした。

f:id:n-karasu:20171203173234p:plain

しかしChromeMacのメモリ管理と異常に相性が悪いらしく、時々OSを巻き込んでフリーズするという問題を見せてくれたので、Vivaldiに避難していました。

f:id:n-karasu:20171203173816p:plain

そもそもウィンドウの幅が違うという点で公平ではないにしろ、vivaldiは比較的みやすいですね。



さて本題。
今回はFirefoxのアップデートで色々変わったとのことなので、Firefoxのタブ機能を直して引っ越し作戦といきます。修正の目標としては、タブの幅をfavicon以下にしてもスクロールボタンが表示されないようにしたいところです。

以下のabout:config をどうにかする方法は、手元では全くうまくいきませんでした。

そこで、こちらで紹介されているuserChrome.cssを使って強引に書き換えていきましょう。(これができるのがFirefoxの強みですね)
www.reddit.com

こんな感じになりました。faviconが見えている分だけ前よりは…みやすいのでは…ないでしょうか…
f:id:n-karasu:20171203175941p:plain

コードはこちら(すでに userChrome.css がある人は最初の2行を削除してください。)

@charset "utf-8";
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

.tabbrowser-tab:not([pinned="true"]):not([selected="true"]) {
	min-width: 1px !important;
	overflow: hidden !important;
}

.tabbrowser-tab:not([pinned="true"]):not([selected="true"]) .tab-content {
	padding: 0 2px !important;
}
.tabbrowser-tab:not([pinned="true"]):not([selected="true"]) .tab-close-button {
	display: none !important;
}

インストール場所は こんな感じで。

~/Library/Application\ Support/Firefox/Profiles/XXXXX.default/chrome/userChrome.css

やっていること。
1. 最小のタブの幅を1pxにする。はみ出した分は隠す。
2. アクティブでないタブはfaviconを左にずらして、細くなってもできるだけ見えやすいように。
3. タブを閉じるボタンは消す。

この機能は昔からあったと思われるので、単純にFirefoxの底力を見逃していただけということなのでした。

夜行バスを乗ることについてのアレコレ

「学生のうちなら体力もあるだろうし、どんな劣悪な環境でも安けりゃいい」という心が貧乏な皆様なら、長距離移動に夜行バスを使ったことがあるかと思います。
特に、東京大阪間の夜行バスは、質を問はねばなんでもあるレベルで値段とサービスの違う無数の便が運行しています。

無駄に夜行バスに乗り込んでは体力を消耗してきた私ですが、それもそろそろできなくなるかなーということで、今までの経験から集めた知識をここにまとめてみようと思います。

まず夜行バスをとる

夜行バスは便利ですね。主に

  1. 夜行である = 移動時間を無視できる
  2. 安いのは安い。普通のだと普通

この二点だと思います。

もし貴方が時間的富豪ならば徒歩か自転車、18きっぷ1日分をお勧めするのですが、そんな昼1日分を消費できるほど余裕もないかと思います(あるならやってもいい)。自転車は論外として18きっぷは実質的に昼行便なので、1日の大半を箱の中で過ごすことになるわけですからね。最悪立ちます。また、もう少し払えばLCCだって乗れるし、新幹線だって乗れます。交通費だってほとんど支給されないご時世じゃ(だったんですよ)高いと感じるわけです。

ということで、夜行バスをとるという事は安くて(ある意味)速い交通手段を求めていることになります。夜行バスには、発車時刻の差はあれど、速度の差はほとんど無いので、値段の安さが決め手となってくるわけです。だからちょっと前に価格競争からの事故があったわけですね。保険金をケチって乗っているくらいわかってほしいものです。

安いバスを探すには、比較サイトが一番です。昔は楽天トラベルを使っていましたが、現在ではもう少し検索の幅の広いバス比較ナビというものを使っています。

高速バス・夜行バス 予約 【楽天トラベル】

夜行バス比較なび 全国の高速バス・夜行バスの最安値情報・予約

ここで、予約の取り方にも戦略があります。一つは、早めに予約して早割を狙う戦略。もう一つは、前日や当日に予約して投売り価格を狙う戦略です。
実のところ、計画性のない私は最初の戦略に成功したことがないので、後者を狙います。すなわち、前日くらいに先のサイトを覗き、最も安いものを買います。利用者が増える時期は非常に危険ですが、そうでもなければ良くて半額、悪くて定額より少し高くなる程度で比較的ローリスクです。ただし、他のコスト(後述)がかさみがちですが。

オプションとかですが、基本的に四列シートにオプション無しで大丈夫です。三列シートとか高いだけですし、ブランケットもなくても問題は起きません。電源は、まあ、うん。あと女性専用とかは使ったことがないのでわかりません。ただし、本当の意味でただの観光バスを使っている会社があり、そのようなところはリクライニングすら少し厳しいなどの観点からあまりお勧めしません。そのため、最低限の状態からいくらくらいなら投資できるかの観点でオプションを追加する程度でいいでしょう。

お勧めは、先ほどの発言と矛盾しますがJRバスです。バスの中では最安値であることは少ないにしろ比較的安く、オプションは最高クラスなので、売れ残りやすくて使いやすいです。投売りセールがあったかどうかは忘れました。多分ないです。イメージとしては相場最安値に1000から2000円増しくらいだった印象です。

乗る時

10分前についてるとギリギリ扱いされたりピッタリだったりするので基準にしましょう。

座り込んでいると見栄えが悪いので時間の調整はしたいところ。空いている店が少ないので難しいですが。

手持ちと仕舞う用ではカバンを分けたほうがいいですね。あとは乗降時に見せなきゃいけないものがあるなら出しておく。大きめのカバンの方にまくらとか飲み物とか入れてしまいがちなので出しておく。

車内

飯食うな。しゃべるな。前の席蹴るな。携帯の電源入れるな。デケデケするな。 ~映画館マナーCM~

はい。

上の話は泥棒行為をのぞいて当たり前なのでやらない人間は後ろから蹴っていいです。逆にそれ以外では割と大きく振舞っていきましょう。旅の恥はかき捨てというしね。

リクライニングシートは倒していいでしょう。許可を取るかは人間に飢えているかでどうぞ。じわじわ倒して最適な箇所を探すのが一番楽です。

窓側の席は窓をまくらにできるので寝やすいです。廊下側は外に出るとき楽なので気軽です。窓側の人は「あ、すいません」てやるのが嫌という人がいるようですが、互いに理解していることなので強気に行きましょう。突っかかってくる人はただのアホです。相手にしないように。あと、最低限相手の荷物を踏まないように。廊下側の人は、窓側の人よりもリクライニングを倒すことで、窓側と同じ恩恵を得ることができます。窓側の人が限界まで倒していたら諦めましょう。

持ち込むと(あると)便利なアイテムシリーズですが、特に課金していないのでわかりません。ブランケットはコートで代用しましょう。まくらを買うといいです。コの字型をしたものは窓にもたれかかるのと同じ恩恵も同時に得られて便利でした。耳栓はあまり実感ありませんでしたが、遮音効果は確かに高いので、騒音がきになる人には有ってもいい。アイマスクは完全に視界を暗くできるため、安眠のためには持った方がいいかもしれません。暗闇スマホ妖怪対策にもなります。

寝方ですが、仰向けに寝れる人はまくらさえあれば十分です。横向きに寝たいのなら、コの字まくらを立てて、横向きの頭を抑えるか、窓との間に挟んで底上げしましょう。そうせずに窓に首をもたげた場合かなり危険です。

休憩

車内で邪魔だった人間を抹消するチャンス体を伸ばして水分を補給するチャンス。

SAとかにあるあつーいお茶はドライバー向けなので飲んだら目が覚めます。私はこれでスッキリ寝るタイプですが、目がさえるかもしれないので水を飲みましょう。

寝るときの体制を間違えると首を痛めるので、ここで十分に伸ばして体制をリセットしましょう。

着いてから

多分東京駅とかに放り出されるでしょう。当日に用があるなら、その時間まで延々と暇です。暇を潰そうにも大体の店は10時開店で中途半端です。

仕方がないので、マクドナルドとかの比較的まともに座れるタイプの店に長居することになります。吉野家も朝やっていますけど見るからにダメそうですね。

具体例は挙げたので、選ぶ基準だけでも。

  1. (長時間)座れる
  2. 遠くない
  3. 朝食が取れる
  4. 電源がある

これだけ満たしていれば時間を潰すには十分だと思います。
「東京 電源カフェ」で調べればある程度の避難所候補が見つかります。

あるは電源は諦めて公園でぶらぶらするのもいいでしょう。

まとめ

命で値段を買う方法ご理解いただけたでしょうか。こんなクソ面倒くさい事と思った方には新幹線がオススメです。貧乏人にはそれなりの振る舞いがあるように、環境に合わせて生きるサバイバル術を身につけていきましょう。

知って得しないmacのコマンドたち

この記事はOUCCアドベントカレンダー2014 6日目です。

さて皆様、今あなたの手元には銀色に光るMacBookがあることかと思います。

一部の方はMacportsとかHomebrewとEmacsさえあれば他はいらないというOSSな方々もいると聞きます。しかし、いくらBSDベースとはいえ、それだけでは使い勝手が不足するはずです。

ということで便利如何にかかわらず、適当に思い出したコマンドを紹介します。またの名を自分用のメモともいう。

CpMac, MvMac

のっけから相当事情がない限り使わないコマンドがきました。基本的にはcpとmvコマンドと同じコマンドです。ただしフォークを保存します。

フォークというものに馴染みがないと思います。それもそのはず、Mac OSと呼ばれていたころまでに存在していた概念だったからです。

私こそ世代ではないので正確な説明には自信がありませんが、昔のMacではファイルは「データそのもの」と幾つかの「メタデータ」で一つでした。例えばアイコンはファイルの内容としてのデータではないですが、ファイルの情報としてのデータではあるのでファイルに与えられているべきです。このようなデータ以外のファイルの情報をデータと合わせてひとまとめに扱う概念がフォークです。フォークの概念下ではデータはデータフォークの中身のことで、アイコンはリソースフォークの一種となります。ちょうど先の別れた一本のフォークの先端に名前と意味を与える感じですね。

さて、このリソースフォークというもの、予想通りというかなんというかunix的コマンドでは認識されない場合が多く、普通に操作するだけでは消えたりしてしまう場合があるわけです。例えばlsはフォントファイル(当時はリソースフォークのデータだったらしい)は0バイトと言ってきます。ありえませんね。

となれば当然mvとかで動かしてもリソースフォークが吹き飛んで壊れるだけなので、なんとかしなければなりません。一例はAppleDoubleというデータフォークとそれ以外を格納するそれぞれ別のファイルで一組とする表現方法にして、両方にコマンドを適用してやれば良いとなります。もう一つは専用の改造を施したコマンドにすればリソースフォークも考慮してくれるわけです。

使用感はオプションが使えないmv,cpです。

Rez,DeRez

いまどきだと完全に使い道を見出せないコマンド。リソースフォークにコンパイルするためのコンパイラ

使い方はこの辺に詳しい。

[Mac OS X] HFS Plus:リソースフォーク管理 - Life with IT

どこにデータが入っているのかわからない.textClipplingファイル(文字を選択してデスクトップにD&Dで作成)とかの情報を取り出せる。

leaks, heap

本当にmacにしかないのか疑わしいコマンド。正確にはdeveloper Toolsに付いてくる。

leaks [pid]とやるとプロセスのメモリリークをリストアップしてくれる優れもの。
leaks(1) Mac OS X Manual Page

heapはmallocしたメモリを一覧にする便利なもの。
heap(1) Mac OS X Manual Page

GUIツールのInstrumentsが利用してるのかなという感じのするコマンド。

airport

非常にわかりづらい位置にあるコマンド。正式名称を "/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport" という。

現在のマシンのwifiとかについての設定をしたり情報を表示したりするツール。飛んでいる無線の情報を見たいならairport -sとやる。無線強度も見れて便利。

security

本当に使わなさそうなコマンドばかり出てくるのに飽きてきた頃かもしれませんが、これも利用法が怪しいです。キーチェーンをコマンドラインから操作するコマンド。アプリケーション開発の際には依存してみてもいいかもしれません。

キーチェーンはご存知の通り、ブラウザとかwifiとかがパスワードを覚えておくツールです。実際は証明書の管理とか秘密鍵とかも扱うので適当に扱うのは止めましょう。

securityではキーチェーンの作成、ロックから鍵の検索までできます。

security(1) Mac OS X Manual Page

便利な使い方として、find-internet-passwordコマンドを使いましょう。これさえあればアプリは覚えていて自分は忘れたパスワードを取り出すことができます。

$ security find-internet-password -a "account_name" -w
*****

ダイアログが出てくるのがウザいだけですね。

scutil

ネットワークの設定が環境設定よりは細かく閲覧できるコマンド。説明書くの疲れた。

open

知ってたらfile程度に使えるコマンド。finderのダブルクリックと同じ挙動ができます。MacネイティブGUIアプリでファイルを開きたいときとかに使える。-aオプションで開きたいファイルが指定できる。

いわゆるMac上で開けることがわかっているファイルならとにかくopenで開けるので大雑把に「ファイルを開く」必要があるときにオススメ。

[追記]調べてみたら色々面白い(使うかは別の)オプションがあった。-h keywordでヘッダーファイル名かヘッダーファイル内を検索し、マッチするファイルを開くらしい。”open -h NSView”みたいな。あとは-nを使えば、すでに起動しているアプリであろうと新しく起動することができる。わざわざコピーを作らなくても"open -na YoruFukurou"で無限に夜フクロウが起動できる。

say


まとめ

散発的な記事になってしまいましたが、少しは役にた(たなか)ったと思います。GUIオンリーの世界から来た割には充実しているのではないでしょうか。

さて、OUCCではMac大好きっ子も募集しています

Mac OS Xの環境設定を反映するシェルコマンドを少し導入しやすくした

前に書いたこれ

Macのシステム環境設定をコマンドラインの環境設定に反映する奴 - isEOL(@Angelworm_)
が明らかに他人に使わせる感じじゃなかったので整理してgithubのプロジェクトにした。

angelworm/scwrap · GitHub

これ何だっけ

そろそろ死語になりつつあるノマドワーカーとかだと分かるのかもしれないけど、手持ちのMBA/MBPとかを持ち運ぶとプロキシの設定とかを毎回変更する必要が出て面倒臭い。だったら「ネットワーク環境」にいくつか登録して覚えさせてやりゃーいーじゃんといえばそうなんだけど、wgetとかが設定を読んでくれなくて困る。

そこでコマンドラインツールでもシステムの「ネットワーク環境」を読んでくれるようにするツールが必要になった戸言う成り行き。

使い方は

$ scwrap wget ftp://ftp.example.org/hoge.zip

みたいな感じ。

scwrap envとかやると環境変数がいい感じに変わっていることがわかると思う。

Tumblrのリブログの関係を可視化する奴

http://angel-glass.appspot.com/


昔書いたのを見せたらに公開するよう脅されたので公開した。

what's this

まずTumblrとはマイクロブログサービスとか言われるサービスである。要するにTwitter。日本人はRTしかしないやつだと思っていただければ。最近ではjktキー(前次リブログ)を押す為だけの第三の腕が生えた人や、脳がTumblrに接続された新人類も登場していると言われるほどの人気サービス。

さて、このTumblrの特徴として、リブログ(Twitterのリツイート)がかなり大きな要素を占めている点がある。その結果、投稿者よりもその内容の方が重視される風潮が展開されてきた。コンテンツ重視の風潮は、余計ななれ合いはコンテンツを汚すと考えている人に取っては非常にありがたい仕組みなのだが、出会いが無いため世界が閉じやすいのも欠点だと(私に)言われている。

そこで、コンテンツのリブログ元のリブログ元の…をたどる事により、自分と趣味の近い人間(あるいは遠い人間)を探し出そうという試みを行ったのがこのサービスだ。

は?

  1. 左上の欄にblog名を入れる。http://last-cat.tumblr.com/の場合はlast-catと入れる。
  2. 数件のpostが取得される
  3. 気に入ったpostを選ぶ
  4. グラフが出る

で?

よきTumblrライフを。(ネタ切れ)

Tumblrのリブログの関係を可視化する奴

http://angel-glass.appspot.com/


昔書いたのを見せたらに公開するよう脅されたので公開した。

what's this

まずTumblrとはマイクロブログサービスとか言われるサービスである。要するにTwitter。日本人はRTしかしないやつだと思っていただければ。最近ではjktキー(前次リブログ)を押す為だけの第三の腕が生えた人や、脳がTumblrに接続された新人類も登場していると言われるほどの人気サービス。

さて、このTumblrの特徴として、リブログ(Twitterのリツイート)がかなり大きな要素を占めている点がある。その結果、投稿者よりもその内容の方が重視される風潮が展開されてきた。コンテンツ重視の風潮は、余計ななれ合いはコンテンツを汚すと考えている人に取っては非常にありがたい仕組みなのだが、出会いが無いため世界が閉じやすいのも欠点だと(私に)言われている。

そこで、コンテンツのリブログ元のリブログ元の…をたどる事により、自分と趣味の近い人間(あるいは遠い人間)を探し出そうという試みを行ったのがこのサービスだ。

は?

  1. 左上の欄にblog名を入れる。http://last-cat.tumblr.com/の場合はlast-catと入れる。
  2. 数件のpostが取得される
  3. 気に入ったpostを選ぶ
  4. グラフが出る

で?

よきTumblrライフを。(ネタ切れ)