• 人気のコメント(0)
  • 全てのコメント
新着コメントはまだありません。
このエントリーにコメントしてみましょう。

    関連記事

    Rubyのnative extensionのビルドを簡単にするtirofinaleの試作 -- ぺけみさお

    kawasaki.rb #37で時間をいただいて、”native extensionのビルドどうしてますか?”というタイトルで発表...

    ブックマークしたユーザー

    • niship_08222017/06/08 niship_0822
    すべてのユーザーの
    詳細を表示します

    いま人気の記事

    いま人気の記事 - 学び

    新着記事 - 学び

    同じサイトの新着

    • ValgrindのMassifを使用してプログラムのメモリ使用量をプロファイリングする -- ぺけみさお

      1 userswww.xmisao.com

      実行するとmassif.out.pidというファイルが出力される。 pidの部分にはプロセスIDが入る。 このファイルにプロファイリング結果が保存されているので、Valgrindのms_printというコマンドで内容を表示する。 ms_printの出力は膨大なので、実際にはlessなどのページャで読むと良い。 -------------------------------------------------------------------------------- Command: ruby load_documents.rb Massif arguments: (none) ms_print arguments: massif.out.8336 ----------------------------------------------------------------------
    • リバースプロキシ化したnginxでHostヘッダを素通しする設定 -- ぺけみさお

      1 userswww.xmisao.com

      nginxによるリバースプロキシでは、HTTPのHostヘッダがnginxにより書き換えられてバックエンドのサーバに伝わる。この挙動は、バックエンドでHostヘッダに基づいて処理をする場合(例えばCookieの付与)に、思わぬ落とし穴となることがある。 これを避けるために、バックエンドのサーバにも、nginxにアクセスされた時と同様のHostヘッダを付与してやりたくなる。nginxではproxy_ses_headerの設定を使えばこれを実現できる。 server { listen 80; server_name example.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; } } この設定のproxy_set_header Host $host;がHostヘッダをnginxで
    • Sinatraのエラーハンドラはdevelopment環境(デフォルト)では動作しない -- ぺけみさお

      1 userswww.xmisao.com

      Sinatraでは例外発生時にエラー画面を表示するためのエラーハンドラerrorが用意されている。これにより以下のようなエラーハンドリングが可能である。 error do # すべての例外を捕捉 end error MyException do # MyException例外を捕捉 end error 403 # ステータスコード403を捕捉 end ただし、注意点としてdevelopment環境(デフォルト)では、Sinatraのエラー画面が出てきてしまい、これらのエラーハンドラは動作しない。エラーハンドラを期待通り動作させるには、Sinatraの環境を設定してやる必要がある。環境を設定するには以下3つの方法がある。 環境変数RACK_ENV環境変数にproductionを設定してSinatraアプリケーションを起動することで環境を設定することができる。
    • Sequelでレコードがあれば更新なければ挿入するUPSERTを実装 -- ぺけみさお

      1 userswww.xmisao.com

      レコードがあれば更新を行い、なければ挿入を行いたい。 そのようなケースはデータベースを使っているとしばしば存在する。 このような処理はINSERTとUPDATEを合わせてUPSERTと呼ばれる。 DBMSの中には、UPSERTを1ステートメントで行える機能を持つものがある。 MySQLやSQLiteのREPLACE構文がそれである。 しかしREPLACE構文は標準化されていないので、DBMS依存のプログラムとなり使い勝手が悪い。 またSequelはREPLACE構文をサポートしていない。 本エントリではDBMSに依らずに使用できる擬似的なUPSERTをSequelのプログラムで実装する。 以下がプログラムで実装した擬似的なUPSERTの例だ。 Sequelで実行されるSQLはコメントで併記した。 require 'sequel' DB = Sequel.sqlite DB.create_t

    初回は無料!Apple制作番組「Planet of the Apps」配信開始 - iPhone Mania

    4 users https://iphone-mania.jp/

    天変地異感が半端ない!カナダで発生した竜巻がすごすぎて明日はどっちだ! : カラパイア

    2 users http://karapaia.com/