Category:

Elasticsearchの使い方

業務で Elasticsearch を触ることになったので、多少今更感ありますが、環境構築・データ登録・マッピング定義・検索など、一通りのユースケースを試してみようと思います。 環境構築 以下のドキュメントを元に、Dockerを使ってElasticsearchをインストールしようと思います。 https://www.elastic.co/guide/en/elasticsearch/reference/7.11/docker.html docker-compose.ymlを作成 まずは、docker-compose.ymlを作成します。 とりあえずはドキュメントの内容をそのままコピーでOKだと思います。 version: '2.2' services: es01: image: docker.elastic.co/elasticsearch/elasticsearch: Continue Reading

Posted On :
Category:

log sequence number is in the future

Docker Desktop for Mac でWordPressを動かしているのですが、ある日データベース(mysql)が壊れてWordPressを起動するとlog sequence number is in the futureエラーが発生するようになってしまいました。 またいつか発生しそうな予感がするので、対応方法をメモしておきます。 エラー詳細 WordPressの画面にアクセスしようとすると、mysqlのDockerコンテナが再起動してしまいます。画面上は以下のように表示されます。 Dockerコンテナのログを確認したところ、以下のエラーが出力されていました。 [ERROR] InnoDB: Page [page id: space=63, page number=406] log sequence number 289034868 is in the future! Curre Continue Reading

Posted On :

WordPressサイトにHTMLとJSでソーシャルボタンを追加

WordPressで作成しHTML化してFirebaseHostingしている本サイトに、HTMLとJavaScriptで以下のソーシャルボタンを追加しました。 はてなブックマーク はてなスター Pocket Twitter コードの埋め込み方法 WordPressなのでphpを直接修正しても良いのですが、どこを修正したか分からなくなりがちなので、Insert Headers And Footersというプラグインを使ってHTMLを埋め込むことにしました。 このプラグインは、<head>の最後・<body>の最初・<body>の最後、のいずれかの場所にHTMLコードを差し込むことができる、とてもシンプルなプラグインです。 これを使って、<body>の最後に取得したコードを埋め込みました。 はてなブックマーク https://b.hatena. Continue Reading

Posted On :
Category:

amChartsでタグクラウド作成

とある母集団文書に含まれる単語頻度を可視化する目的で、タグクラウドをブラウザ上でJavaScriptで作成できないかを調べました。 タグクラウド(ワードクラウド)とは WikiPedia には以下のように記載されています。 タグ・クラウド (tag cloud、 ワードクラウド 、またはビジュアルデザインの重み付きリスト )はタグの視覚的記述を指す。テキストデータの斬新な視覚表現であり、通常はWebサイトでキーワードメタデータ(タグ)を描写したり、自由形式のテキストを視覚化するが、通常タグは単一の単語であり、各タグの重要性はフォントサイズまたは色で示される。 以下のようなやつです(画像もWikiPediaから拝借しました)。 文字の大きさや色から単語の重要度を視覚的に捉えることができます。 候補ライブラリ ある程度見た目が綺麗で、人気がありそうな物をピックアップしました。 amCharts Continue Reading

Posted On :
Category:

LambdaTestでローカルサイトをクロスブラウザテスト

ローカルPC上やプライベートネットワーク上でホストしているWebサイトを、インターネット上に公開する前にクロスブラウザテストする目的で LambdaTest を試してみました。 提供されている機能 以下のような機能が紹介されていました。 Real Time Testing 様々なデスクトップ&モバイルブラウザで、実際に動かしながらクロスブラウザ互換性テストを行うことができる Automated Testing クラウドサービス Selenium Grid を使って、2000以上のデスクトップ&モバイルブラウザで自動テストを行うことができる Automated Screenshot ワンクリックで複数のブラウザのスクリーンショットを取ることができる LT Brower 45以上の異なるサイズのビューポートで、Webサイトを動作確認するための次世代ブラウザ LT Browser上でレス Continue Reading

Posted On :
Category:

静的サイトにGoogleカスタム検索ボックスを追加

