OSCAの技術ブログ

WEBエンジニアの技術ブログです。 日々の制作活動・業務の中で調査したことなどを記事にします。

「WEBエンジニア勉強会」のロゴを作成しました

 僕が主催している「WEBエンジニア勉強会」は、早いもので2017年06月の開始から1年以上が経過しました。 開始前に想像していた以上の好評を頂き、「次回も参加します」「登壇したい」「会場を提供したい」と言ってくださる方々に恵まれて、想像以上のペースで開催できています。 そしてこの度、「勉強会のロゴ作りをお手伝いします」と言ってくださる有志の方が現れ、勉強会のロゴが完成しました。 本稿では、そんな「ロゴ」の完成までの軌跡をのこしたいと思います。

第01回〜第02回

 この「WEBエンジニア勉強会」を始めた当初は、主催者の僕自身がこのような大きなコミュニティになることを想定していませんでしたので、第02回目の開催まではアイキャッチになるような画像を設定しておらず、connpass のデフォルトの「No Image」画像のままで運用していました。

第03回〜第08回

 第02回の開催を終えた時に「この勉強会は、想像していた以上に需要がある」ということに気づき、「もっとしっかり運営しないといけない」と思い始めたことを覚えています。 そこで、connpass の「新着イベント」で目に留まるようにロゴ画像を設定するようにしました。 しかし、僕自身はロゴをデザインできるような能力を持っていないので「とりあえず画像があればいいか」という程度の考えて、次のような画像を用意しました。 「夜景写真家」でもある僕の写真ストックから適当な画像を選んで背景にしただけのアイキャッチ画像でした。

f:id:OSCA:20180203160536j:plain

 しばらくこの画像で運営してきましたが、いつの「打ち上げ」の際かはっきり覚えていませんが、 id:zuckey_17 さんに「もっと明るい画像の方が良い」ということを言われ、「そうだよなぁ、もっとしっかりしたものを作らないとなぁ」と思い、ずっと課題に思っていたのですが、半年くらい放置したままとなっていました。

新しいロゴへ

 2018年06月のある日、「そろそろロゴをやらないと」と思い、次のようなツイートをしました。

 すると、なんと有志の方が「手伝いましょうか?」とメッセージをくれたのでした。 想像していなかった有難いオファーに、さっそく「お願いします!」と返事をして作成が開始しました。 なんとなく頭にあったロゴのイメージをスケッチブックに鉛筆で書いて送りました。 WEBの勉強会ですので、HTMLのタグのように「< >」で囲まれているロゴが良いなとイメージしていました。

 有志の方と話始めた翌日の夜には、モノクロのロゴが完成しました。 僕の汚いスケッチを Illustrator のデータに起こして、とても綺麗なものとなって返ってきました。 それからしばらくして、それを彩色するフェーズに。 僕の頭には「青」のイメージがあったため、その旨を伝えたところ、キレイなグラデーションで彩って頂きました、この時点でだいぶ満足でした。 最後に文字の幅などを調整して頂き完成となりました。

 ということで、完成したのが次のロゴです。 とても気に入っています。 このロゴを制作してくれた有志の方には、感謝の気持ちでいっぱいです。

f:id:OSCA:20180812095854p:plain

おわりに

 ということで、新しいロゴで気分をリフレッシュし、これからも「WEBエンジニア勉強会」を続けて行こうと思います、今後とも宜しくお願い致します。 次回は「株式会社ミクシィ」さんがイベントスペースを提供してくれることになりました! 09月14日(金)に、渋谷にある株式会社ミクシィさんでの開催になります。 イベントの受付開始は別途アナウンスさせて頂きますが、現在は登壇者を募集しております。 もし登壇される方がいらっしゃいましたら、僕までご連絡いただけたらと思います。

 

WEBエンジニア勉強会 #08 を開催しました

 07月27日(金)に、僕が主催する勉強会の第8回目「WEBエンジニア勉強会 #08」を開催しました。 登壇者の皆様、参加者の皆様、ご参加ありがとうございました。 本稿では、勉強会の内容について振り返ります。

登壇内容

 今回も connpass でオープンに登壇者を募り、自由に登壇してもらうLT大会形式での開催でした。 僕を含めて6名が登壇をしました。 集まってみれば、今回はいつもよりも「難易度高め?」な発表内容が多く、初心者の方にはもしかしたらツラい回だったかも知れませんが、「こういう技術があるのか!」というキーワードだけ持ち帰れれば収穫だと思います。

Service Worker (@engineer_osca)

 はじめに主催者である僕から「Service Worker」について発表させてもらいました。 このテーマを選んだキッカケとしては、「PWA」というキーワードが徐々に大きくなってきていることと、僕が欠かさず聞いている「Rebuild」や「Turing Complete FM」で「Service Worker」のキーワードを最近多く聞いたことがありました。 なんとなく「こんなもんだろう」と理解していた部分をしっかり言語化して説明できるように頑張って見ました。 (が、あまり上手く説明できた気がしていません…。 目に見えないものだけに説明が難しかったです。)

 反省として、スライドではなく、チュートリアル形式の解説記事を別途ブログに書けたらなと思っています。

 また、登壇中に iPhone の Siri が反応する率が高いのは何なんだろう...。 言葉のチョイスの癖みたいなので「へい、Siri」に近い言葉を使いやすいのだろうか…。 今回は音楽の再生までし始めて焦りました。

