September 26, 2007

福岡空港の増設・移転

福岡空港の増設・移転が検討されています。詳しいことはお役所のサイトにあるPDFを参照して頂ければよいのですが、PDFを読むのも厄介でしょうから、ここに骨子をまとめます。

まず福岡空港は日本でも有数の過密空港となっています。滑走路が一本しかないにもかかわらず、羽田、成田についで国内で第3位の発着数を誇ります。増設するのは全く不自然ではないのですが、問題は既存の空港が市街地に取り囲まれており、容易に拡張することができないことです。

そこで行政では新空港の設置を基本として検討してきましたが、どうやら各所からの突き上げを受けたのか、新しいレポートには現空港の滑走路増設案も含めて提案しています。

以下に各案の内容をまとめます。

・滑走路増設案

案が3つあり、便宜的にここではABC案とします。工事内容が最大のものをA案と、工事内容が最小のものをC案とします。

費用: C案 2500億円〜A案 7500億円
支障: A案、丘陵を大幅除去; B案、高速道路の移設; C案 若干の用地買収
工期: C案 8年〜A案 14年
滑走路: 2800m+2500m

A案がもっとも処理能力を拡大することができ、また国内線と国際線を同居させることができます。しかし丘陵の除去や多くの用地買収を必要とする問題があり、工期も長くなります。C案は工事内容こそ少ないものの、滑走路が密接した配置となるため、発着回数をあまり増やせないという弱みがあります。

・新空港建設

場所: 志賀島沖ないし新宮沖
費用: 10000億円〜11000億円
工期: 13年程度
滑走路: 3000m×2

滑走路が2本の空港を海上に作るプランです。利便性を考え、都心部から15kmのあたりに建設する予定となっています。

私の感想としては、どちらも十分に考えられる案だと思います。

3000m×2本の新空港は魅力的ではありますが、これまでの関空や中部の実績を見る限り、福岡に777や747による長距離国際線の定期航路が開設されるとは思えません。また福岡空港は新幹線との熾烈な競争をしているので、多少でも利便性が落ちれば大阪便や鹿児島便は確実になくなるでしょう。そう考えると、新空港を作ったはいいが旅客数が伸び悩むということにもなりかねません。

すると既存空港の拡張のほうが優れた案に見えますが、騒音問題によって夜間の離着陸ができないこと、都心部での高層ビルが制限されること、などの問題があります。都心部に空港があるのは便利ですが、問題もあるのです。

どちらも一長一短ですね。

Posted by arai at 01:29 PM | Comments (1)

September 13, 2007

Techcrunch20行きます

明日からサンフランシスコです。
Techcrunch20に行ってきます。
本場のベンチャー魂を体感してきます。

Posted by arai at 08:20 PM | Comments (0)

September 01, 2007

mockmail.rb

Rubyでモックのメールサーバーを作りました。SMTPを25番ポートで待ち受けして、送られたメールの内容をファイルに書き出します。Rails Appをローカルでテストしてるときなどに使えると思います。

EHLOなどは全く対応してません。SMTPの実装はみてのとおり極めていいかげんです。クライアントはrubyのnet/smtpと、Outlook Expressしかテストしてません。もしうまく動かなかったらパッチを送ってください。

気に入ったらコメントつけてくださいね:)

require 'socket'

DEBUG = false

def data(sock)
	s = ""

	sock.print "354 End data with <CR><LF>.<CR><LF>\r\n"
	while(line = sock.gets)
		puts line if DEBUG
		break if line =~ /^\.\r?\n?$/
		s += line
	end
	s
end

def session(sock)
	sock.print "220 localhost SMTP mockmail\r\n"
	from = nil
	to = []
	body = nil
	while(line = sock.gets)
		line.chomp!
		puts line if DEBUG
		sock.print case line
			when /HELO/: "250 localhost\r\n"
			when /RSET/: "250 Ok\r\n"
			when /VRFY/:
				/VRFY [^\s]/ =~ line
				"252 #{$1}\r\n"
			when /MAIL FROM/:
				/MAIL FROM:\s*\<?([^\s<>]+)\>?/ =~ line
				from = $1
				puts from if DEBUG
				"250 Ok\r\n"
			when /RCPT TO/:
				/RCPT TO:\s*\<?([^\s\r\n\t\f<>]+)\>?/ =~ line
				to << $1
				puts to if DEBUG
				"250 Ok\r\n"
			when /DATA/:
				body = data(sock)
				"250 Ok\r\n"
			when /QUIT/:
				sock.print "221 Bye\r\n"
				break
			else "500 Err\r\n"
		end
	end
	puts "from: #{from}"
	puts "to: #{to.join '; '}"
	puts "---"
	puts body
	puts "==="
	open("mockmail.txt", "a") { |f|
		f.puts "from: #{from}"
		f.puts "to: #{to.join '; '}"
		f.puts "---"
		f.puts body
		f.puts "==="
	}
	sock.close
end

def main
	begin
		server = TCPServer.new('localhost',25)
		Thread.start {
			loop { sleep 1 }
		}
		loop do 
			Thread.start(server.accept) { |sock|
				begin
					session(sock)
				rescue Exception => e
					p e
				end
			}
		end
	rescue Interrupt => i
		puts "ending..."
	end
end

main
Posted by arai at 02:05 AM | Comments (0)