新しいことにはウェルカム

技術 | 電子工作 | ガジェット | ゲーム のメモ書き

Chakra UIでゆるくサイトを作ってみる

Reactでサンプルサイトを作る時など、サイトデザインはあまり深く考えず、有りものの設定を組み合わせて、ササッと手軽に作りたいことがあります。 普段、ReactのUIコンポーネントは、Microsoft Office365で使われている、UI Fabric(現 Fluent UI)を使って…

AWS Amplify + React で必要最小限の認証サイトを作る方法メモ

認証機能付きReactサイトを手軽に作りたかったのですが、都度バックエンドを構築するのが面倒で諦めてました。 しかし、AWS Amplifyを使えば、手軽にバックエンドを構築できるのではと試してみました。 一通り欲しかった機能は試したので、再利用可能なよう…

AWS Amplify のLambda FunctionをTypeScriptで書く方法

AWS AmplifyでLambda Functionを追加すると、JavaScriptで雛形が生成されるので、それをTypeScriptにする方法メモです。 下記ドキュメントを参考にしました。 https://docs.amplify.aws/cli/function/build-options 手順 Functionを追加すると、下記のフォル…

Google Professional Data Engineer認定資格 合格体験記

Google Professional Data Engineer認定資格の試験を受ける機会があり、無事合格できました! Google Professional Data Engineer認定資格に関する情報は少ないので、興味ある方向けに合格体験記を書こうと思います。 Google Professional Data Engineer認定…

GraphQLの使い方メモ

使いたいAPIがGraphQLで書かれていました。今回GraphQLを使うのが初めてだったので、クライアント側からのGraphQLの使い方について、簡単にメモしておこうと思います。 GraphQLとは? GraphQLとは、Facebookが開発したAPIの仕様です。 REST APIと比較して、A…

Googleアナリティクスをもう少しちゃんと使ってみる(Googleデータポータル Data Studio)

Googleアナリティクスは見た目はカッコいいんですけど、難しくて今までちゃんと使ったことはありませんでした。 そんな中、Googleアナリティクスのデータを集計する機会があって、Googleアナリティクスをもう少しちゃんと使ってみる必要がありました。 備忘…

Googleアナリティクスをもう少しちゃんと使ってみる(ディメンション・指標)

Googleアナリティクスは見た目はカッコいいんですけど、難しくて今までちゃんと使ったことはありませんでした。 そんな中、Googleアナリティクスのデータを集計する機会があって、Googleアナリティクスをもう少しちゃんと使ってみる必要がありました。 備忘…

Googleアナリティクスをもう少しちゃんと使ってみる(ユーザー・セッション・閲覧開始・ページビュー)

Googleアナリティクスは、見た目がカッコいいので簡単そうに見えるのですが、いざ使おうとすると意外に分かりにくくて、今までちゃんと使ったことはありませんでした。 そんな中、Googleアナリティクスのデータを集計する機会があって、Googleアナリティクス…

Googleアナリティクスをもう少しちゃんと使ってみる

Googleアナリティクスは、見た目がカッコいいので簡単そうに見えるのですが、いざ使おうとすると意外に分かりにくくて、今までちゃんと使ったことはありませんでした。 そんな中、Googleアナリティクスのデータを集計する機会があって、Googleアナリティクス…

ブラウザだけでVisual Studio Codeを動かしたくて、VSCodeもどきのTheiaを使って、ブラウザ上でコーディング・ターミナルできる環境を構築してみる

複数のPCを使っていて、それぞれのPCに Visual Studio Code(VSCode)をインストールしているのですが、ブラウザ上でVSCodeが使えれば、セットアップ不要でいつでも同じ環境が使えて楽なのになぁと思うことがよくあります。 GitHub Codespacesが正にそういっ…

ブラウザのショートカットキーを無効・変更する方法

普段、プログラムを書くのにVisual Studio Code(VSCode)を使っているのですが、VSCodeを使わずブラウザだけで作業を完結させたくて、最近、ブラウザ上で動くエディタ・開発環境を試しています。 以前、Emacsというエディタを使っていて、そのショートカッ…

KubernetesのDashboardで「Not Found (404) the server could not find the requested resource」とエラーがでた時の対処方法

KubernetesのDashboardにログインしようとすると Not Found (404) the server could not find the requested resource とエラーが出た時の対処方法です。 原因 古いDashboardでは、「namespace」に「kube-system」が使われていましたが、最近のDashboardでは…

WSL1でpuppeteerが動かなくなったのでWSL2に移行してみた話

今までWSL1を使っていて、WSL2が安定してきたら、そのうちWSL2を使ってみようかと考えていたのですが、今回必要に迫られてWSL2に移行しました。 WSL1からWSL2への移行と、それにまつわるDockerやX Serverの設定について、徒然なるままに書こうと思います。 …

VSCodeのTypeScriptのバージョンを変更する

create-react-app app-name --template typescriptで、TypeScriptのReactアプリを作って、VSCodeで編集しようとすると Cannot use JSX unless the '--jsx' flag is provided. ts(17004) というエラーが。 調べたところ、Reactのバージョン17から、TypeScript…

Google Firebase と AWS Amplify の両方を使ってみた感想

思い立ったらサクッとSPAサイトが作れたらいいなぁと思っていたのですが、Reactはちょっとしたサイトを作るにも大掛かりになってしまうので諦めていました。 しかし、最近ReactのRecoilを触り始めたのですが、Recoilを使うと、Reactも随分シンプルに書けるよ…

