generated at
YAPC2016 shokaiメモ
YAPC2016のメモ by shokai

2日目のみ参加

スマホ時代のBotアプリのつくり方 by yusukebe

boketeのLINE BOTアプリ
ユーザーはbotを友達として追加する
どんなタイミングでも送信できる
50人まで登録
審査後制限解除されて5000人まで登録
一斉送信はline@でやれ?という実装になっている
チャットコマンドで操作する
チャットコマンドを発言するボタンを設置できる
自分で好きに配置できるっぽい
リッチメッセージ
1枚の大きな画像 + 画像上のエリア
昔のHTMLのareaタグみたいな感じ
画像サイズ5種を返さなければならない
URLパラメータで指定されたサイズできっちり返す
大変そう

LINEサーバーから自分のサーバーに来るメッセージ
HTTPでJSON
1リクエストに複数メッセージ入っている
mid で区別して個別にレスポンスする
どうやらメッセージではなくユーザーIDらしい
sessionに使える
すぐレスポンスしなくてもいいらしい
同じmidに複数回レスポンスできる?

プログラミング言語処理入門以前 -- Unlispの紹介 by esehara
Ruby上で動くlispを作っている
ruby
require 'unlisp' machine = Unlisp::Machine.new machine.machine_eval ["name", "0"] # => (name 0)

stringはめんどいのでとりあえずなし
putchar(ascii_code) で代用
boolean型はなし
integerでいいだろう

関数定義
無名関数を変数に代入する糖衣構文として実装している
関数定義.rb
machine = Unlisp::Machine.new machine.machine_eval ["do", ["def", "x", "1"], ["+", "x", "x"] ]

このRDBについて私は驚くべき闇を見つけたがそこを発表するにはネットは怖すぎる by そーだい

数値のwhereが、先頭が数字のカラムにmatchする
WHERE val=4 4four にヒット
WHERE val=3 three3 にはヒットしない
先頭が数値の時にキャストされる
監査ログが無い
XIDが32bitで足りなくなる

datetime 0000-00-00 を入れると NOT_NULL でも IS_NULL でもヒットする
デフォルトで大文字小文字を区別しない
🍣と🍺が同じ
絵文字以降は切り捨てられるが、insertしてもエラーがでない
utf8mb4_bin を使うべし

pgAdmin3
日本語うてない
削除と抹消というメニューが有る
dropかtruncateかdeleteか
雑務とUser Interfaceというメニューが並んでる

アンチパターン
DELETE_FLAG
マテビューとは
オラクルマテリアライズド・ビュー
正規化しろ
外部キー制約
バグやヒューマンエラーでぶっ壊れないように

連休中に脆弱性に気づく
RDBの知識は寿命が長いので覚えておくとずっと役に立つ
データの死はサービスの死

HTTP/2でウェブサイトを高速化(実践編) by kazuho

なるべく先読みしてclientにキャッシュさせたい
Link: rel=preload ヘッダ
HTTP/1.1 100 Continue
提案中
HTTPは複数回レスポンスを返せる
DBに問い合わせている間に 100-continue でレスポンス返す
httpdの設定

cache-aware push
とりあえずServiceWorkerで実装
clientからはcacheに見える
サーバーからはpushで送りつけておく
ブラウザにまだ載ってない、提案中のプロトコルの実証実験をServiceWorkerで擬似的にやってる