2010-01-01から1年間の記事一覧

複数のディレクトリから同じ名前のファイルを集めるスクリプト

複数のディレクトリから同じ名前のファイルを一つのディレクトリに集めるスクリプトです。同じ名前だと上書きされてしまうので、ファイル名はディレクトリ名にしています。当然ながら拡張子はそのままです。 require 'fileutils' include FileUtils CURRENT_…

CodeKata of Bowling by RSpec for Windows

スはスペックのス〜RSpecによるテスト駆動開発の実演〜 http://www.nicovideo.jp/watch/sm2370458 を見ながらやってみた。 ■Windowsで初心者(Like Me)がやるときのポイント 色はあきらめる;; game.rbとgame_spec.rbは同じフォルダに置く game_spec.rbでreq…

単語ダブクリで一発翻訳!「Dictionary Tooltip」

Webページのテキストの単語部分をダブルクリックすることで、自動で小窓に翻訳結果を表示させることができるFirefoxアドオン「Dictionary Tooltip」のご紹介です。 https://addons.mozilla.org/ja/firefox/addon/1171/ ※執筆時の最新バージョンは1.6.1です ■…

日本語フォント「メイリオ」

Webページやプレゼンなど、液晶画面への表示に適したフォント「メイリオ」のご紹介です。 【※注意 プレゼンファイルに使うと別PCで見たときレイアウト崩れるかもです。公開の際はPDF化推奨】 日本語フォント・メイリオView more presentations from myokoym.…

【slideshare】バージョン管理入門【PDF】

PDF変換とプレゼン資料作成にはまりました。 バージョン管理入門View more presentations from myokoym. ■参考 高橋メソッドhttp://www.rubycolor.org/takahashi/ ja: OpenOffice.org 日本語プロジェクトhttp://ja.openoffice.org/ XLsoft エクセルソフト : …

【歩いて】OSC2010Hokkaidoに行ってきた【初体験】

オープンソースカンファレンス2010北海道 http://www.ospn.jp/osc2010-do/ に行ってきたので、自分なりにまとめてみます。 まずは朝一のセッション。 【企画セミナー】「僕たちは札幌で/僕たちは札幌から - We Think, We Act」 担当:一般社団法人LOCAL 講師…

【Web開発】FirefoxのHTTPヘッダ系アドオン【レビュー】

Live HTTP headers https://addons.mozilla.org/ja/firefox/addon/3829/ 言わずと知れたHTTPヘッダ閲覧ツール。次々と流れていくヘッダの波に対抗できる動体視力の持ち主が使うと、真の力を発揮する。逆に言うと、上級者向け。 HttpFox GOOD! https://addons…

【Windows】クリップボードに現在時刻をコピーするスクリプト【.exe付き】

以下のスクリプトをコマンドラインで走らせるだけ。 ruby -Ks -e "require 'rubygems';require 'win32/clipboard';Win32::Clipboard.set_data(Time.now.strftime('%Y%m%d%H%M%S'))"ただし準備が必要。 ※以降は ActiveScriptRuby 1.8.7 の使用を前提とします…

【ワンライナー】セルフgrep【改行対応】

MISSION: リリース間近の大規模プログラムに作為的バグが混入しているとの報告があった。わたしは、30分以内に何百万というファイル群から「@^-^@」という文字列が含まれたXMLファイルを探し出さなれけばならない。しかも、途中で改行されて @^ -^@いたり…

バージョン管理スクリプト on Ruby

プログラマにとって、ソースコードのバックアップやバージョン管理は重要です。しかし、個人の小さなプロジェクトなど、CVS・Subversion・Gitといった大掛かりなソフトを使うほどでもない、でも手作業は面堂・・。そんな私のために、バックアップおよびバー…

ディレクトリサイズを計算する【glob編】

http://d.hatena.ne.jp/myokoym/20100425/1272202028の Dir.glob バージョン。 def dir_size(path) expath = File.expand_path(path) sum = 0 Dir.glob("#{expath}/**/*") do |fn| # next if File.directory?(fn) sum += File.stat(fn).size end sum end か…

TabMixPlus0.3.8.3とツリー型タブの相性が悪い?

Firefoxのアドオン話。 「Tab Mix Plus」と「ツリー型タブ」を組み合わせると、ツリーな上にロケーションバーと検索バーの挙動を変えれたりして便利なのですが、先週のアップデートで具合が悪くなってしまいました。 TabMixPlusのバージョンを0.3.8.2から0.3…

eRubyでif修飾子を使う

Railsをはじめたので、eRuby(ERB)のおべんきょう。今回は、if修飾子の使い方について。 ふつうに こんばんは! と書くと、 「シンタックスエラー 終わりがない」 となってしまう。どうも普通のif文として解釈されている様子。 そこで仕方なく と書くとうま…

文字列が数値として妥当か調べる正規表現

文字列が数字のみで構成されているかのチェックは簡単ですが、数値として正しいかどうかのチェックは複雑です。専用の関数が用意されている言語もありますが、細かい動作(空文字の場合どうなるかなど)が不明確だったりするので、自前で用意するのが確実だ…

