山pの楽しいお勉強生活

勉強の成果を垂れ流していきます

仕事はもっと適当にやればよい

はじめに

  • 本記事は社内報に寄稿した内容を転載したものです
    • 許可済み
  • 私がどのように考えてお仕事をしているかを書いた文章であり、一般的なものかどうか、他の人がどう思うかは意識しておりません
  • こんな事を考えて仕事している人もいるのかーくらいに読んでいただければと思います
  • 「適当」は「適切」、「適度」といった、ちょうど良いという意味と共に「いい加減」や「雑」といった意味もあります。タイトルはその両方を含みます

仕事は誰のためにやるのか

自分のために決まってる。これは大前提。

会社のためにやるということも、給料、経験、人脈、やりがいとか何でも良いですが、それが自分にとって得るものがあるからですよね。家族のため、子どものため?それは家族や子どもが喜んでいることが嬉しい、育っていることが嬉しいということがあるのではないかと思います。社会のためというのも同じでしょう。

難しいことは置いておいて自分は自分のために生きていて、自分のために仕事をしているという事をしっかりと意識しておいたほうが良いと思います。忙しいときに何のために働いているのかを考えるという話がよくありますが、そういった時に思い出しましょう。*1 得るものがなければそこで働く意味はない。

仕事を楽しくやる

とは言っても、やりたい仕事をやれるなんてことは滅多にありません。やりたい仕事をやらせてもらえるまでやりたくないと断り続ける?流石にそこまで神経図太い人はいないでしょう。いい感じのところで妥協するのが人生であり、世の中です。ではどうするのか。仕事はすべて決まっているわけではありません。目的、ゴールは決まっていてもそこに到るための方法は幾つもあり、その仕事にアサインされたあなたには大なり小なり裁量が与えられているはずです。

売上向上という目的だけが決まっている場合には、どのように売上を達成すれば良いかに裁量があるかもしれません。システムを作ることが決まっているならプログラム言語やフレームワークを選択できるかも。システムのある機能を担当するならば画面構成やクラス設計、手動テストであればテストの実施方法。どんな仕事でもやり方、方法がすべて決まっているわけではありません。仮に決まっていても手足、頭を動かすのは人なので効率的に動かすなどの裁量は与えられています。

与えられた裁量の中でいかに楽しくやるか。これが適当にやるということ。

つまり、仕事とは与えられた目的を達すればよい。それをどのように達するか、それを楽しめるかどうかがポイントです。

仕事外で楽しむ

仕事外と書くとプライベート時間となりそうですが、そういうことではなく業務時間内の話です。与えられた裁量の中で楽しくやるといってもその裁量の範囲ではどうしても制限が大きくなり、楽しみは少なくなりがち。であるならば、仕事外(ここではPJ外という言い方が適切か?)で楽しくやる。

仕事は利益を得るためにお金を払うという話であり、逆に言うと目的から外れていても利益になればよいという話ではないか。勿論契約で約束されたことは達成する必要がありますが、そもそも目的がぶれているなんてことはよく聞く話。目的が外れていて利益になるものであれば何でもよい。何でも良いのであれば自分が楽しいことをやればよいじゃない。

「不利益にならなければよいし、利益になればなおよし」の精神で自分がやりたいことをやればよいと思っていて、私が常駐先でLT会やワークショップ、勉強会等々やっているのはこれが原点です。

評価

仕事は言われたこと、求められていることだけではなく、それに加えて何を行ったかによって評価されます。ただ、100求められていて120行うのは難しい。100と120の差を評価者がわかるのか?っという問題もあります。ただ、別のことを10行う、0→10は難易度が抑え目のことが多くわかりやすい。わかりやすいということは目立ちやすいということであり、目立ちやすいというのは評価されやすい。

また、常駐するPJの場合にはお客さんの評価だけではなく、個人評価にも反映されやすいです。なぜならば常駐のPJは一緒に仕事をしていない上司から評価を受けることが多いですが、私のように工数100%で長く常駐(4年ほど常駐していました)していると、「いつも通りよくやっています」のように評価されがちです。その時にわかりやすい指標は評価する側からしてもとても評価しやすいようです。

