oracle-enhanced 1.7.11 and 1.6.9 has been released

JRuby (JDBC) に対する変更のみで、MRI (oci8) への変更点はなしのリリースとなる。

JRuby 用の OracleEnhancedJDBCConnection を使ったときに BINARY_FLOAT データベース型にマッピングされている AR のスキーマで定義した float に対して nil が返っているところを、MRI 用の OracleEnhancedOCIConnection での挙動と同じく近似値の Float インスタンスを返すようにしたのが変更点。注意点としては BINARY_FLOAT 型として格納する性質上、データベースに保存した値に対して丸め誤差が生じること。

github.com

丸め誤差のない形を期待する場合は、float ではなく decimal を使った AR スキーマ定義による保存を検討するのが良いと思う。

なお、MySQLPostgreSQL のアダプタでは float に対してそもそもの保存するデータベース型が異なり、丸め誤差が起きないようになっている模様。

1回休み

夜中に珈琲を飲みながら調べもの。問題を整理するまでに至らず閉店間際くらいに pplog に書き残していたメモを転載しておく。


ミリ秒の保存をどうしたものか問題メモ.md

問題が見えてきたので、あとでオレが思い出せればいいレベルでの書きなぐりメモ。

ActiveRecord::Base.connection.quoted_time(Time.current)
=> "2017-03-28 13:55:24.765214"

Ruby クラス

o.acts_like?(:time)o.respond_to?(:usec) を頭の片隅に置いておく。

  • Date
  • DateTime
  • Time

SQL

TIMESTAMP にもいろいろとあるようだ。はてさて。

  • DATE
  • TIMESTAMP
  • TIMESTAMP WITH TIME ZONE
  • TIMESTAMP WITH LOCAL TIME ZONE
  • ほかにもありそう

TODO

SQL 型を調べてミリ秒の保存できるできないのマトリクスを書き出すと良さそう。

第35回 西日暮里.rb

各々、Rails へのパッチを書いたり、Electron の話をしたり、TCP/IP の本を読んだり、Python を使ったりなどをやっていたりした。自分は oracle-enhanced の ISSUE から AR のテストをパスしていないものを見たりしていた。

あとオーガナイザーの joe_re さんから出版されたばかりの Electron の書籍を勤務先に献本頂いたりしていた (ありがとうございます & 執筆お疲れ様でした!) 。

次回は「リリース記念ですがテーマは自由で、Electron にも Ruby にも西日暮里にも関係なくても構いません。」といった出版記念 LT 大会とのこと。

nishinipporirb.doorkeeper.jp

OSS Gate東京ワークショップ2017-03-25

参加してきた。会場はいつものクラウドワークスさん。

oss-gate.doorkeeper.jp

メンターとして何回目かの参加で見えてきたこととして、ビギナーが OSS へのステップが踏めていなかったケースとして、どこから手をつけたらいいか分からないという課題を持っている人と、英語力に自信がなくて踏み出せないという課題を持っている、あるいはその両方の課題を持っている人というケースが多いように思えて、今後そのあたりをサポートしていけるといいんだろうなと思ったりした。

前者は、OSS Gate の王道になっている README をやるとは異なるものの、個人的には CI の設定を最新のプラットフォームに更新するといったものが取っ掛かりとしてオススメだし、後者はリアルタイムのやりとりというわけではないので実力が足りていない分は調べながら読み書きするといったことをするといったものになる。いずれも継続することで慣れてくるものだと思う。

現在の OSS Gate にはワークショップと別にミートアップというのがあるけれど、ミートアップの方をより OSS 活動を継続して行けるための場に倒して行けるといいのかなと考えたりする機会になった。