「API KEY」とか不要です。
まず、https://chat.openai.com/chat を Safari で開いてログインして、画面下中央にあるボタンを押します。

「ホーム画面に追加」をタップします。

ホーム画面にアイコンが作成されて設定完了です。

いつでも、タップすると秒で会話できますね!

いちいちAPIをショートカットApp経由で叩くより簡単ですね!
「API KEY」とか不要です。
まず、https://chat.openai.com/chat を Safari で開いてログインして、画面下中央にあるボタンを押します。

「ホーム画面に追加」をタップします。

ホーム画面にアイコンが作成されて設定完了です。

いつでも、タップすると秒で会話できますね!

いちいちAPIをショートカットApp経由で叩くより簡単ですね!
外野から、さらっと見ていると、
- IDEA Intellij は JetBraains 製。
- Android Studio は Google 製。
- Android Studio は IDEA Intellij を利用してできている。
と認識しています。
それぞれ公式で以下の内容。
JetBrains IDE製品には、JetBrains Runtime(JBR)と呼ばれるIDE自体の実行に使用されるJava実行環境が同梱されています。これは皆さんが書くコードのコンパイルや実行に使用するためのJDKとは(本来)別のものです。https://t.co/DCSAxaK1KA #android #kmm #androidstudio #プログラミング
— chanzmao (@maochanz) January 18, 2023
Android Studio 2.2 以降には最新バージョンの OpenJDK のコピーがバンドルされています。この JDK バージョンを Android プロジェクトで使用することをおすすめします。https://t.co/SlOhcOr3y1
— chanzmao (@maochanz) January 27, 2023
ん?
一般的、標準的な Android アプリ開発の IDE といえば Android Studio だと思うのですが、開発したソースコードの build に利用する JDK は、「Android Studio にバンドルされている JDK」でいいんですよね?
Android Studio 設定画面からは、どちらでも選択はできます。
今現在、私のパソコンにインストールされてる JDK は、Android Studio バンドル版を含めて OpenJDK 11.0.15 と 11.0.18 と 19.0.1 の3つ。
Android Studio 設定画面もそれは認識しています。

19 系はないとして、やはり embedded JDK 11.0.15 が妥当ですよね。
少し、混乱してました。
特に理由がなければこれで良し、とな。
👉 Android Studio Electric Eel | 2022.1.1 の JDK11 設定
👉 【macOS】Android Studio 埋め込み JDK の Home のパスを取得する
👉 AndroidStudio 利用する Java (JDK) の選択・設定の方法
👉 macOS (Intel) + Homebrew の JDK の現状を確認する
👉 【Android Studio】Settings - Build Tools - Gradle JDK の選択肢がゴミだらけで意味不明の場合
2023-01-20 現在。

Electric Eel | 2022.1.1
AI-221.6008.13.2211.9477386
7.4.0
com.android.tools.build.gradle:7.4.0
↓
com.android.application:7.4.0
com.android.library:7.4.0
👉 【Plugin DSL】「com.android.tools.build:gradle」の記述は不要?
7.6
👉 Android Studio Dolphin おすすめの Gradle Plugin と Gradle のバージョン
AndroidStudio 利用する Java (JDK) の選択・設定の方法 https://t.co/p07YfVhlQE #android #androidstudio #brew #jdk #java #kotlin #プログラミングスクール
— chanzmao (@maochanz) January 24, 2023
役所関連の書類とか整理していると、
平成とか昭和の書類がでてきて、
何年前の書類なのか、
時系列が全くわからん。
いちいちネットで調べるのだるいので。
Python の訓練です。
変換の基準を確認する。
昭和 S01.12.25 (1926-12-25) - S64.01.07 (1989-01-07)
平成 H01.01.08 (1989-01-08) - H31.04.30 (2019-04-30)
令和 R01.05.01 (2019-05-01) -
対照表がほしい。
#!/usr/bin/env python
import datetime
from tabulate import tabulate
d = []
for a in range(1989, datetime.date.today().year + 1)[::-1]:
r = a - 2018
h = a - 1988
s = a - 1925
d.append([a, r if r > 0 else '', f'({h})' if r > 1 else h, f'({s})' if h > 1 else s])
print(tabulate(d, headers=('ad', 'reiwa', 'heisei', 'showa'), stralign='right'))
「元」とかは無視。
中国、朝鮮、台湾、日本、ベトナムくらいですか。
微妙です。
すべてインラインテーブルで記述したもののなんか見づらい。

