nesheep5's blog

子持ちWebエンジニアのブログ。プログラミング・仕事効率化・健康・子育て etc...

体重7kg減!完全無欠コーヒー4ヶ月目レビュー

集中力向上を目的に続けてきた完全無欠コーヒーも4ヶ月目に突入。
体の変化をレビューしたいと思います。

以前のレビューはこちら

nesheep5.hatenablog.com

nesheep5.hatenablog.com

4ヶ月続けた体の変化

体重7.0kg / 体脂肪率5.8%減!ダイエット効果がすごい

一番の体の変化は体重でした。

体重:72.2kg → 65.2kg (-7.0kg)
体脂肪率:22.4% → 16.6% (-5.8%)

日によって増減はありますが、ピークtoピークで7.0kgの減量。
MCTオイルの効果で、脂肪を燃やしやすい体に変化したのではないかと思います。
お腹周りの浮き輪がなくなり、体も軽くなりました!

体重

体脂肪率

眠気がなくなり、集中力が増す

1ヶ月目レビューのときも書きましたが、完全無欠コーヒーを飲み始めてから眠気がなくなりました。

  • カフェイン による覚醒作用
  • 朝食置き換えで糖質が減り、血糖値の上昇が緩やかになった

の相乗効果によるものだと思います。 昔は通勤や昼食後に耐え難い眠気に襲われていたのですが、いまでは全く眠くならず時間を効率的に使えるようになりました。

参考:利用している道具&材料

参考までに、利用している道具と材料を紹介します。
より本格的にやってみたくなり、豆から挽く&フレンチプレスの道具を揃えたところ予想以上に満足したので参考にしてみてください。

デロンギ コーン式 コーヒーグラインダー KG364J

今年買ってよかったもの第一位!】というくらいオススメです。
挽きたてのコーヒーは別格に美味しく、衝撃的でした。コーヒーは鮮度が命ということを身をもって知りました。
エスプレッソ用の極細挽き〜フレンチプレス用の粗挽きまで対応できます。
音は電動鉛筆削りくらいのイメージです。

BODUM フレンチプレスコーヒーメーカー

公式レシピでは、コーヒーオイルをより摂取できるフレンチプレスを推奨しています。
ペーパードリップに比べかんたんに美味しいコーヒーが淹れられるので、忙しい朝にうってつけでした。
挽いた豆にお湯を注いで4分待つだけです。味はペーパードリップよりコクが強く出ます。

カリタ ミルクフローサー

しっかりとブレンドすることで、ミセルという体に取り込みやすい状態になるそうです。

カリタ ふわふわミルクフローサー FM-100 #64197
Kalita (カリタ) (2009-03-31)
売り上げランキング: 7,654

グラスフェッドバター

色々調べて、コスパと量がちょうどよいこれを選びました。

MCTオイル

他のを試したことがないのですが、癖がなく飲みやすいです。

MCTオイル(中鎖脂肪酸100%) 250g
プレミアムマーケティング (2016-12-27)
売り上げランキング: 1,487

コーヒー豆

安くて美味しいとの評判を見つけ、加藤珈琲の豆を購入しています。
Qグレードと呼ばれるスペシャルティコーヒーの規格をクリアしており、品質も高いです。

まとめ

4ヶ月続けてみて、体重も想像以上に減り、体調面も良い変化が起こりました。
個人的にはちょっと体重が減りすぎてしまった(筋肉が落ちてしまった)ので、完全無欠コーヒーは続けつつ食事量を運動量を調整するつもりです。
ちょっと費用がかかりますが、生活の質を高めたいという人は試してみる価値があると思います。
興味ある方はぜひ試してみてください!

オートモーティブ事業部に異動しました

2016年3月にDeNAに入社して以来子会社のペイジェントに出向していましたが、
2018年4月よりオートモーティブ事業部へ異動することになりました。
一つの区切りとして今までやってきたこと、これからやることをまとめようと思います。

シェイクハンズ制度とは

本人と異動先の部署の合意さえあれば、人事と現部署の上司の承認なしに異動が可能となる制度です。
2018年8月に立ち上がった、新しい制度です。
今回このシェイクハンズ制度を利用して異動が実現しました。

seleck.cc

