「mercari.go #8」に参加してきた!
はじめに
今日はメルカリで開催される「mercari.go #8」に参加してきました!
ハッシュタグ
#mercarigo
嬉しいご飯と可愛いビール♪
メルカリ(株)さんのご好意でご飯が!!
美味しく頂きました!
ご飯が定期的にデプロイされている。 #mercarigo
— Hiroaki Yamamoto (@hyamamoto144) 2019年6月14日
どんどん豪華になっているみたい!
タイムテーブル
時間 | 内容 |
---|---|
19:00 | 開場 |
19:30 ~ 19:40 | オープニング |
19:40 ~ 20:10 | @toshi0607 Goで学ぶKnative |
20:10 ~ 20:15 | 休憩 |
20:15 ~ 21:45 | @tenntenn Gotham GoとGopherCon EUに参加してきました |
20:45 ~ 20:50 | 休憩 |
20:50 ~ 21:05 | @__syumai Go + WebAssemblyを活用する |
21:05 ~ 21:20 | @yuki.ito E2E Testing with 'main' function |
21:20 ~ 22:00 | 懇親会 |
22:00 | 終了 |
本題
オープニング
mercari.go #8 は6/14開催です!
— morikuni (@inukirom) 2019年5月21日
- Knative
- Gotham Go & GopherCon EUの参加レポート
- WebAssembly
- E2E testing
について話します!#mercarigohttps://t.co/9aGPxhZ74M
自己紹介
mercari.goの取り組みについて
懇親会はGルールで
Goで学ぶKnative
発表者
スライド
内容
3月の登壇を記事にしていただきました!今日のmercari.goではバージョンアップ後のKnativeの概要とコードリーディング入門的なお話をします。#mercarigo
— かえる氏の闘争🐸🐸🐸 (@toshi0607) 2019年6月14日
/ Kubernetes・Serverlessとの出会いと、Knative入門 https://t.co/WQkm9zolsC
アジェンダ
- Knativeの概要
- KnativeとKuberenets
- Goで学ぶKnative
Knative
KnativeとKuberenets
「Eventing機能。Sourceから受け取ったイベントを、サブスクライバになっているServiceへBrokerが渡す。
— Siena. (@n_siena) 2019年6月14日
.oO(更に、k8s、カスタムリソースの説明が。ていねい。
#mercarigo
Goで学ぶKnative
Knativeは基本的にGoで書かれてる見たい。頑張れば読める!!https://t.co/hzgywdHhPC#mercarigo
— po3rin (@po3rin) 2019年6月14日
ちなみに講演者 @toshi0607 さんによる Knative 同人誌の購入はこちらから。#mercarigo https://t.co/QFpA0AfUR4
— チェシャ猫 (@y_taka_23) 2019年6月14日
先ほど PR があった CloudNative Days Tokyo 2019 の申し込みはこちらから。いまなら早割料金でチケット買えます。#mercarigo #CNDT2019 https://t.co/8pVRUe7cSX
— チェシャ猫 (@y_taka_23) 2019年6月14日
【PR】ちなみに Knative Eventing は、CNCF によるイベントトリガーの標準仕様 CloudEvents の v0.2 をサポートしているという意味でも興味深いです。いずれ、AWS Lambda と Knative を共通のインタフェースで呼び出せる日が来るかもしれません。#mercarigo #cndjp https://t.co/PJvMmo2xDD
— チェシャ猫 (@y_taka_23) 2019年6月14日
前々回のk8s meetupでカスタムコントローラの話出てclient-go試そうと思って結局試してなかったのがくやまれる( #mercarigo
— zaki (@zaki_hmkc) 2019年6月14日
感想
Kuberenetsも、Knativeも触っていないから「あーね。完全に理解した」って感じになってしまった。www
Knative触ったことなかったから難しかった......(それはそう) #mercarigo
— しゅもん (@shumon_84) 2019年6月14日
mercarigo初めて来て、すごいなあと。。。
— イエノカド@Web系エンジニア (@ienokado) 2019年6月14日
Knativeには全然触れていないので理解が追い付きません。
これを機会に学んでいきたいと思います。
#mercarigo
同じ感想の人がいた!仲間だwww
こうゆうところも触っていきたいけど、なかなかまだ手が出せない...。
GoとGopherCon EUに参加してきました
発表者
スライド
内容
Pack Man from Scratch
パックマンゲームを作るハンズオンをやったらしい
Interacting with custom-made hardware in Go
GoBot
塩ビパイプ叩いて、ゴールーチンで複数の音を出す、面白いなー#mercarigo
— ぶたンガス@可燃性🔥 (@butaosuinu) 2019年6月14日
The Athens Project - A Proxy Server for Go Modules
Go Modulesのプロキシの話
Slice Recycling Performance and Pitfalls
Sliceを再利用するパターンの紹介
www.slideshare.net
Leaksyncが一番良かったらしい。
CSI: Gopher
元ネタは「CSI: 科学捜査班」シリーズだよね。#mercarigo
— チェシャ猫 (@y_taka_23) 2019年6月14日
LinuxBoot: Firmware Tools & a busybox in Go
Go Busybox
Psychology of Code Readability
Rethinking Visual Programming with Go
感想
@tenntennさんのツイート見てて楽しそうだなぁって思ってたから、
今回詳細聞けて面白かった♪
「なぜか可視化に命かけてる人多い」wwww
— にったマン (@one_meets_seven) 2019年6月14日
#mercarigo
そして、可視化に命をかける人たちの情熱やばすぎるwww
Go + WebAssemblyを活用する
発表者
スライド
内容
Software Design 2019年6月号に記事を掲載したらしい。
WebAssembly
WebAssemblyはwasmと略すのね。#mercarigo
— fuguman777 (@fugumen) 2019年6月14日
syscall/jsパッケージ
Other
WASM+Goで静的解析すると良さそうだと思ってる #mercarigo
— tenntennʕ ◔ϖ◔ʔ ==Go (@tenntenn) 2019年6月14日
『Go + WebAssemblyを活用する』(__syumai氏)
— Siena. (@n_siena) 2019年6月14日
「Goにしかできないことをブラウザでやる→WASMがはまりそう。で、やってみた。
GOOS=js GOARCH=wasm でビルドすると、.wasmファイルができる。
Syscall/js パッケージを使うと、JSのObjectを参照したり関数を読んだりできる。
.oO(べんりそう!#mercarigo
「formatter/formatter.go でやっていること。ボタンクリック時に動かす関数を定義。コード中でHTMLをinsertAdjacentHTMLで組み立てる。ボタンを取得してクリックした時の動作を設定する。
— Siena. (@n_siena) 2019年6月14日
.oO(思ったより、ごりごりだな……。
#mercarigo https://t.co/u4e60YoJD1
Ojichat-web(Go+WebAssembly+Ojichat)https://t.co/X9zyvyaA79#mercarigo
— Matsufuji (@muff1225) 2019年6月14日
「GoとJSで、役割を分けるとよさそう。ojichatを使って、ojichat-webを作ってみた。syscall/jsに依存しなくできたので、GOARCH=wasmでなくてもテストを書けた。
— Siena. (@n_siena) 2019年6月14日
JSで、(new OjiChat).talkTo で goのコードを呼んで、出力するテキストを得られた。が、この作りだとメモリつらい。#mercarigo
備考
www.slideshare.net
E2E Testing with 'main' function
発表者
スライド
内容
『E2E Testing with 'main' function』(yuki.ito氏)
— Siena. (@n_siena) 2019年6月14日
「mainのコードはテストされない。テスト機同様のコードと重複しがち。
#mercarigo
サンプルコードのレポジトリ
Cloud Spannerのイベント宣伝
クロージング
備考
「vueで中規模以上のフロントエンドを組んでいて役に立ったtips」に参加してきた!
はじめに
久しぶりにサポーターズの勉強会に参加してきました。
場所が変わってて迷った...
いつも通り、メモだけ。
講師
【張 たいよ】 プログラミング自体は中学生のころからやっていましたが、自前のパソコンが手に入ったのが大学だったので、ずっと環境構築の不要なJavaScriptをやっていました。大学に進学したあとは、学園祭の情報部門で、後輩の指導を行ったり、知人の立ち上げたベンチャーでフロントエンドを書いています。現在は大学の4年生で、今は院試の勉強中です!
概要
vueでAPIエンドポイントが3桁くらいあったり、ページが50くらいあったりする、比較的大きなアプリケーションを組もうとして、コードがこんがらがってしまうことがあると思います。
そんなときに、vueだとreactに比べて、「こんなふうに状態を管理するとやりやすい」といった具体的なノウハウがあんまりネットに無いように思います。
そんな中で、手探りで実際に上のようなアプリを作ろうとして役に立ったこと、そして実際にやってみて気をつけたほうがいいことを伝えたいと考えました。
こんな話をします
無秩序だったvueプロジェクトを大幅にリファクタリングした話
API通信を一本化した話
atomic designを導入した話
vuexとnormalizrを使ってデータの記録方法を統一した話
vuexでのAPIに由来するデータとviewの状態に由来するデータの書き分け
これらの点を実際にやってみてよかったところ
講演
スライド
メモ
まだVueを始めて間もないので、知らなかったものをメモ。
Vuex
Vuex は Vue.js アプリケーションのための 状態管理パターン + ライブラリ
Swagger
SwaggerでAPIドキュメントを作っているので、これからVue側の関数を自動生成した。
Atomic Design
Nuxt.js
感想
「悩んで行き着く先は似てるね。」ってすごく思った。
「Go(Un)Conference(Goあんこ)LT大会 6kg」に参加してきた!
はじめに
今回は、「Go(Un)Conference(Goあんこ)LT大会 6kg」に参加してきました!
ハッシュタグ
#gounco
タイムテーブル
時間 | 予定 |
---|---|
19:00 ~ 19:30 | 受付開始〜開場 |
19:30 | 会場説明など |
19:40 | 開始 |
「余興」 by deadcheat | |
「プログラミング実務経験半年のRubyistが Goを学び始めて躓いたこと(仮)」 by nagata03 さん | |
「Functional Option PatternとGo」 しゅもん さん | |
「サーバへの接続を楽にしてくれるツールを作ってみた」 by さこけん さん | |
「Go言語のAPI内のvalidation error handlingの実装例」 by hgsgtk さん | |
「計測の追求とコンパイラ最適化」 by po3rin さん | |
休憩タイム | |
「Go 言語でタイムアウト付きのファイルロックを実現する」 by kawasin73 さん | |
未定 by abemotion さん | |
「slackをひたすら読み上げるコマンドを作ったら作業がはかどった」 by ikawaha さん | |
「Kubernetes のソースコードとの付き合い方(仮)」 by ponde_m さん | |
「pubsubと並行処理」 by takashabe さん | |
「WebAssemblyで画像加工」 by from_Unknown さん | |
以降 | 時間が余り次第、飛び込みLT |
いい感じのところでクロージング by syossan27 | |
いい感じに解散! |
すごいな。こんなに開始しか時間決まっていないイベントは初めてだ...
はじまる前に
ステッカー
受付済みましたらご自由にお取りください〜 #gounco pic.twitter.com/48OO9hzbUK
— しょっさん@ʕ ◔ϖ◔ʔ (@syossan27) 2019年5月27日
gopherくんのステッカーはなかったけど、mixi関係のステッカーたくさんもらった✨
— FUMI@Python&Go&Rust (@FumiProgrammer) 2019年5月27日
#gounco pic.twitter.com/k2quXnwJpC
お食事
おにぎりもらった😆✨
— FUMI@Python&Go&Rust (@FumiProgrammer) 2019年5月27日
あとで、ケンタッキーも来るらしい✨
#gounco pic.twitter.com/rWP4ivFbpV
ケンタッキーや😆✨
— FUMI@Python&Go&Rust (@FumiProgrammer) 2019年5月27日
わーい🙌
#gounco pic.twitter.com/uwSppRCKFU
mixiさんありがとうございますm( )m
主催者mixiさんから
はじめてmixiのコンセプトを知った✨
— FUMI@Python&Go&Rust (@FumiProgrammer) 2019年5月27日
#gounco pic.twitter.com/YLRzIkUfBs
mixiって、従業員1000人超えてないのか!知らなかった…#gounco
— FUMI@Python&Go&Rust (@FumiProgrammer) 2019年5月27日
https://t.co/G3LVixzRvr いいサービスだなーmixiさんさすがだなー #gounco
— deadcheat (@deadcheat) 2019年5月27日
いろいろ言語使ってるよー
— FUMI@Python&Go&Rust (@FumiProgrammer) 2019年5月27日
#gounco pic.twitter.com/PmzNFTwpmX
キャンセル者どんどん増えてて、主催者辛い...#gounco
— FUMI@Python&Go&Rust (@FumiProgrammer) 2019年5月27日
イベント主催者からのお願い:
— しょっさん@ʕ ◔ϖ◔ʔ (@syossan27) 2019年5月27日
・キャンセルは早めにね!
(飲食の兼ね合いもあるので・・・)
・無断キャンセルはやめてね!
(毎回数人は出るので・・・)
・キャンセルコメントはなるたけ書いて欲しい
(当日に無言キャンセルされると悲しい気持ちになる・・・)
セッション
余興
登壇者
deadcheat
https://twitter.com/deadcheattwitter.com
スライド
内容
元号めんどくさそう… #gounco pic.twitter.com/GZEAkDWKnX
— 青ごへいもち (@blue_goheimochi) 2019年5月27日
Goで元号を取ってくるプログラム
— プログラムを書くニワトリ (@from_Unknown) 2019年5月27日
リストを書くのが一番つらかった #gounco
golangで元号返すやつって意外とGitHubでみんなやってる。 #gounco
— まっぴぃ (@mappie_kochi) 2019年5月27日
まとめ「西暦を使いましょう」www #gounco
— 青ごへいもち (@blue_goheimochi) 2019年5月27日
元ネタ
今回作ったもの
プログラミング実務経験半年のRubyistが Goを学び始めて躓いたこと(仮)
登壇者
nagata03
スライド
内容
自己紹介
食べログの中の人。
Gopherになりたい、Python好きの、rubist。
Goを学んで戸惑ったこと
- 例外機構がない
- インターフェースってなんぞ?
Goは例外処理がないんじゃなくて、こういうことなんだよ。 #gouncohttps://t.co/ici6QBdvZ6
— まっぴぃ (@mappie_kochi) 2019年5月27日
Goのinterfaceみたいならこれとかかな #gouncohttps://t.co/Rc9DYwEjMz
— まっぴぃ (@mappie_kochi) 2019年5月27日
業務レベルのGoで書かれたシステムのエラーハンドリング例、確かに気になる #gounco
— showylee (@showylee_7) 2019年5月27日
Functional Option PatternとGo
登壇者
しゅもん
precure-3dprinter.hatenablog.jp
スライド
Not found.
内容
Functional Option Patternhttps://t.co/DKNtlBMf5m
— FUMI@Python&Go&Rust (@FumiProgrammer) 2019年5月27日
#gounco
FOPはこのあたりをみると良いよ。 #gouncohttps://t.co/7MvRWCRhKr
— まっぴぃ (@mappie_kochi) 2019年5月27日
Goに入っては、Goに従え
— FUMI@Python&Go&Rust (@FumiProgrammer) 2019年5月27日
#gounco
サーバへの接続を楽にしてくれるツールを作ってみた
登壇者
さこけん
スライド
内容
https://t.co/UOeDJJsNFA
— FUMI@Python&Go&Rust (@FumiProgrammer) 2019年5月27日
#gounco
ワイ、似たようなものを作った記憶が🤔https://t.co/K2hBGiLS6i#gounco
— しょっさん@ʕ ◔ϖ◔ʔ (@syossan27) 2019年5月27日
PCのセキュリティレベルが問われるツールだ・・・ #gounco
— deadcheat (@deadcheat) 2019年5月27日
便利そうだけど、セキュリティが...
使うためのホストパスワードを設定できるようにしとかないと、リモートで入られたら終わりそう...
今後のアップデートに期待:)
Go言語のAPI内のvalidation error handlingの実装例
登壇者
hgsgtk
スライド
内容
こういうこと? #gouncohttps://t.co/T6IQPuGZJn
— まっぴぃ (@mappie_kochi) 2019年5月27日
InterfaceレイヤーのvalidateとInfrastructureレイヤーのvalidateは冗長な気がする。
— 上田 悠司 (@UEDAYUJI) 2019年5月27日
DBに保存できない値とすればInterfaceの段階でvalidateできるし。知らんけど。 #gounco
DBのバリデーションは別にGoだけで全部実現しようと考える必要はなくないか。制約もあるわけだし。 #gounco
— まっぴぃ (@mappie_kochi) 2019年5月27日
そういえば最近ベンチマークが秒指定じゃなくて回数指定出来るようになったんだよね。#gounco
— しょっさん@ʕ ◔ϖ◔ʔ (@syossan27) 2019年5月27日
計測の追求とコンパイラ最適化
登壇者
po3rin
スライド
内容
po3rin氏「誰かJavaを教えて欲しい」#gounco
— しょっさん@ʕ ◔ϖ◔ʔ (@syossan27) 2019年5月27日
ふむーhttps://t.co/gHW5CzMrcM#gounco
— しょっさん@ʕ ◔ϖ◔ʔ (@syossan27) 2019年5月27日
統計学的検定のP値、統計学的に有意、有意差、有意水準とは何か?https://t.co/esJPPYcLnH#gounco
— なな (@nananonofome) 2019年5月27日
C言語で同じような現象に当たってしまったことがあるhttps://t.co/V4wUcpEzm7#gounco
— しゅもん (@shumon_84) 2019年5月27日
#gouncohttps://t.co/pViy9Ol6f0
— まっぴぃ (@mappie_kochi) 2019年5月27日
インライン展開は消されないです!消されるのはDead code eliminationですね!#gounco
— po3rin (@po3rin) 2019年5月27日
すいません。正しくは「インライン化を止めるのではなく、dead code elimitationを防止できるです。」テンパっていて説明した間違えました。。#gounco
— po3rin (@po3rin) 2019年5月27日
Go 言語でタイムアウト付きのファイルロックを実現する
登壇者
kawasin73
スライド
内容
「言語の壁をぶっ壊す」かっこいい! #gounco
— 青ごへいもち (@blue_goheimochi) 2019年5月27日
FLOCKhttps://t.co/3k04Eyjc7n#gounco
— なな (@nananonofome) 2019年5月27日
https://t.co/4d0xYmX8SI
— なな (@nananonofome) 2019年5月27日
には、プロセス間のロックの順序が崩れるなどの欠点があり、https://t.co/mh8AdZi5Kx
にはgoroutineがリークする、ファイルディスクリプタなどのリソースがリークするなどの欠点がある。#gounco
Goではブロッキングの中断は不可能!? #gounco
— 178inaba (@178inaba_) 2019年5月27日
GoはsigactionにSA_RESTARTが指定されている #gounco
— 178inaba (@178inaba_) 2019年5月27日
Goをcでぶっ壊すのパワーワード! #gounco
— たか (@happylifetaka) 2019年5月27日
pthread_killhttps://t.co/hhsrZzNoB8#gounco
— なな (@nananonofome) 2019年5月27日
「ファイルロック、厳密にやるならGoを使わない」見事な着地点w #gounco
— S.Nagata@駆け出しWeb系BEエンジニア (@s_naga03) 2019年5月27日
runtime.LockOSThread()でスレッド固定できるのでここまでやらなくても良さそう #gounco
— しゅもん (@shumon_84) 2019年5月27日
runtime.LockOSThread() も必要なので使っていますが、それだけは不十分なのでここまでややこしいことをしましたwhttps://t.co/3qX51dHOZm#gounco
— かわしん@ソフトウェアエンジニア (@kawasin73) 2019年5月27日
未定
登壇者
abemotion
スライド
内容
弊社もGo Modules対応doneです #gounco
— Kazuki Higashiguchi (@hgsgtk) 2019年5月27日
depからgo modに移行するとCIのときにdepのインストールとdep ensureしなくていいから移行おすすめです。#gounco
— 178inaba (@178inaba_) 2019年5月27日
セマンティックバージョニングについては、https://t.co/xIpklhnYf2#gounco
— なな (@nananonofome) 2019年5月27日
slackをひたすら読み上げるコマンドを作ったら作業がはかどった
登壇者
ikawaha
スライド
Not found.
内容
goahttps://t.co/3dkgW9pLaX#gounco
— なな (@nananonofome) 2019年5月27日
sayコマンド知らない人はこちら #gouncohttps://t.co/X2eWtz2foA
— まっぴぃ (@mappie_kochi) 2019年5月27日
selectを書いているのにctx.Done()を使わないのはおかしいと思うようにしている
— 178inaba (@178inaba_) 2019年5月27日
↓
selectを書いたらctx.Done()を書くようにする#gounco
context周りの具体的な使い方と注意話感謝 #gounco
— Kazuki Higashiguchi (@hgsgtk) 2019年5月27日
Kubernetes のソースコードとの付き合い方(仮)
登壇者
ponde_m
スライド
内容
k8sの8は間に8文字あるかららしい。i18nも同じように18文字とほかの勉強会で聞いた。 #gounco
— たか (@happylifetaka) 2019年5月27日
k8s勉強したい人はこれおすすめ #gounco
— まっぴぃ (@mappie_kochi) 2019年5月27日
Kubernetes完全ガイド impress top gearシリーズ 青山 真也 https://t.co/Vd1esEC8Hw via @amazonJP
https://t.co/I4fIVlmL7s
— FUMI@Python&Go&Rust (@FumiProgrammer) 2019年5月27日
#gounco
https://t.co/HDEgK3nPh6 #gounco
— 178inaba (@178inaba_) 2019年5月27日
https://t.co/XIqPKRIAtT#gounco
— なな (@nananonofome) 2019年5月27日
備考
pubsubと並行処理
登壇者
takashabe
スライド
内容
CA(株式会社サイバーエージェント)のアドテクの中の人。
Cloud Pub/Subhttps://t.co/xggTjiWeYe#gounco
— なな (@nananonofome) 2019年5月27日
singleflighthttps://t.co/FeSZwRmKXJ #gounco
— 178inaba (@178inaba_) 2019年5月27日
x/time/ratehttps://t.co/oP5ah4xJVw#gounco
— なな (@nananonofome) 2019年5月27日
ちょっと記事古いけど、https://t.co/KxfrnyPVOWの話 #gouncohttps://t.co/CrV3qYfajz
— まっぴぃ (@mappie_kochi) 2019年5月27日
net/netutilhttps://t.co/TWqukKQfmX #gounco
— 178inaba (@178inaba_) 2019年5月27日
備考
GoConでのスライド
https://t.co/PTRYMYUQHL#gounco
— なな (@nananonofome) 2019年5月27日
WebAssemblyで画像加工
登壇者
from_Unknown
スライド
内容
Goうんこです!!!#gounco
— しょっさん@ʕ ◔ϖ◔ʔ (@syossan27) 2019年5月27日
言っちゃダメ!www #gounco
— 青ごへいもち (@blue_goheimochi) 2019年5月27日
https://t.co/AXgNftl92G
— FUMI@Python&Go&Rust (@FumiProgrammer) 2019年5月27日
#gounco
GopherJSはこちら #gouncohttps://t.co/DeWp6YbeHF
— まっぴぃ (@mappie_kochi) 2019年5月27日
備考
ゼロからはじめるWebAssembly入門https://t.co/8aCerzFdYz
— FUMI@Python&Go&Rust (@FumiProgrammer) 2019年5月27日
WebAssemblyが熱いhttps://t.co/F5OnTKZbVZ
#gounco
https://t.co/jkRK1vdX5B
— FUMI@Python&Go&Rust (@FumiProgrammer) 2019年5月27日
#gounco