2008-03-01から1ヶ月間の記事一覧
次のようなコードを書いたら、IE6で無限ループに! // テスト用オブジェクト function Test() {} Test.prototype = { a: function() {}, b: function() {} } var test = new Test(); // for .. inでループ → IE6だと無限ループに! for ( var i in test ) { do…
URL変更に対応したClickClient v0.0.2をリリースしました。→CLICK Client変更点は、接続先WebサービスのURLのみ。(→クリック証券 - URL完全移行のお知らせ)あと約定情報取得のテストケースをちょっと直しました。 更新方法 すでに導入済みの方は、以下のコマ…
物理/データリンク層のパケットをカプセル化して転送するトンネリングプロトコル。拠点-クライアント接続でのVPNで使われる。似たような機能のIPSecは拠点間接続向き(ということは、きっとこっちのほうがクライアントの設定が簡単なんだろうな。)。SSLは同じ…
ローカル環境にtreeが入っていなかったので、rubyで書いてみました。 # #== ディレクトリ階層をツリー表示する。 # def tree( path, stack=[], has_next=false, &block ) puts stack.join << (has_next ? "├" : "└" ) << File.basename( path ) if File.dire…
Cygwinから、カレントディレクトリをエクスプローラーで開く一行。 $ explorer.exe "$(cygpath -wa `pwd`)"仕組みは以下。 pwdでカレントディレクトリを取得。 cygpathでCygwinのパスをWindowsのパスに変換。 変換したパスを引数として、エクスプローラーを…
rubyの関数ではreturnを省略できますが、個人的には明示する方がよいかなと思っています。理由は以下の2つ。 何が返されるのかが、わかりやすい。 returnに続く処理を読めば、何が返されてくるか一目瞭然です。 というか、returnがないと、そもそも戻り値を…
可変長引数の使い方。Javaのとだいたい同じ感じです。 引数に「*」をつけると可変長引数となります。 可変長引数とされた場合、関数呼び出し時に指定された引数のうち、普通のをのぞいた残りの引数が配列に格納されて関数に渡されます。 関数内では可変長引…
前に作ったmethod_missingを使ったインターセプタですが、これには「インターセプタ適用対象のオブジェクト内で呼び出した自身のメソッドにインターセプタが適用されない」という問題があります。まぁ、わかっていたことですが、それだと困る状況に陥ったた…
JavaScriptで動的に作成したエントリに、はてなスターをつけられるようにするサンプルです。 HatenaStar.jsを取り込むと、ドキュメントロード時に指定されたルールに従ってはてなスター対象となるエントリが検索され、☆追加ボタンや☆数の表示が行われますが…
データやデバイスのアクセスコントロールを行い、権限のないユーザーからの不正利用を防ぐ。情報漏えい対策の基本。制御対象となるリソースを「オブジェクト」、アクセスする主体を「サブジェクト」と呼ぶ。 制御方式 制御方式として以下がある。 任意アクセ…
wgetでできます。 「-r」オプションを指定すると、指定サイトのリンクを辿ってファイルをダウンロードしてくれます。 「-l」でリンクを辿る深さを指定。 「-k」を指定すると、絶対指定のリンクを相対指定に変換してくれます。 wget -r -k -l 1 <取得するサイ…
コマンドのグレーアウト機能を作るときに、JavaのActionみたいな仕組みがあれば便利そうだな、と思って作ってみました。 Actionってなに? コマンドを実行した時の処理内容(関数)と、コマンド実行可/不可といったコマンドのプロパティをまとめてオブジェクト…
jarのdiffを取る関数を書きました。バックアップの検証で使う予定。コマンド並べてるだけじゃん、とかいうなー! diff_jar(){ echo "diff "$2/$1" "$3/$1 mkdir ./a mkdir ./b cp $2/$1 ./a cp $3/$1 ./b cd ./a jar xvf $1 > /dev/null rm $1 cd ../ cd ./b …
かけ算で1発。 def make_indent( depth ) " " * depth end サンプル。 puts make_indent(3) puts make_indent(2)実行結果です。(わかりにくいね・・)
常識レベルのネタですが、たまに使うと忘れてたりするので。よく使う?ビット演算を、次に示すファイルの操作権限設定を例としてまとめてみます。 ファイルに対する操作権限を3ビットの数値で記録する。 読み込み権.. 1ビット目, 書き込み権..2ビット目 とす…
アクセスしてきたユーザーごとにセッションIDを発行し、それとユーザー独自のデータを関連付けて管理する。(ユーザー識別情報そのものをやり取りしていると、個人情報の漏洩リスクが高まるため。) セッションIDを盗聴や推測により奪取されると、セッションハ…
問題発生時の原因調査や分析のため、システムのログを残す。最近はセキュリティ監査等でも利用されるらしい。 ログ収集時の留意事項 時刻の同期 ログを出力する機器の時刻を同期しておくこと。複数のログを結びつけて進入経路を特定とかできるようにするため…
フルバックアップ 差分バックアップ 増分バックアップ がある。 フルバックアップ 完全なコピーを取る ○リストアが容易 ×バックアップに時間がかかる。 差分バックアップ 前回のフルバックアップからの差分のみバックアップする。 リストア時は、以下を行う…
おなじみの、ディスクの高速アクセス/可用性向上技術。 RAID 0 複数のディスクにデータを分散して書き込む ○データアクセスの高速化が可能 ×データの可用性は向上しない RAID 1 複数のディスクにデータを2重に書き込む ○データの可用性向上 ×データの入出力…
指定エントリのはてなスター数を一括取得するクラスを書きました。 require 'rubygems' require 'httpclient' require "json/lexer" require 'uri' module HatenaStar BASE_URI = "http://s.hatena.ne.jp/" # javascriptのencodeURIComponentの挙動にあわせ…
アプリケーション層のデータでフィルタリングが可能なファイアウォール。 CookieやHTTPプロトコル、HTTPヘッダ、ボディの内容をチェックし、SQLインジェクションや、XSSによる攻撃を防ぐことも可能。リバースプロキシとして動作する。ロードバランサやSSLア…
昔書いたリスナ登録ユーティリティをContainerJS version 0.3.0にあわせて修正。Typeを使ってちょっと短く書けるようになってます。 サンプル 簡単に解説。 モデル、ビュー、コントローラからなる簡単なプログラムです。 ビュー→モデルの依存でオブザーバー…
Miiをリニューアルする予定。 はてなスターに対応。 いかしたねこ写真に星がつけられるようにする。 星の多いねこ写真を表示できるようにする。 デザインを一新 よりシンプルに。 機能削減 使われてなさげな機能はカットだ! ということで新デザイン案を考え…
取引や手続きが行われた時刻や文書が作成された時刻を証明する仕組み。 存在証明 タイムスタンプの時刻に電子データが存在していたことの保証。 完全性証明 タイムスタンプ発行後にデータが改変されていないことの保証 が可能。 タイムスタンプの追加 タイム…
侵入検知システム(IDS) ネットワーク監視型(NIDS) ホスト監視型(HIDS) 侵入防止システム(IPS) がある。 NIDS (Network Intrusion Detective System) ネットワークを監視する侵入検知装置。NICのプロミスキャスモード(無条件受信モード)を利用して、接続し…
次のような、オブジェクト入出力クラスがあって、 // フォルダ操作サービス interface FolderService { // ID(オブジェクトを示すパスを持つクラス)を指定してフォルダを得る。 Folder get( ID id ); // フォルダを登録する。 void put( Folder f ); } // フ…
コンピュータネットワークとその外部との通信を制御し、内部のコンピュータネットワークの安全を維持することを目的としたソフトウェアまたはハードウェア。チェックするパケットに応じて、次の3つに大分される。 パケットフィルタ型 サーキットレベルゲート…
JRuby1.1ではクラスに設定されたアノテーションを直接参照する方法が用意されていない様子。includeしたJavaクラスの「java_class」関数で「Java::JavaClass」というClassのラッパが返されますが、JavaのClassが持つget_annotationとかの関数は持っていませ…
Javaのソースコード自動生成が密かに?ブームです。モデルクラスとかサービスのクライアントスタブクラスとかお約束なコードは、がんがん自動生成して楽したい!ということで、Ruby+ERBでJavaBeanを作るプログラムは前に作ったのですが、あれは「yamlの定義フ…
1回の認証で複数のサーバーサービスにアクセスできるようにすること。これによりユーザーが複数のアカウント/パスワードを管理する必要がなくなり、利便性の向上が期待できる。 実現方法としては次の2つがある。 エージェント型 リバースプロキシ型 エージェ…