昨日までに書いていたグラフはコストとかそういうの考えていなかったんだけど、ダイクストラをやろうということでコストも考えることにしました。ダイクストラでedgeとそこまでの距離のhashを作りながら、そこまでのを記憶しておくhashも用意。最短路を探す時にはそれを逆向きに再帰で探していきます。 # -*- coding: utf-8 -*- require 'pp' class Graph def initialize(edges=[]) @edges = edges @nodes = Hash.new{|h,k| h[k] = []} @weights = Hash.new{|h,k| h[k] = {}} end def add_edge(edge) @edges.push edge unless @edges.index(edge) end def add_node(u, v) add
またまたmechanizeネタ。 今度はニコニコ動画をダウンロードするスクリプトです。 ランキング一位の動画をダウンロードしてきます。 require ‘rubygems’ require ‘mechanize’ require ‘kconv’ require ‘cgi’ agent = WWW::Mechanize.new #ログインする agent.post(’https://secure.nicovideo.jp/secure/login?site=niconico’, ‘mail’ => ‘メールアドレス’,'password’ => ‘パスワード’) #ランキングページから1位の動画ページへ遷移 ranking_page = agent.get(’http://www.nicovideo.jp/ranking/mylist/daily/all’) vid
この記事はめちゃくちゃ古いです.別の方法で,oAuthに対応したbotを作ってください.google:twitter bot oAuth 今日はTwitterの簡単なbotを作ってみます。 作るもの 現在のUNIXタイムを配信する、unixtimebotを作ります。 既に完成したものが以下のURLで動いています(飽きたら配信が止まるかもしれません)。 http://twitter.com/unixtimebot あなたはこのbotをfollowすることによって、常にUNIXタイムを意識しながら暮らすことができます。 方針 Rubyを使います。 直接TwitterのAPIを叩くのではなく、RubyGemsからライブラリを取ってきてそれを使ってアクセスします。 Twitterにアクセスできるgem Twitterにアクセスするためのgemは、ちょっと探しただけで、これだけありました。 Twit
今日、作りました! Twitterしたら自動で自分のMixiエコーを書いてくれるプログラム~。 梨木のTwitterが自動で梨木のMixiエコーに投稿してくれます!! TwitterMailも一緒に使って携帯からすぐにポストできます。 http://twittermail.com/ twitter2mixi.rb #!/home/cyberwave/local/bin/ruby -Ks require 'rubygems' require 'mechanize' gem('twitter4r', '>=0.2.0') require 'twitter' require 'open-uri' require 'kconv' require 'yaml' require 'csv' # 環境準備 # gem install twitter4r # gem install mechaniz
Haskell版だとその日の関係ないエントリも上がってきてしまうので、どうにかするやつをRubyで書いた。-dオプションでエントリの内容詳細も出力するようにした。 require 'optparse' require 'kconv' class String def is_int? return /^#{self.to_i}(\.0+)?$/ =~ self ? true : false end end def search(search,file_path,detail) file = File.open(file_path,"r") lines = [] while line = file.gets lines.push line end file.close title_flag = FALSE #titleのところにlineがあればTRUE、それ以外はFALSE lines.eac
先日「ブログ書きが不調」と書いたが、言語のアウトプットが不調なときは、それ以外のことをするに限る...たとえば黙々とプログラムを書く、音楽に浸る、身体を酷使する、などだ。というわけで月曜日、天気は晴れなかったものの、研究のデータ処理に使うRubyスクリプトを書きまくって鬱憤を晴らしていた。 ところがそのプログラム脳のまま夜にはVimM#4に行こうとした時、そういえば内定者3人によるSkype会議が予定されていた(つまりダブルブッキング)ことを思い出し、自分の阿呆さに呆れ、本当にすみません、でもって結局気分は晴れず。 前置き(ただの日記)終わり。 本題。 Rubyの配列でいろいろいじる時に、for i in ...と array.each でだいたいできるんだけど、もちっとスマートにやりたいなぁと思って調べていたらこれ使えるんじゃね?と気がついたことがいくつかある。zipとinjectとev
■ Ruby で 8 Queen パズル 8 Queen は、コンピュータで扱うのも有名な題材になっています。 多くの参考文献にとり上げられているのでどこかで目にしていると思います。 ここでは、Ruby を使ってこの題材を扱ってみたいと思います。 ぜひ自分で作成してみてください。 パズル 8 Queen ヒント ソースコード 解説 スレッドを使う ■ パズル 8 Queen チェスの「Queen」は、将棋の「飛車」と「角」を合わせた効き筋をもっています。 このため「縦」「横」「ななめ」に自由に動けます。 ここで、チェスの盤上(8 Queen の場合には 8 x 8 の盤を想定)に、それぞれの Queen が、他の Queen の効き筋にぶつからないように、8 個の Queen を配置します。 この配置の方法は、いくつあるでしょうか? 次のものが実際の解答の一つです。 +--+--+--+-
大学でプロキシ経由でgem installができない。 gem install rails --http-proxy http://proxy.example.com:PORT がTime outになる。 rubygems0.9.0のバグなのか、http_proxyの環境変数にプロキシを設定してやらないとダメらしい。 export http_proxy=http://proxy.example.com:PORT gem install rails でOKでした。 ちなみにWinだと set http_proxy=http://proxy.example.com:PORT gem install rails 前後の記事へ « 赤ちゃんの逆襲 トップ 自分の研究を説明する為に説明しないと行 »
youhei’s bookmarks on del.icio.usで 自分ならgyazoのポスト先をいじる。でもポスト先にAPIとかがない場合、ブラウザでやらないといろいろ面倒。ブラウザを使いこなしてる感じがいい。 というコメントをいただいて、自分でもJSActions本体のインストールのしかたとかスクリプトのインストールのしかたとか難しくて困ったりするところがGyazoだとかんたんになるし、なによりFirefoxのCanvasを読み出してるcapture.*.jsだと映ってくれないFlashの中身が映るので、ほんとGyazoハックしたいと思ってたんですがrubyわかんないしなーとおもってだけどやってみたらかんたんでした。ローカルアプリケーションの文字通りなんでもできるパワーとウェブアプリケーションのお手軽さをセットにしたサービスについて前にどこかに書いた気がするけどGyazoはそのパワー
何かと話題の Twitter。 その Twitter の API に簡単にアクセスできる Ruby ライブラリの紹介です。 » Twitter4R v0.2.0: Open Source Ruby Client Library for the Twitter REST API 作者のブログはこちら ↓ » Snakes, Gems & Coffee 試しにインストールして使ってみました。 gem install で簡単にインストールできます。No definition for cState_configure とか出てますが、ri とか RDoc のインストール中のメッセージなので気にしません。 Status API のサンプルを参考に、Twitter4R からつぶやいてみます。 こういうとき、irb を使うのが便利。 まずは必要なライブラリの読み込み。僕の irb は設定ファイルの .i
はてブ(はてなブックマーク)のRSSを取得して、要素を抽出するRubyプログラムを作ってみました。 はてブのRSS まずはてブのRSSを構成する要素を確認します。 はてブの タイトル (title) リンク (link) 説明 (description) あとは各ブックマークの タイトル (title) リンク (link) 説明 (description) ブクマした時間 (date) 追加したユーザ名 (creator) タグ (tags) 他に色々要素がありますが、上記の要素を組み合わせると大抵出来上がるモノなので、コアとなる要素はこれぐらいでしょうか*1。 データ設計 ここからコーディング。まずはデータ設計です。 はてブの情報を格納するクラスを定義します。 # Hatena Bookmark RSS Data Class class HatebRSS attr_accessor :
1 :デフォルトの名無しさん:01/09/21 11:07 2ちゃんねるのそれぞれの板で、どんなスレがあがっているか つまり、ヘッドラインみたいなものを表示するスクリプトなんですが 原因不明のバグに陥ってしまってどうすればいいのかさっぱりわからない状態です。 コマンドラインからなら正常に動作するのですが、サーバーにアップしてみると インターナルサーバーエラーとなってしまいます。 http://211.125.64.135/ 正常に動作した場合はこのようなhtmlファイルを返すはずなんです・・・ http://211.125.64.135/getsub.txt これがソースファイル http://211.125.64.135/index.txt これがcgiにリクエストをだすhtmlファイルです Rubyに詳しい方や興味がある方、できればどこが間違っているのか教えてくださいませんか 2 :デ
Perl 、Ruby 、Python を用いてプラグインを作成するには スクリプトファイル( Perl またはRuby 、Python で作成。UTF-8 で記述すること。) プラグインの名前などを記述する、XML 形式の情報ファイル を用意する必要があります。 ATOK ダイレクトで検索を実行した場合、入力中の文字列をプラグインで受け取ることができます。 スクリプトプラグインでは、入力中の文字列に対応する候補情報(候補表記、コメント、ツールチップ候補とその種類)を生成し、出力することができます。 Perlで記述したプラグインを作成する場合、そのスクリプトファイルに記述しなければならない情報は、以下の通りです。 ソース記述例 ################################################# # # Perlモジュール用のプラグインインターフェイス # #
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く