QA@IT

そのギモンは、あなただけのもの?

ITエンジニアが日々遭遇する課題やトラブルはたいてい、1人だけが出合うものではありません。QA@ITで質問・回答を共有しませんか?

この度、弊社が運営しているRailsで開発したサービス(会員数20万程度の規模のサービス)の速度改善を行うことになりました。 もし、同様のサービスにおいて速度改善に知見がある方がおりましたら、 ご助言頂けないでしょうか。 varnishやmemchacedといったサーバーの環境設定、 Railsのscopeやrenderのパフォーマンスの良い記述方法などを、 教えて頂けたら幸いです。 以下、...

Railsのデバッグはどうしていますか? 私はruby-debug系のdebuggerというgemを使っています。 コード中にdebuggerと書くとブレークポイントになります。 ブレークポイントを通るような操作をおこなうとrails serverしているコンソールが止まるのであとはそこで変数を見たりステップ実行したり、他のブレークポイントを置いたりしています。 ですが、とても非効率な気がし...

StrongParametersでaction_argsを使用した場合、アクションの引数に指定したパラメータが存在しないとエラーになり、エラーを回避する為にはデフォルト値を設定すれば良いようなのですが、このデフォルト値にnil以外の値を設定しても全てnilになってしまうという事象になっています。 asakusarb/action_args · GitHub # the `page` para...

C#で以下のようなコードを書いていますが、実際にMono上で動かすとObject.GetType()を呼び出すかどうかで挙動が変わってしまい困っています。 // tmp.cs using System; using System.Reflection; namespace Tmp { public class Packer { public Packer() { } public void ...

rails group records by dates of created_at - Stack Overflow 上記の質問の回答に下記の記述があるのですが、これを各DBに依存しない形で書く事は出来ないのでしょうか? DBに依存せずに一つのコードで動作させたい場合は、created_dateのようなdate型のカラムを別に用意するしかないのでしょうか? For MySql you ca...

