20190710のMacに関する記事は7件です。

Discrete Element Methodのためgranooをインストールする

モチベーション

モチベーションは,粉体の挙動を把握したかった.
個別要素法(DEM法)にはいくつかソフトウェアがあるので,それを利用する.granooの他にpygranやyade open demなども触ったので,いつか記事にする.自分でも作ったのだが,それもいつかのせたい.

granooをインストールする

まずは,公式サイトへいってgranooをインストールを選択する.MacOSを先選択する.

以下をインストールする..

brew install subversion
brew install git cmake boost qt eigen vtk
brew link --force qt

vtkのインストールできなかった.mojaveではxcodeのパッケージに不備があってインストールされていないんだった.ということで,インストール.

xcode-select --install

もう一度インストール.

brew install vtk

あとはそのまま行けた.

cd
DIR=$PWD
mkdir -p granoo/tags && cd granoo/tags
svn checkout https://scm.ff-m2p.cnrs.fr/anonscm/svn/granoo/tags/2.0
mkdir $DIR/granoo/tags/2.0/build
mkdir $DIR/granoo/install
cd $DIR/granoo/tags/2.0/build/
cmake ../CMake -DCMAKE_INSTALL_PREFIX=$DIR/granoo/install/
make && make install

パスを設定する.

echo 'export GRANOO_INSTALL_DIR='$DIR'/granoo/install/GranOO/2.0' >> ~/.bashrc
echo 'export PATH=$PATH:$GRANOO_INSTALL_DIR/bin' >> ~/.bashrc
echo 'export PYTHONPATH=$PYTHONPATH:$GRANOO_INSTALL_DIR/python' >> ~/.bashrc
source ~/.bashrc

テストを実行.

cd $DIR/granoo/tags/2.0/Example/Granular/Rain/
mkdir build && cd build/ && cmake ../ && make && cd ../
./build/rain.exe ./Rain.inp
granoo-viewer ./Results/

成功.特に詰まるところはなかったが,一応掲載.

自分のMacbookProでは...

環境:MacOS Mojave 10.14.5

うまくいかない
makeでエラーがでてしまう.

ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [Binding/Python/pygranoo.so] Error 1
make[1]: *** [Binding/Python/CMakeFiles/pygranoo.dir/all] Error 2
make: *** [all] Error 2

not found for architecture x86_64の問題を解決できない.知恵をお貸し願いたい.

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

Mac にHomebrew を導入する

HomebrewはMacのOSXなか一番人気が集まっているパッケージ管理ツールである。

事前準備:

Homebrewのインストールには、Xcode Command Line Toolsのインストールが必要
もしXcode Command Line Toolsがインストールがインストールされ中たら以下のコマンドでインストールして置きましょ

xcode-select --install

インストール:

Homebrewは以下のコマンドで直接インストールできます。

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

次に/usr/local/binを$PATH環境変数に追加するのを忘れましょう

$ echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile

上記、手順が終わったら、以下のコマンドでHomebrewが正しくインストールされている事を確認しましょう

$ brew doctor

使用方法:

あるパッケージをインストールしたい場合は簡単に以下ようにコマンドを叩きます。

$ brew install <package_name>

もし、Homebrewのパッケージリストを更新したい場合は

$ brew update

インストールされたパッケージに更新が必要なパッケージがあるかないか確認するには

$ brew outdated

パッケージ名を指定して更新したい場合は

$ brew upgrade <package_name>

キャッシュされた古いパッケージをクリアするには

$ brew cleanup

インストールされたパッケージのリストとパージョンを確認するには

$ brew list --versions

以上、Homebrewのインストール方法と簡単な運用方法を纏めました。

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

vimmerに殺されるその前に

https://qiita.com/fasahina/items/2767891134028648f288

viは、モードのあるエディターです。一般人のみなさんがお使いになっている、WindowsやMacのデスクトップアプリケーションのエディターは、モードレス(モードのない)エディターです。

注:Twitterなどのクソレスホイホイを使っていると、viやemacsを愛用するご老人からクソレスがたくさん張り付くのですが、事前にお伝えしておくと、私は毎日viを利用しています。gitなどで。

viがなぜモード(標準モード・挿入モード)を持つかというと、アローキー(矢印キー)を使わずにカーソル移動・ページ移動をできるようにするためです。これの何が便利かというと、指をキーボードのホームポジションから離さずに、カーソル移動ができるのです。逆にいうと、ここにメリットを感じないなら、モードのあるエディターはうざいだけです。

エンジニアの多くは、短気で癇癪持ちで高効率にこだわります。キー入力の0.1秒にこだわるのです。

以前、私はtwitterでviをdisったら、viを愛する方からウンコ?を投げられました。だから容赦なく?を投げ返しました。