【Android Studio】TOML内のすべてをインライン・テーブルに書き換える Live Templates 用 Groovy スクリプト https://t.co/hTpsezFD2d #android #kotlin #groovy #androiddev #プログラミング pic.twitter.com/7PyX7I95gX
— chanzmao (@maochanz) November 11, 2022
なんかいい方法はないかな、と模索。
Python 3.11 で同梱された tomllib を使って別フォーマットで整形して表示してみます。
👉 How to Use Python 3.11's New TOML Parser, tomllib - The Invent with Python Blog
記事にするには大きすぎるので [plugins] だけで。
import tomllib
import pprint
import json
import yaml
import pandas
import tabulate
file = "/path/to/libs.versions.toml"
with open(file, "rb") as fp:
data = tomllib.load(fp)["plugins"] # only plugins
# raw (dic)
print(data)
# pretty print
pprint.pprint(data)
# json
print(json.dumps(data, indent=2))
# yaml
print(yaml.dump(data))
# pandas + tabulate
df = pandas.DataFrame.from_dict(data, orient='index')
print(tabulate.tabulate(df, headers='keys'))
以下、出力結果。
{'android-application': {'id': 'com.android.application', 'version': {'ref': 'agp'}}, 'kotlin-android': {'id': 'org.jetbrains.kotlin.android', 'version': {'ref': 'kotlin'}}, 'kotlin-kapt': {'id': 'org.jetbrains.kotlin.kapt', 'version': {'ref': 'kotlin'}}, 'kotlin-plugin-serialization': {'id': 'org.jetbrains.kotlin.plugin.serialization', 'version': {'ref': 'kotlin'}}, 'hilt': {'id': 'com.google.dagger.hilt.android', 'version': {'ref': 'hilt'}}, 'sqldelight': {'id': 'app.cash.sqldelight', 'version': {'ref': 'sqldelight'}}, 'google-services': {'id': 'com.google.gms.google-services', 'version': {'ref': 'google-services'}}, 'firebase-crashlytics': {'id': 'com.google.firebase.crashlytics', 'version': {'ref': 'firebase-crashlytics'}}, 'ben-manes-versions': {'id': 'com.github.ben-manes.versions', 'version': '0.44.0'}}
{'android-application': {'id': 'com.android.application',
'version': {'ref': 'agp'}},
'ben-manes-versions': {'id': 'com.github.ben-manes.versions',
'version': '0.44.0'},
'firebase-crashlytics': {'id': 'com.google.firebase.crashlytics',
'version': {'ref': 'firebase-crashlytics'}},
'google-services': {'id': 'com.google.gms.google-services',
'version': {'ref': 'google-services'}},
'hilt': {'id': 'com.google.dagger.hilt.android', 'version': {'ref': 'hilt'}},
'kotlin-android': {'id': 'org.jetbrains.kotlin.android',
'version': {'ref': 'kotlin'}},
'kotlin-kapt': {'id': 'org.jetbrains.kotlin.kapt',
'version': {'ref': 'kotlin'}},
'kotlin-plugin-serialization': {'id': 'org.jetbrains.kotlin.plugin.serialization',
'version': {'ref': 'kotlin'}},
'sqldelight': {'id': 'app.cash.sqldelight', 'version': {'ref': 'sqldelight'}}}
{
"android-application": {
"id": "com.android.application",
"version": {
"ref": "agp"
}
},
"kotlin-android": {
"id": "org.jetbrains.kotlin.android",
"version": {
"ref": "kotlin"
}
},
"kotlin-kapt": {
"id": "org.jetbrains.kotlin.kapt",
"version": {
"ref": "kotlin"
}
},
"kotlin-plugin-serialization": {
"id": "org.jetbrains.kotlin.plugin.serialization",
"version": {
"ref": "kotlin"
}
},
"hilt": {
"id": "com.google.dagger.hilt.android",
"version": {
"ref": "hilt"
}
},
"sqldelight": {
"id": "app.cash.sqldelight",
"version": {
"ref": "sqldelight"
}
},
"google-services": {
"id": "com.google.gms.google-services",
"version": {
"ref": "google-services"
}
},
"firebase-crashlytics": {
"id": "com.google.firebase.crashlytics",
"version": {
"ref": "firebase-crashlytics"
}
},
"ben-manes-versions": {
"id": "com.github.ben-manes.versions",
"version": "0.44.0"
}
}
android-application:
id: com.android.application
version:
ref: agp
ben-manes-versions:
id: com.github.ben-manes.versions
version: 0.44.0
firebase-crashlytics:
id: com.google.firebase.crashlytics
version:
ref: firebase-crashlytics
google-services:
id: com.google.gms.google-services
version:
ref: google-services
hilt:
id: com.google.dagger.hilt.android
version:
ref: hilt
kotlin-android:
id: org.jetbrains.kotlin.android
version:
ref: kotlin
kotlin-kapt:
id: org.jetbrains.kotlin.kapt
version:
ref: kotlin
kotlin-plugin-serialization:
id: org.jetbrains.kotlin.plugin.serialization
version:
ref: kotlin
sqldelight:
id: app.cash.sqldelight
version:
ref: sqldelight
id version
--------------------------- ----------------------------------------- -------------------------------
android-application com.android.application {'ref': 'agp'}
kotlin-android org.jetbrains.kotlin.android {'ref': 'kotlin'}
kotlin-kapt org.jetbrains.kotlin.kapt {'ref': 'kotlin'}
kotlin-plugin-serialization org.jetbrains.kotlin.plugin.serialization {'ref': 'kotlin'}
hilt com.google.dagger.hilt.android {'ref': 'hilt'}
sqldelight app.cash.sqldelight {'ref': 'sqldelight'}
google-services com.google.gms.google-services {'ref': 'google-services'}
firebase-crashlytics com.google.firebase.crashlytics {'ref': 'firebase-crashlytics'}
ben-manes-versions com.github.ben-manes.versions 0.44.0
Python って、簡単にいろんなことできるんですね!
【Python】「pip search」の代わりは何なの?
👉 https://t.co/iOiw37w9kl #python #プログラミング初心者 #pip— chanzmao (@maochanz) June 1, 2022