2011年10月25日火曜日

[その他] IE9でCSVがZIPでダウンロードされる問題に悩んだ

Google Chrome や Fire fox だと普通にCSVがダウンロードできるのに、IE9だとZIPでダウンロードされる謎現象が発生した。

調査してみたら、内部実装の問題だった。


簡単に言うと、MIMEタイプの指定ミスでした。

ダウンロードされるファイルがCSVなのに、typeが「application/zip」が指定されてたので、「text/csv」に修正したらちゃんとCSVでダウンロードできました。


備忘録としてのメモ。

2011年10月24日月曜日

[Rails] 「RailsによるアジャイルWebアプリケーション開発 第4版」が11月に発売される

表題どおり。


「RailsによるアジャイルWebアプリケーション開発 第4版」
http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?&ISBN=978-4-274-06866-9

・著者:Sam Ruby, Dave Thomas, David Heinemeier Hansson, et al. 共著
前田修吾 監訳 
・定価:3360円(本体3200円+税)
・B5変 480頁
・ISBN 978-4-274-06866-9
・発売日:2011/11


>日本語版ではRails3.1に対応しています。 
発売がとっても楽しみだ。

2011年10月23日日曜日

ブログタイトルを変更

ブログタイトルを「迷い家のシロ」から「迷い家のシロ猫」に変わり、
そして、今日「迷い家の白猫」に変更しました。


と言うのも、前に「迷い家の白猫」に変えたら「迷い家のB猫」になってしまうバグ(?)があったのでカタカナにしてましたが、今日試してみたら問題なかったので漢字に変更しました。


これから、よろしくお願いします。

2011年9月29日木曜日

[Vim] VimでRuby on Rails開発

■Vim/Ruby
cd /usr/local/src/
git clone http://github.com/vim-ruby/vim-ruby.git
cd vim-ruby
mv INSTALL.markdown INSTALL
rake package

※エラーが出た場合(rake 0.9以降)
vim Rakefile
------------------------------------------------
+#require 'rake/gempackagetask'
+require 'rubygems/package_task'

+#Rake::GemPackageTask.new(gemspec) do |t|
+Gem::PackageTask.new(gemspec) do |t|
------------------------------------------------

# {yyyy.MM.dd}は今日の日付
gem install etc/package/vim-ruby-{yyyy.MM.dd}.gem

vim ~/.vimrc
------------------------------------------------
set nocompatible
filetype on
filetype indent on
filetype plugin on
set expandtab
set autoindent

"----------------------------------------------------
" vim-rubyの設定
"----------------------------------------------------
"でomni補完
imap

let ruby_space_errors=1

"Rubyのオムニ補完を設定(ft-ruby-omni)
let g:rubycomplete_buffer_loading = 1
let g:rubycomplete_classes_in_global = 1
let g:rubycomplete_rails = 1
------------------------------------------------


■rails.vim
wget -O ~/.vim/rails.zip http://www.vim.org/scripts/download_script.php?src_id=16429
cd ~/.vim
unzip rails.zip
rm -rf rails.zip

■project.vim
wget -O ./project-1.4.1.tar.gz http://www.vim.org/scripts/download_script.php?src_id=6273
tar -xvf ./project-1.4.1.tar.gz -C ~/.vim
rm -rf ./project-1.4.1.tar.gz

vim ~/.vimrc
------------------------------------------------
"----------------------------------------------------
" rails.vimの設定(rails.vim)
"----------------------------------------------------
let g:rails_level = 4
let g:rails_devalut_database = 'mysql'
------------------------------------------------

■matchit.vim
wget -O ~/.vim/matchit.zip http://www.vim.org/scripts/download_script.php?src_id=8196
cd ~/.vim
unzip matchit.zip
rm -rf matchit.zip


■surround.vim
wget -O ~/.vim/surround.zip http://www.vim.org/scripts/download_script.php?src_id=12566
cd ~/.vim
unzip surround.zip
rm -rf surround.zip

■snippetEmu.vim
wget -O ~/snippy_plugin.vba http://www.vim.org/scripts/download_script.php?src_id=8450
vim snippy_plugin.vba
------------------------------------------------
:source %
------------------------------------------------
rm -rf snippy_plugin.vba

