初めてのオンラインLT会の準備と感想
これは「フィヨルドブートキャンプ Part 1 Advent Calendar 2020 - Adventar」の17日目の記事です。
昨日はR-Tsukadaさんの子育て中のぼくが実践している【時間管理術】と【生産性をアップさせる方法】を紹介|プログラミングとメンタルヘルスでした!
私は2020年12月12日(土)にオンラインで開催された「Rails Girls Gathering Japan」にて人生初LTをしました。
今後、初めて且つオンラインのLTをする方の参考になったらいいなと思います。
1,準備編
LT本番数日前にやっておいたこと
- スライド作り
私はMarpというアプリを使用しました。
Marp - Markdown Presentation Writer
マークダウンを使ってスライドを作成できるアプリです。
マークダウンで書くだけでいい感じにスライドっぽくしてくれます。
- 原稿作成
- 自分の発表を誰かに聞いてもらい、意見をもらう
誰かに聞いてもらうと自分の気づかなかった改善点を教えてもらうことが出来ます。
LT本番前日までにやっておいたこと
- スライドをいろんな形で保存しておく
(どんなアクシデントにも対応できるように)
Marpで作ったものをPDFで保存
SpeakerDeckで保存
(発表前なのでOnly myselfで保存)
LT本番当日準備したこと
- ブックマークバーの非表示
- 自宅のインターホンの音量を消音にしておく
作業部屋が無くリビングで行うため - Macの通知をおやすみモードにしておく
発表の際に通知音が入ってしまわないように - 使用していないブラウザやアプリを閉じておく
画面共有した際に、あやまって意図しないページを表示してしまった時のため
LTが終わったらすぐすること
- SpeakerDeck等で自分のスライドを共有する
私は発表に自分の発表を終えるのに夢中になってしまい、スライドを共有するのを忘れていました。(その日の夜にアップしました。)
2,感想編
発表前の緊張
本番3日前くらいから緊張がじわじわと押し寄せてきました。
本番が近づくにつれて、自分の発表の内容に自信が無くなっていったのですが、
「自分の感じたことは自分にしか発表できない」
この言葉にとても勇気をもらいました。
いざ本番!
発表の最中に自分の声が本当に聞こえているのかな、という不安が急に襲いかかってきました。
聞いている人は当然ミュートをかけているので、相槌や反応はもちろんありません。緊張していてツイッターなどの反応を追いかける余裕もありませんでした。
最後に
私にとってLTとは「オンラインで開催されるもの」というイメージだったのですが、コロナ以前はオフラインでやるのが当たり前だったという事を知りました。いつかオフラインでLTをやる機会がやってみたいなと思いました。
初めてのLTは緊張しますし、エンジニアでもない私が話しても意味ないのではないかと思ったりもしましたが、自分の経験や感じたことは自分にしか話せないので、意味がないことはないです!
ぜひLTをするかどうか迷っていたら勇気を出してやってみましょう〜!
ターミナルからSlackに投稿するまで②(投稿編)
ターミナルからSlackに投稿するまで②(投稿編)
実際に投稿していきます。
1, Testerを使って投稿をする
まだ、ターミナルからは投稿しません、、!
APIs > Using the Web API > chat.postMessage を開きます。
chat.postMessage method | Slack
ここにはメソッドの使い方が書いてあります。
Tester
を開いてこの画面からSlackに投稿してみます。
投稿できました!🎉
2,ターミナルを使って投稿する
先ほどTesterで投稿し成功するとこのような画面が下に表示されます。
赤文字の部分を使い、ターミナルから表示させていきます。
$ curl -H "Authorization: Bearer xoxp-XXXXX" -X POST "https://slack.com/api/chat.postMessage?channel=bot&text=test2&pretty=1"
xoxp-XXXXX
の部分には自分のOAuth Access Tokenを入力してください。そしてtext=
のところには分かりやすくするためにtest2
という文字を入れています。
はい!投稿できました〜!
ちなみに、
$ $ curl -X POST "https://slack.com/api/chat.postMessage?channel=bot&text=testdayooo&pretty=1&token=XXXX"
と1行でもかけます。 また、curlコマンドを実行すると
{ "ok": true, "channel": "C01GC5LC6DV", "ts": "1607866499.000100", "message": { ....
と表示されると思います。
これらを表示させないようにするにはsilent
モードと/dev/null
出力を使うと出来ます。
$ curl --silent -X POST "https://slack.com/api/chat.postMessage?channel=bot&text=hello&pretty=1&token=xoxp-XXXX" > /dev/null
と言ってもいちいちこれらのコマンドを入力するのは長いですよね。 次回はもっと簡単に投稿する方法の記事を書こうと思います!
ターミナルからSlackに投稿するまで①(準備編)
ターミナルからSlackに投稿するまで①(準備編)
ターミナルからSlackに投稿するまでを書いていこうと思います。 まず、準備編です。
1,アプリ作成
以下のサイトでアプリを作ります。 Slack API: Applications | Slack
- 必要な項目を入力します。
2,スコープを設定する
- User Token Scopesで「chat write」を選択します。(Slackに書き込むことが目的のため)
3,Slackにアプリをインストールする
4,OAuth Access Tokenの取得
これで準備は完了です。 次は実際に投稿していきます。
compact メソッド
Ruby | Flatten Array | Exercismにて。
問
入れ子になったリストのような構造体を受け取り、nil/null 値を含まない平坦化された構造体を返す関数を作る
例
1,[2,3,null,4],[null],5]
入力すると
[1,2,3,4,5]
と出力される
↓自分で考えたもの
class FlattenArray def self.flatten(array) flatten_array = array.flatten # 平坦化する flatten_array.delete(nil) # nil を消す。flatten_arrayにはnilが抜かれた状態だが、この返り値はnilになる。 flatten_array # nilがない状態の配列 end end
↓一番多くスターを獲得しているSiarhei Kavaliouさんの回答
class FlattenArray class << self def flatten(arr) arr.flatten.compact end end end
serg-kovalev's solution to Flatten Array on the Ruby track | Exercismより引用
compact
というインスタンスメソッド自身から nil を取り除いた配列を生成して返すので、上記の課題を全て解決できる。
参考
bundler
以前フィヨルドブートキャンプで「bundlerの基本を理解する」というカリキュラムがありました。 その時は理解したと思っていましたが、忘れてしまったのか、理解していなかったのか、どういうものか説明できなくなってしまっていました。 そこで参考にしたサイトです。 - 【Rails】結局bundlerって何?bundlerの仕組みを図解形 | Pikawaka - ピカ1わかりやすいプログラミング用語サイト - Bundlerの使い方 - Qiita
また、任意のgemをGemfileに追記してbundle install
してくれるコマンドがあるみたいです。
bundle add GEM_NAME [--group=GROUP] [--version=VERSION] [--source=SOURCE]
便利そう!
技術書の読み方 / 配列
最近、技術書(楽々ERDレッスン)を読んでいて全くわからず、フィヨルドのプラクティスも止まってしまった。。。
そのとき、りほやんさんに教えてもらった技術書の読み方。
学習を加速させるインデックス読書術 - Qiita
とりあえず、フィヨルドの課題を進めつつわからなくなったら本を読む、という形にしてみることにします!
配列の引き算
配列の引き算、なんとなく読んだことがあるけども実際に使ったことがありませんでした。
a = [1, 2, 3] b = [3, 4, 5] p a - b # => [1, 2]
左の配列の要素から共通する要素を除外する。
a~zの配列の書き方
私は
("a".."z").to_a
と書いたのですが、このような書き方もありました
[*"a".."z"]
Ruby Track | Exercismのpangramを通して学んだことです。
文中の空白削除 / with_indexの使い方
文字中の空白削除
gsubメソッドを使う
irb(main):001:0> a = "BUMP OF CHICKEN" irb(main):002:0> a.gsub(" ","") => "BUMPOFCHICKEN"
第一引数に指定したものを第二引数のものに全て置き換えることができる
with_indexの使い方
例えば、配列の中の偶数番目の数字だけ10倍にしたいな〜、というとき
arr = [1, 2, 3, 4, 5, 6, 7] arr.map.with_index{|n, i| # 偶数番目を10倍にするのでインデックス番号が奇数の時の条件を作る(インデックスは0から始まる) if i % 2 != 0 n * 10 else n end } => [1, 20, 3, 40, 5, 60, 7]
また三項演算子を使うと1行でかけます
arr = [1, 2, 3, 4, 5, 6, 7] arr.map.with_index { |n, i| i.odd? ? n * 10 : n } => [1, 20, 3, 40, 5, 60, 7]
Ruby | Luhn | Exercismを通して学んだことです
参考
- String#gsub (Ruby 2.7.0 リファレンスマニュアル)
- Rubyのmapメソッドでwith_indexを使う方法を現役エンジニアが解説【初心者向け】 | TechAcademyマガジン
- raven-rock's solution to Luhn on the Ruby track | Exercism