お知らせ

現在サイトのリニューアル作業中のため、全体的にページの表示が乱れています。
投稿日:
サービス::その他ジャンル::雑記

ここ数年、誰かと話をしたりしているときに話のネタ元を探すのに苦労することが増えた。恐らく昔は根拠なく話していたことが、今は根拠を求められたり、必要になるケースが増えたからだと思う。相手を納得させる話には説得力が必要で、それには根拠があると捗るためだ。

例えば、「以前ほげほげで見た話なのですが~」と切り出したときに「ほげほげ」がどこだったかというところだ。私は大抵の情報をWebから得ているので話の元には大抵URLがあるのだが、これを失念していると根拠が出せないうえに記憶が壊れているケースもあり、誤った情報を話してしまうことがある。しかしこんなのを普通にブックマークしていても探すのが大変だし、ブックマークもすごいことになってしまう。そこで、記憶のインデックスとしてソーシャルブックマークを使うのはどうかと、ふと思いついたのだ。

最初はdeliciousを使おうと考えたのだが、これはサービスを終了していた。Diggも頭の中を過ぎ去ったが、今ひとつパッとしなかった。そこで行き着いたのがはてなブックマークだ。

ここはインターネット黎明期のころにインターネットをしていた人たちにとってお馴染みのサービスだろう。私も黎明期にはよく使っていたが、その時は特に理由もなく、流行で楽しいからという理由だったと思う。

しかしある時を境に私は利用をやめてしまった。理由はホッテントリの存在である。控えめに言わずとも荒れているし、スパムも多い。これは別に最近に始まったことではなく、以前からこうだった。最近はより酷くなってきている気さえする。しかし別にホッテントリを見ずに純粋に自分だけのブックマークとして使えばいいのではないか?そういう部分に気づいたのである。他者を気にせずに使う分にはストレスがない。そう思い使い始めることにした。

取り合えず今は思い出したときに、過去に見つけた有益情報をブックマークしていっているところだ。きっといつか情報を引き出す時に役に立ってくれることだろう。そう思い今は登録するフェーズにいる。勿論、過去だけではなく、現在見つけた情報についても関心があるものはブックマークしていっているが、どちらかというと過去を引き出したい側面の方が今は強い。

現在私のブックマークは技術的なものや地域の話題のようなものが多い。特に技術の話については引き出しから出したときに中身が抜け落ちていることが多々あるので、これをインデックスの一つにして、すぐに引き出せるようにしておきたい。

ここからは余談だが、実は久々にはてブを使うにあたり、IDの再登録をした。これは過去に、はてなというサービスに失望してこのIDを消してしまったところに所以する。

悲しいことはIDがアッパーケースで登録できなかったところだ。今のIDはlycoliaであって、Lycoliaではない。過去のIDが再び取れたら最高だったのだが、まぁ昨今のサービスだとなかなかないだろう。大昔はよくあったものだが。

まぁ、世の中には小文字しか使えないサービスもあるので、それと同じだと思えばいい。正直大文字が使えるサービスでも小文字で登録しまっている例があるので、深く気にするだけ負けだ。中には過去にアカウントを作ったが消してしまったので、既に使えないサービスもいくつかある。今後はIDを不用意に消さないようにしていきたいものだ。(とはいえIDが多いと管理コストもかかるので難しいところではあるが)

投稿日:
サービス::AWS

Athenaクエリ周りのメモ。

Athena前提知識

Amazon Athena とはによると、次のようにあるが、癖があることは覚えていた方が良い。

Amazon Athena は、標準的な SQL を使用して Amazon Simple Storage Service (Amazon S3) 内のデータを直接分析することを容易にするインタラクティブなクエリサービスです。

関数についてはAmazon Athena の関数を見るとよいのだが、Prestoのサイトを見たほうが多分早い。

UTCのISO日付書式文字列をJSTロケールのtimestampに変換する

SELECT
  date_parse('2020-01-05T23:21:00.53Z', '%Y-%m-%dT%H:%i:%s.%fZ') AT TIME ZONE 'Asia/Tokyo' AS jst

