渡り鳥の旅路

元半導体系エンジニア、今Webエンジニアの雑記

iOS開発未経験だけどiOSDC当日スタッフしてきたよ!

この週末でiOSDC Japan 2018 Day3, 4の当日スタッフとして参加してきたので、そのレポ

f:id:roo_oregon:20180903230502j:plain

なぜか申し込む

普段RubyとJSしか触ってないけどゆるふわバスケメンバーと話してるとiOS界隈楽しそうとか、元ぺちぱー的にとむぞうさんがやる運営は楽しそうすぎでしょ、ということで機運が高まり当日スタッフに申し込んでみた。

そしてなぜか当たる

当選メール↓

【タイトル】
iOSDC Japan 2018: 当日スタッフ ご応募ありがとうございました

【本文】
BCCにて失礼いたします。

iOSDC Japan 2018実行委員会です。
こんにちは。

先日はiOSDC Japan 2018の当日スタッフへのご応募、ありがとう
ございました。

スタッフにて検討した結果、
当日スタッフをお願いしたいということになり、ご連絡させて
頂きました。

(中略)

それでは、よろしくお願い致します!

--
iOSDC Japan 2018 実行委員会

たぶん検討とかしてないよね

スタッフ顔合わせ

という名の飲み会

当日に向けて士気を高めた!

なぜかRubyの話ばかりしてた笑

Day3

主に受付をやりつつ、ヘルプの要請あればそこに入る、という動きをしていた。

朝からどんどんドーナツ

f:id:roo_oregon:20180903230217j:plain:w300

コーヒー職人の朝は早い

f:id:roo_oregon:20180903230411j:plain:w300

完璧なるドブ漬けオペレーション

f:id:roo_oregon:20180903230716j:plain:w300

バドワイザーがトビウオのよう

f:id:roo_oregon:20180903230828j:plain:w300

選びぬかれたQAチーム

f:id:roo_oregon:20180903230929j:plain:w300

お弁当めちゃうま!

f:id:roo_oregon:20180903231034j:plain:w300

懇親会

ビール瓶開けスキルがupした。

これがiOSでぃーすぃーだ!

f:id:roo_oregon:20180903231101j:plain:w300

もちろんクラフトビアも

f:id:roo_oregon:20180903231304j:plain:w300

いいにく

f:id:roo_oregon:20180903231508j:plain:w300

ネットワーク系ミサンガ

f:id:roo_oregon:20180903231551j:plain:w300

いいお寿司台

f:id:roo_oregon:20180903231717j:plain:w300

ハイタッチでお見送り

f:id:roo_oregon:20180903231833j:plain:w300

Day4

2日目ということ少し余裕ができ、 スタッフ業の合間に発表をいくつか聞いてみた。

iOSのことはよくわからないので知ってる人の話でも、ということでakatsukiさんの発表を聞いてみた。 自分にもかなりわかりやすかったし、記事をみると事前準備あってこそあの良い発表ができあがるのだな、とすごく参考になる。 akatsuki174.hatenablog.com

あとアンカンファレンスにいつもrebuildに登場するhakさんがいらして、とむぞうさんと古今東西ゲーム機談義をしてたのがめちゃくちゃ面白かった。

朝ごはん

f:id:roo_oregon:20180903231955j:plain:w300

止まらないゲームハードネタ@アンカンファレンス

f:id:roo_oregon:20180903232311j:plain:w300

クロージング

f:id:roo_oregon:20180903232159j:plain:w300

まとめ

iOSDCのことよくわからないまま参加したけど、スタッフ&参加者みんなで楽しいカンファレンスを作り上げようという雰囲気を感じつつ、楽しい2日間を過ごせました! 来年もまた参加したいです。

f:id:roo_oregon:20180903232107j:plain

【LTしてきた】WEBエンジニア勉強会 #08

タイトルどおりLTしてきたのでそのまとめ

8回目のWEBエンジニア勉強会に参加してきた。会場はアクアミーティングスペース渋谷

今回もテーマを決める前に勢いで5分枠に申し込んだ。LT駆動開発

web-engineer-meetup.connpass.com

発表について

www.slideshare.net

今回のテーマはGoogle Apps Script(GAS)とSlackの連携アプリ

最近仕事で業務知識について答えてくれるBotが欲しいな、ともんやり思っていたので、 週末にまず遊びで作ってみたものをまとめて発表した。

デモ

今回のLTでは初めてデモに挑戦してみた。 著作権的なアレがあるためアップロードスライドからは抜いたけど、 ポケモンのイーブイネタでSlackbotの動きをみせた。