irb tips(仮) メソッド定義は一行で

こんばんは。irb、使ってますか? irbでは複数行に渡るメソッド定義が可能です。しかし、部分的に修正する場合でも、全て書き直して再定義しなければなりません(たぶん)。 そこで、今回のtipsです。メソッドを定義する際、無理やり一行で記述します。あと…

reject!とdelete_ifの違い

レシーバに変更がなかった場合の動きが異なります。 reject! : nilを返す delete_if : レシーバを返す破壊的メソッド全てが、破壊されなかった場合にnilを返すわけではないようです。間違えて覚えていたのが、リファレンスマニュアルを眺めていて発覚。バ…

ディレクトリのサイズをまとめて計算するスクリプト

エクスプローラがディレクトリサイズの一覧を表示してくれないので、Rubyで書きました。 まずは、ひとつのディレクトリのサイズを求めるメソッドです。 def dir_size(dir_path) dir_size = 0 Dir.entries(dir_path).reject{|x|/^\.+$/=~x}.each do |file_nam…

配列のつくりかた

配列は、最も基本的なデータ構造です。Rubyの配列は、「可変長」「イテレータが簡単」などの理由で、利便性が高くなっています。 配列のプログラム内での使い方ですが、まずは配列を作成しなければなりません。一般的には、 [1, 2, 3] と記述します。角括弧…

【ワンライナー】ファイルの一括リネームを一行で書く

今回は、いわゆるワンライナーに挑戦してみます。お題は、前々回の、ファイルをリネームするプログラムです。 Dir.entries('./').reject{|x|/\.$/=~x}.sort_by{|fname|File.stat('./'+fname).mtime}.each_with_index{|fname,index|File.rename('./'+fname,'.…

ちょっとした重複コード対策

一般的なプログラミングの世界では、DRY(Don't repeat yourself)の原則やらOAOO(Once and Only Once)の原則やらで言われているように、コードの重複は避けるべきという考え方が主流です。 例えば、変数「a」と変数「b」の内容を出力したいとしましょう。その…

ファイルを更新時間順にソートしてリネームするプログラム

li{ margin-bottom: 10px; } #!ruby -Kspath = ARGV[0] #末尾に"\"を付加することfnames = Dir.entries(path) fnames.delete_if { |x| /.*\.$/ =~ x }fnames.sort! do |a, b| File.stat(path + a).mtime.strftime("%Y%m%d%H%M%S") File.stat(path + b).mtime…

キーボードにWindowsキーがないとき

[Ctrl] + [Esc] で代用します。 ※ただし[Windows] + X は不可

文字コードの欠点

Web

Shift_JISの欠点・・・だめな文字(だめ文字)がある EUC-JPの欠点・・・日本語以外はあまり表示できない UTF-8の欠点・・・日本語が3バイト詳細はWEBで。

ニコ動でRubyの動画を探す方法

キーワード「Rubyist」または「RubyKaigi」で検索する タグ「ruby」で検索する

RubyでWindowsアプリ その0 環境構築 / その1 簡易カウンタ

今回は、RubyでWindows用GUIアプリケーションを作成します。Rubyのホームは黒い画面(Windowsでいうコマンドプロンプト)だと思うのですが、最近はRails用言語だという説もありますね。たしかに我々一般人はグラフィカルな環境で生きていますが・・・黒い画…

テキストファイルの内容をソートするプログラム その5 「例外処理」

ファイル操作は、例外が発生しやすい処理です。パスが1文字間違っていたためにファイルが見つからない、他のプログラムで使用していたためアクセスできないなど、些細なことが大きな問題となってしまいます。 そのため、このプログラムでも例外処理を行うこ…

テキストファイルの内容をソートするプログラム その4 「パターンマッチと負の添字」

■変更点 読み込めるファイルを.txtと.csvに限定 文字列判定に比較演算子(=~)を使用 file_path = ARGV[0] search_str = ARGV[1] if /^(txt|csv)$/i !~ file_path.split(".").[](-1) puts "扱えないファイルです。" exit endtemp_lines = [] File.open(file_…

テキストファイルの内容をソートするプログラム その3 「コマンドライン引数と式展開」

■変更点 検索用正規表現文字列を外部から受け取る 可読性と保守性を高めるため、ファイルを扱う部分の記述を変更 open(組み込み関数)⇒File.open(クラスメソッド) File.openメソッドの呼び出しにブロック引数を使用(Fileオブジェクトの有効範囲がブロッ…

テキストファイルの内容をソートするプログラム その2

その2では、検索機能を付けてみたいと思います。やり方は、ファイルに書き込んでいる部分を、if文で囲むだけです。 temp_lines.each do |line| if line.match(/irb/) write_file.puts line end endここでは、"irb"という文字列が含まれている行のみを書き込…

テキストファイルの内容をソートするプログラム その1

その1なので例外処理も何もしていませんが、CSV形式の並び替えには十分使えます。 file_path = ARGV[0]read_file = open(file_path) write_file = open("result_" + file_path, "w")temp_lines = [] read_file.each do |line| temp_lines endtemp_lines.sor…