20190829のMacに関する記事は10件です。

Mac(Catalina)でHHKBのキーマッピング変更

MacでHHKBを使いたいが、デフォルトのキーマッピングが使いづらい

Karabinerのインストール
をして、キーのマッピングを行う

設定はこんな感じにした
Untitled.png

遭遇した問題

[2019-08-29 23:32:34.798] [error] [observer] grabber_client error: No buffer space available 
[2019-08-29 23:32:34.951] [error] [console_user_server] grabber_client error: No buffer space available

類似Issue
https://github.com/tekezo/Karabiner-Elements/issues/1932

解決策

karabinerのプロセスを再起動することで治るらしい(原因は未調査

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

macOS に Homebrew で MySQL 8.0 をインストールしてデータベースを作成する

Homebrew で MySQL をインストール

$ brew install mysql
(中略)
We've installed your MySQL database without a root password. To secure it run:
    mysql_secure_installation

MySQL is configured to only allow connections from localhost by default

To connect run:
    mysql -uroot

To have launchd start mysql now and restart at login:
  brew services start mysql
Or, if you don't want/need a background service you can just run:
  mysql.server start
==> Summary
?  /usr/local/Cellar/mysql/8.0.17: 284 files, 272.5MB

MySQL サーバを起動

brew services start mysql で MySQL サーバを起動する。

$ brew services start mysql
==> Tapping homebrew/services
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-services'...
(中略)
==> Successfully started `mysql` (label: homebrew.mxcl.mysql)

MySQL の初期設定を実施

mysql_secure_installation で対話型の初期設定を開始する。

$ mysql_secure_installation

いくつかの設定について尋ねてくるのでそれに答えていく。
MySQL root ユーザーのパスワードもここで設定できる。

データベースを作成

mysql コマンドを実行する。

$ mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.17 Homebrew

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

CREATE DATABASE でデータベースを作成する。
ここでは testdb という名前のデータベースを作成する。

mysql> CREATE DATABASE IF NOT EXISTS testdb
    -> DEFAULT CHARACTER SET utf8mb4
    -> DEFAULT COLLATE utf8mb4_general_ci
    -> ;
Query OK, 1 row affected (0.01 sec)

ユーザーを作成

CREATE USER でユーザーを作成する。
ここではユーザー名に java、パスワードに cafebabe を指定する。

mysql> CREATE USER 'java'@'localhost' IDENTIFIED BY 'cafebabe';
Query OK, 0 rows affected (0.04 sec)

ユーザーに権限を設定する。

mysql> GRANT CREATE, DROP, SELECT, INSERT, UPDATE, DELETE ON testdb.* TO 'java'@'localhost';
Query OK, 0 rows affected (0.01 sec)

参考資料

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

Macで『Hacking - 美しき策謀 第2版』のLive CDを動かす

概要

『Hacking: 美しき策謀 第2版 ―脆弱性攻撃の理論と実際』
https://www.amazon.co.jp/dp/4873115140

脆弱性攻撃を実際にしてみてハッキングを学ぶ本なので,極力仮想環境を使って隔離したところで動かしたい気持ちがある.
この本ではUbuntuのLive CDイメージを配布して実行環境を得られるようにしているのでそれをMacでVirtualBoxを使って動かす備忘録.

※私はまだ少し動かしただけです.この記事の内容を実行していかなる損害が生じても責任を負いかねます.

実行環境

  • MacBook Pro
  • 2.3 GHz Intel Core i5
  • 16GBメモリ
  • OS Mojava (バージョン10.14.6)

LiveCD イメージのダウンロード

以下のリンクの 「関連ファイル」 > 「LiveCD」 からダウンロード.
https://www.oreilly.co.jp/books/9784873115146/

VirtualBoxのインストール

このあたりを参考にインストール.

VirtualBoxでの設定

「新規」でこんな感じに(32bitであることに注意)
スクリーンショット 2019-08-29 21.54.16.png

メモリサイズは好きに選ぶ
スクリーンショット 2019-08-29 21.54.44.png

そのまま進めてく
スクリーンショット 2019-08-29 21.55.01.png

スクリーンショット 2019-08-29 21.55.05.png

スクリーンショット 2019-08-29 21.55.09.png

ハードサイズも好きに選ぶ
もっと小さくしてもよかった気がする.
スクリーンショット 2019-08-29 21.55.22.png

これで最初の画面に戻るはず.
次にできたやつを選んで「設定」 > 「ストレージ」
こんな感じの画面が出てくる.
「コントローラー:IDE」の下の「空」となっているCDマークをクリック.
スクリーンショット 2019-08-29 21.55.56.png

この「IDEセカンダリマスター」とか書いている右側のCDマークをクリックして,先ほどダウンロードしたisoファイルを選択.
さらにLive CD/DVDにチェックを入れる.
スクリーンショット 2019-08-29 21.56.05.png

起動
Ubuntu7.04ってやばい古いな...
スクリーンショット 2019-08-29 21.58.13.png

仮想マシン上での設定

キーボード設定

JISキーボードを使っている場合,キーボードの割り当てがめちゃくちゃになっているので左上の「System」 > 「Preference」 > 「Keyboard」から適当に直したかったのだが,なんだかうまくいっていない.
うまいこと直せている人がいたら教えてください.

実行ファイルダウンロード

以下のコマンドをUbuntu上で打って実行ファイルをダウンロード.
なんだか妙に証明書にうるさい初期設定になっているのでそこを無視するようにする.
wget --no-check-certificate http://www.oreilly.co.jp/pub/9784873115146/HackingJ.zip
unzip HackingJ.zip

コード実行

とりあえず0x200の最初のコマンドを実行してみる
スクリーンショット 2019-08-29 22.25.58.png
スクリーンショット 2019-08-29 22.27.37.png
動いた!嬉しい!

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

Mac & VirtualBoxで『Hacking : 美しき策謀 第2版』のLive CDを動かす

概要

『Hacking: 美しき策謀 第2版 ―脆弱性攻撃の理論と実際』
https://www.amazon.co.jp/dp/4873115140

脆弱性攻撃を実際にしてみてハッキングを学ぶ本なので,極力仮想環境を使って隔離したところで動かしたい気持ちがある.
この本ではUbuntuのLive CDイメージを配布して実行環境を得られるようにしているのでそれをMacでVirtualBoxを使って動かす備忘録.

※私はまだ少し動かしただけです.この記事の内容を実行していかなる損害が生じても責任を負いかねます.

実行環境

  • MacBook Pro
  • 2.3 GHz Intel Core i5
  • 16GBメモリ
  • OS Mojava (バージョン10.14.6)

LiveCD イメージのダウンロード

以下のリンクの 「関連ファイル」 > 「LiveCD」 からダウンロード.
https://www.oreilly.co.jp/books/9784873115146/

VirtualBoxのインストール

このあたりを参考にインストール.

VirtualBoxでの設定

「新規」でこんな感じに(32bitであることに注意)
スクリーンショット 2019-08-29 21.54.16.png

メモリサイズは好きに選ぶ
スクリーンショット 2019-08-29 21.54.44.png

そのまま進めてく
スクリーンショット 2019-08-29 21.55.01.png

スクリーンショット 2019-08-29 21.55.05.png

スクリーンショット 2019-08-29 21.55.09.png

ハードサイズも好きに選ぶ
もっと小さくしてもよかった気がする.
スクリーンショット 2019-08-29 21.55.22.png

これで最初の画面に戻るはず.
次にできたやつを選んで「設定」 > 「ストレージ」
こんな感じの画面が出てくる.
「コントローラー:IDE」の下の「空」となっているCDマークをクリック.
スクリーンショット 2019-08-29 21.55.56.png

この「IDEセカンダリマスター」とか書いている右側のCDマークをクリックして,先ほどダウンロードしたisoファイルを選択.
さらにLive CD/DVDにチェックを入れる.
スクリーンショット 2019-08-29 21.56.05.png

起動
Ubuntu7.04ってやばい古いな...
スクリーンショット 2019-08-29 21.58.13.png

仮想マシン上での設定

キーボード設定

JISキーボードを使っている場合,キーボードの割り当てがめちゃくちゃになっているので左上の「System」 > 「Preference」 > 「Keyboard」から適当に直したかったのだが,なんだかうまくいっていない.
https://dooluka.hatenadiary.org/entry/20120623/1340377518
このリンクとか見ればなんとかなるかも

画面サイズの調整

ウィンドウサイズに合わせてUbuntuの画面サイズが変わるようにする.
Ubuntuを立ち上げているウィンドウをクリックして,Macの画面上部のメニューバーで
「View」 > 「Scaled Mode」にチェック.
または Command + C でも多分できる.

実行ファイルダウンロード

~/booksrc にも置かれているのでぶっちゃけダウンロードいらない気もするけれど,ダウンロードすると章ごとにディレクトリ分けされたものが得られてちょっと整理がつく.

以下のコマンドをUbuntu上で打って実行ファイルをダウンロード.
なんだか妙に証明書にうるさい初期設定になっているのでそこを無視するようにする.
wget --no-check-certificate http://www.oreilly.co.jp/pub/9784873115146/HackingJ.zip
unzip HackingJ.zip

コード実行

とりあえず0x200の最初のコマンドを実行してみる
スクリーンショット 2019-08-29 22.25.58.png
スクリーンショット 2019-08-29 22.27.37.png
動いた!嬉しい!

注意点

仮想マシン落とすときは「Save the machine state」を選ばないと多分Ubuntu内のデータとか諸々全部吹っ飛ぶ気がする.

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

Docker For Macが遅い:対策の実験

docker-facebook-1024x536-1-1024x536.png
前回のまとめた資料から実際テストしてみた内容をまとめてみました。(人^─^)

会社のLaravelプロジェクトのdockerの開発環境で試してました。

問題になりそうなところ

先ずdocker-compose.ymlを分析して同期する対象を決めてみました。

docker-composer.yml
version: '2'
services:
  mysqldata: <- *1
    image: busybox
    volumes:
      - ./docker/mysql/storage:/var/lib/mysql
  mysql:
    build: ./docker/mysql
    volumes_from:
      - mysqldata <- *1
    ports:
      - ${DOCKER_NUM}4306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=password
      - MYSQL_DATABASE=app_db
  php:
    container_name: web_php
    build: ./docker/php
    ports:
      - ${DOCKER_NUM}8888:80
      - ${DOCKER_NUM}443:443
    volumes:
      - .:/var/www/html <- *2
    links:
      - mysql
  smtp:
    image: phpdockerio/mailhog:latest
    ports:
      - ${DOCKER_NUM}1025:1025
      - ${DOCKER_NUM}8025:8025

「*1」 : DBA

  • DBのファイルをDocker化する場合はvolumesが適切かと思います。SyncするとDatabaseファイルの構成上、大変なことになると思います。

  • Docker for Macの場合はvolumesが遅いのでMacに直接にインストールしてDockerから接続するか、Docker化するがvolumnsはしない(DB内容はDBAに接続してみるかDockerの中に入ってみる)と思います。

「*2 」: 今回はこれだけdocker-syncの対象にしてみいます。

現在の速度

Top画面を表示してみました。全体的に遅い(google developer toolsでみると20秒以上)です。特にHtml(DB関連かな)が遅いですね。Σ(´Д`)ハッ!!

100Mのファイルを作成します。Docker内部で実行します。

# time dd if=/dev/zero of=speedtest bs=1024 count=102400
102400+0 records in
102400+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 86.2196 s, 1.2 MB/s

real    1m26.162s
user    0m1.110s
sys     0m8.190s

ウヒャ━━ヽ(゚Д゚)ノ━━!!

では、docker-syncを利用して同期してみましょう。

同期するように変更

先ず、docker-syncをインストール

# gem install docker-sync
Fetching: thor-0.20.3.gem (100%)
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.

つ〜〜 ( ´з`)・∵.ブッ

# sudo gem install docker-sync

次は監視するための物ですが、今回は使ってません。

# brew install fswatch

自分のPCはrsyncがインストールされているので、省略します。(´∀`*)ウフフ

実際、テストしてみると大きく同期なのでファイルの権限的な部分の問題が多かったので他のファイルも一部修正しました。

docker-sync.yml
version: '2'

syncs:
  document-root:
    sync_strategy: rsync
    notify_terminal: true
    sync_host_ip: 'auto'
    sync_host_port: 10872
    sync_excludes: [ '.git', '.idea', 'vendor', 'docker', '*.yml' ]
    sync_args: '-v'
    src: ./
    sync_userid: '33'

「sync_userid」についてはContainerのユーザー番号です。

docker-composer.yml
version: '2'
services:
  mysqldata:
    image: busybox
  mysql:
    build: ./docker/mysql
    ports:
      - ${DOCKER_NUM}4306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=password
      - MYSQL_DATABASE=app_db
  php:
    container_name: web_php
    build: ./docker/php
    ports:
      - ${DOCKER_NUM}8888:80
      - ${DOCKER_NUM}443:443
    environment:
      - APACHE_RUN_USER=www-data
      - APACHE_RUN_GROUP=www-data
    volumes:
      - document-root:/var/www/html
    links:
      - mysql
  smtp:
    image: phpdockerio/mailhog:latest
    ports:
      - ${DOCKER_NUM}1025:1025
      - ${DOCKER_NUM}8025:8025
volumes:
  document-root:
    external: true

修正後の速度

DBを同期&マウントしてないので、「初期のデータベースを更新」が比較的に早い(25分くらい)ですね。キタ━━(p゚∀゚q)━━!!

では、100Mのファイルを作成します。

# time dd if=/dev/zero of=speedtest bs=1024 count=102400
# time dd if=/dev/zero of=speedtest bs=1024 count=102400
102400+0 records in
102400+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 1.41639 s, 74.0 MB/s

real    0m1.432s
user    0m0.140s
sys     0m1.240s

同じくTop画面を表示してみました。全体的に2秒くらいで画面が表示されました。♪(´ε` )

課題&疑問点

  • ログファイルやコンテイナーのファイルを見るのが面倒で、速度に問題がないまま共有する方法が必要かと思います。
  • 結局DBの問題ではないのか?DB以外はマウント(volumes)を利用しても使えるレベルではないか? 検証しないとわかりません。(;´v_v)ゞ
  • 次回は「CE 17.12 (edge) 」を試してみましょう!! -> 初期状態の「docker-composer.yml」で試してみました。結果としては4・5秒くらいでTop画面が表示されました(DBの使用頻度にもよると思います)。テストはできるレベルですね。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Docker For Macが遅い

prefs-reset.png

「クソみたいに遅いじゃん。」自分の経験ではないですが、今後の為に資料を調査して理由・対応方法を咲くってみました。

遅い理由

結論としては「Docker For Mac」がosxfsを採用している。あ!!それよりosxfsがOSXのFSEvents APIとLinux’s inotify APIをマッピングさせているのが原因です。

参考:https://forums.docker.com/t/file-access-in-mounted-volumes-extremely-slow-cpu-bound/8076/158

  • osxfsの throughput は250 MB/s -> これはほとんどのAPPで問題にならないはず
  • コンテナ内からosxfsに対するファイルIOのシステムコールはlatencyが遅い。書き込み時で200μs -> 通常のファイルシステムであれば under 10μs(クソやられた感じ)

対応方法

じゃ、簡単!!「Docker For Mac」を使えなければ良い。( ゚Д゚)ヴォケ!!

VirtualBoxを利用

docker-machineでVirtualBox上に立ち上げたdocker環境で開発環境を構築する。うん、面倒だ〜〜〜(;^ω^)

Docker For Macを使わない

CE 17.12 (edge) チャンネルを使うこと。(・д・)チッ

参考:https://blog.hanhans.net/2017/05/10/docker-user-guided-caching/

コンテイナ間を爆速で同期する

例としてはdocker-syncをおすすめします。rsyncで設定が簡単かな。

対策の実験

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

macの環境構築

この記事について

mac book pro(2019)(OSはmac OS Mojave 10.14.6)の環境構築ガイドです.
理系大学生(物理系?)向けです.

この夏, 7年間お世話になったmac book proからmac book pro(2019)に買い換え, 一から環境構築することになったので, そのメモです.

  • Python3
  • VTK
  • OpenCV
  • ROOT(cernの解析ソフト)

が使える環境を目指します.

Xcodeのインストール

まずはXcode.
AppStoreからXcodeをインストール(Xcode自体はあんまり使わないけど, 一応インストール).
Terminalでxcode-select --installでcommand line toolsをインストール.

Homebrewのインストール

Homebrewの公式に従って, Terminalで

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

を実行.

homebrew-caskもこれで使えるようになる.

Homebrew, Homebrew Cask で必要なアプリケーションをインストール

Homebrewで以下をインストール.

  • cmake

Homebrew Caskで以下をインストール

  • Google Chrome
  • Slack
  • atom
  • xquartz

Gitのインストール, 設定

brew install git を実行.
gitの設定

$ git --global user.name "your name"
$ git --global user.email "your_email@example.com"
$ git config --global color.ui auto

ssh keyの生成.

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f "$HOME/.ssh/github_rsa"
$ eval "$(ssh-agent -s)"

$HOME/.ssh/configを作成し, 以下の内容を書き込む.

Host github github.com
    AddKeysToAgent yes
    UseKeychain yes
    HostName github.com
    IdentityFile ~/.ssh/github_rsa
    User git

ssh-addを実行.

$ ssh-add -K ~/.ssh/guthub_rsa

githubにssh keyを追加.

$ pbcopy < ~/.ssh/github_rsa.pub

クリップボードにコピーした公開鍵の内容をgithubのSSH keysにペーストする.

$ ssh -T git@github.com

として

Hi your_github_account_name! You've successfully authenticated, but GitHub does not provide shell access.

と表示されればOK.

C/C++開発環境

学生の特権を使ってiccを入れる.
ここからC++ macOSを選んで, インストーラをダウンロードして, インストーラの指示に従って, インストール.
mkl, tbbも一緒にインストールされる.

intelpython3も一緒にインストールしたけど, これ使わない気がする...

mkl, tbbの環境変数を設定するために.bash_profile

source /opt/intel/mkl/bin/mklvars.sh
source /opt/intel/tbb/bin/tbbvars.sh

を追加(これをしないとnumpy, scipyが使えなかったりする).

iccだとbuildできないものもあるので, gccも入れる.

$ brew install gcc

Fortran開発環境

iccと同じようにifortranを入れる.
ここからFortran macOSを選んで, インストーラをダウンロードして, インストーラの指示に従って, インストール.

gfotran$ brew install gccで一緒にインストールされてる.

Python開発環境

今まではAnacondaを利用していたけど, 他の環境を壊しちゃったり, Anacondaとbrewで重複して入っちゃったパッケージがあったりとか, ROOTがAnaconda Pythonでは使えなかったりとか... 大変なので使うのやめます.

普通にPythonとpipで環境構築します.

Python3のインストール

まずはPython3のインストール(イマドキPython2は使いませんよ).

$ brew install python

pipも一緒に入るので大丈夫.

numpy, scipyのインストール

普通にpipnumpy, scipyをインストールすると, openblasが使われるので遅い.
なので, mklとリンクさせてbuildする.

$HOMEに以下の内容の.numpy-site.cfgを作る.

[mkl]
library_dirs = /opt/intel/mkl/lib
include_dirs = /opt/intel/mkl/include
mkl_libs = mkl_rt
lapack_libs =

また, $HOMEに次の内容で.config/pip/pip.confを作る.

[install]
no-binary = numpy,scipy

[wheel]
no-binary = numpy,scipy

これでコンパイル済みのバイナリをインストールすることなく, buildされるようになる.
あとは普通にnumpy,scipyをインストールする.

pip install numpy
pip install scipy

Jupyterのインストール, 設定

jupyter labのインストール

$ pip install jupyterlab

だいたいこれでいける.
あとは細かな設定.

$ jupyter notebook --generate-config

を実行して, ~/.jupyter/jupyter_notebook_config.pyを作成.
これをちょっと編集する.
safariとjupyterの相性がよろしくないので,

c.NotebookApp.browser = '/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome %s'

としてGoogle Chromeで開くようにする.
ちなみに--new-windowとつけると, 新しくウインドウで開く.

jupyter labnodeを使うので,

brew install node

を実行.

jupyter labRを使いたい場合は, Rを起動して, Rのインタプリンタで以下を実行.

> install.packages('IRkernel')
> IRkernel::installspec()

その他のインストール

  • pandas
  • matplotlib
  • plotly
  • Pillow
  • Cython
  • PyQt5

をインストール.

plotlyjupyter labで使えるようにするためには, 次をインストールする必要がある.

jupyter labextension install @jupyterlab/plotly-extension

ROOTのインストール(build)

$HOME/ROOTディレクトリを作る.
$HOME/ROOT下のsrcROOTのソースをおく.

$ git clone https://github.com/root-project/root.git src

$HOME/ROOTでcmakeを実行.
このとき, PYTHON_EXECUTABLEpython3を指定する.

$ cmake src -D PYTHON_EXECUTABLE=/usr/local/bin/python3

必要に応じてccmake srcを実行してからmake.

$ sudo make -j8

このとき, コンパイラの関係で失敗するときは, 以下の内容でclang.cmakeをつくり, cmake -C clang.cmake -D PYTHON_EXECUTABLE=/usr/local/bin/python3 srcを実行.

set(CMAKE_C_COMPILER "/usr/bin/clang" CACHE string "clang compiler" FORCE)
set(CMAKE_CXX_COMPILER "/usr/bin/clang++" CACHE string "clang++ compiler" FORCE)

make installをする必要はないかな.
.bash_profileに次を追加.

source "$HOME/root/bin/thisroot.sh"

これでROOTが使えるようになる.

jupyterでROOTを使いたい場合は,

$ cp -r $ROOTSYS/etc/notebook/kernels/root /Users/$USER/Library/Jupyter/kernels/

を実行する.

Qtのインストール

qtの公式からOpen Source版をダウンロードしてきて, あとはインストーラの指示に従ってインストール.
フルでインストールすると, 20GBくらいになるので, 使いそうにないiOS(これだけで9GB...)やAndroid用のものはインストールしない.

後のOpenCVとかVTKとかのbuildでcmakeがQtを認識できるように

export CMAKE_PREFIX_PATH=/Users/takayuki/Qt/5.12.4/clang_64/lib/cmake

.bash_profileに追加する.

OpenCVのインストール(build)

opencvとopencv_contribのソースをgitで落としてくる.

$ git clone https://github.com/opencv/opencv.git
$ git clone https://github.com/opencv/opencv_contrib.git

そして, cmakeでconfigureしてmake, make installのいつもの流れ.

$ cd opencv
$ mkdir build
$ cd build
$ cmake `cd ..; brew diy --version=4.1.1` \
    -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules/ \
    -D BUILD_EXAMPLES=ON \
    -D WITH_QT=ON \
    -D Qt5Core_DIR=/Developer/Qt/5.12.4/clang_64/lib/cmake/Qt5Core/ \
    -D Qt5Gui_DIR=/Developer/Qt/5.12.4/clang_64/lib/cmake/Qt5Gui/ \
    -D Qt5Test_DIR=/Developer/Qt/5.12.4/clang_64/lib/cmake/Qt5Test/ \
    -D Qt5Widgets_DIR=/Developer/Qt/5.12.4/clang_64/lib/cmake/Qt5Widgets/ \
    -D Qt5Concurrent_DIR=/Developer/Qt/5.12.4/clang_64/lib/cmake/Qt5Concurrent/ \
    -D Qt5OpenGL_DIR=/Developer/Qt/5.12.4/clang_64/lib/cmake/Qt5OpenGL/ \
    -D WITH_OPENGL=ON \
    -D Qt5_DIR=/Users/takayuki/Qt/5.12.4/clang_64/ ..

このあと$ ccmake ..BUILD_EXAMPLESをONに, MKLTBB, Pythonの設定がうまくできてるか確認してから,

$ make -j8
$ make install

最後にbrew link opencv.

VTKのインストール(build)

必要かもしれないhdf5, netcdfをインストール.

$ brew install hdf5
$ brew install netcdf

$HOMEにvtkのディレクトリを作り, sourceをgitで落としてくる.

$ mkdir vtk
$ git clone https://github.com/Kitware/VTK.git src

git checkout refs/tags/v8.2.0とした方が良いのかもしれないけど, こうすると, bugがある(Pythonでimport vtkをすると失敗する.詳しくはここ)のでmasterのままでbuildする.

そしてcmake.

$ cmake -D CMAKE_INSTALL_PREFIX=/usr/local/Cellar/vtk/8.2.0 \
    -D PYTHON_EXECUTABLE=/usr/local/bin/python3 \
    -D VTK_WRAP_PYTHON:BOOL=ON \
    src

ccmakeでもうちょっとConfigure

$ ccmake src

build examplesVTK_Group_QtをONにしてcでConfigure.

$ make -j8
$ make install

最後にbrew link.

$ brew link vtk

ParaViewのインストール

5.7.0がRC版なので, 5.6.2を公式からインストール.
homebrew caskのやつはGUIがイマイチ(見た目が古かった)だったのでやめました.

buildしないのかって?
結構大変なんすよ...

TeX環境の構築

basictexとghostscriptをインストール.

$ brew cask install basictex
$ brew install ghostscript

アップデートしてから日本語を使えるようにする.

$ sudo tlmgr update --self --all
$ sudo tlmgr paper a4
$ sudo tlmgr install collection-langjapanese

ヒラギノを使えるようにする.

$ sudo tlmgr repository add http://contrib.texlive.info/current tlcontrib
$ sudo tlmgr pinning add tlcontrib '*'
$ sudo tlmgr install japanese-otf-nonfree japanese-otf-uptex-nonfree ptex-fontmaps-macos cjk-gs-integrate-macos
$ sudo tlmgr install cjk-gs-integrate adobemapping
$ sudo cjk-gs-integrate --link-texmf --cleanup
$ sudo cjk-gs-integrate-macos --link-texmf
$ sudo mktexlsr
sudo kanji-config-updmap-sys --jis2004 hiragino-highsierra-pron

TeXshop, latexitをインストール.

$ brew cask install texshop
$ brew install latexit

texshopの設定を開いてtexwikiを参考にして設定する.

ユーティリティー

Terminal起動のショートカット設定

  1. Automater → クイックアクション.
  2. アプリケーションを起動, Terminalを起動を選択. ワークフローが受け取る項目を入力なしに設定.
  3. ComeOnTerminal の名前で保存.
  4. システム環境設定 → キーボード → ショートカット → サービス → 一般 → ComeOnTerminal → ショートカットキー(ctrl + option + t)を追加.

Automatorスクリプトは~/Library/Services/ComeOnTerminal.workflowにある.

アプリケーションを起動中はそのアプリケーションのショートカットが優先されるため, Terminalが起動しないことがある.

Touch BarからSiriを消す

Touch BarにSiriがいるのなんか嫌.
間違って押しちゃいそうになるし...

  1. システム環境設定 → キーボード → Touch Barをカスタマイズ.
  2. Siriを消す.

フォントRictyのインストール

Ricty Diminishedの公式からRicty Diminishedをダウンロードしてインストール.
Rictyは前のMacBookProで生成したものを移植(サボりました...).

参考

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

MacBookPro MojaveTouch Barが急に表示されなくなった時に再起動する方法

MacBookPro Mojave(2019 13-inch)に替えてからTouchBar使いにくいな
Esc押しづらいな、十字キー使いづらいな、タイピングの打鍵が気持ちよくないなとか色々思ってましたが、
画面ロックしようとしたら急に「あれ、TouchBarが何も表示されない」って黒い状況でボタンがない状態になりました。
スリープできへんやん。
ということでTouchBar再起動する方法があったのでメモです。

ActivityMonitorからタスクキルする方法

  1. Spotlight検索(Cmd + space)やアプリケーションフォルダから「Activity Monitor」を起動する
  2. 「TouchBarServer」というプロセス名を見つけて終了(Quit)させる

プロセス名は
Mojaveの場合:TouchBarServer、 High Sierra、Sierraの場合:Touch Bar agent

ターミナルからコマンド実行する方法

  1. ターミナルを開く
  2. コマンド実行する

MacOS Mojaveの場合:
sudo pkill TouchBarServer

MacOS High Sierra、Sierraの場合:
pkill "Touch Bar agent"

コントロールストリップ(Control Strip)部分のみを手動で再起動する方法

Touch Barのを強制的にリロード

  1. ターミナルを開く
  2. コマンド実行する killall ControlStrip

OS再起動

と、ここまでやってもダメなことがあったので
最終的にはOSを再起動するだけで治りました。
なのでOS再起動でも良いと思います。

なんでやねん

蛇足

調べてみるとTouchBarがたまに表示されない状況になるのはまあある状況みたいでした。
ただでさえ使いづらいのに元の物理ボタンに戻して欲しいです。
プログラミング的にEsc押しづらい・打鍵感がないってのはviもそうだし非常に使いづらいです。

ちなみにTouchBarが表示されていない状況の時は
設定画面からTouchBarに関するメニューがごっそり消えていたのでそこはちゃんとしてるんだ?と思いました。

スクリーンショット 2019-08-29 14.32.06.png

参照

http://osxdaily.com/2017/01/11/manually-refresh-touch-bar-mac/

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

MacBookPro(Mojave)のTouch Barが急に表示されなくなった時に再起動する方法

MacBookPro Mojave(2019 13-inch)に替えてからTouchBar使いにくいな
Esc押しづらいな、十字キー使いづらいな、タイピングの打鍵が気持ちよくないなとか色々思ってましたが、
画面ロックしようとしたら急に「あれ、TouchBarが何も表示されない」って黒い状況でボタンがない状態になりました。
スリープできへんやん。
ということでTouchBar再起動する方法があったのでメモです。

ActivityMonitorからタスクキルする方法

  1. Spotlight検索(Cmd + space)やアプリケーションフォルダから「Activity Monitor」を起動する
  2. 「TouchBarServer」というプロセス名を見つけて終了(Quit)させる

プロセス名は
Mojaveの場合:TouchBarServer、 High Sierra、Sierraの場合:Touch Bar agent

ターミナルからコマンド実行する方法

  1. ターミナルを開く
  2. コマンド実行する

MacOS Mojaveの場合:
sudo pkill TouchBarServer

MacOS High Sierra、Sierraの場合:
pkill "Touch Bar agent"

コントロールストリップ(Control Strip)部分のみを手動で再起動する方法

Touch Barのを強制的にリロード

  1. ターミナルを開く
  2. コマンド実行する killall ControlStrip

OS再起動

と、上記までをやってもダメなことがあったので
最終的にはOSを再起動するだけで治りました。
なのでOS再起動でも良いと思います。

ここまでやって、なんでやねん

蛇足

調べてみるとTouchBarがたまに表示されない状況になるのはまあある状況みたいでした。
ただでさえ使いづらいのに元の物理ボタンに戻して欲しいです。
プログラミング的にEsc押しづらい・打鍵感がないってのはviもそうだし非常に使いづらいです。

ちなみにTouchBarが表示されていない状況の時は
設定画面からTouchBarに関するメニューがごっそり消えていたのでそこはちゃんとしてるんだ?と思いました。

スクリーンショット 2019-08-29 14.32.06.png

参照

http://osxdaily.com/2017/01/11/manually-refresh-touch-bar-mac/

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

[Rails6.0.0]Rails 6で新しいアプリを作成、サーバー起動して初期画面を表示する

はじめに

Rails 6.0.0がリリースされたので、Railsアプリを新規作成してみました。
この記事では、localhost:3000に接続して初期画面が表示されるまでをゴールとします。

前提

  • Homebrewインストール済み
  • rbenvでRubyのバージョンを管理している
  • Bundlerを使ってGemを各Railsアプリ内にローカルインストールしている

ここではHomebrew, rbenv, Ruby, Bundlerのインストール、各種設定は省略させていただきます。
私は下記のサイトを参考にしました。

Homebrew公式
rbenvの使い方と仕組みについて
rbenv や Bundler を用いた Ruby環境構築
Rails開発環境の構築(複数バージョン共存可能)(Homebrew編)(個人的に一番参考にさせて頂いた記事)

環境

  • macOS Mojave バージョン 10.14.5
  • Homebrew 2.1.10
  • rbenv 1.1.2
  • Ruby 2.6.3
  • Bundler version 2.0.2

Railsのインストールの前に

Rails6ではwebpackerが標準でインストールされるようになりました。
これによりyarnのインストールが必要になりました。
まだインストールされていない方はHomebrewからyarnをインストールしておきましょう。

$ brew install yarn

下記のサイトが参考になるかと思います。

https://yarnpkg.com/ja/docs/install#mac-stable
Rails6 開発時につまづきそうな webpacker, yarn 関係のエラーと解決方法

Railsのインストール

ディレクトリの作成

まず、新しく作成したいアプリの空のディレクトリを作成します。
今回はtest_appという名前のアプリを作っていきます。

$ mkdir test_app

ディレクトリが作成できたら、そのディレクトリに移動します。

$ cd test_app

Gemfileの作成

Railsアプリで使用するGemが記述されたGemfileファイルを作成します。

$ bundle init

上記のコマンドによって作成されたGemfileファイルを下記のように編集します。

# frozen_string_literal: true

source "https://rubygems.org"

git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }

gem "rails" # コメントアウトを外す

Terminalから編集する方法がわからない場合は、Finderからtest_app/Gemfileを探して編集しても大丈夫です。

Bundlerを使ってRailsをインストール

先ほど編集したGemfileを元に、Railsをインストールしていきます。
この時にpathオプションでインストールする場所を指定することで、Railsをローカルインストールします。
ここではpathオプションにvendor/bundleを指定します。

$ bundle install —path vendor/bundle
Fetching gem metadata from https://rubygems.org/.............
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...
Fetching rake 12.3.3
Installing rake 12.3.3
Fetching concurrent-ruby 1.1.5
Installing concurrent-ruby 1.1.5
Fetching i18n 1.6.0
Installing i18n 1.6.0
以下略…

インストールが成功していれば、test_app内に
Gemfile.lockファイル
vendorフォルダ
が作成されています。これでRailsがインストールできました。

nokogiriエラーが出てしまったら

bundle install時にnokogiriのインストールエラーがよく起こります。
もしこのエラーが起きた時は、以前このエラーに遭遇した時のメモや参考にさせて頂いた記事を参考にしていただければ幸いです起きた

bundle install時にnokogiriエラー(nokogiriのバージョン1.10.4)
nokogiri を嫌いにならないで 〜インストール時のエラーを乗り越えろ〜