timestampをdate型に変換する

SELECT
    CAST(TBL.TSTMP AS date)
FROM (
    SELECT timestamp '2020-11-20 01:00:00' AS TSTMP
) TBL

TO_DATEはtimestampを受け付けないので役に立たない。TO_CHARはドキュメント上扱えるように見えるがフォーマット文字でエラーになる。

以下の様にしてもサポート外の数値型が渡る様で上手くいかない

TO_CHAR(year(TBL.TSTMP)) || '-' || TO_CHAR(month(TBL.TSTMP)) || '-' || TO_CHAR(day_of_month(TBL.TSTMP))

date型をWHEREで比較

date YYYY-MM-DDとして、型を明示しないと上手くいかない

SELECT
  *
FROM
  TBL
WHERE
  TBL.createAt = date '2023-11-22'

タイトルの通りさくらのレンタルサーバーにTiny Tiny RSSを構築する話。いつの間にかDockerコンテナにされてたが本体は単純なPHPのままなのできちんと設定してやるとDocker環境がなくとも動く。

確認環境

Env Ver
Tiny Tiny RSS dc25a9cf6816b756cb38490eab93f02589c44a10

手順

以降Tiny Tiny RSSをTTRSS表記とする。

  1. さくらのコンパネからTTRSSで利用するDBを作る
  2. 以下のセットアップスクリプトを適宜書き換えて実行する
git clone https://git.tt-rss.org/fox/tt-rss.git

cd tt-rss/

cat <<'EOF' | > config.php
<?php
# This file can be used to customize global defaults if environment method is not available (i.e. no Docker).
#
# Use the following syntax to override defaults (options are declared in classes/config.php, prefixed by TTRSS_):
#
# putenv('TTRSS_SELF_URL_PATH=http://example.com/tt-rss');
#
# Plugin-required constants also go here, using define():
#
# define('LEGACY_CONSTANT', 'value');
#
# See this page for more information: https://tt-rss.org/wiki/GlobalConfig

putenv('TTRSS_PHP_EXECUTABLE=/usr/local/bin/php');

# Sets admin user access level to this value.
# Valid values:
# -2 - forbidden to login
# -1 - readonly
#  0 - default user
# 10 - admin
putenv('ADMIN_USER_ACCESS_LEVEL=10');

# Database
putenv('TTRSS_DB_TYPE=mysql');
putenv('TTRSS_DB_HOST=database.example.com');
putenv('TTRSS_DB_PORT=3306');
putenv('TTRSS_DB_USER=hoge');
putenv('TTRSS_DB_NAME=piyo');
putenv('TTRSS_DB_PASS=fuga');

# You will likely need to set this to the correct value, see README.md
# for more information.
putenv('TTRSS_SELF_URL_PATH=https://example.com/');
EOF

php update.php --update-schema
  1. TTRSSを設置したURLにアクセスする
  2. ID: admin, PW: password でログインする
  3. ログインパスワードを変更する
  4. 適当にフィードを登録する
  5. php update.php --feeds を流す
  6. TTRSSの画面でフィードが取得できることを確認する
  7. cronに以下のコマンドを適当に登録する
    • /usr/local/bin/php /home/<USER>/www/tt-rss/update.php --feeds --quiet 1> /dev/null

トラブルシューティング

TTRSS画面を開くとエラーが出る:Exception while creating PDO object:could not find driver

.envに設定を書いても読み込まれないのでconfig.phpに書く

TTRSS画面上にRSSの取得失敗エラーが出る:Update process failed with exit code: 127 ()

以下のコマンドを実行したときにエラーが出る筈なので、それを見て対処する

php update.php --force-update
php update.php --feeds

phpのパスが見つからないと言われた場合はconfig.phpputenv('TTRSS_PHP_EXECUTABLE=<PHP_PATH>');を追加して、phpのパスを設定すれば直る

フィードを追加しても更新されない

勝手に更新されることはないのでCRONが走るのを待つか以下のコマンドを流す

php update.php --feeds

Androidアプリが欲しい

Google Playにはなく、公式サイトからapkを落としてくる必要がある。
昔は有料だったが今は地味に無料化されている。