この制度がなければ、多分他社に転職していたと思います。
社内異動という選択肢を用意してくれるのは、社員にとっても会社にとってもとても良い制度だと思います。
他にも副業が解禁になったりと、社員が働きやすい環境づくりを積極的に行なってくれる会社です。

ペイジェントでなにをしたのか

前半は基幹システムの大規模リプレースの設計&実装、後半は新規案件の立ち上げにPLとして携わりました。

  • 基幹システムの大規模リプレース
  • 新規案件の立ち上げ
    • PLとしてプロジェクト管理
    • システムの骨組みを実装
    • 開発サーバ、デプロイサーバの準備
    • 他社システムとの調整

優秀な方ばかりで、入社当時はこの会社で本当にやっていけるのだろうかとビビった記憶があります。
徹底的にロジカルな思考、社員一人ひとりが自分事になって仕事に向かう姿勢、役職関係なく正しいと思う意見をぶつけ合うフラットさなど、前職のSIerにはない文化がありました。
丸二年間、刺激的な環境で仕事をさせてもらい、成長させてもらいました。

なぜオートモーティブに行くのか

自分のやりたいことを改めて考えたとき、エンジニアとして自ら手を動かしてものづくりをしたいという気持ちが強くありました。
自分なりにキャッチアップしてきた技術や手法を、実サービスに落とし込みたい。
また、自動車業界は自動運転という大きな転換点にあり、
まだ世の中に存在しないものをつくるフェーズに関われることに大きな魅力を感じました。
家族や親しい人が今より少しでも幸せに過ごせる社会をつくれたらいいなと思います。

オートモーティブでなにをするのか

自動車事故低減を目指すプロジェクトに、サーバサイドエンジニアとして携わります。 Ruby、Go、AWSなど触ることになりそうです。
3月から兼務で働いていますが、スピード感が全く異なります。 同じDeNAでも、お金を扱うペイジェントと新しい価値を届けるオートモーティブでは開発手法や文化が全く違います。 Web系のスピード感に追いつきつつ、ミスできない大事な場面ではSIerやペイジェントで学んだ手堅い開発を活かしたいと思います。

今後の抱負

「ITの力で今よりもっと良い世の中にする」ということに、交通という大きな規模感で関われることにワクワクしています。
エンジニアとして腕を磨いて、プロジェクトに貢献できるよう精進していきます。 直近では、

  • 業務では未経験のRuby、Go、AWSなどキャッチアップ(ポテンシャル採用してもらえたことに感謝!)、
  • 個人やチームの生産性向上系の知識
  • 常にフルパワーで働く/遊ぶための体づくり

あたりに注力したいと思っています。
ペイジェントでお世話になった方、今までありがとうございました。
オートモーティブでも頑張っていきます。

shibuya.rbに参加してきました

仕事でRubyを使うことになったので、勉強と情報収集のためshibuya.rbという社外勉強会に参加してきました。

shibuya.rbとは

Shibuya.rbは、渋谷近郊のRubyが好きだったり、 Rubyの周辺技術が気になっている人のための地域Rubyistコミュニティだそうです。

shibuya.rb[:20180221]

雰囲気

想像していた以上にゆるくて自由な雰囲気でした。笑
イベントページにも書いてあるように、テーマやセッションは特に決まっていないそうです。
最初に簡単な自己紹介をしあったのち、飲みたい人はビールで乾杯。
LTしたい人は好きに発表し、もくもくしたり、数人でディスカッションしたりしていました。

参加者

今回は15名くらいでした。
自分のように初心者・初参加の方から、RubyKaigiにCFP出すような方まで様々でした。

発表聞いていたら、いつも読んでる技術ブログの著者が発表していてびっくり。
勉強になる、とツイートしたばかり、、、

エンジニア界は狭いですね、、、。

聞いてみたこと

自由過ぎて何してよいかわからず、周りのレベル高い会話に聞き耳を立てながらぼんやりしてました。苦笑
優しい方々が話しかけてきてくれたので、自分の状況(Ruby初心者、Javaは10年くらい)を伝えた上で、色々と相談に乗ってもらいました。

初心者におすすめの本ある?

以下の三冊を薦めてもらいました。

