2010年3月アーカイブ

http://www.irem.co.jp/

のソース

<SCRIPT language="JavaScript">
<!--
millenium = new Date(2010,4-1,1)
function display() {
	today = new Date()
	days = Math.floor((millenium-today)/(24*60*60*1000))
	time1 = Math.floor(((millenium-today)%(24*60*60*1000))/(60*60*1000))
	time2 = Math.floor(((millenium-today)%(24*60*60*1000))/(60*1000))%60
	time3 = Math.floor(((millenium-today)%(24*60*60*1000))/1000)%60%60
	if((millenium - today) > 0){
	document.f.days.value = "4月1日まで あと"+days+"日"+time1+"時間"+time2+"分"+time3+"秒";
	}else{
	document.f.days.value = "…もうしばらくお待ちください";
	}
	tid = setTimeout('display()', 1000)
}
//-->;
</SCRIPT>
<form name="f"><input type="text"  size="50"  name="days" class="comarea"></form>


「…もうしばらくお待ちください」の表示は、4月1日0:00にページがさし変わらなかった時のために用意されているんだな。

TypePad.jpの利用をやめたんだけれども、このTypePad.jpがつかっているシステムがMovableTypeをベースとしたTypePadっていうシステムで、このTypePadっていうのは実は結構目にしていることがあり、このブログのバックで動いているココログもそれを採用しているわけです。

そんで、ココログのほうじゃないTypePad.jpでのブログの運営を預けられたのですけれども、TypePadのシステム自体がかなり外部からの情報を取り込んだり、独自のパラメータを取り込んだりするのが難しいシステムだったりしまして、これを運営するにあたり、以下のような技術を習得するに至りました。

  • サーバサイドインクルード(SSI)
  • クロスドメインJavaScriptフィード
  • TypePad外にクロスドメインでデータベースを持たせて連携
  • 複数ユーザのログイン管理
  • んで、いつぞやMovableTypeの本の著者さんに「それはTypePadでやるもんじゃないと思う」とか言われることに。ないものはしょうがないんだよ!

    そんなこんなでガラパゴス進化を遂げたのだけれども、おかげでブログパーツとか簡単に作れるようになったけど、今ブログパーツって下火だよね。意味ないなあ。

    一方、もう一人コンテンツやっている人がいて、そっちはMovableTypeのほうに移行して、後にMTタグをバリバリ使うことになる。こっちのほうが正常進化だよなあ。

    春休みの宿題として、ちょっとした聞き取り問題で、ニッポン放送の歴代キャッチフレーズを聞き取るっていうのがあったんだけど(なんだよその音源)、

    1984年 今すぐあいたいニッポン放送
    1985年 またお前かニッポン放送
    1986年 もう大変ニッポン放送
    1987年 まかせてちょんまげ夢工場ニッポン放送
    1988年 飛んでも跳ねてるニッポン放送
    1989年 かぼちゃ計画、もも計画ニッポン放送
    1990年 オモスルドロイカニッポン放送
    1991年 みんなのラジオニッポン放送
    1992年 そこまで言うかニッポン放送
    1993年 あっけら感動ニッポン放送
    1994年 みんなでヤンチャラジオはオモチャオチャメでニッコリニッポン放送
    1995年 ミラクルラジオニッポン放送
    1996年 笑って町内ニッポン放送

    とか書きだしたらWikipediaにあったわ。

    ニッポン放送 - 歴代キャッチコピー - Wikipedia [ja.wikipedia.org]

    とか言いながら僕が中学生のころ聞いていたのは夜間の電離層反射でたまたまうまく聞こえる文化放送だったよなあ。1242kHzのニッポン放送は、1251kHzのモスクワ放送に負けてしまっていたのでした。

    MSX用ゲームソフトに、コナミのシャロムっていうゲームがありまして、昔デンコードーで1000円で売ってたのを買ったんですけれども、このゲームは、フィールドRPG風アドベンチャーゲームでして、ドラクエみたいなマップの中をキャラクターを動かして冒険するのですけれども、その中で一度セーブをしてから、電源入れ直してロードしないと橋が出てこないみたいなイベントがあったんです。電源投入までゲームの要素にしていたわけですが。

    同じコナミのラブプラスでは、セーブデータを保存してから7日開けてロードすると出てくるイベントとかあって、20年たってもやっていることは同じなんだと思った。

    んで、7日前の日付でプレイしてたので、今日8日分日付を進めて電源つけたらイベントが出たのだけれども、なんだか土曜日に終業式とかゲーム中のカレンダーでは表示されていて、もしかしたらイベント取りこぼしたかもしれん……

    部署かわって3週間経つんだけれども、今日はDTPの部署はみんな都合を入れてしまっていていないらしいのでヘルプに入ることになりましてデータ入稿作業をしました。

    そんで昨日作業していたデータのことで先輩に電話をしたらベルマーレ戦でした。

    そんなこんなで何とか作業終了。さすがに3週間だと腕は落ちないけれども、2年とかなるとちょっとつらいかもなあとか思ったりしました。

    本当にさっきのはなしなんだけど、AnyEvent::Twitterなるモジュールがあって、ものすっごく簡単にTimelineとmentionsが追えるのだけれども、ドロリッチなう的なbotを作るときに必要だと思われるSearch APIが使えないのでまあいいかって思った。

    んで、AnyEvent::Twitter::Streamていうモジュールもあって、

    AnyEvent::Twitter::Streamをさわってみる|perl|@OMAKASE [www.omakase.org]

    実際にやってみたら、ものすごい速さでpublic timelineに近いものが流れていってマジすごいと思った(ダダ漏れすぎ)。print "$tweet->{user}{screen_name}: $tweet->{text}\n";の前にreturn if !exists $tweet->{user}->{lang} || $tweet->{user}->{lang} ne 'ja';を入れると、日本語設定しているユーザーだけのツイートの表示になるがそれでも多い。

    なんか作りたくなるのもわかる気がするなあ。

    僕のクルマは、ドアの外側のレバーも内側のレバーも壊れに壊れまくっているわけですが、本日、会社の社屋間の移動に僕の車に4人乗った際、後部座席のドアのレバーが壊れてしまいました。

    そこプラスチックでレバーのてこの軸受けを作っちゃいかんと思うんだ。

    そもそも後部座席に人を乗せる用事がないので、そこのレバーなんか40回程度しか使われていないと思うんだ。プラスチックの経年劣化なんだろうなあ。

    Amazon EC2などにあるCentOS5の最小インストールイメージで、何気なく初回CPANを起動して設定してしまうと、makeが設定されていない状態になってしまいます。また、gccも入っていることが前提になっている。

    Cpanwarnings01
    ▲Warningと出ているが、この箇所設定しておかないとCPANまともに使えないんだよな

    んで、どうなるかというと、あらゆるモジュールのインストールに、NOT OKが出まくる。makeやgccが入っていないからというエラーメッセージは出ない。

    という状況に陥ってしまったら、まずは、makeやgccをyumでぶっこむ。

    Cpanwarnings03
    ▲yumでmakeやgccを入れます。初回は時間かかるよ

    入れたらこんな画面出ます。

    Cpanwarnings04
    ▲インストールされたパッケージが表示される

    次に、もう一回CPANを実行。ここで、CPANの設定をリセットする、o conf initを入れる。

    Cpanwarnings02
    ▲大抵忘れるのでこういうブログで書いておくとよい

    あとは、もう一回設定し直しができますので、makeのところで自動的に設定されることを確認。

    Cpanwarnings05

    これで、install Bundle::CPANがうまくいくんじゃないかな。

    Cpanwarnings06
    Cpanwarnings07
    ▲うまくいったね、お疲れ様!

    インターネット上で個人情報を預けるとき、何に気をつけていますか?というとたいてい「ブラウザの錠前マークが出ているか?」というのを見たりしていますよね。

    ただ、これは単純に通信経路が暗号化されているというだけで、情報の送信先が悪意のあるサイトだったら元も子もありません。そうやってそっくりサイトを作って大事な情報を盗み取ろうとするフィッシングサイトが増えていることを受けて、SSL証明書で有名な日本ベリサイン株式会社が、「フィッシングサイトとそうでないサイトを区別できますか?」というFLASHコンテンツサイトを用意しているのです。

    フィッシングサイトとそうでないサイトを区別できますか?
    https://www.phish-no-phish.com/jp/

    これが超難しいのです。なんでか?

    これ間違い探しじゃねーか!

    Phishnophish
    ▲めくり校正したい……

    僕も印刷屋のはしくれなんで、眼を皿にして校正するがごとく違う点を探して、なんとか全問正解。でもなー設問がきわどいのもあるぞ。

    印刷屋さんには、こういう違う点を指摘する(内校)専門の要員がいたりしますので、これからの電子出版時代においてもこういう校正の部分で印刷会社はほかの電子出版参入会社との差別化ができると思ったりします。

    最後にクイズです。内校って、何て読むでしょう?

    とにかくh2要素やらh3要素あたりにグラデーションの色をつけたいときにこういうグラデーションを吐きだすスクリプトを社内でも社外でもいいから設置しておくと助かりますよね。少なくともベタよりまし。類似品あると思うけど検索しないで自分で作るの巻。

    たとえば桜の季節なんでこんな感じに。

    h3 {
      height: 44px;
      padding: 6px;
      color: #833;
      background-color: #fcc;
      background-image: url(http://labo.dtpwiki.jp/grad/grad.cgi?height=56&start=ffcccc&end=fff8f8);
    }
    開花がどーたら

    Filename: grad.cgi

    #!/usr/bin/perl
     
    use strict;
    use warnings;
    use CGI;
    use Image::Magick;
     
    my $q = CGI->new;
    (my $height = $q->param('height') || 32) =~s/\D//g;
    (my $width  = $q->param('width' ) || 1 ) =~s/\D//g;
    (my $start  = $q->param('start' ) || 'cccccc') =~s/\W//g;
    (my $end    = $q->param('end'   ) || 'ffffff') =~s/\W//g;
     
    my $img = Image::Magick->new;
    $img->Set(size=>"${width}x$height");
    $img->Read("gradient:#$start-#$end");
     
    print $q->header(
      -type=>'image/jpeg',
      -Cache_Control=> 'max-age=259200', # 3days
    );
    binmode STDOUT;
    print $img->Write('jpeg:-');
     
    undef $img;
     
    exit;
     
    __END__

    max-ageっていうところでキャッシュが3日間有効にしてありまして、一度目のアクセス時はCGIが動いてJPEGを吐きだすけれども、2回目のアクセスの時は3日以内だったら取得しに行かずブラウザのキャッシュを使うっていう設定です。リロードの時は取得するかな。

    んと個人的にTwitter botを作っている関係で春分の日になんかしゃべらすようなことを考えるわけだけれども、春分の日の計算アルゴリズムっつうのがあって、それを後で見たときに客観的に分かりやっすい方法をと考えた結果がこれだよ!

    use strict;
    use warnings;
    use DateTime;
     
    # 1900年~2099年までの春分の日の数学的な簡易な求め方
    # http://ja.wikipedia.org/w/index.php?title=%E6%98%A5%E5%88%86%E3%81%AE%E6%97%A5&oldid=28472639
    # 西暦年数の4での剰余が0の場合
    #   1900年~1956年までは3月21日
    #   1960年~2088年までは3月20日
    #   2092年~2096年までは3月19日
    # 西暦年数の4での剰余が1の場合
    #   1901年~1989年までは3月21日
    #   1993年~2097年までは3月20日
    # 西暦年数の4での剰余が2の場合
    #   1902年~2022年までは3月21日
    #   2026年~2098年までは3月20日
    # 西暦年数の4での剰余が3の場合
    #   1903年~1923年までは3月22日
    #   1927年~2055年までは3月21日
    #   2059年~2099年までは3月20日
    my $now = DateTime->now();
    my $year = $now->year;
    my $mod = $year % 4;
    my $syunbun;
    if ( $mod == 0 ) {
      if ( 1900 <= $year && $year <= 1956 ) {
        $syunbun = '0321'
      }
      elsif ( 1960 <= $year && $year <= 2088 ) {
        $syunbun = '0320'
      }
      elsif ( 2092 <= $year && $year <= 2096) {
        $syunbun = '0319'
      }
    }
    elsif ( $mod == 1 ) {
      if ( 1901 <= $year && $year <= 1989 ) {
        $syunbun = '0321'
      }
      elsif ( 1993 <= $year && $year <= 2097 ) {
        $syunbun = '0320'
      }
    }
    elsif ( $mod == 2 ) {
      if ( 1902 <= $year && $year <= 2022 ) {
        $syunbun = '0321'
      }
      elsif ( 2026 <= $year && $year <= 2098 ) {
        $syunbun = '0320'
      }
    }
    elsif ( $mod == 3 ) {
      if ( 1903 <= $year && $year <= 1923 ) {
        $syunbun = '0322'
      }
      elsif ( 1927 <= $year && $year <= 2055 ) {
        $syunbun = '0321'
      }
      elsif ( 2059 <= $year && $year <= 2099) {
        $syunbun = '0320'
      }
    }
     
    print "$syunbun\n";
     
    exit;
     
    __END__

    どうせメンテが必要になるんだからとにかく日本語の文章とif文との対比が付けば意味がわかるという線でやってみた。参照元のWikipediaの固有版のURLも貼っているので、その当時は正しかったんだ!ていう主張もできると思うんだけど。

    すこし前に洋服の青山で2着仕事用のスーツを買ったのだけれども、直後に異動になり、スーツを着る必要がなくなり、とても困っているのだけれども、その時支払いに使った、青山ライフカードの請求が来て、青くなっている次第。

    んで、クレジットカードの支払いを自動振り込みにしてなかったので、振り込み用紙が同封された明細が送られてきたのだけれども、明細がどうやらインクジェットプリンタなんですね。印刷機材展で展示されていた高速インクジェットプリンタなのかな。

    それはどうでもいいとしてどうやって払おう。使わないのになあ。

    Googleケータイとかいって宣伝していたHT-03Aは当然ながらWebブラウザが最初から入っていますがこれが実は結構もっさりなんで、このたびOpera Mini 5 betaを入れてみたんですがこっちのほうが使い勝手いいよ。

    Opera、Android向け「Opera Mini 5 beta」を公開 | 携帯 | マイコミジャーナル [journal.mycom.co.jp]

    漢字部分が中国の文字だけどな!

    asahi.com(朝日新聞社):ツイッターで「完売御礼」 つぶやき商法、続々と参入 - ネット・ウイルス - デジタル [www.asahi.com]

    ていうの会社で見せられたりするわけです。んでこの記事って読むときに前提条件がいるわけで、この儲けている人たちはみな10,000フォロワー以上のアカウントたちで(それは記事内に書いている)、10,000もいくのはかなりの特殊例であるので(ここが記事に書いていない)、そのまま鵜呑みにしちゃいかん、ていうのを説明する毎日。

    楽して儲からないよなあ。

    この前東京でオフ会やった時に首からデジタルフォトフレームぶら下げてTwitterアイコンをスライドショーしようと思ってしっかり準備していたんですけれども、かばんの中にデジタルフォトフレームを入れたままにしてしまい、持ってくるの忘れたことに地下鉄に乗ってから気づき、こりゃまいったということで考えたのが、AndroidケータイHT-03Aで表示させる案。

    でもアイコン画像は自宅サーバのMacMiniのホームディレクトリにあるのでHTTPで引っ張ってこれないところにある。つうわけで、Android用SSHクライアント、ConnectBotで、自宅サーバにSSHログインしてホームディレクトリから公開用ディレクトリにコピーするってことをしたんだけれども、地下鉄ってよくわからんがドコモの電波は地下鉄ホームだけとれるのね。停車が近付くと入力できるようになり、発車してホームから離れるとキーを押しても文字が入らない、ていうのを繰り返して飲み会会場に近いところでやっとコピーが終わって、何とかHT-03Aのブラウザで取得したのだけれども、もう飲み会会場に先にいた人たちはすっかり出来上がってしまっており、自己紹介することもなく終了した

    というわけで、SSHがあれば仕事ができるような人は、Android端末とConnectBotがいいのでは。僕の周りではそれで仕事ができるっていう人見たことないけどね。

    ConnectBot | Android アプリおすすめサイト オクトバ [octoba.net]

    iタウンページのソース [itp.ne.jp]

    <p><a href="/lite/" style="display:none;"><img src="/common_img/spacer.gif" alt="お店の電話番号ならiタウンページの検索で、ものすごく見つかります。ホームページリーダー等の翻訳ソフトを使用し、あいたうんをご利用いただく場合はiたうんライト版のご使用をお勧めします。" width="1" height="1" border="0" tabindex="1"></a><strong>きっとみつかる!あなたの街の生活サポート</strong></p>

    僕的な語彙ではものすごく見つかりますはありだが公的にはNGなのもわかるぞ。正解は「とてもよく見つかります」。大丈夫かNTT番号情報株式会社。

    急に都道府県の下のレベルの地方自治体の名前を生成する必要に駆られまして、もう最近は道具はあるが食材がない状況で、じゃあってんでこういう食材っていうのは地方公共団体コード(通称自治体コード)っていうのがあるんだよね、って思って、Googleで「自治体コード」で検索して、なんだか公的団体っぽそうなところを見つけて、

    地方公共団体コード住所 - 財団法人 地方自治情報センター(LASDEC) [www.lasdec.nippon-net.ne.jp]

    スクリプトで自動生成しようと思ってサイト内にあるであろう全部入りのデータを探していたんですけれども、

    掲載している情報等について - 財団法人 地方自治情報センター(LASDEC) [www.lasdec.nippon-net.ne.jp]

    掲載データの一括ダウンロードについて

    「地方公共団体コード住所」の一括ダウンロードについては、平成17年10月3日より、当センターの会員専用サービスとなり、一般の方への公開は終了いたしました。こちらに掲載している情報について、当センター会員は、LASDEC会員コーナーの左側「各種メニュー」にある「地方公共団体コード住所」から、一括ダウンロードが可能です。

    とかあって萎えた。会員制ってことは実質有料か。各都道府県のページを巡回して変換するロボット作ればいいんだろうけれども、そこって労力かけるところじゃないよな……

    この手の情報提供は、地方自治体の合併に伴い総務省から官報がでてそれを反映するわけなんだろうけれども、官報でた時点で国のサーバ(?)上でコンピュータに使いやすい形式になっていたらいいなあと思うんだけどなあ。

    そういや近々合併といえばここ。

    「らきすた」住民票の売り方 ココログニュース:@nifty [news.cocolog-nifty.com]

    人気マンガ『らき☆すた』の舞台として有名な埼玉県鷲宮町は、1市3町の合併により3月23日から新「久喜市」になることが決まっている。この閉町を記念し、町では昨年12月31日より、『らき☆すた』キャラクター画像入りの特別住民票を1枚300円で3万枚売り出した。ところが、閉町を目前にした今も7500枚が売れ残り、廃棄処分になる可能性があるという。

    まあなあ。

    シャイニング・アークなNTTコミュニケーションズからいえ電に電話がきまして、プラチナラインに入れっていうわけです。なんだか最初はNTT東日本の基本料金が不要になるようなミスリーディングしといてよく聞くとそれはないと。まあなあ。んで結局は初回契約時の840円が徴収されて1000円の商品券くれるっていう話なんだけど、僕は金券とかの管理が全く駄目で商品券って使う機会全くないんだけど……ていうことで、「商品券って何ですか?」とかパーなふりして言ってみたら向こうのほうが絶句したので電話切っときました。

    個人情報の見返りの差額160円に魅力を感じる人は契約するといいんじゃね? 知らんけど。

    休日に宗教は来なくなったがこういう電話が来るようになったのか。面倒だなあ。

    DVD版とBlu-ray版とで値段が倍ぐらい違うんですけれども、一時停止して描き込みをじっくり見るような鑑賞スタイルだとBlu-rayがお勧め。ヤマダ電機で一度レジに持っていったやつがかなり安いのでよく見たらDVD版で急いでBlu-ray版にとっかえてもらいました。今見るとAmazonの方が安いな……

    これ見るとデジモン21話とナージャ12話見たくなるわー

    えっ?CS5発売間近!?早めのバージョンアップがおすすめ!|Adobe(アドビ)ソフト通販 [www.multi-bits.com]

    また
    マルチビッツが
    何か言っているのか?

    そんな自虐的にならなくても……

    えっ?CS5発売間近!?早めのバージョンアップがおすすめ!|Adobe(アドビ)ソフト通販 [www.multi-bits.com]

    CS5の発売について?
    確かにまだ正確な発表が無いけれども
    いくつかのヒントは出てるよ

    たとえば去年の12月に
    FLASH CS5のベータ版公開が
    予定されてたんだ

    結局 公開は中止になったけど
    CS3とCS4の時は米国での
    製品版発売の半年ぐらい前に
    公開されたんだよ

    過去の発売間隔から考えると
    今年の年末が発売時期なんだけど
    FLASHやPhotoshopの新機能の
    紹介などから考えると かなり
    早まって発売される可能性もあるかも

    今年の夏前
    とかね

    Multibitscs5yosou


    やたらかしこそうな英(はなぶさ)くん(液晶モニタ?)がヒントを教えてくれていますが、アップグレード前提で話す英君に人間もたじたじ、「…」と言うしかないです。

    うちのサイトに張り付けている「Adobe CS4の寿命」、昨日(2010/3/11)の時点で99日ときりのいい数字になっていたわけだけれども、どうなんだろう。つまり、2010年6月18日となるかってことですね。

    20100311cs5yosou
    ▲DTPの現場ではCS3が定番バージョンになってしまっていて不遇のCS4の寿命

    なんとなくこれよりも早く発売されそうな気がしているんですけれども……

    DTI、4月よりクラウド/回線双方のサービスを大幅拡充! [www.dti.co.jp]

    2)ServersMan機能付き10GB専用サーバーサービス「ServersMan@VPS」をご提供開始。長期ご契約者様には特別価格100円でご提供

    10GBのストレージ容量と管理者権限を持った仮想専用サーバー(VPS)サービス「ServersMan@VPS」を4月下旬(予定)よりご提供開始いたします。市場価格ではメモリ容量256MB/ストレージ容量10GBの仕様のVPSサービスは月1,500円程度で提供されていますが、先日、当社グループ会社であるメディアエクスチェンジ株式会社(以下、MEX)及びフリービット株式会社が発表した仮想化サービス「MeX VDC VPS-BOX」を利用することで、業界最安値水準での月490円(税込)というお得な価格でのご提供が可能になりました。

    こりゃあさくらインターネットのスタンダードプラン(月500円)より価値あるだろ。仮想サーバだから、どんだけ込み合わせるかだよなあ。

    というわけでこっちの記事。

    IPv6に標準対応した“仮想データセンター”サービス「MeX VDC」を発表|FreeBit [www.freebit.com]

     VPS-BOXは、仮想化プラットフォーム実装済みの物理サーバを1筐体単位で提供するサービス。1筐体あたり、256MBメモリ、10GB HDDのVPSを最大250動作させることができる。VPSサービスを行ないたいと考えるインターネットサービス事業者向けの販売を予定する。料金は、ラック設置代と共有ネットワーク利用料などを含んで月額9万9800円。

    1筺体最大250台って……メモリ64GB、HDD2.5TBはいいとして、CPUどうなっとるんだ……すべての仮想マシンがすべてフルパワーで動かないからいいんだろうけれども……仮想化セミナー出た時はコア数と仮想マシン数合わせろって言っていたんだけど……

    あと、エヴァまみれだったころのDTIが懐かしい。

    REST風のAPIを作ることを説明するときに、POX over HTTPていう言葉を覚えていたもんで、

    うちでいうと、
    http://labo.dtpwiki.jp/edgenow/ [labo.dtpwiki.jp]
    で使っているんだけども、

    ともかくPOX over HTTPという使おうかと思ったけれども、RESTfulっていう言葉がある2010年だともうRESTでいいんだよね?

    Web方面の情報追いきれていないなあ……

    がつながらなくなっていましたが直しました。

    1月1日に自宅サーバつながらなくなった関係でモデム変えたらIP変わっちゃったのを直し忘れていました……

    ここアクセスできないとマイクロソフトに抗議した意味が無いので、意地で維持しとります…… 安全に判定できる仕組み公式にはよ作ってほしいんだけれどもね……

    Illustrator?InDesign? - DTP Transit [www.dtp-transit.jp]

    先日、次のようなご質問をいただきました。

    イラレで作成したデータを印刷したときに「ルビがずれてしまった」という問題が発生しました。

    昔広報でIllustrator10でお役所とやり取りしなくちゃいけない物件があって、こうやってた。

    Illustratorruby
    ▲ベースラインシフトとトラッキングを駆使

    「takanemanaka.ai」をダウンロード

    万能ではない。

    あと、中黒をぶら下げにしろとか無茶な要求もあったけど、それもなんとかやってたなあ。

    昨日OFF会っていうか飲み会に参加したら初対面の人に「CLさんって変態ですよねー!」「変態!!変態!!変態!!変態!!」と連呼されました。

    こういうことですよね?

    僕はそろそろKOTOKOの年齢が気にな

    変態のお墨付きもらったってことでらぶデス4でもしようっと。

    (2010-6-29 15:01追記)
    Net::Twitter 3.12以降だと画像アップロードルーチンをこっちに差し替えた方がいいです。M.C.P.C.: Net::Twitterで自画像Uploadは3.12あたりでできるように直っているようだ

    飲み会用のネタ。cronに仕込んでね。あまりやりすぎると、TwitterからBANされるかも……

    #!/usr/bin/perl
     
    use strict;
    use warnings;
    use Config::Pit;
    use Image::Magick;
    use WWW::Mechanize;
     
    my $p = pit_get( 'twitter.com@CLCLCL' );
    die "not preset account data in Pit." if !%$p;
    my $username = $p->{username};
    my $password = $p->{password};
     
    my $file = 'cl.png';
     
    my $im = Image::Magick->new;
    $im->Read($file);
    my ( $x, $y ) = $im->Get( 'width', 'height' );
    $im->Set(bordercolor=>'#FFFFFF');
    my $deg = (localtime(time))[1] / 60 * 360;
    $im->Rotate(degrees => $deg, crop => 0, sharpen => 1);
    my ( $nx, $ny ) = $im->Get( 'width', 'height' );
    $im->Crop(width => $x, height => $y,
              x => ($nx - $x) / 2, y => ($ny - $y) / 2, );
    my $tmpfile = time.".png";
    $im->write("png:$tmpfile");
     
    my $mech = WWW::Mechanize->new();
    $mech->agent_alias( 'Windows IE 6' );
     
    my $res = $mech->get('https://twitter.com/settings/profile');
    die if $mech->uri() ne 'https://twitter.com/login';
    $mech->submit_form(
      form_number => 2,
      fields => {
        'session[username_or_email]' => $username,
        'session[password]'          => $password,
      },
      button => 'commit',
    );
    $mech->submit_form(
      form_number => 2,
      fields => {'profile_image[uploaded_data]' => $tmpfile, }
    );
     
    unlink $tmpfile;
     
    exit;
     
    __END__

    Twitterクライアント側でアイコンキャッシュしていることも多いからあんまり意味ないかも。あと、cronに入れた場合はカレントディレクトリに注意。

    (2010-04-26追記:Net::Twitter 3.12だとできるようになってます。M.C.P.C.: Net::Twitterで自画像Uploadは3.12あたりでできるように直っているようだ


    Net::Twitterのメソッドだと出来んようだから。

    エラー処理はほとんどナシな。くじら出てても知らん。あとTwitterのHTML構造変わったら動かなくなると思うよ。注意。

    Filename: updateimage.pl

    #!/usr/bin/perl
     
    use strict;
    use warnings;
    use Config::Pit;
    use WWW::Mechanize;
     
    my $p = pit_get( 'twitter.com@CLCLCL' );
    die "not preset account data in Pit." if !%$p;
    my $username = $p->{username};
    my $password = $p->{password};
     
    #my $file = 'rinkoangry.png';
    my $file = 'cl.jpg';
     
    my $mech = WWW::Mechanize->new();
    $mech->agent_alias( 'Windows IE 6' );
     
    my $res = $mech->get('https://twitter.com/settings/profile');
    die if $mech->uri() ne 'https://twitter.com/login';
    $mech->submit_form(
      form_number => 2,
      fields => {
        'session[username_or_email]' => $username,
        'session[password]'          => $password,
      },
      button => 'commit',
    );
    $mech->submit_form(
      form_number => 2,
      fields => {'profile_image[uploaded_data]' => $file, },
    );
     
    exit;
     
    __END__

    これ使って美人時計でも作るがいいさ! しらんけど。


    ものすごく参考にした。
    nDiki: Twitter のアイコンを Perl スクリプトで更新する (改) (2009-03-20) [naney.org]

    Mac起動することってあんまりなくて、起動してもすぐFusionでWindows Vistaを起動してしまうわけですけれども、今日起動したら、正月くらいに入れたラブプラスウィジェットのニュースに何やら出ていた。

    Lovepluswidget
    ▲「ラブプラス」取扱説明書の記載に関するお詫び

    リンク先はこれ

    ニンテンドーDS「ラブプラス」取扱説明書の記載に関するお詫び [www.konami.jp]

    特別なイベントは何度でも見ることができますが、23個までしか残せず、古い順に消えていきます。24個以上のイベントにはロックを使用することができませんのでご注意ください。

    ナンテコッタイ!

    ウィジェットが旬なときに自分でウィジェットエンジン作っておけば面白かったのかもなあ。Vistaガジェットとかのガイド買ったのになあ。

    パスワードの再発行ルーチンとか、作っているのですけれども、例えば'9'と'Q'は聞き間違えるからとかいう理由で、パスワードの文字列に使いたくないっていう用件があって、そうすると、パスワードの文字列を限定して生成するっていうことになるのだけれども、これをこんな感じで作っていましたが。

    #!/usr/bin/perl
     
    use strict;
    use warnings;
    use Digest::SHA1;
     
    my $salt = '3gatsu6nichihatokyodeoffkaida';
     
    my $new_password = _make_password();
    my $ctx = Digest::SHA1->new;
     
    $ctx->add( $salt.$new_password );
    my $password_digest = $ctx->hexdigest;
     
    print "NewPASSWORD: $new_password\n";
    print "salted_SHA1: $password_digest\n";
     
    exit;
     
    # パスワード生成
    sub _make_password {
      my @character
          = ( 'A','C','D','F','H','K','L',
              'P','R','T','U','X','Y','4','7', );
      my $str = q();
      my $length = @character;
      for (my $i = 0; $i < 8; $i++ ) {
        my $x = int(rand $length);
        $str .= $character[$x];
      }
      return $str;
    }
     
     
    __END__

    モジュールでString::Random使えば簡単にできることに最近気づいた!

    #!/usr/bin/perl
     
    use strict;
    use warnings;
    use Digest::SHA1;
    use String::Random;
     
    my $salt = '3gatsu6nichihatokyodeoffkaida';
     
    my $new_password = _make_password();
    my $ctx = Digest::SHA1->new;
     
    $ctx->add( $salt.$new_password );
    my $password_digest = $ctx->hexdigest;
     
    print "NewPASSWORD: $new_password\n";
    print "salted_SHA1: $password_digest\n";
     
    exit;
     
    # パスワード生成
    sub _make_password {
      my $sr = String::Random->new;
      $sr->{A}
       = [ 'A','C','D','F','H','K','L',
           'P','R','T','U','X','Y','4','7', ];
      return $sr->randpattern('AAAAAAAA');
    }
     
    __END__

    String::RandomはCPANからインストール。

    あんまりプログラムの長さは変わらんけれども、パスワードのバリエーションがいろいろできますよね。

    昨日問題になっていたPS3が起動できないというのは、本日(2010/3/2)の午前9時以降なら問題ないらしいということでうちに帰ってきてから電源つけてみた。

    Ps320100302
    ▲まだ3月1日だよ

    もろ閏日処理じゃねえかw

    ここら辺で原因が議論されてていそうなのでリンクはっとく。

    PS3、時計機能のバグで大規模障害。データ破損の恐れもあり、修正されるまでは使用しないように。 - スラッシュドット・ジャパン [slashdot.jp]

    僕今帰ってきたのでこれから情報収集するところなんだけれども、旧型PS3を2010/3/1に起動すると、RTCがおかしくなり他もおかしくなるとな。

    Twitterの検索でPS3のキーワードで検索かけたら、全世界で問題が発生しているらしく、流れに追いつけないw

    というのであれば、ある程度流速が遅いはてなブックマークで見つけた、

    【緊急事態】PS3の電源を入れてはいけない!! - 2のまとめR [2r.ldblog.jp]

    で情報収集をするなど。

    とか言いつつもう15分で3/2になるから平気になるのかな。怖いから電源入れないけど。

    それにしても、平年の2/28→3/1で誤動作って、現象がものすごい器用っていうか、それまで計算機触っていなくて学校に入ってからPASCAL使用を強制された学部生でさえも起こせない不具合のような気がするんですけれども。原因が非常に気になるなあ。

    月別 アーカイブ

    ウェブページ

    OpenID対応しています OpenIDについて
    Powered by Movable Type 5.2.13

    このアーカイブについて

    このページには、2010年3月に書かれたブログ記事が新しい順に公開されています。

    前のアーカイブは2010年2月です。

    次のアーカイブは2010年4月です。

    最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。