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

【Mac】MacのWiFiを設定する

<< 【Mac】MacOSの基本操作を覚える

MacOSをインターネットにつなげる

とにもかくにもインターネットにつなげないと何もできないので、さっそく繋げてみます。

WiFiを設定する

最近はスマホでも同じようなことをよく実施するので、あまり難しさはないですね。
01.pngのマークを03.pngのマークにすればよいのですから。

  • グレーアウトされているWiFiの扇マークをクリックして周辺にあるWiFiのリストを表示する
  • 自分が認識しているSSIDを選択する
  • WiFiのパスワード入力画面が表示されるので、パスワードを入力して接続ボタンをクリックする
  • 正常に接続ができればグレーアウトされたWiFiの扇マークが着色される

接続確認を行う

とりあえずWebページをつなげることで接続確認はできますね。
あれ?Webブラウザどれだっけ・・・?あぁ、Safariか・・・。

04.png

無事、Appleのホームページが表示できることを確認しました。

05.png

お疲れ様でした。


2020-07-27 初稿

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

【Mac】Macの時計のズレを修正する

<< 【Mac】MacOSの基本操作を覚える

MacOSの時計がずれている

デスクトップの時間がずれていることに気づく。
気づいたときは20時前なのにデスクトップでは4時前とか記載されている。

MacOSの時計のズレを修正する

まだインターネットにもつなげてないので時刻同期はされていないのだろうけど、極端すぎる。
環境設定が根本的におかしいのだろうとあたりをつけて設定変更してみます。

環境設定を確認する

01.png

時計の部分をクリックして表示されたメニューの["日付と時刻"環境設定を開く]をクリックする。

02.png

見事にアメリカ合衆国の設定になってますね・・・。

環境設定を変更する

直感的な画面なので変更してみます。

ロックを解除する

03.png

  • 画面左下の[変更するにはカギをクリックします。]をクリックする
  • ロック解除のためユーザーIDとパスワードを入力して[ロックを解除]ボタンをクリックします。

エリアを変更する

04.png

  • 日本の時間にしてほしいわけなので、[日付と時刻を自動的に設定]の選択をアジアを選択する

でも、まだ時刻が期待した通りにならない。

時間帯を変更する

05.png

[時間帯]のタブもあるので表示してみると、こちらの方が詳細に表示されています。

  • [現在の位置情報に基づいて、時間帯を自動的に設定]のチェックボックスを外す
  • 画面中央の地図で日本あたりをクリックする
  • [最も近い都市]の選択で近しい都市を選ぶ

状態を確認して再び施錠する

[日付と時刻]のタブに戻って時間の状態を確認してみます。

06.png

うまくいきましたね!!!
[変更できないようにするにはカギをクリックします。]をクリックして再度施錠する。

07.png

できました。
お疲れ様でした。


2020-07-27 初稿

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

【Mac】Macでスクリーンショットを取得する

<< 【Mac】MacOSの基本操作を覚える

Macでスクリーンショットはどうやって取得するのか?

いきなり初歩的なことがわからなかったのでまとめます。。。

WindowsではキーボードにPrintScreenボタンがあって、それを押したらクリップボードに取得できてペイントで保存すれば取得できますが、それに相当しそうなボタンがどうも見当たらない。

調べてみると2つの方法があるようです。

  • 「shift」「command」「3」の 3 つのキーを同時押し
  • 「shift」「command」「5」の 3 つのキーを同時押し

何が違うんだろう?

「shift」「command」「3」の 3 つのキーを同時押し

画面右下に取得したサムネイルが表示された。

サムネイルをクリックするとペイントらしきアプリで表示できる、と。
しばらく放置していると勝手にデスクトップにファイルとして保存されるんですね。

ザクッと全体をとりたいときはこれでよさそうですが、ウィンドウだけ取得したいとき(WindowsでいうところのAlt+PrintScreen)には不便ですね。

「shift」「command」「5」の 3 つのキーを同時押し

そういうときに活用するのがこっちですよ、と。

画面全体を取得する、選択したウィンドウを取得する、選択部分を取得するといったことができるんですね。
矩形を選択してマウスをぽちっとクリックすると取得できました。

オプションを見ていると、保存先設定やタイマー、ポインタの表示などもできるようです。

結構柔軟に対応できますね。


2020-07-27 初稿

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

【Mac】MacOSの基本操作を覚える

長年仕事でWindowsOSは使っていますが、ひょんとしたことからMacOSを使ってみたくなったので中古品を購入しました。
せっかくなので、自身の体験談が少しでも皆様のお役に立つのであれば、ということでまとめてみます。

目標

今回の記事は「MacOSを全く触ったことない人が気軽に触れるようになること」を目標に書いていきます。
具体的にはMacOSでも仕事できる感じがしてきた、、、くらいを目指しますかね。

