20210621のMacに関する記事は9件です。

Mac上でskaffoldのCPU使用率が高くなる問題の緩和方法

対象としている問題 Mac上で skaffold を dev モードで起動すると CPU 使用率が非常に高く(CPU使用率100%に)なる場合があります。 skaffold の issue を調べてみたところ High CPU usage on Mac OS X という関係しそうな issue がありました。このissueによると、ファイルが多数ある場合に変更検知の処理で重くなっているようです。またissueはcloseされているものの、重くなること自体は解消されていないようです。 ということで変更検知の対象となるファイル数を減らせれば良い・・・のですが、そうもいかない状況で少しでもCPU使用率を減らす方法を記載しています。ちなみにいずれの方法もデメリットがあるためCPU使用率とのトレードオフとなります。 対象イメージの制限 --watch-image オプションに artifact 名を記載すると、変更検知の対象となるイメージ(artifact)を限定できます。 skaffold dev --watch-image=artifact1 複数のイメージが含まれる場合は、このオプションで対象を絞ることでCPU使用率をある程度抑えることができます。ただ当然ながら指定しなかったイメージは変更検知の対象外となるので利便性が低下します。 変更検知方法の変更 変更検知方法は --trigger オプションで指定することができ、デフォルトでは notify という方法が選択されています。それ以外に polling と manual があり、これらを利用することでCPU使用率を低減することができます。 polling polling を指定すると変更検知を定期実行で行うようになります。実行間隔は --watch-poll-interval で指定可能で、デフォルトでは1000ミリ秒となります。 skaffold dev --trigger=polling --watch-poll-interval=3000 CPU使用率は実行間隔を大きくするほど改善されるのですが、変更検知までの時間も長くなるので利便性が低下します。ちなみに私が試した環境ではデフォルトの1000ミリ秒ではまったく改善せず 3000ミリ秒でやっとCPU使用率が半分くらいになる感じです。 manual manual を指定すると文字通り自動での変更検知を行わなくなります。変更を検知させたい時はコンソールで Enter を入力して手動実行します。 skaffold dev --trigger=manual CPU使用率は劇的に低下するのですが、手動で更新する必要があるため利便性も劇的に低下します。 (おまけ)fsnofity側で改善されそう? --trigger のデフォルトである notify は fsnotify で実装されているようです。この fsnotify の issue を見ていたところ High CPU usage という関係がありそうなものを見つけました。 この issue から kqueue.go: Remove timeout from reading kevents. という PR にリンクされており、コメントを見ているとMacでのCPU使用率が改善されそうな気配があります。ただ残念ながら2020年から動きがなく今のところmergeされていない状態です。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Mac環境で、IPA提供シミュレータを使って、アセンブリ言語「CASL2」の「テストファイル」を動かした話