https://gitlab.tt-rss.org/tt-rss/tt-rss-android/-/releases

参考情報

2023-05-04現在、無料枠では利用できない可能性があります。

Google ColaboratoryでStable Diffusionを動かす場合、無料と有料でどの程度変わるのか試してみたのでその結果。ざっくり4倍ほど変わるのかなというのが体感です。

レンダリング条件

今回は以下の設定で回した結果を比較します。

WebUIの設定スクショ

ベースとなるNotebookは以下を使っています。

https://gist.github.com/Lycolia/cb432ad1b1ce083482b5487c131b5d12/80a059931c538b10d55cf9fcbf82220f24e64653

設定値は以下です。ほぼデフォです。

設定
Propmpt (illustration:1.0), masterpiece, best quality, 1girl, solo, happy, smile, theater, (perspective:1.3), from below, (looking away:1.2), (from side:1.0), {{shot_hair}}, smile, bangs, shaggy, (brown hair:1.1), swept_bangs, thick_eyebrows, skin_fang, closed mouth, {{purple eyes}}, gray {{jacket}}, white shirt, glasses, {{small breasts}},
Negative Prompt nsfw, (worst quality, low quality:1.4), (depth of field, blurry, bokeh:1.5), (greyscale, monochrome:1.0), multiple views, text, title, logo, signature, (tooth, lip, nose, 3d, realistic:1.0), dutch angle,(cropped:1.4), text, title, signature, logo, (loli:1.2), school satchel, pink, school bag, school uniform, from behind
Model AOM3A1B
VAE orangemix.vae.pt
Sampleing method Euler a
Sampleing steps 20
Width 512px
Height 512px
Batch count 1
Batch size 1
CFG Scale 7
Seed -1

比較結果

レンダリング時間はTotal progressの時間を書いてます。

\ Colab無料枠 Colab Pro
GPUクラス 標準 プレミアム
メモリ 標準 ハイメモリ
GPU Tesla T4 A100
システムRAM 12.7 GB 83.5 GB
GPU RAM 15.0 GB 40.0GB
ディスク 166.8 GB 166.8 GB
レンダリング時間 8秒 2秒

セットアップ時間はどちらも5分ほど。

スペック情報参考

無料枠

Golab Proで標準GPUにしても同じです。

Tue Apr 11 12:50:30 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.85.12    Driver Version: 525.85.12    CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla T4            Off  | 00000000:00:04.0 Off |                    0 |
| N/A   70C    P8    33W /  70W |      0MiB / 15360MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0
              total        used        free      shared  buff/cache   available
Mem:           12Gi       628Mi       7.4Gi       5.0Mi       4.6Gi        11Gi
Swap:            0B          0B          0B

Colab Pro

Pay As You Goで有料枠買ってもGPUは同じです。

Tue Apr 11 12:55:03 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.85.12    Driver Version: 525.85.12    CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA A100-SXM...  Off  | 00000000:00:04.0 Off |                    0 |
| N/A   39C    P0    46W / 400W |      0MiB / 40960MiB |      0%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0
              total        used        free      shared  buff/cache   available
Mem:           83Gi       756Mi        79Gi       1.0Mi       3.3Gi        82Gi
Swap:            0B          0B          0B

おまけの成果物

そこそこちゃんとした絵は頑張ってプロンプト練ったり、ひたすら回したり、i2iを繰り返したりしないと、やっぱ出てこないですね。まぁモデルによっては楽に出せたりしますが、権利関係が怪しかったりするのでここには出せないです…w

あとがき

時間帯によってUIが異様に重くなることがあり、GPUの処理速度も時間帯によっては1秒未満で終わることがあった気もするので、この不安定さはクラウドユースの欠点だなぁと思いました。とは言え、GPUを買うことに比べれば手軽に利用できるのは、やはりメリットかなと思います。

よく使う人はグラボ買ったほうがストレスとかから開放される可能性はあるかもしれません。私はRTX2060なのでどう転んでもColabの方がマシなのが悲しいところ…。4070Ti買うか地味に迷いますね。