CloudFormationは、AWS CDKから使うのが正解な気がしてきた

以前、AWS CloudFormationテンプレートを手書きしようとして挫折しました…。 www.kwbtblog.com その時学んだのは、CloudFormationテンプレートは人の手で書く類のものではなく、何かしらのツールを使って生成するものだなと。 そして、そのためのツールが、A…

jqの使い方メモ

シェルスクリプトで、JSONからデータを取り出すのにjqコマンドを使っています。 使い方をよく忘れるので、自分用使い方メモです。 基本 基本動作「標準入力から入力を受け取り、フィルターをかけて、標準出力に出力する」 .は入力値を表す フィルターはパイ…

Facebook公式のReactの状態管理ライブラリRecoilは、Reduxの代わりになりそう

Reactの状態管理はReduxが有名で、大衆迎合主義の自分としては、ご多分に漏れずReduxを使っています。 ただ、Reduxを使っていてしんどいなぁと感じるところがいくつかあります。 1つは、とにかくボイラープレートが多いことです。 ちょっとしたステート(変…

ReactのConcurrent Mode(並列モード)をTypeScriptで使う方法

現時点でまだ正式リリースされていない、ReactのConcurrent ModeをTypeScriptで試す方法のメモです。 型関連でエラーが出ることが多いので、その対処方法をメモ書きとして記載しました。 インストール create-react-appでTypeScriptのテンプレートを作成し、…

JavaScriptでSQLiteを使う方法メモ

JavaScriptでSQLiteを使う方法メモです。 あまり凝ったことはせず、必要最低限の機能に絞ってまとめました。 SQLiteそのものの使い方は割愛しますが、こちらが詳しいのでご参照ください。 インストール パッケージ「sqlite3」を使いました。 npm install sql…

はてなブログのカテゴリーを一元管理してみる

はてなブログで投稿する時にカテゴリーを設定できるのですが、カテゴリーは複数設定できるので、タグみたいなものかなと適当に設定していました。 過去記事を見ることもなさそうだし、であればカテゴリーを使うこともなく、特に困らないかと思っていたのです…

Tableauで「相対日付」と「日付の範囲」を同時に使う方法

追記 今は下記のもっと良い別の方法があるので、こちらを参照ください。 www.kwbtblog.com 時系列グラフの表示範囲の指定UIに 「デフォルトは直近X日を表示し、必要な時にカレンダーで任意の日付を指定できる」 といったものをよく見かけます。 しかし、Tabl…

JavaScriptからGo言語に乗り換えた感想

JavaScript(TypeScript)で書かれたプログラムを、Go言語で書き直しました。 その動機や、書き換えた結果などを書こうと思います。 また、今回Go言語が初めてだったので、Go言語とはどういったものかや、Go言語をやってみた感想なども合わせて書こうと思いま…

ラーメン屋の味玉を作る

子供がラーメン屋の味玉が好きで、家でも食べたいというリクエストがありました。 スーパーで味玉を何種類か買ってきたのですが、そもそもラーメン屋の味ではなかったり、ラーメン屋の味だけど、黄身が固まっていて、あのドロッとした独特感じが再現されてい…

GCPを使って、できるだけ楽してGo言語のgoroutineのリークを監視する

ゴルーチン リーク Go言語はめちゃめちゃ簡単にゴルーチン(スレッドのようなもの)を作れるのが魅力です。 あまりにも簡単なので、あまり深く考えずゴルーチンを生成していたのですが、ゴルーチンはメインフローとは別に切り離されて実行されるので、デッド…

Google Kubernetes Engine(GKE)で、コンテナでエラーが発生したらSlackやメールに通知する方法

GCPのKubernetes(GKE)で、プログラムでエラーが発生したら、Slackやメールなどの外部に通知する方法です。 自分でエラー検知の仕組みを実装しなくても、GCPの設定のみで可能です。 大まかな仕組み プログラムでエラーが発生した時に、プログラムから標準エ…

JavaScriptで同時実行数を指定しつつ並行実行させる方法

沢山のタスクがあって並行処理したいのですが、全てを並行実行させると重くなってしまうので、同時実行数を指定しつつ並行実行させたい時があります。 恥ずかしながらJavaScriptでそれをやる方法を知らず、代案として、処理したいタスクを同時実行数づつに分…

Dockerのpuppeteerが突然動かなくなった

普段Webのクローリングにpuppeteerを使っていて、puppeteerの実行はDockerで行っています。 クロール項目を追加することがあって、プログラムを修正してDockerでビルドして実行したところ、下記のようなエラーが出て動きませんでした。 /node_modules/puppet…

Node.jsのstream(ストリーム)の使い方メモ

データ処理を行う時、ついつい面倒くさくて、全てのデータをメモリに読み込んでから処理しがちです。 データサイズが小さい時は問題ないのですが、巨大なデータを扱う場合は、メモリを大量に消費しますし、1つのデータの読み込みや書き込みが完了するまで、…

TableauのLOD(Level of Detail)の使い方メモ

Tableauは直感的に、マウスのドラッグアンドドロップでグラフが作れるのが魅力ですね。 しかし、エクセルのグラフをTableauに移植しようとした時に、マウス操作だけではうまくグラフが作れない時があります。 そういったグラフは、TableauのLOD(Level of De…