スペック

メモリ8GB以上、ストレージは256GB以上で、なるべく最新機種で手ごろな値段・・・と決めて探すと店頭に「MacoBook Air 13インチ MMGG2J/A Early 2016」なるものがあったので購入しました。

項目 スペック
プロセッサ Core i5 1.6GHz
メモリ 8GB
ストレージ SSD 256GB
ディスプレイ 13.3インチ(1440 x 900)
OS macOS Catalina 10.15.1

メモリとストレージに関しては仕事でも利用しているWindowsOSと同じにしたい、くらいの感覚です。
正直、OSは何がよいのかわかっていないので気にせず。

コンテンツ

少しずつ増やしていきます。


2020-07-27 初稿
2020-07-27 「【Mac】Macでスクリーンショットを取得する」を追加しました
2020-07-27 「【Mac】Macの時計のズレを修正する」を追加しました
2020-07-27 「【Mac】MacのWiFiを設定する」を追加しました

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

macOS にて Java のバージョンを alias で手軽に切り替える

設定

.zshrc などに環境変数 JAVA_HOME と PATH を設定するようなエイリアスを設定する。
インストール済みの Java Virtual Machine (JVM) 毎に設定する。

# AdoptOpenJDK 8
alias setjava8="export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home; export PATH=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/bin:$(echo ${PATH})"

# AdoptOpenJDK 11
alias setjava11="export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home; export PATH=/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/bin:$(echo ${PATH})"

# AdoptOpenJDK 14
alias setjava14="export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-14.jdk/Contents/Home; export PATH=/Library/Java/JavaVirtualMachines/adoptopenjdk-14.jdk/Contents/Home/bin:$(echo ${PATH})"

# Amazon Corretto 8
alias setcorretto8="export JAVA_HOME=/Library/Java/JavaVirtualMachines/amazon-corretto-8.jdk/Contents/Home; export PATH=/Library/Java/JavaVirtualMachines/amazon-corretto-8.jdk/Contents/Home/bin:$(echo ${PATH})"

# Zulu OpenJDK 13
alias setzulu13="export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-13.jdk/Contents/Home; export PATH=/Library/Java/JavaVirtualMachines/zulu-13.jdk/Contents/Home/bin:$(echo ${PATH})"

Java のバージョンを切り替える

設定したエイリアス名を入力することで Java のバージョンを切り替えることができる。

$ setjava14

切り替えられているか環境変数と java -version を確認。

$ echo; echo JAVA_HOME=${JAVA_HOME}; echo; echo PATH=${PATH}; echo; echo 'java -version'; java -version

JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-14.jdk/Contents/Home

PATH=/Library/Java/JavaVirtualMachines/adoptopenjdk-14.jdk/Contents/Home/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin

java -version
openjdk version "14.0.2" 2020-07-14
OpenJDK Runtime Environment AdoptOpenJDK (build 14.0.2+12)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 14.0.2+12, mixed mode, sharing)

欠点

  • エイリアス設定時に環境変数 PATH が展開されるため、シェルを起動するたびにエイリアスで設定される PATH の長さが伸びることがある。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Elasticsearch 7 を macOS 上に構築して全文検索をする

概要

  • Homebrew で Elasticsearch 7 を macOS にインストールする
  • Elasticsearch にデータを入れて全文検索する
  • 今回の環境: macOS Catalina + Elasticsearch 7.8

インストール

Install Elasticsearch on macOS with Homebrew | Elasticsearch Reference [7.8] | Elastic に載っている通りに実施する。

$ brew tap elastic/tap
$ brew install elastic/tap/elasticsearch-full

設定ファイルの用意

今回は設定ファイルを置くディレクトリを任意の場所に用意する。

$ mkdir elasticsearch
$ cd elasticsearch

デフォルトの設定ファイルから最低限必要なものをコピーする。

  • elasticsearch.yml: Elasticsearch の設定ファイル
  • jvm.options: JVM の設定ファイル
  • log4j2.properties: ログ出力の設定ファイル
$ cp /usr/local/etc/elasticsearch/elasticsearch.yml .
$ cp /usr/local/etc/elasticsearch/jvm.options .
$ cp /usr/local/etc/elasticsearch/log4j2.properties .

elasticsearch.yml の内容を以下のように書き換える。

elasticsearch.yml
cluster:
  name: mycluster
node:
  name: mynode
network:
  host: localhost
path:
  data: /usr/local/var/lib/elasticsearch/
  logs: /usr/local/var/log/elasticsearch/

Elasticsearch の起動

設定ファイルを置いたディレクトリを環境変数 ES_PATH_CONF に指定する。

$ export ES_PATH_CONF=/Users/foo/elasticsearch