■NERD_commenter.vim
wget -O ~/.vim/nerdcommenter.zip http://www.vim.org/scripts/download_script.php?src_id=14455
cd ~/.vim
unzip nerdcommenter.zip
rm -rf nerdcommenter.zip

■autocomplpop.vim

wget -O ~/.vim/vim-autocomplpop.zip http://www.vim.org/scripts/download_script.php?src_id=11894
cd ~/.vim
unzip vim-autocomplpop.zip
rm -rf vim-autocomplpop.zip


■vimrcの設定
vim ~/.vimrc
------------------------------------------------
"タブ幅をリセット
au BufNewFile,BufRead * set tabstop=4 shiftwidth=4
".rhtmlと.rbと.ymlでタブ幅を変更
au BufNewFile,BufRead *.rhtml set tabstop=2 shiftwidth=2
au BufNewFile,BufRead *.rb set tabstop=2 shiftwidth=2
au BufNewFile,BufRead *.yml set tabstop=2 shiftwidth=2
"Rails関連ファイルで文字コードをUFT-8に設定
au User Rails* set fenc=utf-8
------------------------------------------------

[Vim] Vim7.3をCentOSにインストール

■旧バージョンのアンインストール
yum -y remove vim vim-enhanced

■ソースコードのダウンロード
cd /usr/local/src/
wget ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2
wget ftp://ftp.jp.vim.org/pub/vim/extra/vim-7.2-extra.tar.gz
wget ftp://ftp.vim.org/pub/vim/extra/vim-7.2-lang.tar.gz

■ncursesのインストール
yum -y install ncurses-devel

■ファイルの解凍
tar jxvf vim-7.3.tar.bz2
tar zxvf vim-7.2-extra.tar.gz
tar zxvf vim-7.2-lang.tar.gz
mv vim72 vim73/

■コンパイル
cd vim73/src
./configure --enable-multibyte \
--with-features=huge \
--disable-selinux \
--prefix='/usr/local/vim-7.3'
make && make install

■シンボリックリンク作成
ln -s /usr/local/vim-7.3/bin/vim /usr/bin

■設定
vim ~/.vimrc
---------------------------------------
set number
set cindent
syntax on
set backspace=2
set tabstop=4
set wildmode=longest,list,full
---------------------------------------

■Buftab
cd /usr/local/src/
mkdir -p ~/.vim/plugin
wget -O ~/.vim/plugin/buftabs.vim http://vim.sourceforge.net/scripts/download_script.php?src_id=15439

vim ~/.vim/plugin/buftabs.vim
---------------------------------------
let g:buftabs_only_basename=1
let g:buftabs_in_statusline=1
let g:buftabs_active_highlight_group="Visual"
set statusline=%{g:buftabs_list}%=\ [%{(&fenc!=''?&fenc:&enc)}/%{&ff}]\[%Y]\[%04l,%04v][%p%%]
set laststatus=2
map :bn
---------------------------------------

2011年9月28日水曜日

[Rails] タイムゾーン一覧

