トップへ
同僚の竹迫さんがFlashLiteでFizzBuzz Golf(いかに短いサイズでFizzBuzzを書くか)をしていたので、私もチャレンジしてみました。 FlashLite1.1で195 byte になりました。FlashLite1.1で200バイトを切るのは大変でしたが、ちょっとした面白いことを知りました。 たとえば、 X = 100; よりも X = ord("d"); の方が1バイトお得 とか、 最初の文字をとりだす時には、substring(s,1,1); よりも chr(ord(s)); の方がお得 とか。 これらはアクションスクリプトだけを見ているとよくわかりませんが、バイトコードを眺めていると気がつくものです。他にもいくつかあるのでこれから少しずつ紹介していこうと思います。
Twitter ライクなサービス「もごもご」に API ができたということで、もうこれは早い者勝ちだろ~と、Yahoo! ウィジェット 版クライアント Twiggee を Twitter & もごもご両対応にいたしました。 設定画面で もごもごのログイン用メルアド&APIパスワードを設定することで、もごもごの「いま、なにしてる?」更新と「みんなのもごもご」の確認が出来るようになりました。 また両対応の名に恥じないよう、Twitter だけ、もごもごだけ、Twitter & もごもごの併用に対応しています。併用する場合、ステータスの更新は両方に対して行われますが、自分のステータスは Twitter のものだけが表示されます。 また、以前のバージョンでは長いステータスが自動スクロールするとちょっと負荷が高くなってしまう場合があったので、表示している範囲のみ自動スクロールするように変更しました。
reCAPTCHA という新サービスはすごい。その構想力には感動させられた。 念のためにCAPTCHA(キャプチャ)について説明しておくと、スパムプログラム(bot)と人間のユーザを見分けるための簡単な(しかし機械にとっ […] reCAPTCHA という新サービスはすごい。その構想力には感動させられた。 念のためにCAPTCHA(キャプチャ)について説明しておくと、スパムプログラム(bot)と人間のユーザを見分けるための簡単な(しかし機械にとっては難しい)クイズのことだ。ある程度ウェブを使っている人なら、ネットサービスの登録時やコメントの書き込み時などに、読みにくく加工されたアルファベットを読まされたりした経験があるだろうと思う。 それらのサイトでは、あなたが人間にしかできないクイズを解いたのを見て、ユーザ登録やコメントの投稿を受け付けたりする仕組みになっているわけだ。文字を読む以外のC
任天堂のQ&Aサイトで、Wiiリモコンの値を取得する方法が公開されていることを知人から教えてもらいました。 インターネットチャンネル向けのウェブページを作りたいのですが…。 : Q&A - Wii インターネットチャンネルの拡張機能について知りたい Wiiインターネットチャンネルでは特別な JavaScript を用いる事でWiiリモコンのひねりや テレビとの距離、複数のコントローラの状態を取得する事ができます。 手元にWii本体の実機がないので(Wiiリモコンはある^^)まだ試していませんが、こんな感じでJavaScriptからWiiリモコンの値が取れるっぽいですね。 if (window.opera && window.opera.wiiremote) { var num = 0; // wiiremote number 0,1,2,3 var pad = window.opera.w
Erlang の「軽量プロセス間の非同期 tuple メッセージのやりとりによる分散」というのが今やっていることの色々参考になるんじゃないかという気がして、少し勉強ということで "Programming Erlang" をせっせと読んでみました。 #Erlang のメッセージは別に tuple じゃなくてもなんでも送れます。一応念のため。 いきなり余談。"Programming Erlang" の書籍版はまだ出てないんですが、直販で $45.95、amazon.com だと $36.95 なのに、amazon.co.jp だと ¥7264 もするのはなぜ!? まあ、PDF版 ( $22.50 ) を買ったので関係ないんですが。 (5/18 追記:Amazon に Programming Erlang をリコメンドされたのでふと見てみたら¥4,118 になってました。これなら書籍でも良かった
Code Golf とは? Matzにっき(2006-10-05) より ゴルフとは如何に少ないストロークでホールインするかを競う競技である。 コードゴルフとは、如何に少ないキーストローク(バイト数)で、プログラムを実装できるかを競う競技である。 先日FizzBuzz.com (MS-DOS 16bit版) を作ってみたら、32bit版のプログラムにも挑戦したくなりましたので、x86 32bitで命令長を減らすテクニックについて紹介したいと思います。 ※まずはコード長の比較のみで実行クロック数は競わないことにします。 ■ x86 32bit コード最適化 【問題】EBXレジスタに1を、EAXレジスタに4を代入したい できるだけ短いバイト数でコードを実現するためには、いろいろなx86命令をフル活用することを考えます。 自分の思いついた解答をNASMの記法で書いてみます。 (1) 10byte
Erlang の「軽量プロセス間の非同期 tuple メッセージのやりとりによる分散」というのが今やっていることの色々参考になるんじゃないかという気がして、少し勉強ということで "Programming Erlang" http://pragmaticprogrammer.com/titles/jaerlang/index.html をせっせと読んでみました。 #Erlang のメッセージは別に tuple じゃなくてもなんでも送れます。一応念のため。 いきなり余談。"Programming Erlang" の書籍版はまだ出てないんですが、直販で $45.95、amazon.com だと $36.95 なのに、amazon.co.jp だと ¥7264 もするのはなぜ!? まあ、PDF版 ( $22.50 ) を買ったので関係ないんですが。 ちなみに、PDF 版を購入すると特典として「全ペ
どうも、ご無沙汰です。 このブログをはじめた当初は「1日1エントリー公開しよう」 などともくろんでいたのですが、はやくも2週間以上間が空いてしまいました。 今回の話はCPythonにバージョン2.4から追加された機能についてです。 みなさんは、例えば「タプルの入ったリストを、そのタプルの2番目の要素でソートしたい」とか 「Entryオブジェクトのリストを、その属性updateTimeの値に従ってソートしたい」という場合、 どうしていますか? まずは2.3以前から可能だった 「sortメソッドに比較用の関数を渡す方法」の実行にかかる時間を調べてみます。 # sortメソッドに比較用の関数を渡す方法 d.sort(lambda x, y: cmp(x[1], y[1])) 実行時間の測定にはtimeitモジュールを使います。 (10.10 timeit -- 小さなコード断片の実行時間計測)
YAPC::Asia 2007 Tokyo で大人気だった USB::MissileLauncher をマルチに制御するパッチを作りましたので公開します。 Multi-USB::MissileLauncher for Win32 binary package http://namazu.org/~takesako/pub/usblauncher-20070501.zip ■ ctlmissileコマンド使用法 Usage: ctlmissile [ up | down | left | right | fire | stop ] [ 3000] オリジナルからの変更点 http://www.earth.li/~noodles/files/usblauncher-0.0.3.tar.gz からの変更点 * ctlmissile.c.patch コンパイルオプション -DLINUX -DWIN
プレゼンしているその画面の上に、聞いている人達のコメントがニコニコ動画風に流れるのが楽しいそうで。それ、Yahoo! Widgets でできるよ。 というわけでさっくり作ってみたのが LingrTickr です。 まず、名前からわかるように Lingr のルームを一つ作ります。 そしてプレゼンに使うパソコンにて LingrTickr 起動し、設置画面でその Lingr のルームIDを指定します。文字サイズ、フォント、流れるスピードなどもこの設定画面から行います。 これでそのルームでのチャット内容が画面上を流れます。簡単。 マウスやキーボードの全ての操作を透過するので、プレゼンツールによらずニコニコメソッドなプレゼンを展開して、愛のあるツッコミを全身で享受することが可能です。 ちなみに、チャット文の先頭に "green:", "red:", "blue:", "yellow:" などを付ける
本日ドワンゴさんの会議室にてこっそり開催されたニコニコ動画勉強会に参加してきました。 日本の動画コメントサービス「ニコニコ動画」の裏側をドワンゴの開発者の方から 直接お話しを聞いて、参加者も一緒に意見交換ができる非常に面白い勉強会でした。 ドワンゴさんとしては会社で行なう技術者向けの勉強会初めての試みということもあり、 まずは開発者の知り合いベースで声をかけあって少人数で開催することにしたそうです。 六本木のクラブの人や、バイナリカンファレンスでご一緒した人とこんなところで お会いできるとは思っていませんで、さまに想定の範囲外でした。 その甲斐あって密度の濃い話ができたと思います。 以下、自分用のメモを公開できる範囲で書きます。間違っていたらすみません。(ご指摘いただければすぐに訂正します) ■ニコニコ動画の苦労話 (Sさん) ニコニコ動画の歴史 2006年10月 一人でプロトタイプを開発
perlのblessはオブジェクトにクラス名をマッピングする命令です。 my $a = bless {}, "AA::BB::CC"; print ref($a), "\n"; を実行すると、AA::BB::CCが表示されます。 ほかの名前でblessし直すとその名前で古い対応関係が上書きされます。ではその対応関係を解除するにはどうすればよいのでしょう。bless $a, "HASH"などとすれば、ref関数の結果はblessする前と同じになりますが、依然としてblessされたままです。たとえば、Scalar::Utilのblessed命令を実行すると、blessされたままであることがわかります。 blessの解除を行うために、Data::Structure::Utilパッケージのunblessという命令が使えます。 use Scalar::Util qw(blessed); use Da
« ライトニングトーク初挑戦 | メイン | 静かな静かなコンピュータ » Twiggee - Yahoo! Widgets 版 Twitter クライアント作ってみた Yahoo! Widgets の勉強がてら、巷で話題の Twitter クライアントをさっくり作ってみました。おまけで PlaceEngine と連携して、発言に自動的に現在位置情報が追加されちゃったりします。 画面はこんな感じ(モザイクかかっててもわかる人には誰かわかると思いますが、まあご勘弁)。 一番上は現在の自分の写真と "What are you doing?" 。その下の入力欄にて発言内容を POST することができます。 friends の新しい発言はフレーム部分の下に追加される形で表示され、長い発言はほどよく左スクロールします。 Twiggee はこういうシンプルな Twitter クライアントなのですが、お
先週の金曜日、弊社の 竹迫、 鶴岡 と共に 弾さんのお宅で行われた Hackathonに参加しました。 内容に関しては YappoLogs: YAPC::Asia Hackathon at Dan the hotelが詳しいです。 新人研修にかまけて記事にせずに放置していたところ TokuLog 改め Perl を極めて結婚するブログ - missile on ruby.でリークされてしまいましたが、ワンライナーで作りました。 下のコードを実行すると、動作テストとして三三七拍子を奏でた後、 インタラクティブに操作できるモードになります。 [globals().__setitem__("COMMAND",{'right':[8,0,0,0,0,0,0,0],'d':[2,0,0,0,0,0,0,0], 'f':[16,0,0,0,0,0,0,0],'fire':[16,0,0,0,0,0,0
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く