YAPC::Asia Tokyo 2015に行ってきた + 座談会に出てきた

メモとか雑感とか。

聞いたトーク

HTTP/2時代のウェブサイト設計

HTTP2によってレイテンシがボトルネックになることはなくなる!!ってのが激熱だった。 多量の画像を1つにまとめるよりも、別々に読み込んだ方が速いってのが驚き(デモはちょっと失敗しちゃったけど強い)。 普及が楽しみ。

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

@kazuph氏と遭遇して話してたからあまり話を聞いていなかった。。。 毎日 bundle update するという気概は良さ気。大きくバージョンを上げると地獄しかないから真似していきたい(本番の前段階で)。 「ドッグフーディングは大事」わかる。

Lightning Talks Day 1

  • ネコトーストラボ
  • [嫁|雨]bot
  • @__papix__ 「障害って起こりますよね」→障害通知「ぴこーん」
  • cpmはええええええええ
  • git(の一部)は簡単に作れるのか
  • <br<

Adventures in Refactoring

リファクタリング中にバグ修正したくなった時は、この話を思い出してぐっと堪えよう。 メソッド名にprefixが出てきたら、そこを抽象化レイヤーで置き換えれるかも。

Parallelism, Concurrency, and Asynchrony in Perl 6

Perl6、非同期も扱いやすそうだし、遅延評価も使えるし、なんだこれ、めっちゃ使いたい。リリースが楽しみ。 とにかく、話し聞いててずっと「Perl6使いたい」って思ってた。 JVM実装が強そうだから、ジャッバの時代が到来するのか?!

辛いことをやめる!から始まる業務改善とInfrastructure as Code

1日目の懇親会でkoemu氏から「ぜひ」と言われたので聞きに行った。精神的な話が特に良かった。 経営レベルで直接発言できる開発関係の人(すなわちCTO)が存在しているっていいなぁ…としみじみ思った。

Lightning Talks Day 2

  • MySQL5.7の余計なデフォルト変数怖い
  • 電話wwwwwwww
  • モールス信号wwwwwww
  • CONBUすげえええええええええええええ
  • VimScript辛い

トーク外のいろいろ

新潟勢

地元新潟勢と久しぶりに会えて元気が出た。 いつかもし新潟に帰ることになったら拾ってくだしー。

@dictav氏と、iOS開発について酒を交えながら語りたかった。。。急用で2日目夜まで居られなくなって残念。

ラリー

ラリーと写真を撮りたかったけど遭遇できずに叶わず終いかな…とか思ってたら、クロージング後に遭遇して写真撮れて幸せ。

例の座談会で前に出た件

感想とか

人前に出ることに慣れていないから終始緊張しっぱなしで涙。

座談会全体を通して、危ない発言を期待していた人には申し訳なく無難に終わってしまった感がある。 これについては、録画ありだっから危険度が高いことは言えないのはしょうがないかなぁ、という気がする。

そして事前準備をもっとしっかりすべきだったのかもしれない。圧倒的反省。

「クソアプリで一山当てて引退したい」の補足

裏側にはこういう意図が隠れていた。

クソアプリで一山当てて引退したいとは言ったが、その後コードを書かないとは言っていない。引退して、組織の都合や生活の心配に振り回されず、自由に開発したいのだ。

https://twitter.com/mihyaeru21/status/635460322812301312

金だけが仕事じゃない。やりがいだけが仕事じゃない。両方のために仕事をしているわけで。働かなくて良い金が手に入れば、やりだいだけを求めて生きることができる。だから金がほしい。

https://twitter.com/mihyaeru21/status/635466636728791041

全体的な感想

去年のYPACでは輪に入れなかった感をかなり感じていたが、今年は去年よりも輪に入れていた感があった。 座談会で前に出たこともあり、懇親会で知らない人ともその話で少し話しやすかったような。

YAPCが今回で終わりなのは残念だけど、次はPythonistaとしてPyConを楽しむぞい!

東京 Crystal 勉強会 #1 in 五反田 に参加した

7月31日に開催された東京 Crystal 勉強会 #1 in 五反田に参加した。 後輩氏が主催することもあって、なんとなくLT枠で参加した。

他の人の発表

感想を箇条書きにて。

  • マクロは思ったより難しくなさそう(簡単に使うぶんには)
  • putsのオーバーロードやばい
  • JSONを綺麗に扱うのにそんな方法があったのか!
  • Surface + パワポ = 便利

自分のやつ

簡単なbotを作った感想を発表した感じ。 発表当日にリリースされた0.7.5にて、HTTPモジュールがstreamingに対応してて涙目だったw

CrystalでHTTP通信

なるほど。LLだ。 というかRubyだ(Rubyわからんけど)。

require "http"
require "json"

client = HTTP::Client.new("lgtm.in")
response = client.get("/g/mihyaeru21", headers: HTTP::Headers {"Accept": "application/json"})

obj = JSON.parse(response.body)
p obj

現状、APIリファレンスよりも実装とテストを見た使い方がわかるっぽい。

pipでインストールできるコマンド

最近のpipのバージョンなら、githubとかにリポジトリを上げておけばPyPIに登録しなくてもモジュールをインストールできる。

サンプル

超サンプルリポジトリはこちら。 標準出力にhoge!!!!!!と出力するhogeコマンドを提供する。

$ pyenv virtualenv 2.7.9 hoge_sample  # 他の環境を汚したくないから適当に
$ pyenv local hoge_sample
$ pip install git+ssh://git@github.com/mihyaeru21/python_hoge_command.git
$ pyenv rehash
$ hgoe
hoge!!!!!!

実装

setup.pyのこの書き方だけ覚えておけば良さそう。 hogeモジュールのmainって関数を実行するhogeコマンドを提供する感じ。

import setuptools
setuptools.setup(
    ...
    entry_points = {
      'console_scripts': ['hoge = hoge:main']
    },
    ...
)

Pythonからコマンドを実行して標準出力を受け取るやつ

subprocessを使うのが良いらしい。 設定周りが怪しいから調べないと。

import subprocess

def execute(command):
    proc = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    output, _ =  proc.communicate()
    return output

s = execute('git status')