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

Health Hack Meetupに参加してきた #health_hack

有楽町にあるFiNCさん主催のHealth Hack Meetupに参加してきました。

health-hack-japan.connpass.com

全体としてダイエット方面の話が多かった気がしてヤセ型の自分には関係ない部分もあったが、参考になる情報も多かった。特に懇親会でのデブエット(太るための活動)の話が興味深かった。

痩せるより、痩せ型な人が太る方がノウハウはあまりないらしいが、例えば

  • 一回の食事量は少なくて良いので一日の食事の回数を増やす(間食に干しレーズンなどおすすめ。干し芋も良いが腹持ちがいいのであまり...)
  • 痩せ型の人は胃腸が弱い人が目立つので、なるべく脂分や刺激物を取り過ぎないほうが良い
  • 消化酵素を多くとる(エビオス錠などいいかもしれない)

などなど。

あとFitbitの実物を見せてもらった。心拍数や消費カロリーや歩数などあらゆる情報をスマートフォンのアプリと連携し取得できるらしい。データはサーバにも送られてそれが取得できるらしくAPIが公開されていた。

dev.fitbit.com

発表時のメモ

  • ボルダリングおすすめ。背中の筋肉が鍛えられる。一人でもできる。頭使うので楽しい。結構安い(1500 ~ 2500円ほど)
  • メンタル面
    • 植物育てるのおすすめ(朝動こうとする外発的要因になる、日光浴びれる、生産物食べれる)
    • 定期的に社内の人と飲みに行ったりしてコミュニケーションとろう。パンクする1/3くらい。深刻な話じゃなくても軽い気持ちで話せる。たまにマサカリ飛んでくると怖い。
    • 週一の楽しみもとう(ラジオおすすめ)
  • 痩せている人は内臓弱い人が多い。太らないからと脂分とりすぎると死ぬ
  • 食事は野菜→タンパク質→炭水化物の順に食べると良い。
    • タンパク質から食べるとインスリンが急に増大し血糖値が上がり、その後急降下するのでお腹が空きやすくなる
    • 痩せ型は逆をすればいいのか...?
  • 一口30回以上噛もう。セロトニンが多く分泌される。
  • エレシのバターで作るコーヒーおすすめ
  • 独自の方法の筋トレは怪我をしやすく危険。
  • 筋トレが最強のソリューションである 」おすすめ
  • 寝る3時間前にご飯を食べない。睡眠中に内蔵が活動し睡眠の質が下がる
  • 頭痛・肩こり・腰痛が生産性、モチベーション、集中力、結果に悪影響をおよぼす
    • プレゼンティズム・ロス : 勤務中の効率低下で発生する損失
  • 思考に関するデータもある
    • 60000回/日: 思考回数
    • その内80%: 2日前と同じ事を考えている
    • その内95%: ネガティブ思考
  • 爪に縦線が出ている、デコボコしている
    • 睡眠不足や疲労、食生活の乱れ
  • コンビニで買えるタンパク質
  • コンビニで買える炭水化物
    • 玄米・おにぎり。できれば半分残す
    • ウィダインゼリーはすぐお腹が空く、血糖値が跳ね上がりやすい
  • コンビニで買える野菜
    • 両手のひら一杯の生野菜(正方形のパックのサラダくらい)
  • 質の高い睡眠
    • 遮光カーテンはおすすめしない。日光を浴びながら目覚めたほうが良い。
    • 脂っぽいものは睡眠より早めに食べる(4hほど胃に停滞する)

資料(公開されしだい追記)

speakerdeck.com

speakerdeck.com

写真

f:id:Peranikov:20160725190353j:plain

f:id:Peranikov:20160725210050j:plain

最後に

会場提供、開催していただいたFiNCさんありがとうございました!

型、ついてますか? - 型の本質を振り返る - に参加してきた #AIAL

aial.connpass.com

2016/7/8に開催された「型、ついてますか? - 型の本質を振り返る」に行ってきました。
会場は品川のマイクロソフトさんです。

