HOKYPOKY.BLOG

Original

どこからが自分で、どこからがあなたなのか。

プチリニューアル。

いやさー。
黒いサイトってカッコイイとおもうんだけど、やっぱりずるいと思うんだよね。
個人的には。

というのも黒と白じゃ黒の方がカッコイイからね。

白いサイトがいいなーなんて思ってて、会社の喫煙所でタバコ吸ってたら、最近の100円ライターってライトが付いてたりするもんだから壁にあててたのね。

そしたら「これや!」ってなってちょこっと10分でプチリニューアルしてみた。

ただ、出来上がったものをみてコーネリアスそのもの。
もういい。きっともとに戻すでしょう。とりあえずこれでやってみる。

いまさらナベアツ問題に取り組んでみた。

プログラムがちょっとかけるようになったときに練習問題として取り組むFizzBuzz問題というものがある。

> プレイヤーは円状に座る。最初のプレイヤーは「1」と数字を発言する。次のプレイヤーは直前のプレイヤーの次の数字を発言していく。ただし、3で割り切れる場合は 「Fizz」、5で割り切れる場合は 「Buzz」、両者で割り切れる場合は 「Fizz Buzz」を数の代わりに発言しなければならない。発言を間違えた者やためらった者は脱落となる。

これをプログラムで表現するというもので、意外とやってみると面白いんだよね。

実はこれとよく似た問題でちょっと前に流行ったのがNabeAtsu問題。
「3の倍数と3のつく数字だけアホになります」というあれが正にFizzBuzzと似てる。

ナベアツが盛り上がりだした頃にtrick7さんもこのNabeAtsu問題をやっていて、これで時計を作ってました。
すげーかわいくて好きだったんですが、残念ながら肖像権とかの関係で消されてしまいました。
trick7.com blog: 世界のナベアツXXXXXXX時計

んで、ちょうど会社の三谷くんが誕生日だったんで、3の倍数でアホになり、3のつく数字でミタニ〜と声がするFlashを作った。
まあ、これが昨日つくったやつです。

突然さっき、時間がなくて端折った部分がわかったのでメモ。
というのもFizzBuzzとNabeAtsuの決定的に違う部分は「nの倍数、mの倍数」でなく「nの倍数、mの付く数字」という点。
3の付く数字がめちゃくちゃだった。以下の処理。

  • 10で割って3余るのが3の付く数字。
  • 30台 if(i >=30 && i < 40)

となんかややこしく考えすぎたし、ぜんぜんプログラムって感じしない。
40までならなんとかなるけど130とかではやくも破綻するし、超気持ち悪い。

で、さっき思いついたのは正規表現使えば簡単だということ。(indexOfでもいいくらい。)
つまり人間と同じ考え方。3が付けばOKなんだから、文字に3があればいいわけだ。
AS3で正規表現が使えるということでトライしてみたら、JSと一緒。
得してるなーなんて思ったり。

で、リベンジ後のnabeAtsuソース

package {
    import flash.display.*;
    public class Main extends Sprite {
        public function Main () :void {
            nabeAtsu(40, 3, 3);
        }
        /**
         * NabeAtsu
         * maxNum:int	いくつまで数えるか
         * nabe:int		nの倍数
         * atsu:int		nのつく数字
         */
        private function nabeAtsu (maxNum:int, nabe:int, atsu:int) {
            for(var i:int = 1; i <= maxNum; i++ ){
                var retStr:String = "";
                var reg:RegExp = new RegExp(atsu.toString());

                if(i%nabe == 0){
                    retStr += "Nabe";
                }
                if(reg.test(i.toString())){
                    retStr += "Atsu";
                }
                trace((retStr != "" ? retStr : i));
            }
        };
    }
}

ま、こんなかんじかね。
いい頭の体操になりました。

ほんとは、作ったやつをアップしたいんですが、ウチワネタな上、
最高に不快なアホボイズが入っているので自粛します。
まあ、実はボイスを1音1音録音するのが一番大変だったんですがね。
深夜にアホ声を録音してる自分をほめてあげたい。

そして、本人には気に入ってもらいましたv
これが一番うれしいね!

iCloudsとソフト開発

AppStore有償アプリ1位になっていたソフト。
ただただ空を飛ぶアプリですがこれがとっても気持ちがいい。
思わずXactiで録画してしまいました。

この間のToyCameraもそうですがiPhoneアプリが面白くなってきました。