今回はあらかじめ下のようなスプレッドシートを用意した。

f:id:roo_oregon:20180728151759p:plain

デモした画面をそのまんまキャプチャ

f:id:roo_oregon:20180728153823p:plain

デモではSlackの投稿を利用した「一覧表示」「説明取得」だけみせたけど、実は「登録」もできたりする。

f:id:roo_oregon:20180728154320p:plain

GASのソースコード

後で載せる予定

実装中あるある

  • トリガーワードを登録し忘れて反応がなく焦る
  • Slackへの投稿にトリガーワードを入れてしまい無限ループ
  • リンクを含めた投稿にサムネイルが表示されない→参考

みなさんの発表

ハッシュタグがメモ代わり #webエンジニア勉強会08 hashtag on Twitter

あとはいつも通りOSCAさんブログの勉強会レポートで!

すでにレポート書かれた方がいて、今回の感想を書いていただいてた。ありがとうございます!

blessed-rain.com

まとめ

発表やると打ち上げのビールがうまい(・∀・)

参考

@zuckey_17さんのブログ

これを読めば速攻で最初のアプリ作成までいけるので、まずは作ってあとで自分色に染めましょう

Google Apps Scriptを利用したSlack Bot作成の" Hello, World!! " Google Spreadsheet + Google Apps Script で Slack KPT Botを作ってみた

初心者がGASでSlack Botをつくってみた

おまけ

はてなブログのアイキャッチ設定とTwitterへの更新反映

アイキャッチ画像(記事のサムネイル) - はてなブログ ヘルプ

https://cards-dev.twitter.com/validator

PHPer目線のRailsチュートリアル学習メモ#2

#1はコチラ

続けて雑に書いていく

ソースコードはチュートリアルから引用

DBまわり

ORMについて
  • RailsではActive Recordを採用している。
  • Active RecordのオーナーはPostgreSQLに対するメンテは熱心だが、MySQLに対して冷たい(kamipoさんがMySQLのために日夜コミットされている。感謝)

  • CakePHPではEntityがあったがRailsではどうか?

  • LaravelのORMはEloquent
ほか
  • Controller名は複数形、Model名は単数形になるのはCakePHPと同じ
  • 同じくマイグレーションもある (そもそもRails->CakePHPだけど)
  • グヮッ https://youtu.be/2Ag8l-wq5qk
7.1.2 Userリソース

https://railstutorial.jp/chapters/sign_up?version=5.1#sec-a_users_resource

例えばUserモデルを作成済の場合、routes.rbにresourcesを記述するだけで、RESTfulなリソースに必要なアクションを利用できるようなる。

config/routes.rb

.
.
.
resources :users

Railsのルーティングについてはコチラ

7.1.3 debuggerメソッド

https://railstutorial.jp/chapters/sign_up?version=5.1#sec-debugger

byebug gemを入れるとdebuggerメソッドを使い直接的なデバッグを遂行できる。

例えば下記のように書いて/users/show/:idにアクセスすると、debuggerが差し込まれた時点での状態を確認することができる。

class UsersController < ApplicationController

  def show
    @user = User.find(params[:id])
    debugger // ココ
  end

  def new
  end
end

例えば下記のようにdebugger時点でのuserが持つ属性を確認することができる。

@Railsサーバを立ち上げたターミナルのbyebugプロンプト上

(byebug) @user.name
"Example User"
(byebug) @user.email
"example@railstutorial.org"
(byebug) params[:id]
"1"
  • CakePHPだとDebug Kit - 3.6はあったけど、debuggerは用意されてないはず(IDE使えばできるけど。PhpStorm + Xdebugとか)

PHPer目線のRailsチュートリアル学習メモ#1

雑に書き残す。

下記、コードはRailsチュートリアルから引用

自分のバックグラウンド

プログラミング歴約1年、フレームワーク歴はCakePHP半年ほど

Rubyはすべてオブジェクト

って書いてあるけどメソッドは違うらしい。

言語の歴史的経緯として下記の違いがある。

  • Rubyは端から純粋なオブジェクト指向を目指して作られている
  • PHPは後からオブジェクト指向に対応

記述を短縮できるところはガンガンやっていき

4.3.2 ブロック

https://railstutorial.jp/chapters/rails_flavored_ruby?version=5.1#sec-blocks

symbol-to-proc記法

>> %w[A B C].map { |char| char.downcase }
=> ["a", "b", "c"]
>> %w[A B C].map(&:downcase)
=> ["a", "b", "c"]
4.3.3 ハッシュとシンボル

