シェルコマンドでSHA256ハッシュをおこなう

この記事に書いてあること シェルコマンドでSHA256ハッシュをおこなう方法をメモしておきます。 hex形式(16進数)で出力 $ echo -n "abcde12345xyz" | sha256sum | awk '{ print $1 }' 5b4538f8719e2662a2be85365d53d6b583bf06d92dd98cc1d682ecb3b69e977e B…

「クラッシュ・オンリー」設計を読んだ

The Twelve-Factor App (日本語訳)のIX. 廃棄容易性に出てきたcrash-only software(クラッシュ・オンリー・ソフトウェア)を聞いたことがありませんでした。 The Twelve-Factor Appに記載されていたリンク先(Crash-only software: More than meets the e…

AWSの「コンテナ化のためのリアーキテクチャ」を体験しといた

コンテナというかDockerの勉強をしようと思って例のごとく2~3年してないままです。 ちょこちょこDockerの概念とかコマンドは勉強しているものの、 dockerfileを書いたり、開発っぽいことをしたりはできていないです。 今回は、このあとDockerというかコンテ…

記事の画像保管先をGoogle DriveからGyazoに変えた

これまでこのブログやQiitaなどの記事で使っている画像はGoogle Driveに保存し、公開用のリンクをマークダウンに埋め込めるものに変換して利用していました。 先日、いつものどおりに記事を書いてスクショを貼っていたところ、Google Driveから公開している…

AWSからのガイダンス「クラウド設計パターン、アーキテクチャ、実装」を日本語訳した

AWSにクラウドでの設計・デザインパターンに関する記事があったので、読んでみました。 後で読み返すかもと思って日本語の記事も見てみましたが、機械翻訳しかも文がめちゃくちゃだったので日本語訳してみました。 英語のオリジナル記事:Cloud design patte…

2023年に読んだ本と積読になった本、2024年に読みたい本

今月、書ける記事がなさすぎたので(また)お茶を濁す記事を書きます。 年末なので全部ではないけど今年読んだ本と積読になった本、来年読みたい本をまとめることにしました。

MySQLでトランザクション分離レベルを設定してみる(性能とかは知らん)

MySQLのトランザクション分離レベルを変更したときの動作を確認してみました。 ただの動作確認しかしていないので、性能がアップしたとかそういう役に立つような内容は一切書いていない記事です。 確認したことは以下の4つです。 MySQLのデフォルトのトラン…

Gitを使ってnpmパッケージをインストールしてもらうときにビルドを実行させるためにnpm prepareを使う

npmではパッケージのインストール元として公式リポジトリ以外に、別フォルダやGitを選択することができます。 package.jsonのdependenciesを見てみると、以下の例のように、公式のリポジトリの場合にはバージョン番号が書かれており、Gitを用いている場合に…

Amazon Verified PermissionsがGAになったので一応書いておく

2023年6月13日にAmazon Verified Permissionsが一般提供されるようになりました!(もう4ヶ月近くまえですが) 2022年12月にプレビューリリースされ、およそ半年ほどでGAとなったようです。 Amazon Verified Permissions の一般提供を開始 このブログで2回Am…

Linuxでnohupコマンドを使ってバッチ処理(コマンド)を実行し続ける

nohupコマンドを使うことでターミナルを閉じてもバッチ処理(コマンド)を実行し続けることができます。 下のブログ記事が参考になるというか、何なら実行するには充分だと思います。 本記事ではnohupコマンドってなんだ?みたいな自分が疑問に思って調べた…

Cedar(Amazon Verified Permissionsのポリシーのための言語)のチュートリアルを読んだ

Amazon Verified PermissionsとはAWSが提供するアクセス管理サービス(認可エンジンとも)です。 ざっくり言うと、アプリケーションでの操作を許可するか拒否するかを評価してくれます。 Amazon Verified Permissionsについては、以前にカンファレンスの動画…

Node.jsの組み込みモジュールutilを使ってオブジェクトを文字列に変換する(循環参照編)

前に書いた記事の補足、追加で調べた内容です。 s1r-j.hatenablog.com utilモジュールを使って文字列化する場合、オブジェクトのプロパティが自分自身を参照していると[Circular *1]に変換されると書きました。 自分自身を参照しているオブジェクトは、下のm…

Node.jsの組み込みモジュールutilを使ってオブジェクトを文字列に変換する

Node.jsを使っているとき、ログ出力やデバッグのためにオブジェクトを文字列に変換したいことがあります。今回、組み込みモジュールであるutilを使うことで、ちょっと強引ながらオブジェクトを文字列に変える方法を知ったので書き残しておきます。 この記事…

Babelによるトランスパイル前後のクラスをinstanceofで比較するとfalseになる

Node.jsではBabelを使ってトランスパイルをおこなって、どのWebブラウザでも動作するようにしたり、まだ仕様化されていないJavaScriptの機能を使ったりすることがあります。 Babelによってトランスパイルされる前のファイルに存在するクラスとトランスパイル…

Amazon Verified Permissionsのプレビューリリースの動画を見たのでとりあえずまとめてみた

Amazon Verified Permissionsというアクセス管理サービス(認可エンジンとも)が2023年5月現在プレビューで利用することができます。 サービス自体は2022年12月にプレビューリリースされており、今更ですが、紹介している記事を見かけたので自分でも動画を見…

AWS Lambda Node.js 18ではデフォルトのAWS SDKがv3になっている(そしてv2を使い続ける方法)

AWS LambdaのランタイムでNode.js 18を選ぶとAWS SDK for JavaScriptのバージョンが3になっています。 (LambdaのランタイムとしてNode.js 18が利用できるようになったのは2022年11月なのでこの記事は今更過ぎますね。) Lambdaではaws-sdkモジュールが内部…

Node.jsでasync-lockを使った排他制御をおこなう

Node.jsはシングルスレッドで動作するため、スレッドセーフや排他制御については考慮しなくてよいと思っていました。イベントループによって実行される処理は1つだけであり、途中で他のスレッドなどから割り込まれることはないからです。 しかし、実際にはI/…

AWSデベロッパーアソシエイト試験の勉強メモの供養

AWS

AWS Certified Developer - Associateを受験したときに勉強したメモを供養する。 勉強方法 DVA-C02が2023年2月末から始まるけど、多分内容はほぼ同じだとおもう。 ポケットスタディ AWS認定 デベロッパーアソシエイト (アソシエイト試験ポケットスタディ) | …

AWS Systems Manager Parameter StoreとSecrets Managerのどちらを使うべきか

AWS

AWSデベロッパーアソシエイト試験の勉強をしていたときにSystems Manager Parameter StoreとSecrets Managerの問題がでてきて気になったので少し調べてみました。 一番の疑問としては、「何が違うの??」ということでした。 同じ疑問をもった人の良記事やAW…

dotenvで.envファイルから取得した環境変数は文字列型になる

dotenvはNode.jsで利用される環境変数を読み込むためによく使われているライブラリ。 .envファイルに書き込んだ環境変数を読み込んで、JSファイルでprocess.envから取得できるようになります。 簡単な例としては以下のとおりです。 .envファイル MY_ENV=myva…

テキストエディタMeryの設定

Meryというテキストエディタを愛用しているので、設定などを記載しておく。 シンプルなエディタで使いやすい。 Meryについては、公式サイトを参照してほしい。 インストールも公式サイトから実施できる。 設定 ファイルを右クリックしたときに「Meryで開く」…

iOS 16ではiCloudが無効になっているとWebAuthnが使えない

idcon vol.29で聞いた話、iOS16ではiCloud key chainを使えないとFIDOキー(passkey)を作れない、WebAuthnが利用できない。ただし、ローミングキー(ローミング認証器)なら作れる。らしい。 「iCloudが無効化されているとWebAuthnが全部使えなくなるって厳…

TypeDocをGitHub Actions・GitHub Pagesで使ってTypeScriptのドキュメントを作成する

はじめに TypeScriptのモジュールを作っているので、せっかくなのでTypeDocでAPIリファレンスを作成してみた。 この記事の前半ではTypeDocについて軽くまとめた(タグについては個人的に早見表が欲しかったので作成してみた)。 後半ではGitHub ActionsとGit…

AmazonCognitoのBlackbeltを見たのでメモ

Amazon Cognitoをそこそこ勉強しようと思ったので、とりあえずBlack beltの動画を見たので内容をメモしておく。 あと、それだけだとさすがにつまらないので、Cognitoのコンソール画面をスクショして載せておく。 動画で解説されていた機能をどのように使うの…

FIDO Metadata serviceのMetadata Statementのプロパティを勉強する

タイトルの通り、FIDO Metadata serviceのMetadata Statementのプロパティ(Metadata EntryのmetadataStatementプロパティの中身)を勉強する。 この記事は前の記事の続き、というか飛ばした部分について勉強した。 s1r-j.hatenablog.com Metadata Entryのme…

Googleスプレッドシートの内容をSlackに通知する

Googleフォームを使うと簡単にアンケートや問い合わせの入力フォームを作成することができる。 フォームの入力内容はGoogleドライブに作成されるGoogleスプレッドシートに自動的に保存される。 さらに、Googleフォームを使った投稿があったとき、Gmailだけで…

Expressで非同期処理をおこなうミドルウェアの動作を確認する

Expressのミドルウェアの挙動、特に非同期処理をおこなうにエラーが発生した場合の挙動が気になったので試してみた。 ミドルウェアで非同期処理をするのは前処理でデータベースに登録するケース等を想定している。 挙動を確認した実装はGitHubにおいた:node…

sinonのuseFakeTimersはsetTimeoutと一緒に使用できない

Qiitaに書いたのでリンクだけ貼っておく。 sinonのuseFakeTimersはsetTimeoutと一緒に使用できない - Qiita

Web Authentication API 9章 WebAuthn拡張機能の日本語訳

W3CのWebAuthnの仕様書の9章 拡張機能について書かれている部分について、読んだので残しておく。 前にWeb Authentication API 7章 Relying Party処理の日本語訳 - s1r-Jの技術ブログについては日本語訳した。 9 WebAuthn拡張機能 公開鍵クレデンシャルを生…

mkcertを使ってlocalhostをHTTPS化して開発する

以前も同じ内容の記事を書きましたが、auth0のブログにあった方法のほうが便利そうなので、試してみました。 auth0のブログの内容をちょこちょこ翻訳しながら紹介します。 元になったブログ記事はこちら Why and How to Use HTTPS in Your Local Development…