20201206のMacに関する記事は12件です。

MacにRustを入れる 〜 パスPATHを通して、HelloWorld!ファイルをコンパイルして実行するまで一気通貫にまとめてみた

MacBookProに、Rust言語を入れる方法です。

インストールをした後、bash_profileにパスを通すところまで、手順を示します。

多くの「Rustを入れてみた」系の記事では、パスを通すところまで、記載していないもの多いようです。本記事では、パスを通すところまで書きました。

curlコマンドを使って、Rustをインストール

Terminal
ocean@AfoguardMacBook-Pro Desktop % curl https://sh.rustup.rs -sSf | sh
info: downloading installer

( 途中を省略 ・・・ )

Rust is installed now. Great!

To get started you need Cargo's bin directory ($HOME/.cargo/bin) in your PATH
environment variable. Next time you log in this will be done
automatically.

To configure your current shell, run:
source $HOME/.cargo/env
ocean@AfoguardMacBook-Pro Desktop % rustc --version

パスを通す前は、Terminalで認識されない

Terminal
ocean@AfoguardMacBook-Pro Desktop % rustc --version
zsh: command not found: rustc
ocean@AfoguardMacBook-Pro Desktop %

パスを通す

exportコマンドについては、以下を参照。
@IT 「Linux基本コマンドTips(174):【 export 】コマンド――環境変数やシェル変数を設定する」

bash_prifilebashrcについては、以下を参照。
@@takutokiさん 「.bash_profileと.bashrcのまとめ」

Terminal
ocean@AfoguardMacBook-Pro Desktop % export PATH="$HOME/.cargo/bin:$PATH"
ocean@AfoguardMacBook-Pro Desktop % echo $HOME
/Users/ocean
ocean@AfoguardMacBook-Pro Desktop % echo $PATH
/Users/ocean/.cargo/bin:/Users/ocean/.pyenv/shims:/Users/ocean/.pyenv/bin:/Users/ocean/.nodebrew/current/bin:/Users/ocean/.nodebrew/current/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin
ocean@AfoguardMacBook-Pro Desktop % export PATH="$HOME/.cargo/bin:$PATH" >> .bash_profile
ocean@AfoguardMacBook-Pro Desktop % 

Terminalから認識される

rustcは、Rustで書かれたスクリプトファイルを機械語にコンパイルするコンパイラです。

Terminal
ocean@AfoguardMacBook-Pro Desktop % rustc --version                                    
rustc 1.48.0 (7eac88abb 2020-11-16)
ocean@AfoguardMacBook-Pro Desktop %

rustupの使い所については、以下にまとまっています。
rustup で Rust コンパイラーを簡単インストール

Terminal
ocean@AfoguardMacBook-Pro Desktop % rustup --version
rustup 1.23.1 (3df2264a9 2020-11-30)
info: This is the version for the rustup toolchain manager, not the compiler.
info: The currently active `rustc` version is `rustc 1.48.0 (7eac88abb 2020-11-16)`
ocean@AfoguardMacBook-Pro Desktop %

cargoの使い所については、以下にまとまっています。
The Rust Programming Language 日本語版 「Hello, Cargo!」

Terminal
ocean@AfoguardMacBook-Pro Desktop % cargo --version
cargo 1.48.0 (65cbdd2dc 2020-10-14)
ocean@AfoguardMacBook-Pro Desktop %

任意のディレクトリで、Rustが認識されるかどうか確認

(結果はOK)

Terminal
ocean@AfoguardMacBook-Pro Desktop % mkdier rust_test
zsh: command not found: mkdier
ocean@AfoguardMacBook-Pro Desktop % mkdir rust_test 
ocean@AfoguardMacBook-Pro Desktop % cd rust_test 
ocean@AfoguardMacBook-Pro rust_test % rustc --version                                      
rustc 1.48.0 (7eac88abb 2020-11-16)
ocean@AfoguardMacBook-Pro rust_test %rustup 1.23.1 (3df2264a9 2020-11-30)
info: This is the version for the rustup toolchain manager, not the compiler.
info: The currently active `rustc` version is `rustc 1.48.0 (7eac88abb 2020-11-16)`

Hello World!の産声を標準出力に発するサンプルスクリプトファイルを作成

Terminal
ocean@AfoguardMacBook-Pro rust_test % vi hello.rs
ocean@AfoguardMacBook-Pro rust_test % cat hello.rs 
fn main() {
    println!("Hello World!");
}
ocean@AfoguardMacBook-Pro rust_test % 

スクリプトファイルをコンパイル

Terminal
ocean@AfoguardMacBook-Pro rust_test % rustc hello.rs
ocean@AfoguardMacBook-Pro rust_test % ls
hello       hello.rs
ocean@AfoguardMacBook-Pro rust_test %

コンパイルした実行ファイルを実行

(実行成功)

Terminal
ocean@AfoguardMacBook-Pro rust_test % ./hello
Hello World!
ocean@AfoguardMacBook-Pro rust_test %

( 参考にしたウェブページ )

@tktktktkさん 2019年06月21日 「【Rust】MacにRustをインストールして動作確認をするまで 」
@ledsunさん 2017年01月31日 「Rustをインストール - macOS & fish-shellの場合」
@ozipiさん 2020年05月25日に更新 「PATHを通すの意味と通し方 .bash_profile」

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

macOS CatalinaでVPNが繋がらない / SSHがタイムアウトする

概要

macOS CatalinaやBig SurでゲートウェイがVPNにならないことがある
別の環境では上手くいっていた場合の、問題解決に向けた記事
いつの間にか、ネットワークのサービスの優先順位が有効になった可能性がある

環境

  • macOS Catalina 10.15.7(19H2)
    • 問題が発生
  • macOS Catalina 10.15.5
    • 問題なし

※ 厳密にはOSのバージョンが起因ではない可能性があります。

VPN設定

VPNを利用していれば、大抵の場合接続元ホストがVPNサーバになるはずなので、

確認くんなどで自分のリモートホストを確認します。

ここで想定しているホストになっている場合は、この記事の問題は関係ありません。

ホストが違う場合

想定しているホストになっていない場合、以下を確認します。

システム環境設定 >> ネットワーク
before.png
「すべてのトラフィックをVPN接続経由で送信」にチェックが入っていることを確認します。
ここにチェックがないと、VPNを経由せずデータが送信されることがあります。
all_traffic.png

それでも解決しない場合

2時間くらい試行錯誤した結果、サービスの順序が優先度に関係ありそうということが分かりました。
Wi-Fi、Bluetooth PANなど並んでいる場所の下にある設定アイコンから「サービスの順序を設定」を選択します。
settings.png
いつも利用しているサービスWiFiより上にVPNを移動させます。
order.png
先頭にVPNがきました
after.png

これで確認くんのリモートホストが変更されました!