Railsアプリの新規作成

次に、インストールしたRailsを使ってRailsアプリを新規作成します。

rails new

rails newコマンドでRailsアプリを新規作成します。

$ bundle exec rails new .
       exist  
      create  README.md
      create  Rakefile
      create  .ruby-version
      create  config.ru
      create  .gitignore
    conflict  Gemfile
Overwrite /Users/[ユーザー名]/test_app/Gemfile? (enter "h" for help) [Ynaqdhm] 

Gemfileを上書きしていいですか?と聞かれるのでyEnterを入力して上書きします。
これで色々とファイルが作成されます。

Overwrite /Users/sasakuranaoya/aaaaa/Gemfile? (enter "h" for help) [Ynaqdhm] y
       force  Gemfile
         run  git init from "."
Initialized empty Git repository in /Users/sasakuranaoya/aaaaa/.git/
      create  package.json
      create  app
      create  app/assets/config/manifest.js
      create  app/assets/stylesheets/application.css
      create  app/channels/application_cable/channel.rb
      create  app/channels/application_cable/connection.rb
      create  app/controllers/application_controller.rb
      create  app/helpers/application_helper.rb
      create  app/javascript/channels/consumer.js
      create  app/javascript/channels/index.js
      create  app/javascript/packs/application.js
      create  app/jobs/application_job.rb

…中略

# 上書きしたGemfileを元にbundle install
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
Fetching gem metadata from https://rubygems.org/............
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...
Using rake 12.3.3
Using concurrent-ruby 1.1.5
Using i18n 1.6.0
Using minitest 5.11.3
Using thread_safe 0.3.6
Using tzinfo 1.2.5
Using zeitwerk 2.1.9
Using activesupport 6.0.0
…以下略

これでRailsアプリが新規作成できました。

データベースの作成

rails newが終了したら、Railsアプリで使用するデータベースを作成しておきましょう。

$ bin/rails db:create

サーバーを起動

あとはサーバーを起動して、localhost:3000へアクセスすれば終了です。

$ bin/rails s

手順まとめ

# インストールしていなければ
$ brew install yarn

# ディレクトリ作成
$ mkdir test_app
$ cd test_app

# Railsのインストール
# ここでGemfileを編集する
$ bundle init
$ bundle install —path vendor/bundle
$ bundle exec rails new .

# データベース作成
$ bin/rails db:create

# サーバー起動
$ bin/rails s
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む