ActiveSupport::TimeZone.all.collect {|tz| [ "(GMT#{sprintf("%+03d", tz.utc_offset/3600)}:00) #{I18n.t(tz.name, :scope => :time_zones)}", tz.name ] }

  time_zones:
    International Date Line West: "国際日付変更線 東側"
    Midway Island: "ミッドウェー島"
    Samoa: "サモア"
    Hawaii: "ハワイ"
    Alaska: "アラスカ"
    Pacific Time (US & Canada): "太平洋標準時(米国、カナダ)"
    Tijuana: "ティファナ"
    Arizona: "アリゾナ"
    Chihuahua: "チワワ"
    Mazatlan: "マサトラン"
    Mountain Time (US & Canada): "山地標準時(米国、カナダ)"
    Central America: "中央アメリカ"
    Central Time (US & Canada): "中部標準時(米国、カナダ)"
    Guadalajara: "グアダラハラ"
    Mexico City: "メキシコシティ"
    Monterrey: "モンテレー"
    Saskatchewan: "サスカチュワン"
    Bogota: "ボゴタ"
    Eastern Time (US & Canada): "東部標準時(米国、カナダ)"
    Indiana (East): "インディアナ東部"
    Lima: "リマ"
    Quito: "キト"
    Caracas: "カラカス"
    Atlantic Time (Canada): "大西洋標準時 (カナダ)"
    La Paz: "ラパス"
    Santiago: "サンティアゴ"
    Newfoundland: "ニューファンドランド"
    Brasilia: "ブラジリア"
    Buenos Aires: "ブエノスアイレス"
    Georgetown: "ジョージタウン"
    Greenland: "グリーンランド"
    Mid-Atlantic: "中央大西洋"
    Azores: "アゾレス諸島"
    Cape Verde Is: "ガーボベルデ諸島"
    Casablanca: "カサブランカ"
    Dublin: "ダブリン"
    Edinburgh: "エジンバラ"
    Lisbon: "リスボン"
    London: "ロンドン"
    Monrovia: "モンロビア"
    UTC: "UTC"
    Amsterdam: "アムステルダム"
    Belgrade: "ベオグラード"
    Berlin: "ベルリン"
    Bern: "ベルン"
    Bratislava: "ブラチスラヴァ"
    Brussels: "ブリュッセル"
    Budapest: "ブダペスト"
    Copenhagen: "コペンハーゲン"
    Ljubljana: "リュブリャナ"
    Madrid: "マドリード"
    Paris: "パリ"
    Prague: "プラハ"
    Rome: "ローマ"
    Sarajevo: "サラエヴォ"
    Skopje: "スコピエ"
    Stockholm: "ストックホルム"
    Vienna: "ウィーン"
    Warsaw: "ワルシャワ"
    West Central Africa: "西中央アフリカ"
    Zagreb: "ザグレブ"
    Athens: "アテネ"
    Bucharest: "ブカレスト"
    Cairo: "カイロ"
    Harare: "ハラレ"
    Helsinki: "ヘルシンキ"
    Istanbul: "イスタンブール"
    Jerusalem: "エルサレム"
    Kyev: "キエフ"
    Minsk: "ミンスク"
    Pretoria: "プレトリア"
    Riga: "リガ"
    Sofia: "ソフィア"
    Tallinn: "タリン"
    Vilnius: "ビリニュス"
    Baghdad: "バグダード"
    Kuwait: "クウェート"
    Moscow: "モスクワ"
    Nairobi: "ナイロビ"
    Riyadh: "リヤド"
    St:
      " Petersburg": "サンクトペテルブルク"
    Volgograd: "ヴォルゴグラード"
    Tehran: "テヘラン"
    Abu Dhabi: "アブダビ"
    Baku: "バクー"
    Muscat: "マスカット"
    Tbilisi: "トビリシ"
    Yerevan: "エレバン"
    Kabul: "カーブル"
    Ekaterinburg: "エカテリンブルク"
    Islamabad: "イスラマバード"
    Karachi: "カラチ"
    Tashkent: "タシケント"
    Chennai: "チェンナイ"
    Kolkata: "コルカタ"
    Mumbai: "ムンバイ"
    New Delhi: "ニューデリー"
    Sri Jayawardenepura: "スリジャヤワルダナプラ"
    Kathmandu: "カトマンズ"
    Almaty: "アルマティ"
    Astana: "アスタナ"
    Dhaka: "ダッカ"
    Novosibirsk: "ノボシビルスク"
    Rangoon: "ラングーン"
    Bangkok: "バンコク"
    Hanoi: "ハノイ"
    Jakarta: "ジャカルタ"
    Krasnoyarsk: "クラスノヤルスク"
    Beijing: "北京"
    Chongqing: "重慶"
    Hong Kong: "香港"
    Irkutsk: "イルクーツク"
    Kuala Lumpur: "クアラルンプール"
    Perth: "パース"
    Singapore: "シンガポール"
    Taipei: "台北"
    Ulaan Bataar: "ウランバートル"
    Urumqi: "ウルムチ"
    Osaka: "大阪"
    Sapporo: "札幌"
    Seoul: "ソウル"
    Tokyo: "東京"
    Yakutsk: "ヤクーツク"
    Adelaide: "アデレード"
    Darwin: "ダーウィン"
    Brisbane: "ブリスベン"
    Canberra: "キャンベラ"
    Guam: "グアム"
    Hobart: "ホバート"
    Melbourne: "メルボルン"
    Port Moresby: "ポートモレスビー"
    Sydney: "シドニー"
    Vladivostok: "ウラジオストク"
    Magadan: "マガダン"
    New Caledonia: "ニューカレドニア"
    Solomon Is: "ソロモン諸島"
    Auckland: "オークランド"
    Fiji: "フィジー"
    Kamchatka: "カムチャッカ"
    Marshall Is: "マーシャル諸島"
    Wellington: "ウェリントン"
    Nuku'alofa: "ヌクアロファ"