ブラウザのURLの入力欄でviのキーバインドが使えますか?

レスは返ってきませんでした。

ちなみに、MacならデフォルトでEmacsのキーバインドが利用できます。Controlキーを押しながらbfを押してみて下さい。カーソルが移動します。Controlキーとhで削除です。他にもたくさんありますが、覚えにくいのが難点です。操作性も良いとは言い難いでしょう。

そこで登場したのが、私が考案したダイヤモンドカーソルです。

Controlキーとi k j lを利用します。
i → 上
k → 下
j → 左
l → 右
です。

これをtwitterで投稿したら、

ダイヤモンドの意味を知らねーんじゃねーの?w

っていう?を投げられました。

Krabiner-Element

macOS標準では、私の考案したダイヤモンドカーソルは実現できません。私の考案したダイヤモンドカーソルを使いたい方は、Krabiner-Elementをインストールして下さい。

~/.config/karabiner/assets/complex_modifications ディレクトリに以下のjsonファイルを保存して、環境設定から有効にして下さい。

diamond_cursor.json
{
  "title": "Diamond Cursor",
  "rules": [
    {
      "description": "LControl + i, k, j, l is change to arrow cursor",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "i",
            "modifiers": {
              "mandatory": [
                  "left_control"
              ],
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "up_arrow"
            }
          ]
        },
        {
          "type": "basic",
          "from": {
            "key_code": "k",
            "modifiers": {
              "mandatory": [
                  "left_control"
              ],
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "down_arrow"
            }
          ]
        },
        {
          "type": "basic",
          "from": {
            "key_code": "j",
            "modifiers": {
              "mandatory": [
                  "left_control"
              ],
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "left_arrow"
            }
          ]
        },
        {
          "type": "basic",
          "from": {
            "key_code": "l",
            "modifiers": {
              "mandatory": [
                  "left_control"
              ],
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "right_arrow"
            }
          ]
        }
      ]
    },
    {
      "description": "LControl + < or > is word jump!",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "comma",
            "modifiers": {
              "mandatory": [
                  "left_control"
              ],
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "left_arrow",
              "modifiers": [
                  "left_option"
              ]
            }
          ]
        },
        {
          "type": "basic",
          "from": {
            "key_code": "period",
            "modifiers": {
              "mandatory": [
                  "left_control"
              ],
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "right_arrow",
              "modifiers": [
                  "left_option"
              ]
            }
          ]
        }
      ]
    },
    {
      "description": "LControl + : or ; is line jump!",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "semicolon",
            "modifiers": {
              "mandatory": [
                  "left_control"
              ],
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "left_arrow",
              "modifiers": [
                  "left_command"
              ]
            }
          ]
        },
        {
          "type": "basic",
          "from": {
            "key_code": "quote",
            "modifiers": {
              "mandatory": [
                  "left_control"
              ],
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "right_arrow",
              "modifiers": [
                  "left_command"
              ]
            }
          ]
        }
      ]
    },
    {
      "description": "LControl + [ or ] is page up/down!",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "close_bracket",
            "modifiers": {
              "mandatory": [
                  "left_control"
              ],
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "page_up"
            }
          ]
        },
        {
          "type": "basic",
          "from": {
            "key_code": "backslash",
            "modifiers": {
              "mandatory": [
                  "left_control"
              ],
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "page_down"
            }
          ]
        }
      ]
    }
  ]
}

え?Windows???

XPの時は、猫まねき とか 窓使いの憂鬱 を使っていましたが、Windows10では動かないんじゃないかなぁ?

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

(macOS 小ネタ) ダイアログをキーボードからキャンセルできるように設定する

Mac を使っていてこういうダイアログが出たとき、Enter を押せば「ゴミ箱を空にする」を実行できるが、「キャンセル」するにはマウスカーソルを動かしてボタンをクリックするしかない。どうしてこうなった。

この挙動はキーボードの設定から変更できる。

「システム環境設定」>「キーボード」>「ショートカット」で、「フルキーボードアクセス」を「すべてのコントロール」に設定する。

こうしておくと、ダイアログを Esc でキャンセルできるようになる。

また、 Tab キーでボタンを選択して Spaceそのボタンを押せるようになるが、Tab でボタンが選択できるからといって間違えて Enter を押してしまうと、どちらを選択していたとしても問答無用で実行 (ゴミ箱を空にする) されてしまうので、Tab で選択する機能は使わないほうが良いかもしれない。

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

OpenVPNあればSoftEtherVPNclient for Mac要らないって話

前回の続き(?)です

