FLYING

/* TODO: 気の利いた説明を書く */

ruby

ISUCON10 予選に参加し敗退しました!

TL;DR 惜しいところまで行けたのも実力。それでも足りなかったのも実力。 はじめに @hogesako @kuskus_ainan と共にチーム名「くすサポISUCON部」で ISUCON10 予選に参加し、最終スコア1965点で敗退した。 *1 再起動試験を考慮しない最終スコア (あくまでも…

マルコフ連鎖でTwitter BOTを作る

既にやり尽くされた感のあるネタだが,個人的には得られた点が多かったのでまとめておく。 やりたいこととしては,「twittbotでBOTを作るだけじゃツマラナイし面倒だから,自動でBOTが学習して呟いてくれたらいいよね!」って感じ。皆に愛されているしゅうま…

メール一括送信スクリプトの覚え書き

さくらインターネットのSMTPサーバーからメールを一括送信するためのスクリプト。「ruby 1.9.2p136 (2010-12-25) [i386-mingw32]」でのみ動作を確認済み。M17N絡みの不具合を避けるためにforce_encodingしていたりするので,あんまり参考にすべきコードでは…

WindowsでRuby1.8とRuby1.9を共存させる(RubyGemsも!)

記事タイトルの通り,Windows環境でRuby1.8とRuby1.9を共存させるための覚え書きです。 下準備 Downloads(いつもお世話になってます)から,Ruby1.9のインストーラとRuby1.8のインストーラをそれぞれダウンロードします。ダウンロードしたインストーラを実…

インスタンスメソッドが定義されていなかったら定義する

Ruby1.9系以前だとforce_encodingが定義されていないので,以下のようにして1.8系と1.9系の両方で動くコードを書いてみた。 # force_encoding unless defined?(String.new.force_encoding) then class String def force_encoding(*args) self end end end あ…

mergesort

マージソート童貞卒業した。 def mergesort(array) array.size <= 1 ? array : merge(mergesort(array[0...array.size/2]), mergesort(array[array.size/2...array.size])) end def merge(left, right) array = [] array.push(left.first <= right.first ? l…

Ruby Twitter Gemでfriendsやfollowersを全件取得

http://twitter.rubyforge.org/を利用すると,RubyからHTTPリクエストやJSON/XMLのパースを意識することなくTwitter APIにアクセスすることができる。日本語でのドキュメントはRoute 477が詳しい。現在のTwitter APIでは自身のfriends(followingのこと)やfol…

清一色ジェネレータ作った

http://www4.atpages.jp/oreorework/docs/chinitsu.cgid:id:tondol:20100404:1270317311のスクリプトをCGIにしてみた。それだけ。

“あなたのスキルで飯は食えるか?”の回答コード

makeplex salon:あなたのスキルで飯は食えるか? 史上最大のコーディングスキル判定 (1/2) - ITmedia エンタープライズメンツには[XY][XZ](XYZ)[X](XX)[XX](XXX)の7パターンしかないことに気付いたので,それらのパターンを先頭から探索していく感じで実装…

XMLサイトマップファイルを生成

gen_sitemap.rb #!/usr/local/bin/ruby # -*- encoding: utf-8 -*- require 'uri' require 'open-uri' def get_depth(uri) uri.to_s.scan(/\//).size end def uri_normalize(uri) # include dynamic pages uri.sub(/#.*$/, "").sub(/index\.\w+$/, "").gsub(…

pukiwikiのdumpを保存するスクリプト

crontabとかで定期実行する用。 #!/usr/bin/ruby # -*- coding: utf-8 -*- require 'net/http' require 'uri' DOMAIN = 'www.foobar.com' PATH = '/pukiwiki/index.php' ADMIN_PASSWORD = 'PUKIWIKI_PASSWORD' BASIC_USER = 'BASIC_AUTH_USER' BASIC_PASSWOR…

Ruby1.9.1でsmtp.gmail.comを使ってメールを送ろうとするとunknown protocol

ruby 1.9.1p376 (2009-12-07 revision 26041) [i386-mswin32] ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-freebsd7] mswin32版もfreebsd7版も同じ状況。 require 'kconv' require 'net/smtp' class Mail attr_accessor :to, :from, :subject, :body …

東工大ポータルにログイン

WWW::Mechanize及びHpricotを利用して東工大ポータルにログインしてみるテスト。アカウントIDとパスワード及びマトリックスコードを平文で保存することになるので,そのセキュリティリスクを理解した方のみご利用ください。 最初にgetするURIを適当な外部の…

Mozilla Firefox 3を3分ごとにダウンロードするスクリプト

なんだかおもしろそうなのでDownload-Dayに乗ってみた ダウンロードするファイルのURIはプラットフォームに応じて適宜変更してね 公開してみたものの、サーバーに優しくないからあまり使うべきではないかも #!/usr/local/bin/ruby require 'net/http' Net::H…

里芋的スクリプト「山芋」

山芋おいしいです ファイル圧縮ツール「里芋」の発想をまんまパクったスクリプトです。Rubyで書いてあるので色んな処理系で動くかもしれません。細かい部分はid:teturouetのやり方をパクりました。Base64をベースにしているので、id:teturouetのスクリプトよ…

レジューム可能なファイル交換スクリプト

一対一でファイルを送ってもらっていたんだけど、途中で接続が切れて中途半端なファイルができちゃったよママン、ってな状況で役立つかもしれないスクリプト。ただし、ファイルを送信する人が開放済みのポートを持っていて、すぐに連絡を取れるような条件で…

画像の肌色率をもとにソートしてHTMLに出力するスクリプト

前からやりたいと思っていたアレ。こういう馬鹿なスクリプトは、できるなら昨日のうちに公開しておきたかった。仕組みは単純で、画像から適当な数のピクセルを抽出し、HSV色空間上で指定した色相空間と合致するかどうかを確かめるだけ。手元の環境で試してみ…

多人数チャット

まだまだ続くぜ脳内Ruby祭り。今日のアイテムは一対一チャットの発展形。ただし、以下の理由で実用的ではない。 発言者の名前とかが表示されない スレッド使いすぎ(IO.selectを使うとおいしいらしい) もちろんWindowsネイティブなRubyでは動かない #!/usr/bi…

一対一チャット

某書籍に載っていたコードを簡略化したもの。cygwin版のRubyではちゃんと動くけど、mswin32版だと $stdin.gets でブロックされて思うように動かないみたい。スレッドとソケットを組み合わせれば色々できそうなんだけど、なかなか思うようにいかないのなー。 …

OreBoard#2

初公開時から何も弄ってないけど、ソースだけ晒してみた。 OreBoard 晒し場 バグ取りとか機能追加は気が向いたらやる。

ニコニコ動画のマイリスト動画を一括DL

先日のスクリプトにマイリストのデータを読み込む機能を追加してみた。 うさげ 使い方は nico.rb とほぼ同様です。ただし、引数には動画のIDではなく、マイリストのIDを指定してください。仕様上、短時間に大量のアクセスを行うので、もしかしたらダウンロー…

添付ライブラリだけでニコニコ動画のFLVとXMLをダウンロード

もはや何番煎じか分からないネタ。ただし、添付ライブラリ以外は使わないってことにして差別化を図ってみた。なお、ニコニコAPIについては主に以下のページを参考にした。Geekな皆さんに感謝なのですよ、にぱ〜☆ RubyのHpricotでニコニコ動画をスクレイピン…

OreBoard

『OreBoard』とは、Rubyを勉強しながら微妙に使いにくい掲示板スクリプトを作ってみようという試みのこと。最初は「プロジェクト俺板」という名称にしていたが、露骨にパクりっぽいのでやめた。動作サンプルは以下のページからどうぞ。 OreBoard 『OreBoard…

Ruby始めました

(イン|デ)クリメントができないことに気付かずに1時間くらい浪費したり、unexpected kEND とかいう訳の分からないエラー出力に悩んだりしながらも、CGIを作る過程でだんだんあの独特な文法に慣れてきた。とりあえずの目標として、スレッドフロート式掲示板と…