PHPerKaigi 本編2日目も無事終了! #phperkaigi #iwillblog

前夜祭を含めると3日目の PHPerKaigi 2019 本編2日目も無事終わりました!

いや、なんか今年開催時期のせいなのか知らないけど、本業の方があれで前日まであまりなにもできず、今年は当日まったり参加すればいいかなって感じでいたんだけど、なんだかんだ色々あって今年だいぶ会期中色々やったのでとても満足度が高い。
てか、なんかあんまり言葉にならないので、これ書いててスゲーつらい。いや、つらくはないけどうむむ…。
しばらく記事投稿画面開いてたけど、やっぱり言葉でてこないのでとりあえず明日以降なんかでてきたら考えるとして今日は諦めて寝る。

とりあえず今年は PHPostParty であの @uzulla さんに「今年のMVPだったよ!」って言ってもらえたのがめちゃくちゃ嬉しかったので、今までスタッフやったイベントの中で一番のよいイベントになったなという感じです。
それとは別に、 #phperkaigi ハッシュタグのツイートとか、ブログリンク登録された記事とか全部見たいなって思ったのも初めてなので、今回の PHPerKaigi 2019 は今までのスタッフ歴の中でもだいぶ思い出深いものになるんじゃないかなという気がしています。

あとなんかとても無駄なやる気に溢れ始めたのでスタンプラリーじゃなくスタッフラリーやれんかなと言う気持ちがでてきたので、とりあえず福岡のスタッフに僕どうすか!っていう話をしたよ( ˘ω˘)

PHPerKaigi 2019 本編1日目終了!

今日は PHPerKaigi 2019の本編1日目でしたよ。

今年は今までの僕とは違い、なんとウエストポーチを用意して良く使うダンボールカッターとか養生テープとかを簡単に持ち歩けるようにしてみた。
数年前からこういうの探すのめんどくさいなー、でもそんなに個数ないし僕みたいなのが持ち歩いてるとあれだよなー、なによりもどういうの買えばいいのか分からないし買うのがめんどくさいなー。 と、ずっと後回しにしていたんですが、最近のカンファレンスは小物結構潤沢にあるし、セッション部屋にずっといるんじゃなく動き回ることが増えたし、他の人が使ってるの見てやっぱり便利そうだなということでとうとう適当なの買ってしまった。
ちなみに、買う時どれがいいのかやっぱり分からなかったので、とりあえず一番でかい荷物であるiPadが入る…のは諦めてその次にかさばるペットボトルが入るサイズので安いのでいいやって感じで選びました。

そして、前夜祭含めて2日間使ってみた感想としては、一々小物がどこに置かれているのか探さなくても手元に必要なものはあるし、スマホも独立したポケットに入るから邪魔にならないしでだいぶ捗る感じになったのでもっと前から買っておけばよかったとしか言うことがないのでなぜ私はめんどくさがって後回しにしていたのか、先月までの自分に問いたいくらいでした。
ただ唯一の問題は、私はケーブル使い分けるのがめんどくさくてスマホの充電をマグネットタイプのやつにしていたので、充電しているとスマホがポケットからはみ出る → 走った時に落ちるということだけ…。
これは、会期中はどうせケーブル1本でいけるから関係ないやってことで明日は普通にiPhoneのケーブルを持っていってどうなるか試してみる予定。

















まあ、そんな事より、カメラをぶら下げるようになったのが一番の違いだけどな!
シャッターを押す以外の使い方が良く分からなくて綺麗な写真が撮れないのが一番辛い…。

PHPerKaigi 2019がもう明日だなんて

年度末忙しいマンなので PHPerKaigi 2019 が明日開催とかいう現実についていけてなかったけど、uzulla さんが準備するはずだった Macbook が酷いことになっていたので急遽準備したりとかそういったことやってたら徐々に前日感がでてきて現実に追い付いてきた感じがある。

ちなみに uzulla さんこんな感じらしくとても大変そう…。

そんな訳?で明日から3日間頑張りますのでみんなよろしくな!

#phperkaigi #hamaco #PHPerトークンではない