Adobe AIRもそうなんだけど、こういったアプリはWEB屋とソフト屋の中間のような立ち位置なので動向が気になります。

今回のアプリは例えば「空を浮遊する」と、一見「意味のない」アプリなんだけど、実際に起動してみるとこれがすごくいいわけで何とも言えないポイントをついてくれます。
個人的にはWEB屋はデザインや、UI、インタラクティブ性などを常日頃意識しているし、楽しげなモノを作る頭をもって日々創作していると思うので、かなりいいもの、いい発想ができると思ってます。

あとは、技術的なところでWEB屋のどれだけの人がこういったアプリを作れるかとかそういったところになるのかなーなんて。

アプリをツールととらえるか、おもちゃととらえるか、また、それらとはまた違ったものととらえるか。どれも正解だとは思うんだけど何がウケるかで答えがでるのかなー?

とりあえずfladdictさんがサイトオープンしました。
http://blog.artandmobile.com/

別にアプリ屋とかWEB屋とかはほんとは関係なくて自分もそういったことができる人になりたいってだけです。
今はできないし、他にやりたいことがあるからいいんだけど、こういったHOTな状況に便乗できるような力はつけたいなと、消費者側として若干悔しくありつつも思いました。

MacBook買った。

Mac Book

Storeでコックリさんばりに引きつけられて新しいMacBookの購入を押していたわけです。
それが先週届いてたって話ね。ほんとはテンション高すぎて即日なんかわーわー言いたかったんだけど、仕事が終わんなくて家帰ってすぐ寝る日々を過ごしてた訳です。

とりあえず今回はVMWare FusionでVistaを入れることにしたよ。
そろそろXPじゃなくても平気じゃないかなと。IE6は会社にあるし。

そんでFlashDevelopをいれて、、、、環境構築ばっちし!!!
ってなる予定のとこでこのブログ書いてます。

なめてたけどいいわー

先入観でなんとなくなめてたけど実はいいものってあるよね。

そういうものを無駄にしたくないなと思いつつも、結局それって全てを吟味しなくてはいけないということにも近くて、それはそれで大変だなーなんて思ったりもする。

でもやっぱり、極力先入観なく物事をみれるようになりたいなー。

とりあえず今からVMWare Fusionか、Parallelsのどちらかを買ってきます。
そんでVistaをインストールするぜ!XPもいいんだけどね。

最近、すこし、プログラムがかけるようになってきたから、いろんなプログラムのフタをあけてみたいと思います。

多分ギター弾けるようになったからベースやらドラムやらやりたくなったあの頃と似てるんでしょう。

というわけで今回の動画はPerfumeです。どうぞw

PHPで添付ファイル付きメールを送る

仕事でファイル付きメールを送るフォームを作成したときに、めちゃくちゃ調べたのでそのまとめ。

  1. input type=”file”でファイルアップロードができる。
  2. そのときformにenctype=”multipart/form-data”という属性をつける。
  3. メールのヘッダーはContent-Type: multipart/mixed;boundary=”任意の文字列”とする。
    multipart/mixedというのは複数のコンテントタイプが混ざってるということ。
    また、このときboundaryという任意の文字列は日付やらをmd5ハッシュしたものなどにする。
  4. 3で指定したboundaryの値の頭に–をつけたものが区切り線となる。
    この区切り線というのはContent-Typeの区切りです。要はテキストのContent-Typeと画像のContent-Type。 

以上をふまえてソース

sendmail.html

<form action="sendmail.php" enctype="multipart/form-data" method="post"> <input id="file" name="file" type="file" /> <input type="submit" /> </form>sendmail.php

$sendTo = "user@email.add"; //送信先(ユーザー)メールアドレス
$sendFrom = "admin@email.add"; //送信元(アドミン)メールアドレス
$subject = "dummy subject"; //任意のタイトル
$message = "画像を添付します"; //任意のメッセージ
$boundary = md5(uniqid( random() )); //boundaryIDを発行

$_FILES["file"]["name"];
$_FILES["file"]["type"];
$_FILES["file"]["tmp_name"];

