2009-01-01から1年間の記事一覧

JavaScript の関数はとても柔軟だった

1年以上放置していたO'Reilly Japan - 初めてのJavaScriptを最近またやり始めました。「5章 関数」を読んだので、覚えたことを書いてみます。タイトルの通り、JavaScript の関数が持つ柔軟性についてフォーカスを当てます。 なお、動作検証にはRhino - MDC(1…

COUNT 関数を使ってMySQL のインデックスの基本を理解する

Linux-DB システム構築/運用入門の8章「インデックスのチューニング(前編)」を読んだので、インデックスの基本について実際に手を動かしながら勉強してみようと思います。 内容としては、クエリを実行する際に、「インデックスだけにアクセスした場合」と、…

REST について調べたまとめ

普段仕事でRails を使っている身ですが、Rails 2.x 系を使っているものが1つもない。結構前からRails 3 の話題がでてきている今、そろそろRails 2.x をまともに使っておきたいと思ったので、まずはREST について調べました。最初にREST について調べたのは、…

Emacs からVim へ移行しました

今までCarbon Emacs を使っていたのですが、カスタマイズによって動作が重くなったり少し不満に思っていました。そうした中、Emacs23 がリリースされたり、Carbon EmacsからCocoa Emacsへの流れも来ていました。 僕もCocoa Emacs に移行しようと思ったのです…

ActiveRecord でbulk insert/update

mala さんのMySQLにおけるbulk insert と bulk update - 金利0無利息キャッシング – キャッシングできます - subtechのエントリーを見て, MySQL でbulk update ができることを知り, 丁度欲しい機能だったのでとりあえず動くだけのメソッドを実装. # User.ext…

現場で役立つRuby on Railsパターン(RubyKaigi2009)を聴いたまとめ

今年はRubyKaigi に行ってきました。今回聴いたセッションの内、いくつかのメモを残します。全てを1エントリーにまとめるのは量的にも厳しいし、エントリの切り方としても微妙なので小分けにして書いていきます。 あくまでメモなので間違いがあるかもしれま…

tscreen に移行した

OSX のデフォルトのscreen はpbcopy が動かない問題とかがあり、今までは開発版のscreen を使ってました。ですが、開発版の方はZenTestにくっついているautotest と連携する際にステータスラインの部分がきちんと動かなかったりしてました。 そこで、tscreen…

MySQL とメモリに関するまとめ

前回のエントリーデータベースを用いたセッションデータ管理についてで、MySQL とメモリの関係について良く分からない部分があると書きました。 実はここに関する理解はかなり曖昧な部分があって、調査して追記します。とくにメモリ利用量について。mysqld …

データベースを用いたセッションデータ管理について

Web アプリケーションとは切っても切れないセッション機構。DB ベースでセッション管理を行なって得られた知見と、それを元に考察した結果をまとめてみます。 セッションデータの特性 DB で管理される他のデータに比べ、セッションデータはかなり特殊です。…

Emacs でリアルタイムに文法チェックする設定

flymake でリアルタイム文法チェック - とりあえず暇だったし何となく始めたブログ を参考に設定。 設定後はこうなる 文法エラーが検知されると、エラー部分がハイライトされる 文法エラーは「ruby -c 編集中のファイル」でチェックされる エラー内容をミニ…

Google の「as_qdr=y15」のやつ検索バーカスタマイズすればいいと思った

404 Blog Not Found:tips - google - &as_qdr=y15を最も手軽に使う方法 に近いけど(デフォルトでできるという意味で)、Google 検索にローケーションバー使わない人は、検索バーの設定いじればいいと思う次第。というより、自分ではこれが一番使いやすかった…

MySQL のJOIN に関するメモ

内容 FROM 句のテーブルの順番と、MySQL がテーブルをJOIN する順番は別 STRAIGHT_JOIN と eq_ref, ref eq_ref になるようにするために JOIN 条件の書き方 STRAIGHT_JOIN をいつ使うか 今回の検証に用いたMySQL は4.0.26。また、例として、以下のテーブルを…

git 環境のセットアップと簡単なチュートリアル

ソーシャル化するOSS開発者たち − @ITとGitHub Issue Tracker! - GitHubを見て、github がとても楽しそうなので、git を使い始めました。 http://github.com/lukesilvia/ 良く使いそうなコマンドとかを調べたのでメモ。 git インストール インストール Mac …

SQL のWHERE句の条件に関数を使うとインデックスが使用されない

Rails でfind_by_sql を使う場合に、大きいSQL だと次のようにSQL 中に関数を使ってしまうことがありました。 単純な例だとこんな感じ。 User.find_by_sql([<<-SQL, {:id => 1}]) SELECT * FROM users WHERE IF( :id, id = :id, 1 ) SQL でも、このようにIF …

*scratch*, *Messages* 以外のバッファを一気にkill