NAVITIMEからの移行を考えた

何年もずっとNAVITIMEの月額費だけを払っている(はずの)クレジットカードがあり、登録した頃からずっと便利に使っているんだけど、NAVITIMEの支払いがなくなればクレジットカード1枚なくせるのでは? という気持ちが若干芽生えたので他への移行を考えてみた。
今の時代なら無料のやつでも困らない程度には乗換案内いけるのでは? という考えもある。

結果、App Store を「乗換」で検索してでてきた上位で評価が酷くない「Yahoo! 乗換案内」「駅すぱあと」「ジョルダン乗換案内」を入れてみたんだけど、全てが「ココネリホール」を理解できなかったのでどれも使えずやはりNAVITIMEを使いつづけることに…。 つか、検索にヒットしないのはまあ置いといたとしても、Yahoo!ジョルダンは目的地検索してないような挙動で、経路検索したタイミングでエラー出してくるのですごい使いづらすぎるし、駅すぱあとはヒットしない時なにもフィードバックがないので検索してるのかどうか分からないし、これ NAVITIME 以外が使いづらすぎないか?

ちなみにGoogle Mapは「今」どこかに行きたい時はいいけど、「未来のいつか」どこかに行きたい時は使いやすくはないと思っている。

そういう訳で NAVITIME 様これからもよろしくお願いします!

Windows で Docker Compose を使って MySQL 動かそうとしたらハマった

はじめに

普段 Mac を使ってるので、Docker Compose 使う時もその辺で見つけてきたやつをちょろっと弄った程度で使っていて困っていなかったんだけど、別の人が Windows 環境で動かそうとしたらハマったのでその時のメモ。
しかし、今って Windows でも普通に Docker 使えるんですね。 以前 PHPカンファレンスで聞いた時は VirtualBox と共存できないとかそんな話を聞いてたんですが…。

前提

細かい所はおいといて、ざっくりと MySQL 部分の docker-compose.yml こんな感じで書いていました。
Laravel を使ってたので storage の下にデータが永続化されるような設定…だと思う。

version: '3.4'
services:
    mysql:
        image: mysql:8.0
        volumes:
            - ./storage/mysql:/var/lib/mysql:cached

これが Windows 環境で実行すると何故か落ちる。(他人のPCなのでエラーメッセージコピペできなかった( ˘ω˘))
Windows 環境に永続化させようとするとダメ? よく分からなかったので、ググってみると volumes の指定方法が違うやり方の docker-compose.yml を見たのでそれやったら解決したって話。

version: '3.4'
services:
    mysql:
        image: mysql:8.0
        volumes:
            - db-data:/var/lib/mysql:cached
volumes:
    db-data:

volumes のローカルディレクトリ指定をやめて、トップレベルに volumes で指定してやっただけ。

PHPで雑に単語を色分けする

とある事情で大量の画像のグループ分けをしてるんだけど、分けたグループが間違ってなさそうか画像を見ながらチェックしている時、グループ名のミスに気付きやすくなるようそれぞれを雑に色分けすると便利というお話。

<?php

function get_color_code(string $str)
{
    return '#' . substr(md5($str), 0, 6);
}

?>

<p style="color: <?= get_color_code($image->type) ?>;"><?= $image->type ?></p>

同じものから同じカラーコードが生成されればよかったので、文字列の md5 から頭6文字取ってそれを使っている。

Laravel Socialiteでログイン後元の画面に戻るようにする

はじめに

Laravel Socialite っていうソーシャルログインする為のパッケージがあるんだけど、これの使い方とか載せてるサイト見ても、サンプルなのかログイン後 echo して終わってたり、 redirect()->to('/'); しかやってなくてよく分からなかった。 なので、通常のログインの時に使ってる Illuminate\Foundation\Auth\AuthenticatesUsers のコード読んでアクセスしようとしたページに戻す方法調べたのでメモ。

調査メモ

とりあえず、ログイン後のリダイレクトしてる所見ればええやろってことで、ファイル開いて redirect で検索してでてきたこのコードを読む。

    protected function sendLoginResponse(Request $request)
    {
        $request->session()->regenerate();

        $this->clearLoginAttempts($request);

        return $this->authenticated($request, $this->guard()->user())
                ?: redirect()->intended($this->redirectPath());
    }

