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

uzullaがブログ

uzullaがブログです。

builderscon tokyo 2016を終えて、そしてこれからについて

12/3、東京渋谷のレッドブルスタジオにてBuilderscon tokyo 2016を開催しました。

#builderscon

#builderscon

#builderscon

イベントスタッフとして

Buildersconにはコアスタッフとして参加しており、今回は様々な調整などを微力ながらおこないました。

スタッフ経験値もそこそこあがってきており、中堅という感じです。*1

タスクをわりふったりわりふられたりしつつ、主に色々なことが想定から漏れていないようにケチをつけるおじさん業みたいなのをしていました。あと、Slackで雑談する役。

実際のところ、まだ終わっているわけではないのですが、概ね事故なく開催できたので、最低限の役割ははたせたのでは!と考えております。

f:id:uzulla:20161204121511p:plain

f:id:uzulla:20161204121441p:plain

登壇者として

php.iniの話」という60minのトークをしました。

speakerdeck.com

追記:2016年12月6日 動画公開されました、以下のURLからたどれます!

builderscon.io

60minといいつつ、大体90分位話していました(トーク開始前の雑談から、後ろがいないからと引きずった質問時間まで)

php.iniについて言いたいことが高まりすぎた結果、全然時間がたりませんね、大体120分くらいあればゆっくり話せたかなと思います。だれか、この資料の再演でよければ120分ください(?)

正直、このネタで10人あつまるかどうかと不安におもっていましたが、一つ前がmattnさんというチート枠でしたので、ほどよい人口密集度でした。

会場のノリ(?)もよく、質問などもいくつかうけられたのでよかったと思います。やじがすくなかった(これはだめだ!)のが残念ですが、実際に本気の強いやじがとんできたら、心がもたないかもしれないので皆さん黙っていてくれただけかもしれません。

(嘘があったら教えてください、直します)

とにかく、みなさんPHPをつかっていきましょう、7.1.0!

f:id:uzulla:20161204121859p:plain

※この写真は私のトークではありません、ミエはりました。

参加者(?)として

最高!だけどやっぱ1日ってみじかくね?全然みんなと話きれなかったし、呑めなかったんだけど?

あと、(スタッフ業もあるので)真面目に聴講できたのは、ビールだけでしたので、後日YTみます。

感謝

まずは参加してくれた皆さんに感謝です、楽しんでいただけたならば幸いです。

次に、会場を貸してくれて、ワイガヤで最後まで追い出さないでくれたレッドブルスタジオ様に土下座です。

もちろん、いわずもがなスポンサーの皆様には大変ありがとうございました。(皆さんパンフ裏のかっこいいパズルやりました?)

毎度毎度、サポートしていただいた、デザイナーのekkunさん、八木さん、いつもありがとうございます。

そして、仲間であるスタッフの皆様もありがとうございました。特にモリゾーさんと、リチャードさんと、ゾンコーエンさんと、牧さん、ハセガワさん、だんごさんには感謝を。

あと、私が忙しいことでご迷惑をおかけした皆様にもすみませんでした、ありがとうございました。

開催後の話

開催後は本当にハイパーつかれきってしまい、打ち上げも途中で離脱して、なんとか乗り過ごさずに帰宅した後PCも開けませんでした。 (といいつつ、脳に湧いてくるTodoをスマホでGHのISSUEに登録したりはしていましたが…しないと不安だったので)

疲れているのは私だけでなく、ここのところずっと酷使されていた(?)ATOKも同様だったようで、ATOKが消滅していたことを報告致します。

来年、builderscon tokyo 2017

f:id:uzulla:20161204122032p:plain

終わった翌日にいうのも何ですが、もう何ヶ月も前からスタッフ業は走り出しておりますので、翌日もなにもないのです。

次回は2017/8/3から3日開催(前夜祭含む)です。(私の主観では)あっという間にまた開催日になることはミエミエなので、がんばります。

2017.tokyo.builderscon.io

よろしければ、ぜひ続報をお待ちください。

ところで、一つだけ贅沢をいうならば、頼むからPHPerがもっと増えてほしいですね!(今回はPHPerの方々も何人かいらっしゃっており、ぜひ登壇を!)*2

こちらからは以上です

