Ruby
新しいPCでRubyの環境構築をしていたらこんなエラーが... $ gem install pg ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError) Errno::ECONNREFUSED: Connection refused - connect(2) (http://rubygems.org/gems/pg-0.14.1.gem) どうやらht…
2012-03-07 - longicornの日記でVim+RopeでPythonのリファクタリングが出来るようになったので、今回はRubyのリファクタリングも出来るようになったので、Ruby版も書いておきます。 インストール github:vim-ruby-refactoring matchit.zip の2つが必要です。…
最後のRubyKaigiで自分にとっては最初のRubyKaigiでした。 参加した切っ掛けは開催場所。歩いて10分とか参加しない訳が無い。 概要はこのあたりを見て、詳しく知りたければ、はてぶで検索すれば良いかと。 http://gihyo.jp/news/report/01/rubykaigi2011/000…
RubyKaigi2010を前に、「RubyKaigi2009で見たRubyコミュニティの悩み、価値観、変化」を記す: ITジャーナリスト星暁雄の"情報論"ノート へー、といったところ。 最近プライベートのプログラミングが充実していないから、ちょっとソースコードを追うのも良い…
2010-08-19 - longicornの日記の修正。 どうも、Stringクラスに新しいメソッドが入ったぽい? Stringクラスを継承したクラスを作っていたら、たまたまそのメソッドとかぶって無限ループ->スタック足りない、という流れっぽい。 まあ、単純なバグなので修正し…
リリースきましたね。 まずは、関係者はお疲れさまでした。有難う。 で、早速つかったら、自分のrmemoでスタックが深いってエラーが orz。 stack level too deep (SystemStackError) 週末にでも直すか。
LLでmatzさんが話していた内容の事だと思う。 Rubyチップとかどうなんだろう。 LLは組み込み系で使わない事はないんだけど、やっぱりあまり合わない気がする。 LLで厭なのは実行時にエラーが出る部分。Cとかのコンパイラ系だと絶対チェックする部分もLLだと…
今までこんな感じで使っていた。 parser.on("-h", "--hoge STRING", String, "OptionParserのテスト"){|get_arg| p get_arg } で、STRINGの部分が2つ欲しいという修正が必要になった。 parser.on("-h", "--hoge STRING1 STRING2", String, String, "OptionPa…
忘れそうなのでメモ。 後日作業をする。Pythonのvirtualenvとpipの代わりにRipというのが開発されている。 http://github.com/defunkt/rip
まあ自分しか使っていないんだけど、以前作ったメモツールを更新した。 職場で使っていると、Macで問題が起きたり、微妙に使い辛い点が出てきた部分を修正した。 もし奇特にも使う方がいればURLはこちら。 git://github.com/longicorn/rmemo.git
いまさらだけど、ここ数日PostScriptが結構面白くRubyやGaucheから色々遊んでいる。 お絵描きが色々できるからCとかで触るような低レベル以外ではこれだけで満足かも。
まずはRuby。 Rubyにヒープオーバーフローの脆弱性、修正版をリリース | OSDN Magazine バグが有ったらしいのでアップデート。 今まで使っていたのが、p243で今回がp376なので結構パッチがあたっているのかな。 あと、Gaucheが0.9になったのでこれもアップデ…
http://d.hatena.ne.jp/longicorn/20091115#p1 で作ったツールを修正していて気づいた、というか思い出した。 ディレクトリを作るなんてあまりしないので忘れていたよ。忘れないためにメモっておく。 解決するにはFileUtilsのmkdir_pを使用すれば良い。 危う…
これは仕様なのか? #hoge.rb #!/usr/bin/env ruby #-*- encoding: utf-8 -*- require 'pp' class Array def hoge self.map do |v| v*2 end end def hoge2 p ary = self.map do |v| v*2 end ary end def hoge3 ary = self.map do |v| v*2 end p ary ary end d…
1.9での話。 どうもファイル/ディレクトリ名順で表示するのではなく、状態変更時刻順で表示しているっぽい? sortを使えばファイル/ディレクトリ名順に出来るけど妙な動作だな。
前回書いてアップするといった件。 名前は安直にrmemo。 READMEとかもかなり適当に作っているけど、どうせ自分しか使わないし問題ない。 git://github.com/longicorn/rmemo.git スクリプトはこれでgitがあればいつでも取得できるけどメモデータはどうしよう…
ちょっと前からRubyを動かすと出てくるようになったこのエラーだけど、自分の1.8時代に作ったスクリプトが原因かと思っていたら本体のoptparse.rbに問題があったぽいのでメモ。 /opt/ruby1.9.1/lib/ruby/1.9.1/optparse.rb:326: warning: regexp match /.../…
このツールはRubyの勉強用に作ったツールで、結局Ruby最初の作品だけど未だに使っている。 ただ、パッチ当てがかなり増えて、動作も重くなってきたのでここ2、3年新規に作り直しを考えていたけど面倒くさくて手つかずの状態。 なにが面倒くさいかというと機…
ここの所時間があるので、以前作ったのをベースに自前で同じ機能を作ってみたんだけど、1.9についている標準のCSVライブラリは意外と早い。自前で作ったのよりも数倍早かった。 あとビックリしたのは、FasterCSVを入れるとバージョンチェックに引っかかって…
自作ツールの1.9への移行して少しの修正で移行出来たのでメモ。 大体この辺りの対応で何とかなるはず。 まずはruby1.9の最新版へ移行 これは1.9がまだ開発が進んでいるので、古いものだとバグがあるので念のために移行する。 1.9での問題が有る部分を警告さ…
http://alfalfa.livedoor.biz/archives/51510441.htmlをみて怖くなってきたのでチョロッと作成した。 #!/usr/bin/env ruby # -*- encoding: UTF-8 -*- class String def grep(reg) ret = [] self.each_line do |line| ret << line if reg =~ line end ret en…
久しぶりに本家を覗いたらp129にまでアップされていたのでアップデートしてみた。 ちなみに現在使っているのはp0。 微妙に速くなったような気がする。気のせい?
標準ライブラリのCSVクラス見たいなのが作りたかったので練習に作ってみた。 まあ作った理由の半分は必要が有ったからだけど。 標準ライブラリでは自前で以下のような動作ができる。 #csv.rbからコピペ CSV.open("path/to/file.csv", "wb") do |csv| csv << …
メモ。 1.9.1リリースに合わせて色々情報がのっている。 http://jp.rubyist.net/magazine/?0025
日本語を含むとエラーになる。 $ ./hoge.rb ./rdic.rb:71: invalid multibyte char (US-ASCII) ./rdic.rb:71: invalid multibyte char (US-ASCII) 検索するとどうやら「マジックコメント」で文字コードの指定が必要らしい。 #!/usr/bin/env ruby # -*- encod…
中の人お疲れさまです。 早速インストールしてみたら既存スクリプトが動かねー。 eregexがないとかregexp関係でエラーが。 ちょっと直さないとなあ。 当分は1.8系と1.9系を両方使いながら移行かな。
前回のスクリプトを実際に使っていたら不満が出てきたので修正。 不満点は実際に使ってみるとビットのシフト計算がどうしても必要になってくる。 けど計算してからスクリプトを使うのは使い勝手が悪い。 そこでevalを使えるように修正。これなら引数に計算式…
組み込み系の仕事をしているとビット操作がどうしても多くなってくる。 けどアセンブラやCとかでいじる場合には値を直で設定してやることも多い。 こんなかんじで。 volatile char *hoge = 0x1234; *hoge = 0xabcd; けどハードウェア仕様書は各ビット毎に0,1…
http://d.hatena.ne.jp/longicorn/20081126#p2 で書いた単純なバージョン管理ソフトを作りだしたんだけど、ファイルの置き場所とかでOS判定があった方がいいなということで作ってみた。 http://jp.rubyist.net/magazine/?0017-CodeReview#l17 を参考にしたの…
これは知らないと意外とハマるかも。 実行環境はこんな感じ。 $ ruby -v ruby 1.8.6 (2007-09-24 patchlevel 111) [i486-linux] 以下のプログラムを実行する。 def hoge lam = lambda{return 3} prc = Proc.new{return 4} p lam.call p "lambda called" p pr…