チェリー本はちょうど最近読んだばかり。やはり良い本でした。

nesheep5.hatenablog.com

Everyday Railsだけ持っていないので、さっそく買ってみようと思います。
改訂版がでたばかりなので良いタイミングですね!

blog.jnito.com

おすすめのエディタは?

エディタについては宗教戦争になるのでコメントを控えますとのこと。苦笑
相談した方の会社でもみんなバラバラです、とのことでした。
自分は最初Vimで、現在Atom使っています。RubyMineがどれくらい便利なのか気になっているところ。

どうやって勉強するのがよいか?

技術書読むのも大切だけど、実際にコードを読み書きするのが一番、とのことでした。

  • 業務で使っているgemのReadmeを全部読む
  • 使っていて困っているところから攻める。あわよくばパッチ送って自分の陣地を広げる。
  • 自分でgemを作る。ディレクトリ構成とか理解するので読みやすくなる
  • 特にkaminari作者の松田さんのコードは参考になる
  • できれば自分で発表すること。顔を覚えてもらえる、話しかけられるなどのメリットがある

最新情報のキャッチアップはどうしてる?

  • 勉強会での情報交換が一番勉強になる
  • 渋谷界隈だと、銀座.rb 表参道.rb 浅草.rb 千駄ヶ谷.rb あたりの勉強会に参加するとよい(参考:地域Rubyの会)
  • Issueを読む。(朝晩20件ずつくらい読んでいる)英語の勉強にもなる。社内Slackに投稿すると意識高い感出る
  • Twitter上でははみんな真面目な話ししないからあまり参考にならない。笑

その他

  • 実はJavaRubyは親和性ある。Treasure Data社など、 JavaRubyを併用している会社は意外とある。
  • Rubyは良くも悪くも柔軟な言語なので、Javaのように固い言語からRubyにくるのは良い流れ。
  • DeNA@sonotsさんや@namusyakaさんなどすごいコミッタがたくさんいるので、交流できたらよいね。

また参加しようと思います

初心者にも優しく接してくれる、アットホームな勉強会でした。
レベルの高い人たち同士の会話を聞くだけでも勉強になるし、刺激を受けます。
次回はもう少し技術的な質問もできるように、しっかり勉強を続けていきたいと思いました!

【Ruby入門】構造化データにStructクラスを利用する

Ruby門中です。今日はStructクラスについて調べました。

Structクラスとは

一言で言うと、クラスより簡単に構造体を作成する仕組みです。
docs.ruby-lang.org

Structクラスの特徴

定義が簡単

Struct.newで引数に渡したシンボルに対応するメンバとアクセサメソッドを持つクラスを生成します。

  # 気温情報を持つ構造化データ
  Temperature = Struct.new(:date, :high, :low)
  temp = Temperature.new('2018/01/01', 8.0, 0.5)
  temp.high # => 8.0

ブロックでメソッドも定義可能

ブロックを利用することでメソッドを定義することも可能です。

  Temperature = Struct.new(:date, :high, :low) do
    def mean
      (high + low) / 2.0
    end
  end

Structクラスの使いどころ

構造化データを用意する際、Hash、Class、Structあたりが選択肢となります。
以下のような時にStructクラスを利用すると良さそうです。

  • ちょっとした構造化データが必要だが、クラス作るほどではない
    • 利用箇所が限定的
    • その構造化データが今後拡張される想定がない(継承、ミックスインなどしない)
  • Hashのように、メンバが動的に変更されたくない
    • 動的に変更する構造化データが欲しい場合、OpenStructクラスも用意されている

HashとStructの比較サンプルソース

以下、Hashを利用した場合とStructを利用した場合の比較サンプルソースです。

require 'csv'

# --- Hashを利用した年間気温クラス
class AnnualWeatherWithHash
  def initialize(file_name)
    @readings = []
    CSV.foreach(file_name, headers: true) do |row|
      @readings << {
        date: Date.parse(row[2]),
        high: row[10].to_f,
        low: row[11].to_f,
      }
    end
  end

  # 平均気温
  def mean
    return 0.0 if @readings.size.zero?
    total = @readings.reduce(0.0) do |sum, reading|
      sum + (reading[:high] + reading[:low]) / 2.0
    end
    total / @readings.size.to_f
  end
