それマグで!

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

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

ruby

はてなダイアリ記法パーサーっぽいもの

はてな記法を他でも使いたい。 はてなダイアリ記法を他でも使いたいと思いました。HTML変換は正規表現にすればいいのでちょっち作ってみようと思って始めてみた。 作りたかったはてな記法 自分用なので、僕がよく使う記法だけつくった H3/H4/H5が変換できる …

Ruby で gets をやり直す ungets 的なこと

rubyのIOにはいくつもメソッドがある。each/readline/gets 系統とポインタ系どうも相性が良くない。getc/ungetc はあるけど、gets/ungetsがない。こまったので代案を考えた require 'stringio' str =<

WindowsでNokorigiを使うためにGemをインストールする。

殆どは以前やった、ユーザー環境にユーザー独自のGem環境を作るやりかたと同じ。その焼き直しをWindowsでも使った。 設定の確認 >ruby -e 'puts $;' C:/ruby/lib/ruby/site_ruby/1.8 C:/ruby/lib/ruby/site_ruby/1.8/i386-msvcrt C:/ruby/lib/ruby/site_ruby…

require 'mechanize'で LoadError: no such file to load -- net/https

Mechanizeをrequire したらエラー LoadError: no such file to load -- net/https irbでMechanize使おうとしたらエラーになった。 >> require 'mechanize' LoadError: no such file to load -- net/https from /home/takuya/.gem/lib/rubygems/custom_requir…

正規表現で、漢字、カタカナだけを抜き出す。

以前、正規表現で手早く、文字をぶった切る方法を試していた。今度はPHPからRubyで同じことやった。PHPで分かち書きするのに、mecabとか入れてられない。 単語境界で文字を分割する。 文字の境界で、文章を分割する。 #/usr/bin/env ruby require 'rubygems'…

3分間Railsクッキング

RubyOnRailsの使い方まとめしばらく使ってないと忘れるので困る。 そこで、大きな流れをまとめておいた。 インストール gem install railssqlite3が無いとエラーになるので、aptitude install libsqlite3-devでsqlite3.hを入れる railsディレクトリを作る ra…

rails を使っていて Table doesnt exist と言われたときの対応

rails で Table doesnt exist 原因:テーブル名とClass名が正しく対応していない。 rails は class 名とテーブル名を対応させるのだが、標準では複数形(pluralize)される。私は、ちょっと戸惑ってた。 book → books read book → read books read books of us…

WindowsのRuby(mswin32版)のGemをアップデートする。

Windows版はDebianと違ってCentosやRedhatのRubyと同じようにGemを更新できる。 C:\Windows\system32>gem update --system systemオプションをつける。 うまくいかない場合はRubygemsのソースコードもってくるとか 参考 http://blog.s21g.com/articles/920 …

irbのp関数の出力が欲しい

p 関数で書き出すと、ハッシュや、配列がRubyコードっぽく出力される。これってFFのjavascriptのto_sourceっぽいんだ。 この出力をファイルに書き出したい。 Hashをソースに書き出す #insepect >> {:a=>"aaaa", "b"=> 1111}.inspect => "{"b"=>1111, :a=>"aa…

Rubyで巨大ファイルを読み込むときに進捗率を表示したい

Rubyを使ってバッチ処理や集合演算をするときに、ファイルをどこまで読み込んだかパーセント表示したい。表示しておかないとどこまで処理しているかが分からないので不安になる。処理状況を表示する。File#linenoを使えばいいかと思ったが、File#linenoはFil…

Rubyで配列から重複したモノ(要素)を抜き出す(Uniqの逆)

