ポルト留学 1日目(移動日1日目)

ポルト留学自体についてはコチラを参照

概要

本日は移動日1日目です。成田空港から、飛行機に乗ってパリに行くつくまでを書き記します。

成田 --(AIR FRANCE)--> パリ
出発: 8/16 9:55 PM JST
到着: 8/17 4:15 AM CEST

続きを読む

明日からポルト留学です

いろいろありまして、ポルトガルに留学することになりました。期間は明日から9月下旬までです。

海外初体験で英語も大してできず、現地の言語ポルトガル語はまったくできないというIT学生が感じたことをそのまま書き記していこうと思います。

記事一覧はコチラ

写真一覧はコチラ

Rabbitをインストールしてみた(on Windows)

基本的には、公式ドキュメント通りですが、
自分のメモ用にまとめてみます。

Ruby バイナリ

http://www.garbagecollect.jp/ruby/mswin32/ja/

上記のバイナリをよく使わせていただいています。

現在のRabbit 0.5.9は、ruby 1.9系では動かないようです(ソース)。
ですので、ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.8.7-p72-i386-mswin32.zip をDLし、仮にC:\bin\ruby1.8に展開します。

必要なライブラリも以下のURLから取得し、bin以下のdllをC:\bin\ruby1.8\bin以下に展開します。

zLib

http://gnuwin32.sourceforge.net/packages/zlib.htm
最新は、http://gnuwin32.sourceforge.net/downlinks/zlib-bin-zip.php (bin\zlib1.dll -> zlib.dllにリネームします)

openssl

http://gnuwin32.sourceforge.net/packages/openssl.htm
最新は、http://downloads.sourceforge.net/gnuwin32/openssl-0.9.8h-1-bin.zip (libeay32.dll, libssl32.dll->ssleay32.dllにリネームします)


そして最後に環境変数にPATHを通します。

RDTool

http://raa.ruby-lang.org/project/rdtool

現在の最新は、http://www.moonwolf.com/ruby/archive/rdtool-0.6.22.tar.gzです。
ダウンロードして、以下を実行します。

ruby setup.rb

Ruby/GTK2 + GTK2

http://sourceforge.net/projects/ruby-gnome2/

(Windows版の)現在の最新は、http://downloads.sourceforge.net/ruby-gnome2/ruby-gnome2-0.16.0-1-i386-mswin32.exeです。
ウィザードに従って、そのままインストールします。

Rabbit

http://www.cozmixng.org/~rwiki/?cmd=view;name=Rabbit

現在の最新は、http://www.cozmixng.org/~kou/download/rabbit-0.5.9.tar.gzです。
ダウンロードして、install.batを実行します。


ここまでで、とりあえずスクリーンを出すことができました。後は、必要に応じてEnscriptなどをインストールします。

仙台Ruby会議01に行ってきました

仙台Ruby会議01に行って来ました。田舎から高速で片道2時間強の移動でした。事前準備をしていった結果、徹夜状態での参加でした…。

仙台Ruby会議01を簡単に振り返る

セッションも楽しかったですが、やはり懇親会楽しかったですね。牛タンもなにやら上の牛タンだったらしくウマーでした。人数がそんなに多くなかったので、いろんな方と長くトークできたのも良かったです。どちらかというと、技術よりは人と知り合えたり、マインド面のほうが収穫が多かったかなと思います。

続きを読む

AttachmentFuプラグインで、日本語ファイル名が文字化けしてしまう

AttachmentFuプラグインでは、ファイル名を保存してくれます。
しかし、日本語の文字については勝手に'_'で書き換えられてしまいます。例: ____.png

原因

attachment_fu.rb

module Technoweenie # :nodoc:
  module AttachmentFu # :nodoc:
    module InstanceMethods
        def sanitize_filename(filename)
          return unless filename
          returning filename.strip do |name|
            # NOTE: File.basename doesn't work right with Windows paths on Unix
            # get only the filename, not the whole path
            name.gsub! /^.*(\\|\/)/, ''

            # Finally, replace all non alphanumeric, underscore or periods with underscore
            name.gsub! /[^A-Za-z0-9\.\-]/, '_' # これが原因!
          end
        end
  end
end

対策

sanitizeを日本語対応すればよいです。
initializers/attachment_fu_i18n.rbをつくり、

require 'rack'

module Technoweenie # :nodoc:
  module AttachmentFu # :nodoc:
    module ActMethods

      alias_method :orig_has_attachment, :has_attachment
      def has_attachment(options = {})
        orig_has_attachment options
        include InstanceMethods_i18n unless included_modules.include?(InstanceMethods_i18n)
      end
    end

    module InstanceMethods_i18n
      # Sanitizes a filename.
      def filename=(new_name)
        write_attribute :filename, sanitize_filename_i18n(new_name.toutf8)
      end

      protected
      def sanitize_filename_i18n(filename)
        return unless filename
        # NOTE: File.basename doesn't work right with Windows paths on Unix
        # get only the filename, not the whole path
        # And used for sanitize.
        filename.strip.gsub(/(\\|\/|\0|<|>|:|\||\?|\*)/, '_') 
      end
    end
  end
end

な感じでオーバーライドすれば、日本語のファイル名がとれてきます。