research

現在、カテゴリ「research」の投稿記事を表示中です。

Dropbox への OAuth 認証 (Python)

昨日は、Python も初めて、OAuth も初めてという感じでいいかげんにプログラムを書いていたのだけれども、自分で書いていたコードがあまりに非効率なので、もう少しちゃんとできるだろうと思って、家に帰ってからハックを続けました。

やっぱり、アクセストークンは保存しておいて再利用することができるんですね。Dropbox.com にはリクエストトークンとアクセストークンをバシバシと発行要求してしまって悪いことをしてしまいました。以下に認証部分を修正したコードを書きます。
続きを読む »

JavaScript でお絵描き—解決編

いまから1年半もまえのことになるのですが、JavaScript と HTML 5 の Canvas の機能を使って簡単なお絵描きをしてみました。

ひとまずうまくできたのですが、iPod Touch で開いて触ると画面がスクロールしてしまうという問題がありました。ドラッグ操作でペイントできるようなツールが作りたかったのに、iPhone ではスワイプと誤解されてしまうのが問題でした。

昨日、[[PhoneGap:http://phonegap.pbworks.com/Preventing-Scrolling-on-iPhone-Phonegap-Applications]]という開発ツールの Wiki を眺めていて、ようやくこのiOS のデフォルトの機能を抑制する方法が見つかりましたので紹介します。
続きを読む »

ネットワークの巨人がやってくる

Van Jacobson という人を知ってますか?知らなかったら、こっそりとコンピュータネットワークの教科書を広げて、索引を引いてみましょう。

知ってた人も知らなかった人もこちらのリンク先をどうぞ。

初めての LablGL

住井さんのすばらしくよくできたチュートリアルに導かれて、初めての Open GL のアプリケーションを書きました。

続きを読む »

WP SpamFree の神通力に翳り?

このブログを始めてからずっとスパムコメントの処理は WP SpamFree に任せていました。これまでに投稿されたスパムの数は全部で2,542通。そのうち 2,531 通は WP SpamFree がスパム判定していました。11通だけが WP SpamFree を逃れて投稿されたコメントです。しかも、WP SpamFree を逃れて届くスパムコマントは先月まで皆無でした。

仕方がないから、別のスパムフィルタを導入したという話です。

続きを読む »

Writing a lot!

先週の金曜日に増井さんと福地さんがつぶやいていたのを見てすかさず注文したのが How to write a lot です。ある種のライフハックと言えますが。新進気鋭の心理学者の言っていることなので真にうけることにしました。月曜に届いたのでその日の晩に半分くらいを一気に読んで翌日から実践しています。来月から実践する福地さんに先駆けた見事なスタートダッシュ!

ひとまず iCal には毎日「断線」と書き、その間はネットにアクセスしません。SafariもTwitterもApple MailもSkypeも全部終了。二時間くらいだけど書き物以外はしないことにしました。

一昨日は、学内の某重大案件についてのレビューをやっつけてから、ジャーナル論文のタイポの修正。今日は論文全体の細かいミスのチェック。

なかなか快調な出足です。とは言え、ワンクリック先では誰かが面白いことを言っているわけだから、先のことを思うとパソコンよりももっと抑圧されたデバイスの方が仕事はかどるでしょうね。ポメラを使う人の気持ちがよくわかります。

たぶん買うと思います。

WIFI 版のiPadとその外付けキーボード。この組み合わせでWIFIを切ったらポメラですよね。マルチタスクに対応していないことが誠によろしいです。マルチタスク対応のアップグレードがきたときまでに、それを思いとどまる賢明さを見につけるために日々、断線を続けることにします。

Google Native Code talk

ワイシャツにアイロンをあてながら NaCl (Native Client) Project のビデオを見ました。

ブラウザのなかで Native code を安全に動かすソフトウェアの仕掛けです。基本的には、実行前にコードを静的に検査し、コードは 32bit アラインメントにした上ですべてのジャンプの飛び先を検査し、静的に検査できない部分は SFI (Software fault isolation) で守り、機種依存で手元の CPU で実行できない命令は HLT に変換し、ret/int/syscall などの危険な命令は不可とするとのことです。当然、既存のコンパイラを修正しなくてはなりません。ret は buffer overflow 攻撃の対象となるために避けたのでしょう。代りに pop + jmp するようです。どうして、こちらが安全なのかはわかりませんでした。

JavaScript で format

Lisp の format のようなものが欲しいと思って作りました。かなりいい加減ですけど、役に立ちます。

String.prototype.format = function () {
  var s = this;
  var args = arguments;
  var len = arguments.length;
  var i = 0;
  s.match(/~[a%~]/g).forEach(function (p) {
      var v = '';
      switch (p[1]) {
      case 'a': if (i < len) v = args[i++]; break;
      case '%': v = '\n'; break;
      case '~': v = '~'; break;
      default: v = p[1];
      }
      s = s.replace(p, v);
    });
  return s;
};

これだけです。さっきの JSON.stringify する toString と組み合わせれば、オブジェクトも埋め込まれます。

'~a + ~a = ~a'.format(15, 20, 15 + 20);

に対しては、以下のように

15 + 20 = 35
var i = { i: '愛' };
var m = { m: '誠' };
'~aと~a'.format(i, m);

の場合は、以下のような出力が得られます。

{
  "i": "愛"
}と{
  "m": "誠"
}

愛と誠の構造

無味乾燥な内容にバカなタイトルをつけてごめんなさいね。

Lisp には Pretty Printer という便利なものがあります。Lisp のデータを画面にきれいに整形して表示してくれるものです。いわゆる printf デバッグをするのにとても便利です。JavaScript でも似たようなことができないかというのがこの記事の話題です。

続きを読む »

ぼくの破れた愛の問題

JavaScript のデバッグ情報を出力するのに JSON.stringify を使っています。JavaScript のオブジェクトに対して Lisp でいう Pretty Printer のような感じで使えて便利なのです。ただ、ひとつ困ったことがあります。データに日本語の文字列が入ると文字コードの列になってしまうのです。例えば、JSON.stringify(‘愛’) は “\u611b” になってしまうのです。これでは愛が見えない!
続きを読む »

« 古い投稿