<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/sakaj/">
    <title>sakaj @Wiki</title>
    <link>http://w.atwiki.jp/sakaj/</link>
    <atom:link href="https://w.atwiki.jp/sakaj/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>sakaj @Wiki</description>

    <dc:language>ja</dc:language>
    <dc:date>2009-01-15T04:02:20+09:00</dc:date>
    <utime>1231959740</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/sakaj/pages/24.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/sakaj/pages/10.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/sakaj/pages/21.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/sakaj/pages/23.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/sakaj/pages/22.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/sakaj/pages/20.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/sakaj/pages/19.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/sakaj/pages/18.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/sakaj/pages/15.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/sakaj/pages/5.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/sakaj/pages/24.html">
    <title>ワープロモード</title>
    <link>https://w.atwiki.jp/sakaj/pages/24.html</link>
    <description>
      読書管理&lt;br /&gt;&lt;a href=&quot;http://rec.morphexchange.com/&quot;&gt;rec&lt;/a&gt; Recのタグ 管理 Webサービス Webアプリケーション
無料 読書 音楽 アイテム 読書管理 音楽管理 アイテム管理 http://www.yakinikutengoku.com/chiyoda.html
http://www.yakinikutengoku.com/chiyoda/taishou/index.html
http://8929.jp/SHOP/m14.html    </description>
    <dc:date>2009-01-15T04:02:20+09:00</dc:date>
    <utime>1231959740</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/sakaj/pages/10.html">
    <title>Java</title>
    <link>https://w.atwiki.jp/sakaj/pages/10.html</link>
    <description>
      - 実行中のメソッド名を取得する。
new Throwable().getStackTrace()[0].getMethodName();

javascript:document.cookie;

- プレースホルダ
String year = yyyy.format(selectedDate);
String month = MM.format(selectedDate);
String date = dd.format(selectedDate);
Object[] dateArgs = { year, month, date };
MessageFormat form = new MessageFormat(&quot;{0}年{1}月{2}日&quot;); 

- e.printStackTrace?()の文字列を取得する
StringWriter stringWriter = new StringWriter();
ex.printStackTrace(new PrintWriter(stringWriter));
String message = stringWriter.getBuffer().toString();

- ソースをShift_JISで書いて、EUC-JPで出力するってこと
&lt;%@ page contentType=text/html; charset=EUC-JP&quot; pageEncoding=&quot;Shift_JIS&quot; %&gt;

*Javaから、WEBブラウザを起動(Windowsのみ)
Runtime.getRuntime().exec( new String[] {
	&quot;rundll32.exe&quot;,
	&quot;url.dll,FileProtocolHandler&quot;,
	&quot;http://jp.sun.com/&quot; 
});

- WEBアプリケーションのルートを取得してパスを生成する
String root_path = this.getServletContext().getRealPath(&quot;/&quot;);
String file_path = root_path + &quot;hoge.dat&quot;


- Set-Cookie: UserName=lightbox
Cookie UserName = new Cookie( &quot;UserName&quot;, &quot;lightbox&quot; );
response.addCookie( UserName );


