Machida.rb #04 に参加

Machida.rb #04

Machida.rb #04 - Machida.rb | Doorkeeper

今回のテーマはRubyのコードを持ち寄ってワイワイコードレビューする会!

ということで私も自作プログラムをレビューしていただいた。

レビューしてもらったコード

Slackのメッセージをコピペするといらない情報を落としてくれるCLIツール slack_message_to_plaintext を作っているので、それをレビューしていただいた。

ima1zumi/slack_message_to_plaintext

slack_message_to_plaintext を作った経緯と、出来ること

slack_message_to_plaintext はSlackのメッセージをコピペすると整形後のテキストを標準出力に返す100行程度のプログラム。

f:id:imaizumimr:20200811144613g:plain

FJORD BOOT CAMPでは学習した日は毎日日報を提出する必要があるのだけど、私はSlackに分報を書くことが多い。分報と日報両方書くのが面倒だったため、分報を綺麗にコピペしたら簡単に日報できるんじゃないか?と思った。しかしSlackはそのままコピペするとusernameとかreactionとかいらないものがたくさんついてきて、綺麗に直すのが面倒だったのでプログラムで整形してみることにした。

SlackのAPIを使えばjsonでデータ取得ができてもっと簡単な処理にできるのだけど、FJORDのSlackの管理者でもないし、貴重なApp枠(無料版のSlackでは10個までしかAppを入れられない)を取ってしまうのでコピペしたデータをinputにすることにした。

(余談だが、分報を日報にするという試みは失敗に終わった。気軽に今思ったことをポンポン書いていく分報と、ドキュメントとしての体裁をある程度整えたほうが読みやすい日報とでは、文体が全然違ったのだ…。今は分報は分報で気軽に投稿し、それを見ながら日報を別途書き起こすようにしている。)

機能としては以下の4点。

  • 名前を消す
  • reactionを消す
  • (編集済み)を消す
  • URL展開された文字列を消す
    • うまく消せないことがある...

こういったSlackのスレッドのメッセージを、 f:id:imaizumimr:20200811172840p:plain

そのままコピペするとこうなるので、 f:id:imaizumimr:20200811172452p:plain

こういうデータにして返している。 f:id:imaizumimr:20200811172528p:plain

レビューの仕方

レビューしてもらいたいプログラムを軽く説明して、Machida.rb の esa に気になった点を書いてもらうスタイル。

時間は約30分で、気になったところがある人から口頭で随時指摘をもらうという形。

レビューの感想

良かったところ

コードに具体的なアドバイスをいただいてめちゃめちゃ勉強になった。書き方で悩んでいたところを「こう書けるんじゃない?」と提示してもらって、そう出来るんだ!と気づけたり新しい書き方を知ることができた。

また、人前で自分のコードを説明して見てもらうという初めての経験が出来た。自分のプログラムを短い時間で説明して見てもらうのはなかなか緊張することと、自分はアドリブの説明がうまくないので事前準備しておいたほうがいいと分かった。FJORD生が多くて話しやすい Machida.rb でこういう経験ができて良かったと思う。

改善点

次にレビューをしてもらうなら改善して挑みたい、と思ったのは以下の点。

  • ソースコードの共有
    • Machida.rb開始後にGitHubに貼ったので参加者が読み込んだり動かしてみる時間がなかった。
    • レビュー時間が30分程度と時間に限りがあったので、読む時間の余裕がなかった。
  • 動作するバージョンの共有
    • Ruby 2.7以降でないと動かないことを直前にアナウンスした。
    • もしRuby 2.7が入っていない場合は時間がなくて手元での確認が出来なかったかも。
  • 説明する準備
    • 知り合いが多い中でも結構緊張した。
    • コードの説明は慣れていないので、LTのように事前に練習しておけばよかった。
  • テストコードを書く
    • テストは書こう!!!!
  • 最初にやりたいこととやっていることを分かりやすく説明したほうがコードに入りやすい。
    • もっと丁寧に動作を説明できればよかった。ざっくりしすぎて理解しづらい説明をしてしまっていた気がする。
  • 見てもらいたいポイントを明確にすればよかった
    • このメソッドのこの書き方を変えたい!とか明確に見て欲しいところを提示できればよかった。

感想

今回レビューしていただいて、色々な学びや気付きがあった。実際にレビューしてもらわないと気づけなかったことだと思う。また他の方のレビューにも参加できて楽しく学ぶことができた。こんな機会をくれたMachida.rbに感謝しています!

