20200807のMacに関する記事は6件です。

VSCodeで編集中のエディターを大きくする

はじめに

VSCode でエディターを分割してる時、外部ディスプレイではそこまで気にならなくてもその接続を切ってノートPCのディスプレイサイズになった時に分割されたエディターが小さすぎて作業しにくいと感じたことありますよね?僕はあります。

スクリーンショット 2020-08-07 18.22.43.png
作業しやすい(24インチの外部ディスプレイ)↑
作業しにくい(13インチのmac)↓
スクリーンショット 2020-08-07 18.25.04.png

画面が小さくなる分、情報量が減っちゃうんですよね。かと言って今開いてるタブ消すのは面倒だし文字サイズを一時的に小さくするのも(自分が視力が良くないので)違うなーと感じていました。
一時的に今開いてるエディターを大きくするソリューションは無いものかと探していたところ、ありました。

Toggle Maximize Editor

https://marketplace.visualstudio.com/items?itemName=cbuelter.vscode-toggle-max-editor

使い方はインストールして、 Cmd + Shift + p でコマンドパレットを開いて「Toggle maximized editor」と入力してる途中でサジェストされるので押したら大きくなります。下のキャプチャのとおりですね。かんたんです。

Image from Gyazo

おわりに

まさに欲しい物がピンポイントで見つかったので良かったです。同じ悩みを抱えてる人いれば使ってみてください〜。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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-debug

examples

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というファイルから、CCCFLAGSなどコンパイルやリンクに必要なオプションが指定されていることがわかります。

実際にそのオプションが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)

以下のように記述すると、うまくいきます。

参照

公式ドキュメント

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

とにかく最速でSerial通信のログをファイルに残す

とにかく今すぐに、USBでつないだ機器からのSerial通信のログを残したい。
そんなときに使えます。

環境はMac想定です。

やること

言語はPythonを使用します。
pySerialも使うので、$pip install pyserialでインストールしておきましょう。

ソースは以下

logger.py
import 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


ここまでご覧いただきありがとうございました!
改善点、不明点等あればコメントいただけますと幸いです。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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が過去の古いプロセスにより使用されており、新たなプロセスによるサーバー起動を邪魔している

対処法 : 利用ポートのバッティングを解消する

  1. エラーが発生しているポート番号が使用されているプロセスを確認
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 30406

3.サーバを再起動してエラーが出ないことを確認

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
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Address already in useのエラーを解決する

事象

rails sでサーバを起動しようとすると、エラーが発生して、サーバーが起動できない。
エラー: 「port3000は既に使用されている」

`initialize': Address already in use - bind(2) for "127.0.0.1" port 3000 (Errno::EADDRINUSE)

原因

使用したいport3000が過去の古いプロセスにより使用されており、新たなプロセスによるサーバー起動を邪魔している

対処法 : 利用ポートのバッティングを解消する

  1. エラーが発生しているポート番号が使用されているプロセス(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 30406

3.サーバを再起動してエラーが出ないことを確認

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
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

やってみたら意外と詰まる(GitHub)

始めに

社内課題提出用に久しぶりにGitHubを使ったのですが、アカウント作成からコミットまで見事に詰まりました。
ウェブサイトを検索し確認しながらやったのですが、「書いてる内容がわからない、内容飛んでない?」というところだったり、「簡単なので省略します」と記載されているところがわからなかったり...:fearful:
忘備録として詰まった箇所を記載していきたいと思います。

使用環境

PC:MacBook
ブラウザ:Safari
マウスなし 

GitHub:アカウント登録

アカウント登録ページは英語表記ですが、ここであまり詰まる人はいない気がします。
GitHub1.png

ユーザー名、email、パスワードの登録画面ですが私もその箇所は問題ありませんでした。
問題は次の画面です。
GitHub2.png

「検証開始」を押すと次の画面が出てきて、画像の傾きを直すのですが
(検証で出される問題には複数あるみたいです。どれが当たるかは分かりせん。1度その問題が出たら変えられないのかもしれないです)
どう見ても真っ直ぐ立っている動物が「間違っています」と認証されてしまいます。
GitHub3 .png

合っていても「遅い!」と表示され、上手くいきません...。
1つにかけられる時間は記載されていませんが、記事を書く時に見た別の検証問題では18秒がカウントされていたのでそれくらい?なのかと思います。
1問3〜6秒くらいの間だったんですが:pensive:

最終的にはSafariだと上手く対応しない機能ってあるよな...と思い出し、Chromeでアカウント作成をやり直したところ1回で上手くいきました。

GitHub:ローカルフォルダとの紐付け(git init)

アカウントを作成したら、リポジトリの作成をします。
この辺りは「GitHub 使い方」で検索すると、たくさん出てきます。

私が参照したのは
https://techacademy.jp/magazine/6235
「GitHubでリポジトリを作成する」です。

git init

をするにはターミナルを起動させて、cdコマンドでコミットしたいディレクトリに移動する必要があります。
GitHub4.png

そして確か赤枠コピペすれば良いはず〜と記憶していたのですが、ここでも詰まりました。

GitHubに入れたいフォルダはアプリケーションのXAMPPの中に合ったのですが、cdコマンドで移動してlsコマンドで表示しようとしてもアプリケーション内が表示されない...!:weary:
スクリーンショット 2020-08-07 14.36.58.png

久しぶりだし何か違ったかな、そもそも(上の)コピペの前に何かやることが合ったんだっけ?などと色々試しましたが、何をやってもわからない!
やっと検索すれば良いのかと思い出し(それすら忘れてた)、
「ターミナル アプリケーションフォルダ 移動」で検索。

参照サイト
https://discussionsjapan.apple.com/thread/10145774

cd /Applications

と打たなければならないそうです。「/」が必要でした。

cd /Applications/XAMPP

これでlsコマンドを使えばXAMPPの中に移動できます。
あとはコミットしたいフォルダに移動して、GitHub画面のコマンドをコピペ。動作確認でREADME.mdがコミットできれば終了です。

最後に

今回課題に選んだ本を参考にBracketsというテキストエディタをインストールしました。拡張機能でgitを使用できるようになるようなのですが、ここも詰まってます。
ただ正直今回の課題にあまり関係ないところなので...ひとまず置いておこうと思います。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む