Windows のブラウザでフォントを綺麗に表示する

自分は Migu フォントが好きで使ってるんだけど、Windows のブラウザ上でこのフォントを使うと何故か字が汚く表示される。 まあ Windows なんて使わなきゃいいんだけど、会社では Windows を使わざるを得ない。 しかたないのかなーと思ったらこういう記事を…

AndroidスマホをLinux PCのカメラにする

自分の作業机は正面に27インチディスプレイを置いてノートPCはその脇に置いてるんだけど、Zoom とかのオンラインミーティングで顔出しする時にPCのカメラだと斜めからの映像になって良くないなーと思ってて、Webカメラつけるのもいいかと思ったんだけど今品…

mrubyudf : C を書かずに Ruby だけで MySQL の UDF を作る

昨日はmrubyでMySQLのUDFを作ってみたんだけど、関数毎にCのプログラムを書くのがめんどくさいので、簡単なツールを作ってみた。 github.com 詳しくは README 参照。 fib.rb と fib.spec をこんな感じで作っておいて、 fib.rb LONG_LONG_MAX = 9223372036854…

RubyでMySQLのUDFを作る

昨日はCでMySQLのUDFを作ってみたんだけど、今日はRubyで作ってみる。Rubyと言ってもmrubyだけど。 mrubyは5年ぶりくらいに使ってみたんだけど、相変わらずドキュメントが少なくてなかなかつらい…。 まず mruby のビルド。MySQLのUDFは共有ライブラリにしな…

MySQLのユーザー定義関数(UDF)

MySQLのユーザー定義関数(UDF)は大昔に作った記憶があるけど、最近作ってなかったので試しに作ってみたメモ。 関数の中身はなんでも良かったんだけど、フィボナッチ数を求める fib()を作ってみた。 ちゃんと知りたい場合は、マニュアルとかサンプルプログラ…

Puma と Sequel

最近仕事でまた Ruby を使い始めて、簡単な Web API を Grape + Sequel で作ったりした。 SQLで書きたいクエリが分かってる場合は、Sequel の方が ActiveRecord よりも簡単に使えて良い。 レイヤー的には Arel と同じような感じなのかな。Arel 使ったことが…

Ubuntu MATE で Win+P(Super+P)を無効化する

[追記] Ubuntu MATE 20.04 で Win+P は無効になった。やったー https://launchpad.net/ubuntu/+source/mate-settings-daemon/1.24.0-1 + Drop 0001_new_video_key.patch. Rejected upstream. Ubuntu 17.10 から Ubuntu MATE を使ってるんだけど、Ubuntu MAT…

Rack アプリでクライアントのIPアドレスを取得する

Rack アプリで、クライアントのIPアドレスを取得する方法を調べてみたのでメモ。 どうやら Rack::Request#ip を使えばいいらしいので Rack アプリはこんな感じで。 [config.ru] class HogeApp def call(env) req = Rack::Request.new(env) [200, {}, [ "req.…

Grape

簡単な API サーバーを Ruby で作ろうと思って Rails じゃ大げさすぎるし Sinatra かなーと思ってたら Grape というのがあったので試してみてる。 自分用のメモなので、ちゃんと知りたい人は https://github.com/ruby-grape/grape/blob/master/README.md を…

MySQL 8.0.19 のオフセットつき日時リテラル

MySQL 8.0.19 のリリースノート にこんなのがあって、 MySQL now supports datetime literals with time zone offsets, such as '2019-12-11 10:40:30-05:00', '2003-04-14 03:30:00+10:00', and '2020-01-01 15:35:45+05:30'; these offsets are respected …

MySQL 8.0.19 で追加された TABLE と VALUES

1/13 に MySQL 8.0.19 がリリースされたんで、リリースノート を眺めてると気になるのがいくつか。 Important Change: MySQL now supports explicit table clauses and table value constructors according to the SQL standard. These have now been implem…

Ruby 2.7 の変更点 - 2.7.0 リリース!

Ruby 2.7 アドベントカレンダーの25日目の記事です。 qiita.com 12/25 に Ruby 2.7.0 がリリースされました! 2.7.0-rc2 との NEWS の差分を見てみます。 warning 抑止オプション Numbered parameter #method, #instance_method が refinement 対応 Range#=…

Ruby 2.7 の変更点 - StringScanner / open-uri / CSV

Ruby 2.7 アドベントカレンダーの24日目の記事です。 qiita.com StringScanner とか CSV は Ruby の標準ライブラリだけど本体の外で開発されているやつで、NEWSを見ても詳しくは書いてなかったので、調べてみました。 StringScanner fixed anchor モード ope…

Ruby 2.7 の変更点 - Symbol / UnboundMethod / OptionParser

Ruby 2.7 アドベントカレンダーの23日目の記事です。 qiita.com Symbol Symbol#start_with? / #end_with? 追加 UnboundMethod UnboundMethod#bind_call 追加 OptionParser Did you mean? Symbol Symbol#start_with? / #end_with? 追加 Symbol に start_with?…

Ruby 2.7 の変更点 - 2.7.0-rc2

Ruby 2.7 アドベントカレンダーの22日目の記事です。 qiita.com 12/21 に 2.7.0-rc2 が出たので rc1 との NEWS の差分を見てみました。 Array#minmax 追加 Range#minmax 追加 Proc#ruby2_keywords 追加 Array#minmax 追加 2.6 では Array#minmax は Enumerab…