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

Mac標準機能のスクリーンショットの保存先とファイル名を変更する

設定変更背景

Macはアプリなど入れなくてもスクリーンショットを取得できるのですが、

保存先がデフォルトでデスクトップであったり、

ファイル名が日本語だったり、スペースが入っていたりで、コマンドラインから操作する時は面倒だったので

設定変更をしました。

保存先

defaults write com.apple.screencapture location <ディレクトリのPATH>
killall SystemUIServer

保存先をデフォルトに戻す

defaults delete com.apple.screencapture location
killall SystemUIServer

ファイル名の変更

OS X 10.11 El Capitanより追加されたセキュリティ機能、

SIP(System Integrity Protection)によって/Systemの領域がガードされている。
rootユーザでも書き込みできないとのこと。

そのため以下のリンクのような手法では設定変更できません。

(あれこれやれば設定できるけど)

Changing the default screenshot filename

色々いじって変更してもよいが、いじって欲しくないところをいじるのはあまり好きではないので

スクリプトで対応します。(原始的(笑))

defaults write com.apple.screencapture name <ファイル名>
killall SystemUIServer

設定の確認

defaults read com.apple.screencapture
{
    "include-date" = 1;
    "last-messagetrace-stamp" = "567529840.759799";
    location = "<ディレクトリPATH>";
    name = "<ファイル名>";
}

スクリプトを作って置いておく

スクリーンショットをとると、以下のようにファイル名に空白が入るので

空白をアンダーバーに変更するスクリプトを置いておきます。

ls -l
-rw-r--r--@ 1 xxxxxx  staff  2257995 12 29 01:33 <ファイル名> 2018-12-29 1.33.35.png

cat rename.sh
#!/bin/sh
for A in $(ls | grep " " | sed -e s/" "/_/g) ; do mv "$(echo $A | sed -e s/_/' '/g)" $A ; done

追記

ぶっちゃけスクリプト使わんかった(爆)

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

Mac環境で公開鍵、秘密鍵を作成する方法の備忘録

別にMacに限らずLinux環境であればできる手順ですが...

鍵の作成

$ cd ~/.ssh
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xxxxxx/.ssh/id_rsa): #作成先確認
Enter passphrase (empty for no passphrase): #パスフレーズ入力
Enter same passphrase again:
Your identification has been saved in /Users/xxxxxx/.ssh/id_rsa.
Your public key has been saved in /Users/xxxxxx/.ssh/id_rsa.pub.
The key fingerprint is:

:
略
:

$ ls -l
total 16
-rw-------  1 xxxxxx  staff  1876 12 25 21:16 id_rsa
-rw-r--r--  1 xxxxxx  staff   403 12 25 21:16 id_rsa.pub

鍵を使った接続

ssh -l <USER> -i <作った秘密鍵> <IPアドレス>
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Mac環境で画面を半分によせる。(Mac操作系のメモ)

Windowsユーザだと、ウインドウズキー+→ or ← で

画面分割は色々できたのですが、Macではどのようにやるのか調べたのでメモ。

残念なことに標準だとショートカットの実装がないとのこと(画面のデザイン思想が違うんだろうなぁと)

ShiftItのようなアプリを入れて、そのような機能を実装するか、 

標準で実装されているSplit ViewををGUIで使用するのが選択肢になりそうです。
(Split Viewはまだショートカットがないらしい。)  

操作方法は画面左上の緑色のフルスクリーン表示ボタンを長押しして、右に配置するか、左に配置するかを決める感じでした。

(フルスクリーンからだとできないので、一旦フルスクリーンを解除してから行う必要がある。)

まぁせっかくフルスクリーンとか仮想デスクトップとかあるんだから、画面にごちゃごちゃ並べるんじゃないよってことかなとも思った。

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

Macにmecabをインストールする

MacにHomebrewの環境を整える

Xcodeをインストール

ターミナルから $ xcode-select --install コマンドを発行すると
以下のようにインストールを要求される。

ターミナル
$ xcode-select --install
xcode-select: note: install requested for command line developer tools

同時にポップアップが出てくるので「インストール」を選択し利用規約に同意する。

ターミナル
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

途中でEnterの入力、インストールユーザのOSパスワードの入力を求められる。

Homebrewインストール完了確認

ターミナル
$ brew doctor
Your system is ready to brew.

Homebrewを使ってMacにMeCabをインストールする

ターミナル
$ brew install mecab

MacにMeCabを利用するために辞書をインストールする

