Gitコマンドチートシート(merge)
リモートリポジトリにはマージ後にコミットしないとマージの反映がなされないことに注意!!
merge手順
- マージ先のブランチにチェックアウト
- マージ元のブランチを指定してマージ
【コマンド】 git checkout <マージ先ブランチ名> git merge <マージ元ブランチ名>
【実行例】 $ git checkout master $ git merge --no-ff dev
実行結果
トピックブランチdevのコミット履歴が統合ブランチmasterにマージされGitHubのネットワーク上では台形が表示されている。
mergeコミットの有無
mergeコマンド実行時のオプションによってmergeコミットの有無が異なる。fast-forwardの概念の理解が必須。
Ubuntu16.04でvncserverの利用
前提条件は以下と同じ。 okn-yu.hatenablog.com
VNCサーバの設定
vnc4serverのインストール
sudo apt-get install vnc4server
~/.vnc/xstartupを以下のように編集
#!/bin/sh def export XKL_XMODMAP_DISABLE=1 unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS gnome-panel & gnome-settings-daemon & metacity & nautilus & gnome-terminal &
vncサーバの起動
vnc4server
起動時に自動起動したい場合
下のサイトのcrontabを利用する方法を用いて、/etc/rc.localにvncserverコマンドを記載すればよい。
というか/etc/rc.localは単体では動かなくなったのか。こういう細かいバージョンによる環境差分でいつも引っかかってしまう。
インスタンス変数・カプセル化・グローバル変数
インスタンス変数とカプセル化
- グローバル変数は便利だが多用するとモジュール間の密結合化によりバグの温床となり、またスコープが広すぎるためデバッグが困難となる。
- クラス内のどこからでもアクセスできるインスタンス変数は疑似グローバル変数と同じ振る舞いをし、カプセル化がされていればスコープは制限される。
つまり適切にカプセル化されたインスタンス変数は、グローバル変数のメリットとモジュールの疎結合化という本来矛盾する要素の両立を実現する。
では何をインスタンス変数にすべきか
一時的なデータをインスタンス変数に入れるとクラスの利用者が不便になるだけでなく、そのクラスに手を加えるときもインスタンス変数が「クラス内のグローバル変数」になってしまい、クラスが大きくなるにつれて保守性がどんどん低下します。 こういった一時的なデータはメソッドの引数と戻り値、またはローカル変数として受け渡す必要があります。
基本的にはクラス内でもメソッドには引数と戻り値でやりとりするという原則で一貫すべきなのか!
参考
解像度
ピクセル・画素数・解像度の違いがよくわかっていませんでした...。
ピクセル
- 画像をデジタルデータで表すためには、画像を細かく分割して、その分割したものを1つの色で表示す。この分割した領域(面積)が画素。
- 別の言い方ではコンピュータで画像を扱うときの色情報 の最小単位。
- さらに別の言い方では画像の出力装置が表現できる最小単位。
- 例えばディスプレイにおいて320×240ピクセルの画像を100%表示すれば320×240ドット。
画素数
解像度
- 画素数の密度を表す数値。解像度が高いほど細やかで切れな表示が可能。解像度が低いとモザイクのような表示となる。主に印刷やカメラで用いられる。
- 単位はdpi(dot per inch)。
- 同じ画素数で解像度を上げると画像サイズが小さくなる。
画面解像度
- 慣用的にコンピュータ等のディスプレイに表示される総画素数 (こちらは同じ解像度でも総画素数)。
- 解像度を上げてもモニターの表示領域は変わらないため解像度の向上=画素数の向上となる。
- 同一サイズのモニターでは解像度が高いほど同一画像のサイズは小さい。
画像処理
- 同一の画像を縮小した後に最初と同じ大きさに拡大すると、原則的に間引いた画素数は戻らないので画像がぼやける。
- 画像の縮小はできるが解像度を保ったまま画像の拡大はできない。
- 印刷する場合は同一画像でも印刷物の解像度によりサイズが異なる。