elasticsearch コマンドで起動する。

$ elasticsearch

他のターミナルから curl で Elasticsearch にアクセスして起動していることを確認する。

$ curl http://localhost:9200/
{
  "name" : "mynode",
  "cluster_name" : "mycluster",
  "cluster_uuid" : "XXXXXXXXXXXXXXXXXXXXXX",
  "version" : {
    "number" : "7.8.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65",
    "build_date" : "2020-06-14T19:35:50.234439Z",
    "build_snapshot" : false,
    "lucene_version" : "8.5.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Elasticsearch の REST API

Elasticsearch には管理・操作するための REST API が用意されている。
今回は curl で REST API をコールすることでデータの追加や検索を行う。

REST APIs | Elasticsearch Reference [7.8] | Elastic

インデックスの作成

データを入れる器となるインデックスを作成する。
インデックスはリレーショナルデータベースにおけるテーブルに近い概念となる。

HTTP PUT でインデックスを作成できる。

Create index API | Elasticsearch Reference [7.8] | Elastic

PUT /<index>

ここでは foo_index というインデックスを作成する。
pretty パラメータを付けることでレスポンスの JSON が見やすく整形される。

$ curl --include -XPUT "http://localhost:9200/foo_index?pretty"
HTTP/1.1 200 OK
content-type: application/json; charset=UTF-8
content-length: 85

{
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "index" : "foo_index"
}

HTTP GET で作成したインデックスを確認できる。

Get index API | Elasticsearch Reference [7.8] | Elastic

GET /<index>

foo_index インデックスの情報を取得する。

$ curl --include -XGET "http://localhost:9200/foo_index?pretty"
HTTP/1.1 200 OK
content-type: application/json; charset=UTF-8
content-length: 379

{
  "foo_index" : {
    "aliases" : { },
    "mappings" : { },
    "settings" : {
      "index" : {
        "creation_date" : "1595771960816",
        "number_of_shards" : "1",
        "number_of_replicas" : "1",
        "uuid" : "D7t0dUBPSqKKyvw5Z7eujw",
        "version" : {
          "created" : "7080099"
        },
        "provided_name" : "foo_index"
      }
    }
  }
}

ドキュメントの追加

ドキュメントはリレーショナルデータベースにおけるレコードに近い概念となる。
ドキュメントは JSON フォーマットで表される。

HTTP POST でドキュメントを追加できる。

Index API | Elasticsearch Reference [7.8] | Elastic

POST /<index>/_doc/

ここでは foo_user と foo_message というフィールドを持つドキュメントを登録する。
ドキュメントの ID は自動で生成される(ID を指定することも可能)。今回は「9xNyi3MBhHaU2qi75ayU」というIDが生成された。

$ curl --include -XPOST "http://localhost:9200/foo_index/_doc?pretty" \
-H 'Content-Type: application/json' \
-d '{
  "foo_user": "Alice",
  "foo_message": "The night was young, and so was he. But the night was sweet, and he was sour."
}'
HTTP/1.1 201 Created
Location: /foo_index/_doc/9xNyi3MBhHaU2qi75ayU
content-type: application/json; charset=UTF-8
content-length: 242

{
  "_index" : "foo_index",
  "_type" : "_doc",
  "_id" : "9xNyi3MBhHaU2qi75ayU",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 2,
  "_primary_term" : 1
}

HTTP GET で追加したドキュメントを確認できる。

Get API | Elasticsearch Reference [7.8] | Elastic

GET <index>/_doc/<_id>

ID を指定してドキュメントの情報を取得する。

$ curl --include -XGET "http://localhost:9200/foo_index/_doc/9xNyi3MBhHaU2qi75ayU?pretty"
HTTP/1.1 200 OK
content-type: application/json; charset=UTF-8
content-length: 306

{
  "_index" : "foo_index",
  "_type" : "_doc",
  "_id" : "9xNyi3MBhHaU2qi75ayU",
  "_version" : 1,
  "_seq_no" : 2,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "foo_user" : "Alice",
    "foo_message" : "The night was young, and so was he. But the night was sweet, and he was sour."
  }
}

同様に2つ目のドキュメントも追加しておく。

$ curl --include -XPOST "http://localhost:9200/foo_index/_doc?pretty" \
-H 'Content-Type: application/json' \
-d '{
  "foo_user": "ボブ",
  "foo_message": "夜は若く、彼も若かった。が、夜の空気は甘いのに、彼の気分は苦かった。"
}'
HTTP/1.1 201 Created
Location: /foo_index/_doc/-BNzi3MBhHaU2qi7EazP
content-type: application/json; charset=UTF-8
content-length: 242

{
  "_index" : "foo_index",
  "_type" : "_doc",
  "_id" : "-BNzi3MBhHaU2qi7EazP",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 3,
  "_primary_term" : 1
}

