RubyGemsでtwitterをインストールしようとするとcan’t find header files for ruby.と言われる

MacOSX10.6には、RubyだけでなくGemsやRailsも最初から入っています。
ところが、twitterを簡単に操作できるようになるパッケージをインストールしようとすると、どうもうまくいきません。

Windows環境では

> gem install twitter

で、あっさりインストールされたのですが。。

Macでは

can't find header files for ruby.

というエラーになってしまいます。う~む。

ぐぐってみると同様のエラーが出るという質問がなされているフォーラムがいくつか見つかり、Rubyをインストールし直すと良い、だとか、Xcodeを最新版にしてみろとの回答がついていました。

ダメもとでXcode3.2.2をダウンロードしてインストールし、再度twitterのインストールを試みると……

$ sudo gem install twitter
Password:
Building native extensions.  This could take a while...
Successfully installed json-1.2.3
Successfully installed twitter-0.9.4
2 gems installed
Installing ri documentation for json-1.2.3...
Installing ri documentation for twitter-0.9.4...
Installing RDoc documentation for json-1.2.3...
Installing RDoc documentation for twitter-0.9.4...

今度はうまくいきました。

ところで、Xcode単体版が見つからず、xcode_3.2.2_and_iphone_sdk_3.2_final.dmgなるものをダウンロードしたのですが、iPhoneSDKも問答無用でインストールされました(^^;
というか、iPhoneSDKの方が主で、Xcodeはおまけみたいな扱いですね~。

なぜ外国人にまで子ども手当を支給するのか

子ども手当申請の受付が始まりました。中学生までの子供を持つ親に対して子供一人あたり月額1万3000円(来年度からは2万6000円)を支給するというものです。子供を育てている若い親たちを支援するのは誠に結構なことです。

しかしながら、この子ども手当、問題点が数多く指摘されています。

親が海外在住の場合は日本人の子であっても支給されない、親のいない子に対しても支給されない、といった、露骨に票を金で買うようなやり口もひどいものですが、一番ひどいのは悪用に対する歯止めが殆ど無いことです。

特に日本在住の外国人の、海外に住む子供に対してまでも支給されるというのは、悪用してくれと言っているようなものです。

実際に申請を受け付ける地方自治体では、本当にその人の子なのか、そうだとして扶養事実があるのか、厳密にチェックすることは非常に困難です。それでもなんとかしてチェックしようとすれば、莫大なコストがかかることになります。

悪用でなく真実その人の子だとしても(殆どの場合そうでしょうが)、そもそも、なぜ日本人が外国人の外国に住む子供を養わなければならないのでしょうか。

一歩譲って、いわゆる永住外国人とその子供に対してならば、分からないこともありません。しかし、一時的に出稼ぎに来ているだけの外国人にまで支給するというのは一体どういうことなのか。

それこそが民主党の邪悪な意思の現れなのです。
将来、自民党その他の「野党」が、子ども手当の廃止、あるいは少なくとも見直しを求めた場合に何が起こるか考えてみて下さい。

そう、「差別、サベツ」の大合唱が起こります。「外国人に対する支給をやめるのはサベツである!」と大騒ぎする連中が出てくるはずです。
そして、そのような「外圧」を利用して自らの権力を維持するのが民主党の目的なのです。

外国人に対する子ども手当の支給は、端的に少子化を改善する効果が皆無であるだけでなく、日本の富を海外へ流出させ、逆ケインズ効果によってむしろ国内の子供に対する支出を減らす恐れすらあります。

今はまだ「貰えるものは貰っておこう」という外国人たちも、支給が長く続けば続くほど、「貰うのは当然の権利」と考えるようになります。
この制度は、徐々に日本を蝕んでいく阿片のようなものです。

確かに、表だって「外国人には支給するな」とは言いにくい面があります。いかにも差別っぽい響きですからね。しかし、私たちは勇気を持って言わなければなりません。

外国人に対する子ども手当支給に反対しましょう。

Wikipediaの信頼性はかなり怪しい

怪しいと言っておきながらなんですが、Wikipediaの「おまかせ表示」でランダムに表示されるページをぼーっと眺めるのが好きです。

先程もたまたま表示された伊達政宗の項目(英語)を興味深く見ていたところ、

In 1584, at the age of 18, Masamune succeeded his father, Terumune, who chose to retire from his position as daimyo.

という記述がありました。

ふむふむ、1584年、18歳の正宗が父輝宗の隠居に伴って大名の地位を引き継いだわけですね。

いえ、この記述にはなんの文句もない、というかそんなに詳しくないのですが、ものすごく気になったのが、脚注に

Sohachi Yamaoka, Date Masamune.

とあることです。

え、山岡荘八?
山岡荘八は大好きですが、小説家であって歴史家ではないはずです。これを典拠にしているあたり、この編集の信頼性はかなり怪しいと言わざるを得ません。

上の例は別に悪質ではありませんが、一度、有益な外部リンクをごっそり消して、(おそらく)自分の運営するアフィリエイトサイトへのリンクだけを残す輩を見かけたことがあります。

もちろんその気になれば、管理権限を持つ人に働きかけ、あるいは自分で権限を得て、不適切な編集をやめさせたり、さらにはそのユーザーをアクセス禁止にする、といったことも可能なのでしょうが、そこまでする義理も意欲もありません。殆どの人が同じ気持ではないでしょうか。

そういったわけで、不届者がのさばることになります。
困ったものです。

かと言って、「そういうのはちゃんと報告しろ! お前は、Wikipediaから恩恵を受けながら、自らは何も貢献しないのかッ!」とお説教を始めるような人も別の意味で厄介ですしね。

まぁしかし、Wikipediaがとても有益であることは間違いありません。
誰でも編集できるからこそ、あれだけ豊富な情報量を誇っているのですもんね。

チャーチルは「民主主義は最悪の政治形態である、ただし、これまでに試みられてきた他の政治形態を除けば、だが」と述べたといいますが、Wikipediaもそれに似ています。

民主主義の恩恵に浴するには、その不効率さも甘んじて受ける必要があるのでしょう。

CapsLockでIMEを切り替えてみる

最近 Mac mini を買ってぼちぼち触っています。

散財ついでに東プレRealforceキーボードまで買ってしまいました。101です。特にこだわりがあるわけではないのですが、たまたま目に入ったので衝動買いです。

英語キーボードは以前にも使ったことがありますし、その前は英文タイプライタも使っていたのでUS配列には特に違和感はないのですが、少し困るのがIMEの入力モードの切り替えです。

Win環境で英語キーボードを使う場合、IMEはAlt+`(バッククォート)で切り替えるのが普通ですが、106/109キーボードでは漢字キー一つで済んだものが二つのキーを押さなければならないというのは、ちょっぴり面倒です。
また、MacではCtrl+J及びCtrl+;でひらがな・英数、またはCommand+Spaceでトグル、といった具合に勝手が違います。

もっとも、ことえり4には、「Windows風のキー操作」も選べたりだとか、CapsLockで入力モードを切り替えるようにもできる、といったおそらくはWindowsから乗り換えた人向けの設定があり、それなりにストレスを軽減する工夫は見られます。ただ、惜しむらくはローマ字の変換テーブルを(簡単には)カスタマイズすることが出来ず、慣れるまで時間がかかりそうです。

そこで、Macの方にGoogle日本語入力を導入することとし、入力モードの切り替えにはWin、MacともにCapsLockを使うことにしました。

キーマッピングの変更にはKeyRemap4MacBookを使わせて頂きました。

まず、Enable CapsLock LED Hack を有効にし、

mac_keyremap1.png

次にPCKeyboardHackで、CapsLockのキーコードを102に設定します。

mac_keyremap2.png

最後にKeyRemap4MacBookに戻って For Japanese から Remap EISUU → Use Eisuu as KANA/EISUU(toggle) を選びます。

mac_keyremap3.png

以上でどうにか期待通りの設定を得ることが出来ました(Win側はmayuを使いました。特筆することもないので省略です)。

CapsLock本来の役割は果たさなくなってしまいますが、英語チャットで喧嘩でもしない限り大丈夫でしょう。

Win側ではAtokを使っており、幸いGoogle日本語入力でもAtok風キーバインドを選べるので、使い勝手は上々です。

本当はMacにはApple純正のキーボードを使うのが一番なのでしょうが、これ以上買うのは机上のスペース的にも財布の中身的にもキビしいものがあるので、当分上記のような設定でやっていこうかと思っています。

今後100年の春分の日と秋分の日

もうすぐ春分の日ですね。

ご存じの通り、春分の日及び秋分の日は天文学的計算によって求まるので、年によって違います。

というわけで、春分・秋分の日を求める関数を考えてみます。
もっとも、理科年表を見てプログラムに置き換えるだけです。実は以前別のところで全く同じ事をやっています。今回はRubyを使ってみました。

def equinox( year, spring ) 
	((spring ? 20.8431 : 23.2488)+0.242194*(year-1980)-
	(year-1980)/4).floor
end

table = "<table><tr><th>年</th><th>春分の日</th><th>秋分の日</th></tr>"
(2010..2109).each do |y| 
	table +=
		"<tr class='"+(y%2==0?"even":"odd")+"'><td>"+y.to_s+"</td><td>3月"+
		equinox( y, true ).to_s+"日</td>""<td>9月"+
		equinox( y, false ).to_s+"日</td></tr>"
end

p table + "</table>"

Rubyは範囲オブジェクト(2010..2109)が使えるので便利ですね。
結果は以下の通りです。

春分の日 秋分の日
2010 3月21日 9月23日
2011 3月21日 9月23日
2012 3月20日 9月22日
2013 3月20日 9月23日
2014 3月21日 9月23日
2015 3月21日 9月23日
2016 3月20日 9月22日
2017 3月20日 9月23日
2018 3月21日 9月23日
2019 3月21日 9月23日
2020 3月20日 9月22日
2021 3月20日 9月23日
2022 3月21日 9月23日
2023 3月21日 9月23日
2024 3月20日 9月22日
2025 3月20日 9月23日
2026 3月20日 9月23日
2027 3月21日 9月23日
2028 3月20日 9月22日
2029 3月20日 9月23日
2030 3月20日 9月23日
2031 3月21日 9月23日
2032 3月20日 9月22日
2033 3月20日 9月23日
2034 3月20日 9月23日
2035 3月21日 9月23日
2036 3月20日 9月22日
2037 3月20日 9月23日
2038 3月20日 9月23日
2039 3月21日 9月23日
2040 3月20日 9月22日
2041 3月20日 9月23日
2042 3月20日 9月23日
2043 3月21日 9月23日
2044 3月20日 9月22日
2045 3月20日 9月22日
2046 3月20日 9月23日
2047 3月21日 9月23日
2048 3月20日 9月22日
2049 3月20日 9月22日
2050 3月20日 9月23日
2051 3月21日 9月23日
2052 3月20日 9月22日
2053 3月20日 9月22日
2054 3月20日 9月23日
2055 3月21日 9月23日
2056 3月20日 9月22日
2057 3月20日 9月22日
2058 3月20日 9月23日
2059 3月20日 9月23日
春分の日 秋分の日
2060 3月20日 9月22日
2061 3月20日 9月22日
2062 3月20日 9月23日
2063 3月20日 9月23日
2064 3月20日 9月22日
2065 3月20日 9月22日
2066 3月20日 9月23日
2067 3月20日 9月23日
2068 3月20日 9月22日
2069 3月20日 9月22日
2070 3月20日 9月23日
2071 3月20日 9月23日
2072 3月20日 9月22日
2073 3月20日 9月22日
2074 3月20日 9月23日
2075 3月20日 9月23日
2076 3月20日 9月22日
2077 3月20日 9月22日
2078 3月20日 9月22日
2079 3月20日 9月23日
2080 3月20日 9月22日
2081 3月20日 9月22日
2082 3月20日 9月22日
2083 3月20日 9月23日
2084 3月20日 9月22日
2085 3月20日 9月22日
2086 3月20日 9月22日
2087 3月20日 9月23日
2088 3月20日 9月22日
2089 3月20日 9月22日
2090 3月20日 9月22日
2091 3月20日 9月23日
2092 3月19日 9月22日
2093 3月20日 9月22日
2094 3月20日 9月22日
2095 3月20日 9月23日
2096 3月19日 9月22日
2097 3月20日 9月22日
2098 3月20日 9月22日
2099 3月20日 9月23日
2100 3月19日 9月22日
2101 3月20日 9月22日
2102 3月20日 9月22日
2103 3月20日 9月23日
2104 3月19日 9月22日
2105 3月20日 9月22日
2106 3月20日 9月22日
2107 3月20日 9月23日
2108 3月19日 9月22日
2109 3月20日 9月22日

円グラフの色分け

近頃、Fanfiction Update Notifierなるものをやっています。ネット上に存在するファンフィクションの更新をTwitterで通知するものなのですが、その中で、

上のようなグラフを表示するページがあります(各原作別のポスト数です)。それにしてもギャルゲーが多いです(笑)

さて、このグラフ、Google Chart Toolsを使っていまして、色を一色だけ渡すと、上のように自動的に明度を変化させて色分けしてくれます。

ただ、これだとちょっと見にくいかもしれないので、巧い具合に色分けすることを考えました。

上のグラフは項目数が20なので、360 / 20 = 18°ずつ色相をずらしていけばOK、と最初は思ったのですが、これでは大間違いですね。

なぜかと言うと、20項目目の342°で、殆ど最初の0°と同じ色になってしまうからです。つまり、赤橙黄緑青藍紫と色相環を廻って、最初の赤に戻ってしまうわけです。

ですから、最後がちょうど紫になるように、( 360 – 40 ) / 20 = 16°ずつ回転させることにしました。

これでとりあえず完成、なのですが、せっかくなので、WikipediaのHSV色空間を参考に、与えられた数だけ色を返す関数を考えてみました。

function getColors( num, _s, _v ) {
    var deg = Math.round( 320 / num );
    var h = 0;
    var s = _s / 100;
    var v = _v / 100;

    var tmpArray = new Array();
        
    for( i=0; i < num; i++ ){
        var hi = Math.floor( h / 60 ) % 6;
        var f = h / 60 - hi;
        var p = v*( 1 - s );
        var q = v*( 1 - f*s );
        var t = v*( 1 - (1-f)*s );
        h += deg;
                
        var r,g,b;
        
        switch( hi ){
            case 0:
                r = v; g = t; b = p; break;
            case 1:
                r = q; g = v; b = p; break;
            case 2:
                r = p; g = v; b = t; break;
            case 3:
                r = p; g = q; b = v; break;
            case 4:
                r = t; g = p; b = v; break;
            case 5:
                r = v; g = p; b = q; break;
        }
        tmpArray[ i ] = hex( r ) + hex( g ) + hex( b );
    }
    return tmpArray.join(",");
}

function hex( x ){
    var tmp = Math.round( x * 255 ).toString( 16 );
    if( tmp.length < 2 )
        return "0"+tmp;
    else
        return tmp;
}

var hi = Math.floor( h / 60 ) % 6;
となっているのがミソです。Math.round()では上手くいきません。

項目数
彩度(0...100)
明度(0...100)

よろしかったら、お試し下さい。

国母選手と水野十郎左衛門

バンクーバーオリンピックのスノーボードに出場する国母和宏選手の「服装がだらしない」との抗議が殺到したそうです。
確かに、シャツの裾は出しっぱなし、ネクタイを緩めたその姿はだらしなく見えます。

が、しかし、私は国母選手に大いに同情します。

何しろスノーボーダーです。いわゆるストリートファッションでキメなければいけないのです。その強迫観念たるや、強烈なはずです。
私たちが公の場でシャツの裾を出すのに堪えられないのと同じくらい、彼にとってはフツーにシャツをズボンに入れるのは堪えがたいことなのでしょう。

江戸時代の武士、水野十郎左衛門をご存じでしょうか。
「旗本奴」として有名で、異様な風体で街を闊歩したそうです。あるとき幡随院長兵衛という町奴を殺めてしまい、そのときは許されたものの、後に評定所に呼ばれました。
彼はなんと月代も剃らず、かぶき者まんまの姿で現れ、あまりに不謹慎であるとして、ついに切腹を命じられたということです。

いくらかぶき者でも、少しは命が惜しかったことでしょう。もしかしたら、彼もきちんとした格好で評定所に行きたかったのかも知れません。しかし、彼のそれまでの生き方が、それを不可能にしたのです。音に聞こえた水野十郎左衛門が、評定所に呼ばれたくらいでビビって身なりを整えるわけにはいきませんからね。

国母選手も、シャツをズボンに入れるくらいで国民から好感を得られるならそうしたらいいのに、意地でもしないのは水野十郎左衛門と似た心情でしょう。

私自身は決してああいうファッションが好きなわけではないですが、どうあれ、自分の美意識を貫こうとするのはたいしたものだと思います。

あとは競技における結果ですね。
結果が振るわなければ、「それ見たことか、服装がだらしないやつはなにをやらせてもダメなんだ」とかなんとかボロクソに言われるのは必定です(^^;

国母選手には、ぜひ良い結果を出して世間を見返して欲しいものです。

Ruby1.9.1

自分用メモです。

Ruby1.9は1.8までと異なり、ソースがUTF-8N(UTF-8だと不具合あり)であることを期待しているらしい。

とりあえず、RDE の Option -> Debug Command で、
Debug Mode -r -Ku debug2
Normal Mode -Ku
のように、-Kuを加えておくと、実行には問題がない。

ただし、RDEでUTF-8Nで保存するように設定しても、何かの拍子にDefault(即ち、WindowsではSJIS)に戻ってしまうことがある。不可解なり。

この辺が落ち着くまで、1.8に戻すのも一つの策かも知れない。

小沢は辞めなくとも良い

民主党小沢幹事長の元秘書の国会議員が逮捕されるなど、政治とカネにまつわる事件が絶えません。

小沢は責任を取って辞職するべきでしょうか。

敢えて、辞めなくて良い、と主張したいと思います。彼の意思で辞めるべきなのではなくて、我々が我々の意思で「辞めさせる」べきだからです。下手に辞めたりすると、「潔い」などと勘違いする人も出てきかねません。そして、しばらくすると「禊ぎ」をすませたなどと言って、いけしゃあしゃあと復活するのは目に見えています。

無論、今後の捜査の過程で小沢本人の容疑が固まり、辞めざるを得ない状況になればそれに越したことはありませんが、そうならなくとも、彼の政治生命を絶つ方法はあるのです。選挙で落選させること、これです。

人間とは現金なもので、自分の支持する政党・政治家の不祥事には甘く、支持しない政党・政治家のそれには厳しいのが常です。
民主党支持者からは、「小沢の違反は形式的で、たいしたことないのに、他党の支持者がここぞとばかりに叩いている」と映るのかも知れません。確かにそういう面もあります。

ですから、はっきりさせておきましょう。

少なくとも私は、カネにクリーンな政治を求めているわけではありません。カネに汚かろうとなんだろうと、結果的に国民のためになるのならそれで良いし、いくらクリーンでも国民のためにならない政治では困ります。私だけでなく、多くの人がそう思っているはずです。
そして、私が小沢一郎、及び民主党を支持しないのは、彼らの政策が国民のためにならないと考えるからです。子ども手当、外国人参政権、普天間基地移転問題の迷走、どれをとっても国民全体の利益と相反するものです。カネの問題は、語弊を恐れずに言えば、些末な問題です。

今回のいわゆる「小沢疑獄」がどこまで発展するか分かりませんが、仮に小沢本人の首が繋がっても失望する必要はありません。
繰り返しますが、どんな権力者も、選挙で落選させれば、手も足も出せなくなるのです。民主主義の素晴らしいところです。

言葉は悪いですが、「なんとか殺すに刃物はいらぬ」です。投票だけで小沢の命脈を絶つことが出来るのです。

まずは今度の参院選です。どの党の誰に投票しろとは言いません。私の考えに賛同して下さる方は、ぜひ選挙に行って下さい。