Pythonで始める筋トレ(競技プログラミング) (@renjikari)

 本勉強会の第一回でも発表してくれた@renjikariさんが、「Pythonで始める筋トレ」というタイトルで AtCoder でプログラミング力を鍛える方法について説明してくれました。 AtCoder は僕は始めて知りました、このようなサービスがあるのですね。 僕も腕試ししてみようかなと思いました、発表ありがとうございました。

Spinnakerを利用した自動カナリー分析 (@budougumi0617)

 10分枠最初の発表は @budougumi0617 さんが、「Spinnakerを利用した自動カナリー分析」というタイトルで発表してくれました。 Spinnaker は名前しか聞いたことがなかったので、具体的にどんなことができるのかを知れて勉強になりました、ありがとうございました!

 発表のスライドに加え、ブログでも補足の記事を書いてくださっていました、こちらも参考にしてみてください。

[発表資料]Spinnakerを利用した自動カナリー分析 #WEBエンジニア勉強会08

すぐ効く、クライアントも喜ぶ「WEBレシピ」 (YuheiKondo)

 毎回「システムを発注する」立場から、WEBエンジニアに求められることを発表して頂いているYuheiKondoさんが、今回もありがたく厳しい気づきを発表してくれました。 エンジニアが集まるとどうしても技術の話になっちゃうところを、別の視点からWEBエンジニアを語ってくれ、勉強会の内容に幅が出て感謝しています!

FirebaseとUnityでゲームアプリ開発 ( @grem_ito)

 以前に出演したラジオで、同じくゲスト出演をされた @grem_ito さんが「FirebaseとUnityでゲームアプリ開発」という内容でお話をしてくれました。 普段ゲーム業界とは接点がないので、ゲーム業界にお勤めの @grem_ito さんの発表はとても新鮮に聞くことができました。

 発表資料は、こちらの Google Docs のページ から見ることができます。

docs.google.com

httpモジュールから始めるNode.js入門 (@ky_yk_d)

 5分枠で発表に挑戦してくれたのは、エンジニア2年目の @ky_yk_d さん、Node.js について話してくれました。 この勉強会での発表のために向けて勉強をしてくれたみたいです。 Node.js は普段使いしていないので、とても参考になりました、ありがとうございました!

また、@ky_yk_d さん (id:ky_yk_d) の登壇レポートはこちらです。

ky-yk-d.hatenablog.com

GAS連携でさくっと作れるSlack Bot (@migrateur_k)

 5分枠の2本目は、本勉強会での発表が2回目の @migrateur_k さん。 Google Apps Script, Spread Sheet, Slack を連携した Bot を作った話を紹介してくれました。 とてもキャッチーな発表だったので、参加者の皆さんも分かりやすかったのではないでしょうか。

また @migrateur_k さん (id:roo_oregon) の登壇レポートはこちらです。

roo-ashi.hatenadiary.com

運営について

 参加者の方にはあまり興味がないかも知れませんが、備忘録として運営の面についても残しておきます。

会場

 今回も大きな会場を借りたいと思っていくつか応募をしたのですが、残念ながら「落選」したり「希望している日に借りれなかった」ため、レンタルスペースを探し、渋谷の「アクアミーティングスペース」という会場を借りました。 できる限り、参加者一人あたり500円の参加費に抑えられるように探した結果、この会場となったのですが、ちょっと窮屈な広さでしたね、申し訳ありませんでした。 次回以降も会場探しは頑張りたいと思っていますが、もし「会場を貸しても良いよ」という企業様などおられましたら、お声頂けると幸いです。 (もちろんスポンサー枠など検討させていただきます)

動画

 「勉強会を主催している」と言うことを会社などで言うと、話をした相手が想像する「勉強会」のイメージがそれぞれ違うことがあります。年上の人だと鉄パイプ椅子と机の会議室で参考書読んでるようなのを想像されることも多く、また「勉強会においで」と誘っても堅苦しいイメージをもたれることがあり、そこをどうにかしたいと思っていました。 ということで、今回の勉強会ではSNSの「ストーリー」のような動画を作成して、硬いイメージを払拭しよう!と試みたのですが・・・。 参加された方はわかる通り、会場がとても狭く、僕自身の居場所が無かったので、結果として動画を撮影することができませんでした・・・。 これは次回に持ち越しで、硬いイメージを払拭する動画作りにチャレンジしたいと思っています。

打ち上げ

 今回も設営スタッフと、最後まで手伝いで残ってくれた登壇者の皆さんと、軽い打ち上げを実施しました。 最後までお付き合い頂いた皆様、ありがとうございました。 勉強会の最初に「コミュニティの目的」に「エンジニアの仲間を作る」ということをいつも挙げさせてもらっていますが、回を重ねたこともあり、僕自身も知り合いも増え、参加者同士の交流も目の当たりにし、勉強会を続けてよかったなと思っています。 今回懇親会に参加できなかった人も、次回はぜひ懇親会まで参加いただけたら幸いです。

