- 投稿日:2020-07-27T21:34:50+09:00
【Mac】MacのWiFiを設定する
MacOSをインターネットにつなげる
とにもかくにもインターネットにつなげないと何もできないので、さっそく繋げてみます。
WiFiを設定する
最近はスマホでも同じようなことをよく実施するので、あまり難しさはないですね。
のマークをのマークにすればよいのですから。
- グレーアウトされているWiFiの扇マークをクリックして周辺にあるWiFiのリストを表示する
- 自分が認識しているSSIDを選択する
- WiFiのパスワード入力画面が表示されるので、パスワードを入力して接続ボタンをクリックする
- 正常に接続ができればグレーアウトされたWiFiの扇マークが着色される
接続確認を行う
とりあえずWebページをつなげることで接続確認はできますね。
あれ?Webブラウザどれだっけ・・・?あぁ、Safariか・・・。無事、Appleのホームページが表示できることを確認しました。
お疲れ様でした。
2020-07-27 初稿
- 投稿日:2020-07-27T20:36:08+09:00
【Mac】Macの時計のズレを修正する
MacOSの時計がずれている
デスクトップの時間がずれていることに気づく。
気づいたときは20時前なのにデスクトップでは4時前とか記載されている。MacOSの時計のズレを修正する
まだインターネットにもつなげてないので時刻同期はされていないのだろうけど、極端すぎる。
環境設定が根本的におかしいのだろうとあたりをつけて設定変更してみます。環境設定を確認する
時計の部分をクリックして表示されたメニューの["日付と時刻"環境設定を開く]をクリックする。
見事にアメリカ合衆国の設定になってますね・・・。
環境設定を変更する
直感的な画面なので変更してみます。
ロックを解除する
- 画面左下の[変更するにはカギをクリックします。]をクリックする
- ロック解除のためユーザーIDとパスワードを入力して[ロックを解除]ボタンをクリックします。
エリアを変更する
- 日本の時間にしてほしいわけなので、[日付と時刻を自動的に設定]の選択をアジアを選択する
でも、まだ時刻が期待した通りにならない。
時間帯を変更する
[時間帯]のタブもあるので表示してみると、こちらの方が詳細に表示されています。
- [現在の位置情報に基づいて、時間帯を自動的に設定]のチェックボックスを外す
- 画面中央の地図で日本あたりをクリックする
- [最も近い都市]の選択で近しい都市を選ぶ
状態を確認して再び施錠する
[日付と時刻]のタブに戻って時間の状態を確認してみます。
うまくいきましたね!!!
[変更できないようにするにはカギをクリックします。]をクリックして再度施錠する。できました。
お疲れ様でした。
2020-07-27 初稿
- 投稿日:2020-07-27T18:00:44+09:00
【Mac】Macでスクリーンショットを取得する
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 初稿
- 投稿日:2020-07-27T17:44:16+09:00
【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は何がよいのかわかっていないので気にせず。コンテンツ
少しずつ増やしていきます。
- 【Mac】Macでスクリーンショットを取得する (2020-07-27追加)
- 【Mac】Macの時計のズレを修正する (2020-07-27追加)
- 【Mac】MacのWiFiを設定する (2020-07-27追加)
2020-07-27 初稿
2020-07-27 「【Mac】Macでスクリーンショットを取得する」を追加しました
2020-07-27 「【Mac】Macの時計のズレを修正する」を追加しました
2020-07-27 「【Mac】MacのWiFiを設定する」を追加しました
- 投稿日:2020-07-27T11:02:10+09:00
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 の長さが伸びることがある。
- 投稿日:2020-07-27T09:09:31+09:00
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.ymlcluster: 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/elasticsearchelasticsearch コマンドで起動する。
$ 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 のインストール
- macOS向けに、オフィシャル版Elastic Homebrewタップをリリース | Elastic Blog
- Install Elasticsearch on macOS with Homebrew | Elasticsearch Reference [7.8] | Elastic
- Configuring Elasticsearch | Elasticsearch Reference [7.8] | Elastic
- GitHub - elastic/homebrew-tap: Homebrew tap for the Elastic Stack
- elasticsearch — Homebrew Formulae
Elasticsearch の REST API
- 投稿日:2020-07-27T00:10:04+09:00
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 ⚪️⚪️⚪️⚪️⚪️サーバーを再起動させて、接続完了!!