20190816のMacに関する記事は8件です。

秘密鍵、公開鍵を他のPCに移す手順

概要

古いMacbookから新しいMacbookへの秘密鍵の移動、公開鍵を秘密鍵から生成

手順

まず古いMacbookを起動し、リモート接続できるようにします。
System Preferences -> Sharing
Screen Shot 2019-08-16 at 23.39.50.png

Screen Shot 2019-08-16 at 23.21.36.png
画像のようにRemote Loginにチェックを入れます。

次に新しいMacで画像にある古いPCへのSSH接続コマンドをTerminalに入力し、古いPCにログインします。

秘密鍵転送の一連の流れ

# 新しいPCでの作業
ls ~/.ssh # 秘密鍵があるか確認

exit # 新しいPCに戻る。

# ユーザー名とホスト名は古いPCで確認したsshコマンドに ユーザー名@古いPCのホスト名 と書いてある
# 新しいPCの~/.sshに転送
scp ユーザー名@古いPCのホスト名:古いPCの秘密鍵のパス ~/.ssh

秘密鍵から公開鍵を生成

なんと公開鍵は秘密鍵から生成できます。

ssh-keygen -y -f ~/.ssh/公開鍵名 > ~/.ssh/公開鍵名.pub
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

SfMの説明と環境構築(Mac)

SfMとは

定義

SfM:Structure from Motion
ある対象を撮影した複数枚の写真から、対象の形状を復元する技術の総称。
SfMソフトウェアを使用して、複数の写真を入力することで、3次元のモデルを容易に作成可能。

特徴点

写真内に写り込んだ建物の角などは、明るさが変わっているため特徴的な点である。
このような点を特徴点と呼ぶ。
特徴点は、写真内の位置(座標)として特定することができ、別の場所から撮影した写真からも同じ特徴点を特定することで、
全ての特徴点と写真を撮影した位置・姿勢の関係を求めることができる。

ハンドル調整

複数枚の撮影した画像から、撮影した位置、姿勢を求めること。
空中写真測量の分野で長く使われてきましたが、コンピュータビジョンの分野でも使われるようになった。
コンピュータビジョンでは自動で誤った点も含めて多くの特徴点を抽出し、誤った特徴点は後から除外していく方法を取ることで自動化を実現している。

SfMのソフトウェア

OSS

・Bundler:2016年からあまり更新されていない??
・openSfM:2018年2月にv0.2.0、python3のサポートができている
・openMVG
・Theia
・COLMAP
・MVE

市販ソフト

・ContextCapture
・Pix4D
・PhotoScan

OpenSfMの事前知識

OpenSfMは、Pythonで記述されたMotionライブラリ。
外部センサ(GPS、加速度計)の測定を統合する。
JavaScriptビューワーが提供されている。

pythonのバージョンは2.7か3.6以降

以下のライブラリと依存関係にある
・OpenCV
・OpenGV
・Ceres Solver
・NumPy, SciPy, Networkx, PyYAML, exifread

OpenSfMの環境構築

初めにOpenSfMのGitHubをクローンする。

git clone --recursive https://github.com/mapillary/OpenSfM

サブモジュールの更新

cd OpenSfM
git submodule update --init --recursive

OpenCV, Ceres Solverのインストール

brew tap homebrew/science
brew install opencv
brew install ceres-solver
sudo pip install -r requirements.txt

OpenGVのインストール、ビルド

brew install eigen
git clone --recurse-submodules -j8 https://github.com/paulinus/opengv.git
cd opengv/build
cmake .. -DBUILD_TESTS=OFF -DBUILD_PYTHON=ON
make install

Pythonのパスを設定していなかったら以下を実行

export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH

最後にOpenSfMのビルド

python setup.py build

参考文献

dockerでOpenSfMを動かす
OpenSfMのGitHub

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

ESP32がシリアルポートに認識されない時にやってみてほしいこと

はじめに

ESP32の使い方の記事は多くあるので、初めてESPを使う方はそちらを参考にしてください。この記事では、ESP32を買って、ArduinoIDEのライブラリーもダウンロードしてドライバーもインストールした!なのに何故かシリアルポートにESPが表示されない…という人に向けて書きました。

ちなみに私はこれができず、かれこれ10日間戦っていました…

環境

  • macOS High Sierra (10.13.6)
  • Arduino IDE (1.8.9)
  • SiLabsUSBDriver

試してみたけどダメだったこと

1. ドライバーをインストールした後に設定で許可をする

SILICON LABSのドライバーをインストールした後に、「システム環境設定>セキュリティとプライバシー>一般」に変更を許可するボタンが現れるそうなのですが、現れませんでした。
参考:https://stackoverflow.com/questions/47109036/cp2102-device-is-not-listed-in-dev-on-macos-10-13

2. ターミナルでロードする

ターミナルで sudo kextload /Library/Extensions/SiLabsUSBDriver.kext/をうつ。しかし、これも効果なし…
参考:http://www.shangtian.tokyo/entry/2018/09/13/224853