おわりに

 本勉強会は、個々のエンジニアが輝ける・目立てる・挑戦できる場を提供することを目的として開催しています。 WEBに関係することであれば、経歴を問わず、初心者の方でも登壇にチャレンジしてもらいたいと思っています。 「アウトプットすることにチャレンジしたい」と思っている方は、ぜひ次回以降の勉強会で登壇してもらえれば幸いです。

 最後になりましたが、いつも勉強会をサポートしてくれている有志の方には常々感謝しております、ありがとうございます。 また、勉強会を楽しみにしてくれている皆さんの期待の言葉が僕の原動力になっています、ありがとうございます。 これからも、この「WEBエンジニア勉強会」というコミュニティをよろしくお願いいたします。

「しがないラジオmeetup 1」に参加してLTをしてきました

 以前にゲスト出演したPodcast「しがないラジオ」のミートアップイベントが開催されました。 ゲスト出演した身としては「参加しないわけにはいかない」ということで参加し、LTをやらせてもらいました。

LT

 今回は以前にこのブログで書いた記事「日本語のエンジニア系Podcastの成長を集計してみた」をしがないラジオ向けに焼き直して発表しましたので、下記のスライドで文字になっておらず伝わらない点は、以前の記事をご覧ください。

 イベントのタイムスケジュールを事前に確認すると、パーソナリティの二人が喋る時間がないことに気づいたので、僕のプレゼンテーションでは無理やり二人に質問を投げかける手法を取り入れてみました。 パーソナリティのお二人は驚いたかと思いましたが、会場の参加者の人には好評だったのではないかと思います。

所感

 ゲスト出演したのが結構前ということもあり、僕のエピソードを聞いていない方も多かったですが、興味を持って頂いた参加者も多く、「今度WEBエンジニア勉強会にいきます!」や「登壇させてください!」と言ってくれた方が多かったのはとても嬉しかったです。 ぜひ「WEBエンジニア勉強会」にも遊びにきてください。 登壇したいという人がいましたら、僕までおしらせくださいね。

web-engineer-meetup.connpass.com

 とても短い時間でしたが、色々な方と交流できて有意義なミートアップだったと思います。 パーソナリティのお二人、参加者の皆さん、楽しい時間をありがとうございました。  

WEBエンジニア勉強会 #07 を開催しました

 05月18日(金)に「WEBエンジニア勉強会 #07」を開催しました。 本稿ではイベントの内容と運営について振り返ります。

講演内容

 今回は8名の登壇者が発表しました。

AIの知識無しでもAIを活用したQ&Aページを作る方法 (@engineer_osca)

 まずは主催者の僕が「AIの知識無しでもAIを活用したQ&Aページを作る方法」というテーマで発表しました。 20分間の発表枠のうち10分はデモだったので来場した方にしかお伝えできませんが、前半10分の発表スライドを公開します。

 今回紹介した Microsoft LUIS はこちらです。 Microsoft LUIS の人工知能を利用することで、自由入力の「問い」(Question)から「問いの意図 」(Intent)を推測し、「答え」(Answer)を導くデモを行いました。

www.luis.ai

フロントエンドデザイン・開発におけるマークアップ設計の基礎 (@kkoudev)

 発表20分枠の二人目 @kkoudev さんが「フロントエンドデザイン・開発におけるマークアップ設計の基礎」というテーマで発表してくれました。 プログラミング言語に比べて簡単だと考えられがちなマークアップについて、その難しさと開発ノウハウについて発表してくれました。

僕たちはサービスの多言語化にどう立ち向かうべきか (@endam109)

20分枠3人目 @endam109 さんが「僕たちはサービスの多言語化にどう立ち向かうべきか」というテーマで、サービスを多言語化をした際のノウハウについて紹介してくれました。 プレゼンテーションでは、PhraseApp というオンラインでできる翻訳支援サービスと、Lokalise というモバイルアプリなどを多言語化する際に便利なサービスを紹介してくれました。 このような外部サービスの成果物をGitリポジトリで管理して開発者は翻訳作業にできるだけ関与しない状況を作るというのは、とても良い仕組みだなと思いました。

初心者Webエンジニアを支える技術 (@migrateur_k)

 10分枠で @migrateur_k さんが「初心者Webエンジニアを支える技術」というテーマでSQLパフォーマンスについて発表をしてくれました。開発現場をいくつも見ていると、ORDER BY 用のインデックスの考慮が抜けているプロジェクトをいくつも見てきましたので、実践的で良い発表だったと思いました。

GWにスマートスピーカーアプリを作ってみた (@ykagano)

 10分枠2本目、@ykagano さんがGWに作成したスマートスピーカー用アプリについて発表してくれました。 Alexa のスキルを作成する手順や方法について詳しく説明してくれました。 せっかく作ったのに審査が通らなかったというキレイなオチも会場の笑いを誘いました。 会場からは「自分もチャレンジしたい」との声も聞けました。

