KotlinでAndroidのバージョン番号を取得するには

Androidのバージョン番号やビルドIDなどの情報は、Buildクラスを通じて取得できます。

以下のコードは、Androidのバージョン番号を取得してログに出力します。

import android.os.Build
import android.util.Log

val releaseVersion = Build.VERSION.RELEASE
val apiLevel = Build.VERSION.SDK_INT
val buildDisplay = Build.DISPLAY
val buildId = Build.ID
val incrementalVersion = Build.VERSION.INCREMENTAL

Log.d("AndroidVersionInfo", "Release Version: $releaseVersion") // => Release Version: 14
Log.d("AndroidVersionInfo", "API Level: $apiLevel") // => API Level: 34
Log.d("AndroidVersionInfo", "Build Display: $buildDisplay") // => Build Display: UE1A.230829.036.A1
Log.d("AndroidVersionInfo", "Build ID: $buildId") // => Build ID: UE1A.230829.036.A1
Log.d("AndroidVersionInfo", "Incremental Version: $incrementalVersion") // => Incremental Version: 11228894

以下は、Jetpack ComposeでAndroidのバージョン番号を取得する例です。

import androidx.compose.foundation.layout.Column
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import android.os.Build

@Composable
fun DisplayAndroidVersion() {
    Column {
        Text("Release Version: ${Build.VERSION.RELEASE}")
        Text("API Level: ${Build.VERSION.SDK_INT}")
        Text("Build Display: ${Build.DISPLAY}")
        Text("Build ID: ${Build.ID}")
        Text("Incremental Version: ${Build.VERSION.INCREMENTAL}")
    }
}

JavaScriptでカウントダウン付き自動リダイレクト

JavaScriptを使用して、10秒間のカウントダウン後に自動的にトップページへリダイレクトする方法を紹介します。

この処理は、例えば404 Not Foundエラーページなどで利用すると効果的です。

HTMLコード

まず、HTMLではカウントダウンタイマーの残り時間を表示する部分を設置します。以下のように書きます。

<p><span id="countdown">10</span>秒後に自動的にトップページに移動します。</p>

JavaScriptコード

次に、JavaScriptを使用してカウントダウン機能を実装します。
以下のスクリプトをページの末尾に配置します。

<script type="text/javascript">
    document.addEventListener('DOMContentLoaded', function () {
        let seconds = 10;
        const countdownElement = document.getElementById('countdown');

        const intervalId = setInterval(function () {
            countdownElement.textContent = seconds;
            if (seconds <= 0) {
                clearInterval(intervalId);
                window.location.href = "/";
            }
            seconds--;
        }, 1000);
    });
</script>

このスクリプトでは、DOMContentLoaded イベントが発生した後、カウントダウンを開始します。

各秒ごとにカウントダウン要素のテキストを更新し、秒数が0以下になったらインターバルをクリアし、トップページにリダイレクトします。

mysqldumpでエクスポートしたデータをインポート時のAccess deniedエラーの解決方法

問題

mysqldumpでエクスポートしたデータをインポートすると次のエラーメッセージが表示されました。

Access denied; you need (at least one of) the SUPER or SET_USER_ID privilege(s) for this operation

原因

エラーメッセージには「SUPER」または「SET_USER_ID」権限がこの操作に必要であると述べられています。

対策

エクスポートされたSQLファイルからDEFINER=という文字を含む行を探して削除します。

巨大なファイルをテキストエディタで開くと編集に時間がかかります。

sedを使う方法を紹介します。以下のコマンドを実行して、backup.dmpファイルからDEFINER=という文字を含む行を削除します。

Linuxの場合

Linux系のシステムでは、以下のコマンドを使用します。このコマンドはファイルを直接変更します。

sed -i '/^\/\*![0-9]* DEFINER=/d' backup.dmp

macOSの場合

macOSやBSD系のシステムでは、-iオプションの使用法が異なります。
以下のコマンドを使用します。
このコマンドは、ファイルを直接変更し、バックアップファイルを作成しません。

sed -i '' '/^\/\*![0-9]* DEFINER=/d' backup.dmp

Visual Studio CodeでGitHub Copilotを無効にする方法

問題

ローカル環境でVisual Studio Codeを使用して、「A Tour of Go」のExerciseを解いている際、GitHub Copilotが先に回答を提案してしまいます。

GitHub Copilotを無効にする方法はありますか?

回答

Visual Studio CodeでGitHub Copilotを無効にするには、以下の手順に従ってください。

  1. Visual Studio Codeのウィンドウの右下にある「GitHub Copilot」のアイコンをクリックします。

  2. 表示されたメニューから「Disable Completions for ‘Go’」を選択します。

これで、Goファイルを編集しているときにGitHub Copilotが提案を行わなくなります。