約束の地

キャロ組

Ubuntu 16.04 LTS で APNG (Animated PNG) を作る方法

※Ubnutu 16.04 LTS と書きましたが、Linux 全般で大丈夫でしょう 使用ソフト APNG Assembler を用います。SourceForge からバイナリを落としてもいいですが、依存関係があるのでパッケージで入れましょう。 $ sudo apt-get install apngasm

画像を WebP に変換する方法(Ubnutu 16.04 LTS)

Web

結論 1. webp のパッケージをインストールする。 インストールします。 $ sudo apt-get install webp 2. cwebp コマンドで変換する もっとも単純なコマンドだと以下のようになります。 $ cwebp INPUT_FILENAME.jpg -o OUTPUT_FILENAME.webp

Twitter の gem で ユーザ を取得する際はなるべくバルクで取得する

Twitter の gem 理由 Rate Limits があるから。 方法 方法は簡単です。ツイートの取得の際に users メソッドを用いればよいです*1。引数として配列を与えます。 補足 一度の API を叩いて得ることができるユーザオブジェクトの個数の上限は 100個であること…

Fitbit Versa で腕を動かしても画面が表示されなくなった時

Fitbit Versa これです。 自動で画面が表示されない 一部のテーマを用いている場合を除いて、Versa の画面は通常時は消灯しています。画面を見るような動き(例えば腕を軽くひねって手前に持ってくるなど)をすると自動で画面が点灯します。 ある時を境にし…

Twitter の gem で ツイート を取得する際はなるべくバルクで取得する

Twitter の gem 理由 Rate Limits があるから。 方法 方法は簡単です。ツイートの取得の際に statuses メソッドを用いればよいです*1。引数として配列を与えます。 補足 一度の API を叩いて得ることができるツイート個数の上限は 100個であることには注意し…

幻想水滸伝V などのキャラクターデザインを担当した藤田香さんが永眠

幻想水滸伝V などのキャラクターデザインを担当した藤田香さんが亡くなられたとのことです。 友人の藤田香氏が永眠されました。黒魔女さんシリーズでも知られるイラストレーターで、今も高校生時代の彼女に勝る絵が描けるとは思えない。本当に自慢のクラスメ…

Twitter の gem で ユーザ の情報を取得するときに注意すること

一言で ユーザを指定するときに「アラビア数字」を用いる場合、「文字列」なのか「数値」なのかを意識的に区別する。

PostgreSQL における CREATE ROLE と CREATE USER の違い

結論 どちらを使ってもほぼ同じ*1。どちらを使うかと迷ったら CREATE ROLE でよいと思います。 補足 厳密にはデフォルトで与えられる権限が LOGIN か NOLOGIN のどちらなのかという違いがあります CREATE USER ユーザ(ロール)を作成するときに WITH で指定…

Twitter の REST API における since_id と max_id はその数自身を含むか否か

結論 since_id 「その数より大きい」を表し、その数自身は含まない*1。 max_id 「その数以下」を表し、その数自身を含む。 注意点 since_id に 0 を指定するとエラーになる。 *1:「その数以上」ではないということ

Rails で マイグレーション の履歴をすっ飛ばして スキーマ だけを適用させたい場合

結論 以下の手順をたどります。

Rails で PostgreSQL を使う(MySQL との比較)

ポイントは2点 Rails で PostgreSQL を用いる際の設定でのポイントは以下の2点です。

PostgreSQL に外部のマシン(ホスト、アドレス)から接続する

結論 postgresql.conf と pg_hba.conf の2つのファイルを編集する。

PostgreSQL で postgres ユーザ(root ユーザ)のパスワードがわからなくなった時

postgres ユーザ(ロール) PostgreSQL では postgres というユーザ(ロール)がいわゆる root ユーザになりますが、こいつのパスワードを忘れたときの対処法です。 結論 1. pg_hba.conf を編集して認証をスキップさせる Ubuntu 16.04 LTS ならば /etc/postg…

Ubuntu 16.04 LTS で PostgreSQL の設定ファイルがある場所

結論 /etc/postgresql 配下。 さらに具体的には、上記ディレクトリのさらに下にある /etc/postgresql/10/main などの配下。10 のところにはバージョン番号が入ります。 設定ファイルたち いくつか設定ファイルがありますが、 postgresql.conf が総合的な設定…

Rails での タイムゾーン の設定

結論 config/application.rb に以下のように書いておけばよいでしょう。 config.time_zone = 'Asia/Tokyo' config.active_record.default_timezone = :utc