git commit でコミットメッセージ入力画面からコミットを取りやめる方法

コミットメッセージを消して保存すると取りやめることができる。

コメントは残っていても良い。

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   new file:   hoge
#

上の状態で保存すると、コミットメッセージが空なのでコミットに失敗しました、というメッセージが出てコミットされない。

$ git commit                     
Aborting commit due to empty commit message.

Webエンジニア勉強会inVR 第3回 テーマ「生産性アップの推しツール」 の録画を見た

【初参加歓迎】Webエンジニア勉強会inVR 第3回【YouTube Liveあり】 - connpass

2回目の参加。当日は終盤しか参加できなかったので録画を見た。

今回のテーマは「生産性アップの推しツール」

内容と感想

clusterの操作説明

clusterで参加している人向けの操作説明があって親切! cluster使ってみたいけどスペック的に厳しそう…

マイクといえば某オンライン勉強会で、果物リンさんがマイク良いものにしたら音質がすごくよくなったと仰っていた。

そのときはあまり違いがわからないと思っていたのだけど、Webエンジニア勉強会のように一人が登壇して発表する形式だとすごく個々人の音質の違いを感じる。音質良いと話にも集中しやすくなる気もするのでオンライン勉強会の登壇ではマイク重要かも…と思った。オンライン面接にも言えることかも

身近なツールを正しく使う:ういろうさん

  • VRアバターの手が動いててすごい!
    • 環境構築に25万😇
  • 効率化するとき、最も使う時間が長いものから効率化していくと効率がよいよね
    • コミュニケーションツールを最も使うのでは?
      • コミュニケーションツールでは視覚情報が大事. 図とか
      • まとめや図は大事!!
  • 対面ならホワイトボード
    • ホワイトボードノート
  • 今何の話してるかわからない問題
  • Marp

時間を意識する推しツールたち:kulunaさん

  • アークナイツ気になる
  • Focus To-Do

    • レポートすごい!!
      • 自分が集中している時間帯見れるのいい
    • 普段 Focus を使っているのでそっちを活用していこうと思った
      • Focus To-Do は無料でいろいろできてすごいし使いたいのだけど、 Apple Watch のインフォグラフ文字盤に対応していないので Focus を使っている
        • インフォグラフでない普通の文字盤には対応している
      • 私のApple Watch の文字盤はこれ、ここにFocus To-Do を表示させたかった

      f:id:imaizumimr:20200623141455p:plain

  • 頭痛〜る

    • 「頭痛始まる前に仕事を終わらせる」という発想がなかったので参考になった
  • meeting is moneyすごい
    • time is money...

Slackを中心に世界は廻っている :jiyuujinさん

  • 個人slackに情報ぽいぽい投げてくの便利そう
  • IFTTTとエゴサ相性よさそう
  • デモがあると分かりやすかったかも

ノンデザイナーズ・デザインツール:おとべさん

  • Figma 便利そう!!
    • 公式でAWSのアイコンいっぱいあるのすごい
  • 今後Webサービス作るときに使えそう
  • プロトタイピングツールというカテゴリをはじめて知った

行動に移したこと

  • Marps をインストールした
  • Focus に課金した
    • レポートも見れるようになりかなり使いやすくなった

新しいLinuxの教科書を読む会 #2 に参加

新しいLinuxの教科書を読む会

「新しいLinuxの教科書」を読む会 オンライン #2 - connpass

新しいLinuxの教科書を復習したいと思い参加した。

参加してみて新しいことをたくさん学ぶことができてよかった!以下感想など。

概要

  • Linuxの教科書のチャプター5〜6を読みながら、著者の二人が教科書に書いてあるトピックについて掘り下げたり派生したりしながら随時質問に答えるというスタイル
    • 質問はzoomのチャットでもマイクオンでもOKという感じ、何回かチャットで質問があがっていて質問しやすい雰囲気だった
  • 本の内容以外に2回LTがあった