この記事の対象者 Mac環境で、IPA提供シミュレータで、CASLIIの「テストファイル」を動かしたい人 概要 基本情報技術者試験(FE)の午後試験としてアセンブリ言語の1種「CASLII」の勉強をしようと思いました。 CASLIIを動かせるシミュレータをIPA※からダウンロードしました。 私はMacを使用していますが、IPAからダウンロードしたフォルダの中には「Windows環境の取扱説明書」しかありません。 Macだとどう動かせばいいんだ。。。せっかくダウンロードしたし動かしたい。 いろいろ試して、とりあえずmac環境下でも「テストファイル」が動いたのでここに記載します。 ※IPA…独立行政法人情報処理推進機構 → https://www.ipa.go.jp/ 注意 この記事のメインはあくまでも、「Mac環境で、IPA提供のCASLIIテストファイルを、IPA提供のシミュレータで動かす」です。 それ以外のファイル、例えば、自分で作成した.casファイルを動かしたい人は、「テストファイルじゃなくて、普通の.casファイルを実行したいんだけど」を見てください! いや、そもそもIPAのシミュレーター以外に使えるものないの?って方は、「いや、ターミナルでいちいちめんどくさいわ!」を見てください! 私の環境 macOS Big Sur バージョン11.4 OpenJDK 15.0.2 今回ダウンロードしたCASLIIシミュレータのバージョンは ver2.0 IPA提供のシミュレータを使って、IPA提供の「テストファイル」を実行するまでのステップ Javaをダウンロード&インストールする IPAからシミュレータをダウンロード&解凍 アセンブラバッチファイル(CASL2.bat)、実行バッチファイル(RUN.bat)の編集 拡張子の変更 パスの変更とターミナルの指定 拡張子を変更したファイルのパーミッションの変更 テストファイルsmain.cas、count1.casのアセンブル テストファイルsmain.casの実行 以上です。 以下で1つ1つ説明します。 1. Javaをダウンロード&インストールする IPAが提供しているシミュレータはJavaでアセンブルと実行をしてくれるのでJavaの環境が必要です。 なのでJavaをインストールします。 以下からインストールできます。 その後、ターミナル上で java -version のコマンドを打って、ちゃんと入ったかわかります。 (参考)私のやつ↓ MacBook-Pro ~ % java -version openjdk version "15.0.2" 2021-01-19 OpenJDK Runtime Environment AdoptOpenJDK (build 15.0.2+7) OpenJDK 64-Bit Server VM AdoptOpenJDK (build 15.0.2+7, mixed mode, sharing) 2. IPAからシミュレータをダウンロード&解凍 以下からダウンロードできます。 https://www.jitec.ipa.go.jp/1_20casl2/casl2dl_001.html ダウンロードして解凍すると以下のような中身になっています。 (Manual.pdf抜粋) 3. アセンブラバッチファイル(CASL2.bat)、実行バッチファイル(RUN.bat)の編集 CASL2.bat、RUN.batはMac環境では動きません。 Mac環境で、.batファイルと同じようなものは、.shのファイルのため.shファイルを作成します。 (バッチファイル(英: batch file)とは、MS-DOS、OS/2、Windowsでのコマンドプロンプト(シェル)に実行させたい命令列をテキストファイルに記述したもの。バッチファイルを実行すると、シェルプログラム(一般にCOMMAND.COMやcmd.exe)がそのファイルを読み、その中のコマンドを(通常)一行ずつ実行する。バッチファイルはUNIX系オペレーティングシステムのシェルスクリプトに相当する。(wikipedia抜粋)) そのため、以下の処理をしていきます。 1.拡張子の変更 アセンブラバッチファイル: CASL2.bat   → CASL2.sh 実行バッチファイル:    RUN.bat    → RUN.sh 2. シェルの記述の変更 取説(Manual.pdf)には、 とありますが、 Macで動かす方は以下3つやってください。 各スクリプトを実行するのに使用するシェルを、それぞれのファイルの1行目に書いてください。(私はzshなので、#!/bin/zsh) 二行目に 「java -jar [それぞれのファイルがある場所] %1 %2 %3 %4 %5」 %1 %2 %3 %4 %5 の「%」を全部「$」に変更  【参考】わたしのやつ↓ CASL2.sh #!/bin/zsh java -jar /Users/misuzz/projects/javaCASL2_2.0/casl2.jar $1 $2 $3 $4 RUN.sh #!/bin/zsh java -jar /Users/misuzu/projects/javaCASL2_2.0/run.jar $1 $2 $3 $4 3. 拡張子を変更したファイルのパーミッションの変更 今のままだと、2種類の.shファイルは実行権限がないので、 以下の通りターミナルでコマンドを打って、パーミッションを変えてください。 【パーミッション変更前】↓ MacBook-Pro TestProgram % ls -l -rw-r--r-- 1 misuzz staff 79 6 19 16:16 CASL2.sh -rw-r--r-- 1 misuzu staff 77 6 19 16:17 RUN.sh 【パーミッション変更後】↓ MacBook-Pro TestProgram % chmod 764 CASL2.sh MacBook-Pro TestProgram % chmod 764 RUN.sh MacBook-Pro TestProgram % ls -l -rwxrw-r-- 1 misuzu staff 79 6 19 16:16 CASL2.sh -rwxrw-r-- 1 misuzu staff 77 6 19 16:17 RUN.sh ↑自分の実行権限(x)が増えました。 【参考】 ※ls -l…カレントディレクトリ内の中身の詳細を一覧表示するコマンド ※chmod…ファイルのパーミッションを変更するコマンド 4. テストファイルsmain.cas、count1.casのアセンブル 上記項番3で.shファイルを作成したので、以下のコマンドをターミナルに打って、テストファイルをそれぞれアセンブルしてください。 MacBook-Pro TestProgram % ./CASL2.sh smain.cas MacBook-Pro TestProgram % ./CASL2.sh count1.cas 【参考】実行結果↓ MacBook-Pro TestProgram % ./CASL2.sh smain.cas CASLⅡ Assembler -V2.00(2005/05/27)- ( Date : 2021/6/19 ) Label:COUNT1 Def:external. Ref: 6 オブジェクトプログラムを smain.obj へ出力しました。 END CASLⅡ Assembler. MacBook-Pro TestProgram % ./CASL2.sh count1.cas CASLⅡ Assembler -V2.00(2005/05/27)- ( Date : 2021/6/19 ) オブジェクトプログラムを count1.obj へ出力しました。 END CASLⅡ Assembler. これで.objファイルができたので次で実行できます! 5. テストファイルsmain.casの実行 以下のコマンドで実行してください! MacBook-Pro TestProgram % ./RUN.sh smain.obj 【参考】実行結果↓ MacBook-Pro TestProgram % ./RUN.sh smain.obj COMETⅡ Emulator -V2.00(2005/05/27)- ( Date : 2021/6/19 ) * *Result* * PR:0004 [ DREG ] FR:0(OF:0 SF:0 ZF:0) SP:F000 GR0:0004 GR1:1111 GR2:0000 GR3:0000 GR4:0000 GR5:0000 GR6:0000 GR7:0000 END COMETⅡ Emulator. 以上です!! (ごめんなさい、中身の意味は今勉強中なのでわかんないです、、、) テストファイルじゃなくて、普通の.casファイルを実行したいんだけど そんな方は、今までご紹介した処理は別に必要ないです。 IPAから取ってきたら、以下のコマンドで実行できます。 例えば、"Hello,World"と出てくるhello.casファイル新規作成して、実行します。 (JavaCASL2(IPA公式(?)のCASL IIシミュレータ)クイックガイド for Linux (Ubuntu 10.04) and Windows XP よりお借りしました。) hello.cas ; hello.cas MAIN START OUT MSG,LEN RET MSG DC 'hello, world' LEN DC 12 END コンパイルします↓ java -jar casl2.jar hello.cas これでhello.objファイルができるので、以下コマンドで実行してください。 java -jar run.jar hello.obj 【参考】実行結果↓ MacBook-Pro javaCASL2_2.0 % java -jar run.jar TestProgram/hello.obj COMETⅡ Emulator -V2.00(2005/05/27)- ( Date : 2021/6/16 ) hello, world END COMETⅡ Emulator. 以上です! いや、ターミナルでいちいちめんどくさいわ! っていう効率重視の方は、こちらもあるのでお使いください。 CASLシミュレータ (CASL II 対応) 即アセンブルしてくれるし、汎用レジスタに何入ってるか表示してくれるし、楽です。 私の宿題 .batファイルにあった「%1 %2 %3 %4」の意味がわからない。smain.casとcount1.casのファイルをつなぐためかなんかの指示を出してそう、と予想してます。 .shファイルを実行したけど、書き方が分かれば、.shファイルを作らずに、java -jar casl2.jar $1 $2 $3 $4 smain.casみたいな感じのコマンドで実行できるのかもしれない。言語上できないかもしれない。 そもそもテストファイルの中身ってなにしてたんだろう。(今後勉強していくので、今後わかるようになると信じてます) 以上です! ここまで読んでいただきありがとうございます。 ツッコミありましたらお願いします。 参考記事 MacでのJavaのインストール方法 どうすればアプレットを実行せずにどのJavaバージョンがWindowsまたはMacにインストールされているかを確認できますか。 バッチファイル パーミッションについて chmod【コマンド】 【 ls 】コマンド――ファイルを一覧表示する 最初のプログラム作りを支援する「高校生だからUnixプログラミング」「中学生でもUnixプログラミング」 JavaCASL2(IPA公式(?)のCASL IIシミュレータ)クイックガイド for Linux (Ubuntu 10.04) and Windows XP
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Mac環境で、IPA提供シミュレータを使って、アセンブリ言語「CASLII」の「テストファイル」を動かした話