国際化対応なし版

ActiveSupport::TimeZone.all.collect {|tz| [ "(GMT#{sprintf("%+03d", tz.utc_offset/3600)}:00) #{tz.name}", tz.name ] }

2011年4月28日木曜日

予約語

ちょいとしたメモ


【ruby】
BEGIN    class    ensure   nil      self     when
END      def      false    not      super    while
alias    defined? for      or       then     yield
and      do       if       redo     true
begin    else     in       rescue   undef
break    elsif    module   retry    unless
case     end      next     return   until


【Rails】
ADDITIONAL_LOAD_PATHS, ARGF, ARGV, ActionController, ActionView, ActiveRecord,
ArgumentError, Array, BasicSocket, Benchmark, Bignum, Binding, CGI0, CGIMethods,
Class, ClassInheritableAttributes, Comparable, ConditionVariable, Config, Continuation,
DRb, DRbIdConv, DRbObject, DRbUndumped, Data, Date, DateTime, Delegater, Delegator,
Digest, Dir, ENV, EOFError, ERB, Enumerable, Errno, Exception, FALSE, FalseClass,
Fcntl, File, FileList, FileTask, FileTest, FileUtils, Fixnum, Float, FloatDomainError, GC,
Gem, GetoptLong, Hash, IO, IOError, IPSocket, IPsocket, IndexError, Inflector, Integer,
Interrupt, Kernel, LN_SUPPORTED, LoadError, LocalJumpError, Logger, Marshal,
MatchData, MatchingData, Math, Method, Module, Mutex, Mysql, MysqlError, MysqlField,
MysqlRes, NIL, NameError, NilClass, NoMemoryError, NoMethodError, NoWrite,
NotImplementedError, Numeric, OPT_TABLE, Object, ObjectSpace, Observable,
Observer, PGError, PGconn, PGlarge, PGresult, PLATFORM, PStore, ParseDate, Precision,
Proc, Process, Queue, RAKEVERSION, RELEASE_DATE, RUBY, RUBY_PLATFORM,
RUBY_RELEASE_DATE, RUBY_VERSION, Rake, RakeApp, RakeFileUtils, Range,
RangeError, Rational, Regexp, RegexpError, Request, RuntimeError, STDERR,
STDIN, STDOUT, ScanError, ScriptError, SecurityError, Signal,
SignalException, SimpleDelegater, SimpleDelegator, Singleton, SizedQueue,
Socket, SocketError, StandardError, String, StringScanner, Struct,
Symbol, SyntaxError, SystemCallError, SystemExit, SystemStackError,
TCPServer, TCPSocket, TCPserver, TCPsocket, TOPLEVEL_BINDING, TRUE, Task,
Text, Thread, ThreadError, ThreadGroup, Time, Transaction, TrueClass,
TypeError, UDPSocket, UDPsocket, UNIXServer, UNIXSocket, UNIXserver,
UNIXsocket, UnboundMethod, Url, VERSION, Verbose, YAML0, ZeroDivisionError




