PUROGU LADESU

ポエムがメインのブログです。

Macbookが熱暴走する問題

何かよくわからないが、夜の20時ごろになるとMacbookProのファンが轟音を立てて周りだし、
バッテリーもみるみるうちに減っていく。
キーボードの上部に触れると熱くて触れなくなる。
このまま爆発してしまうのではないかといつも不安だ。

で、どうやらこれがchromeのせいではないかという情報を見かけたので、
設定をいじってみたところ改善が見られた。

設定 > システム > グラフィックアクセラレーションが使用可能な場合は使用する
をオフにする。

これで今までのような減少は起きなくなった。

やはりMacは難しい。Macは簡単とか言ってる人たち全く意味がわからない。
5年くらい使ってるがいろんなサードパティーソフトを入れて調整しないと使いにくいです。
設定画面もVenturaになってからようやくiOSライクになって見やすくなったが、
逆にiOSのまんまでPCに最適化されていない。
Windowsは10,11になってかなり洗練されています。

ちなみに使用MacMacbook Pro 2020 13inchです。

タッチバーが気に食わなかったが、Airの熱暴走も激しかったので致し方なく。
予想どおり次のモデルでは廃止になりました。
上司から言われて仕方なく作った感が至るところにあります。

キーボードもこのモデルより前のはペラペラで打ちにくかった。

あとこのアルミボディ。冬は最初冷たくて触りたくないです。
熱暴走すると熱すぎてさわれません。樹脂製にして欲しい。

気に入ってるところは、スピーカーの音質くらいかな。

脱線しました。

【SpringBoot】Lombokの有効化

IntelliJを使用します。

1. プラグインをインストール

設定 -> プラグイン -> lombok -> install

これでsetterがインテリセンスで有効になります。

2. Eneble Annotation Processingを有効化

Build, Execution, Deployment -> Compiler -> Annotation Processers

EnableAnnotationProcessing をチェック


IntelliJ IDEAにLombokを設定する #Java - Qiita

【SpringBoot】メッセージを外出しする

intelliJを使います。

1. 文字化け対策
???となってしまい読み込めないので設定を変更する。

以下の設定にチェックを入れる
設定 > エディター > ファイルエンコーディング > ネイティブコードからASCIIコードへの自動変換を行う

2. 多言語化ファイルが読み込めない

・application.propertiesに設定を追加

spring.messages.basename=i18n/messages

i18nフォルダにmessages_ja.propertiesの形式でファイルを配置すると認識する。

・デフォルトのpropertiesファイルを設置する

basenameで指定したフォルダに、messages.propertiesファイルを作成する。中身は空で良い。

これがないとmessageSource.getMessageで指定したロケールのメッセージが取得できない。

というか中身を辛煮するのでなく、デフォルトの言語をこれに設定すべき。

【VSCode】リベースエディタが起動しない

GitLensのりベースエディタを使おうとしたら、GitExtensionのやつが起動してきた。
こんな感じで設定したらうまく行った。
まあテキストでも事足りるんでわざわざ使わなくてもいいかも?

GitLensは情報が多すぎてゴチャゴチャするのであまり好きではない。
なのでGitGraphを使ってます。

パスが通っていれば、

[core]
	editor = "code --wait"

もしくはフルパスで。

[core]
	editor = \"C:/Users/HITSUJI/AppData/Local/Programs/Microsoft VS Code/Code.exe\" --wait

【VSCode】Github Copilot 試用レポート

VScodeにて使用しています。
Kotlin使ってます。推奨言語はPythonとかC++とかC#とかみたいだけど。
Javaすら含まれていないのが気になりますが、まあ言語の普及度合いと相関するでしょう。

インラインチャット

VSCodeの左側のタブを押すとチャット欄が出てきますが、
それとは別にエディター内でチャットを入力できる機能があります。

コードを挿入してほしいときに便利なのですが、なんとなく精度が良くない。
左のチャット欄に入力するとまともな回答を得られることが多いようです。

サジェスト機能

コメントとかを書いてEnter押すとコードを生成してくれます。
これもコード挿入したいときは便利

テスト作成機能

コードを選択して /testsを入力するとテストコードを作ってくれます。
ファイルも作ってくれるので便利。

まとめ

おそらく文脈として認識する範囲が違うのでしょう。
とりあえずはチャット欄を使ったほうが良さげですね。

【VSCode】Ensure that you have a dependency on the kotlin standard library

Ensure that you have a dependency on the kotlin standard library
とか言って赤い波線が出てきた。

Stringの型とか全部波線になる。

"java.configuration.updateBuildConfiguration": "interactive",

settings.jsonになんか追加されてたのでこれを消したら解消した。
これGradleとかの設定変更したら、読み直すタイミングの設定だと思う。
関係ありそうでなさそうな。
良う分からん。

VSCodeでspring/kotlinの開発は難しい。

【kotlin】レコードを分解する

fun func2() {
    var data = mutableListOf<Record>(
        Record("1", "bob", "java", 3),
        Record("1", "bob", "python", 4),
        Record("1", "bob", "c++", 5),
        Record("2", "jack", "php", 7),
        Record("2", "jack", "java", 2),
    )

    var personList = mutableListOf<Person>()

    var persons = data.map { Person(it.id, it.name, null) }.distinct()
    println(persons)

    for (person in persons) {
        val idRecoreds = data.filter { it.id == person.id }

        // personに紐づくskillを取得
        val skills = idRecoreds.map { Skill(person.id, it.skill, it.year) }
        println(skills)

//        さらに入れ子
//        var skillList = mutableListOf<Skill>()
//        for (skill in skills) {
//
//        }

        personList.add(Person(person.id, person.name, skills))
    }

    println(personList)
}

fun func1() {
    var data = mutableListOf<Record>(
        Record("1", "bob", "java", 3),
        Record("1", "bob", "python", 4),
        Record("1", "bob", "c++", 5),
        Record("2", "jack", "php", 7),
        Record("2", "jack", "java", 2),
    )

    var personList = mutableListOf<Person>()

    // idのリスト
    var ids = data.map { it.id }.distinct()

    println(ids)
    for (id in ids) {
        // idが一致するリスト(1つはある)
        val idRecoreds = data.filter { it.id == id }
        val idRec = idRecoreds[0]

        val skills = idRecoreds.map { it.skill }.distinct()
        println(skills)

        var skillList = mutableListOf<Skill>()
        for (skill in skills) {
            // skillが一致するリスト(1つはある)
            val skillRecords = idRecoreds.filter { it.skill == skill }

            for (skillRec in skillRecords) {
                skillList.add(Skill(id, skillRec.skill, skillRec.year))
            }
        }

        personList.add(Person(idRec.id, idRec.name, skillList))

    }
}

data class Record (
    val id: String,
    val name: String,
    val skill: String,
    val year: Int,
)

data class Person (
    val id: String,
    val name: String,
    val skills: List<Skill>?,
)

data class Skill (
    val personId: String,
    val lang: String,
    val year: Int,
)