この記事の対象者 Mac環境で、IPA提供シミュレータで、CASLIIの「テストファイル」を動かしたい人 概要 基本情報技術者試験(FE)の午後試験としてアセンブリ言語の1種「CASLII」の勉強をしようと思いました。 CASLIIを動かせるシミュレータをIPA※からダウンロードしました。 私はMacを使用していますが、IPAからダウンロードしたフォルダの中には「Windows環境の取扱説明書」しかありません。 Macだとどう動かせばいいんだ。。。せっかくダウンロードしたし動かしたい。 いろいろ試して、とりあえずmac環境下でも「テストファイル」が動いたのでここに記載します。 ※IPA…独立行政法人情報処理推進機構 → https://www.ipa.go.jp/ 注意 この記事のメインはあくまでも、「Mac環境で、IPA提供のCASLIIテストファイルを、IPA提供のシミュレータで動かす」です。 それ以外のファイル、例えば、自分で作成した.casファイルを動かしたい人は、「テストファイルじゃなくて、普通の.casファイルを実行したいんだけど」を見てください! いや、そもそもIPAのシミュレーター以外に使えるものないの?って方は、「いや、ターミナルでいちいちめんどくさいわ!」を見てください! 私の環境 macOS Big Sur バージョン11.4 OpenJDK 15.0.2 今回ダウンロードしたCASLIIシミュレータのバージョンは ver2.0 IPA提供のシミュレータを使って、IPA提供の「テストファイル」を実行するまでのステップ Javaをダウンロード&インストールする IPAからシミュレータをダウンロード&解凍 アセンブラバッチファイル(CASL2.bat)、実行バッチファイル(RUN.bat)の編集 拡張子の変更 パスの変更とターミナルの指定 拡張子を変更したファイルのパーミッションの変更 テストファイルsmain.cas、count1.casのアセンブル テストファイルsmain.casの実行 以上です。 以下で1つ1つ説明します。 1. Javaをダウンロード&インストールする IPAが提供しているシミュレータはJavaでアセンブルと実行をしてくれるのでJavaの環境が必要です。 なのでJavaをインストールします。 以下からインストールできます。 その後、ターミナル上で java -version のコマンドを打って、ちゃんと入ったかわかります。 (参考)私のやつ↓ MacBook-Pro ~ % java -version openjdk version "15.0.2" 2021-01-19 OpenJDK Runtime Environment AdoptOpenJDK (build 15.0.2+7) OpenJDK 64-Bit Server VM AdoptOpenJDK (build 15.0.2+7, mixed mode, sharing) 2. IPAからシミュレータをダウンロード&解凍 以下からダウンロードできます。 https://www.jitec.ipa.go.jp/1_20casl2/casl2dl_001.html ダウンロードして解凍すると以下のような中身になっています。 (Manual.pdf抜粋) 3. アセンブラバッチファイル(CASL2.bat)、実行バッチファイル(RUN.bat)の編集 CASL2.bat、RUN.batはMac環境では動きません。 Mac環境で、.batファイルと同じようなものは、.shのファイルのため.shファイルを作成します。 (バッチファイル(英: batch file)とは、MS-DOS、OS/2、Windowsでのコマンドプロンプト(シェル)に実行させたい命令列をテキストファイルに記述したもの。バッチファイルを実行すると、シェルプログラム(一般にCOMMAND.COMやcmd.exe)がそのファイルを読み、その中のコマンドを(通常)一行ずつ実行する。バッチファイルはUNIX系オペレーティングシステムのシェルスクリプトに相当する。(wikipedia抜粋)) そのため、以下の処理をしていきます。 1.拡張子の変更 アセンブラバッチファイル: CASL2.bat   → CASL2.sh 実行バッチファイル:    RUN.bat    → RUN.sh 2. シェルの記述の変更 取説(Manual.pdf)には、 とありますが、 Macで動かす方は以下3つやってください。 各スクリプトを実行するのに使用するシェルを、それぞれのファイルの1行目に書いてください。(私はzshなので、#!/bin/zsh) 二行目に 「java -jar [それぞれのファイルがある場所] %1 %2 %3 %4 %5」 %1 %2 %3 %4 %5 の「%」を全部「$」に変更  【参考】わたしのやつ↓ CASL2.sh #!/bin/zsh java -jar /Users/misuzz/projects/javaCASL2_2.0/casl2.jar $1 $2 $3 $4 RUN.sh #!/bin/zsh java -jar /Users/misuzu/projects/javaCASL2_2.0/run.jar $1 $2 $3 $4 3. 拡張子を変更したファイルのパーミッションの変更 今のままだと、2種類の.shファイルは実行権限がないので、 以下の通りターミナルでコマンドを打って、パーミッションを変えてください。 【パーミッション変更前】↓ MacBook-Pro TestProgram % ls -l -rw-r--r-- 1 misuzz staff 79 6 19 16:16 CASL2.sh -rw-r--r-- 1 misuzu staff 77 6 19 16:17 RUN.sh 【パーミッション変更後】↓ MacBook-Pro TestProgram % chmod 764 CASL2.sh MacBook-Pro TestProgram % chmod 764 RUN.sh MacBook-Pro TestProgram % ls -l -rwxrw-r-- 1 misuzu staff 79 6 19 16:16 CASL2.sh -rwxrw-r-- 1 misuzu staff 77 6 19 16:17 RUN.sh ↑自分の実行権限(x)が増えました。 【参考】 ※ls -l…カレントディレクトリ内の中身の詳細を一覧表示するコマンド ※chmod…ファイルのパーミッションを変更するコマンド 4. テストファイルsmain.cas、count1.casのアセンブル 上記項番3で.shファイルを作成したので、以下のコマンドをターミナルに打って、テストファイルをそれぞれアセンブルしてください。 MacBook-Pro TestProgram % ./CASL2.sh smain.cas MacBook-Pro TestProgram % ./CASL2.sh count1.cas 【参考】実行結果↓ MacBook-Pro TestProgram % ./CASL2.sh smain.cas CASLⅡ Assembler -V2.00(2005/05/27)- ( Date : 2021/6/19 ) Label:COUNT1 Def:external. Ref: 6 オブジェクトプログラムを smain.obj へ出力しました。 END CASLⅡ Assembler. MacBook-Pro TestProgram % ./CASL2.sh count1.cas CASLⅡ Assembler -V2.00(2005/05/27)- ( Date : 2021/6/19 ) オブジェクトプログラムを count1.obj へ出力しました。 END CASLⅡ Assembler. これで.objファイルができたので次で実行できます! 5. テストファイルsmain.casの実行 以下のコマンドで実行してください! MacBook-Pro TestProgram % ./RUN.sh smain.obj 【参考】実行結果↓ MacBook-Pro TestProgram % ./RUN.sh smain.obj COMETⅡ Emulator -V2.00(2005/05/27)- ( Date : 2021/6/19 ) * *Result* * PR:0004 [ DREG ] FR:0(OF:0 SF:0 ZF:0) SP:F000 GR0:0004 GR1:1111 GR2:0000 GR3:0000 GR4:0000 GR5:0000 GR6:0000 GR7:0000 END COMETⅡ Emulator. 以上です!! (ごめんなさい、中身の意味は今勉強中なのでわかんないです、、、) テストファイルじゃなくて、普通の.casファイルを実行したいんだけど そんな方は、今までご紹介した処理は別に必要ないです。 IPAから取ってきたら、以下のコマンドで実行できます。 例えば、"Hello,World"と出てくるhello.casファイル新規作成して、実行します。 (JavaCASL2(IPA公式(?)のCASL IIシミュレータ)クイックガイド for Linux (Ubuntu 10.04) and Windows XP よりお借りしました。) hello.cas ; hello.cas MAIN START OUT MSG,LEN RET MSG DC 'hello, world' LEN DC 12 END コンパイルします↓ java -jar casl2.jar hello.cas これでhello.objファイルができるので、以下コマンドで実行してください。 java -jar run.jar hello.obj 【参考】実行結果↓ MacBook-Pro javaCASL2_2.0 % java -jar run.jar TestProgram/hello.obj COMETⅡ Emulator -V2.00(2005/05/27)- ( Date : 2021/6/16 ) hello, world END COMETⅡ Emulator. 以上です! いや、ターミナルでいちいちめんどくさいわ! っていう効率重視の方は、こちらもあるのでお使いください。 CASLシミュレータ (CASL II 対応) 即アセンブルしてくれるし、汎用レジスタに何入ってるか表示してくれるし、楽です。 私の宿題 .batファイルにあった「%1 %2 %3 %4」の意味がわからない。smain.casとcount1.casのファイルをつなぐためかなんかの指示を出してそう、と予想してます。 .shファイルを実行したけど、書き方が分かれば、.shファイルを作らずに、java -jar casl2.jar $1 $2 $3 $4 smain.casみたいな感じのコマンドで実行できるのかもしれない。言語上できないかもしれない。 そもそもテストファイルの中身ってなにしてたんだろう。(今後勉強していくので、今後わかるようになると信じてます) 以上です! ここまで読んでいただきありがとうございます。 ツッコミありましたらお願いします。 参考記事 MacでのJavaのインストール方法 どうすればアプレットを実行せずにどのJavaバージョンがWindowsまたはMacにインストールされているかを確認できますか。 バッチファイル パーミッションについて chmod【コマンド】 【 ls 】コマンド――ファイルを一覧表示する 最初のプログラム作りを支援する「高校生だからUnixプログラミング」「中学生でもUnixプログラミング」 JavaCASL2(IPA公式(?)のCASL IIシミュレータ)クイックガイド for Linux (Ubuntu 10.04) and Windows XP
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Anaconda】Macでcondaコマンドが使えなかった話【備忘録】

