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

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

Excelのワークシートを名前順で並び替える

数百のワークシートがあるExcelを扱う機会があったのですが、目的のシートを見つけづらいので名前順でワークシートを並び替えようとしました。 しかし、Excelにはワークシートを名前順で並び替える機能はないんですね。 結局VBA(Visual Basic for Applicatio…

Go言語の Generics は自分には関係ないと思っていたが必須だった

Go言語のバージョン1.18からGenericsが入りました。 自分がGo言語を使う範囲では、汎用的な関数を書くこともないし、関数の記述も長くなるので、Genericsを使うことはないかなと思っていました。 便利な機能が追加されていた とは言え、Genericsを全く知らな…

シェルスクリプトの関数で戻り値を使う

シェルスクリプトを使っていて、スクリプトが長く見づらくなってきたので、関数でまとめようとしました。 しかし、シェルスクリプトの関数の戻り値は、他のプログラム言語の関数の戻り値と違っていて、同じように使うには工夫が必要でした。 ただ、ちょっと…

SQLのウィンドウ関数(分析関数)の覚え方

SQLを学び始めた時、一番分かりにくかったのがウィンドウ関数(分析関数)です。 データベースを、単にデータを出し入れする場所として利用する分には、ウィンドウ関数を使うことは無いのですが、データを分析しようとする場合、あるととても便利な機能です…

Google Cloud Platform でサービスアカウントを使ってREST APIを呼び出す方法

普段GCPの操作は、コマンドラインツールかクライアントライブラリ経由で行えるので、REST APIを直接呼び出すことはありませんでした。 今GCP Batchというサービスを試しているのですが、まだプレビュー段階でコマンドラインツールやクライアントライブラリが…

シェルスクリプトでURLエンコード・デコードする方法

シェルスクリプトでURLエンコード・デーコードする方法メモです。 検索すればやり方は色々見つかります。 https://stackoverflow.com/questions/296536/how-to-urlencode-data-for-curl-command 最初、エンコード・デコード両方ともnkfを使う方法にしたので…

Confluence Cloud で検索結果をソートする方法

Confluence Cloud で検索結果を更新順やタイトル順など、任意の条件でソートする方法です。 Advanced Search Confluenceの右上の検索窓をクリックすると、下に「Confluence の高度な検索」リンクが表示され、リンクをクリックすると、Advanced Searchのペー…

AWS Redshiftで連番・カレンダーテーブルを作る方法

AWS RedshiftからGoogle BigQueryに移行して、ここ数年Redshiftを使っていませんでした。 しかし、ついに従量課金のRedshiftこと、Redshift Serverlessが登場して気になりはじめ、久しぶりに遊び程度ですがRedshiftを使ってみました。 案の定、使い方は完全…

JavaScriptのPromiseは非同期関数だと勘違いしていた

下記の記事を読んで知ったのですが、JavaScriptのPromiseは同期呼び出しされるんですね。 https://zenn.dev/yuhua_shi/articles/331569ef2fe886 Promiseに渡される関数は、非同期関数だと思い込んでました。 以下、自分用にPromise呼び出し順をまとめておき…

BigQueryの定額料金を見積もってみる

Google BigQueryは従量課金で比較的安価なため、今まで料金のことはあまり気にせず使っていました。 ビッグデータ分析は、今まで推測するしかなかった事柄が、実際に数値として出せるようになり画期的でした。 その便利さが周知されるようになると、BigQuery…

Selenium と Playwright の両方を使ってみた感想

WebのクローリングにPuppeteerを使っています。 いつかPuppeteerの使い方をまとめたいなと思っていたのですが、そうこうしている内に月日は流れ、Puppeteerと同様のブラウザ操作ツールとして、Playwrightの名前をよく聞くようになってきました。 ならばいっ…

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のテンプレートを作成し、…