すると redirect()->intended() とかいうメソッド叩いてたので、それが定義されてる Illuminate\Routing\Redirector.php を覗く。

    public function intended($default = '/', $status = 302, $headers = [], $secure = null)
    {
        $path = $this->session->pull('url.intended', $default);

        return $this->to($path, $status, $headers, $secure);
    }

セッション使ってるっぽいしこれやな! ってことで、Twitter ログイン後のコールバック処理の中で↓のようなコード書いて無事アクセスしようとしたページに戻れるようになった。

return redirect()->intended('/');

ちゃんちゃん。

PHPカンファレンス2018でスタッフをしてきたよ

今年も例年通りPHPカンファレンス2018でスタッフ業をしてきましたよっと。

今年はなんかひたすらに iOSDC とか builderscon とかの MTG と被ってたり、仕事の都合が合わなかったりで全然事前作業とかはできず、Slack でテキトーなことを言うだけのほぼ当日スタッフみたいな感じになってしまったけど、当日はちゃんと頑張ったのでゆるしてヒヤシンス。

当日は小展示の責任者だったので小展示の設営頑張ったり、司会とかやったり、タイムキーパーしたり、お弁当列の形成したりがメイン。 前日いつもの BrewDog で喉が若干やられてたりしたのと朝一だったので全然声がでないしカミカミで恥かしかった>_<

あとは懇親会の司会で声張り上げまくっていましたね。 あとなんか2日前くらいから当日にかけて、他の PHP 系カンファレンスの人たち(9割福岡)に無茶振りをしまくったりしていた記憶が残っている。

以下会場写真


委員長の素晴しい御言葉を頂戴しているワンシーン


前日準備で袋詰めが間に合わなかったらしく頑張って朝から袋詰め


開催2日前に決まった他カンファレンス告知エリアに真っ先に Laravel JP Conference の チラシを置きにいった図


カメラ3台体制のガチカメラマンのカメラ


わかばちゃん本だ!


Macbook へのサインうらやま


すごく…昭和です…


徳丸本を当ててしまった! しかしサイン会のことすっかり忘れていてサインは貰えず…


はぴえるくん可愛い。これ磁石でくっついてるんだけど付け外しするの気持ちよかったので欲しい。


クリスマス

打ち上げ

iOSDC とかで鍛えられたのか 1day だと元気が余るので打ち上げで今年も色々やらかしましたが覚えてないことにしました。

ところで

来年はなんとPHPカンファレンス20周年ですよ! 2019年12月1日に毎年恒例の PiO で開催されるので是非来てくださいね!!

http://phpcon.php.gr.jp/2019/


来年の実行委員長! よろしくおねがいします!

gitで.gitconfigに書いてあるaliasを実行すると固まるようになった件(解決済み)

TL;DR;

  • git 2.20にしたら ~/.gitconfig に書かれてる alias が一切動かなくなったよ
  • brew switch git 2.19.2 したら直ったよ
  • git status だけ zsh で alias 作っててよかったね

無駄に長いお話

ある日突然 g pl (git pull のエイリアス) を実行してもまったくなにも返ってこず固まってしまうようになった。
まあどうせインターネッツが調子悪いんやろ? と思いつつpull だと中で複数コマンド実行してるし原因把握しづらいから、g co master (git checkout master) とか g fo (git fetch origin) をやってみるけどまったくだめ。
この辺りでなんか意味が分からなくなって、ディスク? いやでも… と思いつつ g di (git diff) や g dc (git diff --cached) をやってみるけどこれらもまったく使えない。
完全に git が壊れた! このポンコツ Macbook め!! これだから Mojave になんかしたくなかったんや!!!! ってブチ切れそうになったけど、ふと s (git status -sb) を実行したら動いたのでそこにあった差分のあるファイルに対して git diff /path/to/file ってやったら何故か動く。
なんでや! って思いながら git diff って叩くとなんか動くし、git fetch origin ってやるとやっぱり動く。