end

# --- Structを利用した年間気温クラス
class AnnualWeatherWithStruct
   # Structを作成しReading定数に保持
  Reading = Struct.new(:date, :high, :low) do
    def mean  # ブロックでメソッド定義することも可能
      (high + low) /2.0
    end
  end

  def initialize(file_name)
    @readings = []
    CSV.foreach(file_name, headers: true) do |row|
      # Reading定数をクラスのように利用することができる
      @readings << Reading.new(Date.parse(row[2]), row[10].to_f, row[11].to_f)
    end
  end

  # 平均気温
  def mean
    return 0.0 if @readings.size.zero?
    total = @readings.reduce(0.0) { |sum, reading| sum + reading.mean }
    total / @readings.size.to_f
  end
end

参考

  • Effective Ruby (項目10: 構造化データにはHashではなくStructを使おう)

「プロを目指す人のためのRuby入門」は他言語経験者に最適の本

「プロを目指す人のためのRuby入門」を読んだ

仕事でRubyを使うことになったので、本腰を入れて勉強しようと「プロを目指す人のためのRuby入門」(通称:チェリー本)を購入しました。
昔個人的にRubyを勉強していたころ、著者である伊藤淳一さんの技術ブログをよく参考にしていたのでこれは!と予約して購入しました。
通勤や昼休みなどに毎日少しずつ読み進めていきました。
とても良い書籍だったのでおすすめポイントなど紹介します。

おすすめポイント

エンジニアとしてのこだわりがたくさん詰まっている書籍だと感じました。
著者自らが語るこだわりの記事も参考になります。 blog.jnito.com

進行が分かりやすい

最初から順に読み進めてきちんと理解できるように章構成されています。

  • 章初で例題の仕様を提示
  • 例題に必要な知識を説明
  • 知識が揃ったところで例題に着手(基本的にTDDで行う)
  • 必要に応じリファクタリング
  • 発展系の高度なトピックを説明

という進行です。
ご本人のこだわりポイントとして挙げているように、章中に例題があるのが特徴的です。
例題が軸となって学習が進められるので、覚えるべきことが明確になって進めやすかったです。
また語り口が柔らかく、ペアプログラミングをやっているような感覚になります。

情報の粒度・質が高い

曖昧過ぎず、細か過ぎず、他言語でプログラミングを経験している人にとってちょうど良い粒度の内容だと思います。
リファレンス見れば分かるようなことは少なめで、かわりに実務上引っかかりやすいTipsなどが詳しく書いてあり、現場のエンジニアの知見がたくさん詰まった有用な情報ばかりです。

また、本書に収録できなかった技術記事をQiitaのアドベントカレンダーとして公開してくれています。
qiita.com

例題が個性的

proc/yieldの例題として、ワードシンセサイザーなるものが登場したのですが、さながらギターのコンパクトエフェクターのようで、自分も学生の頃弾いていたので思わずニヤリとしました。笑
自分の趣味を織り交ぜて、さらっとOOPで表現するところが素敵なエンジニアだなと思いました。
業務でJavaを使っているのですが、ラムダ式の利用シーンが分からない人たちにこの例題で説明してあげたら良いかも、と思いました。

紙質にこだわっている

写経に便利なよう、本を開いたままにできる紙を使用しています。
これにはめちゃめちゃ感動しました!全ての技術書がこの紙質になればいいと思います。笑

対象読者、オススメの読み方

他言語でプログラミングをひと通り経験している人に向けの書籍です。
プログラミング自体が初めての人にとっては少し難しいかもしれません。

個人的には

の順で進めると最短でRailsエンジニアになれるのでは、と思いました。

その後、

で深く勉強していくのが良さそうかなと感じています。(※よい勉強の仕方あれば教えてください)

参考

改訂2版 パーフェクトRuby
Rubyサポーターズ
技術評論社
売り上げランキング: 103,291
Effective Ruby
Effective Ruby
posted with amazlet at 18.02.14
Peter J. Jones
翔泳社
売り上げランキング: 264,608
メタプログラミングRuby 第2版
Paolo Perrotta
オライリージャパン
売り上げランキング: 200,922