*1:ところで私は色々をかなり保守的な読みをするので、本当にズバリとした読みができる、牧さんなどのレベルには到達できるのか不安になりますね、すごいんですよ?

*2:「うずらさん、PHPerの友達すくないの?」といわれており、すくないのかも…となっております。

「dply」、最初二時間無料でVPSが使えます的サービス

https://dply.co/

一言でいって「二時間無料で手軽にVPSが使えます」サービスです。

「2時間制限を有料で延長出来ます」という方法で収益をめざしている模様。

二時間を超えると勝手に終了されるので、不意に課金されるとかはないし、最初の登録にクレカやデポジットも不要です。

つまり僕が好きなタダサーバーだ!やったね!

過去にもあった

過去instantserver.ioがこの収益手法をとっていた。ただ、あちらは潰れてしまった。

Instantserver.ioは、たしか30分+30分(一度目の延長が無料)だったので、2hというのは大分たすかるなという印象です。

f:id:uzulla:20161128181310p:plain

注意

素性のしれないよくわからんサーバーに、重要なデータをあげたりしてはいけないゾ!!

まずは見られている、そういう意識をもってつかいましょう!

使い方

Githubアカウントでサインアップ&ログインできます、メアドと公開鍵を読まれます。

公開鍵を見れる権限ってはじめて見た気がしないでもないんだけど、そもそも公開鍵ってhttps://github.com/username.keysで見れるしな??

サインアップしたらデプロイボタンを押して、ホスト名と、OSと、リージョンと鍵を選んで起動するだけです。

f:id:uzulla:20161128181454p:plain

最近多くなったけど、「入力欄が見えない問題」は罠ですね。Googleのマテリアルスタイルは本当にこれどうにかしてくれという印象しかないのですが、皆さまいかがお過ごしでしょうか。

リージョンはこのように、

f:id:uzulla:20161128181531p:plain

OSはこのように、

f:id:uzulla:20161128181544p:plain

使用感

1分もしないくらい?であがってきた、これは好印象ですね。

そういえばどこにもかいてなかった気がするけど、ユーザー名はrootでした。(とここまでかいてFAQみたら乗ってた)

f:id:uzulla:20161128181406p:plain

様子

シンガポールリージョンにあげてみました

f:id:uzulla:20161128181347p:plain

1 CPU 512MB RAM 20GB Disk メモリが少ないねー。

$ ping 128.199.72.46
PING 128.199.72.46 (128.199.72.46): 56 data bytes
64 bytes from 128.199.72.46: icmp_seq=0 ttl=52 time=72.890 ms
64 bytes from 128.199.72.46: icmp_seq=1 ttl=52 time=71.712 ms
64 bytes from 128.199.72.46: icmp_seq=2 ttl=52 time=72.014 ms
64 bytes from 128.199.72.46: icmp_seq=3 ttl=52 time=71.658 ms

日本リージョンではないので速くはないけど、レイテンシは作業できないってほどではない、というレベル

inetnum:        128.199.0.0 - 128.199.255.255
netname:        DOPI1
descr:          DigitalOcean Cloud

ふーん、DOかー。

繋がってる回線速度は少なくとも100Mbpsはありそう。ただ、なにかをアメリカから落とそうとするとシンガポールはちょっと遠いから、転送速度が十分にあがりきるまで(ウインドウが広がりきるまで)結構時間がかかります*1

CPU速度は遅め、php7のコンパイルくらいは普通にできるけど。(なつかしのinstantserver.ioだと、初期値の30分ではビルドがおわらなかったなw)

なお、APIはない。詳細はFAQにて。

その他

起動スクリプトはつくれる。bash でもできるっぽいのでおじさんでも安心

https://dply.co/help/cloud-init

たとえば以下みたいな…

#!/bin/sh
export DEBIAN_FRONTEND=noninteractive;
apt-get update;
apt-get -y upgrade;
apt install -y build-essential git gcc patch autoconf automake bison libssl-dev  libmysqlclient-dev libxml2-dev libreadline-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng12-dev libpng-dev libxpm-dev libfreetype6-dev libgmp-dev libgmp-dev libmcrypt-dev libmysqlclient-dev libpspell-dev recode librecode-dev

なお、これを利用して、ボタンがつくれるそうです。

f:id:uzulla:20161128191130p:plain

