都道府県コード

2010/09/30 | その他

都道府県のプルダウンを作るとき、検索して、見つかった表をコピペして、整形して・・・。毎回そういう処理をしていたけど、馬鹿らしくなったので、リストを作ってメモしておくことにする。JIS番号がついているということで。

1,北海道,北海道

2,青森県,青森

3,岩手県,岩手

4,宮城県,宮城

5,秋田県,秋田

6,山形県,山形

7,福島県,福島

8,茨城県,茨城

9,栃木県,栃木

10,群馬県,群馬

11,埼玉県,埼玉

12,千葉県,千葉

13,東京都,東京

14,神奈川県,神奈川

15,新潟県,新潟

16,富山県,富山

17,石川県,石川

18,福井県,福井

19,山梨県,山梨

20,長野県,長野

21,岐阜県,岐阜

22,静岡県,静岡

23,愛知県,愛知

24,三重県,三重

25,滋賀県,滋賀

26,京都府,京都

27,大阪府,大阪

28,兵庫県,兵庫

29,奈良県,奈良

30,和歌山県,和歌山

31,鳥取県,鳥取

32,島根県,島根

33,岡山県,岡山

34,広島県,広島

35,山口県,山口

36,徳島県,徳島

37,香川県,香川

38,愛媛県,愛媛

39,高知県,高知

40,福岡県,福岡

41,佐賀県,佐賀

42,長崎県,長崎

43,熊本県,熊本

44,大分県,大分

45,宮崎県,宮崎

46,鹿児島県,鹿児島

47,沖縄県,沖縄

1,北海道,北海道
2,青森県,青森
3,岩手県,岩手
4,宮城県,宮城
5,秋田県,秋田
6,山形県,山形
7,福島県,福島
8,茨城県,茨城
9,栃木県,栃木
10,群馬県,群馬
11,埼玉県,埼玉
12,千葉県,千葉
13,東京都,東京
14,神奈川県,神奈川
15,新潟県,新潟
16,富山県,富山
17,石川県,石川
18,福井県,福井
19,山梨県,山梨
20,長野県,長野
21,岐阜県,岐阜
22,静岡県,静岡
23,愛知県,愛知
24,三重県,三重
25,滋賀県,滋賀
26,京都府,京都
27,大阪府,大阪
28,兵庫県,兵庫
29,奈良県,奈良
30,和歌山県,和歌山
31,鳥取県,鳥取
32,島根県,島根
33,岡山県,岡山
34,広島県,広島
35,山口県,山口
36,徳島県,徳島
37,香川県,香川
38,愛媛県,愛媛
39,高知県,高知
40,福岡県,福岡
41,佐賀県,佐賀
42,長崎県,長崎
43,熊本県,熊本
44,大分県,大分
45,宮崎県,宮崎
46,鹿児島県,鹿児島
47,沖縄県,沖縄

IEで「文字が正しくありません」

2010/09/25 | JavaScript/Ajax

最近はjQueryを使った動きのあるフロントエンドを作る作業が多いのだが、先日IEで問題が発生した。

自分の場合、フロントエンドの開発の際はFireFoxを使っている。JavaScriptのデバッグ処理は、なんといってもFireBugが便利だからだ。以前はJavaScriptの開発がとても嫌いだったのだが、おそらくIEで表示されるJavaScriptのエラーメッセージの意味が全くもって不明だったことも一因だと思っている。

フレームワークを使わない場合は、クロスブラウザ対応で問題がでることが多かったが、最近はそのへんをフレームワークが全て吸収してくれるので便利だ。

さて、本筋に戻って開発段階で問題なく動いていたJavaScriptをクロスブラウザ環境で一通りテストしてみて問題が起きた。FireFox、Chrome、Safariとここまでは順調だったが・・・、IEでつまづいた。「文字が正しくありません」。

おかしい。開発段階でも万一を考えて時々IEでもチェックしていたのだから、今更動かないわけがない。しかし実際は動かないので悩んでしまった。訳がわからないことに、サーバにアップロードすると動くけどローカルPC上では動かない。ウェブを検索すると、いくつか原因となりそうな事項があるような感じ。

  • JavaScript外部ファイルのパスの指定が間違っている
    いやいや、初心者でもないのでさすがにそういうミスはありえない。というか一番最初に調べてるし。
  • JavaScript外部ファイルの文字コードとHTMLの文字コードが違う
    ドキドキして調べたけど、そういえばプログラムに日本語使ってない。一部コメントには日本語があるけれど・・・。ってそれでももちろん問題ない。文字コードはあわせてある。

と、虱潰しにあたってみたけど、まったくわからない。そしてふと思いついた。

「キャッシュ壊れてないか」

IEのキャッシュを削除して、再度ページを開き直すと問題なく動いた。そういえばさっきの状態では、本来なら「セキュリティ保護のため・・・」というローカルファイルにJavaScriptが埋め込まれている場合に表示されるエラー自体が出ていなかった(ちょっとおかしいなぁとおもっていたのだが)。

