ローカル端末で実行中のフロントエンド/バックエンドアプリの現在日時を変更する

時系列が関係あるような機能の動作確認をする際に、現在日時を変更したくなるケースがありますが、OSの時間を変更するとちょっと怖いです。 ローカル端末上で実行中のアプリだけに日時を変更する方法を記載します。 フロントエンド React.jsやVue.jsなどで作っているWebアプリケーションの日時を変更したいです。 new Date() した際の日時を変更する mockdate というライブラリを使います。 まずは、ライプラリをインストールします。 npm install -D mockdate # or yarn add -D mockdate あとは、main.tsなど、アプリを起動する処理の直前に以下を指定します。 import MockDate from "mockdate"; MockDate.set("2022-06-29 19:30:00" Continue Reading

Posted On :
Category:

Goでwireを使って依存性注入(DI)する

Go では依存性注入(DI)のためのコードを自動生成するツールである wire が良く利用されるようでので、早速導入したいと思います。 チュートリアルを自分が今作っているマイクロブログに当てはめただけです。 DI導入前 導入前は以下のように、自前でインスタンスを生成して引数として渡していました。 func InitializeServer() *controllers.Server { commentRepository := repositories.NewCommentRepositoryImpl() commentUsecase := usecases.NewCommentUsecase(commentRepository) server := controllers.NewServer(commentUsecase) return server } これはこれでシンプルなのですが、 Continue Reading

Posted On :
Category:

oapi-codegenでchi用APIインターフェースを自動生成

Goでマイクロブログを作成中なのですが、OpenAPIで定義したAPIスキーマからoapi-codegenを使ってchi用APIインターフェースを自動出力することにしました。 使うモジュールは以下の二つです。 oapi-codegen v1.11.0 chi v5.0.7 APIスキーマ定義 まずはAPIスキーマをyaml定義します。 VS CodeでOpen API(Swagger) Editorという拡張を入れて編集すると便利です。 以下の二つのAPIの定義を書いてます。 post /comments コメントを新規作成する get /comments コメントを全件取得する api-schema.yamlというyamlファイルを作成しました。 難しい内容ではないので、説明は割愛します。 openapi: "3.0.0" info: version: 1.0.0 t Continue Reading

Posted On :
Category:

MySQLで外部キーが貼れない原因とCharsetについて

MySQLでテーブルの作成はできるけど、外部キーを貼ろうとすると謎のエラーが発生しました。 その原因を調べる上でMySQLのCharsetの設定について多少詳しくなったのでメモっておきます。 外部キーが貼れなかったエラー 今回、新しくテーブルを作って、既存テーブルに対して外部キーを貼ろうとしたところ、エラーが発生してダメでした。 エラーログ エラーログは以下の通りでした。情報が全く足りません。。。 ERROR 1215 (HY000): Cannot add foreign key constraint そのような場合は、以下のSQLを実行することでエラーの詳細を見ることができます。 show engine innodb status; 今回は、以下のログが出力されていました。 2022-05-18 10:27:06 xxx Error in foreign key constraint Continue Reading

Posted On :

AsanaでコードブロックをハイライトするChrome Extensionを作って公開した

残念ながらAsanaでは、コードブロックをハイライトする機能が提供されていませんので作って公開しました。 https://chrome.google.com/webstore/detail/asana-highlighter/lgofbppgpileldekmjbomfdodkhholna こんな感じで動作します。 ソースコードはこちらで公開しています。 https://github.com/rinoguchi/asana_highlighter 動機 現在所属している会社ではチケット管理にAsanaを利用しているのですが、Asanaにはコードブロックをハイライトする機能がありません。 機能開発やテックサポートなどをしていると、ソースコードをAsana上に保存しておきたいケースはそれなりにあり、ソースコードが良い感じにハイライトされてないと頭に入ってきません。とても嫌な感じです。 Asan Continue Reading

Posted On :
Category:

DjangoおよびDRFのチュートリアル

久しぶりに仕事で、pythonを触ることになったのですが、DjangoとDRF(Django Rest Framework)が使われていました。 ソースコードを一見して正直どこで何が行われているのか全くわからなかったので、チュートリアルを見ながら簡単なAPIを作成し、その後、DRFを使ってAPIを作り直してみて、勉強しようと思います。 Python: 3.10.2 Django: 4.0.3 DRF: 3.13.1 作成したソースコードは以下で公開しています。 https://github.com/rinoguchi/django_rest_framework Djangoで投票アプリ構築 まずは、DRFは利用せず素のDjangoのみで、チュートリアルに従って投票(polls)アプリを作ってみたいと思います。 環境構築 poetryを使って環境構築しました。 pythonの仮想環境を作って Continue Reading

Posted On :
Category:

Goのお勉強(環境構築+Tour of Go)

バックエンドのプログラミング言語として、Go言語は今後も含めてはやり続ける印象を持っているのですが、自分自身は以前少しだけ業務で触ったことがあるだけでほとんど経験がないので、Tour of Goをやってみることにしました。 Go言語を書く人をGopherというらしいので、Gopherを名乗れるように頑張っていこうと思います。 実際にやってみたソースコードは、GitHubで公開してます。 https://github.com/rinoguchi/go_toor Goのインストール こちらからダウンロードする方法もあるのですが、複数のプロジェクトで異なるバージョンを使い分けたりすることも考えると、Go自体のバージョン管理を簡単にできる方が良さそうです。 pyenvやnvmのGo版ともいうべきgoenvというものがあるのでそちらでインストールして行きます。このへんを見ながらやってみようと思います Continue Reading

Posted On :

楽天銀行と会計freee連携スクリプト

先日、会計freeeから、以下のような無慈悲なアナウンスがありました。 2月24日(木)以降は、楽天銀行のインターネットバンキングから口座明細データのCSVファイルをダウンロードしfreee会計にアップロードする対応を行っていただく必要があります。 いや、手作業を減らしたくて会計freeeにしたのに、それはないですよfreeeさん、って感じです。 目の前には、以下の三つの選択肢があります。 freeeをやめる 楽天銀行をやめる 手作業を受け入れる どれも選びたくありません。。 よくよく考えると自分はエンジニアなので、第四の選択肢として「スクレイピングして明細を自動で取り込む」ことができそうですので、やってみることにしました。 作るもの Node.jsで、puppeteer を利用して、楽天銀行の個人ビジネス口座の利用明細CSVをダウンロードして、会計freeeの口座情報に明細アップロードす Continue Reading

Posted On :
Category:

Amplify SDK(JavaScript)でCognitoの認証機能を試す

この記事では、Amplify SDK(JavaScript)を使い、Cognitoの認証機能を試してみたいと思います。 ただ、Amplify でアプリを作成したいわけではないので、amplify initなどは使わず、Amplify SDKだけを利用する形で検証してみたいと思います。 これができれば、既存のアプリにCognitoを組み込みたい場合にも都合が良さそうです。 登場人物 今回はホストされたUIは利用せず、UIを自作した上でAPIを直接呼び出して、サインアップ、サインインなどの処理を行います。 Cognito ユーザプール サインアップ画面 コード確認画面 サインイン画面 現在のセッション確認画面 パスワード変更画面 パスワード忘れ画面 ユーザプールを作成 AWSコンソール画面からユーザプールを作成します。 APIの検証が主目的なので、最もシンプルな構成にしようと思います。 1.サ Continue Reading

Posted On :