【MySQL】
ACCESSIBLE ADD ALL
ALTER ANALYZE AND
AS ASC ASENSITIVE
BEFORE BETWEEN BIGINT
BINARY BLOB BOTH
BY CALL CASCADE
CASE CHANGE CHAR
CHARACTER CHECK COLLATE
COLUMN CONDITION CONSTRAINT
CONTINUE CONVERT CREATE
CROSS CURRENT_DATE CURRENT_TIME
CURRENT_TIMESTAMP CURRENT_USER CURSOR
DATABASE DATABASES DAY_HOUR
DAY_MICROSECOND DAY_MINUTE DAY_SECOND
DEC DECIMAL DECLARE
DEFAULT DELAYED DELETE
DESC DESCRIBE DETERMINISTIC
DISTINCT DISTINCTROW DIV
DOUBLE DROP DUAL
EACH ELSE ELSEIF
ENCLOSED ESCAPED EXISTS
EXIT EXPLAIN FALSE
FETCH FLOAT FLOAT4
FLOAT8 FOR FORCE
FOREIGN FROM FULLTEXT
GRANT GROUP HAVING
HIGH_PRIORITY HOUR_MICROSECOND HOUR_MINUTE
HOUR_SECOND IF IGNORE
IN INDEX INFILE
INNER INOUT INSENSITIVE
INSERT INT INT1
INT2 INT3 INT4
INT8 INTEGER INTERVAL
INTO IS ITERATE
JOIN KEY KEYS
KILL LEADING LEAVE
LEFT LIKE LIMIT
LINEAR LINES LOAD
LOCALTIME LOCALTIMESTAMP LOCK
LONG LONGBLOB LONGTEXT
LOOP LOW_PRIORITY MASTER_SSL_VERIFY_SERVER_CERT
MATCH MEDIUMBLOB MEDIUMINT
MEDIUMTEXT MIDDLEINT MINUTE_MICROSECOND
MINUTE_SECOND MOD MODIFIES
NATURAL NOT NO_WRITE_TO_BINLOG
NULL NUMERIC ON
OPTIMIZE OPTION OPTIONALLY
OR ORDER OUT
OUTER OUTFILE PRECISION
PRIMARY PROCEDURE PURGE
RANGE READ READS
READ_ONLY READ_WRITE REAL
REFERENCES REGEXP RELEASE
RENAME REPEAT REPLACE
REQUIRE RESTRICT RETURN
REVOKE RIGHT RLIKE
SCHEMA SCHEMAS SECOND_MICROSECOND
SELECT SENSITIVE SEPARATOR
SET SHOW SMALLINT
SPATIAL SPECIFIC SQL
SQLEXCEPTION SQLSTATE SQLWARNING
SQL_BIG_RESULT SQL_CALC_FOUND_ROWS SQL_SMALL_RESULT
SSL STARTING STRAIGHT_JOIN
TABLE TERMINATED THEN
TINYBLOB TINYINT TINYTEXT
TO TRAILING TRIGGER
TRUE UNDO UNION
UNIQUE UNLOCK UNSIGNED
UPDATE USAGE USE
USING UTC_DATE UTC_TIME
UTC_TIMESTAMP VALUES VARBINARY
VARCHAR VARCHARACTER VARYING
WHEN WHERE WHILE
WITH WRITE XOR
YEAR_MONTH ZEROFILL

ACCESSIBLE LINEAR MASTER_SSL_VERIFY_SERVER_CERT
RANGE READ_WRITE

ACTION  BIT  DATE  ENUM  NO  TEXT  TIME  TIMESTAMP



【Java】
abstract assert boolean break byte
case catch char class const
continue default do double else
enum extends final finally float
for goto if implements import
instanceof int interface long native
new package private protected public
return short static strictfp super
switch synchrnized this throw throws
transient try void volatile while

true false null



【Javascript】
break case catch continue default
delete do else false finally
for function if in instanceof
new null return switch this
throw true try typeof var
void while with

arguments Array Boolean Date decodeURI
decodeURIComponent encodeURI Error escape eval
EvalError Infinity isFinite isNaN Math
NaN Function Object parseFloat parseInt
RangeError ReferenceError Number String SyntaxError
TypeError undefined unescape RegExpURIError

abstract as boolean byte char
class const debugger double enum
export extends final float goto
implements import int interface is
long namespace native package private
protected public short static super
synchronized throws transient use volatile


【C言語】
asm auto break case continue const char
default do double else endasm entry enum
extern float for goto if int long
register return short signed sizeof static struct
switch typedef union unsigned void volatile while



【C++】
asm auto bad_cast bad_typeid
bool break case catch
char class const const_cast
continue default delete do
double dynamic_cast else enum
except explicit extern false
finally float for friend
goto if inline int
long mutable namespace new
operator private protected public
register reinterpret_cast return short
signed sizeof static static_cast
struct switch template this
throw true try type_info
typedef typeid union unsigned
using virtual void volatile
while xalloc