それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

ruby

RubyでWEBサイトのスクリーンショットを作ってサムネイル化する。

Rubyプログラムからサイトをサムネイルのように表示するには、Windowsの場合RubyのWin32関連にそのものズバリなモジュールがある。 配布元 以前はRubyforgeにありました。いまは、githubにいどうして、rubygemsになっていました。 以前の配布先 http://rubyf…

Amazonのギフトカードの登録をするスクリプト

友人どうしでギフトカードのやり取りをしたときに、 Amazonのギフトカードを一気に登録する方法がないかどうか考えてみた。楽ちんに登録できたら複数枚登録できて便利。 #!/usr/bin/env ruby require 'openssl' OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::V…

rubyで可変関数的に、オブジェクトのメソッドを文字列で指定して呼び出す。

rubyのクラスメソッドを指定して呼び出す。 >> class Test>> end #=> nil >> class Test >> def hoge >> puts :hoge >> end >> end #=> nil >> t = Test.new #=> #<Test:0x10fdf3288> t.method("hoge").call hoge これで出来るのですね。callはrubyの()省略の副作用なので仕方</test:0x10fdf3288>…

rubyでinは予約語だから注意な

もしかしてinは予約語? for in で使う予約語だそうです。forループそのものを使わないrubyにおいて in がいつまでも予約語である必要があるのかというそんな思いはある。rubyでforループは書かない。eachの発明が偉大すぎた。 IO.pipeを使ってて気づいた >>…

RubyはIO.pipeを使えば、パイプを作ることが出来る

IO.pipeを使えば、パイプを作ることが出来る パイプを作ると楽しい。 o,i = IO.pipe 100.times{ i.puts :test } 100.times{ puts o.gets }これだけ Pipeを使うと何が便利か。スレッドをブロック出来る loop{ p o. gets }で i.puts を待つことが出来る。どう…

Cygwin環境にRVMを用意する。CygwinでもRVMでRuby使い分けたいよね。

Cygwinでもrvm使えると便利かも。と思いました。i7マシンだとビルドの遅さもそんなに気にならないし。 まず必須なところから。 rvmのインストール bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer) ex…

Rvmを使ったRubyのインストール管理方法で便利なものをまとめ。

RVMは自分のユーザー環境に、独自のRuby環境を作ることができる。homebrewのように、/usr/localですらない。/home/takuya/.rvmに、バージョンが違うRubyを大量に飼育できるのです。 RVMを使えば、opensslなどの依存モジュールもRVM側だけで管理できる。 つま…

システムのRubyの更新:DebianのAPTでインストールされた物

debian の rubygemsパッケージを更新しようとしている。 あるシステムでは。できる限りAptで管理するべきかもしれないし あるシステムでは、ユーザーごとにRuby環境を作るべきかもしれない でもいろいろ考えるの面倒くさい。とりあえずシステムのrubygems環…

JavaからjRubyのソースコードを読み込んで使う。

JavaからjRubyを起動すると、JavaにRubyインタプリタを組み込むことが出来る。 どうやるのかなと思ってたら。 evalしろや。ってことらしい。 まじEvalしとる。 package takuya.mmo; import java.io.*; import org.jruby.Ruby; import org.jruby.runtime.Thre…

URIのエンコードをコマンドにしていつでも呼べるようにしておくと便利だと思う。

URIのエンコードをコマンドにしていつでも呼べるようにしておくと便利だと思う。v8エンジンが確実だと思ったけれど、V8はコマンドプロンプトから呼んでもShebangで呼べない。 URIencodeがコマンドから呼べるように encodeURI 1 #!/usr/bin/env ruby 2 3 requ…

オレ専用のrubygems配布サイトが欲しいですね。

オレオレRubyGems配布サイトを作りたいと思った。 やりかた Route477さんがやってる。→http://route477.net/d/?date=20100720 インストール gem install geminabox サーバの起動 設定ファイル config.ru を書いて「rackup config.ru -p 9292」とかするとgem…

Rubyで文字列をテンプレートの出力と見なして定型フォーマットされ文字列から値を取出す方法

定型文字列から,数字を抜き出したい時がある。 降水確率0% 降水確率90% このように定型フォーマットで出力の文字列は山ほどアルフォーマットを見つける 降水確率NN% と見なして、数字だけを取出すことは可能. SCANFを使います とても簡単で出来ます.いく…

文字列と文字列の引き算。

Rubyで文字列と文字列の引き算が出来れば、コードが読みやすくなると思いました。 "httpd.conf.bak" - ".bak" #=> "httpd.conf"になればいいと思いませんか.僕はイイと思います.extname をつかって dirname するよりスッキリしてて良いですよね. 文字列ど…

日本語文字列を一文字ずつ処理をしたい

日本語文字列を一文字ずつ取出したいN-gram を作るとかで重宝しそうですよね $KCODE='u' "3月のライオン".split // #=> ["3", "月", "の", "ラ", "イ", "オ", "ン"] $KCODEを使うのがちょっと1.8系依存だけどね 一文字ずつ処理するにはコレが確実.

csplit コマンド ruby 版、区切り文字をファイル名にする

csplit は便利なんだけど.csplit はファイル名が連番になって嬉しくなかった.そこでRubyで書いてみた 出力ファイル名を区切り文字にした ##あああ ここ ##いいい さらにを処理すると あああ.txt いいい.txtになるようにした。 使い方 csplit.rb サンプル.t…

ActiveRecord を使って好きなデータベースにアクセス。注意点とか。始めにやることとか使い方の基本

