2007年12月11日火曜日

Google Map , Calendar , Sketchup

Google Map APIのSign up for a Google Maps API key. で表示するドメイン用の API Key を取得する必要があった?
現在は  Google マップを自分のサイトに貼り付けよう にしたがって、貼り付けるだけで表示は可能。


カレンダー

sketchup
 Video チュートリアル
 sketchupを楽しもう
 レイヤーの変更

Sketchup のデータを Second Life にもっていくには blender 経由、あるいは Google Sketchup -> Second Life export にあるように ruby APIを使うとある程度可能な様子。Ruby スクリプトにサンプルがある。


Lib PC Parts
Google Sketchup Paradise


背景を透明にする方法(Photoshop Elements)

2007年11月29日木曜日

Javascript

Stylesheet との関係で id と class の使い分けがわからなかったので検索してみた。
個別の“要素”(タグ)に class属性 を指定し、そのクラスをセレクタとすることで、よりきめ細かなスタイル設定ができるようになっています。また、id属性とスタイルを対応させれば、ドキュメントの中でそのidを持つ“要素”だけに適用されるスタイルを定義できます。
確かに「JavaScriptは邪道」という意識はあった。
ここでみつけた jQuery を使ってみたが、これを使うとかなり楽になる様子。日本語の解説もあった。
カレンダーなどもjQueryベースのものがある。これで入力はできるが、検知の仕方やら
   $('#example').datepicker();
   $('#example').change(function(){
   // alert ("test") ;
   $("<div><p>" + $(this).val() +"</p></div> ").appendTo("body");
   });
月末を求めたり文字列の置換行追加追加したエレメントに文字表示 など基本的なことも確認しないと。 再入門。 FirebugでDebugできる。


JQuery Memo
$("#sl_avatar").load("/search",{});
これにより POST になる。
省略すると GET で http 405エラーとなるケースがある。


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript" src="jquery-1.2.1.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("input.buttonBslideup").click(function(){
alert("test");
$("#sl_avatar").load("./test2.html");
});
});
</script>
</head>
<body>
<input type="button" value="buttonBslideup" class="buttonBslideup" />
<div id="sl_avatar"> div sl_avatar</div>
</body>
</html>

Bloger への html 入力 

JQuey  Get the input field's value with the name of 'bar':
 $("input[@name=bar]").val();

2007年10月30日火曜日

Innodbが無効でも type=innodb で create table できてしまう

C:\xampp\mysql\bin>mysql -u root -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.45-community-nt MySQL Community Edition (GPL)
mysql> create table test ( c1 int ) type=innodb ;
Query OK, 0 rows affected, 2 warnings (0.01 sec)

ただし、よくみると警告が表示されている。
実際に
 start transaction ;
 insert into test set c1 = 1 ;
 rollback ;
しても rollback が効かない。
Innodb を有効にして
 alter table test type=innodb ;
することでトランザクションが使えるようになる。

my.conf を変更して有効にする(mysqlの再起動が必要)
#skip-innodb
# Uncomment the following if you are using InnoDB tables
innodb_data_home_dir = C:/xampp/mysql/data/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = C:/xampp/mysql/data/
innodb_log_arch_dir = C:/xampp/mysql/data/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
set-variable = innodb_buffer_pool_size=16M
set-variable = innodb_additional_mem_pool_size=2M
# Set .._log_file_size to 25 % of buffer pool size
set-variable = innodb_log_file_size=5M
set-variable = innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=1
set-variable = innodb_lock_wait_timeout=50

2007年10月26日金曜日

データをグラフで表示する



PHP グラフ」で検索してPHPでフラッシュのグラフを作る「PHP/SWF Charts」をみつける。日本語のデータは表示対応していないようであるが、結構使いやすそう。charts.php ファィルの添付も説明もなくなったような気がするのだけれども...つい何時間か前まとはサイトの内容もかわっている? 製品のサポートというよりは PHP のサポートになることを避けたのか?

2007年10月23日火曜日

LlHTTPRequest で Basic Authentication

LlHTTPRequest 実際にためしてみると、結構動作する。
Basic Authentication もここをみたらできた。なんだか懐かしい書式。そういえば、10年以上前に使ったことがある。 http://un:pw@xxxx.com 形式。

しかし、slbuzz.com[teleport] の腕時計は怖い。

2007年10月20日土曜日

100秒で20回

実際に試してみればすぐに気がついたことかもしれません。

