ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

「マルウェアで盗んだ情報をWebで大量公開」、自分の名前を検索エンジンでチェックしたほうがいい?

2007-05-18 19:44:31 | Weblog

ここのニュース
マルウェア作者の手違い? 盗んだ情報がWebで大量公開
http://www.itmedia.co.jp/enterprise/articles/0705/17/news034.html

によると(以下斜体は上記サイトより引用)

マルウェアを使って盗み出された大量の個人情報がWebサイトに掲載され、誰でも閲覧できる状態になっているという。セキュリティ企業の米Symantecがブログで伝えた。

 Symantecによると、問題を引き起こしているのは「Infostealer.Snifula.C」という新手のマルウェア。感染したコンピュータから情報を盗み出して特定のWebサイトに送信し、マルウェア作者がそのサイトから情報を取得できる仕組みになっている。

 ところが同サイトにはアクセス制限がなく、掲載された情報は誰でも閲覧することが可能。すべての情報に検索エンジン経由でアクセスできてしまうという。

だって。

たしかに、個人情報が、検索エンジンに載ってるとやばいよね。。。
その人の住所とか、出てきちゃうもんね。。
自分の名前を検索エンジンでチェックしたほうがいい?

で、そのニュースでは

マルウェアの作者は盗んだ情報を一般に公開するつもりはなく、手違いでこうなってしまったのだろうが

ってかいてあるけど、いや、わざと、かもよ?
公開して喜ぶ愉快犯かもよ?

ちなみに、ウィリアムのいたずら、自分の本名をGoogle、Yahoo,Gooで検索してみたら。。
同姓同名の違う人がいることを発見(^^;)
でも、自分の住所は載ってなかった。。

。。。そのかわり、すごいサービスを見つけてしまった。。
今度書く。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

開発の初めから順番に書いていってみる その46:プログラミング(8)入出力2 説明。

2007-05-18 16:56:55 | 開発ネタ

 シリーズ「開発の初めから順番に書いていってみる」の続きです。
 設計手順には、要求分析、外部設計、内部詳細設計・プログラミング、単体テスト、結合テスト、総合テスト、運用テスト及び運用とあります。
 現在プログラミングです。