https://railstutorial.jp/chapters/rails_flavored_ruby?version=5.1#sec-hashes_and_symbols

  • ハッシュはPHPでいうと連想配列のこと
  • ハッシュのキーを次のような形式でかける(シンボルという)
  • Rubyではハッシュのキーは文字列よりシンボルを使うのが一般的

例えばuserというハッシュを作る場合、

これが

user = { "name" => "Taro Yamada", "email" => "aaa@aaa.com" }

こうなって、

user = { :name => "Taro Yamada", :email => "aaa@aaa.com" }

こうなる。

user = { name: "Taro Yamada", email: "aaa@aaa.com" }
4.4.5 ユーザークラス

https://railstutorial.jp/chapters/rails_flavored_ruby?version=5.1#sec-a_user_class

attr_accessorでシンボル指定しおくと、自動でgetter/setterが定義される。

各々定義したい場合はattr_reader/attr_writerを使う

  • attr_reader -> getterを定義
  • attr_writer -> setterを定義
class User
  attr_accessor :name, :email

  def initialize(attributes = {})
    @name  = attributes[:name]
    @email = attributes[:email]
  end

  def formatted_email
    "#{@name} <#{@email}>"
  end
end

bryankawa.hatenablog.com

【参加レポート】#しがないラジオmeetup 1 とTwitterライブ

参加者の皆さんのレポートがはやすぎて完全出遅れだけど、せっかくなので書きます。

昨日いつも聴いているPodcast「しがないラジオ」のミートアップがあり、ちょこっと運営お手伝いもしつつ参加してきました。

shiganai.org

shiganai.connpass.com

レポート的なあれこれ

この記事を書いてる今も続々と参加レポートがあがってきているので、当日の雰囲気はそちらを見て頂ければと思います。

とりあえずハッシュタグ貼っときます。

#しがないラジオmeetup

ハッシュタグのTLを追いきれんwという方もいると思うので、 そんな人はVTRyoさんの素晴らしすぎるまとめ記事と、 てぃーびーさんのブログにレポート記事リストがあるのでそちらを御覧ください。

愛されがつよい

今回参加しててすごく感じたのですが、パーソナリティの2人の愛され感がすごいなと感じました。

会場にいないてぃーびーさんからの遠隔LTがあったり

OSCAさんのLT中、パーソナリティ2人とのやりとりがあったり、

また、LTの発表内容がしがないラジオの影響を受けて行動を起こしたら環境が変わって感謝いっぱいの内容だったり。

あと、今回地味にすごかった点として登録者の出席率が9割超えしてたのもすごかったです。

Twitterライブで得たTips

あまり表立って告知されてなかった気がしますが、 今回は当日参加できない遠隔地のゲストさん&リスナーさん向けにTwitterライブをやっていました。

普段から写真や動画を積極的に撮る方ではないのでiPhoneあれば何とかなるだろ〜とほぼ準備ゼロでやった結果、 色々つらみと発見があったので今後はじめてやる方向けに書き残しておきます。

ポジション大事

ライブ撮影する上であらかじめ見通しの良さを考えておいた方が良いなと感じました。

たまたま運が良かったのですが、今回はプロジェクタに向かって椅子が並んでいて真ん中を通れるように通り道があったおかげで、 一番うしろからでもプロジェクタ全体を写しやすい状態でした。

雑に書くとこんな感じです↓

f:id:roo_oregon:20180524220323p:plain:w300

ぶっちゃけ撮り慣れてる人的にはポジション取り大事なのは常識なんだと思いますが、 特に発表の動画撮影は場所を固定することが多いと思うので会場レイアウトを考えるときに考慮しておいた方が良いなと感じました (小並感)

三脚あった方が良いよ

単純に手持ちで撮ると腕がプルプルになるよねという話だけではないです。 今回自分で撮影した動画を見返してみると、結構ゆらゆらして自分で見返して酔いそうになったので、 固定は大事なんだなと思いました (小並感)

Periscopeアプリ入れとこう

今回ハッシュタグ上で動画を流そうと思ってTwitterの公式アプリ上でライブ機能を使いました。

ツイートするときに表示されるライブってやつですね↓

f:id:roo_oregon:20180524222150p:plain:w300

実はこの表示、下記のようにテキストを入れてる状態だと表示されません。。 (当日はライブスタートと同時にずっきーさんにリツイートしてもらい対処してましたw)

f:id:roo_oregon:20180524222655p:plain:w300

当日は時間もなくテンパってたので見つけられなかったんですが、写真マーク押したら普通に出てきますw