背景 Macでcondaコマンドを使おうとしたら使えませんでした. ググってもドンピシャな解決策がなかったので執筆します. 環境 OS:MacOS BigSur ターミナル:zsh Anacondaのインストール場所:Users/username/opt/anaconda3 ←← アプローチ とりあえずconda zsh: command not found: conda おっと pathをターミナルに通す % /opt/anaconda3/bin/conda init zsh zsh: no such file or directory: /opt/anaconda3/bin/conda おやおや?? ここで何かに気づく インストールされたディレクトリパスをよく見てみた. Anacondaのインストール場所:Users/username/opt/anaconda3 ←← これコマンドにもUsers/username必要じゃない? ついに開通 「Users~」の部分を追加してコマンド実行. % Users/username/opt/anaconda3/bin/conda init zsh no change /opt/anaconda3/condabin/conda no change /opt/anaconda3/bin/conda no change /opt/anaconda3/bin/conda-env no change /opt/anaconda3/bin/activate no change /opt/anaconda3/bin/deactivate no change /opt/anaconda3/etc/profile.d/conda.sh no change /opt/anaconda3/etc/fish/conf.d/conda.fish no change /opt/anaconda3/shell/condabin/Conda.psm1 no change /opt/anaconda3/shell/condabin/conda-hook.ps1 no change /opt/anaconda3/lib/python3.8/site-packages/xontrib/conda.xsh no change /opt/anaconda3/etc/profile.d/conda.csh modified /Users/username/.zshrc ==> For changes to take effect, close and re-open your current shell. <== 無事init完了! % conda --version conda 4.10.1 バージョンも教えてくれました. 今回のオチ Macが私のディレクトリにAnacondaをインストールしてくれていたことが原因でした. 違いますね. 私が自身のMacのディレクトリ構成を理解していなかったことが原因です. コマンドの実行は時に取り返しのつかない事件のトリガーになります. やらかすことが無いようにしっかりとディレクトリ構成について理解を深めようと思うきっかけになりました. ありがとうMac. 参考記事 Anaconda3インストール後に、コマンドライン環境設定で「zsh: no such file or directory: /opt/anaconda3/bin/conda」のエラー MacOS版Anacondaのインストール
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