大変内容が濃く興味深い話でしたが、時間が短かったこともあって大半は理解できなかった気がします。以下レポート。

型、ついてますか? 高野光弘さん(@takano32)

今日は(古代|近代|現代|原始) * (動的|静的)型付けで分類していく

静的型付け

  • 「型がついている」といえばこれのこと
  • コンパイルでき、静的な解析が可能。変数の型を精査できる
  • コンパイル時に実行はされない

動的型付け

  • 事前に型の精査をしない
  • いきなり実行できる
  • 実行時にはじめて型がわかる

古代静的型付け

  • C言語を代表とする
    • システムと密接な型付け
    • 型が不明だとデータの扱い方がわからない

古代動的型付け

処理の記述へとフォーカスしていく

BASIC

  • 初心者向け
  • 裏ワザ使ってシステムにアクセス出来る(DATE, PEEK,POKE)

シェル

  • システムと対話するための機構を応用

近代動的型付け

古代動的型付けで解決が面倒だった分野の改善

パール(真珠)はシェル(貝)からできているという逸話

  • PHP

    • 適当に書けば動く
    • 多くの問題を解決してきたのは成果
  • Python

    • Perlより洗練されている
    • 癖のあるPerlは読めない...

近代静的型付け

おみやげ話: C++のstructはclassと同じ動きをする

現代動的型付け

パラダイムユースケースで大きく普及

現代静的型付け

システム記述レイヤーからの解脱

原子動的型付け

レジスタ 即値 アドレス

機械語の型付け

  • 実行時に即値かアドレスか判断
  • この時点からは事前処理がない
  • つまり動的型付けといえる

原始静的型付け

  • 起源はラムダ計算
    • 型なしラムダ計算
    • 型ありラムダ計算
  • 原始動的型付け ... ノイマン
  • 原始静的型付け ... 思考実験

なぜ歴史は繰り返すのか

  • 静的型付けと見せかけて動的なのは邪悪

これからのパラダイム

抽象化がさらに進む

個人的に欲しいパラダイム

副作用を考慮したシェル

  • ここでいう「副作用」とは操作がマシンに影響するか
    • ls → 副作用なし
    • mkdir → 副作用あり

「俺が聞きたい話はこんなんじゃなかった」→ イベントやるから来てね

ll.jus.or.jp

Linear Types niryuuさん

資料待ち

Linear Typesとは

  • 1度しか取り出せない値を表す型
    • Uniqueness types(Clean)
    • Ownership(Rust)

「英単語イメージハンドブック」が良本だったので書く

良本だったので書く。

英単語イメージハンドブック

英単語イメージハンドブック

なお同著者の「一億人の英文法」の方が有名だと思う。こっちはまだ読んでいない。

一億人の英文法 ――すべての日本人に贈る「話すため」の英文法(東進ブックス)

一億人の英文法 ――すべての日本人に贈る「話すため」の英文法(東進ブックス)

どんな本か

この本は「英文で使える英単語に日本語の意味を添えて大量に覚える!」系の本ではなく、「英文で特に頻出する単語を"ネイティブが持っているのイメージ"を添えて理解する」本でした。なので単語数で言えばおよそ100程度しかありません。 ですが、それぞれの単語の解説は非常に濃く、例えば "it" の解説などは5ページにも渡って行われています。

ネイティブのイメージとは

例えば「過去形」とは単に過去を表すもの、という形でならったと思われますが、 本書では、過去形はネイティブにとって「離れている」というイメージがあると解説しています。*1

本書では特徴的な使い方として

I hope you can advice me.

I hoped you could advice me.

では後者の方がよりへりくだった言い方になると解説しています。英語での敬語として "Would you ~" や "Could you ~" を使うと習った方が多いと思われますがこれと同じで、理由としてはネイティブは過去形のイメージとして「離れている」というものを持っているから、一歩下がった立場の表現を使うことで丁寧な言葉になるということだそうです。このように、英語を定型として説明せずにネイティブが持っているイメージから理由立てて説明がなされています。他にも、助動詞(MUST, MAY, CAN...)、前置詞(AT, IN, ON...)、接続詞(AND, OR, BUT, SO...)といった単語も逐一イメージをベースとした深い解説があります。