(プログラミング以前は、ここ http://www.geocities.jp/xmldtp/index_kaihatsu.htm

 プログラミングでは決定表と自動生成のお話をします。
 で、今は自動生成なのですが、その自動生成の対象となる入出力について、
 前回その位置づけを考えました。
 今回は入出力の中でも、自動生成の対象となる、「DBとファイル」と「画面」についてです。




■DBとファイル

 入出力において、DBとファイルは、CRUD、つまり、生成、読み込み、更新、削除が問題になります。

●ファイルの場合
とくに、ファイルの場合は、

1.ファイルの読み込み
2.ファイルの書き出し
が重要であり、ファイルがレコード単位になっている場合は、

3.レコードレベルでの読み込み方法
が重要になります。

これは、システムが提供されている関数でも出来ますが、プロジェクトごとにまとまった、入出力方法を提供するほうが、安全です(パフォーマンス上、問題があったときに一括修正しやすい)

●DBの場合
一方DBの場合は、

 ・読み込み(Select)
 ・更新(Update)
 ・追加(Insert)
 ・削除(Delete)

の方法が必要です。JDBCなどで行いますが、プロジェクトごとにまとまった、入出力方法を提供するほうが、のちのちパフォーマンス上、問題があったときに一括修正しやすく、原因が調査しやすい(いっぺんにログを出すなどが可能なので)ので、自動生成したりフレームワーク化したり、共通ライブラリを提供したりします。

 詳しい方法に関しては、自動生成のときに書きます。




■画面に関して

 一方、画面に関しては、

・画面全体をコントロールする部分と
  →こいつが、初期画面を起動する

・各画面ごとの部分
  →1画面ごとに、できる

 の2つの部分にわけたほうが、多数の画面を出したときにやりやすいです。
 また、「各画面ごとの部分」は、画面表示部分と、イベント部分に分かれます。
 各画面部分は、画面部品を並べる形で、ここで、イベント呼び出しのセットをすることもあります。
 イベント呼び出しは、そのイベントの処理を書きます。

 画面全体部分は、初期画面を作るまでと、場合によっては、各画面のイベントディスパッチなどを行うこともあります。
 自動生成は、この3つの部分(画面全体、各画面の画面部分、イベント部分)の全部あるいは一部を自動生成します。

 ただ、実際にJavaの本などをみると、この辺が明確になっていない場合が多いです。なので、本を見ると1つの画面は作れるのですが、複数の場合・・・どーすんの?っていうふうになってしまう。。。かもしれません。




 てなかんじで、まあ、ざっとした説明は終わり。
 詳しいプログラムそのものの話は、自動生成の話のときにかきます。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

プログラムやテストデータを自動生成する方法 その8 DBの例 その3-雛形 ソース

2007-05-18 14:13:09 | Weblog

 雛形ソースを作成し、Excelの仕様書を用意すると、プログラムのソースやテストデータを生成する方法について説明するシリーズ、「プログラムやテストデータを自動生成する方法」です。

 第二回目でインストールをしました。
 それから5回目までで、概要を説明しました
 過去のものに関しては
 ここ http://www.geocities.jp/xmldtp/index_zido.htm
 にリンクしてあります。

 前前回から、それを使った例としてDBについてやってます。
 で、前回、手順をかきました。こんなかんじ。
0.出来ているものを確認する
   ・仕様書の可変部分、固定部分などなど
1.出力ファイルをきめ、そのサンプルを作成する
2.1のファイルから抽象的に書くところを見極め、そこにタグを入れていく
    →これが、雛形ファイル
3.2のタグから、出来ているExcel仕様書に関して、なにか修正が必要なら
  付け足す。


で、0と1については、前回やったので、
今回は、2の「雛形ファイル」についてです。




■抽象的に書くところをきめる

 雛形ファイルをつくるには、サンプルから、抽象的(というか、可変部分と繰り返し部分)をきめます。

 まず、前回のとおり、サンプルは、こんなかんじ
CREATE TABLE userTBL (
  name VARCHAR(50) NOT NULL,
  pass VARCHAR(50) ,
  auth INTEGER ,

  PRIMARY KEY(name)
); 

青が可変部分、下線が繰り返し部分です。

これをタグに置き換えていきます。
なお、仕様書は、以下のものです。





■仕様書の文字を入れる:CELLタグとKETAタグ

 で、雛形ソースのタグのうち、仕様書の文字を入れるのは、CELLタグとKETAタグです。
 CELLタグは、CELLの値をそのままいれるもので、繰り返し部分でも、そうでない部分でも使えます。
 KETAタグは、繰り返しのとき、現在の行の該当桁の内容をいれるもので、繰り返し部分以外意味がありません。

 上記サンプルのuserTBLは、仕様書のB3にありますので、そこには、タグ

   $#$CELL B3$#$

 が入ります
PRIMARY KEYのnameのところは、仕様書のB4にありますので、そこには、タグ

   $#$CELL B4$#$

 が入ります。

 繰り返し部分に関しては、あとで書きます。




■繰り返し部分-REPとREPEND

 繰り返しのところにはREPとREPENDを入れます。なお、タグの後に不用意に改行をいれると、それも繰り返されてしまうので、そのつもりで。
 REPとREPENDタグの間を、改行も含めて、繰り返します。

 上記サンプルの場合、項目定義の
name VARCHAR(50) NOT NULL,
の部分が、仕様書の8行目以降の繰り返しに相当します。なので、REPのあとに繰り返し開始行の8を引数にして、繰り返し開始には

    $#$REP 8$#$

をいれます。

 終わりの判断は、A桁に文字がなかっらたらループ終了なので、

    $#$REPEND A$#$

 を入れます。

 さて、繰り返し項目ですが、
   項目名が、仕様書のA桁 ==>タグだとKETA A
   型がB桁        ==>タグだとKETA B
   NOTNULLがK桁。。ただし、そのまま出せない(>_<!)
となります。なので、項目名と型の部分の繰り返しは

#$REP 8$#$ $#$KETA A$#$ $#$KETA B$#$ (ここにNOTNULL指定),
$#$REPEND A$#$

 で、NOTNULLは、条件部分になります。




■条件分岐IFKETA IFEND(IFCELL IFEND)

 で、NOTNULLのところは、K桁が、○だったら、NOT NULLと出します。
 このように、ある桁がある文字だったら、何と出すというのは、
 IFKETAであらわします。IFENDまで繰り返します。

 なので、さっきのNOTNULLのところは

$#$IFKETA K,○$#$NOT NULL$#$IFEND$#$

となります

 なお、IFCELLというのは、あるセルの値をチェックして、その値だったら出力します。

 なお、これにはELSEもないし、入れ子もだめです。
 この値でなければ、出力しません。




■複数条件(入れ子にしたいようなとき)は、Excelが、がんばる

 なので、もし、たとえば、

   主キーでNOTNULLのときは、コメントに主キーでNOTNULL
   NOTNULLのときは、    コメントにNOTNULL
   NOTNULLでないときは   コメントにNULLOK

 と書きたい場合は、Excelががんばって処理して、IFKETAで値を判定すれば言いように、どこかの桁に、値を書き出します。

 たとえば、P桁とかに、

   主キーでNOTNULLのときは1
   NOTNULLのときは2
   NOTNULLでないときは3

 とかを書き出すように、Excelで関数を書いて、雛形では

$#$IFKETA P,1$#$主キーでNOTNULL$#$IFEND$#$$#$IFKETA P,2$#$NOTNULL$#$IFEND$#$$#$IFKETA P,3$#$NULLOK$#$IFEND$#$

と、全部に文字などを振って、全部の条件を書き上げます。




■なぜ、IFに入れ子をいれていないで、値だけで判断しているか

 こうしているのには理由があります。IFに条件文を認めてしまったり、入れ子にしてしまうと、それはプログラムと同じになります。そうすると、雛形で複雑な条件を書かれてしまうと、雛形が悪いのか、仕様書が悪いのか、特定しにくくなります。

 さらに雛形は、再利用されることもありますし、多くのプログラムが参照することもあります。そうすると、修正が他に影響されると困ります。
 複数の条件文がかけるようにしてしまうと、ここに書いたように、いろんな条件、想定していない条件が成立してしまう危険があります。

 そのため、雛形ソースを見れば、桁やセルの値一致により、複数条件あっても1つしか成立しない、独立性の高い書き方にしています。
 そして、その代わり、複雑な条件の処理は、Excelのほうでやってね、Excelで複雑な条件を整理して、IFKETAやIFCELLで値を見れば分かるように、いろいろっがんばってね!というように役割分担しています。




■で、まとめると

いままでのをまとめると、こういう雛形になります。
CREATE TABLE $#$CELL B3$#$ (
$#$REP 8$#$  $#$KETA A$#$ $#$KETA B$#$ $#$IFKETA K,○$#$NOT NULL$#$IFEND$#$,
$#$REPEND A$#$
  PRIMARY KEY($#$CELL B4$#$)
); 




ということで、雛形が出来たので、次回は、3のExcel仕様書についてです。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

圧縮率1000分の1の画像圧縮って(@_@!)

2007-05-18 10:21:53 | Weblog

 日本証券新聞5月18日の3面、「テクノマセ 大幅続伸」っていう記事に書いてあるんだけど、テクノマセマティカルが、圧縮率1/1000画像圧縮を実検する仕組みを開発したんだとか・・・

ここのプレスリリース

テクノ マセマティカル、
オリジナル・エンコーダ/デコーダ「DMNA-Vシリーズ」のIPコアを開発
―圧縮率1/1000(*1)の驚異的な画像圧縮を実現―

http://www.tmath.co.jp/html/news/news20070516.html


によると(以下斜体は上記サイトより引用)

テクノマセマティカルは、同社の開発した数学的手法を駆使した革新的演算アルゴリズム「DMNA」(Digital Media New Algorithm)を用いて、オリジナルデータの1/1000という驚異的な圧縮率を実現する オリジナル・エンコーダ/デコーダ「DMNA-Vシリーズ」を開発いたしました。


1000分の1って。。。

で、その理由は。。


*革新的なアルゴリズムDMNAとは、画像や音楽の圧縮伸張処理で使われているDWT(離散ウェーブレット変換)、DCT(離散コサイン変換)、算術符号、ME(動き検出)、デブロッキングフィルタ等の負荷が重い演算処理を下記の手法を組み合わせることで、演算の負荷を大きく減らし、画質や音質を損なうことなく高速処理することを可能にする計算手法です。


1. 因数分解を活用して、計算を簡略化。演算回数を大幅に削減させます。
2. 折り返し理論を活用して、数値空間を狭くして演算回数を削減します。
3. 演算式を階層化し、優先度を付けて必要な計算だけを実行します。
4. 複雑な計算式を、階層化することによって簡易化します。
5. それぞれの関数を、効率的に変換します。


ちょっちまった。。
DCT(離散コサイン変換)って、JPEGにつかわれてるよねえ。。
DWT(離散ウェーブレット変換)って、JPEG2000につかわれてるよねえ。。

あれって、ひょっとして、この手法を使うと簡易化できるの?
そー言うライブラリが出てきて、いまのJPEGが早く表示できるとなると、
むしろ、そっちのほうにきょうみ。。。

いや、1000分の1のほうがすげーな(^^;)


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする