タグ

rubyに関するkat0usiのブックマーク (21)

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

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

    Rubyの内部文字コードはUTF-8ではない...だと...?!|TechRacho by BPS株式会社
  • Ruby のオススメの機能7選 - Qiita

    この記事は Ruby Advent Calendar 2015 の 8日目です。 比較的あまり知られていないと思うオススメの Ruby の機能を 7つ紹介します。 Enumerator.new Enumerator.new は知ってはいても、あまり使わない人が多いように思います。 私は非常によく使います。 理由は スコープを新たに導入したい Producer-Consumer パターン。値の生成と消費でフェーズの違いを明確化したい。 そのメソッド内で1度使いたいだけなのに yield するメソッドを別に作るのはちょっと気が引ける。名前空間を汚したくない。 全部、一度配列にしちゃうとメモリが気になる。メモリ消費を節約したい。 ネストを浅くしたい Enumerable モジュールの機能が欲しい といったところです。 たとえば下記のようなかんじで使います。 # Producer フェーズ use

    Ruby のオススメの機能7選 - Qiita
  • Ruby: コマンドライン引数の解析で使うoptparseをもっと柔軟に - 意識の高いLISPマシン

    オプションの無い引数を扱いたい Rubyでコマンドライン引数を解析するときは、optparse (OptionParser) を使うと便利です。 library optparse しかし、OptionParser#parse! は、"-a", "--long-option"みたいなオプションを使わない引数を扱う場合に不便です。 つまり、コマンドラインで $ ruby foo.rb -o file_output.txt file_input.html みたいなことをしようと思うと、RubyでOptionParserを使う前に # ruby opt = OptionParser.new @option[:file] = ARGV.pop # ... opt.on('-o FILE','--output FILE','Output Filename') {|v| @option[:file_ou

    Ruby: コマンドライン引数の解析で使うoptparseをもっと柔軟に - 意識の高いLISPマシン
    kat0usi
    kat0usi 2015/03/28
  • Ruby にて文字と Unicode コードポイントの相互変換を行う - vivid memo

    Unicode のコードポイントを指定して文字を得たり、逆にある文字のコードポイントを調べたり、ということをする機会は結構多いと思います。 が、Ruby でそれをやる方法をぐぐってもあまり上位に情報が出てこないなー、と思ったので簡単にまとめておきます。 Unicode コードポイントとは そもそも Unicode コードポイントとは何か。 Unicode というのは世界中の文字が集められた文字集合であり、Unicode に収録されている文字には順番に番号が振られています。 この番号のことをコードポイントといいます。 あるコードポイントが指す文字を表現するときに "U+" という文字の後ろに 16 進数表記のコードポイントを書いて表すことがあります。 例えば、コードポイント 0x3041 が指す文字 (ひらがなの 「あ」) を U+3041 と書いて表します。 各文字とコードポイントの関係は

    Ruby にて文字と Unicode コードポイントの相互変換を行う - vivid memo
    kat0usi
    kat0usi 2013/05/07
    Integer#chr の実行時にエンコーディングを指定しないといけない
  • 第2回 Ruby編 | gihyo.jp

    インストール RubyGemsをインストールしてから「gem install rbyaml」でインストールしてください。 使い方 使い方は、クラス名がYAMLでなくRbYAMLとなっている点以外はSyckとほぼ同じです(リスト8⁠)⁠。 リスト8 RbYAMLの使い方(ex-rbyaml1.rb) require 'rubygems' # RubyGemsを使ってインストールした場合 require 'rbyaml' ## YAMLドキュメントを読み込む str = File.read('example.yaml') data = RbYAML.load(str) # 引数は文字列またはI/O data = RbYAML.load_file('example.yaml') # 引数はファイル名 ## YAMLストリームを読み込む File.open('example.yaml') do |

    第2回 Ruby編 | gihyo.jp
    kat0usi
    kat0usi 2013/03/05
  • YAML::dump (syck) の出力の整形について - レオメモ - s21g

    YAMLの復習 YAMLのノードには3種類(kind)がある: Scalar (Unicodeの文字列として表現できるもの) Sequence (配列みたいなもの) Mapping (連想配列やHashみたいなもの) それぞれのkindはいくつかのstyleで出力できる。 Scalar: Plain (1行) 1  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Single Quote (1行) 1  'Lorem ipsum dolor sit amet, consectetur adipiscing elit. ' Double Quote (1行) 1  "Lorem ipsum dolor sit amet, consectetur adipiscing elit. " Block Literal (改行がそのまま

    kat0usi
    kat0usi 2013/03/05
  • Route 477 - Ruby基礎文法最速マスター&Ruby書籍紹介

    Perl基礎文法最速マスターをだいたいそのまま、Rubyに置き換えてみました。 他の言語をある程度知っている人はこれを読めばRubyの基礎をマスターしてRubyを書くことができるようになる…かも知れません。無保証です。 参考: オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル (1.9.2) オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル (1.8.7) ■ 1. 基礎 インタラクティブRuby (irb) irbを使うと、Rubyのプログラムを簡単に練習することができます。 /Users/yhara $ irb irb(main):001:0> puts "hello" hello => nil irb(main):002:0> 1 + 1 => 2 以下の説明は、irbを起動して、自分で試しながら読むと習得が早いと思います。 表示 (print,

    Route 477 - Ruby基礎文法最速マスター&Ruby書籍紹介
    kat0usi
    kat0usi 2010/03/17
  • ホワイの(感動的)Rubyガイド

    このはホワイ・ザ・ラッキースティフ(why the lucky stiff)により愛情を込めて書かれた。 ~ 目次 ~ このについて コンニチハ、Ruby このを開く 犬の話 赤い太陽が昇る はどのように始まるか (漫画のキツネと学ぶ)短時間の(そして願わくは辛くない)Rubyコース 言語と、言語で意味しているもの 品詞私がまだあなたのことを十分子供扱いして いなかったなら あなたの成長を促すための例題 そして短い旅はそっとクッション停止する 浮いている小さなコードの葉っぱ アンブローズにおけるステータスシンボルとしての葉っぱ 小さくてほとんど価値のないもの 妄想をつなぎ合わせる ブロックの奇跡 ルールを作るものと夢を生きるもの これは権利を奪われた人のため コンピュータのある城 娘のオルガン教師の話のつづき ヤギは映画を全部見たがっている 盗まれたくじ主 ルールを作る者たち 夢を

  • クローラーを作るためのフレームワーク·Anemone MOONGIFT

    RSSフィードやWeb API、Mashupなどの単語が注目を集める中、Webクローラーを通じて外部のWebサイトにあるデータをかき集め、それを解析して別な形にするというのはよく見られるものになってきた。 あるURLを指定し、そこからリンクされているURLを一覧表示できる そうした数々のシステムの中で、クローラーとなる基盤は大きな違いはない。Webサイトのデータを取得し、次のリンクを洗い出して取得していくようなものだ。そうした共通動作部分を切り出したフレームワークがAnemoneだ。 今回紹介するオープンソース・ソフトウェアはAnemone、Webクローラを開発するためのフレームワークだ。 Anemoneは任意のWebサイトにアクセスし、その内容を解析するWebクローラーだ。例えばあるURLに付けられているリンクを一覧で取得するようなことも簡単にできる。外部サイトなのかどうかも区別できるの

    クローラーを作るためのフレームワーク·Anemone MOONGIFT
  • 新興国の開発者の5人に1人がRubyを利用,北米と西欧の2倍

    米Evans Dataは2009年2月9日,新興市場のIT開発技術者に関する調査結果を発表した。中国,インドとラテンアメリカの開発者の5人に1人がRubyを利用しており,この比率は北アメリカまたは西ヨーロッパのRuby利用率と比較して2倍であるという。 調査は,中国,インドとラテンアメリカ,東ヨーロッパのIT開発者約400人を対象に行った。調査結果によると21.3%の開発者がプログラミング言語の一つとしてRubyを使用している(図1,表1)。1人の開発者が仕事全体の中でRubyを利用している割合は,10~19%が最も多い。全体のうち10.8%の開発者が,作業時間の10~19%でRubyを使用している。 特にインドとラテンアメリカRuby利用率が高く,インドでは3人に1人が,ラテンアメリカでは4人に1人以上がRubyを利用している(図2)。「新興市場ではスクリプト言語の利用率が高い。新興市

    新興国の開発者の5人に1人がRubyを利用,北米と西欧の2倍
    kat0usi
    kat0usi 2009/02/16
    調査対象は400人だけで信頼できるのかな
  • スクリプト言語文法比較 perl / php

    お品書き ● 文法(スクリプト編) ● 文法(メジャー編) ● PHPよくつかう関数 ● YGS2Kリファ ● なんでも掲示板 ● リンク ● 裏リンク ● てりリン カテゴリ ● :Prog ● :UNIX 最新の10件2007-12-03リンク 2007-10-22裏リンク 2007-10-01飛鳥ももこ 2007-09-30GCCで開発 2007-08-10DでAudiere 2007-07-02なんでも掲示板 2007-06-28TeriyakiWiki 2007-01-12BCCで開発 2006-12-26言語文法比較 2005-10-15PHPよくつかう関数 出口 ● ここのTOP ● ここの日記 ★:外部リンク

  • Ruby、HpricotとDiff::LCSで二つのHTMLをエレメント単位でDiffる - <s>gnarl,</s>技術メモ”’<marquee><textarea>¥

    Diff::LCSについてはあまり情報がない。Algorithm::Diff@Perlruby移植らしい。 htmlのエレメントを階層構造を維持したまま一次元配列に展開し、diffる。 現状のコードだとエレメント構造を復元するときエレメントが融合しちゃってアレなんだけど。番兵入れたほうがいいなあ。 諸事情により作ったものの、結局使わなかった 結果の例 入力a <html> <head> <title>The Blog</title> </head> <body> <h1>The Blog</h1> <h2>エントリ1</h2> <div id="main"> <p>hogehoge</p> <p>hagehage</p> <p>fugafuga</p> </div> <div id="footer"> <p>Counter: 1234</p> <p>Copyright: id:gnarl

    Ruby、HpricotとDiff::LCSで二つのHTMLをエレメント単位でDiffる - &lt;s&gt;gnarl,&lt;/s&gt;技術メモ”’&lt;marquee&gt;&lt;textarea&gt;¥
    kat0usi
    kat0usi 2008/11/26
  • Ruby Scraping - Hpricot

    あるページのリンク (aタグ) を全て抜き出すスクリプト。 require 'hpricot' require 'open-uri' doc = Hpricot( open("http://www.kmc.gr.jp/").read ) (doc/:a).each do |link| puts "#{link.inner_html} → #{link[:href]}" end

    kat0usi
    kat0usi 2008/07/07
  • Ruby Scraping - Mechanize

    自動google検索。 require 'rubygems' require 'mechanize' agent = WWW::Mechanize.new # インスタンス生成 agent.user_agent_alias = 'Mac Safari' # User-Agentの設定 page = agent.get('http://www.google.com/') # ページ取得 search_form = page.forms.with.name('f').first # "f"という名前のフォームを探す search_form.q = 'Hello' # テキストボックス"q"に"Hello"を入力 search_results = agent.submit(search_form) # フォームのsubmitボタンを押す puts search_results.body # 結果

    kat0usi
    kat0usi 2008/07/07
  • Rubyでwebにアクセスするならhttpclientが手軽 - http://rubikitch.com/に移転しました

    http://d.hatena.ne.jp/willnet/20080626/1214487378 httpclientはopen-uriの手軽さと、Net::HTTPの機能を両立させてる使い勝手のいいライブラリだ。クッキーやkeep-aliveもサポートしている。ただし、Ruby 1.9未対応。Ruby 1.9だとParseDateなんてないぞーってエラーがでてしまう。→最新版でRuby 1.9対応 POSTの場合はpost_contentを使う。串、User-Agent、FromヘッダはHTTPClient.newの引数で。 require 'rubygems' require 'httpclient' require 'kconv' hc = HTTPClient.new query = "ruby" html = hc.get_content("http://www.google.

    Rubyでwebにアクセスするならhttpclientが手軽 - http://rubikitch.com/に移転しました
    kat0usi
    kat0usi 2008/07/05
  • HWPS! » open-uri を Basic認証のあるサイトに使う

    Ruby の便利標準ライブラリ筆頭(個人的感想)である open-uri ですが、 いまだに「open-uri はBasic認証のあるサイトには使えない」という都市伝説(?)が。 こんな風に :http_basic_authentication オプションを与えることでできるよ。 require 'open-uri' open('http://www.example.com/authenticated_page/', :http_basic_authentication => ['username', 'password']) 現在のマニュアルには載っていない ので注意。 新しい方にも特に書いてはいないみたい。 ちなみにプログレスバーのために :content_length_proc と :progress_proc が使えるが、簡単に作るとこんな感じに。 open(downloading

    kat0usi
    kat0usi 2008/07/02
  • Ruby拡張ライブラリ作成チュートリアル

    目次 準備 まずはC言語プログラムを呼び出す 簡単な数値のやりとり NArray配列を渡す Swigを使ってお手軽変換 参考文献 準備 このチュートリアルではRuby 1.8系列の使用を前提にしています。 確認はすべてRuby 1.8.4 [i386-Cygwin]で行いました。 NArrayはVersion 0.5.8を用いています。 またそれ以外に以外に以下のものが必要です。 Cコンパイラ Rubyのコンパイルに用いたものと同じものが必要です。 バイナリパッケージを導入した場合はどのコンパイラでビルドされたものか 知る必要がありますが、UNIX系ではたいていgccです。 ruby.h, mkmf.rb Rubyをソースコードから自分でビルドした場合はインストールされていると 思いますが、バイナリパッケージを導入した場合はruby.hやmkmf.rbがあるか 確認する必要があります。開発

    kat0usi
    kat0usi 2008/06/17
  • 本文抽出モジュールを RubyForge に登録しました (nakatani @ cybozu labs)

    以前このブログで公開していました Web ページ(HTML)から文と思わしきテキストを抽出するモジュールを RubyForge に登録、 gem でインストールできるようになりました。 gem install extractcontent といっても、このモジュールは1ファイルで構成されていて、依存関係もないので、以前の公開方法のままでもあまり支障はなかったような気もするんですが、RubyForge に登録する練習もしておきたかったし、gem で入れられる方が便利ですよね? ExtractContent プロジェクトページ http://rubyforge.org/projects/extractcontent/ 一応プロジェクトページの URL も貼り付けておきますが、実質リリースファイル置き場でしかなくて、SCM もまだ使ってません…… また、せっかくリリースするので、 ・「全然 m

    kat0usi
    kat0usi 2008/04/08
  • jugyo.org

    This domain may be for sale!

    kat0usi
    kat0usi 2008/04/08
  • RubyGems の使い方 - WebOS Goodies

    WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。 日は Ruby の標準パッケージ管理システムである RubyGems のご紹介です。最近ではほとんどの Ruby 用ライブラリが RubyGems を当然のように採用していて、ドキュメントにも RubyGems によるインストール方法しか掲載されないようになってきました。私はこれまで当に必要最低限の知識だけでやり過ごしてきたのですが、だんだんと不都合もでてきた

    kat0usi
    kat0usi 2008/04/08