Rubyで配列の重複しているモノを調べるには。 Rubyって配列から重複しているモノだけを知りたい時どうするか?Yahoo!知恵袋の回答はアテにならないし、OKWaveもイマイチだった。そこでマニュアルとにらめっこして考えた。 配列から重複を取り出す例。 => a=[…

Rubyで正規表現でグローバルマッチのやり方が分からない。

JavaScriptなら正規表現にグローバルマッチのオプションがあって/example\d+/gとか出来るんだけど。Rubyでやり方が分からなかった。そこでイロイロ試した。どうやらString#grepを使うのが一番良さそう。 require 'open-uri' require 'kconv' a= open( 'http:…

C言語のDSOを作る。ライブラリ自作してRubyで使う。

ちょっとしたテスト(Ruby/DL)のテストで、自作のDSO(共有C言語ライブラリ)作る必要があったので、ちょっと調べた。その結果をまとめる。 参考URLからの丸コピー http://www.kushiro-ct.ac.jp/yanagawa/project/library/ 手順 自作ライブラリのインストー…

RubyのFile#linenoの動作って・・・ポインタと相性悪いな。

ファイルのポインタを末尾に移動して先頭に移動しても変化しない.Each系で移動しない限りlinenoは動かない.当たり前と言えば当たり前なのだ.だけど油断してた. 実験 1:1 2:2 3:3 4:4 5:5 6:6 7:7 8:8 9:9 10:10のようなファイルを作った. ファイルを作…

Rubyでuse libみたいに、自作ライブラリの場所を指定する。

Rubyで自作ライブラリをどこに置くか考えた。 Perlの use lib みたいなことしたいな。とおもったけど ライブラリがないのね。じゃぁどうするかRubyはライブラリの読込パスを、LOAD_PATH環境変数に持っているので、コレを使うことにした。ロードするLibの工夫…

RubyとPowerPointViewerだけでPPTをPNG化

RubyとPowerPointViewerだけでPPTをPNG化したいな。と思った。 BitbltをRubyからCallして、ビットマップを保存するところで挫折した。 RubyでStruct扱うにはどうするんだろう。そもそも、PowerPointViewerをCOMで扱えるのだろうか。 課題いっぱい

C言語の型とWinAPIで使う型のマッピングとRubyのDL/Import

チマチマとWindowsプログラミングを勉強しています。DWORDとか普段馴染みがないから、何度覚えても忘れる。http://yokohama.cool.ne.jp/chokuto/urawaza/datatype.html から転載させていただいた。 Windowsの型とC言語の型 HMENU メニューハンドル INT 符号…

RubyでパワーポイントのスライドをPNGにする。

WindowsでPPTをJPGやPNGの画像にしたいなと思った。DrawToBitMapがよく解らなかったから PowerPointのAPIを叩くことにした。 PowerPointの画像化 SlideSaveAsPNG.rb #!/usr/bin/env ruby require 'win32ole' #PPTアプリを起動し接続 pp = WIN32OLE.new 'Powe…

Rubyでwin32oleを使う。(基本->IEのDOMにアクセスするまで)

Rubyでwin32oleを使う。RubyMagazineのCuzicさんの連載を読むべき。win32ole意外に細かいところが重要だったリスるので、きっちり読むこと。COMを使うの?VBAで良いじゃん?違います。irbが使える。これがとんでもないアドバンテージなのじゃ。 使い方 Ru…

ruby のgemをユーザー環境に導入する。

始めに パッケージ(Apt)提供のrubygemsはそのままに、自分のホームディレクトリ以下にGem環境を作ること。 またRubyの環境はシステム環境モノを利用する。 事前に知っておくべきこと Rubyの環境変数$LOAD_PATH($:/RUBYLIB) $:とは、 Rubyインタプリタが、R…

パッケージ提供rubygemsを使っているとアップデートできない。

経緯:Ubuntu(Debian)のgemパッケージをUpdateできない。 昨日、Ubuntu 9.04使っててRailsが動かなくなった。Railsを動かそうとした。動かなかった。 エラーメッセージはrails require rubygems 1.3.5 ,installed gems 1.3.1 aptからrubygem をインストール …

WEBRickの構造を読み解く---Proxy編

性懲りもなく、手を広げているTakuyaです。こんばんは。 WEBRickに手を出してしまいました。 るびまの記事に従いproxyサーバーを作ってみました。そして次に、プロキシにBASIC認証を書けてみました。WEBRickサーバーは予想に反し、動作早いんだもの。いろん…

IRCのログ集めにボット作った。

仕事場と教授とのやりとりに、IRCが活用されている。IRCは手軽で便利なのだけれど。無線LANやイーモバイルなど不安定な通信環境下だと、ログが流れてしまう。会話が途切れる。 大事な会話や、呼び出しに気づかなくて迷惑をかけるので、IRCのログ収拾し、Open…

Rubyで作るプロキシサーバーの記事は動かなかった。

るびま初期の記事。http://jp.rubyist.net/magazine/?0002-WEBrickProxy コンテンツ書き換えが動かない。なんでかなーと思ってヘッダ見てみたら・・・最近のWEBはGzip圧縮されてる。これが理由だね。res.bodyはgzip圧縮されてるので、展開して圧縮し直さない…

とびとびの配列を作るruby

10個ずつの数字とか、Rubyでどうやって作るか?なれるまで大変だった。rubyは規則性のある配列を作ることはとても簡単。 Rangeを覚えよう rangeは覚えると楽ができる*1 Rangeの基本 (1..10).map{|i| i } #=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] (120..130).m…

整数の四捨五入でメソッドCallをしなくてもいい。

RubyのIntで四捨五入・切り捨て・切り上げ Rubyのint型には四捨五入・切り捨て・切り上げをするメソッドがないと仮定する。ページャとか作ってると、Intでも10ずつ切り上げたり切り下げたい。 よく見かけるFixNumの例 randarr=(1..10).map {|i| rand(100)}…

printfでデバッグをやめた理由

Rubyにはスレッドがある。クローラーをスレッド化して楽をしようとしてた。スレッドをさんざん使い回した挙句、高速化にはあまり効果を示さないことがわかった。ただ、デバッグにはめちゃくちゃ便利だとわかった。 任意の場所で簡易コンソール def debug(obj…