タグ

ブックマーク / techracho.bpsinc.jp (3)

  • Rubyの内部文字コードはUTF-8ではない...だと...?!|TechRacho by BPS株式会社

    こんにちは、hachi8833です。 少し前に、babaさんから「Rubyの内部文字コードはUTF-8じゃないよ」とツッコミがありました。 (追記: 上は会話の途中から切り取りましたのでご了承ください) いきなりの展開にくらくらきましたが、babaさんはさらにたたみかけます。 こうしたことはとっくにご存じの方も多いと思いますが、「Rubyといえば2.0以来UTF-8完全対応なんじゃないの」と勝手に思い込んでた私は脳に掌底をらったような思いです。ああ、でもこういうことがあるから面白い。 ⚓ プログラミング言語と内部文字コードの関係 まず最初に押さえておきたい点です。プログラミング言語で文字コードに関連する部分は、「文字列」「正規表現」「入出力」「コード中の文字リテラル(""の中など)」「コード中の文字リテラル以外の要素(変数名など)」「ファイル名」などが中心になります。そして文字列に関連し

    Rubyの内部文字コードはUTF-8ではない...だと...?!|TechRacho by BPS株式会社
  • Ruby文字列のUnicodeエスケープシーケンスをデコードする|TechRacho by BPS株式会社

    JSON APIで取得した文字列は、普通日語部分がUnicodeコードポイントにエスケープされています。 たとえばTwitterAPIで取得したJSONは、単純に文字列として見ると以下のようになります。 # wget http://api.twitter.com/1/users/lookup.json?screen_name=TwitterJP [{"name":"TwitterJP","time_zone":"Tokyo","follow_request_sent":null,"location":"\u6771\u4eac\u8d64\u5742","profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/3407356865\/62f0d53222361fbd2c1fe9889f4cc559_normal.png","p

    Ruby文字列のUnicodeエスケープシーケンスをデコードする|TechRacho by BPS株式会社
  • Rubyでマルチスレッドプログラミング|TechRacho by BPS株式会社

    RubyはWeb界隈でよく使われてるスクリプト言語の中では比較的簡単に割と格的なマルチスレッドプログラムを書くことができます。 うまく使うとI/O待ちで遅くなっているが、必ずしも順番に行う必要のないプログラムの実行時間を短縮したりすることができます。(たくさんのURLにアクセスしてレスポンスを取得してくるクロウラーなど) しかし現在最も広く使われているRuby1.8ではスレッドの実装はいわゆるグリーンスレッドという実装で、OSによるスレッドを使えないため、マルチコアの恩恵を受けることができないので、大量のデータをマルチコアで処理する目的などで使っても効果が薄い(どころかまったくない)可能性が高いです。 Ruby1.9ではRubyでスレッドの動きを制御しているものの、ネイティブスレッドベースでの動作となっているため、マルチコアの恩恵を受けることができます。 それではさっそく、配列の各要素を

    Rubyでマルチスレッドプログラミング|TechRacho by BPS株式会社
  • 1