MacのメニューバーにTogglのタスクと経過時間を表示する

できること Togglで実行中のタスク名、経過時間をメニューバーに表示する。 こんな感じ。 Togglにハマっている Togglはいわゆる時間管理ツールで、 資格試験(AWS認定SysOpsアドミニストレーター)の勉強時間を記録するために利用している。 これまで勉強時間の管理は色々と試行錯誤していたのだが、Togglを使ってみて半月ほど経ち、なかなか心地よい。 スッキリとしたUIがお気に入り。 プロジェクトごとにダッシュボードも作成してくれる。 記録を開始するまでのステップが少ない ブラウザベースのためPCから、スマホを気にせず手軽に記録できる(スマホアプリも存在) 最低限の労力でモチベーションの上がる視覚化をしてくれる 気に入っているポイントはたくさんあるのだが、1点運用上の課題が。 それは、「タスクを開始してから何分経ったか」が気になることが多々あるのだ。 Togglに気を取られないために 時間を確認するためにTogglを開いているブラウザに移動すると、そこからネットサーフィンが始まってしまうことがあり、これでは本末転倒。どこかに常時表示できないかと思い立つ。 適当にググっていたところ、全く同じことを考えている方を発見。 参考にさせていただいたのは下記のサイト。 詳細な手順はサイトをご覧いただくとして、利用したのは「xbar」というMacOS用メニューバーのカスタマイズソフト。 今回のようにプラグインを自分で追加できるので、拡張性はかなり高そう。 おまけ:メニューバーのお掃除 Togglのタスクを表示したことで、既存のアイコンが邪魔に思えたので「Hidden Bar」を使ってスッキリさせてみた。 インストールするのみ。簡単。 整理前 整理後 |>より左側に表示されているアイコンは、>をクリックすることで表示/非表示が可能。 もちろん、|>の位置は自由自在に動かすことができる。 大分好みのメニューバーに仕上がって、満足。 それと同時に、MacOSメニューバーカスタマイズという領域の魅力に気づいてしまいました・・・。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