ということで原因はキャッシュが壊れていたことだったようだ。

jQueryのajax処理で

2010/09/11 | JavaScript/Ajax

jQuery-1.4.2を使っていて生じた問題についてのメモ。

jQueryを使ってajax処理し、結果をjsonで受け取るなんていうのはよくある話。普段から使っていた処理なのに、今回どうにもこうにもはまってしまったのでメモ。

ajaxメソッドの引数のオブジェクトで{success:hoge,error:fuga}と成功時と失敗時でそれぞれ関数を定義しておいた。基本的にはhoge関数が起動してその中で処理が行われ、fuga関数自体が起動されることはまずないはず、と踏んでいた。しかしどうしてもhoge関数が呼ばれず、fuga関数ばかりが呼ばれてしまう。理由がわからない。

まずfuga関数の第2引数をダンプしてみた。「parseerror」の表示。つまりサーバから送られてきたレスポンスがjsonオブジェクトになっていない(フォーマットが間違っている)というエラーだ。最初はてっきり「あ、またヘッダつけるの忘れた」と思い、PHP側で以下の1行を追加してみたが結果は変わらない。

header(‘Content-Type: application/json; charset=utf-8′);

どうにもこうにも原因がわからないので、根本的に「JavaScriptのオブジェクトってこのフォーマットであってたっけ」みたいなことも考えてみた。PHP側からの出力は最初、以下のようにしていた。

{result:0, message:’エラー’}

JavaScriptとしては正常なオブジェクトのように思うのだが、jQueryはこの形式がお嫌いのようだ。まず問題を簡単にするために[]とか{}とかで返してみた。この場合は正常にパースしてくれる。次に[1]や[1,2]としてみた。これもOK。そして[‘1′]。これはパースエラーになった。もしやと思い[“1″]。これはセーフ。つまりシングルクォーテーションでくくるのはダメらしい。マジかよ。

次にオブジェクトをチェック。{“result”:0}はOKだけど{result:0}はNG。つまり添字になる部分もダブルクォーテーションでくくれってことになっている(シングルクォーテーションの場合もNGだった)。

結果として、以下の文字列で返すことで正常にパースできるようになった。

{“result”:0, “message”:”エラー”}

なんだか解せないが、とりあえずヨシとする。

中国のスパム最悪

2010/09/08 | その他

自分が運営しているサイトで中国からのスパムがうざい。いろいろ調べたが、やはり確実なのはかたっぱしからIPアドレスで拒否ることだけのようだ。

IPv4アドレスは世界で5つの地域インターネットレジストリが管理していて、どの国にどのIPアドレスが割り当てられているかを確認できる。それらのリストは以下のとおり。

ftp://ftp.arin.net/pub/stats/arin/delegated-arin-latest
ftp://ftp.ripe.net/pub/stats/ripencc/delegated-ripencc-latest
ftp://ftp.apnic.net/pub/stats/apnic/delegated-apnic-latest
ftp://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-latest
ftp://ftp.afrinic.net/pub/stats/afrinic/delegated-afrinic-latest

ftp://ftp.arin.net/pub/stats/arin/delegated-arin-latest
ftp://ftp.ripe.net/pub/stats/ripencc/delegated-ripencc-latest
ftp://ftp.apnic.net/pub/stats/apnic/delegated-apnic-latest
ftp://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-latest
ftp://ftp.afrinic.net/pub/stats/afrinic/delegated-afrinic-latest

ここからCNなIPのリストを作ってはじけばよさそう。少し時間があれば、スクリプトでうまく作れそうだけど、時間がないので、とりあえずの対応だけしておいた。

あーほんとむかつく。

postgresqlの起動は・・・

2010/09/05 | PostgreSQL

NTTPC Communicationsが提供するWebARENAのVPSを追加契約した(現在3台目)。ここのVPSは基本的にまず落ちない。過去5年くらい使っているけど、落ちたのはメンテナンスの時だけ(もちろん事前のアナウンスあり)。だからミッションクリティカルな案件の時は必ずこのVPSを使うことにしている(サポートも悪くないし)。

そのサーバではMySQLでサービスを構築するはずだったのだが、急遽PostgreSQLを別件で使用することになった。早速使おうと思って、initdbコマンドを発行しようとしたところ、コマンドが見当たらない。「あれっ」と思って、/etc/rc.d/init.d/以下のPostgreSQLの起動コマンドを探したけど、それも見つからない。なぜだ。

いちおうデフォルトでPostgreSQLも使えることになっているのだが「もしやインストールされていないのでは」と思ってrpmコマンドで確認してみた。

  • postgresql
  • postgresql-libs

入っているけど・・・、これでよかったっけか。普段使っていないので、いいか悪いかもわからない。ちょっとウェブで調べてみたら・・・。ない。postgresql-serverがない!。

yumコマンドで早速インストール。これでinitdbコマンドも起動コマンドもインストールされた。初期状態じゃ、使えないんじゃん。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net