ターミナル
$ brew install mecab-ipadic

MacでMeCabを実行してみる

ターミナル
$ mecab

すると空白の行が出てくるのでそこに解析させたい文章なりを入力する。
例えば、「すもももももももものうち」と入力。

すもももももももものうち
すもも   名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも  名詞,一般,*,*,*,*,もも,モモ,モモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも  名詞,一般,*,*,*,*,もも,モモ,モモ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
うち  名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS

上記のように解析結果が表示される。

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

MacでAWS Lambda関数(java)を作るまで

MacでAWS Lambda関数(java)を作るまで

思いつきで使った事のないMacBookAirを買い、思いつきでAWS Lambda関数を作ろうとしたものの、慣れないJavaScriptで書くのはストレスなので、慣れたJavaで作ろうとしたところ、すんなりといかなかったので残しておきます。

前提

  • 2019.08.03現在のAWS Lambdaのランタイムは、ava-1.8.0-openjdk-Amazon linuxです
  • homebrewというものがインストールされていること
  • anyenvというものがインストールされていること

javaのインストール

java8の検索

Macにjavaをインストールします。lambdaランタイムがopenjdk8なのでhomebrewでopenjdkがインストールできるのか探します。

# おまじない
$ brew tap caskroom/versions
# openjdkを検索
$ brew search openjdk
==> Casks
adoptopenjdk                             adoptopenjdk8

openjdkのインストール

「adoptopenjdk8」という、いかにもjava8らしきものがあったのでこれをインストールします。途中でパスワードを聞かれますのでOSのパスワードを入力します。

# openjdk ver8をinstall
$ brew cask install adoptopenjdk8
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/cask).
No changes to formulae.

==> Satisfying dependencies
==> Downloading https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/downl
==> Downloading from https://github-production-release-asset-2e65be.s3.amazonaws
######################################################################## 100.0%
==> Verifying SHA-256 checksum for Cask 'adoptopenjdk8'.
==> Installing Cask adoptopenjdk8
==> Running installer for adoptopenjdk8; your password may be necessary.
==> Package installers may write to any location; options such as --appdir are i
Password: #osのパスワード入力
installer: Package name is AdoptOpenJDK
installer: Installing at base path /
installer: The install was successful.
?  adoptopenjdk8 was successfully installed!

javaバージョンの確認

macで有効になっているjavaバージョンを確認してみます。

$ java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.222-b10, mixed mode)

jenvのインストール

jenvはjavaのバージョンをフォルダ毎に指定したりとかいい感じにやってくれるものです。
ReadMeに沿ってインストールします。

$ anyenv install jenv

jenvにJavaを追加する

jenv経由でjavaをインストールできないので、インストールされたjavaをjenvに教えてあげる必要があります。

$ jenv add $(/usr/libexec/java_home)
openjdk64-1.8.0.222 added
1.8.0.222 added
1.8 added

javaバージョンの確認

jenvが扱えるjavaバージョンの確認

$ jenv versions
* system (set by /Users/xxx/.anyenv/envs/jenv/version)
  1.8
  1.8.0.222
  openjdk64-1.8.0.222

Mavenのインストール

ライブラリの定義やビルドをしやすくしたいのでMavenも入れます。

Mavenの検索

Mavenもhomebrewで入れられました。

$ brew search maven
==> Formulae
maven   maven-completion   maven-shell   maven@3.2   maven@3.3   maven@3.5

==> Casks
mavensmate   homebrew/cask-fonts/font-maven-pro

Mavenのインストール

特にバージョンにはこだわらないので最新をインストール。

$ brew install maven
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/cask and caskroom/versions).
No changes to formulae.

==> Downloading https://www.apache.org/dyn/closer.cgi?path=maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
==> Downloading from https://www-eu.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
######################################################################## 100.0%
?  /usr/local/Cellar/maven/3.6.1: 79 files, 10.2MB, built in 30 seconds

Visual Studio Codeの設定

Eclipseでも良いのですが、軽いと噂のVisual Studio Codeを使ってみたいのでインストール。

Visual Studio Codeのインストール

Download Visual Studio Codeからダウンロードしてインストールしてください。

VS CodeにJavaの拡張機能を追加

こちらに纏まっていますので、こちらを参照して「Java Extension Pack」の追加を行って下さい。
「java開発環境をvisual-studio-code-で整える」
※jenvのおかげかJAVA_HOMEの設定はせずとも大丈夫でした。

Javaの実装 & AWS Lambda関数にデプロイ