npm install --global expo-cli がエラーになる

目次 第1回 React NativeでMapboxを使ったiOSアプリを作る 第2回 npm install --global expo-cli がエラーになる →今ココ 概要 第1回の内容をM1 Macで再現した際に、npm install --global expo-cliでエラーになったので、 それの解決方法を紹介します。 実行コマンドとエラー npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules' ここら辺が怪しいそうです。 % npm install --global expo-cli npm WARN deprecated @hapi/joi@17.1.1: Switch to 'npm install joi' npm WARN deprecated @hapi/address@4.1.0: Moved to 'npm install @sideway/address' npm WARN deprecated @hapi/pinpoint@2.0.0: Moved to 'npm install @sideway/pinpoint' npm WARN deprecated @hapi/formula@2.0.0: Moved to 'npm install @sideway/formula' npm WARN deprecated core-js@2.6.12: core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js. npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated npm WARN deprecated uuid@3.3.2: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies. npm WARN deprecated fsevents@1.2.13: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2. npm WARN deprecated joi@11.4.0: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial). npm WARN deprecated topo@2.0.2: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial). npm WARN deprecated hoek@4.2.1: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial). npm WARN deprecated uuid@3.0.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated uuid@2.0.3: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules npm WARN @pmmmwh/react-refresh-webpack-plugin@0.3.3 requires a peer of react-refresh@^0.8.2 but none is installed. You must install peer dependencies yourself. npm ERR! code EACCES npm ERR! syscall access npm ERR! path /usr/local/lib/node_modules npm ERR! errno -13 npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules' npm ERR! [Error: EACCES: permission denied, access '/usr/local/lib/node_modules'] { npm ERR! errno: -13, npm ERR! code: 'EACCES', npm ERR! syscall: 'access', npm ERR! path: '/usr/local/lib/node_modules' npm ERR! } npm ERR! npm ERR! The operation was rejected by your operating system. npm ERR! It is likely you do not have the permissions to access this file as the current user npm ERR! npm ERR! If you believe this might be a permissions issue, please double-check the npm ERR! permissions of the file and its containing directories, or try running npm ERR! the command again as root/Administrator. 原因 正直謎ですが、シェルをbashからzshに変更したので、それが原因かもしれません。 やったこと 結論を言うと、npmのデフォルトディレクトリを変更しました。 まず、こちらのサイトを参考に、 Node.jsとnpmを再インストール(npm install -g npm)しましたが、解決せず。 そのため、npmのデフォルトディレクトリを変更する手順を行いました。 その前に! npm globalリストを取得します。 npm globalリストを取得 npmのデフォルトディレクトリを変更すると、 npm globalのリストが消えてしまうので、メモがてらやります。 % npm ls -g --depth=0 /usr/local/lib ├── eslint@7.8.1 ├── eslint-plugin-react@7.20.6 ├── firebase-tools@8.10.0 ├── n@6.5.1 ├── npm@6.14.6 ├── typescript@4.0.2 └── yarn@1.22.4 npmのデフォルトディレクトリを変更 こちらのサイトを参考に、コマンドを実行します。 PCのバックアップを行う グローバルインストールのためのディレクトリを作成する mkdir ~/.npm-global 新しいディレクトリを使う設定をnpmで行う npm config set prefix '~/.npm-global' ~/.profileを開くか作成し,以下の行を追加する export PATH=~/.npm-global/bin:$PATH 3の変更を反映する source ~/.profile npm globalリストにあるライブラリを全部追加する npm install -g <ライブラリ名>@<バージョン> expo-cliのインストール % npm install --global expo-cli + expo-cli@4.5.2 added 1792 packages from 788 contributors in 191.908s インストールに成功しました。 expoプロジェクトの作成 % expo init react-native-mapbox-demo zsh: command not found: expo expoコマンドが見つからないようです。 おそらくシェルをzshに変更したから発生した模様 パスを通す echo 'export PATH="/usr/local/Cellar/node/14.17.0/bin/:$PATH"' >> ~/.zshrc source ~/.zshrc echo 'export PATH=$PATH:~/.npm-global/bin' >> ~/.zshrc source ~/.zshrc expoコマンドの実行 % expo -V 4.5.2 expoコマンドが実行できました! % expo init react-native-mapbox-demo もちろん、プロジェクト作成も成功です! 最後に npm install --global expo-cliでエラーになった際の解決方法を紹介しました。 解決の糸口になったら幸いです。 次こそ、Mapboxのマップオプション周りの設定を解説する予定です。お楽しみに! 宣伝 パーソルプロセス&テクノロジー株式会社(以下パーソルP&T)、システムソリューション(SSOL)事業部所属の堀江です。 私はモビリティソリューションデザインチームに所属しており、モビリティ(ここでは移動手段全般)に関するサービスを考えたり、アプリを構築したりしております。 いわゆる「MaaS」に取り組んでおります。 私たちが「MaaS」に取り組む中で、現在活用している、もしくは活用する予定の技術やサービスやとりあえず発信したいことなどなど、幅広くチームメンバーと共に執筆していきたいと思います。 メンバーごとに違った内容を発信していきますので、お楽しみに! また、「MaaS」について詳しく知りたい方は、チームメンバーの吉田が記事を掲載しておりますので、 ぜひそちらをご覧ください。 「MaaSとは」でたどり着いて欲しい記事 (1/3 前編) 「MaaSとは」でたどり着いて欲しい記事 (2/3 中編) 「MaaSとは」でたどり着いて欲しい記事 (3/3 後編) 最後まで読んでいただき、ありがとうございました!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

