#1: 開発環境の set up などなど

ちょっとあらためて学習してみようと思い、もろもろ整えていくことにします。 Macbook の user を新たに作ってまっさらな状態から設定していくことにしました。

今日やったこと(Done)

地味に必要な Utilitiy Apps

  • Quicksilver(ランチャ)
  • Spectacle(ウィンドウ配置)
  • Karabinar-Elements(キーリマッパー)
  • Clipy(クリップボードマネージャ)

このあたりは慣れてしまうと、これらがない環境ではどうにもやりにくくて困ってしまいますね。あと IME のキー設定などもそう。

Quicksilver

  • Start at login: On
  • Show icon in dock: Off
  • Show icon in menu bar: On
  • Shortcut: Cmd-Space
    • Spotlight の shortcut を変更しておく
  • When activated, switch keyboard to "U.S."
  • Reset search after: Off
  • Select Interface: Bezel

Spectacle

  • 上下左右、四隅 Opt-1 ~ Opt-8
  • 最大化 Opt-m
  • 拡大縮小 Shift-Opt-left/right
  • 別ディスプレイへ移動 Shift-Opt-up/down

Karabinar

Complex modifications -> Add rule -> Import more rules from internet でブラウザが開くので、

  • Emulation Modes
  • International (Language Specific)
    • For Japanese (日本語環境向けの設定)

を Import する。

  • Emacs key bindings \[control+keys\]
  • コマンドキーを単体で押したときに、英数・かなキーを送信する。(左コマンドキーは英数、右コマンドキーはかな)

を有効にする。

Google IME

  • スペースは常に半角にする
  • 記号類も常に半角にする
  • 括弧と?!は全角にする

Homebrew

今まで使ったことがないので今回初めてのインストール。 今年に入ってから bash でインストールできるようになったんでしたよね。

インストールコマンドは以下の通り。

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
$ which brew
/usr/local/bin/brew

ひとまず fish をインストールしました。プロとしてやっていくのであれば bash でも不自由なく操作できるようになる必要があるのでしょうが、とりあえず必要に迫られるまでは newbie にもやさしい fish でやっていきましょう。

$ brew install fish
$ fish_config

コマンド fish_config を実行するとブラウザが立ち上がり、color theme や prompt の設定をブラウザ上で行うことができます。

Vivaldi

わかったこと(Fact)

Vivaldi

  • ブラウザ Vivaldi は ad block 機能が標準でついている
  • vivaldi.net のメールアカウント、以前はすぐ取得できたが今は SMS 認証が必要になった
  • Vivaldi もブラウザの設定等を sync する機能がある
  • sync するには vivaldi.net のアカウントを作る必要がある
  • vivaldi.net のアカウントは 2 段階あって、sync 機能を利用するだけなら id と pass を入力するだけで OK、メールも利用するなら SMS 認証が必要

その他

『Go ならわかるシステムプログラミング』の「はじめに」から、少し長いけれど引用します。

 「土台となる技術を身につける」を、もう少しちゃんと言い換えれば、「今の関心領域よりも下のレイヤーの知識も身につけよう」ということになります。みなさんが使っている言語の下のレイヤーは何でしょうか? RubyPythonPHP など、多くのスクリプト言語は C 言語で書かれています。Node.js は C++ ですね。ということは、これらの言語については C 言語か C++ が下のレイヤーといえるでしょう。

 それでは、C 言語か C++ のさらに下のレイヤーは何でしょうか? よく言われるのはアセンブリ言語ですが、実はアセンブリというのは C 言語や C++ より下のレイヤーのうちの半分でしかありません。残りの半分は、オペレーティングシステム(OS)です。つまり、プログラマーとして土台となる技術を身につけようと思ったら、OS の機能がプログラミング言語でどう使われるかも知っているべきだということです。

アセンブリ言語というのは言葉として聞いたことはありますが、どういうものなのかはよくわかっていません。私たちがしっているプログラミング言語機械語(0 と 1 の羅列?)の中間にあたるものなのかな、多分。OS の機能がプログラミング言語でどう使われるか、全く考えたことがないですね。この書籍は Go を題材にしてそういった低レイヤーのことを丁寧に説明しているので初心者の私でも学んでいけそうです。

で、アセンブリとか OS とかよりもさらに下のレイヤーを、となると、いわゆる Computer Science の領域になるのですかね。パターソンとヘネシーがどうのこうのみたいな。さすがにそこまで下りていくのはだいぶ先になりそうですが、、、

次にやること(Next)

  • [ ] Progate アカウント作成して見てみる
  • [ ] N 予備校のアカウント作成して見てみる(無料部分もあったような?)
  • [ ] fish をログインシェルに設定する