(´-`).。oO (前のOSだと順序関係なく接続できたのに...)

発端

余談、読み物です。

マシン移行後、VPN経由でサーバにssh接続しようとしたらレスポンスが返ってこない...ということが発端でした。
そもそも、タイムアウトが75秒だったようで、エラーメッセージに気付きませんでした。
ssh hoge -vで詳細を出したり、config名を使わずに接続したり、id_rsaのパーミッションを確認したり無駄な時間を過ごしました。

ちなみに-vオプションは以下のようなdebug情報が表示されます。

ssh user@x.x.x.x -i ~/.ssh/id_rsa -p 22 -v

OpenSSH_8.1p1, LibreSSL 2.7.3
debug1: Reading configuration data /Users/user/.ssh/config
debug1: /Users/user/.ssh/config line 1: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 47: Applying options for *
debug1: Connecting to x.x.x.x [x.x.x.x] port .
debug1: connect to address x.x.x.x port 22: Operation timed out
ssh: connect to host x.x.x.x port 22: Operation timed out

タイムアウトということが分かってからは、原因の想定をつけやすくて助かりました。

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

快適な在宅勤務のための画面録画と音量設定

株式会社ピー・アール・オー アドベントカレンダーの6日目です。

2020年の重大事件といえば、COVID-19(通称コロナ)が世界で大流行し、東京オリンピックが吹き飛んだほか、一般市民レベルで生活様式を変更せざるを得なかったことでしょうか。

ピー・アール・オーも4月頃から出勤が抑制され、現在も管理部門などの一部を除き、絶賛在宅勤務中です。

マシン環境

在宅勤務になってから、狭い我が家には、会社の貸与品を合わせて最大3台のiMac(27inch + 21inch)とMacBook Pro 16inchが鎮座していました。
今回の記事は、下記の環境で確認済みです。

  • iMac(Retina 5K, 27-inch, 2020)→主な設定画面の説明等はこちらを利用
  • MacBook Pro(16-inch, 2019)
  • macOS Catalina(10.15.7)

画面録画は音声が収録されない

Macの画面録画ではQucikTime Player(Command + Shift + 5)を使います。
これ自体は手軽で使い勝手が良いのですが、内部音声が収録されないという欠点があります。

スピーカーから音声が流れているのに、画面録画には音声が収録されないのも奇妙な話ですが、仕様である以上、このままではどうすることもできません。

とは言え。

音声を同時収録する方法が2つあります。

手っ取り早く「Background Music」

細かい音声収録は必要ない。とにかく、動画から流れる音声も同時収録したいのだ!
‥という時は、このアプリが一番。
このアプリ、音声同時収録の他にも便利な機能がありますが、それは後ほど説明します。

配布先はGitですが、pkg版が用意されています。
2020/12/06現在はver0.3.2です。
https://github.com/kyleneideck/BackgroundMusic
backgroundmusic.jpg
なお、macOS Big Surでは動作しないので、スナップショットバージョンを導入する必要があります。

インストールが完了するとツールバーに怪しげなアイコンが。
backgroundmusic_icon.jpg

QucikTime Playerで内部音声と共に画面録画

設定自体は簡単で、録画するためにQucikTime Playerを起動後、マイクの設定を「Background Music」に設定するだけ。
一覧には「Background Music(UI Sounds)もありますが、こちらは無視してください。

  1. 「Command + Shift + 5」でQucikTime Playerを起動
  2. 録画する範囲を決める。スクショでは画面全体に設定中
  3. 「オプション」を開き、マイクを「Background Music」に設定
  4. 「収録」をクリックして、画面録画をスタート bgmusic_setting.jpg

使用前・使用後のサンプルを撮りたいので、12月に11周年を迎えた「ソリティアV」の動画で試します。
手前味噌だけど、他人様の動画を無断撮影するわけにも参りますまい…。

Qiitaは動画のサポートがないので、Twitterに載せてみました。
が、QiitaでTwitterのツイートを埋め込める時代は終わりました→再び訪れましたということなので、うまく貼れるか投稿して確認w

マイクを「iMacのマイク」にした時(音なし)

マイクを「Backgrouond Music」にした時(音あり)


内部音声「だけ」録画に取り入れるなら、「Background Music」は極めて有能。

だがしかし。

ゲーム実況や最近流行の「バ美肉おじさん」になりたい場合、このアプリでは足りない…。

全部盛りだよ!「Soundflower」と「LadioCast」

こちらの構成は、macOS Big Surでも動作することが確認されているため、macOS Big Sur環境のユーザーもバッチリ使えると思います。

仮想オーディオデバイス「Soundflower」

Gitからダウンロード。2020/12/06現在の最新バージョンは2.0b2
https://github.com/mattingalls/Soundflower/releases/tag/2.0b2
soundflowe.jpg
一番下までスクロールすると、ダウンロードリンクが表示されます。

Macお得意の「開発元が未確認のため開ません。」が出るので、「環境設定」>「セキュリティとプライバシー」で「このまま開く」をクリックしてやってください。
soundflower_error.jpg
かなりウザい仕様ですが、強固なセキュリティなので仕方ありません。
mac_setting.jpg

「Soundflower」の設定

「環境設定」>「サウンド」の「出力」を「Soundflower(2ch)」と変更します。
setting_mac2.jpg
外部入力機器(マイク)を使用する場合は、「入力」の設定も必要ですが、今回は「画面録画に音声を同時収録する」話なので、ここでは省略。

インターネットラジオ放送ソフト「LadioCast」

ストア説明に「インターネットラジオ放送ソフトウエア」と説明しているので、そういうもんなんでしょう。最終更新日が2年前なのも少々アレですが、細かいことは気にするなということで、さっさとインストールします。

こちらはApp Storeからダウンロードします。
https://apps.apple.com/jp/app/ladiocast/id411213048?mt=12
ladiocast.jpg

「LadioCast」の設定

「ミュージック」で爆音流しながら、この記事の順番通りに設定すると気づくこと。
バックグラウンドで流れているはずの「ミュージック」から音が聞こえない…。

というのも、前項での設定で出力先が「iMacのスピーカー(内蔵出力)」から「Soundflower(2ch)」になっているため。
LadioCast」で出力先を設定すれば、「ミュージック」でも音声が流れるようになります。
setting_ladiocast.jpg

❶の設定・入力1

Mac内で使用するデバイス。「環境設定」>「サウンド」>「出力」で選んだSoundflower(2ch)を設定します。
下段にある「メイン」と「Aux1」もチェックし、音量はMAXにします。

❷の設定・入力2

今回は不使用ですが、iMacのマイク(内蔵入力)とかUSBマイクなどを設定すると、自分の音声も拾ってくれます。
その他、ギターなどを同時にかき鳴らすなら、入力3以降で設定していきます。

ここの設定が必要なのはゲーム実況やバ美肉おじさんする時なので、今回の記事ではスルー。

❸の設定・出力 メイン

デバイスはSoundflower(64ch)を選択し、音量MAX。

❹の設定・出力Aux1

どこで音声を聞くか…という設定です。今回はiMacのスピーカー(内臓出力)。

ここまで設定ができると、いつも通りiMacから音声が流れてきます。
soundflowe_setting.jpg
Background Music」同様、QuickTime Playerのマイク設定を「Soundflower(2ch)」に変更後、画面録画を開始します。

「Soundflower」と「LadioCast」を使って画面録画をする


…なんか音が小さい。
なぜだ!なぜなんだ!この動画に合わせて音量を上げると、その他の動画や「ミュージック」流したら耳が死ぬ…。
「Soundflower」のバグかもしれない

どうもバグらしい…ということで、「Soundflower」と「LadioCast」で画面録画する時は、「Audio MIDI設定」を確認する。
setting_mac3.jpg
「マスター」部分が0.621なので1.0に上げておく。
その後、画面録画を開始するとスピーカーから流れてくる音量と同じになる。
起動時には必ず元に戻っているので、録画する前に要確認。

ちなみに、あまりにも使わない設定なので、最初は場所がわからなかったw
場所は「アプリケーション」>「ユーティリティ」> Audio MIDI設定.app

おまけ:各アプリの音量を個別に調整する

Background Music」を常駐させることで、音声を同時収録するほかに、起動中のアプリなどの音量を個別に調整することができます。

「ミュージック」は爆音、Slackの通知音は小さく…というような使い方も簡単です。
backgroundmusic_setting.jpg

ちなみに、貸与マシンに個人のApple IDを紐づけたくないので、個人所有のiMac 27inchが「ミュージック」専用機になっている現在。
なんかもったいない…。

みなさま、快適な在宅勤務ライフを〜。

参考サイト

Macの画面録画を内部音声だけでする方法〜Background Musicの使い方〜 | Btuber
アプリ毎の音量調整ができる「Background Music」が便利|
jittodesign blog

【Mac OS Catalinaでも使える】SoundflowerとLadioCastの使い方と設定 | 脳内イメージだけは無限大
Soundflowerの音量が小さい時

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

快適な在宅勤務のための画面収録と音量設定

株式会社ピー・アール・オー アドベントカレンダーの6日目です。

2020年の重大事件といえば、COVID-19(通称コロナ)が世界で大流行し、東京オリンピックが吹き飛んだほか、一般市民レベルで生活様式を変更せざるを得なかったことでしょうか。

ピー・アール・オーも4月頃から出勤が抑制され、現在も管理部門などの一部を除き、絶賛在宅勤務中です。

マシン環境

在宅勤務になってから、狭い我が家には、会社の貸与品を合わせて最大3台のiMac(27inch + 21inch)とMacBook Pro 16inchが鎮座していました。
今回の記事は、下記の環境で確認済みです。

  • iMac(Retina 5K, 27-inch, 2020)→主な設定画面の説明等はこちらを利用
  • MacBook Pro(16-inch, 2019)
  • macOS Catalina(10.15.7)

画面収録は音声が収録されない

Macの画面収録ではQucikTime Playerを使います。
これ自体は手軽で使い勝手が良いのですが、内部音声が収録されないという欠点があります。

スピーカーから音声が流れているのに、画面収録には音声が収録されないのも奇妙な話ですが、仕様である以上、このままではどうすることもできません。

とは言え。

音声を同時収録する方法が2つあります。

手っ取り早く「Background Music」

細かい音声収録は必要ない。とにかく、動画から流れる音声も同時収録したいのだ!
‥という時は、このアプリが一番。
このアプリ、音声同時収録の他にも便利な機能がありますが、それは後ほど説明します。

配布先はGitですが、pkg版が用意されています。
2020/12/06現在はver0.3.2です。
https://github.com/kyleneideck/BackgroundMusic
backgroundmusic.jpg
なお、macOS Big Surでは動作しないので、スナップショットバージョンを導入する必要があります。

インストールが完了するとツールバーに怪しげなアイコンが。
backgroundmusic_icon.jpg

内部音声と共に画面収録

設定自体は簡単で、録画するためにスクリーンショットツールバーを起動後、マイクの設定を「Background Music」に設定するだけ。
一覧には「Background Music(UI Sounds)もありますが、こちらは無視してください。

  1. 「Command + Shift + 5」でスクリーンショットツールバーを起動
  2. 録画する範囲を決める。スクショでは画面全体に設定中
  3. 「オプション」を開き、マイクを「Background Music」に設定
  4. 「収録」をクリックして、画面収録をスタート bgmusic_setting.jpg

使用前・使用後のサンプルを撮りたいので、12月に11周年を迎えた「ソリティアV」の動画で試します。
手前味噌だけど、他人様の動画を無断撮影するわけにも参りますまい…。

Qiitaは動画のサポートがないので、Twitterに載せてみました。
が、QiitaでTwitterのツイートを埋め込める時代は終わりました→再び訪れましたということなので、うまく貼れるか投稿して確認w

マイクを「iMacのマイク」にした時(音なし)

マイクを「Backgrouond Music」にした時(音あり)


内部音声「だけ」録画に取り入れるなら、「Background Music」は極めて有能。

だがしかし。

ゲーム実況や最近流行の「バ美肉おじさん」になりたい場合、このアプリでは足りない…。

全部盛りだよ!「Soundflower」と「LadioCast」

こちらの構成は、macOS Big Surでも動作することが確認されているため、macOS Big Sur環境のユーザーもバッチリ使えると思います。

仮想オーディオデバイス「Soundflower」

Gitからダウンロード。2020/12/06現在の最新バージョンは2.0b2
https://github.com/mattingalls/Soundflower/releases/tag/2.0b2
soundflowe.jpg
一番下までスクロールすると、ダウンロードリンクが表示されます。

Macお得意の「開発元が未確認のため開ません。」が出るので、「環境設定」>「セキュリティとプライバシー」で「このまま開く」をクリックしてやってください。
soundflower_error.jpg
かなりウザい仕様ですが、強固なセキュリティなので仕方ありません。
mac_setting.jpg

「Soundflower」の設定

「環境設定」>「サウンド」の「出力」を「Soundflower(2ch)」と変更します。
setting_mac2.jpg
外部入力機器(マイク)を使用する場合は、「入力」の設定も必要ですが、今回は「画面収録に音声を同時収録する」話なので、ここでは省略。

インターネットラジオ放送ソフト「LadioCast」

ストア説明に「インターネットラジオ放送ソフトウエア」と説明しているので、そういうもんなんでしょう。最終更新日が2年前なのも少々アレですが、細かいことは気にするなということで、さっさとインストールします。

こちらはApp Storeからダウンロードします。
https://apps.apple.com/jp/app/ladiocast/id411213048?mt=12
ladiocast.jpg

「LadioCast」の設定

「ミュージック」で爆音流しながら、この記事の順番通りに設定すると気づくこと。
バックグラウンドで流れているはずの「ミュージック」から音が聞こえない…。

というのも、前項での設定で出力先が「iMacのスピーカー(内蔵出力)」から「Soundflower(2ch)」になっているため。
LadioCast」で出力先を設定すれば、「ミュージック」でも音声が流れるようになります。
setting_ladiocast.jpg

❶の設定・入力1

Mac内で使用するデバイス。「環境設定」>「サウンド」>「出力」で選んだSoundflower(2ch)を設定します。
下段にある「メイン」と「Aux1」もチェックし、音量はMAXにします。

❷の設定・入力2

今回は不使用ですが、iMacのマイク(内蔵入力)とかUSBマイクなどを設定すると、自分の音声も拾ってくれます。
その他、ギターなどを同時にかき鳴らすなら、入力3以降で設定していきます。

ここの設定が必要なのはゲーム実況やバ美肉おじさんする時なので、今回の記事ではスルー。

❸の設定・出力 メイン

デバイスはSoundflower(64ch)を選択し、音量MAX。

❹の設定・出力Aux1

どこで音声を聞くか…という設定です。今回はiMacのスピーカー(内蔵出力)。

ここまで設定ができると、いつも通りiMacから音声が流れてきます。
soundflowe_setting.jpg
Background Music」同様、オオプションのマイク設定を「Soundflower(2ch)」に変更後、画面収録を開始します。

「Soundflower」と「LadioCast」を使って画面収録をする


…なんか音が小さい。

なぜだ!なぜなんだ!
この動画に合わせた音量だと、その他の動画や「ミュージック」流したら耳が死ぬ…。

「Soundflower」のバグかもしれない

どうもバグらしい…ということで、「Soundflower」と「LadioCast」で画面録画する時は、「Audio MIDI設定」を確認する。
setting_mac3.jpg
「マスター」部分が0.621なので1.0に上げておく。
その後、画面収録を開始するとスピーカーから流れてくる音量と同じになる。
起動時には必ず元に戻っているので、録画する前に要確認。

ちなみに、あまりにも使わない設定なので、最初は場所がわからなかったw
場所は「アプリケーション」>「ユーティリティ」> Audio MIDI設定.app

「Soundflower」と「LadioCast」を使ってもう一度画面収録をする

各アプリの音量を個別に調整する

Background Music」を常駐させることで、音声を同時収録するほかに、起動中のアプリなどの音量を個別に調整することができます。

「ミュージック」は爆音、Slackの通知音は小さく…というような使い方も簡単です。
backgroundmusic_setting.jpg
ちなみに、貸与マシンに個人のApple IDを紐づけたくないので、個人所有のiMac 27inchが「ミュージック」専用機になっている現在。
なんかもったいない…。

なにはともあれ、快適な在宅勤務ライフを〜。

参考サイト

Macの画面録画を内部音声だけでする方法〜Background Musicの使い方〜 | Btuber
アプリ毎の音量調整ができる「Background Music」が便利|
jittodesign blog

【Mac OS Catalinaでも使える】SoundflowerとLadioCastの使い方と設定 | 脳内イメージだけは無限大
Soundflowerの音量が小さい時

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

ApplescriptでKeynoteをハックしてみた

概要

友達からプレゼン用のkeynoteにテロップを自動で挿入するプログラムが欲しいと言われたのでAppleScriptで作ってみた。

目次

  • AppleScriptとは
  • どんな感じのプログラム
  • 実装
  • おわりに
  • 参考URL

AppleScriptとは

https://en.wikipedia.org/wiki/AppleScript
名前から想像できる通り、Appleが作ったMac OS用のスクリプト言語で、macOSに同梱されている基本ソフトです。マウスやキーボードを使わずに、Macや外部のアプリを操作するすることができます。
実装してみると、構文が簡単で学習コストが低いかなと思います。一般敵にはmacOSに標準でインストールされているスクリプトエディタで記述すると思いますが、今回はAppleScriptのプラグインがあったのでVSCodeを使用しました。

どんな感じのプログラム

用意するもの

以下二点です。

  • テロップを入れたいkeyファイル
  • こんな感じのテキストファイル
telop.text
テロップ1
テロップ2
テロップ3

一行一行がスライドの1枚目から順番に挿入されて行きます。

実装内容は以下になります。

  • keynoteのスライドの指定した位置に予め用意したテキストファイルの文字列を貼り付ける
  • 実行時に文字の色選択ができる
  • スライドの枚数とテキストの行数が違う場合はバリデーションをかける
  • しゃべらせる

実装

それでは早速実装して行きましょう。
基本的な文法はこちらをご参照ください。

VSCodeの場合

まずAppleScriptのプラグインを入れましょう。
https://marketplace.visualstudio.com/items?itemName=idleberg.applescript

ファイル作成

applescriptの拡張子をつけてファイルを作成しましょう。
今回はtext_overlay.applescriptとしました。

パーツ作り

テキストのプロパティー

こちらを参考にテキストの色や大きさなどを変数に入れる。
今回はこんな感じ

-- OBJECT TEXT PROPERTIES
property textOverlayTypeface : "Arial Bold"
property textOverlayFontSize : 40
property textOverlayColorName : "WHITE"
property textOverlayRGBColorValues : {65535, 65535, 65535}

-- TEXT ITEM PROPERTIES
property textOverlayOpacityValue : 100
property textOverlayDefaultPosition : 3
property textItemOverlayOffset : 870
property textItemPointerOffset : 1012.5

Keynoteを開く

次にKeynoteを開きましょう。

tell application "Keynote"
        activate
end tell

Keyファイルを開く

次にテロップを入れたいkeyファイルを選択する。

tell application "Keynote"
    activate
    try
        set the chosenDocumentFile to ¬
            (choose file of type ¬
                {"com.apple.iwork.keynote.key", ¬
                    "com.apple.iwork.keynote.kth", ¬
                    "com.apple.iwork.keynote.sffkey", ¬
                    "com.apple.iwork.keynote.key-tef", ¬
                    "com.microsoft.powerpoint.ppt", ¬
                    "org.openxmlformats.presentationml.presentation", ¬
                    "org.openxmlformats.presentationml.presentation.macroenabled", ¬
                    "com.microsoft.powerpoint.pps", ¬
                    "org.openxmlformats.presentationml.slideshow", ¬
                    "org.openxmlformats.presentationml.slideshow.macroenabled", ¬
                    "com.microsoft.powerpoint.pot", ¬
                    "org.openxmlformats.presentationml.template", ¬
                    "org.openxmlformats.presentationml.template.macroenabled"} ¬
                    default location (path to documents folder) ¬
                with prompt "keynoteのドキュメントを選択してください。")
        open the chosenDocumentFile
    on error errorMessage number errorNumber
        if errorNumber is not -128 then
            display alert errorNumber message errorMessage
        else
            error number -128
        end if
    end try
end tell

テキストファイルから文字列を取得

    global text_file
    global text_lines

    set text_lines to {}
    set tmp_file to choose file of type {"Txt","Text"} with prompt "挿入する言葉が記載された.txtファイルを選んでください。"
    set text_file to POSIX path of (tmp_file)
    set tmp_data to do shell script "cat "  & quoted form of (POSIX path of tmp_file)

    repeat with nextLine in  paragraphs of tmp_data
        if length of nextLine is greater than 0 then
            copy nextLine to the end of text_lines
        end if
    end repeat

global変数を使ってる理由はこちらをご確認ください。

Tip:変数の中身をみたい時はlogが便利です
例: log text_lines

テロップ挿入

    set textOverlayDefaultPositionName to item

    set dialogText to "Overlay Text: " & POSIX path of tmp_file & return & ¬
        "Text Color: " & textOverlayColorName & return & ¬
        "Text Size: " & textOverlayFontSize & return & ¬
        "Typeface: " & textOverlayTypeface & return & ¬
        "Text Opacity: " & textOverlayOpacityValue & return & ¬
        "Text Position: " & textOverlayDefaultPositionName

    display dialog dialogText & return & return & "テキストの挿入を行いますか?" buttons ¬
        {"キャンセル", "実行"} default button 1
    set addDeleteOverlay to the button returned of the result
    tell the front document
        set documentWidth to its width
        set documentHeight to its height

        if addDeleteOverlay is not "キャンセル" then
            repeat with i from 1 to the count of slides
                set thisSlide to item i of slides
                set the presenter notes of thisSlide to item i of text_lines
                tell slide i
                    set thisTextItem to ¬
                        make new text item with properties {object text:item i of text_lines as text}
                    tell thisTextItem
                        tell object text
                            set font to textOverlayTypeface
                            set size to textOverlayFontSize
                            set color of it to textOverlayRGBColorValues
                        end tell
                        set textItemWidth to its width
                        set textItemHeight to its height
                        set opacity to textOverlayOpacityValue
                        if textOverlayDefaultPosition is 0 then
                            -- center
                            set x to (documentWidth - textItemWidth) div 2
                            set y to (documentHeight - textItemHeight) div 2
                        else if textOverlayDefaultPosition is 1 then
                            -- top left
                            set x to textItemOverlayOffset
                            set y to textItemOverlayOffset
                        else if textOverlayDefaultPosition is 2 then
                            -- top right
                            set x to documentWidth - textItemWidth - textItemOverlayOffset
                            set y to textItemOverlayOffset
                        else if textOverlayDefaultPosition is 3 then
                            -- bottom ceter
                            set x to (documentWidth - textItemWidth ) div 2
                            set y to textItemOverlayOffset
                        else if textOverlayDefaultPosition is 4 then
                            -- bottom right
                            set x to documentWidth - textItemWidth - textItemOverlayOffset
                            set y to documentHeight - textItemHeight - textItemOverlayOffset
                        end if
                        set position to {x, y}
                    end tell
                end tell
            end repeat
        else
            delete (every text item of every slide whose object text of it is text_lines)
        end if
    end tell

少しコードが長くなりましたが、行っていることは以下です。

  • 実行ダイアログに各プロパティーの表示
  • キャンセル/実行ボタンの設置
  • 実行する場合各プロパティーに前に定義した値を入れて、テロップをスライドに挿入

テキストカラー選択の追加

{"キャンセル", "実行", "色の変更"} default button 1

ボタンの項目に色の変更を追加

if addDeleteOverlay is "色の変更" then
  set textOverlayRGBColorValues to choose color default color textOverlayRGBColorValues
end if

色の変更がクリックされた時の処理を追加

バリデーションの追加

    tell the front document
        if count of slides is not length of paragraphs of tmp_data then
            display dialog dialogText & return & return & "スライドの数とテキストの行数が違いますが、実行しますか?" buttons ¬
            {"キャンセル", "実行", "色の変更"} default button 1
        else
            display dialog dialogText & return & return & "テキストの挿入を行いますか?" buttons ¬
            {"キャンセル", "実行", "色の変更"} default button 1
        end if
    end tell

しゃべらせる

say "処理が正常に終了しました。今日もお仕事頑張ってください。"

sayを使えばなんでもしゃべってくれます。

最終コード

-- OBJECT TEXT PROPERTIES
property textOverlayTypeface : "Arial Bold"
property textOverlayFontSize : 40
property textOverlayColorName : "WHITE"
property textOverlayRGBColorValues : {65535, 65535, 65535}

-- TEXT ITEM PROPERTIES
property textOverlayOpacityValue : 100
property textOverlayDefaultPosition : 3
property textItemOverlayOffset : 870
property textItemPointerOffset : 1012.5

tell application "Keynote"
    activate
    try
        set the chosenDocumentFile to ¬
            (choose file of type ¬
                {"com.apple.iwork.keynote.key", ¬
                    "com.apple.iwork.keynote.kth", ¬
                    "com.apple.iwork.keynote.sffkey", ¬
                    "com.apple.iwork.keynote.key-tef", ¬
                    "com.microsoft.powerpoint.ppt", ¬
                    "org.openxmlformats.presentationml.presentation", ¬
                    "org.openxmlformats.presentationml.presentation.macroenabled", ¬
                    "com.microsoft.powerpoint.pps", ¬
                    "org.openxmlformats.presentationml.slideshow", ¬
                    "org.openxmlformats.presentationml.slideshow.macroenabled", ¬
                    "com.microsoft.powerpoint.pot", ¬
                    "org.openxmlformats.presentationml.template", ¬
                    "org.openxmlformats.presentationml.template.macroenabled"} ¬
                    default location (path to documents folder) ¬
                with prompt "keynoteのドキュメントを選択してください。")
        open the chosenDocumentFile
    on error errorMessage number errorNumber
        if errorNumber is not -128 then
            display alert errorNumber message errorMessage
        else
            error number -128
        end if
    end try

    global text_file
    global text_lines

    set text_lines to {}
    set tmp_file to choose file of type {"Txt","Text"} with prompt "挿入する言葉が記載された.txtファイルを選んでください。"
    set text_file to POSIX path of (tmp_file)
    set tmp_data to do shell script "cat "  & quoted form of (POSIX path of tmp_file)

    repeat with nextLine in  paragraphs of tmp_data
        if length of nextLine is greater than 0 then
            copy nextLine to the end of text_lines
        end if
    end repeat

    set textOverlayDefaultPositionName to item

    set dialogText to "Overlay Text: " & POSIX path of tmp_file & return & ¬
        "Text Color: " & textOverlayColorName & return & ¬
        "Text Size: " & textOverlayFontSize & return & ¬
        "Typeface: " & textOverlayTypeface & return & ¬
        "Text Opacity: " & textOverlayOpacityValue & return & ¬
        "Text Position: " & textOverlayDefaultPositionName

    tell the front document
        if count of slides is not length of paragraphs of tmp_data then
            display dialog dialogText & return & return & "スライドの数とテキストの行数が違いますが、実行しますか?" buttons ¬
            {"キャンセル", "実行", "色の変更"} default button 1
        else
            display dialog dialogText & return & return & "テキストの挿入を行いますか?" buttons ¬
            {"キャンセル", "実行", "色の変更"} default button 1
        end if
    end tell
    set addDeleteOverlay to the button returned of the result
        tell the front document
        set documentWidth to its width
        set documentHeight to its height

        if addDeleteOverlay is "色の変更" then
            set textOverlayRGBColorValues to choose color default color textOverlayRGBColorValues
        end if


        if addDeleteOverlay is not "キャンセル" then
            repeat with i from 1 to the count of slides
                set thisSlide to item i of slides
                set the presenter notes of thisSlide to item i of text_lines
                tell slide i
                    set thisTextItem to ¬
                        make new text item with properties {object text:item i of text_lines as text}
                    tell thisTextItem
                        tell object text
                            set font to textOverlayTypeface
                            set size to textOverlayFontSize
                            set color of it to textOverlayRGBColorValues
                        end tell
                        set textItemWidth to its width
                        set textItemHeight to its height
                        set opacity to textOverlayOpacityValue
                        if textOverlayDefaultPosition is 0 then
                            -- center
                            set x to (documentWidth - textItemWidth) div 2
                            set y to (documentHeight - textItemHeight) div 2
                        else if textOverlayDefaultPosition is 1 then
                            -- top left
                            set x to textItemOverlayOffset
                            set y to textItemOverlayOffset
                        else if textOverlayDefaultPosition is 2 then
                            -- top right
                            set x to documentWidth - textItemWidth - textItemOverlayOffset
                            set y to textItemOverlayOffset
                        else if textOverlayDefaultPosition is 3 then
                            -- bottom ceter
                            set x to (documentWidth - textItemWidth ) div 2
                            set y to textItemOverlayOffset
                        else if textOverlayDefaultPosition is 4 then
                            -- bottom right
                            set x to documentWidth - textItemWidth - textItemOverlayOffset
                            set y to documentHeight - textItemHeight - textItemOverlayOffset
                        end if
                        set position to {x, y}
                    end tell
                end tell
            end repeat
        else
            delete (every text item of every slide whose object text of it is text_lines)
        end if
    end tell
    say "処理が正常に終了しました。今日もお仕事頑張ってください。"
end tell

おわりに

普段は業務でRailsとVueを使っているのですが、全く違う言語を触るのもたまにはいいなと感じました。
Macユーザーなら割とAppleScript使っていろいろ面白そうなことできそうなので、また機会があれば触ってみたいです。

参考URL

keynoteを開く
https://iworkautomation.com/keynote/document-open.html

テキストを作成して記載する
https://iworkautomation.com/keynote/text-item-overlay.html

プレゼンテータノート
https://iworkautomation.com/keynote/slide-presenter-notes.html

テキストを読み込む(文字化け対応)
http://underwoodmac.cocolog-nifty.com/blog/2011/07/applescriptread.html

グローバル変数
http://www.script-factory.net/history/2012/06/27_1832.xhtml

基本文法
https://qiita.com/MMRN/items/5e622eee5c736a42ee38

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

Android Studioが起動しない(Macユーザー)

発端

業務でFlutter×Firebaseを使っています。
1週間程度私用のMacでAndroid Studioを起動しておらず、久しぶりに簡単に練習用アプリでもと思いAndroid Studioを起動しよう・・・できませんでした。

解決までの道

エラーが出るわけでもなく、ただただ起動できない。

https://medium.com/@oikawa/solved-doesnt-start-android-studio-on-macos-8564d4f79ff8

ググるとこの方の内容に当てはまるっぽい。

3.Applications/Android Studio/Contents/MacOS/studio ファイルを直接を起動

これで確かにエラーメッセージがターミナル上に表示された。
Android Studioフォルダを消して再度入れ直したら起動できるようになった。

詳細
1.FinderでApplicationフォルダを表示
2.Android Studioをダブルクリックして[パッケージの内容を表示]を選択
3.Applications/Android Studio/Contents/MacOS/studio をダブルクリックで実行
※1~3まではターミナルで実行でも問題ないと思います。僕は実際にみていた方が安心できるので上記で行いました。
4./Users/{your_name}を起動している状態で右クリック-[表示オプションを表示]を選択
5.["ライブラリ"フォルダを表示]を選択
6./Users/{your_name}/Library/Preferences/Android Studio3.1が見つからない
7.Android Studioを検索
8./Users/{your_name}/Library/Application Support/ 内にAndroid Studioがいたので削除
9.Applicationフォルダ内のAndroid Studioも削除
10.再度Android Studioをインストール

結果

起動すると正常に起動できることを確認できました。
何が原因だったのかはあまり分かっていないです。

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

Apple Silicon M1 でtensorflow-macosを実行したらめちゃくちゃ速かった。

はじめに

Macbook Air (:apple:AppleSilicon, M1)を購入しました。
Appleが設計したM1は下馬評以上の性能を叩き出し、
とても盛り上がっていますね。

M1のハードウェアとしての魅力はもちろんすごいですが、
M1に合わせた各種ソフトウェアの最適化も魅力的です。

AppleがTensorflowをフォークしてM1で最高のパフォーマンスを発揮するように
最適化したコード(tensorflow-macos)を公開しています。
https://github.com/apple/tensorflow_macos#requirements

tensorflowのブログ記事でパフォーマンスが比較されていますが、
前世代のIntel Macと比べると信じられないほどの性能向上を見ることができます。
https://blog.tensorflow.org/2020/11/accelerating-tensorflow-performance-on-mac.html

この記事では

  1. 実際にM1 Macでtensorflow-macosを動作させた過程を紹介します。
  2. サンプルコードを動作させてM1 Mac, Intel Mac, RTX 2080 superとの実行時間の比較をします。

(初めてQiitaで記事を書いてみました。
ガイドライン違反や改善点があればご指摘ください!)

目次

  1. tensorflow-macosを実行する環境を構築する。
  2. 実行時間を比較する。
  3. 考察、議論
  4. 参考文献

tensorflow-macosを実行する環境を構築する。

Python 3.8 (for ARM)をインストールする。

tensorflow-macos 0.1a0Python 3.8で動作します。
tensorflow-macosリポジトリのREQUIREMENTSにあるように、
必ずXcode Command Line Toolsからインストールしてください。

$ xcode-select --install
$ python3 -V
Python 3.8.2

$ which python3 
/usr/bin/python3

tensorflow_macosはARMアーキテクチャ向けのコードになっているので、
PythonもARMアーキテクチャ向けのものにする必要があります。

例えば以下のようにインストールしたものは
tensofrflow-macosの実行時にエラーが発生しました。

・ Python公式サイトからdmgファイルをダウンロードしてインストール
・ Anacondaを使ってインストール
・ pyenvを使ってインストール
Traceback (most recent call last):
  File "/path/to/tensorflow_macos_venv/lib/python3.8/site-packages/tensorflow/python/pywrap_tensorflow.py", line 64, in <module>
    from tensorflow.python._pywrap_tensorflow_internal import *
ImportError: dlopen(/path/to/tensorflow_macos_venv/lib/python3.8/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so, 6): no suitable image found.  Did find:
    /path/to/tensorflow_macos_venv/lib/python3.8/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so: mach-o, but wrong architecture
    /path/to/tensorflow_macos_venv/lib/python3.8/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so: mach-o, but wrong architecture

tensorflow-macosの仮想環境(venv)を構築する。

tensorflow_macosの実行に必要な仮想環境を構築してくれる
便利なスクリプトをAppleが用意してくれています。

tensorflow-macosリポジトリのINSTALLATIONにあるように、
ターミナルからスクリプトを実行します。

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/apple/tensorflow_macos/master/scripts/download_and_install.sh)"

仮想環境のパッケージのダウンロードが始まるので、
しばらく待つと(結構待つ)、仮想環境を構築するパスを聞かれるので、
Enterキーを押してデフォルトパスを指定し、構築を開始します。

Downloading installer.
/var/folders/hn/g5s5s0fx6zs2plvygdc95y140000gn/T/tmp.haPEac7f ~/Projects/tensorflow-mac
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   659  100   659    0     0   1331      0 --:--:-- --:--:-- --:--:--  1331
100  316M  100  316M    0     0  2467k      0  0:02:11  0:02:11 --:--:-- 1638k
Extracting installer.
Path to new or existing virtual environment [default: /Users/tomoyaeibu/tensorflow_macos_venv/]: 
Using python from /usr/bin/python3.

###########################################################################

./install_venv.sh will perform the following operations:
-> Create new python 3.8 virtual environment at /Users/tomoyaeibu/tensorflow_macos_venv.
-> Install tensorflow_macos 0.1a0 into created virtual environment /Users/tomoyaeibu/tensorflow_macos_venv.
-> Install bundled binary wheels for numpy-1.18.5, grpcio-1.33.2, h5py-2.10.0, tensorflow_addons-0.11.2+mlcompute into /Users/tomoyaeibu/tensorflow_macos_venv.


Confirm [y/N]? 

tensorflow-macosの仮想環境(venv)をアクティベートする。

これでtensorflow-macosを実行する環境は整いました。
簡単ですね・・・!

tensorflow-macosの仮想環境をアクティベートします。

$ source /Users/{username}/tensorflow_macos_venv/bin/activate

$ pip list         
Package                Version
---------------------- ---------
absl-py                0.11.0
appnope                0.1.0
astunparse             1.6.3
backcall               0.2.0
cached-property        1.5.2
cachetools             4.1.1
certifi                2020.11.8
chardet                3.0.4
decorator              4.4.2
flatbuffers            1.12
gast                   0.4.0
google-auth            1.23.0
google-auth-oauthlib   0.4.2
google-pasta           0.2.0
grpcio                 1.33.2
h5py                   2.10.0
idna                   2.10
ipython                7.19.0
ipython-genutils       0.2.0
jedi                   0.17.2
Keras-Preprocessing    1.1.2
Markdown               3.3.3
numpy                  1.18.5
oauthlib               3.1.0
opt-einsum             3.3.0
parso                  0.7.1
pexpect                4.8.0
pickleshare            0.7.5
pip                    20.2.4
prompt-toolkit         3.0.8
protobuf               3.14.0
ptyprocess             0.6.0
pyasn1                 0.4.8
pyasn1-modules         0.2.8
Pygments               2.7.2
requests               2.25.0
requests-oauthlib      1.3.0
rsa                    4.6
setuptools             50.3.2
six                    1.15.0
tensorboard            2.4.0
tensorboard-plugin-wit 1.7.0
tensorflow-addons      0.11.2
tensorflow-estimator   2.3.0
tensorflow-macos       0.1a0
termcolor              1.1.0
traitlets              5.0.5
typeguard              2.10.0
typing-extensions      3.7.4.3
urllib3                1.26.2
wcwidth                0.2.5
Werkzeug               1.0.1
wheel                  0.35.1
wrapt                  1.12.1

tensorflow-macosがインストールされていることがわかります。

tensorflow-macosを実行する。

tensorflow-macosを実行するために既存のtensorflowを使った
トレーニングやバリデーションのコードを修正する必要はありません。

今まで使っていたスクリプトをそのまま使えます。
(ただしKerasを使っていた場合、ARM版のKerasがまだないようなので、
tensorflowのAPIに置き換えるか、tf.KerasのAPIに置き換えてください。)

実行時間を比較する。

早速サンプルコードを実行して実行時間を比較してみましょう。
トレーニングにかかる時間を比較します。

実行環境

以下の3つの環境で比較しました。

Macbook Air (2020,M1) Macbook Pro (2017,Intel) 開発に使っている学習用PC
OS Mac Big Sur Mac Big Sur Ubuntu 20.04.1
CPU M1 2.3GHzデュアルコアIntel Core i5 (後日、確認します)
GPU M1 Intel Iris Plus Graphics 640 RTX 2080 Super 8GB
RAM 8GB 8GB 16GB
Python python 3.8.2 python 3.8.2 python 3.8.2
Tensorflow tensorflow-macos 0.1a0 tensorflow-macos 0.1a0 tensorflow 2.4

サンプルコードにはシンプルなmnistのクラス分類を使っています。

import tensorflow as tf
mnist = tf.keras.datasets.mnist
import time

(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(),
  tf.keras.layers.Dense(512, activation=tf.nn.relu),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

start = time.perf_counter()
model.fit(x_train, y_train, epochs=5)
end = time.perf_counter()
print(f"Elapsed time : {end - start:.3f} s.")

model.evaluate(x_test, y_test)

実行結果

Macbook Air (2020,M1) Macbook Pro (2017,Intel) 開発に使っている学習用PC
5epochにかかった時間 6.268 s 23.876 s 8.053 s

Intel Macに対してM1 Macの方が4倍程度、速いという結果になりました。

素晴らしく速いですね。
たしかMacbook Pro(2017)の方がMacbook Air(2020)よりも
値段が高かったような気がするんですが・・・。

さらにいつも開発に使っているRTX 2080 Superよりも速かったのは
もっと驚きの結果でした。

RTX 2080 Superの方は特にチューニング作業はしていないので、
使い方次第では実はもっと速くなる可能性はありますが、
M1 Macだと何も気にせずこのぐらいの速度でトレーニングできるのは素晴らしいです。

これからDeep Learningをやりたくて個人で開発環境を整えるのであれば、
下手に高いグラフィックボードを購入するよりは、
M1が搭載されたMadbook Airを買った方がコスパは良いと思います。

考察、議論

GPU? CPU? Neural Engine?

tensorflow-macでは、
以下のように使用するデバイスを選択するオプションが用意されています。

from tensorflow.python.compiler.mlcompute import mlcompute
mlcompute.set_mlc_device(device_name="cpu")

# cpu : CPUだけを利用する。
# gpu : GPUだけを利用する。
# any : 最適なデバイスを使用する。(デフォルト)

Intel Macの場合、速い順にany > gpu > cpu でした。
cpuよりgpuの方が速いのは、Intel Iris Plus Graphicsを使っているからだと思いますが、
gpuよりanyの方が速いのは、「最適なデバイス」を使っているからなのでしょうか。

M1 Macの場合、速い順にany > cpu > gpuでした。
gpuが遅いのはEagar Mode (Define by run)に対応していないだけなので、
Eagar modeをオフにすれば速くなるかもしれません。
anyが速いのは、やはり「最適なデバイス」を使っているからで、
FowardにはNeural Engineを、BackwardにはGPUを使うなどの工夫がしてあるのかな?
などと考察しています。

これらのデバイスが同じメモリを共有しているのが
M1の大きな特徴の一つですし。

どこかに詳しい記事がないかを探してみます。

参考文献

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

Mac版 Eclipseで外部ブラウザをChromeにする簡単な方法

はじめに

Mac版のEclipseで外部ブラウザを設定する方法を探したのですが、
ネット上になかったので簡単な方法を紹介します。

Eclipseで外部ブラウザをChromeにする簡単な方法

  • 事前準備

    • Google Chrome インストール
  • 手順
    1.上のメニューバー>[Eclipse]から[Preferences...](設定)をクリック
    eclipse_Chrome1.jpg eclipse_Chrome2.jpg

    2.ウインドウ左側の枠内の一般を選択した後、Webブラウザーを選択
    eclipse_Chrome3.JPGeclipse_Chrome4.JPG

    3.外部Webブラウザーを使用にチェックし、[新規...]をクリック
    eclipse_Chrome5.JPG

    4.ウインドウ右側の[参照...]をクリックし[Applications](アプリケーション)フォルダを選択
    eclipse_Chrome6.JPGeclipse_Chrome7.JPG

    5.中からGoogle Chrome.appを選択し、右下の[Open](開く)をクリック
    eclipse_Chrome8.JPG

    6.名前に適当な文字を入力(例:Chrome)、右下の[OK]をクリック
    eclipse_Chrome9.JPG

    7.ウインドウが閉じたら、先ほど増えたものが増えているのでチェックを入れて[適用して閉じる]をクリック
    eclipse_Chrome10.JPG

結果

これでHTMLなどをサーバーで実行する際、Chromeブラウザが立ち上がるようになります。
eclipse_Chrome11.JPGeclipse_Chrome12.JPG
(*)初回起動の場合、警告や許可を求めてきた場合は、[OK]クリックで進めて良いと思います。

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

Mac版 Eclipseの外部ブラウザをChromeに設定する簡単な方法

はじめに

Mac版のEclipseの外部ブラウザをChromeに設定する方法を探したのですが、
ネット上になかったので簡単な方法を紹介します。

Eclipseの外部ブラウザをChromeに設定する簡単な方法

  • 事前準備

    • Google Chrome インストール
  • 手順
    1.上のメニューバー [Eclipse]から[Preferences...](設定)をクリック
    eclipse_Chrome1.jpg eclipse_Chrome2.jpg

    2.ウインドウ左側の枠内の一般を選択した後、Webブラウザーを選択
    eclipse_Chrome3.JPG eclipse_Chrome4.JPG

    3.外部Webブラウザーを使用にチェックし、[新規...]をクリック
    eclipse_Chrome5.JPG

    4.ウインドウ右側の[参照...]をクリックし[Applications](アプリケーション)フォルダを選択
    eclipse_Chrome6.JPG eclipse_Chrome7.JPG

    5.中からGoogle Chrome.appを選択し、右下の[Open](開く)をクリック
    eclipse_Chrome8.JPG

    6.名前に適当な文字を入力(例:Chrome)、右下の[OK]をクリック
    eclipse_Chrome9.JPG

    7.ウインドウが閉じたら、6で入力したものが増えているのでチェックを入れて[適用して閉じる]をクリック
    eclipse_Chrome10.JPG

結果

これでHTMLなどをサーバーで実行する際、このようにChromeブラウザが立ち上がるようになります。
eclipse_Chrome11.JPG eclipse_Chrome12.JPG
(*)初回起動の場合、警告や許可を求めてきた場合は、[OK]クリックで進めて良いと思います。

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

Macの作業効率向上設定とGoogle拡張機能について

はじめに

在宅勤務が新たな仕事のスタイルとして確立されている昨今、「効率化」がキーワードになっています。
本投稿では、Macに設定することで作業が捗るアプリや環境設定を紹介します。
様々なMac初期設定記事やおすすめアプリ動画を視聴し実践し、以下の内容が私にはフィットしました。
アプリケーション編/環境設定/Google拡張機能の3構成で紹介します。
本投稿で、皆さんの作業効率の促進に少しでも貢献できれば幸いです。

アプリケーション編

Alfred

Macを使っている人であれば是非使って頂きたいのがランチャーアプリ「Alfred」です。
こちらのアプリを使うようになってからは、トラックパッドを使ってアプリケーションを起動する機会がとても減りました。
他のアプリケーション起動はもちろん、詳細設定すればよく利用するサイトも開くことが可能です。
詳細設定の方法についての参照記事はこちらです。

BetterSnapTool/BetterTouchTool

こちらのアプリは有料にはなってしまいますが、お金を払う分(360円)だけの価値があると思います。
トラックパッドでの操作機能を拡大させる機能や、デフォルト設定では面倒な画面分割をしてくれます。
設定次第では、マウスやショートカットキーでやっていたこと全てトラックパッドでできるようになります。
こちらのアプリをインストールする上で注意する点としては
BetterSnapToolを使わないとしても先ずはBetterSnapToolを購入してください。
BetterSnapToolを購入することでBetterTouchToolの有効期限が無期限になります。
購入についての内容はこちらのリンクが分かりやすかったので掲載します。

まずは、画面分割について紹介します。(BetterSnapTool)

デフォルトの設定では、ウィンドウを拡大させる緑色のボタンを長押しすることで右ウィンドウと左ウィンドウの分割が可能です。
ですが、デフォルトの画面分割は使いにくく分割するまでの時間もかかるため非常にストレスでした。
ショートカットキー設定を行うことで、右左ウィンドウ分割だけでなく、上下ウィンドウ分割や全画面拡大もしてくれます。
筆者はオプションボタンで各動作の設定していますが、commandキーやShiftボタン等でも設定出来ます。

スクリーンショット 2020-12-06 1.46.09.png

次に、トラックパッドの操作機能について(BetterTouchTool)
具体的な機能として、キーボードのショートカットキーやスクリーンショットの実行等をトラックパッドの操作でアシストしてくれます。
1つ注意点として、あまり多くのトラックパッド設定を行ってしまうと誤動作が起きることがあるので最小限の設定が好ましいかもしれません。
色々いじってみた結果、設定内容は画像のように、新規ウィンドウ立ち上げとウィンドウ削除、アプリケーション強制終了を設定しています。
スクリーンショット 2020-12-06 1.11.21.png

環境設定編

Google日本語入力

Macのデフォルト設定されている文字変換の機能としてKotoeri(ことえり)が入っていますが変換精度があまり良くないので導入しました。
Google日本語入力は自動で学習して、多用されているワードを変換上部に持ってきてくれるため文字入力の手助けになります。

また、ユーザ辞書を設定することで入力が面倒なメールアドレスや名前等を設定した文字を入力するだけで変換してくれる機能もあります。この設定した内容については、エクスポートしiCloud上に保存しておくことでパソコンを変えたとしても以前設定した内容を反映させることも可能です。

キーボード設定

小さな設定ではありますが、キーのリピートを設定することで文字を削除するスピードや、操作キーで文字を移動する際のスピードをが向上します。
システム環境設定→キーボードから設定できます。
スクリーンショット 2020-12-06 2.06.22.png

Google拡張機能

AutoPagerize

スクリーンショット 2020-12-06 2.14.31.png

通常の場合、画面下部にこのようなページャーがあります。
わざわざクリックして次画面に遷移させるのが面倒だなって思っていました。
AutoPagerizeの拡張機能を導入すると、わざわざクリックしなくても下にスクロールすることで自動でページを追加してくれます。

SearchPreview

こちらの機能は、検索した時に画像のプレビューも一緒に表示してくれる機能です。
以前検索した内容で再度そのサイトにアクセスしたい場合、わざわざサイトにアクセスして内容を確認する必要がなくなるため地味にありがたい機能です。

スクリーンショット 2020-12-06 2.21.58.png

終わりに

本投稿は私のQiita初投稿です。
可読性を高めるためにMarkdown方式を学ぶ良い機会になりました。
これからも効率性を高めるアプリや設定等があれば随時更新していく予定です。
ここまで読んでくださりありがとうございました。

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

Macおすすめアプリ、環境設定、Google拡張機能

はじめに

在宅勤務が新たな仕事のスタイルとして確立されている昨今、「効率化」がキーワードになっています。
本投稿では、Macに設定することで作業が捗るアプリや環境設定を紹介します。
様々なMac初期設定記事やおすすめアプリ動画を視聴し実践し、以下の内容が私にはフィットしました。
アプリケーション編/環境設定/Google拡張機能の3構成で紹介します。
本投稿で、皆さんの作業効率の促進に少しでも貢献できれば幸いです。

アプリケーション編

Alfred

Macを使っている人であれば是非使って頂きたいのがランチャーアプリ「Alfred」です。
こちらのアプリを使うようになってからは、トラックパッドを使ってアプリケーションを起動する機会がとても減りました。
他のアプリケーション起動はもちろん、詳細設定すればよく利用するサイトも開くことが可能です。
詳細設定の方法についての参照記事はこちらです。

BetterSnapTool/BetterTouchTool

こちらのアプリは有料にはなってしまいますが、お金を払う分だけの価値があると思います。
トラックパッドでの操作機能を拡大させる機能や、デフォルト設定では面倒な画面分割をしてくれます。
設定次第では、マウスやショートカットキーでやっていたこと全てトラックパッドでできるようになります。
こちらのアプリをインストールする上で注意する点としては
BetterSnapToolを使わないとしても先ずはBetterSnapToolを購入してください。
BetterSnapToolを購入することでBetterTouchToolの有効期限が無期限になります。
購入についての内容はこちらのリンクが分かりやすかったので掲載します。

まずは、画面分割について紹介します。(BetterSnapTool)

デフォルトの設定では、ウィンドウを拡大させる緑色のボタンを長押しすることで右ウィンドウと左ウィンドウの分割が可能です。
ですが、デフォルトの画面分割は使いにくく分割するまでの時間もかかるため非常にストレスでした。
ショートカットキー設定を行うことで、右左ウィンドウ分割だけでなく、上下ウィンドウ分割や全画面拡大もしてくれます。
筆者はオプションボタンで各動作の設定していますが、commandキーやShiftボタン等でも設定出来ます。

スクリーンショット 2020-12-06 1.46.09.png

次に、トラックパッドの操作機能について(BetterTouchTool)
具体的な機能として、キーボードのショートカットキーやスクリーンショットの実行等をトラックパッドの操作でアシストしてくれます。
1つ注意点として、あまり多くのトラックパッド設定を行ってしまうと誤動作が起きることがあるので最小限の設定が好ましいかもしれません。
色々いじってみた結果、設定内容は画像のように、新規ウィンドウ立ち上げとウィンドウ削除、アプリケーション強制終了を設定しています。
スクリーンショット 2020-12-06 1.11.21.png

環境設定編

Google日本語入力

Macのデフォルト設定されている文字変換の機能としてKotoeri(ことえり)が入っていますが変換精度があまり良くないので導入しました。
Google日本語入力は自動で学習して、多用されているワードを変換上部に持ってきてくれるため文字入力の手助けになります。

また、ユーザ辞書を設定することで入力が面倒なメールアドレスや名前等を設定した文字を入力するだけで変換してくれる機能もあります。この設定した内容については、エクスポートしiCloud上に保存しておくことでパソコンを変えたとしても設定した内容を反映させることも可能です。

キーボード設定

小さな設定ではありますが、キーのリピートを設定することで文字を削除するスピードや、操作キーで文字を移動する際のスピードをが向上します。
システム環境設定→キーボードから設定できます。
スクリーンショット 2020-12-06 2.06.22.png

Google拡張機能

AutoPagerize

スクリーンショット 2020-12-06 2.14.31.png

画面下部にこのようなページャーがあります。
わざわざクリックして次画面に遷移させるのが面倒だなって思っていました。
AutoPagerizeの拡張機能を導入すると、わざわざクリックしなくても下にスクロールすることで自動でページを追加してくれます。

SearchPreview

こちらの機能は、検索した時に画像のプレビューも一緒に表示してくれる機能です。
以前検索した内容で再度そのサイトにアクセスしたい場合、わざわざサイトにアクセスして内容を確認する必要がなくなるため地味にありがたい機能です。

スクリーンショット 2020-12-06 2.21.58.png

終わりに

本投稿は私のQiita初投稿であり、可読性を高めるためにMarkdown記法を学ぶ良い機会になりました。
今後もよいアプリケーションや設定があれば随時更新していこうと思います。

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

HHKB Professional HYBRID Type-S 無刻印 を買ってmacでDvorak配列に設定してみた

私は詳しい人ではないですが、調べながらやってみて、そんなに難しくなかったので投稿させていただきました。m(_ _)m

  • macOS Catalina Version 10.15.6
  • HHKB Professional HYBRID Type-S 無刻印/白

HHKBのキーボードのこちらを購入しました

https://www.amazon.co.jp/gp/product/B082TWHY76/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1

HHKB Professional HYBRID Type-S 無刻印/白(英語配列)

Macモードに設定する

参考

https://www.pfu.fujitsu.com/hhkeyboard/leaflet/hhkb_backview.html

キーボード背面にある2つ目のDIPスイッチをONに設定しておく

必ずキーボードの電源を切っている状態でスイッチを切り替える

この設定をしないとcommandキーが動作しません

bluetoothで接続した

キーボードの電源を入れたら普通に接続できる

「System Preferences」→「Keyboard」→「Set Up Bluetooth Keyboard」

Screen Shot 2020-12-06 at 1.12.51.png

Bluetoothを使わない場合は USB Type-C ケーブルで接続することもできる

その場合はケーブルは同梱されていないので自分で用意する


この状態で以下のような配列だったと思います

61ECiYo2heL._AC_SL1280_.jpg

引用:https://www.amazon.co.jp/HHKB-Professional-HYBRID-%E8%8B%B1%E8%AA%9E%E9%85%8D%E5%88%97%EF%BC%8F%E7%99%BD-PD-KB800W/dp/B082TT132L/ref=sr_1_6?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=hhkb+%E8%8B%B1%E8%AA%9E&qid=1607185477&sr=8-6

Dvorak配列に変更する

「System Preferences」→「Keyboard」→「Input Source」

「+」を押して「Dvorak」を追加する

追加できたら Ctrl + Space で切り替えれた

日本語入力も Dvorak で入力できるようにする

参考:https://qiita.com/raccy/items/23ae3658f3c70a9cd599

「System Preferences」→「Keyboard」→「Input Source」→「Japanese」

「Romaji layout」を「Dvorak」に変更する

Screen Shot 2020-12-06 at 1.48.28.png

この設定でできました!

その他

macのキーボードビューワーを使うと、dvorak配列で自分がどのキーを押しているかわかりやすかったです。

参考:https://support.apple.com/ja-jp/guide/mac-help/mchlp1015/mac

Screen Shot 2020-12-06 at 1.56.49.png

Screen Shot 2020-12-06 at 1.59.01.png

以上です。m(_ _)m

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