neovim (vim) のヘルプコマンドの走り書き その1

https://neovim.io/doc/user/helphelp.html#helphelp 引数なしで :help コマンドを打つと helpfile オプションで指定されたファイルが開く。 通常は help.txt が開くと思う。 以下のコマンドで helpfile オプションの値を確認できる。 :set helpfile? オプシ…

Clojure Leiningen その5

テスト lein test コマンドでテストを実行。 例。 vagrant@ubuntu2204:~/source/temp$ lein test lein test temp.core-test lein test :only temp.core-test/a-test FAIL in (a-test) (core_test.clj:7) FIXME, I fail. expected: (= 0 1) actual: (not (= 0…

Clojure Leiningen その4

コードの実行 https://codeberg.org/leiningen/leiningen/src/branch/stable/doc/TUTORIAL.md#running-code REPLを実行するには lein repl を使う。 REPLを上記のコマンドで実行すると、プロジェクトのコンテキストと共にコードを実行する対話型プロンプトが…

Clojure Leiningen その3

ライブラリの検索について https://codeberg.org/leiningen/leiningen/src/branch/stable/doc/TUTORIAL.md#dependencies leinでclojarsの検索ができる。 Maven Centralの検索もできる。 検索をするには lein search $TERM コマンドを使う。 clj-http の検索…

Clojure Leiningen その2

ディレクトリレイアウト https://codeberg.org/leiningen/leiningen/src/branch/stable/doc/TUTORIAL.md#directory-layout デフォルトで作成されるディレクトリレイアウトの場合 src と test が直下に存在してます。このレイアウトはMavenとは違いますね。 …

Clojure Leiningen その1

Clojureを書くにあたって、Leiningenを調べて、触って、みようと思いまして。 https://leiningen.org/ DeepL先生に和訳をお願いしたところ、ライニンゲンと出てきました。どういう意味なんだろう?読み方は合っているのか? (Leiningenはちと長いんで、lein…

clojureからJavaを使う

clojureでJavaの呼び出し方を調べたのでそのメモです。 使用するJavaクラスをインポートするには、 import フォームを使います。 https://clojuredocs.org/clojure.core/import user=> (import '(java.io File)) java.io.File パッケージ名とクラス名の間に…

vagrant(virtualbox)でclojureの開発環境を構築する

シゴトでclojureを使うので自宅のPCにclojureを叩くための環境を整えます。 バージョン VirtualBox バージョン 6.1.40 r154048 Vagrant Installed Version: 2.3.0 vagrantでubuntuを立てる vagrantの設定ファイルは次のようにしました。 Vagrant.configure("…

fish shell を導入してみた

先日、Vagrant+Ubuntuで環境構築したのですが、今回はそこにfish shellを導入してみました。 fish shell とは https://fishshell.com/ 雑に一言でいうと、ユーザーフレンドリーなインタラクティブシェルです。公式ページでは次のような特徴があることが確認…

Ubuntuにelasticsearchをインストール、セットアップする

Vagrantで立てたUbuntuにelasticsearchをインストール、セットアップしてみようと思います。 デスクトップPC(windows)をゲーミング用で一台所有してるんですが、こちらプログラミング趣味用としても使いたいなと。ゲームパフォーマンスに影響が出るのでホス…

termクエリを使ってみる

そう言えば、elasticsearch勉強したことあるけれど、あまり検索にフォーカスしていなかったなっと思いました。mappingとか、indexとかその辺りの事中心だった気がします。(もう忘れたけれど) term って和訳すると、「用語」「言葉」って言うらしいです。 t…

JavaのComparatorを使ってソートする

Comparatorを使ってソートする方法について、触ってみました。 Comparator (Java Platform SE 8) Comparatorはその名の通り、あるオブジェクト同士を比較する役割を持っています。Comparatorは導入されたのが1.2ですが、FunctionalInterfaceアノテーションが…

Writing in progress: Quorum(定足数)による決定

Quorum-based decision making Quorum-based decision making | Elasticsearch Guide [8.1] | Elastic master-eligible nodeの基本的なタスクは次の二つ。 master nodeの選出 cluster状態の変更 この二つのタスクは例えいくつかのノードが使用不能になったと…

Elasticsearchでcat shards APIを使いshardがどこのnodeに割り当てられているかを確認する

Elasticsearchでshardがcluster内のどこのnodeに属しているか確認したいと思うことがあったので、表示方法を調べてみました。 Elasticsearchに対するREST APIは以下のドキュメントから調べることができます。 REST APIs | Elasticsearch Guide [8.1] | Elast…

Logstashを使用してApacheのログをElasticsearchに取り込んでみた

elasticの公式リポジトリにサンプルデータがいくつも存在しており、この中にApacheのアクセスログがあるので、これをLogstashを使ってElasticsearchに取り込んでみました。 サンプルデータのリポジトリ GitHub - elastic/examples: Home for Elasticsearch e…

スナップショットとリストアをやってみる

RDBと同じようにデータのバックアップとリストアをやってみました。 次のdocker-compose.ymlを使って環境構築しています。 version: '3.9' services: es01: image: docker.elastic.co/elasticsearch/elasticsearch:8.0.0 ports: - 9200:9200 - 9300:9300 env…

BucketとMetricsを使ってみる

Bucket と Metrics を使って、検索ではなくドキュメントの情報を分析できるようです。 Bucket と Metrics はどちらも、Aggregation と言われるものの一部みたいですね。 https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregatio…

全インデックスをリストで取得する方法

こちらにやり方が書いてありました。 cat indices API | Elasticsearch Guide [8.0] | Elastic 次のHTTPリクエストで、取得できます。 GET /_cat/indices // レスポンス [ { "health": "green", "status": "open", "index": ".geoip_databases", "uuid": "eH…

dynamic templateを使うと動的に追加されるフィールドのmappingを指定できる

サマリ dynamic templateを使えば、mappingを動的に決められます。 決め方は次の3つがあります。 match_mapping_type:デフォルトのmappingをもとに、mappingを割り当てます。 match , unmatch:フィールド名から、mappingを割り当てます。 path_match , pat…

Elasticsearchのcomponent templateは左から順に適用される

サマリ component templateは、index templateに配列で指定されますが、左から順に適用されます。 適用の動作は各フィールドを合成するイメージです。重複するフィールドの場合は値が上書きされ、重複するフィールドが無ければ追加されます。 https://www.el…

Elasticsearchのインデックステンプレートのpriorityで優先度を変えてみる

重複した内容のインデックステンプレートを作成する場合について、少しだけ調べてみました。 サマリ priorityで設定された値が大きいものが、適用されます。 https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-template.html 環…

Elasticsearchのindex templateを試す

index templateを使うと、インデックスの各種設定値をあらかじめ決めておくことができます。 https://www.elastic.co/guide/en/elasticsearch/reference/current/index-templates.html index templateは、複数のcomposed templateを含めることができます。co…

Elasticsearchのクラスタ構成を試す

クラスタを組んでみます。 ノードは3つで、それぞれをmaster-eligable、data、Ingestの役割を割り当ててみます。 Node | Elasticsearch Guide [7.16] | Elastic 環境はdocker-composeを使いました。 $ docker-compose --version docker-compose version 1.29…

Qodanaを試す

JetBrains製の静的解析ツールが出ていたので、試してみました。 今の所、以下の言語に対応しているみたいです。Java以外はEAPなんですね。 Java PHP (EAP) Python (EAP) JavaScript (EAP) 今回はJavaで試します。 Qodana for JVM Qodana for JVM はサーバー…

maven-resources-pluginのエンコーディングの警告に対処する

プロジェクトをビルドしていたらふと気になったので。 こんな警告が出ていました。 [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ direct-core --- [WARNING] Using platform encoding (UTF-8 actually) to copy filtered resourc…

MavenのArchetypesについて

MavenのArchetypesについて書いたつもりで書いていなかったので、書きます この手の内容はよく忘れるので腰を据えてブログに書かないと覚えられない... ドキュメントはこちら Introduction to Archetypes Maven Archetype Plugin Goals archetype:generate …

ServletContextの初期化を捉える

ServletContext 公式の説明 https://jakarta.ee/specifications/servlet/5.0/jakarta-servlet-spec-5.0.html#servlet-context 簡単にまとめてみると サーブレットから、ウェブアプリケーション全体へのアクセス手段を提供するインターフェイス 例えば、リソ…

Ubuntu でキーマップを変更する

普段使用しているUbuntuのキーボードの設定を変えようと思いまして、その記録です やりたいことは、JIS配列キーボードのスペースキー左右にある「英語」、「かな」キーを押して、ローマ字入力、日本語入力を切り替えるようにすること 手元のキーボードだと「…

Jakarta Servlet 5.0 のFilterを使ってみる

フィルターについて調べてみます。 公式のドキュメントはこれ https://jakarta.ee/specifications/servlet/5.0/jakarta-servlet-spec-5.0.html#filtering ざっくりとフィルターとは何かというと Servlet にリクエストが到達する、またはレスポンスがクライア…

Jakarta Servlet 5.0 リクエスト処理時の例外

Servlet がリクエストを処理中に例外をスローするとどうなるのか? 仕様ではこちらで言及されている模様 https://jakarta.ee/specifications/servlet/5.0/jakarta-servlet-spec-5.0.html#exceptions-during-request-handling 内容としては Servlet はリクエ…