クライアントがWebエンジニアにお願いしたいこと、教えてほしいこと (YuheiKondo)

 10分枠3本目、ITエンジニアからクライアント側に転職された YuheiKondo さんが、ITシステムを発注するクライアントからの視点で「お願いしたいこと」「教えて欲しいこと」を発表してくれました。 エンジニアの勉強会でクライアントの視点の発表が聴けるというのは、とても画期的だと思われた参加者も多かったのではないでしょうか? とても貴重な発表だと思います、ありがとうございました。

Docker で Redmine システム構築した話 (おおとや)

 5分枠でおおとやさんが「Docker で Redmine システム構築した話」について話してくれました。 レガシーな Redmine システムをパフォーマンスを改善させつつ Docker を取り入れたシステムに移行した流れを発表してくれました。 5分間の短い枠だったのであっという間のプレゼンテーションでしたが、キーワードをピックアップできただけでもとても参考になりました。

プログラミングのお勉強としてscratchをさわってみた (@iwanaga0918)

 勉強会最後、5分枠で@iwanaga0918さんが、ブラウザ上でプログラミングを学習できる「Scratch」について発表してくれました。

 Scratch のサイトはこちらです。

scratch.mit.edu

 プログラミングのパーツをドラッグするだけで簡単にプログラミングを体験できる、プログラミング初心者にとても良いサービスですね。 僕もさっそく帰宅して触ってみました、本当に良くできていますね!


運営について振り返る

 ここからは運営について振り返ります。

会場について

 WEBエンジニア勉強会の企画を始めて間も無く1年になろうとしています。 ありがたいことに、回を重ねるごとに参加者も増え、広い会場を用意する必要が出てきました。 ということで、今回は Yahoo! JAPAN さんのイベントスペース「LODGE」に応募しました。 LODGE は「WEBエンジニア勉強会 #02」を開催した際に審査落ちしたことがありましたが、本勉強会に参加してくれるようになった Yahoo! JAPAN の社員さんの協力の元、LODGE を使えるようになりました。 主催者の僕としては、今回の開催で嬉しいこと一つでした。 Yahoo! JAPAN さん、ありがとうございました。

スタッフについて

 嬉しい悲鳴ではありますが、勉強会の規模が大きくなるに連れて僕一人では会場設営が難しくなってきていました。 しかし、ありがたいことに今回は6名のボランティア・スタッフが会場設営を手伝ってくれました。 開催1ヶ月くらい前からスタッフ限定で Slack チームを作り、少しずつ準備を進めてきました。 僕が趣味の延長でやっているイベントにも関わらず賛同して手伝ってくれるというのは、本当にありがたいことです。 また、スタッフではない友人も開会時間よりもずっと早くに会場に駆け付けて設営と撤収を手伝ってくれました、ありがとう。

 これからも協力してくれるという人を頼っての開催となると思いますが、今後ともよろしくお願いいたします。 また、もし「手伝っても良いよ」という方がおられましたら、お知らせ頂けると嬉しいです。

参加者コントロール反省点

 LODGE の利用規約上の都合により、イベント1週間前に申込みを締め切りました。 その点はイベント説明ページに注意書きをしTwitterなどでも発信しましたが、申込締切後も「参加したい」との問い合わせを頂きました、ありがとうございました。 来場された方はわかると思いますが、LODGEはオープンスペースがイベント会場であり、LODGEからも「当日にLODGEの利用者が飛び入り参加することもある」という点を言われていました。 その通り、当日「参加したい」という申し出への対応がありました。 今回のイベントを通して「LODGE利用者が飛び入り参加する」という意味(雰囲気)がわかったので、次回LODGEを利用する際には企画時から考慮して改善したいと思いました。

懇親会反省点

 ありがたいことにイベントの回を重ねるごとに懇親会参加希望者が増え、勉強会後にその場で「ノリ」で飲みに行く人を集う方法は参加者をコントロールができなくなってきたため、今回は connpass で懇親会の別イベントを立てて、お店を予約する「事前受付制」とし、connpassでその旨をアナウンスしました。 その結果、申込み枠を超える人数の応募がありました、ありがとうございました。

 しかし、当日になりいくつかの問題と反省点が出ました。 まずは当日のドタキャンが多数あったことです。 お店は予定人数で予約してあったため、急遽「懇親会の枠に空きがでた」ことをTwitterでアナウンスしたところ新たな希望者が申込みをしてくれて、勉強会開始時には懇親会枠を埋めることができました。 しかしながら、勉強会終了後に「懇親会が事前予約制だったことに気づいていなかった人」が数人出て、とても心苦しいですが参加をお断りしました。 しかしこれで問題は解決していませんでした、予約したお店に集合してみると参加人数が全然足りませんでした・・・。

 懇親会については、企画方法は改めて考える必要がありそうです。 今回懇親会に参加できなかった方は申し訳ありませんでした。 次回以降は、例えば勉強会をしたその会場でそのまま懇親会をする方法などを考えたいと思っています。 その方法でも、もしかしたら問題が出るかも知れませんが、参加者が何人になるか分からないので飲み屋を予約する方法は難しそうです。

