Yukii's Blog

Yet Another Tech Blog.

Rubyist のための python 標準 logging モジュールの擬似コード

2019/05/27

python には標準 logging モジュールがついてくる。しかしこの logging モジュール、ドキュメントを3回ぐらい読み直さないと、挙動がよくわからず、わからないどころか若干ドツボにハマる。 ドキュメントを3回ぐらい読み直す過程で、どうして擬似コードになっていないのか、という疑問が湧いてきたので、普段自分がよく使う ruby でその挙動をざっくりと再現してみた。 ポイント Logger は階層構造をなす Logger は effective ...

tags:  python  logging  ruby

Posix Sed で改行を出力する方法

2019/04/09

Posix Sed で改行を行う方法が、自明ではなかったのでまとめておく。 $ echo hogehoge | sed -e "$(printf 's/hogehoge/hoge\\\nhoge/g\n')" hoge hoge $ この挙動は、 posix の sed command の説明ページに記載がある。 The application shall escape the <newline> in the replacement by p...

tags:  posix  sed

Rails の Migration で「Lost connection to MySQL server during query」と言われた際の対処方法

2019/03/13

TL; DR read_timeout: タイムアウト秒数 を config/database.yml に書く。 詳細 Lost connection to MySQL server during query と言われながら、Rails で MySQL の既存の(巨大な)テーブルに index を追加する migration が失敗した。 ので、その原因を調査した際のメモ。 いろいろな情報がすごくミスリーディングだったりするので、ここにまとめを作っておく。 ...

tags:  rails  mysql

MySQL で json 配列の要素一つ一つをレコードとする

2019/03/02

MySQL で json カラムを用いた場合、その中身に json 配列を記録することができる。 普通に機能を開発していくと、この json 配列の中身から、その要素一つ一つを SQL 上のレコード1行に展開したい場合が出てくる。 それを実現するためには、 MySQL 8.0.4(?) から導入された JSON_TABLE を用いると良い、という話。 例えば、以下のようなテーブルがあったとする。 create table entries( id integer ...

tags:  mysql

SQLAlchemy で migration をやるときは Alembic を使うべき

2019/02/27

仕事で SQL Alchemy を使うことになり、その migration は何がいいのかを調べていた。 結論から言うと、 Alembic がいい、と言うことになる。 SQLAlchemy の migration 事情 SQLAlchemy migration で Google 検索すると、以下のライブラリが発見される。 sqlalchemy-migrate alembic パッと出てくる日本語記事は、そのどちらかをやってみた系の記事が大半で、わりと...

tags:  sqlalchemy  sqlalchemy-migrate  alembic

素の jekyll に bootstrap 4 を導入するまでにやったこと

2019/02/27

jekyll に対して bootstrap 4 を適用したいと思った。 既存のテンプレート/gem は、情報が氾濫してたり outdated だったりでつらかったので、素の jekyll に一つ一つ機能を足していく形で実現した。 備忘として、その際に行った操作を記録しておく。 使った技術: Bootstrap 4 jekyll 3.8.5 webpacker 4 最終的な構成 npm で bootstrap と依存ライブラリを管理 jek...

tags:  jekyll  bootstrap  sass  webpacker

mysql で json の中のオブジェクトからその値を json 配列で取得する

2019/02/26

やりたいこと mysql の json フィールドに json オブジェクトがあるとき、オブジェクトのキーは JSON_KEYS で取得ができるが、 一方でオブジェクトの値(value)の一覧を json 配列で取得したいと思った。 やり方 -> '$.*' を用いることで、これが実現可能。 クエリ例 with json_objs(json_col) as ( select CAST('{"key1": "value1", "key2": "val...

tags:  mysql

You should not use `dbi` gem in Rails project.

2019/02/25

TL; DR You should not use dbi gem inside Rails project. Otherwise, you’ll get an error something like: {:sanitize_conditions=>:sanitize_sql} is not a symbol nor a string Description In Daru, it seems to support Daru::DataFrame#w...

tags:  daru  rails  dbi

jekyll でのタグの取り扱いについて

2019/02/24

このブログのタグページを作りたいだけなのだけれども、 やたら情報が錯綜していて苦労してしまったので、 備忘を兼ねて記録を残す。 一言で jekyll-archives を使いましょう。 公式 Plugin ページ にも載っていて、ほぼほぼ安定していると思われます。 作業手順 Gemfile に以下を追加。 group :jekyll_plugins do gem 'jekyll-archives' end _config.yml に次を設定 plug...

tags:  jekyll

Capistrano3 で revision を表示する

2019/02/21

desc 'Show deployed revision' task :revision do on primary :app do execute "cat #{Shellwords.shellescape(current_path)}/REVISION" end end を deploy.rb に追記したのちに bundle exec cap production revision

tags:  capistrano

Elastic Beanstalk についての忘備録

2019/02/20

Elastic Beanstalk は、 aws で対ユーザーの WEB サーバーを立てるときに、 ほぼほぼ毎回お世話になる。 ただ、一度設定が済んでしまうと、ほとんどその後ほとんどいじらず、勝手によろしく動いてくれるので、新規のプロジェクトの度に beanstalk の設定に苦労している気がした。 この前、久しぶりに一から設定する機会があったので、備忘を兼ねてここにまとめておく。 Elastic Beanstalk とは heroku を aws に持ってきたよう...

tags:  elastic-beanstalk  aws