3.SMC/NVRAMをリセット

同じくこちらも効果なし…
参考:https://leico.github.io/TechnicalNote/Mac/Mac-USB

4. SIPの無効化

これもだめ…
参考:https://qiita.com/gyvm/items/3b9f7c77ab7ab834723e

5.ハブ・ケーブルの交換

海外の記事を読んでいると、USBハブやケーブルを変えたらできたという声があったのでやってみました。電気屋さんで新しいのに変えてもダメでした…ちなみにケーブルは充電用だけでなく、データ通信もできるものを買いましょう。最初充電用のものでやってました…

ということで、いろいやってもだめでしたが、ついに解決しました!

解決方法

ESP-WROOM-32D開発ボードに買い換えたらすんなりとシリアルポートに表示されました!

実は私ESP32-DevKitC ESP-WROOM-32開発ボードを使ってみました。前者は2018年に発売されたもので、後者は2017年のもののようです。私が使ってたものは古かったようですね…

解決方法は、気づけば簡単なこととなっていましたが、何よりも無事に開発ができるようになってよかったです!

最後まで読んでくださりありがとうございました。

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

ESP32がどうしてもシリアルポートに認識されない時にやってみてほしいこと

はじめに

ESP32の使い方の記事は多くあるので、初めてESPを使う方はそちらを参考にしてください。この記事では、ESP32を買って、ArduinoIDEのライブラリーもダウンロードしてドライバーもインストールした!なのに何故かシリアルポートにESPが表示されない…という人に向けて書きました。

ちなみに私はこれができず、かれこれ10日間戦っていました…

環境

  • macOS High Sierra (10.13.6)
  • Arduino IDE (1.8.9)
  • SiLabsUSBDriver

試してみたけどダメだったこと

1. ドライバーをインストールした後に設定で許可をする

SILICON LABSのドライバーをインストールした後に、「システム環境設定>セキュリティとプライバシー>一般」に変更を許可するボタンが現れるそうなのですが、現れませんでした。
参考:https://stackoverflow.com/questions/47109036/cp2102-device-is-not-listed-in-dev-on-macos-10-13

2. ターミナルでロードする

ターミナルで sudo kextload /Library/Extensions/SiLabsUSBDriver.kext/をうつ。しかし、これも効果なし…
参考:http://www.shangtian.tokyo/entry/2018/09/13/224853

3.SMC/NVRAMをリセット

同じくこちらも効果なし…
参考:https://leico.github.io/TechnicalNote/Mac/Mac-USB

4. SIPの無効化

これもだめ…
参考:https://qiita.com/gyvm/items/3b9f7c77ab7ab834723e

5.ハブ・ケーブルの交換

海外の記事を読んでいると、USBハブやケーブルを変えたらできたという声があったのでやってみました。電気屋さんで新しいのに変えてもダメでした…ちなみにケーブルは充電用だけでなく、データ通信もできるものを買いましょう。最初充電用のものでやってました…

ということで、いろいやってもだめでしたが、ついに解決しました!

解決方法

ESP-WROOM-32D開発ボードに買い換えたらすんなりとシリアルポートに表示されました!

実は私ESP32-DevKitC ESP-WROOM-32開発ボードを使ってみました。前者は2018年に発売されたもので、後者は2017年のもののようです。私が使ってたものは古かったようですね…

解決方法は、気づけば簡単なこととなっていましたが、何よりも無事に開発ができるようになってよかったです!

最後まで読んでくださりありがとうございました。

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

セキュリティアプリ、sophosを管理者パスワードなしで削除する

良かれと思ってダウンロードしたセキュリティアプリのSophosが管理者パスワードなしで削除できないと知って、悔しくて削除方法を検索したら、アンインストールできた。

下記の@bobbycookeさんのを参考に実行。
https://gist.github.com/lukebussey/70fe3b245c7b55fa41300670d2698e54

1. Open terminal 
'command + spacebar' search for "terminal"
2. vi kill_sophos
Copy text below, right-click on terminal window and select 'Paste':
#!/bin/bash
sudo rm -R /Library/Sophos\ Anti-Virus/
sudo rm -R /Library/Application\ Support/Sophos/
sudo rm -R /Library/Preferences/com.sophos.*
sudo rm /Library/LaunchDaemons/com.sophos.*
sudo rm /Library/LaunchAgents/com.sophos.*
sudo rm -R /Library/Extensions/Sophos*
sudo rm -R /Library/Caches/com.sophos.*
Press 'Esc' on your keyboard
Enter ' :wq' and press return
( Colon W Q Enter)
3. sudo chmod +x kill_sophos
Enter local mac password
4. run script by entering below on terminal
./kill_sophos
enter password and watch everything die
5. Open Finder and go to 'Applications'
6. click Remove Sophos Endpoint
7. It will now let you remove Sophos Endpoint without the tamper protection password
8. Rejoice

この通りやるだけでアンインストールできた。

日本語訳も書いておく。

1.ターミナルを開く
2.vi kill_sophosでファイルを作成し、下記をコピペ