任意のデータベースにActiveRecord でアクセスしよう。 ActiveRecordで何でもかんでもヤルと楽になる気がした。 RubyでMySQLにアクセスしてデータ読み書きすれば便利そう インストール gem install activerecord sudo aptitude install libmysql-ruby #mysql…

RubyのAPIドキュメントを CGIとして動かす方法

rubyのAPIドキュメントをruby-doc-server.exeでなく,CGIとして任意のディレクトリで動かしたい http://localhost/ruby-doc/ にドキュメント置きたい localhost にあるとナニカと便利なAPIドキュメント.rubydoc-serverをローカルホストで動かしたいなとか思…

gemパッケージ の作り方

rubyでコードを書いてるとライブラリのパスだとか,モジュールの依存関係とかめんどくさくなってくる.あとGithubなどに置いておきたくなる.github にコードを置いてgem パッケージにしたい.*1ライブラリのロードパスを解決したい 2011-05-17追記 rubygems…

RubyでWindowsのフォルダを監視する

Windowsのフォルダを監視して,ファイルが追加されたら、通知したい. .NetFramework つかえば簡単にできるんだけど.IronPythonとか使えば一瞬で出来るんだけどね.Rubyのgems でがんばってみて Windowsのフォルダ監視 WinShotがどんどんキャプチャしてくれ…

キーボードLEDを点滅させて遊ぶRuby

Rubyクックブックを見ていたらLEDをチカチカさせて遊ぶ方法が載ってたのでやってみた. キーボードLEDを点滅(明滅)させる require 'rubygems' require 'blinkenlights' BlinkenLights.open{|l| 10.times{ l.right_to_left} }何の意味もないけど,楽しい. …

手帳術を諦め、検索フォルダや日付フォルダをRubyで生成して代わりに使うことにした。

世間では4月になると手帳がはやります。色々なノート術やメモ術が紹介されます。ブームに乗っかろうと思ったけど、ブログのネタやコード断片が手帳にならない。あと検索インデックス作るのも面倒だったし。日付順に保存とか無駄が多い。ライブラリを活用す…

rubyでWindows(sjis)Zipファイルを文字化けさせずにunzipする。

Windowsで作ったZIPファイルに日本語ファイル名やフォルダを含めると、UTF-8環境では化けます。その逆にUTF-8環境で作ったZIP日本語ファイルはWindowsで化けます。 文字化けさせずに取り出す。 文字化けさせない方法は色々あるがRubyでぱぱっと書くのが一番…

ファイル簡単検索にlocate コマンド。自分だけの検索インデックスを使う。

loccate便利 いままでfind に頼ってましたが、locateを覚えてからはlocateばかり使っています。locate食わず嫌いでした。反省してます。 locateコマンドもファイル検索コマンドです。find・grep/locateの大きな違いは、事前インデックス作成の有無です。loca…

rubyなら日付を連続10日分の日付作るのがアツ−!と言う間です

Rubyがあれば、もうこんな事しなくて良いんです。 d + 60*60*24*i # 秒に直して計算 ruby はDate(日付)がRangeオブジェクトとして使えるのでとても早い 10日分の日付をあっという間に作る。 takuya@host $ ruby -r date -e \ '(Date.parse("2010-02-11")…

MechanizeがHistoryを保存してメモリを食いつぶすのを防ぐ

Mechanizeって便利で、すごく使うのだけれど、履歴がさー履歴がたまるとメモリを食いつぶしました。 Mechanizeでは簡単に防げるようです WWW::Mechanize#max_history で履歴の最大数を指定できます。履歴機能を活用しないという場合の推奨値は 1 です。 agen…

自分のグローバルIPを調べる方法

自分のグローバルIPを調べる方法を考えたがめんどくさかった。 自分のグローバルIPを通知して、ファイルを上手に転送したり、DNS更新したかった。 自分のグローバルIPを調べて共有する方法は幾つか考えられる。 確認クンなどにアクセスする ルーター機器など…

Mechanizeでパースに失敗するHTMLを何とかする。

HTMLの閉じタグが抜けていたり、HTMLの構造がおかしいサイトがある。これをMechanizeすると困ることになる。MechanizeがParseできなくてこまるんです。つまりNokogiriがエラーになったり、Nodeがウマく取れなくてFormのInputが無かったり、有るべきリンクが…

RubyでBasic認証をする(HTTPSアドレスで

ApacheのBasic認証をまとめて設定した、設定が正しいかどうかいちいち手作業でログインするのも面倒だし。rubyを使ってをテストしていた。 open-uriを使ってbasic認証をする #!/usr/bin/ruby require 'rubygems' require 'open-uri' ##とりあえずSSLのチェッ…

rubyでファイルから固有値(ハッシュ)を求める方法。

ファイルの固有値を求めて管理をしておけばe文書法にも対応できるって聞きました。 require 'digest/md5' p Digest::MD5.hexdigest(File.open('ruby-1.8.5.tar.gz','rb').read) ファイルサイズが大きすぎるときは class Digest::Base def self.open(path) ob…

URIモジュールを使わずに、uriからパス以外を取り出す。ruby

uri からパス以外の部分を取り出したい。つまりホスト部分を取り出したい。 http://d.hatena.ne.jp/takuya_1st/2010-11-29/ http://d.hatena.ne.jp/takuya_1st/2010-11-29/p1 から↓ http://d.hatena.ne.jp/takuya_1st/ を取り出したい 一般的なURL::HTTPも扱…