覚書

日々学んだことをつらつらと

SourceTreeの外部DiffでMacVimを使う話

SourceTreeの外部diffでMacVimを使う時に、いくつか問題が発生したのでメモ

発生した問題

①SourceTreeから渡されるパスが"/"が2つ連続していてMacVimがそのパスを開けない ②diffツールにmvimdiffを使うと、内容が表示されない。

原因

①SourceTreeの不具合?わからん。。。。
②mvimdiffはプロセスをwaitしないモードで起動する様子
        ↓
 mvimdiffをwaitしないので、制御が親プロセスに即戻る
        ↓
 制御が戻ると渡されるファイルは消える(一時ファイルの様子)
        ↓
 Vimで開くときにはもうファイルが消えている

解決策

SourceTreeから直接mvimdiffを呼ぶのではなく、シェルスクリプトを間に噛ませた。

#!/bin/sh
LOCAL_PATH=`echo $1 | sed -e 's/\/\//\//g'`
REMOTE_PATH=`echo $2 | sed -e 's/\/\//\//g'`
/Applications/MacVim.app/Contents/MacOS/Vim -g -f -d $LOCAL_PATH -d $REMOTE_PATH

①に対しては、"//"を"/"にsed
②に対しては、Vimの引数を調べて、子プロオプション + diff モードで起動
するようにして対策した。

SourceTreeの方は以下のように設定する f:id:gihara2624:20151226213808p:plain


Vimの引数調べるの面倒だった。。。

brew cask が出来なくて困った話

brew cask でvirtualboxvagrantを入れようとしたら、caskが上手く動かずエラーになった。
大体以下の様な形

$ brew cask list Error: Cask 'xxxxx' definition is invalid: Bad header line: parse failed

解決策としては

brew upgrade

を実行することだった。brew updateだけでは駄目な様子。一緒にやってくれたらいいのに…

git checkout で error が発生する理由が解らなかった話

checkoutで、以下のエラーが出力された。

$ git checkout hoge
error: Your local changes to the following files would be overwritten by checkout:
foo/bar
Please, commit your changes or stash them before you can switch branches.
Aborting

status を見ても、何も変更が無い。

$ git status
On branch hoge
Your branch is up-to-date with 'origin/hoge'.
nothing to commit, working directory clean

謎…。意味分からん。。。と思っていたら --skip-worktreeをしていたことを忘れていた。

--skip-worktreeを解除して、無事checkout出来た。めでたしめでたし。

メモ

  • --skip-worktree状態のファイルを探す方法

    git ls-files -v | grep ^S

  • --assume-unchanged状態のファイルを探す方法

    git ls-files -v | grep "^[a-z]"

rubyで初めて遊んでみた

rubyで初めて遊んでみた。

  • Javaのリスト = rubyの配列
  • ハッシュの初期化で使う => 演算子はわかり辛い気が・・・
  • ↑やはりコロン使う方式も途中で入ったみたい
  • rubyperlLispの影響を受けてると聞いたけど、perlと似てるところあるなぁ・・・
  • 整数と文字列は指定するのか。perlは指定なしだったのに・・・
  • ++ でインクリメントされないのね・・・
  • 動的型付け言語だけど、微妙に型を意識させようとしている?
  • do end と {} の使い分けがわからん

触ってみた感触としては、perlよりもかなり使い易い感じ。
ただ、構文が言語の進化によって変わっている??google先生の結果が違うことがあった。
あと、to_i などの存在理由が謎。動的言語では?

あと、GoとJavascript、python3を遊びで触る予定。

perlで初めて遊んでみた。

perlで初めて遊んでみた。

以下、思ったことメモ。

  • 変数の前につける記号(シジル)で意味が変わるとかCの変数みたい
  • Javaのリスト = perlの配列
  • 比較演算子にeq等がある。シェルスクリプトみたい
  • ハッシュの初期化で使う => 演算子はわかり辛い気が・・・
  • if文の後置は面白い
  • =~ で始まるsed正規表現マッチおもろい
  • $_ とかは微妙。わかり辛い
  • dieはわかるけどevalは命名はよくわからない
  • ファイルの扱いはbashと比べてかなり便利
  • unlessはいい。わかりやすい。他の言語にも入れてほしい。
  • chomp()はそんなに使うか・・・?
  • Subしかないのは驚き。functionあるといいのに。

初めて触ったけど、やはり古い言語だということを再認識。 perl6も触ってみたい。

ネットワークスペシャリスト(平成27年秋)を受けてきた

10/18に行われたネットワークスペシャリストを受けてきた。

合格してるかは微妙。午前2はギリギリ突破していた。

使った参考書

使った参考書は2つ

www.amazon.co.jp

過去問の解説が丁寧に書いてあり、非常に参考になった。
ただ、平成26年度の解説しかない。


Amazon.co.jp: ポケットスタディ ネットワークスペシャリスト [第2版] (情報処理技術者試験): 村山 直紀: 本

最後の方の「速効サプリ」はよかった。このおかげで何問か答えられた。
ただ、最初から中盤にかけての技術解説は初心者向けではなかった。。。難しかった 。
知っている人だったら復習に良さそう。

反省点

一回ぐらいはルータにつないでVLANの一つでも作ればよかった・・・
落ちてても、合格してても、一回はDNSサーバーやプロキシサーバーを構築したい (仮想でもいいから)

来春は?

データベーススペシャリスト
と言ってもDBは苦手意識が・・・

20151218追記 結果は不合格

午後2が51点でアウト 来年はルーターとか買って実際にやってみよう。

Windows10でCapsLockにCtrlを割り当て

windows10でも以下の記事を参考にして、CapsLockをCtrlに割り当てることが出来た。

blog.ruedap.com

2016.08.14 追記

anniversary update 直後に効かなくなったが、再度設定を入れて再起動したら効くようになった。