タグ

ブックマーク / qiita.com/jkr_2255 (3)

  • utf8mb4で巻き起こったトラブル - Qiita

    MySQLで、BMP外の文字を入れる場合には、utf8ではなくutf8mb4が必要となります。ただし、ただ書き換えただけではうまくいかない部分がありました。 TL; DR MySQLのインデックス長は767バイトまで 1文字4バイトのutf8mb4では191文字が限界 その(文字コード/カラム長/インデックス)、必要ですか? エラーをらう モバイル向けのサービスを作ることになったのですが、Unicodeの絵文字入れられるようにすることが必要だろう、ということで、文字コードをutf8mb4とすることにしました。で、いつものようにマイグレーションを作成してマイグレートをかけたのですが、エラーになってしまいました。 見てみると、インデックスの長さでエラーとなっていました。MySQLのインデックスは最大767 バイトで、RailsやCakePHPのデフォルトで生成される255文字のVARCHAR

    utf8mb4で巻き起こったトラブル - Qiita
  • Ruby 2.4でIntegerに一本化される整数 - Qiita

    Ruby 2.4から、整数のクラスが付け変わることになりますが、特にCエクステンションを書いている場合は注意の必要があります。 Ruby 2.3までの世界 Rubyの世界にももちろん整数がありますが、(Ruby側から見て)今までは抽象クラスのIntegerの下に、絶対値の小さな整数についてはFixnum、それに収まらないものについてはBignumという具象クラスがある、というように分かれていました。このあたりについては、以前書いた記事が参考になるかと思います。 問題点 このような形にしていることで、いくつか問題がありました。 FixnumとBignumは実装の詳細の違いで、Ruby側から違いが見える必然性はない 同じ整数なのにFixnumとBignumで挙動を違える、なんてことはむしろやるべきでない 環境によってFixnumのサイズが違う(可搬性に乏しい) RubyのISO規格上も、Int

    Ruby 2.4でIntegerに一本化される整数 - Qiita
  • Reflowを制するものはDOMを制す - Qiita

    すごい記事が1日目2日目で来ている中で恐縮ではありますが、フロントエンドJavaScriptでパフォーマンス点から気にしたほうがいい部分について書いてみることにします。 DOM律速になるケースもある よく「JavaScriptが遅い」ということも多いのですが、具体的にはどのあたりが遅くなってくるのでしょうか. 純粋にJavaScriptのスクリプト処理が遅い…最近はブラウザ自体も高速化しては来ましたが、それを追いかけるようにJavaScriptの巨大化も進んでいます。ただし、純粋にプログラム言語的な処理なら、Web Workerに振ることで並列化が可能です。 Ajaxや画像読み込みなどの通信が遅い…サーバ側で高速化する手もありますが、状況によってはJavaScriptで先読みを始めておいて、体感時間を短くすることも可能かもしれません。 DOM操作・表示が遅い…これについて今回考えてみます。

    Reflowを制するものはDOMを制す - Qiita
  • 1