http://rpgstats.com/wiki/index.php?title=LlHTTPRequest 

HTTP requests made using llHTTPRequest are throttled based on the script owner and region. Requests are throttled to a maximum of 20 requests per 100 seconds.

それから日本語の表示にはURLエンコードが必要
リンデンスクリプトの日本語表示についてとURLエンコードフォーム

2007年10月13日土曜日

XAMPP

新しいマシンに wiki を入れるために PHP をインストール。
最近は一括で導入できるはずなので apache mysql install で検索し XAMPP を見つけ、これを利用することにした。

途中 FileZilla が導入リストにあった。これは知らなかったが、選択することにした。
Apache 2.2 が入ってしまったが、 Port80 が利用されている
The Apache service named reported the following error:>>> (OS
10048)通常、各ソケット アドレスに対してプロトコル、ネットワーク アドレス、またはポートのどれか 1 つのみを使用できます。 :
make_sock: could not bind to address
0.0.0.0:80

とかで起動できない。 netstat -a でみても使われていない。いろいろとサービスを停止してみたが、うまくいかず、結局、マシンの再起動により解決した。 多分、 Skype が原因だと思う。そういえば以前も似たような経験をしたことがあった。

http://localhost/ にアクセスすると http://localhost/xampp/ となり phpmyadmin なども即動作するようになった、セキュリティのところでエラーとなった。
Warning: include(lang/jp.php) [function.include]: failed to open stream: No such file or directory in C:\xampp\security\htdocs\index.php on line 13
Warning: include() [function.include]: Failed opening 'lang/jp.php' for inclusion (include_path='.;C:\xampp\php\pear\') in C:\xampp\security\htdocs\index.php on line 13

同じバージョンの作業ログから単純な不具合である様子だが、うまくいかない。どうやら Meadow で jp.php ファイルを開いて、書き込む際に ja.php としてしまっていたようだった。素直にファイルコピーするべきだった。

このセキュリティ画面で mysql の root のパスワードと以下を設定
成功: XAMPPのディレクトリ制御が設定されました!全ユーザのデータは、以下のファイルに格納されました:

XAMPPのディレクトリ制御 (.htaccess)
innodb を有効にする c:/xampp/mysql/bin/my.conf の skip-innodb をコメントアウトして以下のコメントアウトを解除し、mysql を再起動
skip-innodb
# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = C:/xampp/mysql/data/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = C:/xampp/mysql/data/
#innodb_log_arch_dir = C:/xampp/mysql/data/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#set-variable = innodb_buffer_pool_size=16M
#set-variable = innodb_additional_mem_pool_size=2M
# Set .._log_file_size to 25 % of buffer pool size
#set-variable = innodb_log_file_size=5M
#set-variable = innodb_log_buffer_size=8M
#innodb_flush_log_at_trx_commit=1
#set-variable = innodb_lock_wait_timeout=50

ちなみに apache は以下
"c:\xampp\apache\bin\apache.exe" -k runservice

Medow 設定メモ
  • .htaccess を編集するために別マシンから C:\Meadow\ および ~/.emacs を COPY。
  • 環境変数 HOME 設定し、 C:\Meadow\1.15\bin\meadow.exe のショートカットを作成。

2007年10月8日月曜日

Video on Demand

Wikipedia で ラリー・エリソン の項を読んでみるとなかなか面白い。
カリスマ」は面白い本だと思うが、 Amazon で中古でかなり廉く買える様子
しかし、氏が一般に有名になったはじめは彼が個人的に投資したマッシブパラレルのマシンが VOD に使える、として VOD を実際に実現したことだったと思う。

http://www.caminos.jp/history.html より
■オンデマンドテレビの歴史

テレビは放送時間が決まっていて好きなときに番組を見ることはできません。見たいときにいつでも映像が見れたらすばらしいことです。こうした背景からビデオオンデマンド(VOD)システムへの挑戦は始まりました。
(オンデマンドテレビの一般用語はビデオオンデマンドなので解説はビデオオンデマンドとします。)

■最初の実験VOD システムの最初の実験は1990年頃香港テレコムによって始められました。この VOD システムは技術的に未熟で2000年頃には中止されました。

■大規模実験1994年12月、フロリダ州オーランドでタイムワーナーは4,000世帯に対して VOD システムの大規模実験を行いました。Full Service Network(FSN) と名付けられたこのサービスは18ヶ月間提供されました。FSN はビデオオンデマンド、ショッピング、ゲーム、番組ガイドなどが主要サービスでした。ただ FSN は高価なシリコングラフィックスのインディをベースにしたセットトップボックス(STB)や ATM をベースにした通信網を利用したことなど経済的には採算を度外視したシステムでした。またビデオオンデマンド以外のサービスはその後急速に普及したインターネットに取って変わられました。

■電話会社の挑戦FSN が計画されていた当時米国では60%以上の家庭にケーブルテレビが普及していました。電話会社は VOD システムを商用化すればケーブル会社に対抗できると考えました。1994年初め、米国電話会社ベルアトランティックなどベル系4社は電話線を利用して家庭まで映像を配信しようとして Oracle に VOD システムを発注しました。VOD システムの仕組みは電話線を使い ADSL で1.5Mbps の帯域を確保して MPEG1
のビデオを家庭のテレビにオンデマンドで提供しようとするものです。ビデオサーバから配信されるビデオストリームはテレビに接続するためのセットトップボックス(STB)でデジタル情報から映像情報に変換されます。Oracle は並列コンピュータをサーバに、ビデオサーバのソフトは自社開発し、STB 開発は日本のパートナー(パイオニア、京セラ)に委託しそれぞれがプロトタイピングを完了し通信回線を介して VOD システムが動き出す寸前にまでなりました。

■通信法電話会社のビデオ配信計画に危機感を抱いたケーブル業界は電話会社のビデオ配信を中止させる方法はないかを検討しました。その結果法律論争で電話会社の計画を中止させることにしました。当時の法律は1934年通信法で規制されていましたので電話会社は「他人の通信の媒介」のみが許されていたは時代でした。自己の情報(ビデオコンテンツ)を通信する VOD システムは明らかに1934年通信法違反でした。そのためケーブル会社は政治家に積極的なロビー活動を行い、電話会社のビデオ配信は違法であると政治的に判断させるに至りました。その結果、電話会社によるビデオ配信計画は中止となりました。

■その後1934年通信法は1996年に改正され電話会社によるビデオ配信は違法ではなくなりました。違法性は消えたものの VOD システムの課題は10年以上経っても解決されてきませんでした。

2007年10月1日月曜日

Developer Suite 10g

JDeveloper から Forms builder, Report, Designer まで全部インストールされた
早速 XE をターゲットに Forms を動かしてみた。
C/S モードでの実行はできなくなっている様子。
C:\DevSuiteHome_1\j2ee\DevSuite\startinst.bat 
により Start OC4J Instance ( PORT:8898 )の起動が必要


Oracle Developer Suite 10g (10.1.2.0.2) for Microsoft Windows
http://www.oracle.com/technology/software/products/ids/htdocs/101202winsoft.html

Oracle Developer Suite 10g Release 2 (10.1.2) Documentation
http://www.oracle.com/technology/documentation/devsuite.html


下記の不具合に遭遇 
remove the timstamp datatype が必要な様子
Re:FRM-10095: Assertion failed in iewbdbc_oracle_to_id
http://forums.belution.com/en/oracle/000/005/38.shtml

2007年9月27日木曜日

2007年9月16日日曜日

Second Life と Oracle

上海のOOW で簡単なデモをやっていたらしい。
OracleのBI製品をSecond Lifeの世界と接続し、Second Life内での取引状況を可視化するものだ。このシステムはSecond Lifeが用意するWeb Service APIを通じてBI製品へ情報を取り込んでいるもの。
SLからデータの出力はできそうだが、外部からの入力にはかなり制限がありそう。QucikTimeの動画にして llParcelMediaCommandList など使用すれば検索結果が表示されるかも?しれないが。  
(QuickTimeだけでなく インタラクティブでない.swf は対応)

CGI で http Server と Oracle を連携しだした頃の騒ぎを思い起こさせる。
実際に API を検索してみたがExchange Risk API ,Registration API くらいしかまだここでは公開されていない?  IBM の Sametime と Second Life の連携例があった。
いやいや LSL はすごく進んでいる。(日本語訳もあり)

LlHTTPRequestでの検索がいい。
ジュークボックスは検索の追加キーとしてメモ
これCD-ROM FONT は1989年か

2007年9月12日水曜日

監査設定メモ2

**ファイングレイ監査設定 (FGA) サンプル
- 9.2 より利用可能 ( Enterprise Edition のみ)
- SQLも取得可能であるがパフォーマンスに影響がでるので注意

execute DBMS_FGA.ADD_POLICY ( object_schema => 'SCOTT', object_name => 'EMP',
policy_name => 'SCOTT_EMP_AUD_POLICY_SAL', audit_condition => '1=1',
 audit_column => 'SAL');

EXECUTE DBMS_FGA.DROP_POLICY( object_schema => 'SCOTT', object_name => 'EMP',
 policy_name => 'SCOTT_EMP_AUD_POLICY_SAL');

execute DBMS_FGA.ADD_POLICY ( object_schema => 'APPLSYS', object_name =>
 'WF_DEFERRED', policy_name => 'APPLSYS_WF_DEF', audit_condition => '1=1');

EXECUTE DBMS_FGA.DROP_POLICY( object_schema => 'APPLSYS', object_name =>
 'WF_DEFERRED', policy_name => 'APPLSYS_WF_DEF');


*** FGA監査ログの確認
select * from dba_fga_audit_trail ;

*** FGA監査ログの削除
connect sys as sysdba
truncate table fga_log$ ;

*** FGA監査設定の確認
select * from fga$ where enable_flag = 1 ;

select pname , o.name , o.owner# , username
  from sys.fga$ f, sys.obj$ o , dba_users u
 where f.obj# = o.obj# and o.owner# = u.user_id ;

監査設定メモ

デバッグで監査機能が有効であったので作業用のメモ
** 標準監査設定 Audit
*** 初期パラメータの変更
- sys でログインし、パラメータ変更後、再起動が必要
alter system set audit_trail = true scope=spfile ;

*** ログイン監査
AUDIT CREATE SESSION BY scott, apps

*** 監査設定
-監査設定は次のセッション(ログイン)から有効
-テーブル名を指定した監査はすぐに有効
audit select table, update table , insert table , delete table by apps by
access ;
audit execute procedure by apps by access ;
*** 監査解除
-監査解除は次のセッション(ログイン)から有効
-テーブル名を指定した監査はすぐに有効
noaudit select table, update table ,insert table , delete table by apps ;
noaudit execute procedure by apps ;

*** 監査証跡(監査ログ)の確認
select * from dba_audit_trail ;

*** 監査証跡(監査ログ)の削除
connect sys as sysdba
truncate table aud$ ;

*** 設定内容の確認(解除の確認)
select count(*) from sys.dba_stmt_audit_opts ;
select count(*) from sys.dba_priv_audit_opts ;
select count(*) from sys.dba_obj_audit_opts
where ( ALT like '%A%' or ALT like '%S%' )
and ( AUD like '%A%' or AUD like '%S%' )
and ( COM like '%A%' or COM like '%S%' )
and ( DEL like '%A%' or DEL like '%S%' )
and ( GRA like '%A%' or GRA like '%S%' )
and ( IND like '%A%' or IND like '%S%' )
and ( INS like '%A%' or INS like '%S%' )
and ( LOC like '%A%' or LOC like '%S%' )
and ( REN like '%A%' or REN like '%S%' )
and ( SEL like '%A%' or SEL like '%S%' )
and ( UPD like '%A%' or UPD like '%S%' )
and ( REF like '%A%' or REF like '%S%' )
and ( EXE like '%A%' or EXE like '%S%' )
and ( CRE like '%A%' or CRE like '%S%' )
and ( REA like '%A%' or REA like '%S%' )
and ( WRI like '%A%' or WRI like '%S%' )

2007年9月5日水曜日

コストとルール

Oracle EBS でも CBO が 11i よりサポートされていて、さすがに Cost Base Optimizer FAQ E-Business Suite 11i よりサポートされたCost Base Optimizerに関するFAQをまとめた資料 があった。

    いろいろと参考になる
  • Q. ANALYZEコマンドとFND_STATSパッケージの違いは何ですか ?
  • A、 FND_STATSは、統計情報を収集するためにDBMS_STATSパッケージを使用しています。 DBMS_STATSは表の統計情報をパラレルで取得するため、Analyzeコマンドを使用するよりも高速です。 しかし、DBMS_STATSを使用しても、索引の統計情報はシリアルに取得します。

確かに新しい機能を使おうとしたらコストベースにしないといけないのはよくわかるけれども、もともとコストしかサポートしていない DB2 をみているとホントにコストがいいのかどうか、ある程度のサイズのデータベースであればルールベースで問題ないことが多い。この場合、DBA の作業は単純に増えるだけとなる。

それから Oracle も 10g からは本当に CBO だけのサポートになった。

参考URL メモ
http://www.int21.co.jp/pcdn/oracle/article/optimizer.html
http://biz.rivus.jp/class_performance_tuning.html

2007年9月4日火曜日

ハードパースとソフトパース

バインド変数は Oracle のツールを利用していると、知らずに利用していたりするが、これを使用しないと無駄なリソースを使い、ひいてはパフォーマンスダウンにもつながってしまう。

RDBMS は SQL により指示を与えられると、どのように値を検索するかまず考える。これがハードパース。
バインド変数を利用しないと where句の条件が少し違うだけで、また考えてしまう。
一度、似たような SQL をどう検索するか、考えた結果を憶えておいて、これを利用するのがソフトパース。

このあたりに詳しい仕組みが説明されている。

HARD PARSEの発生の有無によってリカーシブコールの発生回数に違いが現れています。
...
なお、データの偏りが大きく、ヒストグラム統計情報を取得している場合には、WHERE条件をリテラルで指定した方がよりよい実行計画が選択される可能性が高くなります。

なるほど、なんでも使えばいいというものではない、何事も。
ちなみにリカーシブ(再帰)コールとは、 Oracle などは自分の内部情報も
テーブルにもっているので SQL で検索する。つまり SQL を実行するために、さらに内部で自動的に SQL が発行されている。

2007年9月1日土曜日

SQLインジェクション

というと、価格.com の事件が有名。

「価格.com SQL」で検索してみると当時の惨状とこれに対する経営者への非難の様子がわかる。
チーフ・オペレーションズ・エンジニア などという肩書きの技術者がいるところは、日本どころか世界でもまれかもしれないが...

技術的な内容はこのあたりでよく解説されているが、バインド変数を使用しているとこうした攻撃を防ぐことができる。

けれども mod_plsql みたいなところに脆弱性が潜んでいると難しい。
もっとも危険を避けるのであれば Internet ではこうしたものは使わないのが経験あるエンジニアなのかもしれない。

2007年8月31日金曜日

そもそも内部統制とは

そもそもエンロンの粉飾がきっかけで内部監査の強化がすすんだ。

現地法人あるいは地方の拠点に権限委譲する。そのためにコンピュータ・システムでお金の使い方をしっかり本社で管理する。従って、このシステム自体もきちんと監査して改竄されないようにしておかなければならない。

しかし、日本企業の場合、権限委譲は中途半端でお金の使い方も人間系の信頼関係の監視下のもとで管理されている。従って本格的なシステムは導入・運用されておらず、よって、この監査を行っても実はあまり意味がない。

中国への日本企業の進出失敗の原因についてかかれた記事でこのような指摘を読んで、これが和製SOX法の違和感の原因なのかと妙に納得した。

バインド変数


バインド変数はマニュアルでみたことはあったが「Oracle の PL/SQL などででてくる変数のこと」程度の認識しかなかったのだが...   

 select * from emp where eno = :1 ;

さて、いくらがんばってSQLを捕まえても、バインド変数が使われていたらどの個人情報を検索されたのかわからない。

SQLを捕まえたい

昨今は内部統制でやれ監査だ、セキュリティだ、と騒がれてきている。これと個人情報の漏洩問題が絡んで事態は複雑化してつつある。

個人情報が格納されているのはデータベースで、このデータベースを検索するのはSQLであるので、SQLをすべからく保存しておきたい、という気持ちはだけはよくわかる。

でもデータベースのレベルでこれをやるのは無謀のような、そういえば何年か前の年金未納問題騒ぎは検索履歴はきっとアプリケーションのレイヤで検索履歴をもっていたのではと思っていたら、通信レイヤだった模様。

個人情報の漏洩
2004年3月から社会保険庁が保有する年金未納情報がマスコミで報道され、職員の個人情報の漏洩が疑われたため調査が実施され、同年7月に321名の職員の業務目的外の閲覧行為が明らかになった。

その後、2004年1月から12月までの期間における職員の業務目的外の閲覧行為について、2005年3月に全職員を対象に自己申告調査を行った結果、1,535名(2004年7月の処分者321名を含む)の閲覧行為、オンライン通信履歴の記録をもとに調査を行った結果、1,574名の閲覧行為が明らかになった

Swift UI チュートリアル Loading watchOS が終わらない?

Loading watchOS が終わらない? ディスク容量の残量が少ないので不要なシュミレーターを削除したとこころ watchOSのものが全部なくなってしまっていた。 WatchOS を削除して再度インストールしても復活せず。 Create a new simulator で ...