if(file_exists($_FILES["file"]["tmp_name"])){
#題名をISO-2022-JPエンコード
    $subject = mb_encode_mimeheader($subject, "ISO-2022-JP", "B");

    $header  = "";
    $header .= "From: $sendFrom\n";
    $header .= "Content-Type: multipart/mixed;boundary=\"$boundary\"\n";
    $header .= "X-Mailer: PHP/".phpversion()."\n";
    $header .= "MIME-version : 1.0\n";

    $body  = "";
#テキスト追加
    $body .= "--$boundary"; //頭に--をつけた$boundaryで区切る
    $body .= "Content-Type: text/plain;charset=ISO-2022-JP;format=followed";
    $body .= "Content-Transfer-Encoding: 7bit\n";
    $body .= "\n"; //テキスト部のheader終了
    $body .= "$message\n";
    $body .= "\n"; //テキスト部のbody終了
#添付ファイル追加
    $body .= "--$boundary"; //頭に--をつけた$boundaryで区切る
    $body .= "Content-Type: ".$_FILES["file"]["type"].";name=\"$_FILES["file"]["name"]\"\n";
    $body .= "Content-Transfer-Encoding: base64\n";
    $body .= "Conteint-Disposition: attachment;filename=\"$_FILES["file"]["name"]\"\n";
    $body .= "\n"; //添付ファイル部のheader終了
#ファイルをエンコードする
//-----
    $fp = fopen($_FILES["file"]["tmp_name"], "r") or die("error"); //添付ファイルを開く
    $contents = fread($fp, filesize($_FILES["file"]["tmp_name"])); //添付ファイルを読む
    fclose($fp);	//添付ファイルを閉じる
    $f_encoded = chunk_split(base64_encode($contents));	//添付ファイルをbase64エンコードする
//-----
    $body .= "$f_encoded\n";
    $body .= "\n"; //添付ファイル部のbody終了

    mail($sendTo, $subject, $body, $header);
    echo "success!";
}else{
    echo "error";
}
?>

PHPの\nとか足す感じがめちゃくちゃきらいです。
まーきっとそれはボクがへちょいからでしょう。いいやり方は覚えていきたいものの、PHPはあんまりやらないようがんばろうと思います。

今回の動画はUnderworld。そいや昔どこかでストレイテナーがBorn Slippyをバンドでコピーしてた動画をみたんだけれども見つかりませんでした。
こういう曲を生演奏で再現されるとキュンとする。

Nintendo DSiがすごいぜー!

Nintendo DSを買って、あんまりプレイしてないんだけどDSiが欲しいですっていうか体験してみたいです。

すごすぎて、全てを語るとなると何から話していいのかわからないし、すごく長文になると思うので割愛するけど、ヘッダーにでてる動画や、下のリンクよりインタビューをみると単純に「モノづくり」というものの面白さや、奥深さが伝わります。
ってかハード、ソフトを含めを2年たらずで開発したという任天堂は鬼なんじゃないかと。開発部のエースを集結したといってるけどさすがですね。

Touch-DS.jp – 社長が訊く『ニンテンドーDSi』

あと、最近ボクのブログをFeedでとってくれる人が結構増えてきてくれてうれしい限りです。
みなさん、ありがとうございます。

このブログは技術的な話題やメモ、日記やレビューを中心に書いてはいるものの基本的にはノーテーマです。というかほんとに個人ブログってやつですね。

ブログは一つのテーマで書いた方がアクセスを伸ばせるとかそういうことが言われているけど、やっぱり個人のブログだし、あまり面白くないこともどうしても書いてしまいます。っていうか文章も下手だし。そもそもアクセス伸ばすためにブログやってるわけでもないのでw

でも、せっかくFeedをとってくれた人がいるので、例えば技術的なメモを読んでくれてる人がただのつぶやき的な記事をみたとしてもせめて何か楽しんでもらえるようにYoutubeの動画をほぼ毎エントリーにいれていて、そっちで楽しんでもらえたらと思ってます。

ただ、GoogleReader以外のFeedリーダー上からではみれなくてどうしようかと悩んでます。実際にサイトにアクセスしてもらえるとみれると思うんだけど、まーそこらへんも含めてこれからも楽しんでもらえるようなブログにしていこうと思います。

Chinese Rap

中国って昔から韻を踏んだ詩が得意っていうか、漢文ってむしろ韻踏んでないとだめみたいな風潮あったと思うんだ。

孔子が現代に生きてたらMC KOH-Siとかやってるはずなんよ。

で、今の中国のHIPHOPってどうなってんのよと思ってYoutubeみてたら、この動画にいきついた。

なんていうか、はんぱないね。タモリ。

ブログにポルナレフのAAを貼ろうと思ったんだけどうまくいかないんで省略。