学んだこと

  • 今どきのコマンドだとディレクトリとファイルは区別しているが本来Linuxは区別していない
  • aliasでls = ls -Fになるよう設定しておくと便利
  • 危険なrm
    • rm -rf / は危険なので今は打っても効かないようになっている
      • $ rm -rf --no-preserve-root スラッシュ すると本当に消える
    • $ rm * .txt * の後にspaceが入ると「 *.txt 」を削除してしまう
  • catは比較的読みやすい。C言語が読めれば読める
  • LGTMより言語化
    • どこをチェックしたか、ここはこう書く、とか
    • 後から入ってきた人にもわかるように
  • マニュアルの日本語版 JM Project (Japanese)
  • /proc を通してカーネルの現在のプロセス管理状態や情報取得ができる

感想

  • とても楽しかった!! 歴史のあるLinuxに親しみを感じた。
  • rm の話が面白かった。あるあるミスは自分もやってしまいそうなので注意しようと思った
  • /proc がすごい。カーネルが透けて見えるというかそこまで見せてくれるのかというか…Linuxの奥深さを少し垣間見た気がした。
  • お二人のバーチャル背景が笑い男ソニック・ザ・ヘッジホッグで安心感があった
  • また次回があればぜひ参加したい

kindle端末に電子書籍(pdfやmobiファイル)を送る

pdfmobikindleアプリ・kindle端末で読むことができる。

オライリーeBookで買った本をkindle Paperwhiteで読む!なんてこともできるのでそのやり方を書いておく。

有線接続するなどいくつか方法はあるがkindle端末送信用のメールアドレスを使う方法にする。

注意点

読んだページ、メモやマーカーなどの記録は端末間で同期されない。

共有したい場合はkindle以外のサービスで読んだほうがいいかも。iPhone/iPadユーザーなら、iCloudに入れてBookアプリで読むとか。

やりかた

kindle端末送信用のメールアドレスを調べる

amazonkindle > コンテンツと端末の管理 > 設定 > パーソナルドキュメント設定 から送信したい端末のメールアドレスをメモしておく

このとき、承認済みメールアドレスも確認する。このアドレスからkindleに送らないと迷惑メールとして弾かれてしまう。

メールアドレスを登録していない場合は登録しておく

https://www.amazon.co.jp/hz/mycd/myx#/home/settings/payment

f:id:imaizumimr:20200622100417p:plain

メールを送信する

承認済みメールアドレスからpdfmobi ファイルを添付し送信する。メールのタイトルや本文は不要。

pdf はファイル名が本の名前になるので、分かりにくいファイル名の場合は送信前にファイル名を変更しておくと良い。 mobi はいい感じにしてくれるのでそのままでOK

メール送信後、送信元アドレスに承認依頼メールが来るのでポチッと押せばそのうちkindle端末にダウンロードされている。

おわり

macOSをクリーンインストールする手順

まっさらにして必要なものだけ入れるための自分用の手順

なるべくシンプルにしたい

改訂

2020-07-17 表現の修正

2020-06-22 初版

感想

  • 消すのはかんたん。戻すのは大変。
    • 各種アカウントにログインするのが一番面倒だった。slackとか。。
    • パスワードマネージャ使ってるのでパスワードに関して頭を使うことはなくてよかった。パスワードマネージャおすすめ。
  • brew caskGUIをインストールできるのがめちゃめちゃ便利。
  • .bashrc などの設定系のファイルはこういう運用にすればよさそう。

事前準備

  • TimeMachineでフルバックアップ取得
    • TimeMachineからデータ抜き出せることを確認
  • macOSのバージョンアップ
  • VSCode拡張機能を整理・メモ
    • settings.json , keybindings.json をどこかに保存
  • .bashrc .vimrc などdotfilesをどこかに保存
  • Dashに保存してあるスニペットをどこかに保存
    • ~/Library/Application Support/Dash/library.dash
  • インストールして使っているGUIをメモ
  • brew list の結果を一応保存
  • .ssh を一応保存
  • Chrome拡張機能を整理(※メモ不要。Googleアカウントにログインすれば設定が同期される)
  • iCloudからMacを探すをオフにする
  • Bluetoothのペアリング解除(念の為)
  • Message, MusicなどApple IDのサインアウト(念の為)
    • Musicの認証を解除する
  • 1passwordなどのパスワードマネージャのログイン方法を確認
    • iPhoneなど他の端末でログインできればたいていなんとかなる

クリーンインストール実行

  • mac クリーンインストール で検索して出てきた記事を参考にする
    • バージョンによってやり方が変わるのでここには書かない