運営費用

 勉強会の規模が大きくなるに連れて、備品の調達などで細かい出費が増えてきました。 もっと早く気づけば良かったのですが、今回の会場 LODGE は無料での利用だったので、LODGE予約時に「無料イベント」という申請をしてしまい変更が効かなかったため、今回は運営費用を全て実費で賄いました。 ボランティア開催のイベントですので利益は求めていませんが、次回から会場設営費を回収できるだけの参加費は検討しようと思いました。 (参加者1人500円程度)


WEBエンジニア勉強会 #08

 次回の「WEBエンジニア勉強会 #08」ですが、まだ時間・場所が決定していません。 決定し次第、公式のSNSアカウントで告知しますので、ぜひウォッチして頂ければと思います。 6月末〜7月頭を予定しております。 また、登壇者も募集しています。 発表したいテーマがある方は、今からでも構いませんのでご連絡頂ければ幸いです。

謝辞

 最後になりましたが、今回の「WEBエンジニア勉強会 #07」の運営をサポートしてくれたスタッフの皆さんと友人、登壇発表をしてくれた皆さん、そして参加してくれた皆さん、ありがとうございました。 これからも「WEBエンジニア勉強会」をよろしくお願いします。

WEBエンジニア勉強会 #07 を開催します

僕が主催している「WEBエンジニア勉強会」の第7回目「WEBエンジニア勉強会 #07」を05月18日(金)に、LODGE (Yahoo! JAPAN) にて開催します!

web-engineer-meetup.connpass.com

今回は LODGE (Yahoo! JAPAN) というとても大きな会場での開催ということで、参加申込者全員が参加できる見込みです。 ぜひお気軽に申込みください。

また、今まで主に公式Twitterアカウントにてイベント告知を行なっていましたが、Twitter を積極的に利用していない参加者の方もいらっしゃると思いますので、新たにFacebookページも開設し、勉強会の情報を受けやすくしました。 Facebook をご利用の方はぜひフォローをお願いします。 現時点での公式SNSアカウントは以下の通りです。

なお、LINEアカウントの開設も準備していますので、開設した際にはまたお知らせいたします。

今後とも「WEBエンジニア勉強会」を、どうぞよろしくお願いいたします。

日本語のエンジニア系Podcastの成長を集計してみた

 「日本語のエンジニア系 Podcast が年々増えている」という感覚があり、同僚に「エンジニアがやっている Podcast が増えてきていますよ」と言ってみても、「Podcast って10年以上前に流行ったヤツでしょ? 本当? 俺の周りは全然聴いている人いないぜ?」とか言われてしまい、無理に押し付けるものでは無いので黙ってその場は流したものの「それだったら、具体的な数値を示してみよう」と思い立ち、本記事を書いている、今ココです。

集計方法

 次のような手順で集計を行いました。

  1. 日本語のエンジニア系 Podcast を見つけ出す。
  2. 見つけた Podcast の RSS フィードをクロールして、集計に必要な情報ををDBに格納する。
  3. SQL で集計値を出力する。

 まず日本語のエンジニア系 Podcast を探します。 エンジニア系の Podcast は、Qiita記事「日本語Tech系Podcastいろいろ」にほぼまとまっていました。 念のため自分なりにググって探してはみたものの、完璧に網羅されていました。 あとは Podcast アプリのテクノロジーカテゴリーの Podcast を確認して追加したりしました。

 次にそれぞれの Podcast の RSS フィードのURLを一つずつ調べました。 Podcast の公式ホームページに RSS フィードへのリンクがあるものに関しては簡単でしたが、iTunes へのリンクしか貼っていない場合も多く苦労しました。 Podcast の配信に SoundCloud を利用している Podcast に関しては、SoundCloud の User ID が分かればフィードのURLも自動的に分かることを発見しました。

 それぞれの Podcast の RSS フィードがわかったら、RSS フィードにアクセスして XML をパースし、Podcast のエピソードごとにレコードを作成しました。 しかしながら、主に独自のブログなどで Podcast を配信しているいくつかのサイトにおいて RSS フィードの読み込みで XML の妥当性エラーが発生したり、Podcast の RSS として情報が欠けていたりしていました。 簡単に直せるものは Parse 時に補正して取り込んだりしましたが、残念ながら全ての Podcast のフィードを取り込むのは諦めました。 とは言え、9割の Podcast の情報は MySQL に落とし込むことができました。

集計結果

 ということで、日本語のエンジニア系 Podcast をいくつかの観点で集計しました、その結果は以下の通りです。

月別エピソード数

 月別にどれだけのエピソードが配信されているのかをグラフにしてみました。 2011年05月以降、次のように遷移しています。

f:id:OSCA:20180419093221p:plain

 2011年・2012年は「ありえるらじお」と「AccSell.net」だけが配信されており、2013年になると「Rebuild」の配信が始まって、それからは徐々に Podcast が増えていったようにみえます。 2018年の4月現在まで山あり谷ありで増減はありますが、徐々に増えていっていると言えるのではないでしょうか。

月別 Podcast 誕生数

 次に Podcast の初回エピソードがいつ配信されたのかを調べ、月別に Podcast の誕生数を出してみたのが次のグラフです。

f:id:OSCA:20180419093458p:plain

 あまり大きな特徴があるグラフではありませんが、なんとなく年末年始に新しい Podcast が誕生する傾向があるように見えます。 ということに気づき、また上の「月別エピソード数」のグラフをみてみると、年末年始の月が山になっているようにも見えます。