こちらに丁寧に纏まっていますので、こちらを参照して下さい。
「いまからはじめるJavaでAWS Lambda(ラムダ) 前編」

AWS API Gateway

パブリックに呼び出せるように、AWS LambdaのトリガーをAPI Gatewayにします。
が、ここで大ハマりしました。
上記までで、AWS Lambdaのテストはうまくいくのですが、API Gatewayを作ってテストを実行すると502でエラーとなるのです。

結論から言うと「API Gateway」の「統合リクエスト」の設定が初期値だとうまくいきませんでした。

AWS Lambdaにトリガーを設定

ここは素直に「+」ボタンでトリガーを追加して、下記のように選択します。

  1. API Gateway を選択
  2. API:素直に「新しいAPIを作成」
  3. セキュリティ:後からでも変更できるので、テストのしやすさを考えて「オープン」

スクリーンショット 2019-08-04 18.24.38.png

スクリーンショット 2019-08-04 18.47.26.png

統合リクエストの設定を変える

AWS Lambda コンソールにて、追加れたメソッドの「統合リクエスト」を選択します。

スクリーンショット 2019-08-04 18.50.52.png

ここが大切です。
この中の「Lambdaプロキシ統合の使用」にチェックが入っているので、このチェックを外します。

スクリーンショット 2019-08-04 18.28.09.png

怖いインフォメーションも無視してOKを押します。
スクリーンショット 2019-08-04 18.51.53.png

このチェックを外す事で、うまくいくようになりました。

まとめ

API GatewayからLambdaのJava を呼び出すところで、リクエストBODYのjsonの内容をJavaの入力パラメータのPOJOに値を詰める処理が動くわけですが、「Lambdaプロキシ統合の使用」にチェックが入っているとどうもここがうまくいきません。

推測するに、API Gatewayでは、リクエストの情報と一緒にAWSのメタな情報もセットで持ち回っており、「Lambdaプロキシ統合の使用」にチェックが入っていると、メタな情報もLambdaに渡せる反面、Lambda側でもそのつもりで受け取る実装にしておかないとダメで、今回の実装はjsonの内容しか受け取るようにしていなかったので失敗していたようです。

「Lambdaプロキシ統合の使用」のチェックを外すとリクエストBODYのみLambdaに渡すようになり、POJOで受け取れるようになりました。

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

Macにbrewでmavenインストールしようとしたらエラーが出た

動作環境

macOS Mojave 10.14.5

エラー内容

自分のMacにmavenをインストールしようとしたら、
以下のようなエラーが。。。

Terminal
$ brew install maven
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
Error: An exception occurred within a child process:
  CompilerSelectionError: maven cannot be built with any available compilers.
Install GNU's GCC:
  brew install gcc

GCCを入れろって書いてあるので、「brew install gcc」を打ってみると、
また別のエラーが。

Terminal
$ brew install gcc
Error: Xcode alone is not sufficient on Mojave.
Install the Command Line Tools:
  xcode-select --install

対処法

なので言われたとおりにxcode-select --installを実行してみる。

Terminal
$ xcode-select --install
xcode-select: note: install requested for command line developer tools

すると、自動的にポップアップが立ち上がるので、指示に従って進める。
eqYJxt6YQqyZJvFgzBTcIA_thumb_52.jpg
 →「インストール」を選択

8ckSSxE5SV29PiZJ1WdTew_thumb_53.jpg
 →「同意する」を選択

するとインストールが走るので、完了まで待つ。

改めてmavenのインストールコマンド実行したら、インストールできた!

Terminal
$ brew install maven
==> Downloading https://www.apache.org/dyn/closer.cgi?path=maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
==> Downloading from http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
######################################################################## 100.0%
?  /usr/local/Cellar/maven/3.6.1: 79 files, 10.2MB, built in 15 seconds

$ mvn -v
Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-05T04:00:29+09:00)
Maven home: /usr/local/Cellar/maven/3.6.1/libexec
Java version: 12.0.1, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/openjdk-12.0.1.jdk/Contents/Home
Default locale: ja_JP, platform encoding: UTF-8
OS name: "mac os x", version: "10.14.5", arch: "x86_64", family: "mac"

 補足

MacOSをアップデートするとAppleのコマンドラインツールが使えなくなり、入れ直しが必要になることがあるとのこと。

Homebrewもこのコマンドラインツールを使っているらしく、影響が出たんですね。

<参考リンク>
macOS を Mojave にあげた後に Homebrew を使うとエラーが出る問題

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