Slackでマルチチャンネルゲストがユーザーグループに追加出来ない問題への回避策
マルチチャンネルゲストがSlackのユーザーグループに追加できなくてメンション漏れが起こるので回避策
↑これの次の追加する画面でマルチチャンネルゲストは選べない
なので、ユーザーグループへメンションがあったらSlackBotで反応することにした。
https://
プロファイルの画像の下に出てるヤツ
DataBindingでXMLのみでクリック時のNavigationを完結させる
ViewModelにクリック時のメソッド用意してDatabindingで指定して〜とかってやるのが面倒だったのでサクッとレイアウトのXMLのみで完結させる方法
NavigationとRをimportして、Navigationのメソッドを使うことで実現出来る。 popBackStackしたいだけならRのimportはいらない。
<layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> <import type="androidx.navigation.Navigation" /> <import type="app.package.R" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!-- id指定での遷移 --> <Button android:onClick="@{Navigation.createNavigateOnClickListener(R.id.targetFragment)}" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <!-- popBackStack --> <Button android:onClick="@{(view) -> Navigation.findNavController(view).popBackStack()}" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout> </layout>
WH-1000XM4を買った
WH-1000XM4を買った。楽天のポイント使ったりして実質3万切ったので買ってしまった。
感想まとめ
- ノイズキャンセリング最高
- 妻も防音室に入ったみたいと言っていたし、自分も同じ感想
- 目の前のルンバの音が凄く静かに聞こえる
- エアコンの稼働音は完全に消える
- 良い音
- MDR-ZX310よりも良い音質だし、AEROPEXよりは重いけども十分に付け心地が良い
- 360度なんちゃらってのは楽しいけども対応してる聞きたい曲が無い
とりあえず自分のニーズを満たしてくれている
経緯
在宅ワークも増えてきて - ノイズキャンセリングが強い - 近所の子供が夕方ごろに外で遊んでいる事がある - 無線接続 - 洗濯物を干しながら音楽聴きたい
といった機能が欲しくなった。
これまではヘッドホンはSonyのMDR-ZX310、AfterShokzのAEROPEXを使っていたけども、
MDR-ZX310は
ソニー ヘッドホン MDR-ZX310 : 密閉型 折りたたみ式 ブラック MDR-ZX310 B
- メディア: エレクトロニクス
AEROPEXは
- 軽いので付けてるの忘れる
- 低音が軽い
- 環境音がまるっと聞こえる
- それがメリットでもあるんだが。。。
と帯に短したすきに長しな状態だったので思い切って新調した。
悩んだ
WF-1000XM3とも悩んだけど、どちらかというと在宅ワーク増えてるし家で使うことメインになるのでWF-1000XM3は止めた
- 小さいのは嬉しい
- でもフルワイヤレスは駅とかで落としそう
- カナル型を入れた状態で喋ると違和感がすごい
- WH-1000XM4よりも発売日がだいぶ前
気に入った点
WH-1000XM4を使ってみて気に入った点
ノイズキャンセリング性能抜群
防音室にいるみたいな感じになる
イヤーパッド
柔らかいので付けてて痛くならない。重さもちょうどよくてあまり付けていて重いって感じにはならない
接続
接続周りは
- 充電がType-C
- 有線接続が出来る
- Bluetoothが2個接続できる
が良かった。特にBluetoothが2個接続できるってのがよくてMacとiPhoneの両方を繋いでおける。 仕事中はMacから再生しといて、家事で家の中をウロウロするときとかはiPhoneから再生するとかが出来る
音質
肝心の音質に関してはシロートなので十分に良いです。 MDR-ZX310よりも良い音質だし、AEROPEXよりは重いけども十分に付け心地が良かったです。
気に入らなかった点
360度音声みたいなのに対応しているけれども、入ってる曲が知らないのばかりであまりイケてない感じだった。 360度音声自体は楽しかった。
今後
あとは会議とかで使ってみた感想とかを書いていければ良いかな
2020年振り返り
時系列で振り返り
雑に月ごとに
1月
- 熱海とか行きながら岐阜で年越し
- コストコでオラフのぬいぐるみを買う
2月
- 大阪へ家族旅行で行く
- 今思えばコロナに心配しなくていい最後の旅行だった
- 会社統合の話を聞く
- 初めはもっと別の会社かと予想してたけど結果としては中々びっくりした記憶
3月
- 水出しコーヒー出すやつ買った
- 電動ミルを買った
デロンギ(DeLonghi) コーヒーグラインダー うす式 粗挽き~ 細挽き ブラック KG79J
- メディア: ホーム&キッチン
4月
- 息子が1歳になった
- コロナで入園1週間で自粛
- 自家焙煎を始める
- 会社が統合された
5月
6月
- 保育園復帰
- 妻産休開ける
- 老後の趣味としてギターを買う
- 最近は全然弾けていない
- 老後の趣味だし少しずつやろう
- 骨伝導ヘッドフォンを買う
AfterShokz Airオープンイヤーワイヤレス骨伝導ヘッドフォン、ポータブル収納ケース付き、スレートグレー
- メディア: エレクトロニクス
7月
- ご近所さんとよく遊ぶ
- クラフト系にハマる
- 時間を持て余してくるみボタンとか作り出した
- JCOMからNURO光に乗り換える
8月
9月
- 息子動物園デビュー
- 息子仲良しのいとこが引越し
- ハンディカムを買う
ソニー ビデオカメラ FDR-AX45 4K 64GB 光学20倍 ブラック Handycam FDR-AX45 BC
- 発売日: 2018/02/09
- メディア: Camera
10月
- 息子初カット
- 妹が結婚式したので息子結婚式に初参加
- 十数年ぶりにCDを買う
- 統合後のメンバーで仕事を始める
- コロナで一度も顔合わせする事なく仕事を始めた
【メーカー特典あり】 NHK「おかあさんといっしょ」最新ベスト きみイロ(絵あわせゲーム カード付)
- アーティスト:NHKおかあさんといっしょ/花田ゆういちろう、小野あつこ
- 発売日: 2020/10/21
- メディア: CD
11月
- 息子はじめての運動会
- 電動自転車を買う
12月
- 電気圧力鍋を買う
- 息子に○○してとお願いすると出来る様になってくる
パナソニック 電気圧力鍋 3L(満水容量3L/調理容量2L) 圧力/低温/無水/煮込/自動調理 レシピブック付 SR-MP300-K
- 発売日: 2019/07/01
- メディア: ホーム&キッチン
プライベート
- 息子が出来ること増えた一年だった
- 保育園に行き始めて生活リズムが激変した
- 息子の生活リズムがしっかりした
- 息子に合わせて大人の生活リズムが出来る
- リモワ無いと生活が回らない
- 息子の迎え
- ご飯の準備
- 戸建て買ってて良かった
- 作業部屋が用意できた
- 妻と二人でミーティング被っても大丈夫だった
- 今から買うならもう一部屋増やしたい
2020年買って良かった物
リンクは上の時系列のところにあるやつ
電動自転車
- 保育園までの送り迎えが車より早く済む
- スーパーに行く時は車、保育園送り迎えだけなら電動自転車と使い分けてる
電気圧力鍋
- 文明の利器
- 昼に仕込んでおけば仕事してる間にご飯が出来上がってる
ホームロースター
- リモワでコーヒーの消費量が増えてた
- 通販で生豆買えば家で焙煎して丁度いい頃合いの豆でコーヒーが飲める
仕事
おちんぎん
まあまあ上がった方。統合で今後どうなるのかよく分からんけども一旦は自分の今の能力としては十分な賃金を貰えてる気がする。2020年の下期から新しい領域に手を付け出してるので2021年は更に飛躍したいところ
リモワメイン
- 通勤時間分を家事に回せてる
- 働きすぎ感がある
統合
- 開発現場としては良いことも悪いことも色々とある
- 思ってたよりも開発現場としては良い方向になってる気もする
- 詳しくはMeetなりでAmongUsやりながら話しましょう
来年の抱負
- 読書量増やしたい
- 息子と色んなところへ行けるようになりたい
mockkのverifyでメソッドの引数の中身をチェックする
下のようなコードでUseCaseSaveのテストでrepo.saveに意図した値が入っているかを確認したいようなケース
data class Data( val target: Int val timestamp: Date = Date() ) class UseCaseSave(val repo: Repo) { fun execute(num: Int) { repo.save(Data(num)) } }
matcherを自前で用意することで対応が可能。
@Test fun test_hoge() { val repo = mockk() val useCase = UseCaseSave(repo) useCase.execute(1) verify { repo.save(match { date -> date.target == 1 }) } }
CircleCIでprivateなリポジトリをgit submoduleでアクセス出来るようにする
Projectのページ開いて右の方にある Project Settings
を開く
左のメニューから SSH Keys
を選ぶ
User Key
で Add User Key
を押す
こんな感じに追加されたらアクセス出来る状態になる
あとはCircleCIのymlでこんな感じのを追加して呼び出せばOK
init_git_submodule: steps: - run: name: Git submodule command: git submodule update --init
SpekでgetMainLooperをMockする必要がある場合の対応方法
LiveData使ってるクラスのテストをSpekで書こうとするとよく出てくるエラー。
エラー内容
Method getMainLooper in android.os.Looper not mocked. See http://g.co/androidstudio/not-mocked for details.
テスト用のTaskExecutorを用意する
class TestArchTaskExecutor : TaskExecutor() { override fun executeOnDiskIO(runnable: Runnable) { runnable.run() } override fun isMainThread(): Boolean { return true } override fun postToMainThread(runnable: Runnable) { runnable.run() } }
SpekのGroupBodyに拡張関数を追加
fun GroupBody.applyTestTaskExecutor(executor: TaskExecutor = TestArchTaskExecutor()) { beforeGroup { // AACのテスト用設定 ArchTaskExecutor.getInstance().setDelegate(executor) } afterGroup { ArchTaskExecutor.getInstance().setDelegate(null) } }
テストでSpekのBodyで拡張関数を呼び出す
internal object ViewModelTest : Spek({ applyTestTaskExecutor() Feature("...") {} }