所感

 集計をして思ったことをざっくばらんに残します。

  • 日本語のエンジニア系 Podcast は増えているんだ!
  • Podcast 配信用の RSS フィードの XML は、結構好き勝手に書かれている。 XMLとしての妥当性が怪しいフィードも、Apple (iTunes) は柔軟に対応してくれているっぽい。 Apple が公開している Podcast 用の RSS 仕様はこちらで確認できる。
  • どのくらいの長さのエピソードが多いのかも統計を出したかったが、多くのフィードXMLは itunes:duration が設定されていなかったので集計できなかった。 音声ファイルを一つずつダウンロードして長さを取得すればできなくは無さそうだけど、手間なので断念。 いつかやってみたい。

おしまい。

WEBエンジニア勉強会 #06 を開催しました

 僕が主催する「WEBエンジニア勉強会 #06」を04月06日(金)に開催いたしました。 会場を提供してくれたココラブル様、登壇者の皆様、参加者の皆様、ありがとうございました。 本稿では、勉強会の内容や運営について振り返ります。

登壇内容

今回は8名登壇がありました、それぞれの発表内容は以下の通りです。

CSVと戦うためのPandas (@ariarijp)

 今回の会場を提供してくれた@ariarijp さんに、会社紹介・会場案内に続いて、LTをして頂きました。 connpass で勉強会に申込みをする際に参加者の方々に入力して頂いたアンケートを Redash で表示して頂いたのですが、その Redash にデータを食わせる際に connpass 独自フォーマットのCSVファイルを Pandas で加工した過程・方法についての LT でした。 Pandas は Python を使ったデータ分析の前のデータ加工で必ずと言っても良いほどお世話になるツールなので、参考になりました!

はじめてのサーバレス関数 (@engineer_osca)

 主催者の僕が、毎度「初心者向け」とうたってLTをしていますが、今回は「サーバーレス関数」について導入事例を紹介しました。 「サーバレスってなに?」というところから、クローラAPIを Azure Functions を利用して作成した事例をご紹介しました。

 発表の中で紹介した、Microsoft Azure, Amazon Web Services, Google Cloud Platform のそれぞれの「サーバレスとは何か?」の解説ページは以下の通りです。

Swagger (@ykagano)

 API仕様書をコードベースで作成できる Swagger について @ykagano さんに発表して頂きました。10分という短い時間の枠にも関わらず、網羅的にお話頂き参考になりました。 使ったことがない人に対しても、どんなことができるツールなのかが伝わったのではないでしょうか。

WEBエンジニアのための転職術 〜転職と採用の経験から〜 (@yuhei_kondo)

 30歳でIT業界に飛び込み、数々のロール・職種を経験されてき @yuhei_kondo さんによるキャリアに関するLT。 たロールモデルがなかなか見つけづらいWEBエンジニア業界に対して、一つのヒントを与えてくれたのではないかと思います。 とても興味深いプレゼンテーションでした。 発表資料はこちらで公開されています。

 本勉強会は、WEBエンジニアのためになりそうなテーマを幅広く取り上げることを目的にしていますが、キャリアについての話題をしてくれる方が登場したのは、主催者としてとても嬉しく思いました。

ゼロから始めるPWA入門 (@__syumai)

 徐々に勢いが増してきていると感じているPWAについて @__syumai さんがLTをしてくれました。 @__syumai さんが PWA の開発をした際に必要になった技術・知識・ノウハウなどが詰まったプレゼンテーションでした。 まだ取り組んだことがない方が多い技術だと思いますので、一つ一つのキーワードが新鮮だったのではないかと思います。

表も裏もTypeScriptでWebサイトをリニューアルした話 (@zuckey_17)

 SPA (Single Page Application) で作っていたWEBサイトを、サーバサイドレンダリングも取り入れるようにリニューアルしているという話について、@zuckey_17 さんに発表頂きました。 SPA のサイトだと SEO, OGP の対応が難しいことを克服するためにリニューアルを実施しているとのことで、フロントのサーバサイドのプロジェクト構成などについて試行錯誤の過程を発表されていました。

全リソースぶっ壊し回避のためのTerraform構成 (@3s_hv)

 Hashi Corp のツール「Teraform」の紹介とノウハウについて @3s_hv に発表して頂きました。 Teraform 自体は知っていましたが、実際に利用したことがないので参考になりました。 Hashi Corp のツールだと Vagrant が圧倒的に有名ですが、その他のツールがどれくらい利用されているのかがとても気になっていました。 今度また別途、個別にお話を聞けたらと思いました。

まだテーブル定義書をエクセルで書いて消耗してるの?(@nabedge)

 データベース定義書を、実際に動いているデータベースからリバースして作成する方法について、@nabedge さんにお話頂きました。 今回の発表では、具体的なツールとして DBFlute を例にされていました。 プレゼンテーション後半の「ソフトウェア開発には "変わるもの" と "変わらないもの" がある」というお話がとても良かったです。 その時その時のツールは時代や流行によって変わってしまうものですので、その本質である概念や基礎技術を見極めることが重要だと、長くソフトウェア開発をしていると本当に身にしみて思いますね。