- DOM取得
	public Document getDocument( String xml ){
		try {
			// ドキュメントビルダーファクトリを生成
			DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance();
			// ドキュメントビルダーを生成
			DocumentBuilder builder = dbfactory.newDocumentBuilder();
			// パースを実行してDocumentオブジェクトを取得
			System.out.println(getTextXml());
			Document doc = builder.parse( new ByteArrayInputStream( xml.getBytes(&quot;UTF-8&quot;) ) );
			
			return doc;
			// ルート要素を取得（タグ名：message）
			Element root = doc.getDocumentElement();
			// 最初の子ノード（テキストノード）の値を表示
			System.out.println(root.getFirstChild().getNodeName());
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}


public class SgPsr{
	
	public Object parse( Node n ){
		//Node root = doc.getDocumentElement();
		
		if( n.getNodeType()==Node.TEXT_NODE &amp;&amp; n.getNodeValue().trim().length()==0 ){
			return &quot;&quot;;
		}
		NodeList cc = n.getChildNodes();
		for( int i=0; i&lt;cc.getLength(); i++ ){
			Node c = cc.item(i);
			String name = c.getNodeName();
			if( name.equals(&quot;ItemSearchResponse&quot;) ){
				return parse(c);
			}
			if( name.equals(&quot;Items&quot;) ){
				return parseItems(c);
			}
		}
		return &quot;&quot;;
	}
	public Object parseItems( Node n ){
		List aa = new ArrayList();
		
		NodeList cc = n.getChildNodes();
		for( int i=0; i&lt;cc.getLength(); i++ ){
			Node c = cc.item(i);
			String name = c.getNodeName();
			if( name.equals(&quot;Item&quot;) ){
				aa.add( parse(c) );
			}
		}
		return &quot;&quot;;
	}
}

- dump Query
	//dump Query
	public String dumpQuery(HttpServletRequest request){
		Map&lt;?, ?&gt; qsMap = request.getParameterMap();
		Set&lt;?&gt; ks = qsMap.keySet();
		Map&lt;?&gt; m = new HashMap();
		for( Iterator&lt;?&gt; i = ks.iterator(); i.hasNext();  ){
			String k = i.next()+&quot;&quot;;
			String[] v = (String[])qsMap.get(k);
			m.put(k, v[0]);
		}
		return &quot;&quot;+m;
	}


ファイルのタイムスタンプを取得する。
File fp;
long tm;
java.util.Date da;
String timeStr;

fp = new File(&quot;test.txt&quot;);
tm = fp.lastModified();
da = new java.util.Date( tm );
timeStr = new String(DateFormat.getDateTimeInstance().format(da) ); 


MD5
	MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
	byte[] xx = &quot;password&quot;.getBytes();
	md.update(xx);//dat配列からダイジェストを計算する
	byte[] yy = md.digest();

Hex
	public String toHexString(byte[] arr) {
		StringBuffer buff = new StringBuffer(arr.length * 2);
		for (int i = 0; i &lt; arr.length; i++) {
			String b = Integer.toHexString(arr[i] &amp; 0xff);
			if (b.length() == 1) {
				buff.append(&quot;0&quot;);
			}
			buff.append(b);
		}
		return buff.toString();
	}    </description>
    <dc:date>2008-11-20T11:45:32+09:00</dc:date>
    <utime>1227149132</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/sakaj/pages/21.html">
    <title>amazon</title>
    <link>https://w.atwiki.jp/sakaj/pages/21.html</link>
    <description>
      amazon
http://codezine.jp/article/detail/1431?p=1
http://www.goodpic.com/mt/archives2/2004/10/amazon_ecs_401.html
http://trendy.nikkeibp.co.jp/article/tokushu/gen/20050719/112861/?P=12
http://codezine.jp/article/detail/2902

xslt入門
http://www.atmarkit.co.jp/fxml/tanpatsu/xslt/xslt02.html

読書管理
&lt;a href=&quot;http://rec.morphexchange.com/pages/html/index.htm&quot;&gt;http://rec.morphexchange.com/pages/html/index.htm&lt;/a&gt;    </description>
    <dc:date>2008-11-16T09:32:49+09:00</dc:date>
    <utime>1226795569</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/sakaj/pages/23.html">
    <title>popup2</title>
    <link>https://w.atwiki.jp/sakaj/pages/23.html</link>
    <description>
      &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;HTML&gt;
&lt;HEAD&gt;
&lt;Title&gt;&lt;/Title&gt;
&lt;META http-equiv=Content-Type content=&quot;text/html; charset=shift_jis&quot;&gt;
&lt;style type=&quot;text/css&quot;&gt;
#DivMenu{
	position: absolute;
	border          : 1px solid black;
	overflow-x:     : hidden;
	background-color: #ccccff;
}
&lt;/style&gt; 

&lt;Script&gt;