goをmacで!チュートリアル

概要 業務でgoを使うことになったので導入のチュートリアル Dockerは使わずにMacのローカル環境に入れる 前提 macOS Catalina (まだBig Surが安定してなさそうなので) goのバージョンは、1.13.xを使用。(今回は1.13.15で実施。ちなみに現時点の最新は1.16.5) goの格納先のpathは一例なので好きに変えても良い 手順 goのダウンロード 公式サイトのDownloadページ を開く https://golang.org/dl/ 下のほうにある、Archived versions のプルダウンの中から go1.13.X を押下してアコーディオンを開く go1.13.X.darwin-amd64.tar.gz をクリックしてダウンロード ダウンロードしたzipを解凍 解凍したファイルを以下のディレクトリに移動 ~/go1.13.X シンボリックリンク作成 goのバージョンを切り替えやすくするため、GOROOTに設定するpathはシンボリックリンクを作成する $ ln -s ~/go1.13.X ~/goroot $ ls -l ~ pathを通す $ vi ~/.bash_profile 以下を追加 export GOROOT=$HOME/goroot export GOPATH=$HOME/gosources export PATH=$PATH:$GOROOT/bin 再読み込み $ source ~/.bash_profile 確認 $ go version go version go1.13.X darwin/amd64 ※この時、以下のような警告が出る場合がある。 悪質なソフトウェアかどうかをappleでは確認できないため、このソフトウェアは開けません。 この場合は以下の手順を実行してからバージョン確認する MacのFinder で、開きたいアプリケーションを検索 Launchpadは使用しない。(Launchpadではショートカットメニューにアクセスできない) Controlキーを押しながらgoのアプリケーションアイコンをクリックして、ショートカットメニューから「開く」を選択 「開く」をクリック これでgoのアプリケーションがセキュリティ設定の例外として保存され、今後は登録済みのアプリケーションと同様に、ダブルクリックすることで開くことができるようになる 参考:https://support.apple.com/ja-jp/guide/mac-help/mh40616/mac
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

macにGoを導入する