注意点

  • CatalinaからMacintosh HD - Data(ユーザーデータ) と Macintosh HD (システムデータ)というボリュームができており、Macintosh HD - Dataを消さないとゴミが残り続けるらしい
  • HD - Dataはボリュームをremove( - ボタン) して、HDは erase した。

セットアップ

  • Apple IDにログインする

最初にやること

ターミナルから設定
  • シェルの確認
$ echo $SHELL
/bin/zsh
  • 隠しファイルを表示する
$ defaults write com.apple.finder AppleShowAllFiles -boolean true
  • .DS_Store を作成しない
$ defaults write com.apple.desktopservices DSDontWriteNetworkStores true

システム設定

マウス
  • Magic Mouse を有線接続してペアリングする
  • 設定

f:id:imaizumimr:20200622092000p:plain

f:id:imaizumimr:20200622092253p:plain

キーボードの設定
  • 全般の設定

f:id:imaizumimr:20200622092308p:plain

  • Dictation をオフにする
  • input sourcesは後で設定する
    • とりあえずHiraganaを入れておけば日本語入力できる
macbookのキーボード

f:id:imaizumimr:20200622092407p:plain

HHKB
  • HHKBをペアリングする

    • ペアリングしたときに出てくる右Shiftがどうこう言ってくるやつはHHKBで適当なキーを押せばなんとかなる
  • 設定

    • JISキーボード
    • SW1, SW2 は ON の状態

f:id:imaizumimr:20200622092421p:plain

  • 解説
    • 左FnをCommandにしているだけ
    • 左Fnの設定を変えるために、SW2をONにしている
    • SW2をONにしてControlをCapsに設定、左FnをControlに設定している
      • CapsをControlに設定することで、刻印通りControlをControlのまま使う
      • ControlをCommandに設定することで、左FnをCommandにしている

トラックパッド

その他

  • Spotlight > キーボードショートカット > ショートカットのチェックを外す
  • セキュリティ&プライバシー > 一般 > ダウンロードしたアプリケーションの実行許可をオンにする
  • セキュリティ&プライバシー > ファイアウォールファイアウォールをオンにする
  • よく使うBluetoothアクセサリを接続
  • プリンタ > + でプリンタを設定
  • ディスプレイ > 画面の位置調整
  • 日付と時刻 > 時計 > 日付のオプション > 日付を表示にチェックを入れる
  • Sharing で表示名を変更する

ターミナルからの設定

brew でインストールできるものをインストールする

brew -v
brew update
brew upgrade
brew cask upgrade

brew cask install google-japanese-ime
# 先にインストールして再起動する

brew install git
brew install vim
brew install rbenv
brew install yarn
brew install python
brew cask install 1password
brew cask install google-chrome
brew cask install visual-studio-code
brew tap homebrew/cask-fonts
brew cask install font-ricty-diminished
brew cask install slack
brew cask install notion
brew cask install zoom
brew cask install firefox
brew cask install kindle
brew cask install skitch
brew cask install dash

brew doctor

インストールしたら初回起動・ログインをしておく

google IME, VSCode は後述

app storeからインストール

  • Dayone
  • Magnet
  • Tweetdeck
  • Brother iPrint & Scan
    • インストールできたら起動してプリンタに接続しておく

google IMEを設定

  • 再起動
  • システム設定 > キーボード > input sources
  • macOS標準の Japanese を選んで Romaji にチェックを入れる
  • macOS標準の ABC を消す
  • GoogleIMEの Hiragana Alphanumeric を入れる
  • macOS標準の Japanese を消す

VSCodeの設定

VSCodeで使っている拡張機能とsettings.json - いまブログ

Ruby

  • zshrcに書く
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
  • rbenvでRubyをインストール
$ rbenv -v
$ rbenv init
$ rbenv install -l
$ rbenv install 2.7.1
  • doctorを実施
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
$ gem install bundler

zsh

後日書く

参考

VSCode Vim で 行を跨いだ左右移動をする

Vim はデフォルトで行を跨いだ左右移動ができないが、移動できるようにしたい。

本家の Vim であれば .vimrc に以下のように書けば良い。ちなみにset nocompatibleを書くよう紹介している記事もあるが、書かなくても動く。

set whichwrap=b,s,h,l,<,>,[,],~

ただVSCode Vim では 2020/6 現在.vimrc を読み込んでいても whichwrap が反映されないため settings.json に設定を書く。

"vim.whichwrap": "h,l,<,>,[,]",

参考

Vim - Visual Studio Marketplace