運営に関すること

 今回の勉強会の運営について、少しばかりメモを残したいと思います。

会場について

 今回は、以前に「Redash Meetup #1」に参加した際に知り合いになった @ariarijp さんに、ココラブル社の会議スペースをご提供頂きました。 このようなボランティア・コミュニティにはとてもありがたいことです、ありがとうございました。

申込数・参加率について

 今回の勉強会は、connpass で申込みを開始してわずか1.5時間で登壇LT枠が埋まってしまったのは、僕にとって一番のサプライズでした。 「LTしようかなと悩んでいる間に枠が埋まってしまった」という声も聞こえました。 勉強会の知名度が高まっているのか、渋谷パワーなのか。 大変嬉しいことです、ありがとうございます。

 今回の申込み枠は合計40人でしたが、実際の参加者数は29人でした。 過去の経験から「75%」という数字は良い方だとは思いますが、運営としてはもう少し高まらないものかと感じます。

懇親会について

 今回は様々な都合により、勉強会としての懇親会は開催しませんでした。 期待されていた方がいましたら、申し訳ありませんでした。 主な理由は次の通りでした。

  • 今回の会場の周りに、すぐに入れる大きな飲み屋がなかった。
  • 回を重ねるごとに、懇親会の規模も大きくなってきたこと。
  • 懇親会の規模が大きくなることは嬉しいのですが、店探しが大変&人数が定まらないので予約が難しいのが現状。
  • 今回の勉強会後の天気が「大荒れ」予報だった。

 僕自身も懇親会はやりたいと思っているので、懇親会の規模・人数調整の点については、今後何らかの対策をうたないといけないと思っています。 例えば会場を移動せずにそのまま会場内で二次会をやるなどです。 ただし運営が僕一人の今の状況ではとても難しいのが現状です。 ですが、何か考えます。

軽く飲みに

 「懇親会はやらなかった」と書きましたが、「次回は Yahoo! LODGE で開催するので、運営スタッフを募集します」と勉強会中で募集したところ、とてもありがたいことに「手伝いますよ」と言ってくれた方がおり、今回の片付けも最後までお手伝いして頂きました、本当にありがとうございました。 そういうこともあり、最後まで会場の片付けを手伝ってくれた方と軽く飲みに行かせて頂きました。 「運営を手伝ってもいい」と言ってくれる方には、本当に感謝しかありません。 何卒よろしくお願いいたします。

次回 WEBエンジニア勉強会 #07

 次回の「WEBエンジニア勉強会 #07」は、05月18日(金) に Yahoo! LODGE にて開催です! 今までとは違って、申込者が全員参加できるような大きなスペースでできることになりました、本当に嬉しいです。 次回もぜひ多くの皆様にお越しいただければ嬉しく思います、またお越しいただけるように運営頑張りたいと思います。

lodge.yahoo.co.jp

みんな、テストってどうやってるの?

 昨日は、某社のエンジニア向け勉強会で「みんな、テストってどうやってるの?」というセッションを行いました。 某社は社員が数千人いて開発しているシステムも様々で、レガシーなCOBOLシステムを作っている人もいれば、最先端のシステムをやっている方など様々です。 そんな様々な人がそれぞれの立場で「どうやってテストをやっているのか?」の意見交換をしたら楽しいのではないかと考え、講義形式ではなくディスカッション形式のセッションを開催することにしました。

 また、上のように考えたのには、もう一つキッカケにがあります。 それはテック系Podcastの大御所「Rebuild」のエピソード29「Rate My App (Naoya Ito)」 で、宮川達彦さんと伊藤直也さん(id:naoya)が、江島健太郎さん(id:kennejima)のブログ記事「テスト考2014」についてお話されていたのが記憶に残っていたためです。

セッションについて

 開催の週は、毎日のように (1) Rebuild のエピソードを毎日聞き直し、(2)「テスト考2014」に対して言及しているブログを読み漁り、(3) DHHの記事「Testing like the TSA」をチェックして当日に挑みました。 セッションにおける私のホストも、これらを中心とした感じだったと思います。

 今回のセッションで利用したスライドは下のものですが、ディスカッション形式のセッションだったことと、JUnitのテストコードを示したこともあり、スライドだけだと伝わらないと思いますが、それでも公開しておこうと思います。

参考文献

 上記の繰り返しっぽくなってしまいますが、セッション中に参加者の方に共有した参考文献を列挙します。 下記の記事が参考になりました。

その他

 今回のセッションは、(確か)10名のエンジニアの方々に参加いただきました。 参加者の方の自己紹介からセッションを始めたのですが、自己紹介が意外と盛り上がりました。 参加者向けのメモですが、自己紹介で盛り上がったキーワードだけ記録として残しておきます。

 とても印象的だったのはTAPというガジェットです。 メリケンサックみたいな見た目ですが、とても興味深いです。 参加者の方の1名が購入を予定しているみたいなので、ぜひいつか実物を見せてもらいたいです。

