タグ

rubyに関するhogemのブックマーク (34)

  • 負荷試験ツール「インターネット破壊」を公開しました : DSAS開発者の部屋

    負荷試験ツール インターネット破壊を公開しました。 こちらはずっと社内で負荷試験に使用していたツールです。社内で使用していたものなので、ソーシャルアプリ向けの機能などが多少追加されていますが、もちろんんそれ以外のWebアプリケーションでも使用できます。 基的にはApache JMeterのようなWebアプリケーションむけのシナリオ負荷試験ツールです。コマンドラインオペレーションだけで実行でき、サーバー上で簡単に負荷試験を実施できるのが特徴です。POSTリクエストなどはもちろん、レスポンスのチェックやUserAgentの偽装、ランダムな値をパラメーターにセットする機能も実装しています。 注意: 当然ながら自分の管理下にないサイトに向けて負荷試験ツールを実行するのは絶対にやめてください。非常に危険です。 物騒な名前がついていますが、これは完全にわたしの小児的感性の趣味によるところです。地震で

    負荷試験ツール「インターネット破壊」を公開しました : DSAS開発者の部屋
    hogem
    hogem 2011/03/19
    おー 簡単に使えそうで素敵
  • Railsの脆弱性: XML実体爆発攻撃 | 水無月ばけらのえび日記

    RailsでXMLリクエストのパースに使用されているREXMLに、DoS脆弱性が発見されました。XML entity explosion attackと呼ばれる攻撃手法により、ユーザから与えられたXMLを解析するようなアプリケーションをサービス不能(DoS)状態にすることができます。大部分のRailsアプリケーションはこの攻撃に対して脆弱です。 XML entity explosion attackというのは、実体宣言の中で別の実体を参照することを繰り返して実体参照の処理負荷を高める手法のようですね。掲げられているサンプルコードは短いですが、実体参照を展開するとデータは30メガバイトにもなります。展開の処理方法によっては、メモリをい尽くしてしまうのでしょう。 外部からXMLデータのPOSTを受け付けるようなサイトは注意……と言いたいところですが、XMLデータのPOSTを受け付けないはずの

    hogem
    hogem 2008/08/26
    "XML entity explosion attack 実体宣言の中で別の実体を参照することを繰り返して実体参照の処理負荷を高める手法" "XML処理の有無にかかわらず、Railsで構築されたアプリケーションはほとんど全て影響を受けるように思います。"
  • スーパーマリオブラザーズをRubyで作ってみた - I am Cruby!

    Ruby2008/8/7にやんわり修正しました。 ソースコードsvnは svn co http://svn.coderepos.org/share/lang/ruby/nario Codereposにあげているので自由に触ってください。 環境設定Windowsであれば、ファイル内のrskit/game.exeで、フルスクリーンで動作します。linuxであればruby/sdlを動く環境を作成して、 ruby nario.rb で大丈夫です。 Ubuntuで動作確認していただきました。 SUPER NARIOをプレイしてみた(最速レビューをめざして) - きみのハートを8ビットキャスト 操作方法十字キー ←↑→↓Aボタン ABボタン B終了 ESC(フルスクリーンで動かすときは特に覚えておいたほうがいいです) Todoきのことか成長系、他のマップ、BGM、SEただ、1-1を作って非常に疲れたの

  • Geekなぺーじ : Rubyネットワークプログラミング

    ここでは、Rubyによるネットワークプログラミングの説明を行いたいと思います。 ここで対象としている読者は、ネットワークプログラミング初心者(もしくは入門者)です。 TCP 簡単なTCPサーバとクライアント TCPクライアント(エラー処理付き) 何度も受信できるTCPサーバ TCPサーバ(acceptした相手の確認) UDP UDPを使う UDPでブロードキャストを使う UDPでマルチキャストを使う(マルチキャストを送信する) UDPでマルチキャストを使う(マルチキャストを受信する) UDPでマルチキャストを使う(TTLを設定する) Web 簡単なHTTP GET(Net::HTTP) HTTP HEADと全てのHTTPヘッダの表示(Net::HTTP) HTTP POST(Net::HTTP) 簡単なRSSクライアント その他 IO::selectを使う IPアドレスからホスト名への変換

  • プログラミング言語Ruby ― ありえるえりあ

    方針 Rubyをまったく知らない前提で始めます JavaJavaScript、elispのようなメジャーな言語と対比しながら説明します なるべく手を動かして目に見える形で説明を進めます 次回Ruby on Railsの勉強会をするので、それにつながることに重点を置きます 逆に言うと、RoRであまり使わない知識は流します。例えば、ファイル操作周りやスレッド周りなど 開発環境(2) .emacs.elに書くべき記述 ; ruby (autoload 'ruby-mode "ruby-mode") (setq auto-mode-alist (cons '("\\.rb$" . ruby-mode) auto-mode-alist)) (setq interpreter-mode-alist (append '(("ruby" . ruby-mode)) interpreter-mode-al

  • [ruby] コマンドラインから送信できるtwitterクライアント。おまけに起床時間をはてなgraphに送信するスクリプトもつけておいた。 - 生活。

    前半部分はhttp://la.ma.la/blog/diary_200704111918.htmとほとんど同じ。 使いかたは ./twitter_client.rb ほげほげ おきた 起きたと投稿した場合にははてなグラフにポストされます。 ただし、グラフ名に日語を指定した場合上手くいってません…。というわけでかなり中途半端なのですが 結構便利なので公開してみます。 #!/usr/bin/env ruby #twitter_client.rb require 'net/http' require 'kconv' require 'hatena/api/graph' twitter_user = '' #twitterのuser名 twitter_pass = '' #twitterのpassword hatena_user = '' #hatenaのuser名 hatena_pass =

    [ruby] コマンドラインから送信できるtwitterクライアント。おまけに起床時間をはてなgraphに送信するスクリプトもつけておいた。 - 生活。
  • 双子素数の大きさ、記録更新 - rubyco(るびこ)の日記

    http://mathworld.wolfram.com/TwinPrimes.html 見つかった双子素数は、だそうです。十進表記だと58711桁の数…。 ってtextfile.orgに書いたんだけど、Rubyですぐに計算できることに気がつきました。 puts "#{2003663613 * (2 ** 195000)}±1" 実行結果です(さすがに途中は略しました)。 1415726259...5295935488±1確かに58711桁ありました。 puts "#{2003663613 * (2 ** 195000)}".length #=> 58711

    双子素数の大きさ、記録更新 - rubyco(るびこ)の日記
  • 進化する“Webスクレイピング”技術の世界 ― @IT

    2007/02/20 WebサービスAPIRSSフィードを使って複数サイトのサービスや情報をマッシュアップ――。これはWeb2.0が包含するいくつかの概念のうち、最も重要なものの1つだ。Amazon.comやGoogleYahoo!楽天といった大手Webサイトは、RESTやSOAPを用いたAPIを公開しており、さまざまなサービス提供者や個人がAPIを通して各種サービスを利用している。その一方、世の中のWebサイトの大多数はWeb1.0的なHTMLCGIフォームしか提供していないのが現実だ。こうした背景からWeb1.0サイトから構造化されたデータを引っ張り出す“Webスクレイピング技術が急速に発展してきているようだ。 HTMLをXML化し、XPathで関連データだけを抽出 例えば価格情報サイトでは製品名から価格が簡単に調べられるが、Webサーバから提供されるのは、製品名や価格にレ

  • 超手抜き版 はてなダイアリーライター(ruby版)を作ってみた。 - 生活。

    WWW::mechanizeが面白そうだったので作ってみました。 参考サイトはhttp://mono.kmc.gr.jp/~yhara/d/?date=20070205#p01です。というかサンプルコードほとんどそのまんまです。 手元にあるテキストファイルを自分のダイアリーに投稿できます。お気に入りのエディタで書いてスクリプトで投稿みたいなことが簡単にできるわけです。 インストール方法 WWW::mechanizeがひつようです。gemでインストールしましょう。 gem install mechanize 僕もはまったのですがmechanize内部でnet/httpsを使ってるらしくlibopenssl-rubyをインストールする必要があります。 ubuntuなら sudo apt-get install libopenssl-ruby もちろん以下のスクリプトもダウンロード:-) 使いか

    超手抜き版 はてなダイアリーライター(ruby版)を作ってみた。 - 生活。
  • 世界のオープンソースRuby開発者まつもとゆきひろ|【Tech総研】

    今や世界に知られるオープンソースのプログラミング言語「Ruby」を開発した、まつもとゆきひろ氏。シンプルで利便性に優れたオブジェクト指向のスクリプト言語は、世界各国のプログラマたちに愛用されている。カリスマプログラマを生んだ背景とは? オープンソースソフトウェア技術者として最も成功した日人は誰か?という質問をプログラマにしたとするならば、多くの人が、この人物の名前を口にするであろう、まつもとゆきひろ氏。オブジェクト指向スクリプト言語「Ruby」の開発者である。自ら作ったソフトウェアが、国内はもちろんのこと、今や海外でも広く使われている。こんなエンジニアは、おそらく日では彼くらいではないだろうか。実際、海外では、Matzのニックネームで通っているのが、まつもと氏なのだ。「Ruby」の特色は、シンプルで利便性に富んでいること。世界中のプログラマの心をつかんだソフトを生んだことはもちろん驚き

  • いやなブログ - スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl

    スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl スクリプト言語用の CUIのデバッガの使い方を簡単にまとめました。対象言語は Ruby, Python, Perl です。 私は C, C++ でプログラムを書いているときはデバッガ (主に GNU/Linux 上の gdb) を頻繁に利用します。しかし、スクリプト言語ではそれほどでもありません。これはおそらく次のような理由によります。 ビルドが不要なので printf デバッグが容易 (ある程度大きい C++ のプログラムではビルド時間が長いので printf の挿入はしんどい) 異常終了時にスタックトレースが表示される (Ruby, Python なら自動、Perl の場合は use Carp; $SIG{__DIE__} = \&Carp::confess; など) オブジェクトのインスペクトが簡単 (Ru

  • 添付ファイル付メールを送信する Ruby スクリプト

    Landscape トップページ | < 前の日 2004-10-08 2004-10-09 次の日 2004-10-10 > Landscape - エンジニアのメモ 2004-10-09 添付ファイル付メールを送信する Ruby スクリプト 当サイト内を Google 検索できます * 添付ファイル付メールを送信する Ruby スクリプトこの記事の直リンクURL: Permlink | この記事が属するカテゴリ: [メール] [Ruby] コマンドラインから添付ファイル付きメールを送信する Ruby スクリプト samail を作成した。Send Attachment MAIL の略で、samail。読み方は「さめいる」または「えすえーめいる」かなあ。 2003-12-12 の「添付ファイル付きメールをコマンドラインから送信」や 2004-07-02 の「添付ファイル付メールを送信する

    hogem
    hogem 2007/01/10
    あーすげえ便利
  • Rubyプログラミングはじめの一歩

    まつもとゆきひろ氏が開発したプログラミング言語Rubyは,いまやソフトウエア開発の世界ではワールドワイドな存在です。デスクトップ・アプリケーションからWebアプリケーションまでその用途は幅広く,今後も様々な分野で利用されていくことは間違いありません。この記事では,Rubyプログラミングの初歩の初歩を,制御構造からオブジェクト指向プログラミングの導入部まで簡潔に解説します。 Rubyは,オブジェクト指向のスクリプト言語です。しかも,とても強力です。筆者は,Rubyを知る前はPerlJavaを使っていました。Perlは優れたスクリプト言語ですし,Javaも優れたオブジェクト指向言語です。しかしRubyは,Perlよりも美しい言語で,Javaよりも使いやすいオブジェクト指向言語だったのです! 今ではRubyPerlJavaだと思っています。 RubyにはPerlをお手とした強力な文字列操

    Rubyプログラミングはじめの一歩
  • 404 Blog Not Found:オブジェクトは難しくない。難しいのはクラス

    2006年11月16日16:55 カテゴリLightweight Languages オブジェクトは難しくない。難しいのはクラス 大人だからオブジェクトは難しくなる。子供にとっては実はオブジェクトは自然で自明で簡単だ。 オブジェクト指向を正しく理解する:ITpro オブジェクト指向はしばしば,とっつきづらく難しい技術と言われます。その理由の一つには,対象とする分野が広く,それぞれに深みがあることが挙げられます。しかし,それ以上にこの技術を難しくしている落とし穴とも言うべき原因が二つあると筆者は考えています。それは比喩を乱用する説明の仕方の問題と,「もの中心」を意味するコンセプト自体の問題です。事実、オブジェクト指向というのは最初は子供向けだったのだ。 このことを、現在「オブジェクトとはなんぞや」という大人たちは忘れてしまっている。 それで、オブジェクトとは何か、といえば、「自分が何が出来る

    404 Blog Not Found:オブジェクトは難しくない。難しいのはクラス
  • mod_ruby メモ

    重要. このページは、もはや古くなっています。 Webサーバは nginx [engine x] をおすすめします。Apache HTTP Server を使う場合であっても、Ruby の組み込みは Passenger アプリケィションサーバがよいでしょう。 mod_rubyは、Apache HTTPサーバにRubyインタプリタを組み込むモジュール。 通常のCGIスクリプトでは、実行するたびにRubyインタプリタを起動するので遅い。mod_rubyを使えばその時間を短縮できる。 下準備 mod_rubyをインストールするためには、Apache HTTPサーバに動的モジュールを組み込めるようにしておかないといけない。下記を参照。 Apache2/2.2 HTTPサーバのインストール mod_rubyのインストール mod_rubyのソースファイルを入手し、解凍する。 modruby.net

  • Rubyコーディング規約

    はじめに 文書は、Rubyによりコーディングを行う際の規約について述べる。 実際のプロジェクトに適用する際には、このコーディング規約をカスタ マイズして用いることを推奨する。 ソースコードの整形 インデント プログラムを読みやすくするため、インデントを適宜行う。インデント 幅は2とする。また、インデントにはスペースのみを使用し、タブは使用 しない。(環境によりタブ幅が異なるため。) 例: if x > 0 if y > 0 puts "x > 0 && y > 0" end end 一行の桁数 一行の桁数は最大80桁までとする。 空行 複数のクラスの区切には空行を挿入する。 例: class Foo ... end class Bar ... end 誤った例: class Foo ... end class Bar ... end また、クラス内の各構成要素の区切にも空行を挿入する。

  • ウェブログ適齢期: Ruby ~ファイルの書き込み~

  • moroの日記 - Railsでテストを書く勘所

    昨日はOSCに行ってきました。セミナーやブースはほとんど行かず、例によってRubyの会のあたりでだらだらしてたわけですが。 思いがけず師匠の師匠、id:t-wadaさんにもお会いできてびっくり。 で、そこでRailsとTDD(BDD)の話なんかしたので、一週間で思ったことをつらつらと。たぶん不正確というか、理解の足りないところもいろいろあるので、そのへんのツッコミをいただけると感謝です。 書いてたら長くなったのでagenda モデルのテストでは、とにかくロジックを書いたらテストを書く*1。def..endブロック(wを書いたら必ずテストもあるはず。 RailsのMVCコンポーネントの中では一番テストし易いので、そういう意味でもモデルを厚くすると幸せになりやすい。 コントローラのテストでは、基的にリクエストを受けてから表示対象のオブジェクトを導出するまでをテストしたい。 ビューのテストでは

    moroの日記 - Railsでテストを書く勘所
  • http://rails.office.drecom.jp/takiuchi/archive/115

  • いやなブログ: 配列操作の比較表: Ruby, Python, JavaScript, Perl, C++

    配列操作の比較表: Ruby, Python, JavaScript, Perl, C++ プログラムを書いていると、他のプログラミング言語の記憶とごっちゃになって、「配列の後ろに要素を追加するのは push だっけ、 append だっけ」などと混乱することがあります。特に Ruby, Python, JavaScript はコードの書き方が似ているので、この問題が起きがちです。 そこで、備忘録として、 Ruby, Python, JavaScript, Perl, C++ の配列操作の比較表を作りました。一番慣れている Ruby を基準にしています。間違いなどがあったらご指摘いただけると助かります。他の言語のもあるといいなあ。 Ruby (Array) Python (list) JavaScript (Array) Perl (@) C++ (std::vector)