『SQL アンチパターン』の第 7 章「マルチカラムアトリビュート(複数列属性)」に、以下のような SQL が出てきます。バグに複数のタグを付けられるような設計において、 'printing' タグが付き、かつ 'performance' タグが付いているバグの検索を行う SQL です。 SELECT * FROM Bugs INNER JOIN Tags AS t1 USING (bug_...

http://www.jstorimer.com/2013/03/26/brian-shirai-threads.html を読んでいて思ったのですが、GILは空気のような当たり前の存在になっているためか、思考停止していて、そのありがたさがわからなくなっていることに気が付きました。 単純に考えれば、せっかくRuby 1.9以降はネイティブスレッドになったのだから、GILをなくせばマルチコアを...
3 answers 5 votes

シェルスクリプトを書くときに、shebangの直後にset -eをつけるかどうかで迷っています。 具体的には、自分で書いたデーモンサーバのinitスクリプトです。 たしか昔にset -eはつけるな、というのをどこかで学んで、それ以降、なんとなくそれに従ってきていたのですが、たとえばUnicornの例もそうですが、set -eをつけている例をよく見るようになってきました。 そこで、自分がset...

Rails がデフォルトで出力するログは、あまり機械可読性が高くなく、開発時にはよくても、運用時に分析・調査するのがとても大変なように思います。 たとえば、あるリクエストで例外が発生したときに、同じユーザがどのようにページ遷移してきたか調べる、といった調査は非常に面倒です。 Rails のログについて、こんなフォーマットで出力している、この記事を参考するとよい、便利なライブラリがある、などの...

JavaScriptで配列をループを使って処理する場合、 for...in for ネイティブのArray.forEach() jQuery.each() Underscoreなどの _.each や _.mapなど Lo-Dashの _.each や _.map など などが使えるかと思います。何を使えばいいのかよく分からなくなりました。基準や注意点などがあれば教えて下さい。 以下、自分で...

こんばんは。Web アプリケーションの認証とセキュリティに関して教えて下さい。 Rails のセッション管理 Rails は RESTful な Web アプリケーションの構築を可能にするとは言っていますが、実態としてはサーバーサイドに保持し、セッション ID は Cookie に保存しているものだと思っています(Rails の経験が殆ど無いので間違っていたらすみません)。 で、最近こちらの...

JavaScript を書いています(ブラウザがターゲットです)。手動テストが面倒になって、 Jasmine を使ってテストを書きはじめています。 オブジェクトに含まれる関数(プロパティ)の数が増えてきたので、外から呼ばれることがないものはプライベートメソッドのように扱おうと、クロージャを使って、以下のように書きました。 var Foo = function(foo) { this.foo ...

現在、rails3.2.11で開発をしているのですが、deleteボタンを押すと必ず'Are you sure?'が2回でます。そこでこれをなんとかしたいと考えています。 具体的な状況を説明します。 rails new testrails cd testrails/ rails g scaffold blog title:string rake db:migrate rails s でプロジ...

Mac OS X 10.7でg++(4.2.1と4.7.2)やclang++ 4.2を使って64bitバイナリを作っています。 このような環境において、 整数リテラル -0x80000000 整数リテラル -2147483648 std::numeric_limits<int>::min() の戻り値 以上3つは同じ値を表しているものと理解していますが、 この3つがそれぞれ型が異なるような結...
1 answer 1 vote

はじめて投稿させて頂きます。 ChromeExtensionでContextMenuを使用して、現在選択されているテキストを現在表示されているタブに送って、 htmlのテンプレートを追加しようと考えています。 また、そのテンプレートではイベント登録しようと思っています。 (evernoteのような拡張機能) テンプレートのhtmlを作っといて、現在のタブへ追加することはどのようにしてできます...

Backbone.jsやAngularJSなどフロントエンド(クライアントサイド)のMVCフレームワークを使う場合、 サーバサイドの役割はどう変わるのでしょうか? 例えばサーバサイドでMVCフレームワークを使っていて、Model->Controller->Viewとデータを渡して動的なhtmlを吐いてたりしたのは、 クライアントサイドで行うようになって不要になる気がするんですが…その辺あまり...

追記 エラーの本質が判明しましたのでタイトルを変更しました Haml で Encoding::CompatibilityError が発生する → Haml で markdown (RDiscount) を使って日本語を扱うと Encoding::CompatibilityError が発生する markdown 側の問題だったのでタイトルに Haml を含むのはどうかとも思いますが,変わり...

ruby 2.0.0-p0 がリリースされ、いろいろと新しいものを試すにも良いタイミングだと思います。 そこで rvm や rbenv やそれ以外のものも含めて、複数バージョンの ruby を切り替えたり、デプロイ先のサーバーでの ruby のバージョンを指定したりするのに、最近は何がおすすめなのかを知りたいです。 メリットやデメリットなどの理由も含めておすすめをお願いします。

webでメール会員登録の仕組みを作りたいと考えています。 流れは以下のようなイメージです。 1.Web上でメールアドレス等の入力をして登録(仮登録) 2.有効期限付き(24時間以内にアクセスしないといけない等)のURLを作る 3.URLを書いたメールを、入力されたメールアドレスへ送信 4.メールを受け取り、URLへアクセス、本登録が完了 ここで分からない点は、 ・登録したユーザごとに一意なU...

capybara と phantomjs で confirm 対応に挑戦しています。 terminus はどこをいじれば良いのかわからなかったので、 capybara 2.0 対応版が出ていた poltergeist で https://gist.github.com/znz/4993414 という実装を試してみたのですが、 onAlert の方はちゃんと呼ばれているのに、同じように実装した...

目的は、画像ファイルを取得して、前回取得時とファイルハッシュが一致しなければ ダウンロード(出力)するということを行いたいと思っています。 ですが、そこで、ファイルを出力してから、ハッシュを求めるのではなく、 ファイル出力前に、MD5でハッシュを取りたいのですが、全くコードが思いつきません。 Streamやbuffer等を使えば可能なのでしょうか? (実用性云々抜きにして、ファイルサイズの上...