Diary

Diary

日々学んだことをアウトプットする場として初めてみました

CoreSimulator.framework was changed while the process was running.

kmm のセットアップ時、iOS をビルドしようとしたらタイトルのエラーが発生しました。 CoreSimulator.framework was changed while the process was running. This is not a supported configuration and can occur if Xcode.app was updated while the proc…

kdoctor: Xcode requires to perform the First Launch tasks

kmm のセットアップ時、kdoctor を叩いたらタイトルのエラーが発生しました。 ❯ kdoctor Environment diagnose (to see all details, use -v option): ─╯ [✓] Operation System [✓] Java [✓] Android Studio [✖] Xcode ✖ Xcode requires to perform the Firs…

ubuntu で Package graphviz is not available, but is referred to by another package.

apt update しても解決しない場合、デフォルトのリポジトリに graphviz が存在しないことが考えられます。 ubuntu のリポジトリとしては main, restricted, universe, multiverse がありますが、ここではなんとなく universe を追加してみます。 universe は…

Makefile のすすめ

Go

Go は Makefile との親和性が高いみたく、ちょっと使ってみたので今回はその個人的な紹介です。 どの Go の本にも書いてあるので、gopher なら何かしらみんな使ってるものと思ってます。 目次 Makefile って何よ by Chat-GPT by 詳細 Go 言語 web アプリケー…

Makefile で if 文を使って、変数の有無で処理を切り替える

変数の有無で処理を変える 以下のように設定します。 if-test: ## ifeq ($(name),) ## 引数がない時 @echo Hello 名無さん else ## 引数がある時 @echo Hello $(name) endif 引数がある時とない時で処理が変わります。 # 引数がない時 $ make if-test Hello …

docker-compose で立てた psql の結果をローカルで受け取る

以下で紹介していることは基本は psql のオプションになります。 docker compose で立ち上げたコンテナに対して内部の DB に入るには以下のようにできます。 # postgresql: コンテナ名 # root: ユーザー名 # postgresql: 接続したい DB 名 docker compose ex…

ChatGPT で API サーバー(Golang, gin)をさくっと作る

最近は ChatGPT と一番会話をしてる気がします。。。 今回はそんな GhatGPT さんに Go の API サーバーの記述をお願いしたら、思ったより面白いことになったのでその紹介です。 (生成いただいた内容は github においてあります。) TOC やりとり API サーバ…

datadog で apache のログを収集してる際の /server-status を無視する

個人で勉強のために datadog を入れてみてラズパイで動かしているのですが、CPU 等を監視するために datadog-agent が 15 秒おきに /server-status?auto へアクセスを行なっているようです。 気づい時には 3 万 4000 ほど /server-status?auto へのログが da…

Go 言語で CLI ツールを爆速で作る方法

TOC なぜ Go 言語で CLI ツールを作るのか 作り方 サブコマンドを取らない場合 サブコマンドを取る場合 cobra の使用例 urfave/cli 実際にやってみる setup 初期化 サブコマンドの追加 注意点 なぜ Go 言語で CLI ツールを作るのか 以下の 4 点がぱっと思い…

jq: 階層化された json で UNIX タイムスタンプ を ISO 8601 形式の時間に変換する

TOC 目標 結論 解説 多階層を扱う jq で時刻を扱う 文字列操作 メモ 疑問 おまけ 目標 ↓ の 1 つ目の json を 2 つ目の json のように変換することです。 .*_timestamp の key を持った部分をターゲットとし、key から _timestamp の suffix を削除、value …

pkg.go.dev にある godoc を強制的に更新する方法

Go

前提 一度は情報を読み込めている tag プッシュしたものを反映させたい 方法 push したタグに対応する ↓ のリンクを開く https://pkg.go.dev/github.com/{user_name}/{repository_name}@{tag_version} {} には以下の情報を入れてください。 user_name: 個人…

GitHub Actions でコミットできない時見直したい設定

はじめに これらは 2023/1/16 現在の情報であり、GitHub の仕様変更によって将来変更を受ける可能性があります。 どんなエラーが出るか 権限不足でコミット等できなかった場合は、以下のようなエラーコードが表示されます(例)。 Invalid status code など…

もっとよく標準パッケージを使おう!

これは自戒を込めてになるんですが、もっとよく標準パッケージを使おう(知ろう)という話です。 なければ探す。 例をいくつかあげてみます。 URL Encode 基本的な言語には、URL エンコード・デコードをするための標準ライブラリがあるはずです。 Bad val en…

Java (Kotlin) で HTTP のステータスコードの定数を使う方法

Android (Kotlin) で Retrofit を使っていた時に、HTTP のステータスコードを使いたくなりました。 直にベタ書きするのはいやだなーと思っていたところ、HttpURLConnection のクラスに用意されていました。 import java.net.HttpURLConnection // int が求め…

