おもちゃ箱

頭の片隅に置いていて欲しい

帰属意識の低迷

いつの間にか3年目を迎えました。

今の現場に来て、早1年が過ぎました。 チームメンバの離任やら離職やらで、1年足らずしか居ないのにメンバの中ではちょっぴり古参ポジションにおります。

そんな中で先日、自社の上司よりお叱りを受けました。

端的に言えば、 新入社員の日報を読んでますか?気にかけてますか? 年の近い先輩に何かしらフィードバックをもらった方が、しっくり来るんじゃないか。 というような内容でした。

今回、私は今年の東京採用の内定者研修を3回受け持ったので多少なりとも面識はあります。でも、内定者研修は限られた期間・人員だったし、入社式も任意参加だったので、現場に出て働いてる人にとってはものすごく関わりがないんですね。自社の新入社員にも関わらず。

もっと関心を持て、と言うのも難しい話です。

興味がない訳じゃないけど、毎日社内用SNSに時間を割けるはずもなく、同じプロジェクトに入ってくる他社のメンバの新卒さんとの方が過ごす時間が長いんです。面と向かって話せる人に意識が向くのは、自然の流れな気がします。

同じ現場を10年以上続けてるリーダーさんもいますが、私は1年経った今、自社に所属している意味があるのか、と疑問に思っています。 自社の中で何かしたい、と明確な何かがある訳ではありません。でも、客先常駐で働き続けるのであれば、それは他社のSESでも同じ気がします。

私は何がしたいのか。

悶々と考えているばかりで前に進めずにいます。

サイコロはいくらでも振り直せると聞いたけど、 振り直す先が見えて来ない。

Chocolatey!

Chocolateyをいまいち理解してなくて紹介されてからも使ってなかったけど、
思っていた以上に便利そうでびっくりした。

Chocolateyの使い方


まず、コマンドプロンプトに下記のコマンドを打ち込んでインストールします。
※最新のコマンドはChocolatey Galleryで確認してね※

C:\> @powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin 

インストールされたかを確認する


C:\> chocolatey version

下記のようにバージョン情報が出力されていればインストールできてます。

C:\>chocolatey version


found         : 0.9.8.27
name          : chocolatey
latestCompare : 000000000000.000000000009.000000000008.000000000027
verMessage    : Latest version installed
latest        : 0.9.8.27
foundCompare  : 000000000000.000000000009.000000000008.000000000027

実際にインストールする


今回はSublime Text2をインストールします。

C:\> cinst sublimetext2

インストールに成功していれば下記のような出力がされます。

C:\>cinst sublimetext2
Chocolatey (v0.9.8.27) is installing 'sublimetext2' and dependencies. By install
ing you accept the license for 'sublimetext2' and each dependency you are instal
ling.

sublimetext2 v2.0.2.2221
Downloading sublimetext2 64 bit
  from 'http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2%20x64%20Setup.
exe'
Installing sublimetext2...
sublimetext2 has been installed.
sublimetext2 has finished successfully! The chocolatey gods have answered your r
equest!
Finished installing 'sublimetext2' and dependencies - if errors not shown in con
sole, none detected. Check log for errors if unsure.

コマンド一覧


インストール
C:\>cinst packageName
アンインストール
C:\>cuninst packageName
パッケージのアップデート
C:\>cup packageName

 
個人PCを3月に買って以来Eclipseくらいしか入れてないので
Chocolateyを活用していきたいです。 個人的に甘そうな名前が好きです。

GitでConflictを解消できるようになりました

Gitでマージすることを覚えました(masterへの反映ではない)
pushを終えたブランチにmasterを反映させてコンフリクトが発生した場合はその解消。
多分、あらかじめブランチをmasterとマージすることによってmasterからマージする時にコンフリクトが発生しなくなるのかな。その辺は良く分かってないです。

git merge


Conflictを解消する
git merge --no-ff -
  • git merge --no-ff
    • fast-forwardの関係であっても、必ずマージコミットを作るオプション
    • トピックブランチがあったという情報が残る
      • fast-forwardとは?
      • あるコミットに対してコミット履歴上で直接到達できる別のコミットをマージしようとした場合、Git は単にポインタを前に進めるだけで済ませること
      • マージ対象が分岐しているわけではない

Conflictが発生


Auto-merging sample/hoge.txt
CONFLICT (content): Merge conflict in sample/hoge.txt
Automatic merge failed; fix conflicts and then commit the result.
  • sample/hoge.txtのコンフリクトを解消しないとマージが行われない

sample/hoge.txtを開くと以下のようになっている

<<<<<<< HEAD
abc
def
=======
abc
123
>>>>>>> abcdef....
  • =======より上側がローカルリポジトリ(マージ前の状態)
  • =======より下側がリモートリポジトリ(マージしたい差分)
  • 自分の判断でどちらかを選択する。あるいは両方を組み合わせて最善の状態に編集する
  • 編集し終えたら<<<<<<<や=======も消してから保存する
  • 保存すると自動でgit addされる
git commit -a
  • コミットメッセージは自動で入力されるので終了させる