どんな人が読めばいいか

あくまで自分を基準としますが、英語を学び始めで、英語の定型文をただひたすら覚えるのが苦手という人が読めばいいと思います。特に自分は前置詞の使い分けが苦手で、どんな時にAT/IN/ONを使い分ければ良いのかが上達しなかったので、本書のように根拠を持って解説してくれるのは非常に理解の助けになりました。*2

さいごに

この本は手元に置いておいて英文で困った時に何度か引き直す本になると思います。*3
英語初学者の方はまず本書を一通り読んでおけばその後の学習に非常に役に立つと思うのでオススメです。

*1:少なくとも自分はそう習った。今の教育がどうなってるかは知らん

*2:"OF"はリンクするイメージ、とかどの本でも解説していないと思う

*3:ハンドブックだし

Railsでバッチ処理を書く場合、rakeタスクとrails runnerのどちらにすべきか

Railsバッチ処理を書く仕事があって、どちらにするべきか迷った。 迷ったのでググったら以下の記事を見つけた。

stackoverflow.com

要約すると

  • script/runner は実行時にRailsアプリを起動する。これは rake:environment と似ている
  • Railsの起動は時間が掛かるので避けられるならrakeにして避けるべき
  • それ以外はほぼ同等

ということなので、Railsのモデルを使うバッチはrunnerで、それ以外はrakeにする方が良さそう。

個人的には、

  • -e で環境を指定できる
  • クラスのメソッドを直接呼べるのでテストが書きやすい(rakeだと結局処理を別のクラスに起こさなければいけない)

という点からrails runnerを使うことにした。

adtech x scala meetupに参加してきた #adtech_scala

2016/5/16に開催された「adtech x scala meetup」に参加してきました。

adtechstudio.connpass.com

「頑張らないでScala 〜VOYAGE GROUPにおけるアドネットワーク開発の戦略〜」 VOYAGE GROUP 岩永 賢明

スタートアップらしく技術はサービス開発を加速できる必要最低限で抑え、しっかり前に進むための地に足を付けた戦略だと思った。 「頑張らないこと」を主眼においているが、いずれ来る困難を先読みし退路を確保しておく、ということはとても重要だと説いていた。

「Dynamic Movie Ad x Scala」 adtech studio 大野 裕太

※資料待ち

広告の配信と同時に動的に広告動画を生成するアーキテクチャについて紹介された。 使用しているミドルウェアSplay/Kafka/Spark/Go/Aerospike/Mysql/S3あたり。 動画生成部分にGoを使っているのは書いている人が得意だった、クロスコンパイルしてLinux/Windows両方動かせるようにしたかった、などから。

Aerospikeを初めて知ったので調べてみたところ、データモデルも指定でき集計もできる高機能なKVSといったものだった。

www.aerospike.jp

「CyberZにおけるScalaの立ち位置」 CyberZ 鈴木 雄登

PHPで構築された管理画面部分をリプレースしたい、かつ共有DBから引き剥がしデータストアAPIを作りたい、というところをScalaで実装したお話。 Scalaを選定したのはそもそもJava開発者が多く、アンケート結果からScalaやりたい人が多かったからとのこと。 Scala複数可能な記述法、ノウハウの不足、読めない記号などに苦しめられたそうだが、「アドテクは連携が多く、統一的な規約がなく汎用的に作る必要がある。言語レベルで抽象化できるScalaは理想的」という言葉が印象的だった。

読めない記号問題は、この発表の最中にTLで流れてきたscala-search.orgが記号にも対応していて便利そうだった。 (なおfoldLeftを意味する /: は ドミノの畳込みをイメージしたものらしい)

LT

speakerdeck.com

Scala.jsの話かと思ったら違った。JVM上でJavascriptを動かすランタイムらしい。Scala.jsより幸せになるんだろうか。

