タグ

ブックマーク / labs.cybozu.co.jp (18)

  • Kazuho@Cybozu Labs: JavaScript/1.7 で協調的マルチスレッド

    « Japanize - ウェブサイトの高速化 | メイン | Japanize が Firefox にフィッシングサイト扱いされている件について » 2007年05月25日 JavaScript/1.7 で協調的マルチスレッド JavaScript/1.7 の話なので Firefox 限定です。以前、 残念ながら、JavaScript には非同期メッセージを同期化する方法はない!残念!><ほんとに残念! JavaScript 1.7 なら yield でできるんじゃないかと思いました。 Kazuho@Cybozu Labs: JavaScript で非同期処理 と書いたっきり失念していたのですが、社内で話題になったので実装してみました。こんな感じです。 function runnable(f) { var o; o = f(function () { o.next(); }); o.ne

  • Kazuho@Cybozu Labs: JavaScript で非同期処理

    « 独自ドメインにおける DNS の設定 | メイン | Japanize - サブドメインの翻訳について仕様変更のおしらせ » 2006年11月30日 JavaScript で非同期処理 setTimeout って、JavaScript の黒歴史だよね、ってのはおいといて。IT戦記 - 関数を非同期化して汎用性を高めるを見て、おもしろそうだったので汎用化してみました。でも、あまり実用性がなさそうです。 function async(wait) { if (arguments.length == 1) return; var conn = arguments[arguments.length - 1]; for (var i = arguments.length - 2; i != 0; i--) { conn = (function (f, c) { return function ()

  • 人体をHTMLとPHPで表現。headとbodyがあるぐらいだから他にもいろいろあっていい、とか

    メキシコのブロガー、PixelarisさんのHTML/PHPで表した人体というソースコード(?)です。 aliment.php栄養を取り込むわけですね Tシャツの色は黒 女性の場合胸の左右はtitで、男 […] メキシコのブロガー、PixelarisさんのHTML/PHPで表した人体というソースコード(?)です。 aliment.php栄養を取り込むわけですね Tシャツの色は黒 女性の場合胸の左右はtitで、男性の場合はnipple。なるほど 半ズボン、下着に囲まれているところはprivate.phpで見えません 右足にはイレズミがあるんですね。 スニーカーはナイキ指定

    人体をHTMLとPHPで表現。headとbodyがあるぐらいだから他にもいろいろあっていい、とか
  • 金属バットを買った人はこんな商品も買っています

    Photoshopとかで作られたニセ画像かと思いきや、ドイツAmazonで、実際に今も表示されています。(注: 執筆時は表示されていました。現在は消えています) 金属バットの商品ページでオススメされた商品群。唐辛子スプ […] Photoshopとかで作られたニセ画像かと思いきや、ドイツAmazonで、実際に今も表示されています。(注: 執筆時は表示されていました。現在は消えています) 金属バットの商品ページでオススメされた商品群。唐辛子スプレー、フルマスクに手袋。 この一式でやるのは… どうみても野球じゃないですね [追記] 考えてみると、ドイツで野球やる人なんてほとんどいないだろうから、売れる数も少ないんでしょうね。 ドイツのアマゾンで金属バットを売ってること自体も妙に見えますが、そこはなんでも手広く揃えるアマゾンのすごさということでしょう。 そして、目的外利用みたいな購入があると

    金属バットを買った人はこんな商品も買っています
  • CAPTCHA解読ソフトの価格表に見るCAPTCHAのレベル差 | 秋元@サイボウズラボ・プログラマー・ブログ

    via del.icio.us/popular Coding Horrorブログの記事Has CAPTCHA Been “Broken”?(CAPTCHAは破られたか?)では、CAPTCHAの解読ツールに値段をつけて売っている中国の業者の価格表を紹介していて、これが面白い。 CAPTCHA用の文字列画像を作るときは、文字を画像化したり、色をつけたり、線を引いたり、無関係な点や図形を足したり、湾曲させたり、と、いろいろな加工で「人には読めるけど機械には読めない」ように作るわけだが、この価格表では、単純なCAPTCHAで彼らの販売するツールで読み取れる可能性が高いものほど値段が安くなっているし、彼らのツールでは読み取れてない場合も多いような難しいものについては、ツールの値段も高くなっている。 この価格表で図らずも、いろいろな大手サイト(主に英語中国語でのサイト)が使っているCAPTCHA図形

    CAPTCHA解読ソフトの価格表に見るCAPTCHAのレベル差 | 秋元@サイボウズラボ・プログラマー・ブログ
  • Google App Engineを使ってみた

    Google App Engine(書きにくい。GAEとか略すのかなと予想)のページで、使える状態になっていたのでボタンを押して利用開始。 アプリは3つまで作らせてくれるということなので、まず Application名 […] Google App Engine(書きにくい。GAEとか略すのかなと予想)のページで、使える状態になっていたのでボタンを押して利用開始。 アプリは3つまで作らせてくれるということなので、まず Application名 “akky” を確保。 これで、http://akky.appspot.com/ が使えるようになる。(Google Appsのように、独自ドメインへのマップもできる予定) まずはローカルでちゃんと動くPythonアプリを作る、ということで、さきほどインストールしたSDK上で作業。 C:> cd “Program FilesGooglegoogle_

    Google App Engineを使ってみた
  • Google App Engine SDKを使ってみた | 秋元@サイボウズラボ・プログラマー・ブログ

    [追記] これを書いたあとアカウントが入手できたので、実際にGoogle App Engineのサーバ上で簡単なスクリプトを動かしてみた。 Googleが今晩(米国時間)のパーティーCampFireOneでTech CrunchメンバーやRobert Scobleさんら参加者に対して発表したGoogle App Engine, AmazonがS3+EC2+SQS+SimpleDB等で先行している「スケールする従量制ホスティングサービス」の競合サービスのようだ。 Googleが自社で使っているような大規模展開が可能なサーバ+ミドルウェア群を、外部に提供するということ。まずはPythonGoogle自身も使っている各種ライブラリ、WebフレームワークDjango、を積んでの公開だが、他の言語にも対応していくらしい。 やはりGoogleというか、ディスク500MB、月500万PVまでは無料で使

    Google App Engine SDKを使ってみた | 秋元@サイボウズラボ・プログラマー・ブログ
  • 一つの指標に頼らないこと | 秋元@サイボウズラボ・プログラマー・ブログ

    ウェブの質を理解せずに、どこか一社が提供している指標でもって、広告やSEOの成果測定をおこなったり、広告料金の算定に使ったりする無知が、不正の温床となります。 複数のサービスの値を見て比較することで、ある特定のサービスで急な変化があったときに、それが確からしいのか、何か操作が行われているのか、を知ることができるかもしれません。 そういう意味では、アレクサ以外のサービスが多数出てきて使えるようになったのはよいことでしょう。 この記事は移転前の古いURLで公開された時のものですブックマークが新旧で分散している場合があります。移転前は現在とは文体が違い「である」調です。(参考)記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッターでご指摘いただければ幸いです。最新の状況を調べて新しい記事を書くかもしれません

  • Kazuho@Cybozu Labs: ウェブアプリケーションにおけるHDDの正しい使い方

    « ディスクが1回転する間に複数回 fdatasync する方法について | メイン | Q4M - MySQL 上で動作するメッセージキュー » 2008年01月04日 ウェブアプリケーションにおけるHDDの正しい使い方 データベース等のソフトウェアは一般に、停電やOSのクラッシュ時にデータが破壊されないよう、HDD へデータ保存が完了したか確認しながら処理を行うようになっています。その目的を果たすためにどのような API が OS によって提供されているか、少し勉強し直すことにしました。 下表のうち、赤い部分がデータの永続性が保証されない危険な手法、青い部分が安全な手法です。したがって、各行において出来るだけ左側の (高速側の) 、そして言うまでもなく青い色の同期手法を使っていることが望ましいということになります。 OS openモード HDD または RAID 内の書込先 キャッシュ

  • ソーシャルサイトでURLの重複チェックをすり抜けるハック | 秋元@サイボウズラボ・プログラマー・ブログ

    via reddit 悪用厳禁なハック。Diggなどで新しいニュースを投稿する際に、過去に誰か他の人がまったく同じURLで投稿していると、エラーになってしまうという。 「以前はウケなかったけど自分なら面白い紹介文を書ける」という人は、なんとかしてそのURLをシステムにねじ込みたいかもしれない。そんなときには、サーバやスクリプトエンジンの動きを利用することで、別のURLにして投稿できますよ、というもの。 たとえば、 http://example.com/hoge/ がだめなら、 http://example.com/hoge/./ としてみる。 それから、 http://example.com/hoge/?hoge=hoge などと、無意味なパラメータをつけてみる。パラメータがついても目的のページにアクセスできる場合は、これで重複チェックを飛び越せるというものだ。 メールアドレスもそうだと思

    taninsw
    taninsw 2007/11/21
    リンク先のHTMLのハッシュ値でも保存しておくとか。動的なサイトには無意味だけど
  • sha1.js (mitsunari@cybozu labs)

    JavaScriptでSHA-1を計算するライブラリを作りました. ○特長 webでよく見られるいくつかの同種のライブラリに比べて4~6倍ほど高速に計算します. ○ダウンロード(download) sha1.js ○仕様 ASCII文字列を渡すとそのSHA-1を計算して16進数文字列で返します. 文字列に漢字などが含まれている場合は二つ目の引数にCybozuLabs.SHA1.BY_UTF16を指定してください.UTF16として処理します. ○使い方1 var str = CybozuLabs.SHA1.calc("abc"); if (str == "a9993e364706816aba3e25717850c26c9cd0d89d") { ... } ○使い方2 var str = CybozuLabs.SHA1.calc("あ", CybozuLabs.SHA1.BY_UTF16);

  • 秋元@サイボウズラボ・プログラマー・ブログ ついにページビューによる測定が最重要でなくなりそう

    via Yahoo! News ウェブサイトの視聴率測定最大手のニールセン/ネットレイティングスが、ページビューによるウェブサイトのランクづけをついに廃止(非公式化)し、サイト滞留時間でのランキングに切り替えるという発表を明日(米国時間火曜日)するらしいというニュースがきた。 Ajaxによるユーザビリティ向上などで、Yahooなどはかえってページビューの減少が起こっていたり、YouTubeなどの動画サイトではユーザが動画をじっと見ているので実際の利用時間に比べてページビューが少なかったり、何かするたびに別のページを開かせるMySpaceが、ページビューでは実際よりも人気があるように見えてしまっていたというような問題が出ていたが、これらの問題を解消するのが目的らしいということだ。 サイト滞留時間でランキングをつけなおすと、PVでトップだったYahooが2位に後退、トップはPVでは6位だったA

  • TAKESAKO @ Yet another Cybozu Labs: Wiiリモコンの値をJavaScriptで取得する方法(Wiiインターネットチャンネル)

    任天堂の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

    taninsw
    taninsw 2007/05/23
    無理だと思ってた。できたのかぁ
  • Kazuho@Cybozu Labs: Japanize 拡張機能バージョン 0.8 リリースのおしらせ

    « Re: SessionSafe: Implementing XSS Immune Session Handling | メイン | Japanize の多国語版を公開しました » 2007年03月28日 Japanize 拡張機能バージョン 0.8 リリースのおしらせ すっかり間があいてしまいましたが、日 (2007年3月28日)、Japanize の拡張機能を 0.8 にバージョンアップしました。Firefox をお使いの場合は、「ツール」メニューから「アドオン」を選択して「更新を確認」ボタンをクリックすることで、最新版に更新可能です。 Japanize の拡張機能をインストールし翻訳データの更新方法として「定期的に確認する」を選択している (これがデフォルトです) と、翻訳データの増大にともない、更新データのダウンロードに時間がかかったり、更新の適用中に Firefox が数秒間

    taninsw
    taninsw 2007/03/28
    入れてみた。相変わらずstage6でバグる
  • Kazuho@Cybozu Labs: クロスサイトのセキュリティモデル

    « Japanize - IE 系の User JavaScript エンジンに対応しました | メイン | 安全な JSON, 危険な JSON (Cross-site Including?) » 2007年01月04日 クロスサイトのセキュリティモデル あけましておめでとうございます。 昨年、社内で「XMLHttpRequest は何故クロスサイトで使えないのか。画像や SCRIPT タグは使えるのに」という疑問 (というより試問) を耳にしました。おもしろい話なのでブログネタにしようと思っていたのですが、新年早々 GMAIL の事例がスラッシュドットされていたので、自分の現時点での理解をまとめてみることにしました。文書を確認して書いているわけではないので、間違いがあれば指摘してください。また、よい参考文献をご存知の方がいらっしゃいましたら、教えていただければ幸いです。 ウェブブラウザ

  • Kazuho@Cybozu Labs JavaScript を学ぶ上で読むべきウェブサイト

    « JavaScript の String 型を継承する | メイン | JavaScript は、なぜプロトタイプベースなのか » 2006年10月18日 JavaScript を学ぶ上で読むべきウェブサイト JavaScript について議論する際、良く挙げられる参照文献は ECMA-262 (日語版) です。 しかし、どちらかというと ECMA-262 は JavaScript の処理系を実装する人に向けた文書なので、JavaScript を使いたい人には向きません。 私は、 JavaScript のユーザーには、mozilla developer center の Core JavaScript 1.5 Guide (日語版)Core JavaScript 1.5 Reference (日語版は整備中?)が良いのではないか、と思っています。 Mozilla のドキュメントかよ

  • Kazuho@Cybozu Labs: JavaScript で Generic Programming

    « Japanize 拡張機能 0.7.1 リリースのおしらせ | メイン | OSS コンファレンスで講演 » 2006年10月16日 JavaScript で Generic Programming 再帰呼び出しのスタック間でデータを共有する場合は、以下のように仮引数を使わなければならない。 IT戦記 - Perl で再帰呼出し時のスタック間データ共有 について、弾さんがクロージャを使って解決する方法を提示されています。それはそれでいいと思うのですが、JavaScript の場合は、もうひとつの書き方があります。Function.prototype.call を使う手です。 function count_tags(node) { return (function (node) { var kids = node.childNodes; for (var i = 0; i < kids.

  • Kazuho@Cybozu Labs Ajax な HTML ページのソースコードを表示する

    « Japanize - 翻訳範囲の制御方法を検討中 | メイン | Japanize 拡張機能バージョンアップのおしらせ » 2006年10月02日 Ajax な HTML ページのソースコードを表示する 勢いだけで書く bookmarklet 第2弾です。 多くのウェブブラウザでは、メニューからウェブページのソースコードを表示することができます。しかし、この方法で表示される HTML はダウンロード時のデータなので、Ajax を多用しているウェブサイトのコードを解析する際には役にたちません。 Ajax により改変された、現在表示中の HTML のソースコードを確認するには、以下のようなブックマークレットを使うと便利です注。 javascript:void(window.open('', '', 'scrollbars=yes,dependent=yes').document.write

  • 1