欲しかったので作成。初elisp! (defun my-kill-all-buffer() (interactive) (yes-or-no-p "kill all buffer? ") (dolist (buf (buffer-list)) (unless (member (buffer-name) '("*scratch*" "*Messages*")) (kill-buffer buf)))) 動作確認 GNU Emacs 22.2.50…

大きめのテーブルにカラムやインデックスを追加する際の注意

先日大きめ(といっても500万行くらい)のテーブルにインデックス付きのカラムを追加しようとして痛い目にあったので調査。 大きめのテーブルにカラムやインデックスを追加するとどうなるか 今回は単純に、「ALTER TABLE 〜 」で追加しようとしました。追加す…

Hash を使ったよくある集計

メモ。あるオブジェクトの集合があって、各オブジェクトの属性を集計したいとかそういう場合。 基本的に、Hash を使って、key-value 型でやればいい。 # -*- coding: utf-8 -*- if RUBY_VERSION < "1.8.7" require 'enumerator' end Club = Class.new do att…

Trac + SVN + IRC の良さ

ちょっと考える機会があったのでメモ。僕の仕事環境だと、Trac, SVN, IRC(, あとplagger) を中心に開発している。 これらを使っていて思うこと Trac と連動しているとタスク管理が楽だよねー!……違うよ!全然違うよ!それだけなんて勿体ない > ↑ぶっちゃけ最初…

クラスがレシーバの場合のclass_eval とinstance_eval の違い

ここ以前から分からなかったので調べてみました。 基本 class_eval Module で定義されている なので、クラスやモジュールにしか使えない irb(main):009:0> String.respond_to?(:class_eval) true irb(main):011:0> Enumerable.respond_to?(:module_eval) tru…

Ruby 1.8.5 のSHA1 がやたら速いんだが

何故だ。MD5 の方が速いんじゃないの? ベンチマーク $ /usr/local/bin/ruby -v hash_bench.rb [~/tmp] ruby 1.8.5 (2006-08-25) [i686-darwin9.5.0] Rehearsal ---------------------------------------- MD5 4.070000 0.010000 4.080000 ( 4.102120) SHA1 1…

UNIQE INDEXと JOIN とORDER BY で無用なソートが発生するケースとその回避方法

Amazon.co.jp: 実践ハイパフォーマンスMySQLを読んでいたら「クエリチューニング」の章(p. 101)でタイトルにある問題が取りあげられていたので考察。 MySQL のバージョンは「5.0.67」。 サンプルDB サンプルとして、よくある商品と注文のテーブルを使います…

まつもとゆきひろ氏が語る「ビューティフルコード」セミナーに行って来た

まつもとゆきひろが語る「ビューティフルコード」×「プログラマ35歳定年説」に行ってきました〜。今年初めて行ったイベントなのですが、とてもいいお話を聞くことができました。美しいコードとはどのようなものか、またそのようなコードを書けるようになるた…

nano jpmobile

rails で携帯アプリと言ったら定番のjpmobile の超軽量コピー。 できること キャリア判定 端末情報取得 ソース # porting from http://github.com/darashi/jpmobile/tree/0.0.3 class Mobile def self.carriers self.constants - %w[Base] end def self.crea…

一次情報にあたることの重要性

最近考えていることがありました。それは、いわゆるギークな人やハッカーは人はどんな風に勉強してきて、今その高みにいるんだろうということです。Shut the fuck up and write some code. ってつっこまれそうな内容ですね(ノ∀`)でも考えてしまうわけです。…

LDR のエントリー中のリンクを開くグリモンが便利

id:hogelog さんが作成されたldr_view_entry_link.user.js(RSS消化を高速化 - 大学6年生のhogelog で紹介されてる) が便利。 僕もRubyNewsとかreddit.com 日本語版 のfeed を購読しているので、エントリー中のリンクをショートカットで開けたらな〜って思っ…

GoogleChartAPI Wrapper(QR コード)

Rails でQR コードを出力する必要がありました。要求は以下の3点。 普通のビュー内でも使いたい Helper でQR コードAPI用のURL を生成して、それをimage_tag に渡せばおk QR コードだけポップアップする機能も欲しい Controller でsend_data + ビューでlink_…

Evernote からChangeLog + chalow に移行した!

今までEvernote を使って作業ログを残していたのですが、chalow の方がメリットがあったので、chalow を使ってみました! Evernote のいいところ シンクロできるのでどこでも使える クロスOS なクライアントソフトがある チェックボックスを挿入できて、Todo…

Macports のmysql の文字化け問題、readline 問題を直す

macports のmysql4 やmysql5 を普通にインストールすると、mysql クライアントから日本語を正しく入力できません。例えば、以下のようなクエリを入力すると、Return を押した時に日本語が見事に化けます。 SELECT name AS 名前 from users; さらに困ったこと…

Rails はString/Fixnum の違いで結構はまる

昨日、はっまった ^^); ・・・ ActiveRecod.find(id) の id は文字列でも良いが、全てのAPIがそうなわけではない! - yuum3のお仕事日記と全く同じハマり方をしました。 form のselect はハマる 例として、商品を作成するフォーム。商品にはジャンルが指定で…

Rails 1.2.3 〜 2.2.2 までの主な変更点のまとめ

rails の2.x 系をまともに勉強していなかったので、調査しました。コピペの部分も多いですが、情報ソースと共に記述します。 あまり変更点がなかったマイナーアップデートは除外してあります。 1.2.4 2.0 からエラーになる構文に対する警告出力 1.2.4 で警告…