今日で、メインの厄年が終わる(はず)。来年は、後厄なので、少しはまともな状況になると信じたい。本当に今年はいろいろとあった。特に仕事面は、いろいろとあってひどかった。これでもかってくらい、いろいろとあった。これで終わってくれるといいのだけど。ほんとに、よく耐えたと思う。
さあ、気持ちよく新年が始まると期待して。
今日で、メインの厄年が終わる(はず)。来年は、後厄なので、少しはまともな状況になると信じたい。本当に今年はいろいろとあった。特に仕事面は、いろいろとあってひどかった。これでもかってくらい、いろいろとあった。これで終わってくれるといいのだけど。ほんとに、よく耐えたと思う。
さあ、気持ちよく新年が始まると期待して。
企業ユーザ向けの「調整さん」のTimeRexを試してみた。Freeプランで試しているので、検証していないものもあり。
使い始める前に簡単に権限まわりや運営を調べてみた。
Googleカレンダーへのアクセス権限が強力なのが気になるが、実際に使ってみると・・・
気が付いたところは、こんな感じだ。3人以上の調整には有料プランが必要。ビジネス用途として、ちゃんと調整するには有料プランにする必要あり。1対1の調整が多ければ、フリープランでも困らないのかもしれないが。
「調整さん」との比較だと、TimeRexの方がインターフェースもイマドキでよい。同じ使い方をしようと思うと、有料プランが必要なので、簡単な予定調整ならば、「調整さん」だろう。
Windows10のOS動作が不安定の場合は、システムファイルチェックを実行して、修復を試す。

これで完了。
最初に、「create user」文で、ユーザを作る。その時にパスワードも設定する。
次に、grant文で、DBの権限を割り当てる。grant文でユーザ作成も同時に行うこともできるけれど、個人的には、2文に分けた方が設定がわかりやすくて安心できる。
例)DBとユーザを作り、DBにユーザの権限を付ける。
create database dbname;
create user 'user_name'@'localhost' IDENTIFIED BY 'password';
grant all on 'dbname'.* TO 'user_name'@'localhost';


珍しくというか、初めてヨドバシカメラの福袋が当たった。悩んだ末、当たったSimフリーiPhoneの夢を購入した。
福袋の中身は、iPhone12 Pro 128GBモデルのパシフィックブルー。13 Proが出たので、12 Proは販売終息のモデルだ。Proなので、写真やらなんやらとストレージを使うモデルなのに、128GBはサイズとして小さい。オプションのようなアクセサリーもない。iPhoneだけだ。256GBがよかった。2022年のヨドバシの福袋はハズレだ。昔はもっとよいものが入っていたような気がする。
Google Apps Scripsから、Google Cloud SQLのMySQLにSSL(TLS)で通信を暗号化して接続するコードのサンプル。このとき、Cloud SQLのMySQLは、MySQL 5.7よりも古くないと接続できない。
DBへの接続は、JDBCを使用する。このとき、JDBCの読み込みは必要なく、GASのエディタ上で直接記述してよい。このサンプルでは、SSL(TLS)を使用するバージョン。接続にPEMファイルを使うため、あらかじめGoogle Cloud SQL側で発行しておく必要がある。
記載するPEMファイルの中身は、末尾に改行コードを表す”\n”をいれて、さらにコード上の改行を明示的にするために”\”を入れる必要があった。なので、PEMファイルの中身の末尾が”\n\”になっている。
接続のチェックのため、コンソールログに、いろいろと書き出すようにしている。Logの部分はなくても、問題なし。
サンプルコード。
function myFunction() {
dbConnection();
}
// --------------------------------
// SSLで接続する
// --------------------------------
function dbConnectionSSL(){
Logger.log('start dbConnection function.');
// 接続先設定
var connectionIp = 'xxx.xxx.xxx.xxx'; // 接続のMysqlのIPアドレス(ホスト名も可)
var userName = 'user'; // 接続で使うユーザ名
var passwd = 'pass'; // 接続で使うパスワード
var databaseName = 'dbname'; // データベース名
var addr = 'jdbc:mysql://' + connectionIp + '/' + databaseName + '?useSSL=true';
// SSL用の証明書を変数に入れる
var clientKey = '\
-----BEGIN RSA PRIVATE KEY-----\n\
MIIEowIBAAKCAQEAyDuIOE1t/ABFSMIz/2Ni4vIoaNvBkDLaeJdl6KmeK9iexl2D2d\n\
~~~中略~~~
P8B5s7xmSbH4Yv/OeKrw8F6xAmoQmWVlnw686I0QqNHexlwIe3lss2LDEI3d\n\
-----END RSA PRIVATE KEY-----';
var clientCert = '\
-----BEGIN CERTIFICATE-----\n\
MIIDVzCCAj+gAwIBAgIEJD9I+TANBgkqhkiG9w0BAQsFADB7MS0wKwYDVQQuEyRl\n\
~~~中略~~~
QNwLDry8Tk3DwnD07+dkQf+FFFu943GFUlY9d4Rv75S+Vwm2Ci2azIRR2Q==\n\
-----END CERTIFICATE-----';
var serverCa = '\
-----BEGIN CERTIFICATE-----\n\
MIIDfzCCAmegAwIBAgIBADANBgkqhkiG9w0BAB3MS0wKwDELW39xwSDyQ3ZjVm\n\
~~~中略~~~
bfgDM8ARAAqMqECaXYC8+xHviva4ON6weeD/wsdessDP9K3ws3mGKbbjlLmc=\n\
-----END CERTIFICATE-----';
Logger.log('start mysql con');
Logger.log(addr);
var connectionInfo = {
user: userName,
password: passwd,
_serverSslCertificate: serverCa,
_clientSslCertificate: clientCert,
_clientSslKey: clientKey
}
Logger.log(connectionInfo);
var connection = Jdbc.getConnection(addr, connectionInfo);
Logger.log(connection.getCatalog());
// コネクションを閉じる
connection.close();
Logger.log('end');
}
感覚的には2021年はとても早く過ぎていった気がする。2021年の仕事納めが終わった。
思い返してみると、いろいろとあった。感覚的には、2020年の延長という感じで、2021年という感じがしなかった。たぶん、オリンピックをやっていた所為なのだろう。仕事も波乱万丈だった。去年の今頃では、想像もしていなかったことが多かった。いいことというよりも、辛い一年だった気がする。いろいろと引きずっているので、来年も余波で、そこそこひどいことにはなるだろうけど、今年のようなことにはならないだろう。
来年は、いい一年で、いい仕事ができる環境であってほしいものだ。

つい最近まで気が付かなかったのだが、赤坂の炭火焼ステーキ播磨がいつの間にか閉店していた。ランチでも高いので、いつかはランチを試してみよう、と思って何年も後回しにしているうちに閉店。気になるところは、ちゃんといかないと、無くなってしまうということ。

今日のランチは、溜池山王の金子屋でバラ天丼。美味しかった。2021年の赤坂ランチ納には、よかったんじゃないかと思う。