さて、前回、L2なVPNの構築により遠隔地のiTunesホームシェアリングに接続できるというお話をしましたが
(https://qiita.com/Miutaku/items/7f1ffc48105dc14388af )、当然ながらL2だけでなくL3でも接続できるわけです。
設定方法は、l2.ovpnと一緒に入ってるl3.ovpnが

dev tun

となっているくらいです。(dev tapに書き換える必要はないからね笑)
これ以外は基本前回と同じ書換でOKです。学内からL3なVPN接続ができます。
http://ifconfig.io でも開いてグローバルIPアドレスが変わってることを確認してみるといいと思います(適当)

接続設定名をTunnelBlick側で変えるなりしたらメニューバーではこう表示させたりすることもできるんですよね〜。
image.png

あとは任意のものを選ぶと接続しますし、再び選ぶと切断されます。
たまに切断がすぐ行われませんが待ってみましょう。それでもダメならWi-Fi ON/OFFを試しましょう。それもだめなら再起動したらいいと思います。

まとめ

Macで限られた環境で強力なVPNを使いたいならOpenVPNとSoftEtherVPNでええんちゃうかなって⤴⤴⤴⤴

…とはいえ、私の学校のWi-Fi、場所によって全く使い物にならんので労力がかなり無駄になった気がする…

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

学内からホームシェアリングにアクセスするためにOpenVPNを利用した

なぜこんなことをしたの

私の使っているSynology NASには、iTunes server機能(ホームシェアリング)がありまして、iTunesがインストールされているマシンへとDLNAのようにストリーミング配信してくれるんです。
これが本当に便利で、私の128GBストレージのMBAでは容量を食わず、使い勝手が最高です。

しかし、決して家の外からはそのままではアクセスできません。

そこでVPNですよ〜〜〜〜

日本にはSoftetherVPNという大変素晴らしいものが存在します。詳しいことはSoftheterのHPを見ていただきたいのですが、Etherフレームごとカプセル化してくれるVPNなのです。だから、WindowsではVPNクライアントアプリをSoftetherから拾ってきてGUIでそのまま設定すればいいんです。しかし、MacやLinuxではそうはいきません。CUIアプリで接続を行い、うまく全通信をVPNサーバ宛にルーティングしてやる必要があります。
また、私の学校ではプロキシサーバが上流にあり、TCP443ポートしか空いていません。そこで次のように通します。

MacWi-Fiゲートウェイプロキシサーバインターネット私のおうち→*NAS*

じゃあどうすんだ

単刀直入に言うとOpenVPNを使いました。CUIでルーティングするのはスクリプト書いたりと面倒なので…
MacではTunnelBlickを使います。インストールしておきましょう。
https://www.tunnelblick.net/

今回のケースでの設定の仕方

1.MacでVPN Server Managerを立ち上げ、OpenVPN/MS-SSTP Settingを開きます。

2.真ん中のGenerate a Sampleうんたらを押します。設定ファイルを保存する場所を選択する画面が出ると思います。/Desktopなど適当なところに保存します。

image.png

3.保存したOpenVPN~.zipを解凍し、中のフォルダにある「〜l2.ovpn」をテキストエディタで開き、環境に合わせて書き換えます。

l2.ovpn
dev tap
proto tcp #学内がudpプロトコルを弾くのでtcpにした
remote XXXX.v4.softether.net 443
http-proxy proxy.xxx.yyy 8080 ~/yourdirectory/user_auth.txt basic #学内プロキシ経由接続(ユーザ認証あり)
cipher AES-256-CBC
auth SHA1
resolv-retry infinite
nobind
persist-key
persist-tun
client
verb 3
auth-user-pass
<ca>
.
.
.

TunnelBlickで設定、接続、確認までする

1.個人用でインストール

先程のovpnファイルをTunnelBlickで開きます。
image.png

2.OpenVPN設定画面で、次のようにする。(下は「詳細設定」を押すと出る)

image.png

3.接続ボタンを押す。パスワードが求められたりしたら認証する。

自分のユーザ名、パスワードを入力する。

4.接続完了すると次のような画面が出るかもしれない。無視していい。

image.png

5.iTunesからNASがみえたよ!やったね!再生もできるよ!

image.png

おまけ

実はUbuntu向けにスクリプト書いてました。今となってはOpenVPNでええやんって話なんですけど。友人が研究でラズパイでこのスクリプト動かしてるらしいんで多分Debianでも動きます。知らんけど。

vpnstart.sh
#!/bin/sh
##VPN接続設定名、vpnclientとvpncmdの場所を定義
VPN_name=VPN
vpn_command_dir=./
##無線LAN接続中のNICデバイス名取得
machine_nic=$(for DEV in `find /sys/devices -name net | grep -v virtual`; do ls $DEV/; done)
##vpnclient起動
sudo ${vpn_command_dir}/vpnclient start
##VPN接続
sudo ${vpn_command_dir}/vpncmd localhost /client /CMD:accountconnect ${VPN_name}
##IPルーティング処理
sudo ip route delete default
sudo ip route add <proxyaddr> via <gwaddr> dev ${machine_nic}
##念のためもう一度VPN接続
sudo ${vpn_command_dir}/vpncmd localhost /client /CMD:accountconnect ${VPN_name}
##DHCPサーバからIPアドレスの取得
sudo dhclient vpn_vpn
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Macで学内から自宅のホームシェアリングにアクセスするためにSoftEtherVPNとOpenVPNを利用した

なぜこんなことをしたの

私の使っているSynology NASには、iTunes server機能(ホームシェアリング)がありまして、iTunesがインストールされているマシンへとDLNAのようにストリーミング配信してくれるんです。
これが本当に便利で、私の128GBストレージのMBAでは容量を食わず、使い勝手が最高です。

しかし、決して家の外からはそのままではアクセスできません。

そこでVPNですよ〜〜〜〜

日本にはSoftetherVPNという大変素晴らしいものが存在します。詳しいことはSoftheterのHPを見ていただきたいのですが、Etherフレームごとカプセル化してくれるVPNなのです。だから、WindowsではVPNクライアントアプリをSoftetherから拾ってきてGUIでそのまま設定すればいいんです。しかし、MacやLinuxではそうはいきません。CUIアプリで接続を行い、うまく全通信をVPNサーバ宛にルーティングしてやる必要があります。
また、私の学校ではプロキシサーバが上流にあり、TCP443ポートしか空いていません。そこで次のように通します。

MacWi-Fiゲートウェイプロキシサーバインターネット私のおうち→*NAS*

じゃあどうすんだ

単刀直入に言うとOpenVPNを使いました。CUIでルーティングするのはスクリプト書いたりと面倒なので…
MacではTunnelBlickを使います。インストールしておきましょう。
https://www.tunnelblick.net/

今回のケースでの設定の仕方

1.MacでVPN Server Managerを立ち上げ、OpenVPN/MS-SSTP Settingを開きます。

2.真ん中のGenerate a Sampleうんたらを押します。設定ファイルを保存する場所を選択する画面が出ると思います。/Desktopなど適当なところに保存します。

image.png

3.保存したOpenVPN~.zipを解凍し、中のフォルダにある「〜l2.ovpn」をテキストエディタで開き、環境に合わせて書き換えます。

l2.ovpn
dev tap
proto tcp #学内がudpプロトコルを弾くのでtcpにした
remote XXXX.v4.softether.net 443
http-proxy proxy.xxx.yyy 8080 ~/yourdirectory/user_auth.txt basic #学内プロキシ経由接続(ユーザ認証あり)
cipher AES-256-CBC
auth SHA1
resolv-retry infinite
nobind
persist-key
persist-tun
client
verb 3
auth-user-pass
<ca>
.
.
.

TunnelBlickで設定、接続、確認までする

1.個人用でインストール

先程のovpnファイルをTunnelBlickで開きます。
image.png

2.OpenVPN設定画面で、次のようにする。(下は「詳細設定」を押すと出る)

image.png

3.接続ボタンを押す。パスワードが求められたりしたら認証する。

自分のユーザ名、パスワードを入力する。

4.接続完了すると次のような画面が出るかもしれない。無視していい。

image.png

5.iTunesからNASがみえたよ!やったね!再生もできるよ!

image.png

おまけ

実はUbuntu向けにスクリプト書いてました。今となってはOpenVPNでええやんって話なんですけど。友人が研究でラズパイでこのスクリプト動かしてるらしいんで多分Debianでも動きます。知らんけど。

vpnstart.sh
#!/bin/sh
##VPN接続設定名、vpnclientとvpncmdの場所を定義
VPN_name=VPN
vpn_command_dir=./
##無線LAN接続中のNICデバイス名取得
machine_nic=$(for DEV in `find /sys/devices -name net | grep -v virtual`; do ls $DEV/; done)
##vpnclient起動
sudo ${vpn_command_dir}/vpnclient start
##VPN接続
sudo ${vpn_command_dir}/vpncmd localhost /client /CMD:accountconnect ${VPN_name}
##IPルーティング処理
sudo ip route delete default
sudo ip route add <proxyaddr> via <gwaddr> dev ${machine_nic}
##念のためもう一度VPN接続
sudo ${vpn_command_dir}/vpncmd localhost /client /CMD:accountconnect ${VPN_name}
##DHCPサーバからIPアドレスの取得
sudo dhclient vpn_vpn
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む