概要 業務でgoを使うことになったので導入の流れをメモ Dockerは使わずにMacのローカル環境に入れる 前提 macOS Catalina (まだBig Surが安定してなさそうなので) goのバージョンは、現時点の最新の 1.16.5※導入後にvscodeで使用するdelveツールが1.14からしかサポートしなくなったので最新入れます(2021.6.25現在) goの格納先のpathは一例なので好きに変えても良い 手順 goのダウンロード 公式サイトのDownloadページ を開く https://golang.org/dl/ go1.16.5 を押下してアコーディオンを開く go1.16.5.darwin-amd64.tar.gz をクリックしてダウンロード ダウンロードしたzipを解凍 解凍したファイルを以下のディレクトリに移動 ~/go1.16.5 シンボリックリンク作成 goのバージョンを切り替えやすくするため、GOROOTに設定するpathはシンボリックリンクを作成する $ ln -s ~/go1.16.5 ~/goroot $ ls -l ~ pathを通す $ vi ~/.bash_profile 以下を追加 export GOROOT=$HOME/goroot export GOPATH=$HOME/gosources export PATH=$PATH:$GOROOT/bin 再読み込み $ source ~/.bash_profile 確認 $ go version go version go1.16.5 darwin/amd64 ※この時、以下のような警告が出る場合がある。 悪質なソフトウェアかどうかをappleでは確認できないため、このソフトウェアは開けません。 この場合は以下の手順を実行してからバージョン確認する MacのFinder で、開きたいアプリケーションを検索 Launchpadは使用しない。(Launchpadではショートカットメニューにアクセスできない) Controlキーを押しながらgoのアプリケーションアイコンをクリックして、ショートカットメニューから「開く」を選択 「開く」をクリック これでgoのアプリケーションがセキュリティ設定の例外として保存され、今後は登録済みのアプリケーションと同様に、ダブルクリックすることで開くことができるようになる 参考:https://support.apple.com/ja-jp/guide/mac-help/mh40616/mac
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

M1 Macの設定

環境 MacBook Air (M1, 2020) macOS Big Sur ver. 11.2.3 zsh 5.8 (x86_64-apple-darwin20.0) xcode-select version 2384 Homebrewのインストール 公式のワンライナーでインストールできない... Installationにあるワンライナーで試みましたが、次のようなエラーメッセージが出ました。 % cd /opt/ % mkdir homebrew && curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew mkdir: homebrew: Permission denied /opt/のパーミッションを確認しませう。 % ls -l /opt/ total 0 drwxr-xr-x 2 root wheel 64 5 10 17:15 ./ drwxr-xr-x 20 root wheel 640 1 1 2020 ../ sudoでディレクトリをつくって、オーナーと所属グループを変更する。 % sudo mkdir homebrew % sudo chown ${USER}:staff homebrew % curl -L https://github.com/Homebrew/brew/tarball/master 最後にパスを通してあげる。.zshrcに次のように書く。 この時、/opt/homebrew/bin/を$PATHの先に書かないと、デフォルトのプログラムが優先されてしまう。gitとか。 export PATH=/opt/homebrew/bin/:$PATH # homebrewの本体 export HOMEBREW_CACHE=/opt/homebrew/cache # キャッシュの置き場所を指定 パッケージマネージャのお約束(?)を実行する。 % brew -v Homebrew >=2.5.0 (shallow or no git repository) Homebrew/homebrew-core N/A % brew update 参考 Homebrewのインストール先を変更する M1 Mac Gitのインストール % brew install git % git --version git version 2.31.1 以上! Gitインストール後に再びbrew -vをやると変化していた。 % brew -v Homebrew 3.1.5 Homebrew/homebrew-core (git revision 6464b8807b; last commit 2021-05-10) Git/GitHubの設定 ユーザー名とメールアドレスを登録する。 % git config --global user.name ${USER} % git config --global user.email 自分のメールアドレス GitHubとSSH接続する GitHubアカウントは作成済みとする。まずSSH鍵を次のコマンドで生成する。 % ssh-keygen -t rsa -b 4096 -C 自分のメールアドレス Generating public/private rsa key pair. 次に秘密鍵のファイル名の変更を行う。秘密鍵がGitHubのものと分かるように、ファイル名の末尾に_githubを追加する。 Entner file in which to save the key (/Users/user_name/.ssh/id_rsa): /Users/user_name/.ssh/id_rsa_github Created directory '/Users/user_name/.ssh'. 最後にパスフレーズを入力する。 Enter passphrase (empty for no passphrase): Enter same passphrase again: ssh githubで接続できるように.ssh/configを作成し、エディタで次のように記述する。 Host github HostName github.com User git IdentityFile ~/.ssh/id_rsa_github GitHubのSettings -> SSH and GPG keys -> SSH keysに/Users/user_name/.ssh/id_rsa_github.pubにある公開鍵を貼り付ける。 ssh githubと打ってパスフレーズを入力した後、次の出力があると成功。 Hi (GitHubのアカウント名)! You've successfully authenticated, but GitHub does not provide shell access. Connection to github.com closed. 2021/5/11 追記 git cloneができなかったので、SSH鍵を再設定した。その時のメモ まどろっこしいので~/.ssh/に移動し、 % ssh-keygen でファイル名も全てデフォルトのままにした。.ssh/configも作らなかった。 .ssh/id_rsa.pubの中身をGitHubのSettings -> SSH and GPG keys -> SSH keysに貼り付け、ssh -T git@github.comで接続した。 git cloneやgit pushの度にパスフレーズを求められてうっとおしいが、しばらくこれで我慢する。 参考 今日からはじめるGitHub ~ 初心者がGitをインストールして、プルリクできるようになるまでを解説 GitエラーPermission denied (publickey).の解決方法
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む