WordPressで作ったサイトをそのまま公開する場合は、サイト内検索機能が付いていますが、静的ファイル変換してホスティングしている場合は、検索機能が使えません。 そのため、Googleのカスタム検索ボックスを追加することにしました。 新しい検索エンジンを作成 こちらから作成します。 rinoguchi.net/* を指定したので、サイト内の全てのページが検索対象 作成完了画面で「コードを取得」をクリックすると、コードが表示される。 このコードを、検索ボックスを配置したい場所に貼り付けてあげるだけで、サイト内検索が動きます。 検索ボックスの設置 WordPress で構築したサイトをFirebase Hosting で紹介しているように、WordPressでサイトを作っているので、ウィジェットでサイドバーに表示するようにしてみようと思います。 外観 > ウィジェット > カスタ Continue Reading

Posted On :
Category:

Firebase Hosting に Google Analyticsを導入

Firebase Hosting で公開しているこのブログに Google Analytics を導入する手順を紹介します。 Firebaseのドキュメント を元に対応していこうと思います。 Google Analyticsを有効化 Firebase管理画面で、⚙ > 統合 > Google Analytics と辿って、Google Analyticsを有効化します。 Firebaseのマイアプリ追加 Firebase管理画面で、⚙ > 全般 > マイアプリ と辿って、Webアプリを追加します。 設定は適宜入力していけば良いです。 設定の途中で、以下のようなスクリプトを自分のWebサイトのタグの下部に貼り付けるように言われます。 一旦コードをコピーして作業を完了させます。 WordPress側にスクリプトを追加 WordPressを利用している場合、Insert Continue Reading

Posted On :
Category:

WordPress で構築したサイトをFirebase Hosting

年明けに思い立って、 はてブロ をやめて新しく個人ブログを立ち上げることにしました。 初投稿はこのブログの仕組みについて紹介したいと思います。 動機 12月のGoogle検索のアルゴリズムアップデートではてブロ上の個人ブログのPV数が3〜4割程度落ちました。 ブログ開設以来順調に伸びていたPV数が初めて落ち込んだので、何か対策をしたくなったのですが、コンテンツ自体は変える気が起きないので、以下の点を改善しようと考えました。 改善点1: ページの表示速度 現状の表示速度は PageSpeed Insights で確認すると以下の通りでした。 PC mobile また、提案された主な改善事項は以下の通りです。 使用していない JavaScript の削除 JavaScript の最小化 使用していない CSS を削除してください 最初のサーバー応答時間を速くしてみてください はてブロProであ Continue Reading

Posted On :
Category:

「実践ドメイン駆動設計」から学ぶDDDの実装入門の読了メモ

これは ドメイン駆動設計 Advent Calendar 2020 の16日目の記事です。 「実践ドメイン駆動設計」から学ぶDDDの実装入門 を輪読会で読了したので、内容を箇条書きでメモしておきます。 個人的解釈を多分に含むため、導入する際には実際に書籍を読んで判断してもらえればと思います。 1. 「DDDへの誘い」〜ドメイン駆動設計のメリットと始め方〜 DDDとは DDDとは 「高品質」のソフトウェアを設計する手法 「高品質」とは、ビジネス的にも成功していること言うこと 「事業を理解し、チームの知識を一つにまとめること」を重視し、「ユビキタス言語」というチーム内の共通語でプログラムを実装する DDDのメリット プログラマとドメインエキスパートが「共通言語」で視点を合わせて会話する=>顧客視点に繋がる チームで業務知識を共有し、理想像を追求できる 「設計=コード」を実現し、実装時の課 Continue Reading

Posted On :

pyppeteerでファイルをダウンロード

昨日、puppeteerでファイルをダウンロードする という記事を書いたのですが、puppeteerのpythonに移植した pyppeteer で同じようにファイルダウンロードをやってみました。 pyppeteer自体の使い方は以前記事を書いてるので、そちらをご覧ください。 pyppeteerの使い方 実装 puppeteerで試した中で一番筋が良さそうだった「ダウンロードのrequestをキャプチャして、同じ内容で別途requestを送信する」という方法を実装してみました。 from typing import Union, List, Dict import asyncio from uuid import uuid4 from mimetypes import guess_extension from pyppeteer.launcher import launch from py Continue Reading

Posted On :