f:id:roo_oregon:20180524223249p:plain:w500

で、あとはさっきと同じくライブボタンを押すだけでしょ?ってなると思うんですが、 なぜかこの場合「Periscopeアプリをインストールしますか?」とメッセージが出てきて中々撮らせてくれません(怒

というわけで、事前にインストールしておきましよう(`・ω・´)

アプリインストール済だとまずストリーミングの初期化が始まり、

f:id:roo_oregon:20180524223920p:plain:w300

完了すると撮影開始できるようになります。

下の例だとハッシュタグのみですが、もちろんコメントやリプライを入れることもできます。 ちなみにライブを止めると自動的にツイート投下されてしまうため、コメントは先に入れておきましょう。

f:id:roo_oregon:20180524223932p:plain:w300

撮り終わったら右上のバツボタンを押してライブを止めましょう。

VTRyoさんも書いてますが、ライブ撮影以外も遠くから参加できない方向けに他にも色々できることありそうだな〜と思いました。

というわけで、、

楽しかったよ!

f:id:roo_oregon:20180524211544j:plain

【LTしてきた】WEBエンジニア勉強会 #07

タイトルどおりLTしてきたのでそのまとめ

今回は7回目のWEBエンジニア勉強会に参加してきた。会場はYahoo! LODGE

前回の参加がきっかけで運営をお手伝いすることになり、そのまま勢いで発表申込みしたのが背景。

web-engineer-meetup.connpass.com

自分の発表

イベントが公開されたのはだいたい一か月前。その時はまだ発表内容も決まっていなかったため、とりあえず「初心者Webエンジニアを支える技術」といういくらでもピボットできそうなタイトルで申し込んだ。GWも挟むし何とかなるだろう、とわりとお気楽な感じでに申込みボタンを押した。

じつのところ発表テーマが固まったのは勉強会の3日前くらいだったんだけど。。

というのも、最初はわりとエモめな内容を考えていてストーリーラインも何度か推敲して形にはなっていた。だけど自分の中で「せっかく勉強会で発表するんだからお気持ちだけで発表するのはもったいない」「ちゃんと技術寄りなことで発表したい」「せっかくだから新しくインプットしたことを整理したい」という悶々が続き、直前になりSQLじゃね?っと腹が決まりそこから内容を考え直した。

テーマが決まったら次はどんな流れにするか?

基本的には業務中に自分がハマったことベースで、その時には時間優先で終わらせたことに対してちょっと原理的なところを深堀してみたり、多言語・フレームワークに視野を広げてみたりと厚みをつける方向で情報を整理していった。

お勉強方向に深堀りしすぎると眠くなるので、ある程度のところで参考文献の紹介に留めて具体例も盛り込んでいった。 Webの世界はオープンですばらしい参考文献が転がっていて、感謝感謝と念じながらふんだんに引用させていただいた。

スライドの基本ができたら何回か見直して、説明が飛びすぎな部分にページを追加したり、プレゼンを楽しんでもらうためのお気持ちページを入れた。 あとは細々したところを調整したつもりだったんだけど、発表後に見返してみると色々粗がみえてきたので次に活かすということにしてそっとブラウザを閉じた。

というわけで出来上がりがコチラ↓

www.slideshare.net

発表を振り返ってみると、ゆるさを意識しすぎて説明が雑だったなと思う。あとは端折るつもりのところを全部しゃべりきったのでたぶん時間すぎちゃってた。もうしわけない

SQL改善例のおねだりしたら #WEBエンジニア勉強会の方でいくつかコメント頂いてて、ありがとうございます。

みなさんの発表

色々テンパっててまとめきれてないので、詳しくはOSCAさんブログの勉強会レポートで!

techblog.oscasierra.net

運営お手伝い

事前にslackでやりとりしてたけど、実働は当日のみなのでサクッと書く。

詳しくはOSCAさんブログに書いてあるけど、今回は会場がYahoo! LODGEでのリベンジ開催ということでOSCAさんの熱を感じる仕事ぶりを間近(リモートだけど)で見ることができた。職業柄ってのもあるかもしれないけれど、すごく周到な準備をされていてとても勉強になった。

そんな姿を見ていたので、当日は気づいたことがあれば何でもやるぞ!ということでちょろちょろと動き回っていた。

まとめ

運営&発表やると打ち上げのビールがうまい(・∀・)

おまけ

今回Slideshareに資料をアップロードをするときハマったので、下記リンクも貼っておく。

KeynoteのスライドをSlideShareにアップロードすると日本語が表示されない問題

基本的に日本語サポートをしてないらしい。。