読者です 読者をやめる 読者になる 読者になる

Gitでしていた勘違い

Git Advent Calendar 2015 6日目のエントリーです。 昨日は oh-sky さんの aliasにできないならsub-commandにすれば良い でした


みなさんはgitで操作をした後、内部のグラフがどうなっているかを意識していますか? 自分はGitの中身を勉強するまでは漠然としたイメージしかもっておらず、なんとなく操作して失敗するたびに泣きたい気持ちになっていました

このエントリでは簡単な例を上げて以前自分が勘違いしていたことと間違いに気付いてからの話をしたいと思います

さて問題です

      E - F(topic)
     /
A - B - C - D(master)

(A〜FはSHA-1ハッシュ値、カッコで囲まれているのはブランチ名ということにしてください)

たとえば上のようなグラフがあったとき以下のコマンドを実行したらどうなるでしょうか

  • git rebase master topic
  • git branch -D topic

git rebase master topic

自分が思っていたのは以下のようなグラフでした (man git-rebaseをしてもこういう例になってる)

              E' - F'(topic)
             /
A - B - C - D(master)

しかし正確には以下のようなグラフになります

      E - F
     /
A - B - C - D(master)
             \
              E' - F'(topic)

topicブランチは移動しているものの元のE - Fのコミットは消えずに残っています もちろん、git checkout topicとしてもFは参照できませんが、SHA-1がわかれば rebase 前のコミットを参照できます

git branch -D topic

deleteだから当然以下のようにbranchにあるコミット全てが消えると思っていました

A - B - C - D(master)

正確にはこうなります

      E - F
     /
A - B - C - D(master)

こちらでもFはSHA-1さえわかれば参照することが可能です

自分は何を勘違いしていたのか

この例に限らず Gitにはコミットを消してしまうようなコマンドがない ということです (消せるのはbranchのみ)

これに気付いたときは結構な衝撃をうけました
削除することができないということは、何かを失敗しても 必ず元に戻すことが可能 ということだからです
それからは何をするにもビクビクしながらgitを使うようなことはなくなりました


自分がこのようなことに気付いたのはGitの中身を勉強しようと 実践 Git - 低レベルに知る Git を見て、その後 入門Git を読み直してからです
ぜひみなさんもGitの中身を見て今まで誤解していたことや、ぼんやりとしたイメージしか持てなかったことを改めてはいかがでしょうか


半年の糖質制限生活の経過報告的なにか

糖質制限 Advent Calendar 2015 - Adventar 1日目のエントリーです

糖質制限を始めたきっかけ

今年の4月に95.9kgという数値を記録してしまい、"このまま0.1tになってしまうのはマズイ!!"というのをきっかけに興味のあった糖質制限ダイエットを始めた

やったこと

食事

  • 米/パン/麺類は食べない
    • 月に2、3食ぐらいは食べる機会はあるが、その場合も極力少なめに

間食

主に以下のものを選んで食べる

  • アーモンド
  • デザートチーズ
  • コンビニのフライドチキン系
  • 海藻系のおつまみ

ジュースは飲まないし、上記以外のお菓子類はほぼ食べない

お酒

飲まないと死ぬので普通に飲む ただ以下のようなことは考えて飲んでる

  • 基本はホッピー
  • ビールはそれを目的にしていないとき以外は飲まないように
  • 飲む時はいつも以上に糖質のある食べ物に気をつける

半年やった結果

体重

体重は 95.9kg から 78.2kg に(-17.7kg)

体脂肪率は33.4% から 22.1% に(-11.3%)
ちなみに体脂肪量は 32.0kg から 17.3kgに(-14.7kg)

BMIは 30.4 から 24.7 に (-5.7)

さすがに元が酷すぎたというのはあるけど、半年の成果としては十分な効果が出たと思う

つらいこと

  • 食費が上がる
  • 店選びが大変
    • 定食しかないようなところが全滅

周りに糖質制限をしてる人は多いけど、自分ぐらい効果がはっきり出たという人には会えてないのでよっぽど体質が合ったのかなとは思う
これからやってみる人は1、2ヶ月やってみて様子見るといいのではないかな

とりあえず自分は目標値(75kg)に行くまでは継続していく予定
その後も今のとこ止める理由はないかなと

今回、体重の経過を見るのに Withings の体重計を使っていたけど、毎日の計測結果を自動アップロードしてグラフで見せてくれるのは本当便利なのでオススメ
(上のグラフのスクショはWithingsのiOSアプリのやつ)
数値が減ってくのがグラフで見えると続けてくモチベーションがAGEAGEでした


追記(15/12/01 12:30)

この期間に並行して運動してたのか?みたいな話が抜けていました

9月にツールド東北という自転車のイベントで170kmを走るのに向けて、8月末あたりから2週間ぐらいは毎日1時間程度自転車をこいでいました
それ以外の期間では週末に月1回も行かないぐらいのペースで自転車乗ってた程度の運動量です


明日は糖質警察 🚓 こと @a_suenami さんです

YAPC::Asia Tokyo 2015に行ってきた

前夜祭から行きたかったけど都合がつかなかったので1日目からの参加 カッとなってエクストリームYAPC で意識を高めた結果、スタッフより早く国際展示場についてた

この2日間は脳内がお祭りになってて具体的に思い出すのが難しいのでセッション中のツイートを貼ってお茶を濁したレポートにする

Merry Christmas!

