SQLAlchemyとSQLiteで日付を取り扱う

あたくしの脳にぼんやりと刻まれている情報によれば、SQLiteは文字列と数値しか扱えないはず。
日付どうする。いやセンセ、日付ぐらいは扱ってくれてもいいのでは。
さておき、SQLAlchemyを通した場合に、なにか賢い仕組みがあるはず。

SQLAlchemyのマニュアルの当該ページには、

Date and Time Types

SQLite does not have built-in DATE, TIME, or DATETIME types, and pysqlite does not provide out of the box functionality for translating values between Python datetime objects and a SQLite-supported format. SQLAlchemy’s own DateTime and related types provide date formatting and parsing functionality when SQlite is used. The implementation classes are DATETIME, DATE and TIME. These types represent dates and times as ISO formatted strings, which also nicely support ordering. There’s no reliance on typical “libc” internals for these functions so historical dates are fully supported.

超訳:
SQLiteは日付型持ってない。SQLAlchemyが独自にこさえてる日付とかの型は、日付フォーマット+SQLiteで使った場合に動作するようになってる。その対象になってるのはDATETIME、DATEおよびTIMEだ。
これらを使う場合に限っては順番とかもちゃんと正しく動くし、ISOフォーマットされた文字列として日付と時刻を表現する。
で、こいつらはlibc内の関数に依存していないので、歴史的な日付が完全にサポートされている。

うわー自信ない。特に最後の一行。逆に読んでたらどうしよう。だって「libc非依存なのでヒストリカルデートが完全にサポートされてる」って、前後つながってる感がない。
だいたい、libcってなんだ。cのライブラリか。

ちょろっと見るとORACLE様の変なページが見つかり、「表 2–10 libc の日付と時間の処理関数」というところで以下の3つの関数の記述がある。

  • getdate() ユーザー形式の日付と時間を変換する
  • strftime() 日付と時間を文字列表現に変換する。
  • strptime() 日付と時間の変換

ははあ。こいつら完全にあたし見たことあるわ、phpで。phpのあの関数ってこいつらをラップしてたんだろか。
見てみる。
こんなページがあった。
PLEAC-PHP(http://pleac.sourceforge.net/pleac_php/datesandtimes.html)

これによると、phpはいろんな方法で日付のサポートをしていて、

  • UNIX/Cライブラリベース
    (localtime, gmtime, strftime, strptime, mktime, time, getdate, gettimeofday)
  • PHPのネイティブ関数(date,strtotime)
  • DateTimeクラスベース

日付の扱い方にこういう種類があるんだよ、とある。
phpのstrftimeとかははラッパーだったんだー、いやそういう感じのことなんだろうなとは思っていたがちゃんと理解した。
Library [libc]-based routinesってことは、Cのライブラリってのがlibcってことでいいんだな。なので、SQLAlchemy+SQLiteにおきましては、こいつらには関係ない作りになってます。ってことですね。
いやー勉強になりました。

工面算段ってなんですか?

くめんと聞くとクメンヒドロペルオキシドを思い出してしまい、懐かしいです。
さてFF14のはなし。
kumen
説明を見ると「5ターンの間、レシピのレベルを下げる」と書いてある。
レベルを下げるとな。
何を言ってるのかさっぱりわからない。
そもそも、クラフターのパラメータについてはかなりぼんやりした理解しかしてないので、クラフターシミュレータつかったりしてはいるものの、基本的には出たとこ勝負でパリーンしたりしています。
でもたまには考えたい。

死にスキルではなさそうな雰囲気がプンプンしている工面算段がどういうアレなのか、試してみました。
だいたいHQのAFを着ている裁縫師が山繭糸を作るというシーンです。
作業精度312、加工精度298。マテリアとかはロクにはめてませんし、AFは一箇所、クエストで貰ったNQのままです。
メシ抜きです。

まずはなにもしないで普通に作ってみます。

模範作業	44
加工		104
上級加工	156

工面算段IIだとどうなるのか

模範作業	93
加工		138
上級加工	208

なんだこれ圧倒的じゃないか。
いままでピンときてなかったので、かなり分の悪い運任せで素材作ってました。もったいない。
インナークワイエットで段階的に加工精度が上がっていくことも合わせて考えると、いくらか希望も見えてくるという話です。

梅酒を漬けました

去年は6月に入ってから慌てて漬けたんですが、今年は違います。青梅の入荷がまだだが氷砂糖とでかいガラス瓶が並び始めた頃から注意を向け、週末になったら近所のスーパー「オーカワ(ホントは違う名前です)」へ行こうと決めておりました。
5月の終わりごろにオーカワへ。今年のぶんの梅を仕入れてまいりました。

が。
のっけから、残念ながら買うべきリカーを間違え、メルシャンの変な茶色いのを買ってしまいました……。なんだこれは。痛恨の極み。
なんで香料だのカラメル色素だのいれんだよ、バカじゃないのか。ほんとに君ら酒屋かね。センス疑うわ。
商品写真探したけどちょっとめんどくさくなったので、店頭にてお買い上げの際は気をつけていただきたい。いや美味いのかもしれないけど、余計なもの入れられてたっていうのががっくりくるのよね。
来年の梅に期待だなー、と、遠い目をする今日このごろであります。

AE(Area Effect)スペルを把握したい

「士気高揚の策」や「野戦治療の陣」など、今こそ使う!みたいな系統のスペルがいくつかあるわけですが、こいつは効果範囲を把握しておかないと無駄が増えそうです。じっさい、全員にバリアかけられないなどの無駄は増えてます。
それぞれがどのくらいの効果範囲を持っているのかは把握しておきたい。

士気高揚の策

(自分の周囲15m)

同じような役目の、幻術士/白魔術師のスペルはというと、

  • メディカ:自分の周囲15m
  • メディカラ:自分の周囲20
  • ケアルガ:30m以内の対象の周囲6m

こんな具合。メディカとおなじ感覚で使えるということですね。

野戦治療の陣

(30m以内の指定地点の周囲8m)
あんがい広い。

シャドウフレア

(25m以内の指定地点の周囲5m)
使ってみるとけっこうこじんまりしているという印象。あんまり大きくても無駄に巻き込んだりしますし、タンクの周囲をカバーするには十分な広さ。

リムサ・ロミンサの某所にて、確認してみます。
野戦治療の陣と、シャドウフレアの範囲の比較。
zenkei_small
青いほうが陣で、赤いグラウンドターゲットがシャドウフレア。かなり違うんですねー。