git push
  • pushしてブランチを公開したらマージ完了
  • お疲れさまでした!

今回の一連の流れ


git merge --no-ff -
git commit -a
git push

便利そうなコマンド


git log でブランチとタグも見る
git log --oneline --decorate
ある変更が含まれているブランチを見つける
git branch --contains hogehoge123(リビジョン番号)

まだ良く分かってないこと

git merge --no-ff origin/master
git merge --no-ff - 
  • origin/masterとか指定したブランチとマージできる(はず)
  • ハイフンの場合は直前に操作していたブランチをマージ(???)

参考にしたページ


【翻訳】あなたの知らないGit Tips

Gitコマンドにまつわるetc.

Gitを使うようになったけどいまいちコマンドが覚えきれない、ページが散在してて探しにくい、などなどの理由により一度まとめてみます。
Eclipseを使うときもなるべくならプラグインよりコマンドの方が良いみたいです。
でも、プラグインは基本的に便利だから手放したくない…葛藤。

主なGitコマンド


クローンを作成する
git clone <remote repos path>
ブランチの切り替え
git checkout master
  • 上記はmasterに対する切り替え

  • masterとは?

    • リポジトリに最初のコミットを行った際に作成されるブランチのこと
    • 常に最新の情報が保たれている
ブランチの作成と新規ブランチへの切り替え
git checkout -b <new-branch>
  • ブランチを作成するときはmasterを最新化(pull)してから行う
追跡ブランチの作成
git checkout -t origin/<branch>
  • モートブランチと直接のつながりを持つローカルブランチのこと
  • git push を実行すると、Git は自動的にプッシュ先のサーバーとブランチを判断する
  • git pull を実行すると、リモートの参照先からすべてのデータを取得し、対応するリモートブランチの内容を自動的にマージする
ブランチの最新化
git pull
  • 現在のブランチの最新化が行われる
指定したブランチの内容を取り込む
git pull origin <remote>
  • 現在のブランチの指定したリモートにおけるコピーをフェッチして、 それを現在のブランチに即時マージする

    • git fetch コマンドを実行し、続いて git merge origin/<current-branch>. コマンドを実行するのと同等
    • pull = fetch + merge
  • フェッチ

    • リモートリポジトリから最新情報をローカルリポジトリに持ってくるコマンド
    • pullのようにファイルが更新されるわけではなく、ローカルリポジトリが更新される
  • マージ
    • ブランチを統合するコマンド
履歴の保存(commit)
git add <path> 
git commit -m "commit message"
  • git add
    • コミットするファイルを追加する
  • -m

    • コミットメッセージを指定してコミットするオプション
  • コミットは小刻みに行うこと

リモートリポジトリにブランチを作成 / ブランチに変更内容を反映
git push <repository> <refspec>
  • repository:remote add コマンドで追加したリポジトリ名やURLを直接指定することが可能
  • refspec:ブランチ名などが指定できる
ブランチの変更をmasterに反映(merge)
git checkout master
git pull
git merge <branch>
git push <repository> <refspec>
  • pushすることで最新のmasterブランチを公開

比較的使うコマンド


ブランチを一時的に保存(stash)
git stash
  • git stash save "message":メッセージを付加することも可能
git pull を引数無しで実行させる(追跡)
git branch --set-upstream-to=origin/<branch> branch_name
  • やむを得ずresetした時などにTracking解除されていたりする

コマンドにおける位置関係


(stash) ─ commit → push → remote
 

参考にしたページ


Pro Git
サルでもわかるGit入門
Git チュートリアルとトレーニング_ Atlassian
git fetchの理解からgit mergeとpullの役割
Git開発フロー #1

Java SE 7 Programmer I 取得

流石にもう逃げられないところまで来てしまったので、 腹を括って受けました。

先週1週間は暇さえあれば問題集問題集問題集…
今までもこのくらいやってたら多分一ヵ月くらい早く取得できただろう。
人間追い詰められないとやらないね。

そんなこんなで正解率80%という可もなく不可もなくな感じでした。
以下、不正解だった項目のリスト。 今後の要復習・再確認箇所ですね。

  • 1次元配列を宣言、初期化、インスタンス化および使用する
  • ArrayListを宣言および使用する
  • breakとcontinueを使用する
  • do/whileループを作成および使用する
  • superとthisを使用してオブジェクトとコンストラクタにアクセスする
  • オーバーロードメソッドを作成する
  • チェックされる例外、RuntimeExceptionsおよびエラーを区別する
  • ループの構造を比較する
  • 他のJavaパッケージをインポートしてコードでアクセスできるようにする
  • 変数のスコープを定義する
  • 多次元配列を宣言、初期化、インスタンス化および使用する
  • 抽象クラスとインタフェースを使用する

お引越し

ずーっとFC2使ってましたが、この度はてなブログにお引越ししました。

とは言え、備忘録になったら良いなあ、程度に

技術的なことを書き留めていく予定です。

 

振り返った時に少しでも成長が実感出来たら嬉しいですね。

昨日の自分を思い出せたらもっと嬉しい。