備忘録

備忘録

C++17でstd::mapをforループさせる方法

Ⅰ. はじめに タイトルの通り「C++17でstd::mapをforループさせる方法」です。 Ⅱ. やり方 1. サンプルプログラム std::map<int, int> items; items.insert(std::make_pair(1, 1)); items.insert(std::make_pair(2, 2)); items.insert(std::make_pair(3, 3)); for (const</int,>…

C++でSHA256ハッシュを計算する方法

Ⅰ. はじめに タイトルの通り「C++でSHA256ハッシュを計算する方法」です。 Ⅱ. やり方 1. 必要なパッケージをインストールする vcpkg install botan 2. サンプルプログラムを書く #include <botan/hash.h> // #include <botan/hex.h> #include <botan/base64.h> #include <iostream> std::string sha256(std::string</iostream></botan/base64.h></botan/hex.h></botan/hash.h>…

C#で共有メモリを利用する方法

C#

Ⅰ. はじめに タイトルの通り「C#で共有メモリを利用する方法」です。以下記事の方法でC++でも同じメモリ空間を利用できます。 https://kagasu.hatenablog.com/entry/2017/05/03/003922 Ⅱ. やり方 1. サンプルプログラムを書く [StructLayout(LayoutKind.Sequ…

Playwrightでスクリーンショットを撮る方法

Ⅰ. はじめに タイトルの通り「Playwrightでスクリーンショットを撮る方法」です。 Ⅱ. やり方 1. 必要なパッケージをインストールする npm i -D playwright 2. サンプルプログラムを書く const playwright = require('playwright'); (async () => { const bro…

pproxyを利用してポートごとに利用するproxyサーバを変更する方法

Ⅰ. はじめに タイトルの通り「pproxyを利用してポートごとに利用するproxyサーバを変更する方法」です。 Ⅱ. やり方 1. サンプルプログラム import asyncio import pproxy basePort = 8000 loop = asyncio.get_event_loop() def getProxies(): return [ '10.0…

Postfixで任意のヘッダを削除する方法

Ⅰ. はじめに Ⅱ. 前提条件 Ⅲ. やり方 1. postfix-pcreをインストールする 2. dynamicsmap.cfの設定を確認する 3. Postfixの設定を変更する 4. Postfixを再起動する 実行結果 参考 Ⅰ. はじめに タイトルの通り「Postfixで任意のヘッダを削除する方法」です。 Ⅱ…

PostfixとOpenDKIMを利用してメールサーバを構築する方法

Ⅰ. はじめに Ⅱ. やり方 1. OpenDKIMをインストールする 2. OpenDKIMで利用する秘密鍵と公開鍵を生成する 3. OpenDKIMの設定ファイルを編集する 4. Postfixをインストールする 5. Postfixの設定ファイルを編集する 6. OpenDKIM, Postfixを起動する 7. DNSレコ…

C#で文字列の類似度を求める方法

C#

Ⅰ. はじめに タイトルの通り「C#で文字列の類似度を求める方法」です。 Ⅱ. やり方 1. 必要なパッケージをNuGetからインストールする Install-Package Fastenshtein 2. サンプルプログラムを書く static double GetStringDiffRate(string str1, string str2) …

C#で文字列のレーベンシュタイン距離求める方法

C#

Ⅰ. はじめに タイトルの通り「C#で文字列のレーベンシュタイン距離を求める方法」です。 Ⅱ. やり方 1. 必要なパッケージをNuGetからインストールする Install-Package Fastenshtein 2. サンプルプログラムを書く var levenshteinDistance = Fastenshtein.Lev…

systemdをcron代替として利用する方法

Ⅰ. はじめに タイトルの通り「systemdをcron代替として利用する方法」です。例として「10秒ごとにecho helloを実行する方法」をこの記事で紹介します。 Ⅱ. やり方 1. サービスユニットファイルを作成する /etc/systemd/system/Hello.service [Unit] Descript…

node-fetchでCookieを設定する方法

Ⅰ. はじめに タイトルの通り「node-fetchでCookieを設定する方法」です。 Ⅱ. やり方 1. サンプルプログラムを書く const fetch = require('node-fetch'); (async () => { const url = 'https://google.com' // 初回リクエスト。Set-Cookieレスポンスヘッダを…

C#でWindows 10のOCRを利用する方法

Ⅰ. はじめに タイトルの通り「C#でWindows 10のOCRを利用する方法」です。 Ⅱ. 環境 Windows 10 20H2 .NET 5.0 Ⅱ. やり方 1. csprojを編集してTargetFrameworkを変更する <TargetFramework>net5.0-windows10.0.18362.0</TargetFramework> 2. サンプルプログラムを書く 123.png Program.cs using S…

C#でTesseractを利用する方法

C#

Ⅰ. はじめに タイトルの通り「C#でTesseractを利用する方法」です。 Ⅱ. やり方 1. 必要なパッケージをNuGetからインストールする Install-Package Tesseract -Version 4.1.1 2. 学習済みデータを任意のディレクトリに保存する 例. C:\Tesseract\eng_fast.tra…

node-fetchでproxyを設定する方法

Ⅰ. はじめに タイトルの通り「node-fetchでproxyを設定する方法」です。 Ⅱ. やり方 1. 必要なパッケージをインストールする npm install node-fetch npm install http-proxy-agent npm install https-proxy-agent 2. サンプルプログラムを書く index.js cons…

PHPでワンタイムパスワードを生成する方法

PHP

Ⅰ. はじめに タイトルの通り「PHPでワンタイムパスワードを生成する方法」です。 Ⅱ. やり方 1. サンプルプログラムを書く index.php now(); 実行結果 ワンタイムパスワードの生成に成功した。Authyの値と一致している。 参考 https://…

C#で非同期かつ優先度考慮可能なQueueを利用する方法

C#

Ⅰ. はじめに タイトルの通り「C#で非同期かつ優先度考慮可能なQueueを利用する方法」です。 Ⅱ. やり方 1. 必要なパッケージをNuGetからインストールする Install-Package ConcurrentDataStructures 2. サンプルプログラムを書く ※簡単の為非同期らしい動きは…

Sheets APIを利用してスプレッドシートに値を書き込む方法

Ⅰ. はじめに タイトルの通り「Sheets APIを利用してスプレッドシートに値を書き込む方法」です。 Ⅱ. やり方 1. Google Developers Consoleにアクセスする https://console.developers.google.com/?hl=ja 2. 新しいプロジェクトを作成する 3. ライブラリを選…

Androidの共有ライブラリをAndroid以外のOSで利用する方法

Ⅰ. はじめに Ⅱ. やり方 1. 共有ライブラリのサンプルプログラムを書く 2. 1をコンパイルする 3. 共有ライブラリを利用するサンプルプログラムを書く 実行結果 FAQ Q. unidbgはスレッドセーフですか? Q. Java以外はありますか? 参考 Ⅰ. はじめに AndroidはL…

MariaDBでレプリケーションする方法

Ⅰ. はじめに タイトルの通り「MariaDBでレプリケーションする方法」です。 Ⅱ. やり方 1. Master側の設定を変更する server.cnf [mysqld] server-id = 1 log-bin expire_logs_days = 3 max_binlog_size = 500M 2. Master側のDBをダンプする mysqldump -u root…

C++で正規表現を利用する方法

Ⅰ. はじめに Ⅱ. 1回マッチさせたい場合 サンプルプログラム 実行結果 Ⅲ. 複数マッチさせたい場合 サンプルプログラム 実行結果 Ⅰ. はじめに タイトルの通り「C++で正規表現を利用する方法」です。 Ⅱ. 1回マッチさせたい場合 サンプルプログラム Source.cpp /…

import_moduleを利用したプログラムをPyInstallerを利用して実行ファイルを出力する方法

Ⅰ. はじめに import_moduleを利用したプログラムをPyInstallerで実行ファイルを生成し、実行すると以下のエラーが出力されます。 結論からすると「--hidden-import」オプションを指定する必要があります。 > main.exe Traceback (most recent call last): Fi…

Pythonで実行ファイルを出力する方法

Ⅰ. はじめに タイトルの通り「Pythonで実行ファイルを出力する方法」です。 Ⅱ. やり方 1. サンプルプログラムを書く main.py print("helloworld") 2. PyInstallerをインストールする pip install pyinstaller 3. 実行ファイルを出力する pyinstaller main.py…

Visual Studio 2019のC++/CLIでWindows Formを利用する方法

Ⅰ. はじめに タイトルの通り「Visual Studio 2019のC++/CLIでWindows Formを利用する方法」です。 Ⅱ. やり方 1. Visual Studio インストーラーを起動する 2. v142 ビルド ツール用 C++/CLI サポートをインストールする 3. 新規C++/CLIプロジェクトを作成する…

右クリックメニューの「右に回転」「左に回転」を消す方法

Ⅰ. はじめに タイトルの通り「右クリックメニューの「右に回転」「左に回転」を消す方法」です。 Ⅱ. やり方 1. コマンドプロンプトで以下コマンドを実行する reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\.png\ShellEx\ContextM…

右クリックメニューの「デスクトップの背景として設定」を消す方法

Ⅰ. はじめに タイトルの通り「右クリックメニューの「デスクトップの背景として設定」を消す方法」です。 Ⅱ. やり方 1. コマンドプロンプトで以下コマンドを実行する reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\.png\Shell\se…

mongooseを利用してHTTPサーバを構築する方法

Ⅰ. はじめに タイトルの通り「mongooseを利用してHTTPサーバを構築する方法」です。 Ⅱ. やり方 1. サンプルプログラムを書く #include <iostream> #include <winsock2.h> #pragma comment(lib, "ws2_32.lib") extern "C" { #include <mongoose.h> } static void fn(struct mg_connection* c, in</mongoose.h></winsock2.h></iostream>…

VisualStudioを利用してAndroidで実行可能な実行ファイルをC++で作成する方法

Ⅰ. はじめに タイトルの通り「VisualStudioを利用してAndroidで実行可能な実行ファイルをC++で作成する方法」です。 Ⅱ. やり方 1. Visual Studio Installerを起動する 2. 「C++ によるモバイル開発」をインストールする 3. 「メイクファイル プロジェクト(A…

AndroidStudioを利用してAndroidで実行可能な実行ファイルをC++で作成する方法

Ⅰ. はじめに タイトルの通り「AndroidStudioを利用してAndroidで実行可能な実行ファイルをC++で作成する方法」です。 Ⅱ. やり方 1. 新規Native C++プロジェクトを作成する 2. CMakeLists.txtを編集する $(project_root)/app/src/main/cpp/CMakeLists.txt cma…

C++のHTTPサーバ、HTTPクライアントライブラリ一覧

Ⅰ. はじめに タイトルの通り「C++のHTTPサーバ、HTTPクライアントライブラリ一覧」です。 Ⅱ. 一覧 cpprestsdk HTTP Server/Client C++でHTTP(S)でGET/POSTする(cpprestsdk の使い方) cpprestsdk をビルドしてstatic linkする cpp-httplib HTTP Server/Clie…

Chrome拡張機能でProxy設定情報を取得する方法

Ⅰ. はじめに タイトルの通り「Chrome拡張機能でProxy設定情報を取得する方法」です。 Ⅱ. やり方 1. サンプルプログラムを書く manifest.json { "manifest_version": 2, "name": "ChromeTestExtension", "version": "1.0.0", "background": { "scripts": [ "s…