kill_sophosファイル
#!/bin/bash
sudo rm -R /Library/Sophos\ Anti-Virus/
sudo rm -R /Library/Application\ Support/Sophos/
sudo rm -R /Library/Preferences/com.sophos.*
sudo rm /Library/LaunchDaemons/com.sophos.*
sudo rm /Library/LaunchAgents/com.sophos.*
sudo rm -R /Library/Extensions/Sophos*
sudo rm -R /Library/Caches/com.sophos.*

iで挿入、上記をコピペして、:wqでファイルを保存

3.chmod +x kill_sophosで権限変更
4../kill_sophosでファイルを実行
5.Applicationフォルダを開く
6.Remove Sophos Endpointというのがあるので、それをクリック
7.アンインストールを管理者パスなしでアンインストール
8.喜ぼう

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

CyberduckでIBM Cloud Storage(S3)への接続・ファイル転送-The specified bucket does not existエラーの解決方法

スクリーンショット 2019-08-15 11.22.46.png

上図のように接続してみたが、↓のエラーが出ました!!

Cannot read bucket versioning status.
The specified bucket does not exist. Please contact your web hosting service provider for assistance.

スクリーンショット 2019-08-16 10.31.47.png

原因はCyberduckのUIの変更に伴う、Bucket名が上記の図だと指定できないためです!

解決方法:

まず、(重要!!!)バケットでエンドポイントの地域が意図したバケットと一致していることを確認します。
スクリーンショット 2019-08-16 11.11.06.png

スクリーンショット 2019-08-16 11.15.47.png

ちなみに、下記値の取得方法は IBM Cloud Object Storage(ICOS)のファイル転送にWinSCPを使ってみた を参考してください。

・バケット名(パス)
・エンドポイント名(サーバ)
・サービス資格情報のアクセスキ(アクセスキーID)
・サービス資格情報のシークレットアクセスキー(シークレットアクセスキー)

上記の値を取得した後、下図のように記入します。
スクリーンショット 2019-08-16 10.42.29.png

スクリーンショット 2019-08-16 11.34.45.png

記入した後、そのまま、閉じて、ダブルクリックをすると接続できるようになりました!
試してみてね〜

参考リンク:
1、IBM Cloud - Cyberduck を使用したファイルの転送の使用方法
2、CyberduckのUIの変更に伴うS3接続手順
3、IBM Cloud Object Storage(ICOS)のファイル転送にWinSCPを使ってみた

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

JavaScriptをMacのターミナルで使用する時の注意点

Macのターミナルで初めてJavaScriptを実行した際に、基本的なところでエラーが出たのでその対処法を書いていきます。

console.log()でエラー

まずJavaScript標準で用意されているオブジェクトのnowDate()を用いて、今日の日付と今の時刻を表示しようとしました。

nowDate.js
const today = nowDate();

console.log(today);

こちらのjsファイルをターミナルで実行すると、

Exception: TypeError: undefined is not an object (evaluating 'console.log')

このようなエラーが出てきました。

print()に変更

nowDate.js
const today = nowDate();

print(today);

このように変更して実行すると、

Fri Aug 09 2019 11:24:41 GMT+0900 (JST)

先ほどのようなエラーが起きず無事に現在の日付・時刻を表示できました。

まとめ

エラーが出ても、焦らず冷静に開発環境やコードをチェックしていきたいですね。

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

Terminalから`git push`をするときにハマった話

Terminalからgit pushをした際に、エラーが出てきてしまい困っていたのを解決した話。
結構前に書いた覚書なので、当時なんのエラーが出ていたのかは、あんまり覚えていません・・・。

GitHubに初めてPushする際に、何故か詰まってしまったので、その解決方法を載せておきます。
最初に次のコマンドを動かして、ユーザー名が表示されなかった場合にSSHの設定を行う必要があります。

   $ ssh -T git@github.com

出力例(成功)

image.png

対処法

  1. GitにSSHのアクセス権限を与える

    $ ssh-keygen -t rsa
    $ pbcopy < ~/.ssh/id_rsa.pub # ファイルの内容をクリップボードに貼り付ける
    
  2. GitのページからSSHキーを設定する。

    • https://github.com/settings/keys
    • Title: 名前を入力する。 自分がわかれば良いので好きに設定する
    • Key: ⑴でコピーしたSSHキー(pbcopyでクリップボードにコピーしたもの)を貼り付ける image.png
  3. Gitのリポジトリを追加する

    $ git remote add origin git@github.com:[ Git ID ]/[ Git Repository ]
    $ git add .
    $ git commit [-m “Commit message”]
    $ git push origin [ Remote branch name ]
    

おまけ

基本的なGitのコマンド
   # マージ済みのブランチを削除する
   $ git branch --delete [ Branch name ]

   # ブランチの強制削除
   $ git branch -D [ Branch name ]

   # リモートの状態を表示する
   $ git remote -v

   # リモートを削除する
   $ git remote rm [ Remote name ]
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む