function func(){
	
	document.onclick = function(){
		var ll = [];
		var x = event.clientX;
		var y = event.clientY;
		ll.push(&#039;getWindowWidth() : &#039;+getWindowWidth())
		ll.push(&#039;getWindowHeight(): &#039;+getWindowHeight())
		ll.push(&#039;event.screenX    : &#039;+event.clientX)
		ll.push(&#039;event.screenY    : &#039;+event.clientY)
		
		var menu = document.getElementById(&#039;DivMenu&#039;);
		var dx = menu.offsetWidth;
		var dy = menu.offsetHeight;
		ll.push(&#039;menu.width    : &#039;+dx)
		ll.push(&#039;menu.height   : &#039;+dy)
		if( getWindowWidth ()&lt;x+dx ){ x = x-dx }
		if( getWindowHeight()&lt;y+dy ){ y = y-dy }
		
		menu.style.left = x;
		menu.style.top  = y;
		
		new OpManu().Set([
			 { Text: &#039;Text1&#039;, Action: function(){alert(&#039;Action1&#039;)} }
			,{ Text: &#039;Text2&#039;, Action: function(){alert(&#039;Action2&#039;)} }
			,{ Text: &#039;Text3&#039;, Action: function(){alert(&#039;Action3&#039;)} }
			,{ Text: &#039;Text4&#039;, Action: function(){alert(&#039;Action4&#039;)} }
		]);
		
		log.innerHTML = ll.join(&#039;&lt;Br /&gt;&#039;);
	}
}
function OpManu(){
	this.menu = document.getElementById(&#039;DivMenu&#039;);
	
	function Set(elements){
		for( var i=0; i&lt;elements.length; i++ ){
			var e = elements[i];
			var a = document.createElement(&#039;a&#039;);
			a.onclick = e.Action
			this.menu.appendChild(a);
		}
		//this.menu.innerHTML = html;
	}
OpManu.prototype.Set = Set;
}

function getWindowWidth(){
	var nss = [
		 &#039;window.innerWidth&#039;
		,&#039;document.documentElement.clientWidth&#039;
		,&#039;document.body.clientWidth&#039;
	]
	return getUsableValue( nss );
}
function getWindowHeight(){
	var nss = [
		 &#039;window.innerHeight&#039;
		,&#039;document.documentElement.clientHeight&#039;
		,&#039;document.body.clientHeight&#039;
	]
	return getUsableValue( nss );
}
//有効な
function getUsableValue( ValueNames ){
	var vns = ValueNames;
	for( var i=0; i&lt;vns.length; i++ ){
		if( IsGivenNs(vns[i]) ){
			return eval(vns[i]);
		}
	}
	return null;
}

function IsGiven(o){
	return typeof(o)!=&#039;undefined&#039; &amp;&amp; o!=null;
}
function IsGivenNs(Ns){
	var nn = Ns.split(&#039;.&#039;);
	var o = eval( nn.shift() );
	
	if( !IsGiven(o) ){ return false; }
	
	for( var i=0; i&lt;nn.length; i++ ){
		o = o[nn[i]];
		if( !IsGiven(o) ){ return false; }
	}
	return true;
}
&lt;/Script&gt;
&lt;/HEAD&gt;
&lt;Body onload=&quot;func()&quot;&gt;
&lt;div id=&quot;ddd&quot;&gt;ddd&lt;/div&gt;
&lt;div id=&quot;log&quot;&gt;ddd&lt;/div&gt;

&lt;div id=&quot;DivMenu&quot;&gt;
&lt;div &gt;&lt;a href=&quot;&quot; onClick=&quot;status=&#039;DivMenu1&#039;&quot;&gt;DivMenu1&lt;/a&gt;&lt;/div&gt;
&lt;div &gt;&lt;a href=&quot;&quot; onClick=&quot;status=&#039;DivMenu2&#039;&quot;&gt;DivMenu2&lt;/a&gt;&lt;/div&gt;
&lt;div &gt;&lt;a href=&quot;&quot; onClick=&quot;status=&#039;DivMenu3&#039;&quot;&gt;DivMenu3&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;/Body&gt;
&lt;/HTML&gt;    </description>
    <dc:date>2008-11-05T18:44:23+09:00</dc:date>
    <utime>1225878263</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/sakaj/pages/22.html">
    <title>TestWindow</title>
    <link>https://w.atwiki.jp/sakaj/pages/22.html</link>
    <description>
      &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;HTML&gt;
&lt;HEAD&gt;
&lt;Title&gt;&lt;/Title&gt;
&lt;META http-equiv=Content-Type content=&quot;text/html; charset=shift_jis&quot;&gt;
&lt;Script&gt;

function func(){
	var div = document.getElementById(&#039;ddd&#039;);
	var log = document.getElementById(&#039;log&#039;);
	div.onclick=function(){
		log.innerHTML = &#039;div.onclick&#039;;
	}
	div.ondblclick=function(){
		log.innerHTML = &#039;div.ondblclick&#039;;
	}
	
	
	document.onclick = function(){
		var ll = [];
		ll.push(&#039;getWindowWidth() : &#039;+getWindowWidth())
		ll.push(&#039;getWindowHeight(): &#039;+getWindowHeight())
		ll.push(&#039;event.screenX    : &#039;+event.clientX)
		ll.push(&#039;event.screenY    : &#039;+event.clientY)
		log.innerHTML = ll.join(&#039;&lt;Br /&gt;&#039;);
	}
}

function getWindowWidth(){
	var nss = [
		 &#039;window.innerWidth&#039;
		,&#039;document.documentElement.clientWidth&#039;
		,&#039;document.body.clientWidth&#039;
	]
	return getUsableValue( nss );
}
function getWindowHeight(){
	var nss = [
		 &#039;window.innerHeight&#039;
		,&#039;document.documentElement.clientHeight&#039;
		,&#039;document.body.clientHeight&#039;
	]
	return getUsableValue( nss );
}
//有効な
function getUsableValue( ValueNames ){
	var vns = ValueNames;
	for( var i=0; i&lt;vns.length; i++ ){
		if( IsGivenNs(vns[i]) ){
			return eval(vns[i]);
		}
	}
	return null;
}

function IsGiven(o){
	return typeof(o)!=&#039;undefined&#039; &amp;&amp; o!=null;
}
function IsGivenNs(Ns){
	var nn = Ns.split(&#039;.&#039;);
	var o = eval( nn.shift() );
	
	if( !IsGiven(o) ){ return false; }
	
	for( var i=0; i&lt;nn.length; i++ ){
		o = o[nn[i]];
		if( !IsGiven(o) ){ return false; }
	}
	return true;
}
&lt;/Script&gt;
&lt;/HEAD&gt;
&lt;Body onload=&quot;func()&quot;&gt;
&lt;div id=&quot;ddd&quot;&gt;ddd&lt;div&gt;
&lt;div id=&quot;log&quot;&gt;ddd&lt;div&gt;
&lt;/Body&gt;
&lt;/HTML&gt;    </description>
    <dc:date>2008-10-27T19:33:39+09:00</dc:date>
    <utime>1225103619</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/sakaj/pages/20.html">
    <title>popup</title>
    <link>https://w.atwiki.jp/sakaj/pages/20.html</link>
    <description>
      &lt;HTML&gt; 
&lt;HEAD&gt; 
&lt;TITLE&gt;Ajax RssReader With Skj Scripting&lt;/TITLE&gt; 
&lt;META http-equiv=Content-Type content=&quot;text/html; charset=shift_jis&quot;&gt; 
&lt;style type=&quot;text/css&quot;&gt; 
#DivPopUp{ 
position: absolute; 
top             : 300; 
left            : 250; 
width           : 300px; 
height          : 100px; 
border          : 1px solid black; 
overflow-x:     : hidden; 
background-color: #ccccff; 
} 
#DivPopUpHeader{ 
border:1px solid black; 
background-color:#aaaaaa; 
text-align:right; 
margin: 1px; 
padding: 1px; 
} 
#DivPopUpClose{ 
border:1px solid black; 
width:1; 
font-weight: bold; 
cursor: default 
} 
&lt;/style&gt; 
&lt;/HEAD&gt; 
&lt;Body onload=&quot;init()&quot;&gt; 

&lt;Div Id=&quot;DivPopUp&quot; &gt; 
&lt;Div Id=&quot;DivPopUpHeader&quot;&gt; 
&lt;Span Id=&quot;DivPopUpClose&quot; &gt;×&lt;/Span&gt; 
&lt;/Div&gt; 
&lt;Div Id=&quot;DivPopUpMsg&quot; &gt;PopUp Window&lt;/Div&gt; 
&lt;/Div&gt; 
&lt;Script&gt; 
function DoId(id){ 
	return document.getElementById(id); 
} 

function init(){ 
	var op = new skj.lib.ui.OpDragDrop();
	op.SetDragDrop( &#039;DivPopUp&#039;, &#039;DivPopUpHeader&#039;, &#039;DivPopUpClose&#039; );
} 


(function(){

function OpDragDrop(){
	
	function SetDragDrop( IdDivAll, IdDivHeader, IdDivClose ){
		var divAll    = DoId( IdDivAll );
		var divHeader = DoId( IdDivHeader ) || divAll;
		var divClose  = DoId( IdDivClose );
		
		var ClickData = {};
		
		var sAll = divAll.style;
		var doc = document;
		
		sAll.position = &#039;absolute&#039;;
		
		sAll.left = divAll.offsetLeft; 
		sAll.top  = divAll.offsetTop; 
		
		divHeader.onmousedown = function(){
			var e = new DmEvent( arguments[0] || window.event );
			ClickData.Dx = e.X - sAll.left.split(&#039;px&#039;).join(&#039;&#039;);
			ClickData.Dy = e.Y - sAll.top .split(&#039;px&#039;).join(&#039;&#039;);
			
			doc.onmousemove = function(){
				var e = new DmEvent( arguments[0] || window.event );
				sAll.left = ( e.X - ClickData.Dx )+&#039;px&#039;;// 
				sAll.top  = ( e.Y - ClickData.Dy )+&#039;px&#039;;// 
			}
			status = &#039;(ClickData.Dx, ClickData.Dy) = (&#039;+ClickData.Dx+&#039;, &#039;+ClickData.Dy+&#039;)&#039;; 
		}
		doc.onmouseup = function(){
			doc.onmousemove = function(){}; 
		}
		if( divClose ){
			divClose.onclick = function(){
				sAll.display = &#039;none&#039;;
				return false;
			}
		}
	}
	
OpDragDrop.prototype.SetDragDrop = SetDragDrop;
}
function DmEvent(e){
	this.e = e;
	this.X = e.clientX || e.pageX
	this.Y = e.clientY || e.pageY;
	
}

skj                   = {};
skj.lib               = {};
skj.lib.ui            = {};
skj.lib.ui.OpDragDrop = OpDragDrop;

})();


&lt;/Script&gt; 


&lt;/Body&gt; 
&lt;/HTML&gt;     </description>
    <dc:date>2008-10-24T17:52:17+09:00</dc:date>
    <utime>1224838337</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/sakaj/pages/19.html">
    <title>DataSource</title>
    <link>https://w.atwiki.jp/sakaj/pages/19.html</link>
    <description>
      ◆Sakaj.xml
&lt;Context path=&quot;/Sakaj&quot; reloadable=&quot;true&quot; docBase=&quot;D:\Eclipse\eclipse\workspace\Sakaj&quot; workDir=&quot;D:\Eclipse\eclipse\workspace\Sakaj\work&quot; &gt;
    &lt;Resource
     name=&quot;jdbc/PostgreSql&quot;
     auth=&quot;Container&quot;
     type=&quot;javax.sql.DataSource&quot;
     driverClassName=&quot;org.postgresql.Driver&quot;
     url=&quot;jdbc:postgresql://localhost:5432/[dbname]&quot;
     username=&quot;user&quot;
     password=&quot;pass&quot;
     maxActive=&quot;100&quot;
     maxIdle=&quot;0&quot;
     maxWait=&quot;2000&quot;
     removeAbandoned=&quot;true&quot;
     removeAbandonedTimeout=&quot;5&quot;
     logAbandoned=&quot;false&quot;
    /&gt;
&lt;!--
--&gt;
&lt;/Context&gt;


◆WEB-INF/web.xml

  &lt;resource-ref&gt;
    &lt;description&gt;DB Connection&lt;/description&gt;
    &lt;res-ref-name&gt;jdbc/PostgreSql&lt;/res-ref-name&gt;
    &lt;res-type&gt;javax.sql.DataSource&lt;/res-type&gt;
    &lt;res-auth&gt;Container&lt;/res-auth&gt;
  &lt;/resource-ref&gt;


◆JSP
&lt;%@ page import=&quot;java.sql.*&quot; %&gt;
&lt;%@ page import=&quot;javax.sql.*&quot; %&gt;
&lt;%@ page import=&quot;javax.naming.*&quot; %&gt;

	InitialContext ic = new InitialContext();
	DataSource ds = (DataSource)ic.lookup(&quot;java:comp/env/jdbc/PostgreSql&quot;);
	Connection c = ds.getConnection();
	
	Statement st  = c.createStatement();
	ResultSet rs = st.executeQuery( Sql );    </description>
    <dc:date>2008-10-06T14:17:06+09:00</dc:date>
    <utime>1223270226</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/sakaj/pages/18.html">
    <title>SqlParser</title>
    <link>https://w.atwiki.jp/sakaj/pages/18.html</link>
    <description>
      var sn = new SqlNode();
sn.Read( Sql );

//WriteFile( ll.join(&#039;\r\n&#039;) );
WriteFile( DumpSqlNode( sn ) );

function DumpSqlNode( Sn, indent ){
	var indent = IsGiven(indent) ? indent+&#039;	&#039; : &#039;&#039;;
	
	if( Sn.Type==&#039;Bracket&#039; ){
		return DumpBracket( Sn, indent );
	}
	else{
		return DumpElement( Sn, indent );
	}
	
	function toStringElement(e, indent){
		if( e instanceof SqlNode ){
			return DumpSqlNode( e, indent );
		}else{
			return indent + TrimLeft(e) ;
		}
	}
	function DumpElement( Sn, indent ){
		var yy = [];
		var ee = Sn.Elements;
		
		if( Sn.Type!=null ){
			yy.push( indent + Sn.Type );
		}
		
		if( !Sn.HasSqlNode() ){
			var zz = [];
			for( var i=0; i&lt;ee.length; i++ ){
				zz.push( toStringElement(  ee[i], &#039;&#039; ) );
			}
			yy.push( zz.join(&#039; &#039;) );
		}else{
			for( var i=0; i&lt;ee.length; i++ ){
				yy.push( toStringElement(  ee[i], indent ) );
			}
		}
		return yy.join( !Sn.HasSqlNode() ? &#039; &#039; : &#039;\r\n&#039; );
	}
	function DumpBracket( Sn, indent ){
		var yy = [];
		var ee = Sn.Elements;
		
		if( !Sn.HasSqlNode() ){
			yy.push( &#039;(&#039; );
			yy.push( ee.join(&#039; &#039;) );
			yy.push( &#039;)&#039; );
		}else{
			yy.push(indent + &#039;(&#039;);
			for( var i=0; i&lt;ee.length; i++ ){
				yy.push( toStringElement(  ee[i], indent ) );
			}
			yy.push(indent + &#039;)&#039;);
		}
		return yy.join( !Sn.HasSqlNode() ? &#039; &#039; : &#039;\r\n&#039; );
	}
}
function SqlNode(Type_, Parent_){
	//Select, From, Where, OrderBy, GroupBy, Bracket
	this.Type     = Type_;
	this.Parent   = null;
	this.Elements = [];
	
	var ro;
	if(ro==null){
		ro = new RegExpOperator();
		ro.AddKey( {Name:&#039;Select&#039;         , RegExp:/Select /i} );
		ro.AddKey( {Name:&#039;From&#039;           , RegExp:/ From /i} );
		ro.AddKey( {Name:&#039;Left Outer Join&#039;, RegExp:/Left +Outer +Join/i} );
		ro.AddKey( {Name:&#039;Inner Join&#039;     , RegExp:/Inner +Join/i} );
		ro.AddKey( {Name:&#039;On&#039;             , RegExp:/ On /i} );
		ro.AddKey( {Name:&#039;Where&#039;          , RegExp:/ Where /i} );
		ro.AddKey( {Name:&#039;Order By&#039;       , RegExp:/Order +By/i} );
		ro.AddKey( {Name:&#039;Group By&#039;       , RegExp:/Group +By/i} );
		ro.AddKey( {Name:&#039;Bracket.From&#039;   , RegExp:/\(/i} );
		ro.AddKey( {Name:&#039;Bracket.To&#039;     , RegExp:/\)/i} );
	}
	
	function Read( Sql ){
		
		Sql = Sql.replace(/  +/g, &#039; &#039;);
		
		var r  = ro.Search(Sql);
		var rn = r.Name;
		
		if( rn!=null ){
			
			// --------sqlPrev--------r.From xxx r.To--------sqlNext--------
			var t       = this.Type;
			var sn      = new SqlNode( rn.split(&#039;.&#039;)[0] );
			var sqlPrev = Sql.substring( 0, r.From );
			var sqlNext = Sql.substring( r.To );
			
			this.AddElement( sqlPrev );
			
			if( rn==&#039;Bracket.From&#039; ){
				this.AddElement( sn );
			}
			else if( rn==&#039;Bracket.To&#039; ){
				sn = this.GetUpperContext();
			}
			else{
				if( t!=null &amp;&amp; t!=&#039;Bracket&#039; ){
					this.Parent.AddElement( sn );
				}else{
					this.AddElement( sn ); 
				}
			}
			sn.Read( sqlNext );
		}else{
			this.AddElement( Sql );
		}
	}
	function AddElement( e ){
		if( e!=&#039;&#039; &amp;&amp; (e+&#039;&#039;).Rmv(&#039; &#039;)!=&#039;&#039; ){
			if( e instanceof SqlNode ){
				e.Parent = this;
			}
			this.Elements.push( e );
			//ll.push( this.GetPath() +&#039;: &#039;+ e.Type );
		}
	}
	function GetPath(){
		if( this.Parent!=null ){ return this.Parent.GetPath() +&#039;.&#039;+ this.Type; }
		return this.Type;
	}
	function GetUpperContext(){
		var p = this.Parent;
		return (this.Type==&#039;Bracket&#039;) ? p : p.GetUpperContext();
	}
	function HasSqlNode(){
		var b = false;
		for( var i=0; i&lt;this.Elements.length; i++ ){
			var e = this.Elements[i];
			if( e instanceof SqlNode ){
				b = b || ( e.Type==&#039;Bracket&#039; ? e.HasSqlNode() : true );
			}
		}
		//ll.push( this.GetPath() +&#039;: &#039;+ b );
		return b;
	}
SqlNode.prototype.GetUpperContext = GetUpperContext;
SqlNode.prototype.GetPath    = GetPath;
SqlNode.prototype.Read       = Read;
SqlNode.prototype.AddElement = AddElement;
SqlNode.prototype.HasSqlNode = HasSqlNode;
}

function TrimLeft(xxx){
	if( xxx.charAt(0)==&#039; &#039; ){
		return TrimLeft(xxx.substring(1));
	}
	return xxx;
}

function RegExpOperator(){
	
	this.RegExps = [];//{Name,RegExp}
	
	function AddKey( key ){
		this.RegExps.push(key);
	}
	function Search(text){
		var rn     = null;//Name
		var rpFrom = -1;//Position
		var rpTo   = -1;//Position
		
		for( var i=0; i&lt;this.RegExps.length; i++ ){
			var r = this.RegExps[i]
			var p = text.search( r.RegExp );
			if( 0&lt;=p ){
				if( rpFrom==-1 || p&lt;rpFrom ){
					rn     = r.Name;
					rpFrom = RegExp.index;
					rpTo   = RegExp.lastIndex;
				}
			}
		}
		return { Name:rn, From:rpFrom, To:rpTo };
	}
RegExpOperator.prototype.AddKey = AddKey;
RegExpOperator.prototype.Search = Search;
}    </description>
    <dc:date>2008-04-14T07:12:06+09:00</dc:date>
    <utime>1208124726</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/sakaj/pages/15.html">
    <title>Gagets</title>
    <link>https://w.atwiki.jp/sakaj/pages/15.html</link>
    <description>
      &lt;script src=&quot;http://gmodules.com/ig/ifr?url=http://www.norrys.com/iGoogle/rate.xml&amp;synd=open&amp;w=250&amp;h=200&amp;title=%E5%A4%96%E5%9B%BD%E7%82%BA%E6%9B%BFMP%E3%83%AC%E3%83%BC%E3%83%88&amp;border=%23ffffff%7C3px%2C1px+solid+%23999999&amp;output=js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;http://gmodules.com/ig/ifr?url=http://finance.mvon.net/tool/googlePref.xml&amp;up_q=6724%2C8909%2C8907%2C4347&amp;synd=open&amp;w=250&amp;h=200&amp;title=%E6%A0%AA%E4%BE%A1%EF%BC%88%E6%97%A5%E6%9C%AC%EF%BC%89&amp;border=%23ffffff%7C3px%2C1px+solid+%23999999&amp;output=js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;http://gmodules.com/ig/ifr?url=http://blog-apart.com/INVADERS/gg/gg.xml&amp;synd=open&amp;w=250&amp;h=200&amp;title=INVADERS&amp;border=%23ffffff%7C3px%2C1px+solid+%23999999&amp;output=js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;http://gmodules.com/ig/ifr?url=http://www.labpixies.com/campaigns/trio/trio.xml&amp;synd=open&amp;w=300&amp;h=290&amp;title=Trio&amp;border=%23ffffff%7C3px%2C1px+solid+%23999999&amp;output=js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;http://gmodules.com/ig/ifr?url=http://ralph.feedback.googlepages.com/googlecalendarviewer.xml&amp;up_feed=http%3A%2F%2Fwww.google.com%2Fcalendar%2Ffeeds%2Fralph.feedback%40gmail.com%2Fpublic%2Fbasic&amp;up_highlight=%23FF0000&amp;up_borderStyle=solid&amp;up_borderSize=2&amp;synd=open&amp;w=250&amp;h=200&amp;title=Google+Calendar+Viewer&amp;border=%23ffffff%7C3px%2C1px+solid+%23999999&amp;output=js&quot;&gt;&lt;/script&gt;

function Body_Load(){
	var o = document.createElement(&quot;Div&quot;);
	var s = window.screen
	var style = &#039;position:absolute; top:0px;left:0px;width:&#039;+s.height+&#039;; height:&#039;+s.width+&#039;;&#039;;
	style += &#039;border:1px solid black; background-color: #ccccff; &#039;;
	style += &#039;opacity:0.1;&#039;
	style += &#039;filter:progid:DXImageTransform.Microsoft.Alpha(Enabled=1,Style=0,Opacity=20);&#039;
	o.style.cssText = style;
	o.setAttribute(&quot;id&quot;, &#039;DivSheet&#039;);
	document.getElementsByTagName(&#039;body&#039;)[0].appendChild(o);
	//document.getElementById(&quot;DivSheet&quot;).removeChild();
}







サイドパーをオフにしてシステムへの負担を減らす。
http://yakushima-tonbo.com/windows/vista/saide_off.htm

Vistaに搭載されたさまざまな機能を、個別に有効/無効化
http://yakushima-tonbo.com/windows/vista/Vista_keiryo.htm

ユーザーアカウント制御(UAC)が出てくるのが邪魔である
http://yakushima-tonbo.com/windows/vista_tips_files/index.htm#security_uac_01

アプリ実行時画面が一瞬暗くなる
http://yakushima-tonbo.com/windows/vista_tips_files/index.htm#security_uac_02

動かないアプリがある
http://yakushima-tonbo.com/windows/vista_tips_files/index.htm#security_uac_03

スタートアップから不要なツールを除外する
http://www.v-win.net/interface/startup.html


Windows Vista高速化
http://www.winvistacafe.com/topics/topics02.html


Windows検索インデックスをオフにする
RDC (Remote Differential Compression) をオフ。
Windows Defender のオフ
２G以上のReady Boost 機能を使う。
User Access Control をオフ。
スタートアップを削除
要らない機能はどんどん削除
デスクトップの背景は無し


特殊フォルダの場所？
http://yakushima-tonbo.com/windows/vista_tips_files/index.htm#etc_tokusyu    </description>
    <dc:date>2007-12-17T18:46:08+09:00</dc:date>
    <utime>1197884768</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/sakaj/pages/5.html">
    <title>IsQ1</title>
    <link>https://w.atwiki.jp/sakaj/pages/5.html</link>
    <description>
      意識を連続的に機械に移すには？

もし、脳のニューロンと人工的なニューロンを結びつけることができたとして、

1回目：自分の脳に1個の人工ニューロンをつける。
2回目：自分の脳に2個の人工ニューロンをつける。
…

と増やしていったとき、自分の境界はどうなるか？


または、

自分の脳をスキャンできるとして上のプロセスで部分的に人工物に置き換えていくと、
最後には、自分の意識を持ったまま機械に移行できるのか？    </description>
    <dc:date>2007-11-15T00:13:06+09:00</dc:date>
    <utime>1195053186</utime>
  </item>
  </rdf:RDF>
