2023-01-01から1年間の記事一覧

SlackのBlock Kitでリッチなメッセージを構築しよう

Slack の Block Kit という機能の存在を知った。 この機能を活用することで、リッチで読みやすく理解しやすい Slack メッセージを構築することができるそうだ。 やってみる Formatting text for app surfaces | Slack を参考に block を組み合わせてメッセー…

Go ジェネリクスの基礎を学ぶ

Go IT

Go 1.18 でジェネリクスが導入されてからこれまで雰囲気でジェネリクスを使用してきました。 ここらでちゃんと仕様を体に覚え込ませたいと思い立ち、公式の文書を読みつつ手を動かした記録を記事として残すことにしました。 少しずつ理解を深めていく経緯を…

Amazon Aurora カスタムエンドポイント覚書

Amazon Aurora カスタムエンドポイントの仕様がかなり複雑であり、都度都度ドキュメントを参照するのが辛いので要点と気になる点を備忘録として記す。 概要 タイプ メンバー 参考 概要 カスタムエンドポイントは、任意の複数のDBインスタンスに接続するエン…

GitHub で自分が Contribute した PullRequest を探す

今年はいくつかのOSSにコントリビュートしたので、マージされた PullRequest を一覧で見たいなと思い検索方法を調査しました。 PRを一覧で見る https://github.com/pulls へアクセスすることで自分が作成したPRを一覧で取得できます。 OSSへのPRにのみ GitHu…

Go Conference mini 2023 Winter IN KYOTO レポート

Go IT

2023-12-02 に開催された「Go Conference mini 2023 Winter IN KYOTO」にオンライン参加しました。 今回は時間的に余裕があったので、ほとんど全てのセッションを聴くことができました。 本記事は、セッションの中でも特に興味深かったものについて簡単にま…

terraform-aws-providerへコントリビュートした

本記事はZennに投稿した記事の複製です。 先日、terraform-aws-providerにコントリビュートし、大規模?OSSへのコントリビュート経験をGETしました。 マージされた改修は、v5.26.0にて無事リリースされました。 https://github.com/hashicorp/terraform-prov…

Goのruneの最低限知っておいた方が良いかもしれない知識

自分が現時点で思うGoのruneの最低限の知識です。(なお、業務ではrune使ったことない) いつか必要になった時にこれだけは知っておいた方が良いかなーと思って自分用にまとめました。 Unicodeコードポイントを表す Unicodeは、文字コードの規格 文字コードは…

データレイク、データウェアハウス、データマート

数年前に一度調べたが、完全に頭から消えているので再度調べてみた。 データマート 小規模 あるスコープに限定された情報 部門とか データマートの種類 従属型 データウェアハウスのサブセットを保存 データウェアハウスからクエリしたデータを保存するので…

go-sql-driver/mysql の Scan の挙動にハマる

