- 投稿日:2020-08-07T18:35:48+09:00
VSCodeで編集中のエディターを大きくする
はじめに
VSCode でエディターを分割してる時、外部ディスプレイではそこまで気にならなくてもその接続を切ってノートPCのディスプレイサイズになった時に分割されたエディターが小さすぎて作業しにくいと感じたことありますよね?僕はあります。
作業しやすい(24インチの外部ディスプレイ)↑
作業しにくい(13インチのmac)↓
画面が小さくなる分、情報量が減っちゃうんですよね。かと言って今開いてるタブ消すのは面倒だし文字サイズを一時的に小さくするのも(自分が視力が良くないので)違うなーと感じていました。
一時的に今開いてるエディターを大きくするソリューションは無いものかと探していたところ、ありました。Toggle Maximize Editor
https://marketplace.visualstudio.com/items?itemName=cbuelter.vscode-toggle-max-editor
使い方はインストールして、 Cmd + Shift + p でコマンドパレットを開いて「Toggle maximized editor」と入力してる途中でサジェストされるので押したら大きくなります。下のキャプチャのとおりですね。かんたんです。
おわりに
まさに欲しい物がピンポイントで見つかったので良かったです。同じ悩みを抱えてる人いれば使ってみてください〜。
- 投稿日:2020-08-07T18:29:23+09:00
MacでPETScをMPI無しで使う
C/C++やFortrunで使える行列用のライブラリであるPETScを初心者がMacにインストールして、使えるようになるまでの軌跡です。
どのくらい初心者かというと、この手のライブラリを初めてインストールするくらいの初心者です。
(ほぼ、自分用のメモです。)MPIなしで使うための公式の回答はこちらのページとこちらのページにあるので、こちらの記事は参考程度に見ていただけると幸いです。
ちなみに何でMPIなしで使おうかと思ったのかというと、MPI関連のデバッグが割と難しいので、最初は無しで使用するのが好ましいという助言をいただいたからです。
MPI無しだと制限される機能が多々あるらしいので、特に理由がなければインストールするようにしましょう。
ダウンロード
PETScのダウンロードページに行きます。
Gitでクローンするか、zipファイルをダウンロードしましょう。
(MAcなら、brew install petsc
でもインストールできます。こちらの場合、例の如く/usr/local/Cellar/
以下にpetscがインストールされます。ただ、./configure
の実行ファイルが見当たらず、以下のオプションが指定できるかが謎なのであまり推奨しません。)インストール
このヘルプの下にスクロールして、
Installing PETSc in /usr/local or /opt where sudo or root privileges are required
の章を参考にインストールをしていきます。
今回は、/opt/
ディレクトリの下にインストールしたいと思います。
手順は(Webページにある通り)sudo mkdir /opt/petsc sudo chown user:group /opt/petsc #userの部分は自分のPCのユーザー名を入れる cd /opt/petsc tar -xzf /*petsc-3.13.0.tar.gzへのパス*/petsc-3.13.0.tar.gz cd petsc-3.13.0 ./configure --with-cc=gcc --with-cxx=g++ --download-fblaslapack --with-mpi=0 make自分はBLAS/LAPACKがなかったので、
./configure
のコマンドには、後ろに--download-fblaslapack
のオプションを付けました。
また、Fortranの使用予定はなかったので--with-fc
のオプションは明記しませんでした。MPIなしで使用するには
--with-mpi=0
のオプションが必要です。環境変数の指定
いくつか環境変数を指定する必要があるっぽいです。
以下の二つを~/.zshrc
に書き込み、$ source .zshrc
で環境変数を指定しましょう。1. PETSC_DIR
export export PETSC_DIR=/opt/petsc/petsc-3.13.4これは、
make
したりだとか、configure
した時にも(多分PETScのmakeファイル限定で?)同様のものが定義されているので、公式に環境変数として定義する必要があります。これは名前の通り、PETScのファイルがあるディレクトリへのパスです。
2. PETSC_ARCH
this variable gives a name to a configuration/build.
と公式ドキュメントには書いております。ビルド名?ってこと?
export PETSC_ARCH=arch-darwin-c-debugexamples
PDFのドキュメントの32ページに習って実際に動かしてみましょう。
$ cd $PETSC_DIR/src/ksp/ksp/tutorials $ make ex2 /Users/patrick/petsc/arch-darwin-double-debug/bin/mpicc -o ex2.o -c -Wall -Wwrite-strings -Wno- strict-aliasing -Wno-unknown-pragmas -Qunused-arguments -fvisibility=hidden -g3 -I/Users/ patrick/petsc/include -I/Users/patrick/petsc/arch-darwin-double-debug/include -I/opt/X11/ include -I/opt/local/include ‘pwd‘/ex2.c /Users/patrick/petsc/arch-darwin-double-debug/bin/mpicc -Wl,-multiply_defined,suppress -Wl,- multiply_defined -Wl,suppress -Wl,-commons,use_dylibs -Wl,-search_paths_first -Wl,- multiply_defined,suppress -Wl,-multiply_defined -Wl,suppress -Wl,-commons,use_dylibs -Wl,- search_paths_first -Wall -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -Qunused- arguments -fvisibility=hidden -g3 -o ex2 ex2.o -Wl,-rpath,/Users/patrick/petsc/arch-darwin- double-debug/lib -L/Users/patrick/petsc/arch-darwin-double-debug/lib -lpetsc -Wl,-rpath,/Users /patrick/petsc/arch-darwin-double-debug/lib -lf2clapack -lf2cblas -Wl,-rpath,/opt/X11/lib -L/ opt/X11/lib -lX11 -lssl -lcrypto -Wl,-rpath,/Applications/Xcode.app/Contents/Developer/ Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/7.0.2/lib/darwin -L/Applications/Xcode.app/ Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/7.0.2/lib/darwin -lmpifort -lgfortran -Wl,-rpath,/opt/local/lib/gcc5/gcc/x86_64-apple-darwin14/5.3.0 -L/opt/local/lib/ gcc5/gcc/x86_64-apple-darwin14/5.3.0 -Wl,-rpath,/opt/local/lib/gcc5 -L/opt/local/lib/gcc5 - lgfortran -lgcc_ext.10.5 -lquadmath -lm -lclang_rt.osx -lmpicxx -lc++ -Wl,-rpath,/Applications/ Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/7.0.2/lib /darwin -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/ bin/../lib/clang/7.0.2/lib/darwin -lclang_rt.osx -Wl,-rpath,/Users/patrick/petsc/arch-darwin- double-debug/lib -L/Users/patrick/petsc/arch-darwin-double-debug/lib -ldl -lmpi -lpmpi -lSystem -Wl,-rpath,/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/ bin/../lib/clang/7.0.2/lib/darwin -L/Applications/Xcode.app/Contents/Developer/Toolchains/ XcodeDefault.xctoolchain/usr/bin/../lib/clang/7.0.2/lib/darwin -lclang_rt.osx -ldl /bin/rm -f ex2.o $ $PETSC_DIR/lib/petsc/bin/petscmpiexec -n 1 ./ex2 Norm of error 0.000156044 iterations 6 $ $PETSC_DIR/lib/petsc/bin/petscmpiexec -n 2 ./ex2 Norm of error 0.000411674 iterations 7エラーが出てますが、とりあえずこれで成功しているみたいです。
make install について
多くのライブラリでは
./configure
make
make install
とすると勝手にヘッダーファイルやバイナリーファイルがいい感じにパスの通っている場所にコピーされ、どこからでも使えるようになるみたいです。(/usr/local/include
とか/usr/bin
とか/usr/local/bin
とか)PETScはそうではないようで(他に方法があればごめんささい)、インクルード先はmakeファイルに書く必要があります。
どうしても、
make install
したいという方はDEST_DIR
を指定するとmake install
することができます。
DEST_DIR
とは、make install でincludeディレクトリやbinディレクトリをコピーする先のパスです。これを例えば
DEST_DIR = /usr/local/petsc
のように指定するとその中に必要なディレクトリがコピーされます。適切にmakeファイルを使用すればこの作業は必要ありませんが、もし必要があれば試してみてください。
PETScを手元で使う
実際に自分のコードにPETScの関数を組み込むには、公式マニュアルの1.5 Writing Application Codes with PETScを参照し、適切なmakeファイルを作成する必要があります。
$PETSC_DIR/share/petsc/Makefile.user
を見ると、PETSc.pcというファイルから、CC
やCFLAGS
などコンパイルやリンクに必要なオプションが指定されていることがわかります。実際にそのオプションが
make print
を行うと参照することができます。
今回の場合だと以下のようになります。$ make print CC=gcc CXX=g++ FC=gfortran CFLAGS=-Wall -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -fstack-protector -fno-stack-check -Qunused-arguments -fvisibility=hidden -g3 CXXFLAGS=-Wall -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -fstack-protector -fno-stack-check -fvisibility=hidden -g -std=c++14 FFLAGS=-Wall -ffree-line-length-0 -Wno-unused-dummy-argument -g CPPFLAGS=-I/opt/petsc/petsc-3.13.4/arch-darwin-c-debug/include -I/opt/petsc/petsc-3.13.4/include LDFLAGS=-L/opt/petsc/petsc-3.13.4/arch-darwin-c-debug/lib -Wl,-rpath,/opt/petsc/petsc-3.13.4/arch-darwin-c-debug/lib LDLIBS=-lpetsc -lmこれらのオプションをコピーして以下のようなmakeファイルを作成してもコンパイルすることができます。
例えば、ex2.c
というファイルをコンパイルするためにはCC=gcc CFLAGS=-Wall -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -fstack-protector -fno-stack-check -Qunused-arguments -fvisibility=hidden -g3 #this 'CPPFLAGS' is include option CPPFLAGS=-I/opt/petsc/petsc-3.13.4/arch-darwin-c-debug/include -I/opt/petsc/petsc-3.13.4/include LDFLAGS=-L/opt/petsc/petsc-3.13.4/arch-darwin-c-debug/lib -Wl,-rpath,/opt/petsc/petsc-3.13.4/arch-darwin-c-debug/lib LDLIBS=-lpetsc -lm OBJECTS=ex2.o TARGETS = ex2 all : $(TARGETS) .SUFFIXES: .SUFFIXES: .c .o .c.o: $(CC) -c -o $@ $(CFLAGS) $(CPPFLAGS) $< ex2 : $(OBJECTS) $(CC) -o $@ $(OBJECTS) $(LDFLAGS) $(LDLIBS) clean: rm -f core *~ *.o $(TARGETS)以下のように記述すると、うまくいきます。
参照
- 投稿日:2020-08-07T18:19:09+09:00
とにかく最速でSerial通信のログをファイルに残す
とにかく今すぐに、USBでつないだ機器からのSerial通信のログを残したい。
そんなときに使えます。環境はMac想定です。
やること
言語はPythonを使用します。
pySerialも使うので、$pip install pyserial
でインストールしておきましょう。ソースは以下
logger.pyimport serial com = serial.Serial('/dev/....') while True: line = com.readline().strip().decode('utf-8') print(line) f = open('data.txt', 'a+') f.writelines(line) f.close() com.close()※COMポートは各自確認してください。
COMポートがわからない時
Macであれば、以下のコマンドで一覧を確認できます。
$ ls -l /dev/tty.usb*※参考:https://qiita.com/k-yamada-github/items/c12bafc64f9868f8c85c
ここまでご覧いただきありがとうございました!
改善点、不明点等あればコメントいただけますと幸いです。
- 投稿日:2020-08-07T17:29:49+09:00
Address already in useの解決法 Linux版
事象
rails sでサーバを起動しようとすると、エラーが発生して、サーバーが起動できない。
エラー: 「port3000は既に使用されている」`initialize': Address already in use - bind(2) for "127.0.0.1" port 3000 (Errno::EADDRINUSE)原因
使用したいport3000が過去の古いプロセスにより使用されており、新たなプロセスによるサーバー起動を邪魔している
対処法 : 利用ポートのバッティングを解消する
- エラーが発生しているポート番号が使用されているプロセスを確認
mao-no-MacBook-Air:hello_world_sample mao$ lsof -i:3000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ruby 30406 mao 12u IPv4 0x982d8086b787a0bb 0t0 TCP localhost:hbci (LISTEN) ruby 30406 mao 13u IPv6 0x982d8086b93685bb 0t0 TCP localhost:hbci (LISTEN)※ 「lsof」でオープンしているファイルを一覧表示 オプション「-i:ポート番号」を指定
2.起動済みプロセスを削除
mao-no-MacBook-Air:hello_world_sample mao$ kill 304063.サーバを再起動してエラーが出ないことを確認
mao-no-MacBook-Air:hello_world_sample mao$ rails s /Users/mao/.rbenv/versions/2.7.1/lib/ruby/2.7.0/x86_64-darwin17/stringio.bundle: warning: already initialized constant StringIO::VERSION => Booting Puma => Rails 6.0.3.2 application starting in development => Run `rails server --help` for more startup options Puma starting in single mode... * Version 4.3.5 (ruby 2.7.1-p83), codename: Mysterious Traveller * Min threads: 5, max threads: 5 * Environment: development * Listening on tcp://127.0.0.1:3000 * Listening on tcp://[::1]:3000 Use Ctrl-C to stop
- 投稿日:2020-08-07T17:29:49+09:00
Address already in useのエラーを解決する
事象
rails sでサーバを起動しようとすると、エラーが発生して、サーバーが起動できない。
エラー: 「port3000は既に使用されている」`initialize': Address already in use - bind(2) for "127.0.0.1" port 3000 (Errno::EADDRINUSE)原因
使用したいport3000が過去の古いプロセスにより使用されており、新たなプロセスによるサーバー起動を邪魔している
対処法 : 利用ポートのバッティングを解消する
- エラーが発生しているポート番号が使用されているプロセス(PID)を確認
mao-no-MacBook-Air:hello_world_sample mao$ lsof -i:3000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ruby 30406 mao 12u IPv4 0x982d8086b787a0bb 0t0 TCP localhost:hbci (LISTEN) ruby 30406 mao 13u IPv6 0x982d8086b93685bb 0t0 TCP localhost:hbci (LISTEN)※ 「lsof」でオープンしているファイルを一覧表示 オプション「-i:ポート番号」を指定
2.起動済みプロセスを削除
mao-no-MacBook-Air:hello_world_sample mao$ kill 304063.サーバを再起動してエラーが出ないことを確認
mao-no-MacBook-Air:hello_world_sample mao$ rails s /Users/mao/.rbenv/versions/2.7.1/lib/ruby/2.7.0/x86_64-darwin17/stringio.bundle: warning: already initialized constant StringIO::VERSION => Booting Puma => Rails 6.0.3.2 application starting in development => Run `rails server --help` for more startup options Puma starting in single mode... * Version 4.3.5 (ruby 2.7.1-p83), codename: Mysterious Traveller * Min threads: 5, max threads: 5 * Environment: development * Listening on tcp://127.0.0.1:3000 * Listening on tcp://[::1]:3000 Use Ctrl-C to stop
- 投稿日:2020-08-07T15:05:57+09:00
やってみたら意外と詰まる(GitHub)
始めに
社内課題提出用に久しぶりにGitHubを使ったのですが、アカウント作成からコミットまで見事に詰まりました。
ウェブサイトを検索し確認しながらやったのですが、「書いてる内容がわからない、内容飛んでない?」というところだったり、「簡単なので省略します」と記載されているところがわからなかったり...
忘備録として詰まった箇所を記載していきたいと思います。使用環境
PC:MacBook
ブラウザ:Safari
マウスなしGitHub:アカウント登録
アカウント登録ページは英語表記ですが、ここであまり詰まる人はいない気がします。
ユーザー名、email、パスワードの登録画面ですが私もその箇所は問題ありませんでした。
問題は次の画面です。
「検証開始」を押すと次の画面が出てきて、画像の傾きを直すのですが
(検証で出される問題には複数あるみたいです。どれが当たるかは分かりせん。1度その問題が出たら変えられないのかもしれないです)
どう見ても真っ直ぐ立っている動物が「間違っています」と認証されてしまいます。
合っていても「遅い!」と表示され、上手くいきません...。
1つにかけられる時間は記載されていませんが、記事を書く時に見た別の検証問題では18秒がカウントされていたのでそれくらい?なのかと思います。
1問3〜6秒くらいの間だったんですが最終的にはSafariだと上手く対応しない機能ってあるよな...と思い出し、Chromeでアカウント作成をやり直したところ1回で上手くいきました。
GitHub:ローカルフォルダとの紐付け(git init)
アカウントを作成したら、リポジトリの作成をします。
この辺りは「GitHub 使い方」で検索すると、たくさん出てきます。私が参照したのは
https://techacademy.jp/magazine/6235
「GitHubでリポジトリを作成する」です。
git init
をするにはターミナルを起動させて、cdコマンドでコミットしたいディレクトリに移動する必要があります。
そして確か赤枠コピペすれば良いはず〜と記憶していたのですが、ここでも詰まりました。
GitHubに入れたいフォルダはアプリケーションのXAMPPの中に合ったのですが、cdコマンドで移動してlsコマンドで表示しようとしてもアプリケーション内が表示されない...!
久しぶりだし何か違ったかな、そもそも(上の)コピペの前に何かやることが合ったんだっけ?などと色々試しましたが、何をやってもわからない!
やっと検索すれば良いのかと思い出し(それすら忘れてた)、
「ターミナル アプリケーションフォルダ 移動」で検索。参照サイト
https://discussionsjapan.apple.com/thread/10145774cd /Applicationsと打たなければならないそうです。「/」が必要でした。
cd /Applications/XAMPPこれでlsコマンドを使えばXAMPPの中に移動できます。
あとはコミットしたいフォルダに移動して、GitHub画面のコマンドをコピペ。動作確認でREADME.mdがコミットできれば終了です。最後に
今回課題に選んだ本を参考にBracketsというテキストエディタをインストールしました。拡張機能でgitを使用できるようになるようなのですが、ここも詰まってます。
ただ正直今回の課題にあまり関係ないところなので...ひとまず置いておこうと思います。