データの全文検索

Elasticsearch のクエリ DSL でドキュメントを検索することができる。

Query DSL | Elasticsearch Reference [7.8] | Elastic

クエリ DSL には JSON フォーマットで検索条件を指定する。

Match query | Elasticsearch Reference [7.8] | Elastic

GET /_search
{
  "query": {
    "match": {
      "message": {
        "query": "this is a test"
      }
    }
  }
}

ここでは foo_message フィールドに「夜の空気」が含まれるドキュメントを検索するクエリを実行する。

$ curl --include -XGET "http://localhost:9200/foo_index/_search?pretty" \
-H 'Content-Type: application/json' \
-d '
{
  "query": {
    "match": {
      "foo_message": "夜の空気"
    }
  }
}'
HTTP/1.1 200 OK
content-type: application/json; charset=UTF-8
content-length: 611

{
  "took" : 16,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 1,
      "relation" : "eq"
    },
    "max_score" : 3.4337347,
    "hits" : [
      {
        "_index" : "foo_index",
        "_type" : "_doc",
        "_id" : "-BNzi3MBhHaU2qi7EazP",
        "_score" : 3.4337347,
        "_source" : {
          "foo_user" : "ボブ",
          "foo_message" : "夜は若く、彼も若かった。が、夜の空気は甘いのに、彼の気分は苦かった。"
        }
      }
    ]
  }
}

REST API によるインデックスの操作例

Index APIs | Elasticsearch Reference [7.8] | Elastic

REST API を利用して curl でインデックスを操作する例を挙げる。

インデックスの作成

Create index API | Elasticsearch Reference [7.8] | Elastic

$ curl -XPUT http://localhost:9200/foo_index

インデックスの削除

Delete index API | Elasticsearch Reference [7.8] | Elastic

$ curl -XDELETE http://localhost:9200/foo_index

インデックス一覧の取得

cat APIs | Elasticsearch Reference [7.8] | Elastic

$ curl -XGET "http://localhost:9200/_cat/indices?format=json"

REST API によるドキュメントの操作例

Document APIs | Elasticsearch Reference [7.8] | Elastic

REST API を利用して curl でドキュメントを操作する例を挙げる。

ドキュメントの追加

Index API | Elasticsearch Reference [7.8] | Elastic

$ curl -XPOST http://localhost:9200/foo_index/_doc \
-H 'Content-Type: application/json' \
-d '{"foo_user": "Carol", "foo_message": "Hello, world."}'

ドキュメントの取得

Get API | Elasticsearch Reference [7.8] | Elastic

$ curl -XGET http://localhost:9200/foo_index/_doc/XXXXXXXXXXXXXXXXXXXX

ドキュメントの更新

Update API | Elasticsearch Reference [7.8] | Elastic

$ curl -XPUT http://localhost:9200/foo_index/_doc/XXXXXXXXXXXXXXXXXXXX \
-H 'Content-Type: application/json' \
-d '{"foo_user": "Carol", "foo_message": "Goodbye, world."}'

ドキュメントの削除

Delete API | Elasticsearch Reference [7.8] | Elastic

$ curl -XDELETE http://localhost:9200/foo_index/_doc/XXXXXXXXXXXXXXXXXXXX

ドキュメント数の取得

Count API | Elasticsearch Reference [7.8] | Elastic

$ curl -XGET http://localhost:9200/foo_index/_count

ドキュメントの検索

Query DSL | Elasticsearch Reference [7.8] | Elastic
Match query | Elasticsearch Reference [7.8] | Elastic

$ curl -XGET http://localhost:9200/foo_index/_search \
-H 'Content-Type: application/json' \
-d '
{
  "query": {
    "match": {
      "foo_message": "夜"
    }
  }
}'

参考資料

Homebrew による Elasticsearch のインストール

Elasticsearch の REST API

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

localhost の Tomcat9 (Java11) で必要なポート 8080 はすでに使用中です

注意:Macユーザーです

Eclipse内でTomcatを使用し、jspやサーブレットを接続するとき、

不用意に開きすぎたサーバーのポート番号の競合などにより、

任意のポート番号へ接続できない時がある。

解決法

まずは、ターミナルでオープンされているファイルのネットワークソケットを表示させる。

$ Isof -i:8080

Isofコマンド -> オープンしているファイルを一覧表示させる
-iオプション -> ネットワークソケットを対象とする

COMMAND   PID      USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
     ⚪️⚪️⚪️⚪️⚪️

PIDの下に表示された数字を確認する。

killコマンドで実行中のプロセスを終了させる。

$ kill ⚪️⚪️⚪️⚪️⚪️

サーバーを再起動させて、接続完了!!

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