bash [[ 内での <,> は文字列比較になるよ

bash で変数の評価を行う際に [[ をよく使うんですが、その中の <, > の意味を間違っていたがために、無駄に時間を使ってしまう事件がありました。 (未来の自分を含めた)皆さんには変なところで躓いて欲しくないため、こちらにメモしておきます。 [目次] …

Retrofit & Gson Converter でぬるぽ

以下のようなセットで API をコールしていた時に、『Non-null と思っていたのにぬるぽが発生する』ということが起きてしまいました。 HTTP クライアントとして Retrofit JSON to クラスのコンバーターとして Gson 原因 API サーバーで api-key が無効の時に …

git log を使って 1 日分のコード差分行数を計算

git log を使って、特定のユーザーが何行進捗を出したかを確認する例のメモです。 特に、initial commit などのコミットメッセージに代表されるプロジェクト(フレームワーク)の初期ファイルを、コミットメッセージから無視するようにしました。 特定のユー…

Android のテーマアイコンの設定

Android のテーマアイコンを有効にする方法と、アプリに設定する方法を紹介します。 [目次] テーマアイコンとは テーマアイコンを有効にする方法 自アプリに設定する方法 リンク おわりに テーマアイコンとは アプリのテーマアイコンとは、以下のように『ユ…

<meta charset="UTF-8"> をつけてるのに文字化けする

Web

Apache 2.4 を使ってコンテンツを置いているサーバーで、HTML の <head> 内に <meta charset="UTF-8"> をつけているのに文字化けが発生する現象が発生しました。 これは次のように content を指定したら解決しました。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></meta></meta></head>

Jetpack Compose で Material You を使う

今回は、Jetpack compose で Material You を使う方法についてメモしておきます。 なお、今回の内容は『Android DevSummit "Material You in Compose apps"』から学んだものとなります。 環境 - kotlinCompilerVersion '1.6' - compose_ui_version = '1.3.0-…

ワイヤレスデバッグをステータスバーに表示する方法

開発者モードのオプションにあるワイヤレスデバッグを、ステータスバー(通知バー)に表示する方法をメモしておきます。 開発時、ステータスバーにデバッグオプションを表示させた方が便利なケースが多いです。 標準ではこちらに表示されておりません。 Sett…

Android: offline-first

Dev Summit: Create offline-first apps を試聴したのでそのメモです()。 repository 層の役割 リポジトリー層の役割として、少なくとも 2 つのデータソース(LocalDataSource と NetworkDataSource)からデータを取得することを考える。 この際、取得でき…

Jetpack Compose をデバッグする方法

今回は Android Studio の Layout Inspector Jetpack Compose のを使ってみていくことになります。 環境 - Android Studio: Android Studio Dolphin | 2021.3.1 - kotlinCompilerVersion '1.6' - compose_ui_version = '1.2.1' 確認方法 右下の方に Layout I…

ShellCheck から学ぶ良いスクリプトの書き方 〜SC2086(ダブルクォート)編〜

とりあえずは変数はダブルクォーテーションで囲もうってことなんですが、囲まないとどうなるか少し調べてみました。 [目次] Double quote to prevent globbing and word splitting. globbing word splitting おまけ おわりに 今回は簡単な部類である SC2086 …

Jetpack compose で Indicator をなめらかにする

今回は、Jetpack compose でなめらかに Indicator を表示する方法についてメモしておきます。 なお、今回の内容は『Android DevSummit "5 quick animations to make your Compose app stand out"』から学んだものとなります。 [目次] 環境 実装方法 通常の I…

Android のマルチモジュール化で Preview の高速化

今回は Android のプロジェクトをマルチモジュール化し、Jetpack Compose の Preview を高速化してみました。 [目次] 環境 マルチモジュール化のメリット デメリット マルチモジュール化の方法 プレビュー速度の向上 Links おわりに 環境 - PC - macOS versi…

Android のモジュールで BuildConfig を生成しない方法

この間マルチモジュールの対応をしたのですが、その際に BuildConfig について少し気になったので、今回はモジュールにおいて BuildConfig を生成しない方法についてメモしておきます。 各モジュールにおいても、標準では以下のようなファイルが generated …

マルチモジュールでの compose navigation におけるベストプラクティス(Android DevSummit)

Compose の nagitaion における multi module 対応についての内容を youtube で見ました("Type safe, multi-module best practices with Navigation Compose")。 この中で 5 つのベストプラクティスが紹介されていたため、簡単に紹介します。 Compose のス…

Jetpack compose で Back-end (JVM) Internal error

Jetpack compose で開発中、以下のようなエラーが出ました。 Caused by: org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: Couldn't inline method call: CALL 'public final fun Column (modifier: androidx.compose.ui…

bash スクリプト初心者が知っておきたいことまとめ

いまだに自分も初心者ですが、 初心者から見て初めに知っておきたかったこと、思いがけず詰まったことをメモしておきたいと思います。 誰か(来年のぼく)の参考になればと思います。 [目次] 環境 結論 スタイル編 変数 [ はコマンドです! エラーが起きても…