タグ

ブックマーク / www.kanasansoft.com (10)

  • WebSocketを使ってリモートデスクっぽいVNCっぽいWebSocketRemoteというものを作ってみました (Kanasansoft Web Lab.)

    (2010/04/09 追記:タイトル内のVNCをSVNと間違えていたのを修正しました。) 次世代のWebの規格としてWebSocketというものがあります。WebSocketは、AjaxでもCometでもないサーバ-クライアント間の新しい通信方法です。通常のWebアクセスや、Ajax・CometはHTTPを使用していますが、WebSocketはHTTPではありません。接続のたびに接続のリクエストが発生するHTTPと違い、WebSocketはとても高速で、同時に複数の接続も可能となっています。遅延も小さく比較的容量の大きいデータも高速に転送できるため、リモートデスクトップのようなものが作成できないかと思い、WebSocketRemoteというものを作ってみました。ブラウザには、プラグインやFlash、Javaアプレット等は一切不要となっています。 一応動作するのですが、XMLHttpReq

  • Greasemonkeyを作る時に気をつけていること (Kanasansoft Web Lab.)

    以前、書こうと思っていて、すっかり忘れていた事を、Ruby会議に参加して思い出したので書きます。 Greasemonkeyのscriptを作る時に、気をつけていることがあります。それは、サイト作成者に対する礼儀です。あるサイトのデザインが酷いと思ったからと言って、『xxxのサイトのデザインが酷いのでデザインを改善するグリモン書いた!』とblogに書きますか?私はこの様な事にならない様に気をつけてます。サイトのデザインが酷いと思うのはもしかすると自分だけかもしれません。ユニバーサルデザイン・アクセシビリティに気を払ってそういうデザインなのかもしれません。実際の所はわからないわけです。どういう事情なのかわからないのに、グリモンを書いて安易にネットに公開という様なことは、私は避けたいと思っています。 このため、サイトを改変する様なuserscriptはあまり実装しません。サイトの改変はしませんが

    os0x
    os0x 2009/07/23
    個人サイトだと多少の配慮があってよいと思うけど、そうでなければさほど気にすることはないかと。
  • 環境変数にIDやPASSWORDを設定しなければならない状況で、ID/PASSWORDをファイルに平文で保存したりシェルの履歴に残したくない (Kanasansoft Web Lab.)

    zshを前提にしているが、問題の解決方法が重要なので、ちょっと記述を変更すれば他のシェルでもできるようになるはず。また、暗号化には「gpg」の共通鍵暗号化方式(対象鍵)を使用している。

    os0x
    os0x 2009/05/07
    履歴に残さないなら setopt hist_ignore_space とか
  • JavaScriptでconcatはもう使うべきではないのかもしれない (Kanasansoft Web Lab.)

    当エントリーは多くの誤りを含んでいます。参考にされる場合は最後の追記部分まで含めて読まれるようにお願いします。 それなりに慣れているはずのプロのプログラマでも、このような勘違いや大失態をすることがあるという教訓として残すために、エントリーの削除や修正はせずに追記のみに留めておきます。 JavaScriptで、配列に要素を追加するメソッドに、push、unshift、splice、concatがある。このうち、配列の後方に要素を追加するのは、(要素を好きな場所に追加可能なspliceを除くと)pushとconcatの二つである。この二つのメソッドは破壊的/非破壊的の違いがあれ、似たような挙動を示す。

  • 『JavaScript:The Good Parts』にツッコミ (Kanasansoft Web Lab.)

    前エントリで、『JavaScript:The Good Parts 「良いパーツ」によるベストプラクティス』が万人向けでないことを書きました。 自分の実力を顧みず、こののベストでない部分をつっこんでいこうと思います。ゴリアテどころかゴリアテの集団に挑んでいくような状態ですね。 さて、全エントリで書いた通り、このは悪いではなく良であり、読む人が読むと良い刺激になるに違いないと思っています。これを契機によりよいJavaScriptの書き方について論議が進むのではないかと期待しています。しかし、対象と思われる層が中級者以上で、初級者が読むと逆に悪になりかねない部分を持っています。勘違いしそうな部分、気になった部分を中心に記述していきます。このため、否定的な内容は沢山出てきますが、上記のような前提ですので、書籍全体がこのような内容が散見されるわけではありません。そして、これを読んでの内

    os0x
    os0x 2009/04/23
  • XMLHttpRequestでファイルをDataSchemeで取得する実験 (Kanasansoft Web Lab.)

    このエントリーの後に問題は解決しbinaryを取得することができました。最後のほうにある「その2」を参照してください。 画像等のファイルのデータをBase64化したDataSchemeでなんとか取得できないかと試してみました。結論からいうと失敗です。ただ、もう少し調査するともしかするとできるようになるかもしれません。しかし、自分の現時点の知識では、これが限界かと思います。もしかすると、問題箇所を誰かが解決してくれるのかもしれないと淡い期待を持って公開します。また、提示するcodeは使い方によってはDoS攻撃と思われてしまうような挙動をします。詳細は後述しますが実行時は注意してください。 自分で開発しているようなサイトの場合、自分でJavaScriptからデータを取得する仕組みを実装すればいいのでここでは考えないことにします。サーバ上の静的なファイルのデータ取得をしたいのは、クロスサイトで実

    os0x
    os0x 2009/04/13
    Firefoxなら overrideMimeType: "text/plain; charset=x-user-defined" で出来るよ。って、Constellation がもう書いてた。
  • 恐怖のGreasemonkey (Kanasansoft Web Lab.)

    有須子の設定を書いてみました。 あわせてご堪能下さい。 「うわっ!だ、だれだ!」 「わたし・・?私は有須子・・。」 「どこから入ってきた!ここは俺の家だぞ!」 「あなたの・・・パソコンから・・・。」 「何をバカなことを言ってる!出て行け!」 「ダメ・・。あなたと・・・一緒じゃなきゃダメ・・。」 「一緒に?一緒に行くわけないだろ!」 「そうかしら・・?」 「え?」 「だってほら・・・、もう、声が変わってきている・・・。」 「・・・。」 「あなたの名前だって、ほら・・・」 「あたしの・・名前・・・?」 「名前を・・・・、言ってみて・・。」 「あたしの名前は・・、有・・須・・・子・・・・。」 「有須子を見た人は・・、みんな有須子になるの・・。それが・・、一瞬だったとしても・・・・。」 「あたしは・・、有須子・・・。」 「さあ・・、行きましょう・・・。」 「どこ・・へ・・・?」 「あなたの好きな・

    os0x
    os0x 2008/06/11
  • JavaScript第5版読書会#4終了しました (Kanasansoft Web Lab.)

    Kanasan.JS JavaScript第5版読書会#4終了しました。 約2ヶ月ぶりのKanasan.JSでした。 参加した皆様、お疲れさまでした。

    os0x
    os0x 2008/05/29
  • 続・全てのtextareaを自動的にリサイズするJavaScriptとGreasemonkey (Kanasansoft Web Lab.)

    はてなブックマークコメントで、再度id:rokuroxから突っ込みが。画像とともに、「全角が半角のちょうど2倍ではないから駄目。」と。意味がやっと理解できました。 全角が半角の2倍ではない件に対して考えられる原因は三つ。あくまで自分の知識の範囲内でありますが。全てフォントのグリフの問題。どれかが原因だと思いますが、手元にWindows環境がないため、的がはずれている可能性もあります。 まず、よくあるパターンとして、font-familyに等幅フォント(monospace)を指定していないため、プロポーショナルフォント(proportional)が使われている点。これは、単純にstyleを指定すれば解決しますが、この手のcodeでそこまで操作していいのかどうかという問題があります。問題というよりも思想かもしれませんが。Greasemonkeyとして実装するのであれば、全site閲覧時に実行さ

    os0x
    os0x 2008/05/23
  • ブラウザの四隅を占有するGreasemonkeyをなんとかしたい (Kanasansoft Web Lab.)

    AutoPagerizeのように、ブラウザ上に何かを表示するタイプのuserscriptがある。とりあえずここではこの種のuserscriptをUserScriptWidgetと呼ぶ事にする。AutoPagerizeのように、ブラウザの表示領域の角に何かを表示するようなUserScriptWidgetが増えてくると四隅の取り合いになる。右上はもうAutoPagerizeが勝ち取った感があるが、他の角はどうなるかわからない。同じ位置に表示されるUserScriptWidgetも出てくるだろうし、何より最大で4つまでしか使うことができない。少しずらして表示させたとしてもいつかは破綻する。今後のためにUserScriptWidgetの表示を管理するuserscriptを作成した。 installすると画面の左上に歯車のアイコンが表示される。このアイコンをクリックするとラジオボタンが表示されるので

  • 1