アプリ開発備忘録

PlayStationMobile、Android、UWPの開発備忘録

Wear OSでGoogle FiitのComplicationを追加し、運動するとWatch Faceがクラッシュする。【Watchface 1.2.0 Alpha】

こちらのライブラリの1.2.0 alpha08時点で不具合があり、Google FiitのComplicationsを追加し、運動して目標を達成するとWatch Faceがクラッシュします。 https://developer.android.com/jetpack/androidx/releases/wear-watchface horologist経由で参照して…

Compose Foundation Pager1.4.1でscrollToPageでsettlePageが更新されない

リリースノートに無いものの、 1.5.0-alpha02 で修正されていた。

【Ktor】HTTP(平文)環境でcookieのsecureをtrueに設定する

やろうとしたこと&エラー サーバーから開発用PCにフォワードを設定していた。そこでcookieに secure = true を入れたかった。 val call: ApplicationCall by lazy { TODO() } call.response.cookies.append( name = "key", value = "value", maxAge = 10.sec…

VaultWardenで大きいファイルを添付できない時に設定した事

VaultWardenでファイルを添付しようとアップロードしようとした時にエラーが出て、エラーダイアログにはHTMLが入っていました。 Nginxのリバースプロキシで動かしていて、それが問題でした。 デフォルトでは 1m が入っているそうなので設定します。0でボディ…

【IntelliJ】ファイルをシングルクリックでプレビューを開かないようにする

変更 File Treeでファイルをシングルクリック、又はキーボードで移動すると、対象のファイルが車体で開きます。 以前まではこのようになっていなかったはずなので、この設定を戻します。 戻し方 NEW UIです。 Enable Preview Tabを切ります。

Compose JS WasmでTextFieldの挙動をHTMLに近づける

バージョン kotlin.version=1.8.10 compose.version=1.3.1 問題 以下のGoogle公式のBackspaceでページを戻るプラグインをCompose Multiplatform JS Wasmで使用していると、TextFieldでBackspaceを押すと前のページに戻ってしまいます。 https://chrome.googl…

Dockerとufwでポートのアクセス制御をする方法

docker-composeでサーバーでMariaDBを立ち上げて、外部からアクセスされたくないが、サーバー内ではアクセスさせたいといった事がしたかった。 問題のある設定 以下のように設定しました。 version: "3" services: db: image: mariadb:10.7 volumes: - ./dat…

【JVM/Kotlin】サーバー間でgRPC接続が特定インスタンスに偏る問題を修正する

サーバー間でのやりとりにgRPC接続を使用していますが、1つのインスタンスに接続が偏ってしまいました。これを解消します。 現在の実装 grpc-javaのバージョン1.53.0を使用しています。 https://github.com/grpc/grpc-java 現在、クライアント側は以下のよう…

SharePointにAPIを使用してファイルをアップロードする

言語はKotlin(Java17)を使用しました。 アプリの登録 adminではないユーザーを使用しました。新規登録からアプリを登録します。 https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade 「この組織ディレクトリのみに含まれる…

Ubuntuサーバーセットアップ備忘録

更新 apt update apt upgrade sshの設定 /etc/ssh/sshd_config の設定を変更 // 有効化 MaxAuthTries 6 AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys に公開鍵を追加。sshできるか確認。 /etc/ssh/sshd_config の設定を変更 // 無効化 Pas…

Ubuntuサーバーセットアップ備忘録

更新 apt update apt upgrade sshの設定 /etc/ssh/sshd_config の設定を変更 // 有効化 MaxAuthTries 6 AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys に公開鍵を追加。sshできるか確認。 /etc/ssh/sshd_config の設定を変更 // 無効化 Pas…

Ubuntuサーバーセットアップ備忘録

sshの設定 /etc/ssh/sshd_config の設定を変更 // 有効化 MaxAuthTries 6 AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys に公開鍵を追加。sshできるか確認。 /etc/ssh/sshd_config の設定を変更 // 無効化 PasswordAuthentication no ユー…

【Compose】ネットワークから取得したサイズ不定の画像でバナーを作成する

画像がスクロールするバナーを作ります。 Preview Code Column { ImageBannerPagerWithIndicator( modifier = Modifier .fillMaxWidth() .heightIn(max = 200.dp), scrollMills = 2000, activeColor = androidx.compose.ui.graphics.Color.Yellow, inActiveC…

java.time.InstantをSwift Codableでパースできるようにする

xxxxxx.yyyyyy , "xxxxxx.yyyyyy", xxxxxx どの形式でも受け取れるようにします。 Double等でパースすると精度が足りないのでDecimalを使用します。 import Foundation @main public struct hello_swift { public static func main() { let decoder = JSONDe…

PowerShell設定備忘録

.bashrcのように起動時に設定を行う $profile の出力ファイルに変更を行う。 タブでのPathの入力補完をLinux Likeにする Set-PSReadlineKeyHandler -Key Tab -Function Complete

dockerでマルチプラットフォーム用にビルドして1つのタグにまとめる。

arm64とamd64向けにビルドを行い、Manifestを使用して1つのtagで、使用するプラットフォームごとに自動的にアーキテクチャを選択させます。 今回はリポジトリとしてECRを使用しています。 まずは色々定義します。 ベースの名前を決めます。あとはプラットフ…

jackson2.14からAndroid8未満はサポートしなくなったので、GitHub dependabotでjackson2.13.xより上げないように設定する

以下でminor versionをスキップする事ができます。 version: 2 updates: - package-ecosystem: "gradle" directory: "/" schedule: interval: "daily" ignore: # 2.13はAndroid7(SDK 24)以降対応 # 2.14はAndroid7(SDK 26)以降対応 # https://github.com/Fas…

【GitHub Actions】IssueやPRが作られたら自分をアサインさせる【GitHub API】

要件 PRがOpen、ReOpenしたら動作する IssueがOpen、ReOpenしたら動作する 開いた人自身をアサインする 既に誰かがアサインされている場合はアサインしない 一応デバッグ用にAPIのレスポンスを吐き出す コード name: Assign Author on: issues: types: [open…

【Compose】Pickerを作成する(ほぼFlingBehaviorのカスタマイズ)

こんな感じのNumber Pickerを作りました。 State まずは無難にStateの定義。 State経由でPositionの変化を受け取ります。 @Composable public fun rememberPickerState(): PickerState { return remember { PickerState() } } public class PickerState { pu…

GraalVM + Kotlinでネイティブコンソールアプリを作る

GraalVM + Kotlinでネイティブコンソールアプリを作る bashでshell scriptを書くのが大変。使い慣れた言語のKotlinを使ってスクリプトを実行したい。しかし、Java環境が入れられない制約がある場所で実行したいという状況になりました。 最初に思い浮かんだ…

【Ubuntu】DockerのCLIだけを入れて、RemoteDockerを指定する。

こちらを参考に docker-ce-cli だけを入れます。 https://docs.docker.com/engine/install/ubuntu/ DOCKER_HOSTを指定します。 export DOCKER_HOST=0.0.0.0:2375 docker version を実行して Server: が表示されればOKです。

デバッグ用に低速Wi-Fiを作った

低速回線によるアプリとサーバー側の不整合による不具合が見られたので、低速Wi-Fiを作ろうとなりました。前から作ろうとは思っていたのですが、なかなか面倒臭そうで作っていませんでした。 最初に思い当たったのはこの記事なのですが、ここまでして作る手…

Kotlin/JSでKotlin1.7系にした場合、Webpack5系に上げないと動作しなかった。

Jetpack Compose Webを使いたくてIntelliJのNew Projectでテンプレートから作成しましたが、 Kotlin1.6+Compose1.1 だった為、 Kotlin1.7+Compose1.2 に上げた時に問題が発生しました。 これは開発では問題なくて ./gradlew jsBrowserProductionWebpack 等で…

detektとTwitter Compose Ruleを導入する。

rootのbuild.gradleに以下を追加する。 plugins { id("io.gitlab.arturbosch.detekt") version("1.22.0-RC2") } allprojects { apply plugin: "io.gitlab.arturbosch.detekt" dependencies { configurations.maybeCreate("detektPlugins") detektPlugins("co…

YAMAHA RTXシリーズ設定メモ

使用機器: RTX830 ネットワーク接続はv6プラス固定IPで設定済み。WebUIで簡単に接続できた。 lan type lan1telnetで接続済み。 基本操作 設定時にパスワードをたくさん打つので、そこまで長いパスを設定しないほうが良いなと思っています。設定が終わったら…

はてなブログ備忘録

tableをスクロールさせる。 <table style="overflow-x:scroll; display:block;"> <tr> <td></td> <td></td> </tr> <tr> <td></td> <td></td> </tr> </table>

【Compose】コンテンツを削除して高さが変わる時に高さの変化をアニメーションさせる

Columnの中の途中のコンテンツを消す時に、いきなり高さが0になるのではなく、アニメーションさせて消します。 これは、 AnimatedVisibility を使用すればいいのですが、中のコンテンツを表示させるためのものがnullableであり、nullになったら消したい場合…

WSL2でDocker Server(Engine)を立ち上げて、Windows側から使用する

Ubuntu-22.04 を使用します。今回distribution名はdockerにしました。 Dockerをインストール まずはDockerの公式ガイドに従い、Docker Engineをインストールします。 https://docs.docker.com/engine/install/ubuntu/ 起動時の設定 Boot時にsystemdを起動す…

GoLandでprivateリポジトリを参照する

Go

Git側 git config --global url."git@github.com:".insteadOf "https://github.com/" GoLand側 GOPRIVATE=github.com/<Org></org>

proto3でのnullを表す

proto2でoptionalがありましたが、proto3でoptionalが削除されました。 messageはデフォルトでnullableですが、scalar型はデフォルトでnon-nullの為、nullableを表すには以下のようにmessageでラップする必要がありました。 message Hoge { google.protobuf.…