Perlの話を聞きに来たらトールキンの話(ホビット物語と指輪物語)だった。 同時通訳の方がめちゃくちゃすごくてPerlトールキンPerlみたいに話がころころ入れ替わっても普通に対応してた。マジやばい。

Perl 6は2015年のクリスマスとのこと。もちろんRubyも出る予定だし今年のクリスマスは盛り上がりそうだ

世界展開する大規模ウェブサービスのデプロイを支える技術

Miiverseのデプロイの話。マルチリージョンでつらいって感じだった。

Gitリポジトリを分散させるためにrsyncしてる(してた?)って話しだったけど、なんでそういう手段にしたのかよくわからなかった。 今ならAWS CodeCommitとかCodeDeploy活用して楽にはできそう。

Website Architecture for HTTP/2 Era

HTTP/2とh2oのお話 HTTP/2が求められた背景と実際どのような仕組みで高速化が行われてるかがわかりやすかった

今はバンド幅よりレイテンシのほうがページロードに影響するとのこと ページロードを速くするには、光を速くするかレイテンシに負けないプロトコルが必要(それがHTTP/2)

セキュリティ周りの話に移った後の「きっとnginxも追いかけてくる」→「H2Oは更に先を⽬指します」ってスライドがめっちゃくちゃかっこよかった。

Electron: Building desktop apps with web technologies

Atomとかで使われているElectronの話。入門ぽかった

温泉猿の扱い酷い

esa.io - 趣味から育てたWebサービスで生きていく

(( ⁰⊖⁰)/)

単に楽しいじゃなくて「ユーザーの幸せになること」を楽しんでこなせるようにしてるってのがすごいよかった あとTLを見てた感じ、あんまesaを知らない人も多いのかな?って感じだった

ISUCONの勝ち方

ISUCON優勝チームはどういう感じに作業をしていたか?とか基本的に抑えるべきポイントなど。 去年参加したときは準備が足りなかったので、今年はちゃんと準備して臨みたい。 (でも発表された日程が予定とだだ被りしてた…)

ISUCON勝つには人間を辞めよう

我々はどのように冗長化を失敗したのか

生のkenjiskywalkerさんは初めてだった(まさかその後飲みの席で同席させていただくことになるとは…) 平常時でも冗長構成のActive/Standbyを切り替えるというのは完全にAgree

Webサービスの運用はほんと地獄だぜ

Adventures in Refactoring

GitHubで行われたリファクタリングの話 リファクタリングの目的やどのようにしてリファクタリングの成果を計測するかなど 実際に行われたなかでのノウハウだったりしたのでとても為になった。個人的にはこれがベストトーク。

よくあるリファクタリングしすぎ問題はこれで説明ができそう

Information technology to support the Santa Claus

チャリティーサンタというボランティア活動でのITエンジニアとしての関わり方について 紹介ビデオがとてもよくてなんかほっこりしてた プロボノって言葉があるらしく、ちょっと自分も何か活動してみようかとか考えさせられた

レンサバでの運用は大変そう

Profiling & Optimizing in Go

Goはまだチュートリアルぐらいしかやってないんだけど、プロファイリングが大変と聞いたので今後の参考に聞きに来た ライブコーディング&同時通訳とかいうすごいセッションだった GitHubにコードも上がっているので自分でも試してみようと思う

すごすぎてツイート殆ど残ってないが前半に出てきた雑コラが酷かった

その他

Rebuild.fmのmiyagawaさんにご挨拶できたり、YAPC後の飲み会でインフラ界隈のすごい人とご一緒できたり楽しい2日間だった

vagrant-itamae 0.1.0

リリースしました

変更点は

  • sudo を使うかを設定できるようになりました(@niku)
  • node attributesをYAMLでも設定できるようになりました(@Tomohiro)

https://github.com/chiastolite/vagrant-itamae
https://rubygems.org/gems/vagrant-itamae

2点ともPRいただいた内容です
ありがとうございました!!

2015年にすること

習慣付け

とにかくコードを書く

昨年転職前まで勉強はしてるもののコードはあまり書いていなかったが、転職後やはりコードを書かないとわかんないことがいっぱいあるなと思った。というわけでもっとコードを書く癖をつけなくちゃいけない。
とりあえずは1月毎日GitHubに草を生やせられるように頑張ってみる。
あとは作ろう作ろうと思ってるサイトに着手していきたい。

ブログ書く

書きます。
最低でも2週に1回ぐらいの更新をしたい。

🍣関連

去年末に寿司好きなRubyistをあつめておいしい寿司を食べようというSushi.rbというも のを内々でやってみた。寿司はいつでも食べたいし、勉強会とか違ってその場で集ったメンバーで興味あることなどをわいわいやるのは楽しかったので、これを月一ぐらいのペースでやってみたいと思ってる。興味がある人は声をかけて欲しい。

あと、ようやく1年待ちした寿司に行ける。それでもあと半年あるが…

カープ関連

黒田が帰ってきた。こんなに嬉しいことはない…
嬉しい年なので今年は現地観戦にこだわりたい。

  1. キャンプで黒田を現地で見る
  2. 黒田の復帰初戦を現地で見る
  3. 優勝を現地で見る

ユニフォームはたぶん黒田のプロユニを買う。

はてブロに引っ越した(仮)

GitHub Pages(http://chiastolite.github.io/) でやっていたけど、Octopressの運用がめんどくさくなったので2015年ははてブロでやってみようと思う
どうせあんまり記事書かないと思うけど…