渡り鳥の旅路

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

技術書典5 ゆるく参加したレポ

この1ヶ月続いた3連休シーズン最終日は技術書典5でした。

前回に引き続き、今回も一般参加してきたのでそのレポです。

techbookfest.org

事前準備

今回は初めて池袋サンシャインシティで開催されました。

会場の広さが前回までの秋葉原UDXと比べて3倍とのことで参加サークルも増加、事前のサークルチェックは必須です。

公式ページのチェックリストで事前チェックを入れておくと、会場地図にチェックしたサークル位置がハイライトされてとても便利でした。

f:id:roo_oregon:20181008224019p:plain

技術書典へ向かう

前回「DNSをはじめよう」で話題になった@mochikoAsTechさんがとてもわかりやすい記事を書かれていたため、会場までスムーズにいくことができました。

ちょっと誤算だったのですが今回は整理券がなかったため(行きがけの電車でtwitter眺めてて気づいた)、予想外に行列に並ぶことになりました。ちゃんと事前チェックおけば良かったなぁ、というのが今回の反省です。

入場前行列に並ぶ

なんだかんだ早め(10:20くらい)に着いたので、11:20くらいには入場できました。

会場の地図をチェックしたり、出展者さんの記事を読んでたりしたので、そんなに苦ではなかったかな。

今回の戦利品紹介

私は人気サークルの物理本にこだわりはなかったので、端から順繰りまわりました。

戦利品はこんな感じ↓

f:id:roo_oregon:20181008222608j:plain

f:id:roo_oregon:20181008222526j:plain  

技術書典はあまりRuby本がないのですが、最近気になるJS(Nuxt, React, etc.)やかわいすぎて一目惚れした@tdakakさんのシールや、最近輪読会でお世話になっているとらLabさんの薄い本(無料!)、よちよち.rb関連でお世話になっている@pupupopo88さんの教育心理本など色々購入しちゃいました。

ラインナップを見ると、私の最近の課題がだいたいわかりますね 汗

初めて行く人向けメモ

#技術書典とか見てるとめちゃ混んでそうだし尻込みしてしまうと思うんですが、ゆるく参加するなら〜的なメモです↓

時間帯

物理本にこだわらないなら、午後2時くらいから参加でOK

DLカードを用意している出展者の方が多いので、よほど遅い時間帯でなければ大抵の本は手に入ると思います。

また後からBOOTHなどで買える本も結構あるので(特に人気の出展者さん)、当日手に入らなくても大丈夫。

持ち物

ここら辺持っていけばOKかと。

  • 小銭
  • 飲み物
  • 軽食
  • タオル

小銭に関しては簡単後払いシステムを利用するとQR読み込みで購入できるのでかなり便利です。

買い終えたら

ハッシュタグをつけて戦利品写真をツイートしてみましょう。参加した感がアップするし、出展者の方が反応してくれるとテンションも上がります 笑

まとめ

前回は圧倒的ぼっち参加でしたが、今回は知り合いが出展者として参加していたり、会場撤収後も戦利品お披露目会したりなど、 かなり楽しかったです(・ω・)b

 

 

輪読会で利用した「とらLab」が良い感じだった

きっかけ

最近よちよち.rbで知り合ったメンバーで「Webを支える技術」の輪読会をやっているのですが、毎週開催のため毎度会場どうしよう問題がつきまとう。。

そんななか見かけたのがこちらのツイート

エンジニアは無料で使える、だと、、

しかもイベント利用でも無料、だと、、

行くしかない!( ゜∀ ゜)

というわけでこちらのフォームから申し込み (今回は@chinatz_さんがやってくれました) f:id:roo_oregon:20180929122637p:plain

https://news.toranoana.jp/64239

とらLabへのアクセス

とらLabがある秋葉原虎ビルは、銀座線末広町駅のすぐ近く。JR秋葉原駅からは少し歩きます。

入口前の張り紙 f:id:roo_oregon:20180929125907j:plain

とらのあな2ndに入ってすぐ右側のエレベータから4Fに上がるとすぐです。

とらLabの様子

少し早めについたところ、、

もう会場セッティングが済んでた。。!神対応! f:id:roo_oregon:20180929122950j:plain

会場に着いて感じたのですが、かなり落ち着ける雰囲気で(あまりとらのあな感はないかも)集中できそうな環境です。もちろんwi-fiもあります

せっかくなので会員カードも作ってみた。 f:id:roo_oregon:20180929123848j:plain

ウワサ?のプログラミング言語アンケート。Javaが多いのかな f:id:roo_oregon:20180929124141j:plain

Ruby勢力拡大しときましたw f:id:roo_oregon:20180929124324j:plain

誰でも書き込めるコミュニティノートもあります。 中身が気になる方はぜひ行ってみてください。 f:id:roo_oregon:20180929124507j:plain

直近のイベント f:id:roo_oregon:20180929131304j:plain

スケジュールの状況はコチラでも確認できます。 イベントで貸し切りのケースもあるため、訪問前に確認しておいた方が良さそうです。

技術書典5にも参加されるんですね〜

輪読会の様子

f:id:roo_oregon:20180929124811j:plain

ちらっと見えますがesaにまとめながら進めています。 輪読会の話はまた別記事で書こうと思います。

というわけで、ありがとうございました!

プロジェクタ、変換ケーブルなどもあり、勉強会を開くのに必要なものも一通り揃ってる良い環境でした(無料だし!)。

その場で次回の会場申し込みもdone(・∀・)

公式のハッシュタグはないらしいですが#とらLabにつぶやくと中の人も見てくれてるみたいです!

感想やシェアも歓迎とのこと

f:id:roo_oregon:20180929132646p:plain

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