言いたいこと

結局言いたいのは、タイトルにある通り「適当にやればよい」ということ。まじめにお仕事するのも大事ですしやらなければならないですが、もっと肩の力を抜いて柔軟性をもって働いていくとお仕事も楽しくなるのではないかなということです。せっかくお仕事するなら楽しくやりましょう!

文章に入られなかったのでここに書いちゃいますが、「許可を得るな謝罪せよ」*2という言葉も好きです。基本的に不利益にならなければやっちゃってよいと思うのですよね。

*1:忙しいときに考えるのでは遅い。なぜならば、そんなこと考える余裕がないから。

*2:この言葉は超訳という話もありますが。 https://twitter.com/t_wada/status/752674410482446336

Windows PCセットアップメモ

はじめに

  • 本記事はWindows PCを購入した際のセットアップメモです
  • 個人的な設定がかなり含まれています
  • キャプチャは異なる可能性があるので参考程度にしてください
  • 随時更新していく予定

環境

Windows初期設定

アカウント切り替え

  • Microsoftアカウントでユーザを作ると、ホームディレクトリがメールアドレスの先頭5文字となる
    • アカウントが「abcdefg12345@outlook.com」だった場合、「c:\Users\abcde」っとなる
  • ホームディレクトリを変更する方法は提供されていない
    • 頑張ってやればできるっぽい方法はどこかで見た

手順

  • 現在ログインしているMicrosoftアカウントのユーザをローカルアカウントに切り替える
    • Windowsキー → 「アカウント」で検索 → アカウント情報 → ローカルアカウントでのサインインに切り替える
      • Windowsキー → 「アカウント」で検索 → アカウント情報 → ローカルアカウントでのサインインに切り替える
  • 警告が出るが初期設定のみであれば無視してスキップでOK
    • 既にMicrosoftアカウントでWindowsを使っている場合は警告をよく読んでください
  • Windowsキー → 「他のユーザー」で検索 → その他のユーザーを追加する → アカウントの追加
    • Windowsキー → 「その他のユーザー」で検索 → その他のユーザーを追加する → アカウントの追加
  • 「このユーザーのサインイン情報がありません」をクリック
    • このユーザーのサインイン情報がありません
  • Microsoftアカウントを持たないユーザーを追加する」をクリック
    • Microsoftアカウントを持たないユーザーを追加する
  • ユーザー名とパスワード、秘密の質問を設定 → 次へ
    • ユーザー名とパスワードを入力すると下に秘密の質問が出てくる
  • ユーザが作成されればOK
  • 作成されたユーザを権限を管理者に変更
    • 管理者に変更
  • Windowsキー → ログインユーザークリック → 作成したユーザクリック
    • Windowsキー → ログインユーザークリック → 作成したユーザクリック
  • 設定は割愛。ログインしてデスクトップが表示されればOK
  • Windowsキー → 「アカウント」で検索 → アカウント情報 → Microsoftでのサインインに切り替える
    • Windowsキー → 「アカウント」で検索 → アカウント情報  → Microsoftでのサインインに切り替える
  • Windowsキー → 「他のユーザー」で検索 → 初期設定時に作成したユーザを削除
    • a

セキュリティアップデート

  • Windowsキー → 「Windows Update の設定」で検索 → 更新プログラムのチェック
  • 言われるがままに再起動を駆使してすべての更新を適用
  • ドライバとかアップデート
    • LenovoだとLenovo Commercial Vantageというツールで全部やってくれるので割愛

IME設定

  • タスクバーのIME右クリック→設定→キーとタッチのカスタマイズ
    • タスクバーのIME右クリック→設定→キーとタッチのカスタマイズ

半角全角を切り替えるのが面倒なので、無変換でIMEオフ(半角)、変換キーでIMEオン(全角)となるようにする。これにより今全角モードなのか半角モードなのか気にする必要がなくなるので全人類にオススメの設定。(今が全角モードだろうが半角モードだろうが、無変換押せば半角になる)