おわりに

 テストという地味なお題のセッションでしたが、それぞれが日々の業務の中で思っているテストのことについて意見交換ができ、それなりに有意義な会になったのではないかと思います。 少しでも皆さんの業務のヒントになったら幸いです。

Redash Meetup #1 に参加しました

 本日は以前にハンズオンに参加した「Redash Meetup #1」に参加者として参加してきました。 簡単ではありますが、参加レポートを残したいと思います。

Redash 導入事例から考える OSS BI ツール導入チェックリスト (@ariarijp)

 本Meetup主催者の @ariarijp さんのプレゼンテーション。 ご自身が所属されている会社での取組みの話をお話されていました。 その中でも僕に響いたのは「データ可視化プラットフォームを社内でオープンにすることで、社員それぞれのデータアクセスへの敷居が下がり、さらには社員それぞれが便利にデータを使い始めた」という状況を作り出せたという点で、まさに会社・組織におけるイノベーションだと思います。 プレゼンテーションの中にもありますが「社員が良い意味で欲張りになる」という状況は、会社にとってそれ以上嬉しいことはありません。 やはり「価値あるデータが埋もれていた」ということですね。

ジモティーでの Redash 活用事例 (@kyoshidajp)

 次の発表は @kyoshida さん。 Redash の Git リポジトリでコミットしているログを見ていたので「わぁ、コミッターの人だ!」となりました! ジモティでの Redash の活用方法についてお話されていましたが、業務の中で不便に感じた点を Redash 本体のGitリポジトリに Pull Request してマージされているというのが、素晴らしいと感じました。

僕と Redash と Athena (@dyuju_you)

 続いて @dyuju_you さんの Amazon Athena のLT。 Redash を組織内でオープンに公開したところ、無邪気に「SELECT * FROM table_name」のようなクエリを投げる人たちがいて、10TBのデータの中からデータを取得しようとして落ちるし課金も大変になったという点を、Redash のソースコードを修正して回避したりしたという経験談を共有頂きました。

Redash ユーザーのための Metabase 入門 (@manabusakai)

 最後に @manabusakai の Metabase のお話。 ちょうど僕も今日の昼にインストールした(ただしログインはしていない)ばかりだったので、とても面白く聞くことができました。 LT枠で5分の発表でしたので、あまり突っ込んで機能を把握はできませんでしたが、良いキッカケになりました、ありがとうございました。

所感

 やはり Redash は、単なるBIツールではなく「クエリを共有できる」「クエリをフォークできる」という、ユーザ間でのソーシャル連携的な要素がとても素晴らしいと思います。 この2つの特徴が、社内のコミュニケーションを促進させますし、社内のデータ活用の雰囲気を作り出してくれるのではないかと感じます。

 話は違いますが、本ブログの前回記事「Redash の CentOS 7 セットアップ用スクリプトをコミットしました」について、参加者の方の数名に触れて頂きました、ありがとうございます。 Redash 4.0 でも動作することが確認できたら、Pull Request 送ってみようかなと思っています。

techblog.oscasierra.net

 最後になりましたが、主催して頂いた id:kakku22 さん、 id:ariarijp さん、お疲れ様でした! ぜひ、次回開催の際は、設営などお手伝いさせてください。

Redash の CentOS 7 セットアップ用スクリプトをコミットしました

経緯

 先日 id:kakku22 さんと id:ariarijp さんが主催した、オープンソースのBIツール「Redash」について学ぶ「Redash Meetup #0.1 - Redash 初心者向けハンズオン」に参加しました。 そのハンズオンにおいて、参加者の間で「Redashは導入にハードルがある」ということが話題になりました。

 Redash の導入方法については公式サイトのこちらのページに書かれていますが、基本的には次の環境で「新しくRedash専用のインスタンスを作る」ことが前提になっています。

  • AWS
  • Google Compute Engine
  • Docker
  • Ubuntu (16.04)

 逆に次のような環境・方法でインストールしたい場合、その導入方法が見当たりません。

  • CentOS
  • apt パッケージ
  • yum パッケージ

 既存のインスタンスに導入するような方法や、CentOSにインストールするような方法がないことが、Redash導入のハードルを高めているというわけです。 せっかく良いツールなのに、とても勿体無いと感じました。

CentOS 7 のセットブートスクリプトを作りました

 僕自身が「さくらのVPS」をレンタルしてサービスを作っていたり、サーバーのOSは CentOS をメインに利用しているため、「無いなら作ってしまえ」ということで CentOS 7 用のセットアップ用スクリプト(ブートストラップ)を作ることにしました。

 と言っても、イチから作ったわけではなく、Redash公式がUbuntu向けにブートストラップを提供しており、それを CentOS 7 用にカスタマイズしただけのものです。 次の GitHub リポジトリで公開しています。

github.com

次のアクション

 次のアクションとしては、Redash 本体に対して Pull Request を送ってみたいと思っています。 本体に取り込まれるのがBESTでしょう。

 CentOS 6 系に対しても同様のブートストラップを作れればと思っています。 時間を作ってやってみたいと思います。

OSCA

初級WEBプログラマー。 Java, PHP を利用したアプリケーションを開発しています。 写真も好きで一眼レフを持って散歩するのが好き。

リンク