Scalaの歴史振り返り。Scalaコミニュティは徐々に拡大傾向にあるとのこと。ちょこちょこ入るxuwei氏情報が面白かった。

さいごに

登壇された皆様、会場提供のサイバーエージェント様ありがとうございました! お寿司おいしかったです🍣

Atomでファイルを生成せずに素早くRubyコードを実行する

スクリプト書いて連番の文字列を大量に出したい時とか、Rails書いててRubyの挙動を確かめたい時にさっとRubyのコードが実行できたら嬉しいと思います。

で、大抵の場合irbpryを使って書くわけですが、コードを何度か書き直しながら実行したり、複数行にまたいだりするとこれらのツールだと結構面倒くさくなってくるんですね。

そんな時、僕はメインエディタにAtomを使用しているのでatom-runnerRubyコードを走らせています。

というわけで、とっととatom-runnerをインストールします。

$ apm install atom-runner

atom-runnerが無事インストールできたら、atomを立ち上げて

f:id:Peranikov:20160411235008p:plain

Control + Shift + L で Select Grammar からruby とEnterを打ち

f:id:Peranikov:20160411235009p:plain

お好みのRubyコードを書いて

f:id:Peranikov:20160411235016p:plain

Control + Rで実行できます。

f:id:Peranikov:20160411235020p:plain

GrammarでRubyを選ばずとも#! /usr/bin/env ruby とシバンを書いてあげても実行できますがこの方法が速いのでこれでやっています。

なお、atom-runnerが対応している言語であればRubyに限らず実行が可能です。(画像はJavascriptを選択しnode.jsを実行している)

f:id:Peranikov:20160411235902p:plain

JAWS-UGコンテナ支部 #4 に参加してきました #jawsug_ct

2016年2月5日に開催されたJAWS-UGコンテナ支部 #4 に参加してきました。

jawsug-container.connpass.com

「好きです ECR (仮)」 @orih_y さん

ECRの特徴としては

  • フルマネージドDockerレジストリ
  • デフォルトHTTPS
  • Docker Registry HTTP API V2
  • バックエンドはS3
  • IAMと連携したアクセスコントロール

ということだという。

気になる料金だが、DockerHubと比べてもかなり安いとのこと。(詳細忘れた)

「お前のDockerイメージはまだ重い〜体脂肪一桁のDockerイメージを目指して〜」 株式会社サイバーエージェント @stormcat24 さん

ちょうどDockerイメージの軽量化に取り組んでいて、一番聞きたかったセッション。RUNをチェーンしたり、ビルドのためにインストールしたパッケージやファイル(産業廃棄物)を消すという地道な作業が重要ということだった。

このイベントに参加する前にこの記事をちょうど読んでいて自分もAlpine Linuxを触っていた。後から質問したところ、とくにネックになっていることもなくいつでも本番に投入したいと言っていたので、十分に採用することはできそうだった。

「実践ECS-CLI(デモ)」 @pottavaさん

ECS-CLIを使って実際にEC2上にコンテナを立てるデモ。ECS-CLIを使えば、docker-composeを使っているかのようにEC2上にコンテナを立てることができるとのこと。実際にECS-CLIを本番環境で使うには難しく、aws-cliやシェルのサポートが必要とのこと。

「ECSを使ったAutoScalingの実装Tips」 クラスメソッド株式会社 千葉 淳さん

ECSのAutoScalingはコンテナごとのスケールにはまだ対応しておらず、EC2ごとのスケールをしなければならない。それをCloudwatchEventのトリガーを使って頑張った話。

CloudwatchEventのトリガーはほとんどのサービス網羅してそうで、なんでもできそうなイメージだった。

はじめましてJAWS-UGコンテナ支部

_人人人人人人人人人人人_
> 突然のトニーモリス <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄

HANDSLABさんでもDockerを本番環境に投入しており、十分に安定しているとのこと。

Docker で Deep Learning

さいごに

JAWS-UGの方々、会場提供のサイバーエージェントさん、ありがとうございました!