※昔は結構深いところに設定があった気がする

フォルダオプション

  • Windowsキー → 「フォルダオプション」で検索 → 表示タブ
  • ファイルとフォルダーの表示 → 「隠しファイル、隠しフォルダー、または隠しドライブを表示する」に切り替え
  • 「登録されている拡張子は表示しない」からチェックを外す

タスクバー

  • タスクバーに常駐している必要ないアイコンを右クリック → 「タスクバーからピン留めを外す」
  • タスクバーの何もないところを右クリック → タスクバーの設定 → 「タスクバー項目」から必要のないものをオフに変更

wingetでツールをインストール

wingetとは

インストール

winget install Google.Chrome
winget install Microsoft.VisualStudioCode
winget install Docker.DockerDesktop
winget install Git.Git
winget install Python.Python.3.10
winget install "windows terminal" --source "msstore"
winget install SlackTechnologies.Slack
winget install WinMerge.WinMerge
winget install -e --id Spotify.Spotify
winget install NickeManarin.ScreenToGif
winget install voidtools.Everything
winget install stnkl.EverythingToolbar
winget install Microsoft.OpenSSH.Beta

Pythonはバージョンを確認
※OpenSSHは正式版が出ていないか確認( winget search openssh

その他ツールをインストール

ツールの設定

白源(font)導入

Windowsのテーマ変更

  • Windowsキー → 「ダーク」で検索 → システム全体でダーク モードを有効にする
    • Windowsキー → 「ダーク」で検索 → システム全体でダーク モードを有効にする

WSLの設定

wsl --update
wsl --set-default-version 2
wsl --install -d Ubuntu-20.04

※22.04はGUIが付いてくるらしいので20.04を選択

WSLのUbuntu

sudo apt update
sudo apt upgrade -y
sudo dpkg-reconfigure locales
  • デフォルトのエディタをvimに変更
    • デフォルトだとnano
    • 以下のコマンド実行後に「/usr/bin/vim.basic」を選択
sudo update-alternatives --config editor

shellの設定

wget --progress=dot:giga https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -O ~/.git-completion.bash
wget --progress=dot:giga https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh -O ~/.git-prompt.sh
chmod a+x ~/.git-completion.bash
chmod a+x ~/.git-prompt.sh

~/.bashrc の末尾に以下を追記

source ~/.git-completion.bash
source ~/.git-prompt.sh
export PS1='\[\033[1;30m\]\t\[\033[0m\] \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\[\033[1;30m\]$(__git_ps1)\[\033[0m\] \$ '

DNS設定変更

※2024/05/11の時点では有効ではあるが将来はわからない WSLのIssue に最新情報が書き込まれる可能性が高いので参照すること

  • DNS設定の自動生成を停止
    • 設定ファイルを開く( sudo vi /etc/wsl.conf
    • 以下を記載
[network]
generateResolvConf = false
  • DNSを手動設定
    • /etc/resolv.conf を変更し、8.8.8.8 を使うようにする
    • 設定ファイルを開く( sudo vi /etc/wsl.conf
    • 以下を記載
nameserver 8.8.8.8

※8.8.8.8 は Google Public DNSサーバー (Public DNS  |  Google for Developers

スクリプトの設定

タッチパッド無効

Thinkpadトラックポイント(赤ポチ)があるため無効にする

関連

常駐先でLT会を90回以上継続した話

お約束

はじめに

私が業務委託契約で常駐している ARISE analytics で、LT会を主催しております。90回以上はそれなりに継続できていると思いますので、どのように運用しているかなどを書いていこきます。*1 あくまでも私がARISEで行ったLT会であり、主催者や目的、環境により異なりますので、ポエムとして読んでいただければと思います。

LT会概要

  • 基本週1開催
  • 月曜12:00 - 13:00
  • 業務外
  • テーマなし
    • 真面目な話、不真面目な話、業務の話、趣味の話なんでもあり
  • 新型コロナ流行以降はリモート開催(Zoom)

実績

  • 2019/11/1から2022/11/28までで93回
  • のべ160回の発表
  • 発表者47人

LTとは

LTを知らない人がいるかもなので最初に軽い説明。 LTはLightning Talks(ライトニングトーク)の略であり、5分から15分程度の短い発表のことを言います。IT業界では10年くらい前?からそれなりに流行っているという認識です。勉強会、カンファレンス等の主となる発表の後で行われることが多いです。まれにLT大会などとしてLTのみの勉強会などもありますね。

LTで発表するメリット

LTは通常の勉強会などの発表と比べると以下のようなメリットがあると思っています。

  1. 資料作成簡単
  2. 失敗 OK
  3. 人前で話すことに慣れる
  4. 反応を簡単に確認できる
  5. 自分が行動するためのトリガー

詳細は割愛しますが、発表時間が短いことから、1,2のメリットが発生し、その結果3,4,5が発生するというロジックです。

LTで発表するデメリット

反してデメリットは以下の通り。

  1. 内容が浅くなる
  2. 笑いを取りに行きがち
  3. 資料直前で作りがち
  4. 内容は短く簡潔そしてインパク

1がほぼ全てですね。その結果2,3,4という感じです。 並べてみてもメリットが多いと考えているため、LTはタイミングが合えばなるべく発表する機会を作るようにしています。

LT会をはじめた理由

私がLT会をはじめた理由は以下の3点です。

  • 人前で話すことに慣れる
  • アウトプットの場
  • コミュニケーション

全て 自分のため です。 自分のために自分が行う。ただ、参加者は多い方が楽しいですし、参加者が増えることでデメリットもない。(あえていうなら発表機会が減る) 参加者側にも上記したようなメリットもあるので、せっかくなら他の人もやる?っというスタンスです。

心がけたこと

LT会で心がけたことは以下の4点

  1. 無理はしない
  2. 発表のハードルを下げる
  3. 継続する
  4. 参加しやすくする

無理はしない

自分のためなので無理はする必要はありません。仕事が忙しいときはスキップ。業務内で行う許可も取らない。参加者も無理に増やそうとしない。自分が発表する場であることを忘れずに、強制力は発生しないように、周りへの気遣いはしない。っという事を気にしていました。 っというのも、やればわかるのですが自分のためとはいえ、週1開催はとても大変。好きでやっていて仕事でもないのに、資料作成、開催時間以外にはなるべく時間を割きたくないのです。

発表のハードルを下げる

自分のためでもあり、自分以外の発表者のためでもあります。 前職、前々職でもLT会を主催していましたが、正直参加者は集まりませんし増えません。(1回限りだと結構集まる)っとなると、必然的に自分で発表することが多くなるため、毎回しっかりとした資料を作り、役に立つ、心に響くような発表を行うことは不可能です!(ちなみに93開催で48回発表しています)話すこと、発表することが目的なので、内容は問わず、雑でも良い、資料なしも歓迎というスタンスで行っていました。話すことが正義です!

継続

↑で雑でもOKという事を書きましたが、つまり内容はとても薄いです。ただ、全体でみれば内容に得るものはあります。私自身としては内容が薄いと思っていても、ジュニアの方や別業種の方などには響いたりすることがよくありました。具体的にはエンジニアとしてのちょっとしたスキルは別業種の方に、私の過去の経験やキャリアの話はジュニアの方にという感じです。

参加しやすくする

あれ?↑で「自分のため」、「せっかくなら他の人もやる?のスタンス」とか言っていましたが、やっぱり聞いてくれる方は多い方が嬉しいですし、反応も多くなり、楽しいです。結局人は他人と関わることで喜びを覚える生き物なのです。

発表者を増やすこととしては、記載したハードルを下げること、チーム内で誘う、SlackでLTになりそうな内容には声をかけることを行っていました。聴講者側には告知を全体チャットで行うことくらい。

ただ、発表時には実況スレッドとしてSlackチャンネル内にスレッドを作り、質問、意見、思ったことなど気軽に書けるようにして、自分は積極的に反応をすることで、楽しい場であることは演出しています。

90回以上継続した感想

良かったこと

正直良かったことばかりです。

参加者多かった

上記したように、前職、前々職でもLT会を主催していたのですが、参加者は延べ10人程度で盛り上がっていたとはとてもいえない状態でした。ただ、今回は3,40人くらいの参加者がいた回もあり、私の所属部署以外からの参加も多数。特にコーポレート部門や、情報システム部など普段あまり交流のない部署の方も参加も多数ありました。

会社の規模や忙しさ(余裕)、新型コロナ流行によるリモート化などなど色々な要素が重なった結果だと思っています。

長く続いた

新型コロナ流行によるリモート化による中断(2020/02/28 - 2020/10/09)を挟み、3年間で93回開催、延べ160の発表があったのは長く続いたと言っても良いでしょう。新型コロナや、仕事やプライベートによる多忙、発表多めの方の離任、私自身が離任するかも話、などなど中断するタイミングは何度かあったものの、ここまで続いたのは発表者、聴講者として参加してくださった皆様の反応があったからだなと思います。自分のためとはいえ、自分の力だけでは継続は難しい。

社内で名前が売れた

参加者が多かった話のところでも書きましたが、様々な部署から参加してくれたことで社内で名前が売れました。たまに出社すると声かけられたり、挨拶しにきてくれたりなどという事もよくありました。*2

実況スレッド良かった

上記したことと重複しますが、実況スレッドはかなり良かったと思っています。リモート開催という事もあり、発表に対しての反応を確認できないことに対しての対応でしたが、聴講者側としても聞きたいことや感想を気軽に書き込めるため、LT会の盛りあがりに大きな影響を及ぼしていたと思います。

余談ですが、実況スレッドはリモートワークが中心の場合、LT会以外でも使える良い文化だと思っており、実際に部署や会社全体の会などでも使用されるようになりました。これらの場合は盛り上がるのもそうですが、集中してくれて内職が減るという効果もあると思っています。

LT会でもう少し改善できたこと

やはりもう少しうまくやれたかなという事はいくつかあります。

もう少し人集められた

頑張ることではないと思いつつも、参加者が多い日があるという事は少ない日もあるわけで、聴講者が私1人しかいない日には、主催者としてもう少し頑張った方が良いかなと思いました。*3

上の人に話してほしかった

どうしても接する機会が少ない役職者(一般役職でいうところの部長や課長位)の方に話してほしかった。それもくだらないことを。どうしても役職者との間には壁ができてしまうため、その壁を取り除くことをできたらと思っていたのですが、当たり前のように忙しいのもありあまり実現できませんでした。資料不要で趣味の話などと積極的に声かけても良かったなと思っております。

自社と合同でやってもよかったかも

仕事感がありますが、せっかくなら会社関係を良好に的な意味もあり、LT会に別の趣向をみたいな意味もあり、やってみても面白かったかもと思っております。*4 いや、さすがに業務感出てしまうので調整とかしなきゃなので面倒だったかもですね。難しい。

もっと真面目じゃない内容を増やしたかった

どうしても技術方面の真面目な内容が多くなり、くだらない内容のLTが少なかったです。ところどころで、クレーンゲームや鉄道、エアコン、富山、投資の話などがありましたが、絶対数としては少なかったです。これは主催であり主要発表者である私が技術方面の話がほとんどであったため、そういう方向になっていたというのはあると思います。 聞く方としては、業務の合間の休憩時間ということもあって不真面目の話を望んでいたのですが。。。

LT会のすゝめ

LT会は簡単に開催できますし、上記したように主催者も参加者も聴講者もメリットは多いです。週1でやれとは言わないので、是非1回開催して見てはどうでしょうか。また、もし社内でLT会を見かけたら気軽に参加してみてください。*5

みんなLTやろうぜ!


コメントされそうなこと(追記するかも)

  • 自社でやらないの?
    • 今年から月1でやってた
    • ネタは業務に近いところから生まれるので、コードや環境など話せない内容が多いと厳しかった
  • 資料どこにおいてる?
    • 個人的には社外に置くことをすすめてましたが、発表管理等で使っていたConfluenceにみんな置いてた
    • 私の資料は こちら (公開できないものもあるので数は合わない)

*1:ちなみに離任(原籍会社の退職)が決まっているため96回で終了予定

*2:Slackに100以上の分報チャンネルがあり、参加者順に並べると7位なのは密かな自慢。CxO含めてこれは凄くない?

*3:1人だったのは多分1回だけだと思う。通常は発表者合わせて10人弱位?

*4:会社関係は新卒の方の研修を合同でやるくらい良好

*5:もし、しばらく継続していたら合同LT会やりましょう!!

ユーザ認証でGoogleドライブ上のファイルをPythonで操作する

はじめに

  • コードはドキュメント通りだが、認証に1日かかったためメモ
  • 本記事ではユーザ認証を使用する
    • バッチ処理などで使用するためにはサービスアカウントを使用する
  • キャプチャはないが、参考リンクは大目に貼っているので、解決しない場合でもリンクは見てみることを推奨

前提

  • ブラウザ上でファイルの取得は可能であることを確認
  • privateのファイル
    • 認証あり。インターネットに大公開しているファイルではない
  • 認証関連の設定が終わった後のコードは↓の通り
  • GCPへのアクセスが可能であること
    • プロジェクトは作成済み
  • gcloudコマンドを使用可能であること

手順

memo

  • gcloud auth application-default login で作成される認証情報の格納PATH
    • Windows: %APPDATA%\gcloud\application_default_credentials.json
    • Mac(未確認): ~/.config/gcloud/application_default_credentials.json

参考

npm install と npm ci をどのように使い分けるか

※タイトルの npm install は引数なしを想定しています。

一言

  • 引数なしの npm install は使わない
  • 環境構築時には npm ci を使用する

詳細

  • npm install
    • 引数なしの場合、package.json に沿った形で依存ライブラリをインストールする
      • package-lock.jsonは見ない
      • 依存ライブラリの依存ライブラリは最新版がインストールされる
      • 依存ライブラリの指定の範囲での最新版
      • package-lock.jsonを更新する
    • 用途
      • 引数なしは使わない
      • 新規ライブラリの追加、既にpackage.jsonに記載があるライブラリのバージョンアップを行う時
  • npm ci
    • package-lock.jsonに沿った形で依存ライブラリをインストールする
      • 依存ライブラリの依存ライブラリは package-locl.jsonに記載があるバージョンでインストールされる
      • package-lock.json は更新されない
    • 用途
      • そのリポジトリで想定されている環境を作る場合
      • 開発環境、CI環境、本番環境等
    • その他
      • npm install よりもかなり早い
  • 依存ライブラリの更新を定期的に行う場合、CIで npm install をして更新があればpackage-lock.jsonをPRさせるのが良さそう。
  • package.json自体の更新はdependabotを使うと良い。

きっかけ

  • 引数なしの npm install は package-lock.json を更新しないと思っていたが更新された(単純に記憶違い)
  • 各種環境構築スクリプトnpm install が使われていたが、package-lock.json が更新されるため、差分が発生する
  • 社内で聞いたら教えてくれた↑↑の通り教えてくれた

参考URL


追記(2022/05/28)

id:efcl から以下のブコメをもらったので追記。(よくわかっていないのでそのうちもう少し調べる)

npm install と npm ci をどのように使い分けるか - 山pの楽しいお勉強生活

引数なしの`npm install`がpackage-lock.jsonを更新するかは、npmのバージョンで動作が異なる感じ。 <a href="https://github.com/azu/npm-install-update-package-lock/actions/runs/2399517030" target="_blank" rel="noopener nofollow">https://github.com/azu/npm-install-update-package-lock/actions/runs/2399517030</a> <a href="https://github.com/npm/rfcs/issues/415#issuecomment-938279066" target="_blank" rel="noopener nofollow">https://github.com/npm/rfcs/issues/415#issuecomment-938279066</a>

2022/05/28 10:44
b.hatena.ne.jp

  • azuさんのGitHub Actionsの結果を見ると、npm6とnpm8で npm install をした結果、npm6はlockファイル内の依存ライブラリのバージョンが変更されているが、npm8は変わっていなかった。
  • 2つ目のリンクの内容はよくわからない
  • 少し調べたところ、npm7からlockファイルのバージョンが上がり、 npm install を行った際にバージョン2に書き換わるらしいのだが関係ある?

PySparkでDataFrame.cacheはMEMORY_AND_DISKレベルキャッシュされる

概要

※2021/12/17時点の最新版であるPySpark3.2.0の情報です

詳細

Xiaomi Pad 5(MIUI12)を複数アカウント(ユーザー)で使用する

はじめに

  • Xiaomi Pad5を購入したものの、デフォルトでは複数ユーザーで使用ができない?
    • 端末というより、OSであるMIUIの仕様?
  • とりあえず複数ユーザーで使用できるようになったので手順をメモする
    • ただし、色々制限はかかっているの注意。詳細は下記参照
  • 他にも良い手順があったらコメントでもTwitterでも良いので教えて下さい

わかる人向けの手順概要

※よくわからない人は下記にキャプチャ付きの詳細手順あります。

  1. 設定 → デバイス情報
  2. MIUIバージョンを10回タップ
  3. 開発者向けオプションを有効
  4. 追加設定 → 開発者向けオプション
  5. デフォルト値にリセット
    • ※全然関係ない項目のように見えるがここが一番のハマりポイント
  6. 最下部のMIUI最適化をオフ
  7. 複数ユーザー → 追加
  8. 切り替え
  9. Google関連の設定はOFFにして初期設定をする

よくわかっていないこと(困っていること)

  • ログイン時に追加したマルチユーザーでログインできない
    • 所有者(管理者)でログイン後に、設定からユーザを切り替える必要がある
    • Activity Launcher というアプリでユーザの切り替えのショートカットを作ることでとりあえずは対応
  • 追加したユーザーの初期設定でインターネットに繋がらない
    • Google関連の設定をONにして初期設定をするを行うと永遠に終わらない

詳細手順

  1. 設定 → デバイス情報 を表示
  2. MIUIバージョンを10回タップ
    • MIUIバージョンを複数回タップ
    • 何回かタップしていると「デベロッパーになるまであとXステップです。」と表示される。
    • デベロッパーになるまであと1ステップです。
  3. 規定回タップすると「これでデベロッパーになりました!」と表示される。
    • これでデベロッパーになりました!
  4. 追加設定内に「開発者向けオプション」が表示されているのでタップ
    • 追加設定の開発者向けオプション
  5. 開発者向けオプション内のデフォルト値にリセットを複数回タップする
    • ここからが本記事のキモ。私の環境だと「MIUIの最適化をオンにする」が表示されなかったので以下の操作を行う。
    • デフォルト値にリセットを複数回タップ
    • 「自動入力の開発者向けオプションをリセットしました」と表示される。
      • この設定は自動入力の設定なのでこの表示は正しい
    • 自動入力の開発者向けオプションをリセットしました
  6. 何回かタップしていると「MIUIの最適化をオンにする」が表示されるのでオフに切り替える
    • MIUIの最適化をオンにする
  7. 重要な警告を熟読してから同意
    • 重要な警告
  8. 複数ユーザーという項目が追加されているので選択
  9. オンに切り替え
  10. ユーザーまたはプロファイルを追加 → ユーザを追加する。
    • 複数ユーザー、ON、ユーザーまたはプロファイルを追加
  11. 追加されたユーザをタップして切り替える
    • yamapに切り替える
  12. ユーザの初期設定で「 Google関連の設定はOFF」にする

参考