https://dply.co/button

ただ、スクリプトガッツリいれても進捗がよーわからん、topをみてないといけない。 おわったらなんかキックするようなのをいれておかないといけないかも。

また、管理画面でサーバーの詳細(起動時の設定)を確認できないので、上げちゃった後に「あれ、どんな起動スクリプトであげたっけ…?」ってなってしまうのがちょっと不便

あと、メールは送信できないそうです(OP25B

まとめ

タダは最高だなあ!(本音)

今後にも期待です!

そして某カンファレンスの資料がかきあがらんなあ!

こちらからは以上です

*1:カーネルパラメータでもうちょっと良くなるかもしれないが

Hachioji.pmのLINE BotをLINE Messaging APIでつくってみた

私はHachioji.pmという地域pm*1を毎月開催しているのですが、毎回(ほぼ)参加者全員がトークするので、それのネタの為にもとHachioji.pmむけのLINEのボットを作ってみました。

紹介

ざっとどういう物なのか紹介です。

f:id:uzulla:20161009051619p:plain

基本「ヒャッ!」と、下からでてくるボタンで操作するスタイルです。

次回詳細を表示、というよりATNDを開く

f:id:uzulla:20161009050518p:plain

毎回Hachioji.pmはATNDで募集をかけています。開催日時、場所情報がATNDのAPIで引けるので、それをパースして表示します。

日時をみれば次回がないとかも表示できて便利(?)

地図表示

f:id:uzulla:20161009050532p:plain

会場は八王子周辺ですが、毎回異なります。

ATNDには会場の名前やサイトなどのURLをはってありますが、Google MAPとかははっていません、これは手間の問題です。

ATNDは住所をいれるとAPIから緯度経度がとれます。

で、Messaging APIでは色々な種類のメッセージをおくれますが、ここでは位置情報をつかっています。

わりとこれ結構便利な気がする。

まあ、ATNDみたらええやん、リンクたどればええやん、まあそうなんですけどね、大体のサイトってPC向けだから、スマホでもスッと地図が立ち上がるのはストレスがない。

次回催促

f:id:uzulla:20161009050605p:plain

f:id:uzulla:20161009050658p:plain

hachiojipmは毎月一回くらい開催しているのですが、割と適当に主催が思い立ったらATNDをたてています。つまり、主催が忙しかったりすると、しばらく次回がたたないということがあります。

Hachioji.pmはSlackがあるので、それとかでツッコんでもらえばいいだけなんですが、まあ気軽に催促されるのもいいかなとおもい、ボタンをつけてみました。「次回はよ」と言うと(あるいはボタンをタップすると)、Slackに投稿して私が気付きます。

ビーコンでチェックイン

f:id:uzulla:20161009050718p:plain

主催がビーコンをもっていますので、主催の近くにいくだけで参加したことがログされるのがおもしろいかなと実装してみました。

まあ、「ログされます」といっても別になにがされるわけでもないです。「100回連続参加で賞品!」とかそういうのも特にない予定です。

Hachioji.pmは参加者が後から遅れてくる事が多いので(そういうスタイルなので)、しばしば「誰がきてるんだっけ?あと誰がきてないんだっけ?」という会話がなされる為、うまく突き合わせをすればその問題が解決できそうですね。

(とはいえ、全員がLINEやってるわけでもないので…?)

おしてはいけないボタン

おしてはいけません


と、いうことで以上です。

これは新しい何かを解決するイノベーションあるものではなく、トークと個人的な趣味のために1日くらいで作ったものです。正直SlackやATNDだけでできることであり、このBotの価値は特にないです、みんなもつかわない気がします。まあ、スマホで一発で地図をみれるのは便利な気がします…が、Hachioji.pmが開催される場所は割とローテーション気味なのでみんな道をおぼえている気もする。

まあ、お金がかかることでもないので、しばらく暇をみて育ててみようかとは思います。

参考になるとはおもえないんですけど、大変素朴なコードを公開しておきます。

github.com

作ってみた感想

とりあえず、使える(?)BOTを初めて作ってみて、何人かにつかってみてもらった感想なのですが…一言でいうと「なんか…ガラケーを思い出すな」という感じです。

あれも画像もつかいづらくて基本文字だし、セッションがないし(guid=ONなどw)、色々やりましたけど、あれを思い出します。

当時、ものすごい「絵文字を配置する」ことが得意な人がいましたけど、ああいう感じの…。なんていうか割り切れば割り切れる感じ。

実際にはLINEは画像をつかっていろいろできるんですけど、画像を作る工数であきらめられるし、諦めて文字だけでも(そこまでは)みすぼらしくないのがいいですね。

PHP SDKの感想

兎に角しっかりしており、他の言語で作る方でもexapmlesのKitchenSinkだけは見て損はないかと。

https://github.com/line/line-bot-sdk-php/tree/master/examples/KitchenSink

リッチメニューが便利

f:id:uzulla:20161009051735p:plain

チャットボットなのにチャットしねえのかよ!といわれそうですけど、実際リッチメニューは非常に便利ですね。

LINE@で管理する機能なので、なかなか「プログラマー向け」とはいいがたい概念や管理画面なんですが、とにかくこれはよい。

これ、ますますボットの意味なく、ウェブでええやん…という感じがいなめませんが、便利なものは便利だからええんや。

自動リンクが邪魔

f:id:uzulla:20161009051754p:plain

日付の数字を電話番号と認識したり、「hachioji.pm」という文字をURLとして認識したり誤爆するんですよね。ちょっとだるい。

まあ、工夫で回避するしかないかなとおもってますが…。

セッションとルーターが…

まだ困ってないんですけど、ボット用のルーターとセッション管理ってのはどうなっていくんですかね。まあ複数窓という概念はないとすればまさにガラケー時代を思い出すセッション機構をつくればいいのだろうか。

ボットは「リロード(とか、トップページをひらく)」の仕組みがないんで、「会話」をやるならセッション管理が必要で、なにかシーケンスをするならAbortする仕組みもなんか用意しないと、ものすごいかったるい(毎回最初からやりなおさせる)か、詰み(もどれない)そうですね。

あとはルーターですねー、PHP sdkだと、取れたeventのclass名と入力文字をみてルーティングしていく事になります。この設計は安全で気に入っていますが愚直にやっていくとコードがドンドンネストする。そして、他のchatでつかいまわしはきかない。

ボットにはURLのpathみたいなものはないし、将来的には自然言語解析して〜という感じだとおもうんですが大変そう。

たとえばこういう自然言語を解析するASP的なAPIがあるよとおしえてもらったので、面白いなとはおもっているのですが、

www.microsoft.com

qiita.com

こういうのをつかって、はたして見通しよく*2実装できるのだろうか…大変そう…もうボタンでいいんじゃないかなあ…w

非同期が…

今、BotはAzure App Service+PHPでうごかしてるんですが、無料枠でうごかしてるのでしばらくするとワーカーが停止します。 停止状態からアクセスすると自動的にスピンアップするんですけど体感2〜3秒位ボットが返事をくれないので、「あれ?」と、もう一度ボタンをおしちゃうことがありますね。勿論二回うごいちゃう。

これ、あまり体験としてよくないので、連続した重複は無視するとかやらないといけないかな。上にも書いたセッション(やスロットリング)とかと一緒に解決しなきゃいけなさそう。ボットのフレームワークってやつをつかったことがないんですけど、こういうのがあるのかな。

iOSはLINEのBeacon有効にするのに設定が必要なの?

私のメイン端末が今Androidなんで今日初めて気付いたんですけど、iOSってもしかしてBeaconがデフォルトオフなんでしょうか、結構ショックです。

今日ドヤ顔でみんなにやってもらおうとおもったら結構できなかったんですよね…、設定したつもりでも、うごいたりうごかなかったり、まあ設定がたりてないのでしょうが、きびしい。

これ、将来的にはデフォルト変わるのだろうか…iOS(というかApple)の都合でこうなってるとしたら渋い。

まとめ

BOT作成簡単ですね!

ただ、簡単だけどヒネりもなく何かを作っても「これ別にWebでええやん」となってしまうので、なかなかむずかしそうであります。

次は「チャットグループにボットを生息させると便利」という話を聞き、そうか、ならば普段一番LINEしている奥さんとのLINEをエンハンスしたりできないかなとおもってます。

こちらからは以上です

*1:Perlのユーザーのmeet up

*2:コールバックヘルとかにならずに