この辺りでようやく、インターネッツに問題があるわけでもなく、ディスクがおかしくなったわけでもなく、Macbook に問題は沢山あるけど今回とは関係ないということが分かって、どうやら自分が設定してる alias が死んでいるな? ということが分かった。
まあ分かったらあとは簡単だよね。 調べてる暇とかないからとりあえず homebrew で前のバージョンの git を入れるよね。 入れたら直ったよね。よかったよかった。完。 というお話でした。

いやまじで git statusg s とかでやってなくてよかったというお話。普段使ってるコマンドで alias 指定していないのがないレベルなので、git じゃなく zsh の方で alias 書いてなかったらもっとハマってたよこれ…。

iOSDC Japan 2018にコアスタッフとして参加してきたよ

まったく iOS 関係ない人間だけど、8月30日?29日から9月2日にかけて開催された iOSDC Japan 2018 にコアスタッフとして参加してきたよ。

なんでスタッフなんかやってたの?

iOS とか一切関係ない人間なんですが、主催者の @tomzoh が PHP / Beer 界隈でよく会う人だったのと、懇親会のビールが豪華っていう去年までの実績があったのでビール目当てにコアスタッフに申し込んでました。
はい、完全にタダビール目当てです。 ちなみにこれほぼ同じ文章で3年目です。いつの日か iOS の人間になって参加する日がくるのだろうか…?

前々日まで

今年はコアスタッフだったので、月一の打ち合わせにできるだけ参加しつつSlackでクソリプをする仕事をメインでやってました。
あとなんか最初の方の打ち合わせで謎のベストトーク担当(当日)とかいう謎の担当になってました。
まあベストトークの賞品探したりとかして終わった感じのやつで当日なにもしてないけどね。
いや、ベストトーク発表後ギリギリで思い出して今年こそはベストトーカーが舞台から降りる時にハイタッチするというのを成功?させましたね。

あとは例年通りセッション開始5分前にセッション内容自動ツイートするやつ準備したり、今年はスポンサー様の紹介ツイートがあったのでそれもツイートさせたりとしていました。

あれ、当日スタッフの時と仕事量ほとんど変わってないな? あ、日本酒1本選んだりもした!

前日〜当日

前夜祭の日含めて、普段より朝が早いのを4日連続はキツかった… iOSDC 朝早すぎる…。
今年はなんとコアスタッフだったからなのか Track E の「メイン」担当だったのでアンカンファレンス運営をとても頑張った。
(そういや iOSDC 3年目にして初メイントラック以外かつ @akatsuki174 さんと違う部屋の担当だったのかと今ブログ書いてて気付くなど)

まあ会期の半分以上アンカンファレンスなかったので、最高温度に設定しても若干肌寒い部屋で休憩したりしつつ雑用がメイン。
しかし後で言われてハッとしたけど、冷房じゃなくて除湿とかにしておけばよかったのでは…。

あと他にやっていたのは…

こうやってみると私ドンキに走っていただけでは…🤔

総評

iOS エンジニアでもなんでもないけど iOSDC はいいぞ。 お祭りみたいで楽しいし、ノベルティも豪華だし、懇親会のビールは美味しいし。
そして、なんといってもイベント後に夜通しパーティーせずに、イベント前にオープニングパーティーをやったのが最高でしたね。 イベント後だと死んでてただのうるさめな睡眠場所だったけど、イベント前だと元気ですし!
あと、引越しをしたので去年と比べて家から近いのでだいぶ朝と夜楽だったのも大きい。ホテルに泊まるよりタクシー往復代の方が安いくらいの距離は本当によかった。

そして、今年はコアスタッフにLTE対応の無線が配られたんだけど、これが距離関係なくどこでもやりとりできるし超便利だった。
これと、さらに今年は副隊長2名にHQ2名的な体制でばっちりまったりできると思っていたけど、なんか去年より歩いてましたねおかしいな。

豊川風花さんの誕生日が最終日と被っていてお誕生日イラストをTwitterで漁る業ができなかったのが心残り…。