Go の MySQL ドライバーとして go-sql-driver/mysql を使用した際の挙動にハマったので、解決策を記しておきます。 クエリを発行し、取得した整数型の値をany型の値で受け取る際に予期しない結果となることがあります。 package main import ( "database/sql…

MySQL5.7でJSONを行に変換する

val {"Bob": {"A": 10, "B": 5}, "Alice": {"A": 10, "C": 5}} {"Bob": {"D": 10, "E": 5}, "Mike": {"A": 5, "F": 5}} 上記のようなJSON型の値を持った行から下記のような結果を得たいが、MySQL 5.7には JSON_TABLE が実装されていない。 name type val Bob…

MySQL5.7 でも順位を付けたい

MySQL をDBMSとして使用している環境において、取得結果をカラムの値で順位付けしたいことがあると思います。 バージョンが 8.0 であればウインドウ関数 RANK() を使用すれば実現できますが、5.7 を使用している場合は別の方法を取る必要があります。 動作確…

週報(08/28~09/03)

QuickSight Analysis から Template を作って Template から Dashboard を作っている場合、Analysis を更新しても Template は自動更新されないし、Template を更新しても Dashboard は自動更新されない。 Template、Dashboard はバージョンを保持しているた…

週報(08/21~08/27)

QuickSight フィルター、コントロールの選択値の挙動を確認した。カスタムSQLを使っている場合、データセットパラメータがデフォルト値の状態で選択値の検索をするためのクエリが走るようだ。カスケードフィルターを使っていても、デフォルト値の埋まった SQ…

週報(08/14~08/20)

Go 1.21でリリースされた新しいパッケージである maps パッケージと、sync パッケージの変更点を押さえた。 maps パッケージの Clone メソッドのコメントにある shallow clone の意味が理解できなかったので go-nuts で質問して把握した。 生成される map は…

週報(2023-08-07 ~ 2023-08-13)

Go 1.21.0 がリリースされたので、mapsパッケージをしっかり目に読んだ。 Clone()のコメントにあるshallow cloneの意味が分からなかったが、コピーされる値はシャローコピーなので、再起的に Clone() が行われることがないということらしい。 pkg.go.dev Ter…

週報(2023-07-31~2023-08-06)

gonew モジュールをローカルにコピーする?gonewコマンドをインストールしてみた。 コマンド引数でモジュールパスを任意のパスにすることもできるみたい。 git cloneしなくても良くなる以外のメリットは何なんだろうか。 github.com pkg.go.dev sqlx sqlxパ…

週報(2023-07-24~2023-07-30)

学んだことや感じたことを振り返るために週報を始めることにした。 もちろん毎週更新が目標ではあるが、どうしても忙しくて書けない時もあるだろうし、ゆるく続けていければと思う。 QuickSight Terraform で DataSet の DatasetParameter を使いたいが対応…

Dirty Read を Go の sql パッケージを使って検証する

DB IT Go

Dirty Read の概念を学んだので、動作を試すのに Go の sql パッケージを使って検証スクリプトを書いてみる。 こういうのは手を動かしてみると記憶に残る。 検証はローカルで行う。 DBMSは MySQL を使う。 compose.yaml はこちら。 services: # MySQL mydb: …

SQLって思っていたよりも表現力が高い

IT DB

ひょんなことから、プログラミング言語で記述されたバックエンドの実装をSQLで書き直す取り組みをすることになった。ちなみにデータベースエンジンはMySQL 5.7である。 実務でまともに触ったDBはDynamoDBが初めてでRDB何も分からないマンだったので、やらな…

「竜とそばかすの姫」を観た

久しぶりにケンタッキーを夕食に食べようとなって奥さんがケンタッキー見ながら映画を食べたいと仰ったのが縁で「竜とそばかすの姫」を観た。 Prive Videoは有名どころほとんど見られるような。 感想だが、そこそこ面白かった。 目を離すことはなかったけど…

Yelp の GraphQL Schema Design を読んだ

結婚に伴う引越しや、結婚式の準備などに思っていたより時間が取られ、以前に比べて最近はインプットもアウトプットもかなり減っています。 アウトプットする感覚を少しでも取り戻す為に、Yelp の GraphQL Schema Design を読んだ感想をまとめます。 yelp.gi…

Amazon QuickSightに関する情報まとめ

タイトル通りです。 随時更新していく予定です。 入門 dev.classmethod.jp 埋め込み www.ryucom.co.jp tech.nri-net.com acro-engineer.hatenablog.com qiita.com tech.stmn.co.jp techblog.recochoku.jp データセット dev.classmethod.jp dev.classmethod.j…

aws-vaultを使い始めた

AWSのアカウントを用意したので、前から気になっていたaws-vaultを使い始めた。 github.com いつも通りHomebrewでインストール。 brew install --cask aws-vault クレデンシャルを追加する。 AK,SKを聞かれるので、入力する。 aws-vault add xxx 追加されて…

【ChatGPTに聞いてみた】Go言語のmapをテーブル形式で出力する

Go IT

mapの中身を綺麗にデバッグしたいので、mapをテーブル形式でコンソール出力したいことがあった。 ChatGPTに聞きつつ、軽い修正したら完成しそうなのでやってみた。 今回使用するModelはGPT-4である。 あなたはGo言語のプロフェッショナルです。 map型の値を…

【読書】どっちが強い!? クロヒョウvsマンドリル まさかの空中決戦 (角川まんが科学シリーズ) を読んだ

「どっちが強い!? クロヒョウvsマンドリル まさかの空中決戦 (角川まんが科学シリーズ)」を読んだという話。 mangagakushu.kadokawa.co.jp なぜこの本を読んだのか? とあるラジオを聴いていて学研の秘密シリーズみたいな漫画が大人が読んでも面白いと聞いた…

大阪での一人暮らしを振り返りをChatGPTに校正してもらった

タイトルの通りです。 適当に文章を書き殴ってぶん投げて校正してもらいました。 校正してもらった文章を読んでみての感想としては、なんだか温かみが感じられないです。(元の文章が悪かったかも) 以下が校正してもらった文章です。 40分後にはマンション管…

for文を書きたくないGoプログラマー達へ

Go IT

Go言語は書き振りが冗長であると言われることが多々ある。 例えば、int型のスライスから値が10の値だけを抽出したい場合には下記のように書く。 package main import "fmt" func main() { intSlice := []int{1, 10, 100} result := []int{} for _, v := rang…

Go 1.20.0 にて math/rand のグローバルな乱数生成器のタネが固定値では無くなった

IT Go

Go 1.20.0 が先日リリースされた。 気になる機能はいくつかあるが、職場にて math/rand パッケージが話題に上がっていたのでチェックしてみた。 ちなみに arena パッケージの実験的サポート、errors.Join 、context.Context の Cause あたりが気になる機能で…

HDDの基本

IT

HDDの基本的な用語や構成を全然覚えられず、都度検索しているので備忘録としてまとめます。 同じ内容を別のブログで以前公開していたのですが、ブログを閉じちゃったので再掲です。 プラッタ データを保存する円盤 プラッタは複数枚搭載 プラッタの片面また…

引越しの予定を立てた

結婚するので県外に引っ越すことになった。 新しく住む家が3/20頃に完成するということでその次の週くらいに引っ越そうかと思ったが、さまざまな要因により難しいことがわかり3月前半に実行することとなった。 要因1. 引越し繁忙期 引越し行者の繁忙期であり…