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

lib/cgi/util.rb の中身丸ごとmoduleになった

Stringに生やすのは反対が多かったため、 関数として使えることになりました。 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?revision=40571&view=revision require 'cgi/util' include CGI::Util すると、 puts escapeHTML("<>&") &lt;&gt;&amp; となりま…

Stringに生やすのがやめたほうがいい感じなので、エスケープ関数定義にするか

erb大好きな皆さんが使っていると思われるh関数、 実体はCGI::escapeHTMLになっています。 erbでは、include ERB::Util すると、 h関数が使えるようになります。 cgiでも同じように使えたほうがいいと思いまして、 実装してみました。 インデントを付け直し…

(続)String#{escape_html, unescape_html, escape_uri, unescape_uri} をつけたい

Twitterでメソッド名がよくないという 反応だったのでちょっと修正してみました。 --- a/lib/cgi/util.rb +++ b/lib/cgi/util.rb @@ -195,4 +195,29 @@ class CGI end lines.gsub(/^((?:#{Regexp::quote(shift)})*)__(?=<\/?\w)/, '\1') end + + class ::Str…

String#{escape_html, unescape_html, escape, unescape} をつけたい

cgi/util にはいろんな人が使っているだろうメソッドがあって、 CGI::escape_html, CGI::unescape_html, CGI::escape, CGI::unescapeです。 これはStringに関する操作なのですが、 やっぱり関数的なのは好きじゃなくて、長年好きじゃないなと思っていました…

Ubuntu 12.04LTS の grub2で xen をデフォルトにする

現状は 10_linux が先に来てしまうので、そっちのメニューが来てしまう。 dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xenをしておくと、xenのメニューが先に来る。 戻すときは以下を実行。 dpkg-divert --rename --remov…

朝活をやります

突然ですが、明日4/19に朝活を開催します。 朝7:45-8:45の時間で各々作業をするという活動です。 9時からラビックス始業なので、こんな時間帯になります。 私はRubyやっていると思いますが、 Ruby以外のことを作業したい人も歓迎です。 ただ、1時間だけの実…

あんしん連絡網 You-OK」のユーザ数が10000名突破

ついにYou-OKのユーザー数が1万人を突破しました。 ここらへんで取り上げられています。 MSN産経ニュース 震災前はわずか200名ちょっとだったユーザ数でしたが、 震災から約2年で10000名突破となりました。 防災サービスですので、お客さまへのリーチは なか…

九州Ruby会議02で発表してきました

エンジニア志望だったのにRuby社長をしてよかったと思う5つのこと from xibbar 最初はもうちょっと気持ちの持ちようみたいなところを 話そうかと思ってこのタイトルにしたのですが、 もうちょっと生々しい話をしようと思って You-OKの集客の現状をお話しまし…

cgi/html.rb からevalを取り除いた

以前から中田さんから言われていた、evalを取り除きたいという話、 ようやく取り込んだのでベンチマークしてみました。 % ruby -rcgi -rbenchmark -e 'puts Benchmark.bm{|x|x.report(:after){300000.times{CGI.new("html5")}}}'

すごいぞシンデレラレンズ

去年も紹介しましたが、やっぱりシンデレラレンズすごい。 この写真見てください。 これ、フラッシュ無しで写しているんですが、 こんな写真、フラッシュ無しで撮れるのは 明るいレンズじゃないと無理です。 ズームレンズでは撮れない。 シンデレラレンズっ…

今日は娘の誕生日

弟の命日の次の日が娘の誕生日というのは 気分を引きずらなくていいかもしれない。 いろいろと手がかかる娘です。 震災直後に生まれてヒヤヒヤしましたが、 無事2歳になりました。 うちの家内が、まだおっぱいあげるんだと言って 2歳になってもまだおっぱ…

今日は命日でした

今日は1つ下の弟の命日でした。 もう6年も経ってしまいました。 なんか、気持ちがぽっかり空いたままの状態で 6年が過ぎましたが、 そのままずっと空いたままなんでしょうね。 この気持ちは埋まらない。 今日、久しぶりに自分のブログを読み直していたら、 …

ubygems をrequireすると、rubygemsをrequireできる

なんだこれ?と思ったけど、 % ruby -rubygems -e 'p :hello' :hello とまあ、 % ruby -rrubygems -e 'p :hello' のためにあるのか。 誰が入れたんだ? と思ったら、rubygemsの作者のdrbrainだった。

商売のキホン

突然ですが、「ビジネスとは何か?」と言われた時、 なんと答えますか? 私の答えは、マーケティングを勉強するときにお世話になった BCUの先生が言っていたことに付きます。 それは、 「困っている人の悩みを取り除き、その対価をもらう。」 です。 今日、…

ビット処理ノウハウ

何年やっても次々と新しい発見があるという Rubyですが、ほんとにいろいろ発見があります。 最近は組み込み系のマシンにRubyのプログラムを のっける関係でビット処理をしていたのですが、 いろいろ発見がありましたね。 特定のビットが立っているかを調べる…

第31回Rails勉強会@東北のお知らせ

日時 2013年3月23日 13:00〜17:00 場所 株式会社ラビックス 参加したい方は、このfacebookページの中にある イベントで参加表明をお願いします。 https://www.facebook.com/events/228559647289155/ Ruby2.0の新機能などをいじってみたいと思います。 その他…

ウェブデザイナーのパートの求人を出しました

ウェブのデザインができるパートの求人を ハローワークに出しました。こちらです。 条件としては、 勤務地 仙台市青葉区本町1-9-2 ラビックス内(DateFMの向かいです。) 時給 900円〜1,000円 勤務日・時間 月〜金の9〜18時の間で任意 完全リモートは無理で…

undefined class/module とか言われてアプリの起動ができなくなってしまう

このアプリの環境はRails-2.3.17、memcached、jpmobileなのですが、 あるコントローラを踏むとこんな状態になってしまって困っていました。 ArgumentError (undefined class/module Mail): Rendered rescues/_trace (34.9ms) Rendered rescues/_request_and_…

=== の挙動

>> String==="" => true >> ""===String => false まじで知らなかった。 自分の中で、どっちも同じくtrueを返すことを期待してた。 case @option when String xxx when Hash xxx end こんな感じのコードって、String === @option って 評価されていたんです…

最速でSakuraのVPSにインストールしたubuntu-12.04にRails-3.2+PostgreSQL環境を構築する方法

以前の構築メモから時間が経ったので、 バージョンを上げて、改めてメモをしてみます。 さくらVPSにUbuntu12.04はインストール済みだという前提です。 目標は、 ubuntu-12.04LTS ruby-1.9.3 rails-3.2.12 passenger postgresql-8.4 の導入です。 postfixをイ…

pushと同時に、担当者を自分にして、ステータスをNewからAssignedに自動的に変更されるようにしたい

redmineにはリポジトリの連動機能があって、refs #1とか書くと、 自動的にチケット番号と紐付けてくれるのですが、これが実におしい。 担当者がまだ振られていない状態、 ステータスもNewの状態を gitのpushで自動的に変更したいと思いました。 というわけで…

文字列に紛れたメールアドレスを取得

irb(main):001:0> "xibbar <xibbar@ruby-lang.org>".scan(/[a-zA-Z0-9_\.-]+@[a-zA-Z0-9_-]+\.[a-zA-Z0-9]+/) => ["xibbar@ruby-lang.org"] 必要になった時の思い出すのが面倒なのでメモ。</xibbar@ruby-lang.org>

パイプファイルで他のプログラムとデータのやりとりをする

組込の仕事をしてまして、 CのプログラムとRubyのプログラムでやりとりをする 必要が出て来ました。 実験してみましょう mkfifo /tmp/fifotestで/tmp/fifotestというパイプを作っておきます。 Rubyにはこれを扱うライブラリは標準ではないようです。 ruby -e…

UNIXのPAM認証をする

RubyプログラムからUNIXのログインIDとパスワードで認証したい。 昔話 昔のUNIXは/etc/passwdファイルにログインIDも パスワードも入っているものだったので、 # UNIX のログイン認証 require 'etc' def valid_login?(user, password) ent = Etc.getpwnam(us…

第30回Rails勉強会@東北のお知らせ

日時 2013年2月16日 13:00〜16:00 場所 株式会社ラビックス 参加したい方は、このfacebookページの中にある イベントで参加表明をお願いします。 https://www.facebook.com/events/427122837357108/ ネタがなかったらRailsCastsでもやります。 Ruby2.0とかや…

1.8.7でUTF-8文字列をUNICODEのコードポイント文字列へ変換する

最初のやりかたがあまりにもひどいので、String#to_unicodeを作ってみた。 class String def to_unicode self.split(//u).map{|s|s.size>1 ? "\\u%04x"%s.unpack("U*")[0] : s}.join end end > "aaあ".to_unicode => "aa\\u3042" うむ。よさそうだ。

1.8.7でUNICODEのコードポイント文字列をUTF-8文字列にデコードする

やっぱり欲しくなったので、UNICODEのコードポイントの 変換メソットをStringに追加するようにしてみました。 class String def unicode2utf8 self.gsub(/\\u([0-9a-fA-F]{4})/){[$1.hex].pack("U")} end end これを定義すると、 puts 'Element.update("temp…

rake で呼び出したrspecとcucumberのファイルを指定する

RSpec brake spec SPEC=./spec/controllers/mails_controller_spec.rb Cucumber brake cucumber FEATURE=./feature/controllers/mails_controller_spec.rb 普通、 alias brake="bundle exec rake"ぐらいはしてるよね。

Rails-2.3でUNICODEコードポイントに変換

かなり酷い技だけど、面倒くさいのでこうした。 ["aaあ"].to_json.gsub(/^\[\"(.*)\"\]$/){$1} => "aa\\u3042" ひどいわざ。

息子のお小遣いというシステムを見て思うビジネスの基本

子供の頃、両親から毎月お小遣いを貰っていました。 月が変わるといくらみたいな感じで。 そして、月日は経って私も親となり 息子も自由になるお金が欲しい歳になりました。 妻と話をしてお小遣いをあげることになりました。 お手伝いがウィークデー5日間続…