2015-01-01から1年間の記事一覧
なぜ読んだか メタプログラミング Ruby を読んだ ので、この勢いで Ruby のことをもっと深く知りたかった。 どうだったか エキサイティングな体験だった。 この本には Ruby が Ruby コードをどうやって実行しているのか、ということが書いてある。字句解析し…
なぜ読んだか いつかは Rails のプラグイン的なものも作ってみたい。興味のあるライブラリのコードを読んだりしているけど、同じようには書けそうにないし、もう少し基礎を身につける必要があると感じていた。 どうだったか Ruby のオブジェクトモデルについ…
Nexus 5X 買って3日ほど使ったので感想を書いておきます。 Google ストアで買う人、住所、氏名は英語で入力しましょう。日本語で書くと宛名がおかしなアルファベットの住所になってて羽田で止まってしまいます(ヤマト運輸の羽田クロノゲートというところに…
動機 仕事で Rails アプリケーションにジョブキューを導入したい。 個人的に MySQL が好きなのでジョブキューとして Delayed Job を検討したが、ペンディングジョブが数万単位になるとスケールしないことがわかってやめた。聞いた話だけで判断するのはよくな…
約15年使ったドコモからみおふぉんにMNPした。いくつかポイントがあるので書いておく。 みおふぉんはドコモの端末をそのまま使えるので選んだ。IIJは昔から信頼してる。 テザリングできない問題 いま使ってる端末は Xperia A (SO-04E) という2年前の機種で、…
動機 会社でOpenStackベースのプライベートクラウドが使われ始めている。OpenStackのことは全く知らない。自分は主に利用する側になるけど、どういう仕組みで動いてるのか知りたい。あとNovaとかNeutronとか単語が意味不明でつらいのでわかった気になりたい…
3回調べたらブログに書くシリーズ。 前提 MacVim-KaoriYa を使っている version 7.4.769 fileencodings=guess,ucs-bom,latin1,iso-2022-jp-3,utf-8,euc-jisx0213,euc-jp あるファイルだけ vim で開くときに文字化けする そのファイルの文字コードは知ってい…
きっかけ Railsアプリケーションでは URL の末尾に .json などと書いてレスポンスのフォーマットを指定することができる。先日、このフォーマット部分の末尾に記号をつけてリクエストしても正しく動くということに気がついた。 /v1/users.json (これが正しい…
今年のペパボの新卒エンジニア研修ではキャリア・キーノートという試みを行っている。詳しくは ペパボ新卒エンジニア研修2015が始まっています | blog: takahiro okumura に書いてあるので、興味ある人は読んでみてください。とても充実しててうらやましくな…
2015年も後半に入ったので 2015年上半期の目標 - takatoshiono's blog を見ながら上半期を振り返ってみたい。上半期はこのような目標を立てていた。 Ruby on Rails と MySQL に詳しいおじさんになる 実際どうだったか?おじさんになれたのだろうか? よかっ…
これは何か? 波ダッシュのような文字を変換するための ruby 用ライブラリです。 takatoshiono/wavedash · GitHub 対象ユーザー アプリケーションの文字コードは utf-8 だが、MySQL の文字コードが ujis, eucjp-ms, cp932, sjis である アプリケーションの外…
なぜか忘れたけど MySQL のストレージエンジンについて調べたので書いておく。 はじめに断っておくと MySQL 5.6 以降について書いています。 MySQL の「ストレージエンジン」とはなにか? ストレージエンジンとはInnoDBのことである。 MySQLはプラガブルな(…
はじめに Rails のログファイルに CACHE (0.0ms) という行が出力されることがある。 CACHE (0.0ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = '1321459' LIMIT 1 [["id", "1321459"]] ここから以下のことがわかる。 このリクエストでこのクエリが…
MySQL で EXPLAIN を使って実行計画を調べていると Extra フィールドに「Select tables optimized away」というメッセージが表示された。これはなんだろうか? mysql> explain select max(id) from products ; +----+-------------+-------+------+---------…
どういう本か データベースのインデックスについて解説している本。Bツリーインデックスの内部構造、効率よくインデックスを使う方法、実行計画の見方などが書いてある。Oracleデータベースの用語を使って書かれているけど、「原理は他のデータベースに…
今更だけど MySQL 5.6 ではオンラインDDLの機能が追加されている。今日はこのオンラインDDLについて勉強したことを書いてみる。 MySQL のマニュアル MySQL :: MySQL 5.6 Reference Manual :: 14.11 InnoDB and Online DDL にいろいろ書いてある。いまから書…
ロック待ちでデッドロック InnoDB は同じロックを待つクライアントが 200 を超えるとデッドロック扱いになる、というやつがある。 このへんに詳しく書いてある。 Open database life: InnoDBのAUTO_INCREMENTが遅い問題は5.1でどう改善されたのか 同じロック…
一貫性のある非ロック読み取り InnoDB では MVCC (multiversion concurrency control) という仕組みによって 一貫性のある非ロック読み取り(Consistent Nonlocking Reads)を実現してる。 トランザクションの分離レベルが REPEATABLE READ (デフォルト) の…
1つ前のエントリ Query_time - Lock_time > long_query_time - takatoshiono's blog で以下のように書いた。 ソースコード MySQL 5.0.96 で Lock_time が 0 になるのが気になったのでソースをダウンロードしてきて追ってみた。Lock_time で grep すると以下…
MySQL(InnoDB)でロック待ちタイムアウトになるクエリはスロークエリログに記録されるのか? 気になったので調べていた。 ロック待ちタイムアウト あるトランザクションで UPDATE 中の行を他のトランザクションから UPDATE しようとするとロック待ちになる ロ…
2015年が始まってから1ヶ月が過ぎた(早い)。仕事の目標を決めるついでに個人の目標も決めたので書いておく。個人的なことすぎるので書くべきか迷ったけど、書かないより書いた方がいいことがありそうだから書いておく。 目標 Ruby on Rails と MySQL に詳し…
rbenv といえば 複数バージョンの Ruby を切り替えて使うための環境を提供してくれる便利なツールとして欠かすことのできないものですが、機会があってそれがどうやって動いているか調べたので、ここに書いておきます。また ruby-build は ruby をインストー…
仕事で使ってる MacBoox Air の OS がまだ Mountain Lion だったので、ようやく Mavericks にアップグレードした(Yosemite が出てるのにいまさらですけど…)。そしたらいろいろ動かなくなったのでやったことを書いておく。 1. homebrew のシンボリックリン…