Twitter の REST API で得られる ツイートID や ユーザID を RDB に収めるときは bigint を使う

理由 ORDER BY で期待どおりの動作をしてくれないから*1*2。 Rails(Active Record)で bigint を使う Rails で予め用意している型に bigint はありません*3。したがって integer で定義した上で limit オプションを付与して明示的に bigint であることを指…

Rails の MySQL で Incorrect string value というエラーが出たとき

結論 文字コードの設定を見直す*1。 Rails では たとえば utf8mb4 の場合には、config/database.yml に明示的に encoding: utf8mb4 と書きましょう。 development: adapter: mysql2 host: YOUR_HOST encoding: utf8mb4 username: YOUR_USERNAME password: YO…

Rails (Active Record) で 外部制約(外部キー)を削除する

結論 remove_foreign_key を使えばいいです。 実例 class FooBarMigration< ActiveRecord::Migration[5.2] def change remove_foreign_key :users, :jobs end end 余談 ググったら外部制約のカラムそのものを削除する方法が多くヒットして大変でした*1。 *1:…

Ridgepole を用いて データベース の スキーマ を Git で管理する

Ridgepole こちらです。 データベースの構造の履歴を取る Ridgepole はマイグレーションツールとしての側面が強いですが、データベースのスキーマを取得するツールとしても便利です。 実行時のオプションに --export をつけるだけで指定したデータベースのス…

Twitter のツイートを MySQL に格納するときに Data too long for column と出るとき

結論 ツイートの本文は VARCHAR(255) では収まらない(ときがある)ので、TEXT型 にする。

Rails のマイグレーションでエラーが出てハマったときに調べるところ

大原則 データベースを直接いじってはいけない。マイグレーション(ファイル)経由で変更する。

Google Home で Play Music の音楽を聞く(無料プラン)

開封 Google Home Mini を買いました。 音楽を流す Alexa とは異なり、Home では無料で自分のライブラリの音楽を流せると聞きました*1。早速試してみます。Play Music に曲を登録するところは省略します。 *1:Alexa は Amazon Music で購入したものしかだめ

Ricty Diminished の 無印 と Discord の違い

結論 一例として、例えば「数字のゼロ」の場合、無印は数字の中心部分が「スラッシュ」であり、Discord では「点」である。日本語には違いはない。 具体例 Ricty Diminished(無印) Ricty Diminished Discord 補足(Windows でのインストール方法) Windows…

MiniMagick を用いて Ruby で ImageMagick (GraphicsMagick) を扱う

MiniMagick これです。RMagick はしばらくメンテがされていないようなので、現在ではこちらが選択肢になるのではないでしょうか。

Canon の複合機(プリンタ)の MG6130 で 青 だけが全く出なかった話

結論 インクタンクの C のオレンジテープに剥がし残りがあった 公式ページ 【詳細1】インクタンクのオレンジテープの剥がし忘れ、剥がし残りはありませんか? やったこと 改めて青色(C、シアン)のインクを取り出してチェックしたところ、オレンジテープが…

Sidekiq では キーワード引数 は使えない(今のところ)

結論 Sidekiq では キーワード引数 は使えない(今のところ)。 現象 知見

Ruby 2.5.x において mail gem で POP3 に接続できない(FrozenError が出る)場合

結論 これが全てです。

Whenever は スケジュールファイル の場所が異なれば crontab をマージしてくれる

Whenever これです。Whenever is a Ruby gem that provides a clear syntax for writing and deploying cron jobs. 同じユーザが Whenever を複数実行したとき foobar というユーザが schedule_a.rb を whenever --update-crontab したとします。その上でさ…

Rails で フォーム から submit された際に付与されるパラメータ「commit」を削除したい場合

結論 submit_tag にオプションで name: nil を付与する。 具体例 <%= submit_tag "foobar", name: nil %> form_for の場合はこんな感じになるかと思います*1。 <%= form_for @foo do |f| %> <%= f.submit '提出', name: nil %> 参考 *1:記述を一部省略

Rails の フォーム の パラメータ に付与される utf8=✓ を取り除く

結論 config/initializers/remove_utf8_enforcer_tag.rb みたいなファイルを作って、以下のように書きます*1。 module ActionView module Helpers module FormTagHelper def utf8_enforcer_tag ''.html_safe end end end end なぜ上記のようにするとよいのか…

Powered by はてなブログ