”読めてしまう”ケブンッリジ変換プログラムを作ってみた
確かに“読めてしまう”コピペに2ch住人が「人間すげー」と驚く
「なんだこりゃ」と思ってよく“読んで”みると「へー」と驚くコピペ文章が最近2ちゃんねるに登場し、スレッド(スレ)の本題そっちのけでコピペに関する考察レスが交わされる……なんてことも起きている。
コピペ文はひらがなとカタカナだけで書かれており、一見すると2chでたまに見かけるうわごとにしか見えない。だがよくよく“読んで”みると、「確かに読める」と、ちょっと驚く。どうして「読める」のかは、コピペ文自体が説明してくれている。
「読めた」「人間の脳すげー」といったレスが相次ぎ、本題へのレスと入り交じって何のスレなのか分からない状態になっていた。
コピペが登場したスレには、人の記憶と認識に仕組みについて考察や、読める人と読めない人の違い、現象学的な視点など、さまざまなレスが付いており、日常にちょっとした「ふーん」を持ち込むネットらしい話題になっている。
こんちには みさなん おんげき ですか? わしたは げんき です。
この ぶんょしう は いりぎす の ケブンッリジ だがいく の けゅきんう の けっか
にんんげ は もじ を にしんき する とき その さしいょ と さいご の もさじえ あいてっれば
じばんゅん は めくちちゃゃ でも ちんゃと よめる という けゅきんう に もづいとて
わざと もじの じんばゅん を いかれえて あまりす。
どでうす? ちんゃと よゃちめう でしょ?
ちんゃと よためら はのんう よしろく
ということでつくってみた ケブンッリジ変換
以下、ソース
<?php $BUF = null; if(!empty($_POST["cmabrigde"])){ $_POST["cmabrigde"] = htmlspecialchars($_POST["cmabrigde"]); if(mb_strlen($_POST["cmabrigde"])<=300){ $text = $_POST["cmabrigde"]; $text = eregi_replace("\r+","",$text); $text = eregi_replace("\n+"," ",$text); $text = mb_eregi_replace(" +"," ",$text); $text = eregi_replace(" +"," ",$text); $words = explode(" ",$text); foreach($words as $word){ if(mb_strlen($word)==4){ $BUF .= mb_substr($word,0,1); $BUF .= mb_substr($word,2,1); $BUF .= mb_substr($word,1,1); $BUF .= mb_substr($word,3,1); } elseif(mb_strlen($word)==5) { $BUF .= mb_substr($word,0,1); $BUF .= mb_substr($word,3,1); $BUF .= mb_substr($word,2,1); $BUF .= mb_substr($word,1,1); $BUF .= mb_substr($word,4,1); } elseif(mb_strlen($word)>=6) { $BUF .= mb_substr($word,0,1); $BUF .= mb_substr($word,2,1); $BUF .= mb_substr($word,1,1); $BUF .= mb_substr($word,4,1); $BUF .= mb_substr($word,3,1); $BUF .= mb_substr($word,5); } else { $BUF .= $word; } $BUF .= " "; } } else { $BUF = "文字数オーバーです。"; } } else { $BUF = "何か入力してください。"; } ?> <html> <head> <meta http-equiv="content-type" content="text/html; charset=euc-jp" /> <title>ケブンッリジ変換</title> </head> <body> <center> <h1>ケブンッリジ変換</h1> 変換結果<br> <textarea cols="70" rows="10"><?=$BUF?></textarea> </center> </body> </html>
Firefoxの機能だけで&as_qdr=y15を追加する方法
Firefoxのアドレスバーに「about:config」と入力
↓
フィルタに「keyword」と入力
↓
keyword.URLをダブルクリック
↓
入力欄に「http://www.google.co.jp/search?ie=UTF-8&as_qdr=y15&oe=UTF-8&sourceid=navclient&q=」と入力
(ここがgoogle以外になっている人は、好みに応じて変更すること。getパラメータが微妙に違う人は「as_qdr=y15」を加えて「gfns=1」を削除すること。)
↓
「OK」
これでアドレスバーに入れた検索語句が「as_qdr=y15」のオプション付きで検索される。デフォルトで付いている「gfns=1」を残したままにしておくとと、検索語句によってはI'm feeling lucky 検索になって面倒なので削除しておく。
右クリックメニューで表示される「Googleで検索」のURLを変更するのは「about:config」では無理そうだった。
機能をいろいろ追加
都道府県別統計とランキングで見る県民性の機能をいろいろ追加した。
1)右肩に全記事表示機能をつけた
2)はてぶへのリンクを各記事につけた
3)各記事のタイトルに何年のデータなのかを表示させた
4)関連記事を表示させた
今後追加したい機能
1)ページ内検索
DBを検索してもいいけどgoogleのサイト内検索で十分な気がする。
2)ランキング機能
よくある記事別アクセスランキング。
サイト「都道府県別統計とランキングで見る県民性」を再開
都道府県別統計とランキングで見る県民性を再開した。更新停止から2年近くたってしまったが、これで肩の荷が下りた。
今回はデータをDBに格納したので管理が非常に簡単になった。そのうえ面倒だったランキング計算や地図の作成も自動でできるので、更新もラク。以前は1本の記事をまとめるのに小一時間かかっていたが、今は数分で出来る。
今後は、タイムリーなネタにあわせて随時更新していきたい。
都道府県庁の緯度・経度
探してみたけど一覧表形式では見つからなかった。次の人のためにジオコーダーで検索した都道府県庁の緯度経度を Google Maps の latlng 形式で書いておく。
まずはHash風
続いてcsv形式
addListener で外部関数が使えない?
function foo(){
alert("function_foo");
}function load(){
GEvent.addListener(map, "moveend", foo());
}
が、どうしても動かない。
がgoogle maps のライブラリのどこかから帰ってくる。
XX is undefined
またバージョン違いによるバグかなと思い、バージョンをいろいろ変えてみたがエラーとなる XX が変わるだけで現象は同じ。
function load(){
GEvent.addListener(map, "moveend", function(){
alert("function_foo");
});
}
としてもいいんだけど、なるべく関数は外部化したいので、
function foo(){
alert("function_foo");
}function load(){
GEvent.addListener(map, "moveend", function(){foo();});
}
にしたら動いた。とりあえず、メモとして残しておく。
Google Maps XXX is not a function のエラー
昨日まで問題なく動いていた Google Maps を利用したページが動かなくなっていた。
エラーコンソールを見ると
this.show is not a function というエラーが Google Maps のライブラリ内で発生していた。
http://groups.google.co.in/group/Google-Maps-API/browse_thread/thread/012cc8479bb5f017を見ると、Google Maps のライブラリの呼び出し方に原因があるらしい。
今までは
<script src="http://maps.google.com/maps?file=api&v=2&key=XXXXXXXX" type="text/javascript" charset="utf-8"></script>
と呼び出していたが、v=2では常に最新のライブラリと最新のバグが呼び出されてしまうんだそうだ。上記サイトでおすすめされていた v=2.147 とバージョンを指定して呼び出したところ動くようになった。
<script src="http://maps.google.com/maps?file=api&v=2.147&key=XXXXXXXX" type="text/javascript" charset="utf-8"></script>