<?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/tamorintech/">
    <title>タモリンテック</title>
    <link>http://w.atwiki.jp/tamorintech/</link>
    <atom:link href="https://w.atwiki.jp/tamorintech/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>タモリンテック</description>

    <dc:language>ja</dc:language>
    <dc:date>2012-06-01T05:58:37+09:00</dc:date>
    <utime>1338497917</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/tamorintech/pages/1.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/tamorintech/pages/14.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/tamorintech/pages/16.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/tamorintech/pages/17.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/tamorintech/pages/18.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/tamorintech/pages/15.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/tamorintech/pages/13.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/tamorintech/pages/2.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/tamorintech/pages/9.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/tamorintech/pages/10.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/tamorintech/pages/1.html">
    <title>トップページ</title>
    <link>https://w.atwiki.jp/tamorintech/pages/1.html</link>
    <description>
      **タモリンテックへようこそ
-仕事で得た知識・必要となる知識、個人的に勉強したもの、等のナレッジベースです。
-気軽に書く！続ける！書いたものを活用する！
-昔の笑っていいともで終了直前にするゲームはタモリンピックだったよなぁ…。

**まとめたテック一覧
-[[Java]]
-[[データベース]]
-[[Linux]]
-[[その他]]

**調べときたいテック
-LDAP連携？、ActiveDirectory連携？
--ん？ActiveDirectoryは「LDAPの実装の一つ」と書いてあるが。そういう関係だったのか？んん？
--ディレクトリサービスで出てくることば
---ou：Organizational Unit、組織単位
-ポートレット？
-JavaFX(2.x)関連    </description>
    <dc:date>2012-06-01T05:58:37+09:00</dc:date>
    <utime>1338497917</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/tamorintech/pages/14.html">
    <title>Java</title>
    <link>https://w.atwiki.jp/tamorintech/pages/14.html</link>
    <description>
      #contents()

*別ページにまとめてるもの。
-[[log4j&gt;Java/log4j]]
-[[Android&gt;Java/Android]]

*Javaのプリミティブラッパークラスはすべて不変である。
-よって、ラッパークラスオブジェクトを参照値渡ししてメソッド内で計算しても、メソッド呼び出し側のオブジェクトには結果が反映されない。
 private void exec() {
   Integer value = new Integer(5);
   System.out.println(&quot;メソッド実行前のint値 &quot; + value.toString());
   increment(value);
   System.out.println(&quot;メソッド実行後のint値 &quot; + value.toString());
 }
 private void increment(Integer integer) {
   // 内部的には
   // integer = new Integer( integer.intValue() + 1 );
   // のようなことが行われている。つまりメソッド内のinteger は別の新しいオブジェクトを参照することになる。
   integer++;
   System.out.println(&quot;メソッド内での計算結果 &quot; + integer.toString());
 }

 メソッド実行前のint値 5
 メソッド内での計算結果 6
 メソッド実行後のint値 5

*サーブレットのセッション管理（2012/3/18 旧ブログから移行）
今日はホントにメモだけ！（時間ないからね！）
#image(20120318-4.png,height=150,http://www55.atwiki.jp/tamorintech?cmd=upload&amp;act=open&amp;pageid=14&amp;file=20120318-4.png,blank)

*サーブレット・JSPのライフサイクル（2012/3/18 旧ブログから移行）
-とりあえずメモだけアップしておく。まだ目的は達成してないけど・・・。
-知りたいことは以下のこと。
--Tomcat（サーブレットコンテナ）がクラスをロードしたり、サーブレットのinit / service / destroy の呼び出しを行っている部分の詳細な動きが知りたい。
--JSPリソースへのリクエストを受け取ったとき、それをJSPから変換したサーブレットへのリクエストへと切替えている部分の詳細な動き。
--Tomcatはサーブレットのインスタンスをどのようにしてシングルトンで管理しているのか。
-やっぱりTomcatのソースをじっくり読みたい・・・。
#image(20120318-3.png,height=150,http://www55.atwiki.jp/tamorintech?cmd=upload&amp;act=open&amp;pageid=14&amp;file=20120318-3.png,blank)

*集約とコンポジション（2012/3/18 旧ブログから移行）
-新人の後輩から質問されて答えられず。そもそも明確な違いは定義しにくく、「曖昧」らしい。
-集約とコンポジション、Javaのコードに落とせばどちらも同じ。「全体」のメンバ変数に「部分」のオブジェクトが定義されていることになる。
#image(20120318-2.png)
-上記は車クラスが「全体｣であるのに対し、車体・エンジン・タイヤクラスが「部分」にあたる。ひし形の色は白なので集約の関連があることを表している。
-車クラスをJavaコードにすると以下のようになる。
 public class Car {
 　　private Body body;
 　　private Engine engine;
 　　private Tyre tyre;
 　　・・・ 
 }
-クラス図のひし形の部分が黒で塗りつぶされていて、コンポジションをあらわしていたとしても車クラスは上記と同じコードとなる（のはず）。
-他の技術系の記事を参考にすると、コンポジションは両オブジェクト間のライフサイクルが同じ、もしくは強い依存の関係にある場合に使用する。
-ということは、集約とコンポジションでJavaコードに違いが出てくるところと言えばオブジェクトの生成の仕方とかだろうか？
-車クラスと車体・エンジン・タイヤクラスがコンポジションの関連にある場合、車クラスのコンストラクタで車体・エンジン・タイヤクラスのオブジェクトを必ずnewするとか。もしくはメンバ変数の宣言部でnewしちゃうとか。
 public class Car {
 　　private Body body = new Body();
 　　private Engine engine = new Engine();
 　　private Tyre tyre = new Tyre();
 　　・・・ 
 }
-まぁその辺りも想定するシナリオとかで変わってくる気がする…。
-とにかく、集約とコンポジションの違いについて深く悩むことにあまり価値はないと自分に言い聞かせる。（笑）

*サーブレットコンテナ（2012/3/18 旧ブログから移行）
-サーブレットコンテナというキーワードで少し勉強した。一番知りたかったのは、「Webサーバ」と「サーブレットコンテナ」の機能の切り分け。
-サーブレットコンテナについては前よりイメージがわいてきた。
--Servlet API / JSP API　の参照実装（RI）であること。HttpServletの実装をTomcat等のサーブレットコンテナは持っている。
--サーブレットのインスタンス化や破棄など、ライフサイクルの管理を行っていること。
--３つの動作形態の種類があること。
---スタンドアロン型－サーブレットコンテナ自身がWebサーバを内蔵している。Tomcatはこれにあたるので、単体でサーブレットアプリケーションを動かせる。
---内部プロセス型
---外部プロセス型
-Tomcatの設定ファイルを覗いてみるとなんとなく仕組みがわかってくる。なんとなくだが・・・
--&lt;Connector&gt;がWebサーバ機能を担う定義なんじゃなかろうか。
--他のWebサーバを使用するため、TomcatのWebサーバの機能をOFFにするにはserver.xmlの&lt;Connector&gt;要素を削除するって書いてあったし。
--ここでの機能は、クライアントからのリクエストをサーブレットコンテナ（エンジン）に渡すこと。
-結局、Webサーバの詳細な機能ははっきりとわからなかった。サーブレットコンテナというキーワードを絡めずに、Webサーバそのものについて今後調べないと！
-ところで、サーブレットアプリケーションのメインプログラムは何なのか？Javaプログラムはmainメソッドの起動から始まる、と教えてもらったはず。
--ちょっと調べてみたところ、Tomcatの場合、Bootstrapクラスがそれに当たる模様。
--確かにBootstrapクラスにはmainメソッドがあり、Tomcatの起動用スクリプトを見てみてもBootstrapクラスをjavaコマンドにより実行しているようだ。
--ただこのBootstrap.classがbootstrap.jarとcatalina.jarという二つのjarファイルに存在する。
--これは同じクラス（全く同じモジュール）と考えてよいのか？
--あ、ちなみにここまで、Tomcat 6についての話。。
--5.5のディレクトリ中身を見てみたらまたちょっと違うようだ。あまり気にしなくても大丈夫かな…？
#image(20120318-1.png,height=150,http://www55.atwiki.jp/tamorintech?cmd=upload&amp;act=open&amp;pageid=14&amp;file=20120318-1.png,blank)


*JNDIってどんなものなのか。（2012/3/7）
 JNDIとはJava Naming and Directory Interfaceの頭文字を取ったもので、Javaから
 •ネーミング・サービス
 •ディレクトリー・サービス
 を扱うためのインターフェイスを規定した仕様です。
だそう。こういう定義は他でもいくつか目にするんだが、いまいちイメージがわかない。
**何となくの理解。
-本質ではなくwebアプリ（サーブレット）に限定した理解だが、DB接続をJNDIで行う場合は以下な感じ。
--DB接続情報（=DataSource）をサーバーの設定ファイル（Tomcatの場合はcontext.xml）に定義する。その実態はjava.sql.DataSourceクラス（のオブジェクト？）である。
--Javaプログラムでは、java.naming.InitialContext#lookupメソッドで、定義したDataSourceを取得する。
--DataSource#getConnectionメソッドでjava.sql.Connectionを取得し、DB接続が開始できる。
-以下を読むと上記の実装例があり、どんなものかが少しわかった。ありがたい。
--http://www.javaroad.jp/opensource/js_tomcat8.htm
--http://blogs.yahoo.co.jp/kensinisnek/11707751.html


*Java&lt;--&gt;DBでの日付・日時のデータについて。（2012/2/5 Evernoteから移行）
**DB側の話。
-標準のSQL（？）では、日付・時刻のデータを持つカラムの型は以下のとおりとなっているようだ。
--DATA
---日付のみのデータを持つ。
--TIME
---時刻のみのデータを持つ。精度（桁数？）は指定できる。
--TIMESTAMP
---日付＋時刻のデータを持つ。精度は指定できる。
**Java側の話。
-ここで扱う日付・日時に関するクラスの継承関係は以下のとおり。
--java.util.Date
---java.sql.Date
---java.sql.Time
---java.sql.Timestamp
-java.util.Date
--日付と日時の両方のデータを持つ。時刻はミリ秒まで。
-java.sql.Date
--日付のデータのみ持つ。基底クラス（java.util.Date）の時・分・秒・ミリ秒には0が設定される。
-java.sql.Time
--時刻のデータのみ持つ。基底クラス（java.util.Date）の年・月・日には1970年1月1日が設定される。
-java.sql.Timestamp
--日付と時刻のデータを持つ。時刻は&amp;bold(){ナノ秒}まで。
-java.sql.ResultSetインターフェースについて。
--getDateメソッド：java.sql.Dateを返す。
--getTimeメソッド：java.sql.Timeを返す。
--getTimestampメソッド：java.sql.Timestampを返す。
**上記からわかったこと！
-テーブルに対応するデータオブジェクト（エンティティクラス）を設計するとき、DBのDATE、TIME、TIMESTAMPのカラムに対応するプロパティは、java.sqlパッケージのクラスを使えってことだね。

*PATH環境変数とCLASSPATH環境変数は全く関係ないものなんですよ。（2012/2/4 旧wikiから移行）
-PATH環境変数は、&amp;bold(){OSがプロンプトから入力されたコマンドに対するプログラムを検索する際の検索先}である。
-CLASSPATH環境変数はJavaソースの&amp;bold(){コンパイル時、プログラム実行時に必要となるクラスファイルを検索する際の検索先}である。
-よって2つはなんら関係ないものである。

*サーブレットの認証方式。（2012/2/4 旧wikiから移行）
-サーブレットにおける認証方式の種類は以下のものがある。
--&amp;bold(){Basic認証}：HTTPのBasic認証を使った方式。
--&amp;bold(){Digest認証}：HTTPのBasic認証を使うが、パスワードをダイジェストエンコードして暗号化する。
--&amp;bold(){Form認証}：HTMLのformを使ってユーザーIDとパスワードを入力する。
--&amp;bold(){Client-Cert認証}：クライアント証明書を使って認証を行う方式。
-Tomcat標準のレルム
--レルムとは、ユーザーIDとパスワードをサーバー側でどのように管理するかの設定方法である。XMLベースのテキストファイルやデータベース等がある。
--UserDatabaseRealm
---Tomcatでデフォルトで設定されている方式。
---ID、パスワード、ロールをtomcat-user.xmlファイルに記載する。
---UserDatabaseに対して行った変更が変更情報としてtomcat-user.xmlファイルに書き込まれる？
--JDBCRealm
---ID、パスワード、ロールをデータベースに格納し、JDBC経由で認証を行う。
--JNDIRealm
---NIS、ActiveDirectory等のディレクトリサービスにID、パスワード、ロールを格納しJNDI経由で認証を行う。
--DataSourceRealm
---JDBC経由で認証を行うが、JDBCへの接続にJNDIルックアップを使用する。

*サーブレットはスレッドセーフに。（2012/2/4 旧wikiから移行）
-サーブレットのインスタンスは（基本的に）1つのみサーブレットコンテナにより作成される。
-クライアントからの要求は複数同時に処理される。1リクエスト=1スレッドと考えてよい。
-スレッドに関して、サーブレットコンテナは以下の特徴がある。
--サーブレットコンテナは&amp;bold(){スレッドプール}を持っており、そこに複数のスレッドを蓄えている。
--サーブレットコンテナはクライアントからリクエストを受け付けると空きスレッドを割り当て、サーブレットに渡して処理を移譲する。サーブレットのインスタンス数は1つである。

*スレッドローカルとは。（ThreadLocal）（2012/2/4 旧wikiから移行）
-ThreadLocalは、スレッド毎の値を保持する為のクラス。
-あるクラス（のインスタンス）がマルチスレッドで呼ばれる際に、スレッド毎に異なる値（インスタンス）を使いたい場合に使用する。
-自分でThread（やRunnable）を使ってマルチスレッド化しているならスレッド毎の値が保持できるので、ThreadLocalを使用しても意味がない。
-しかし、&amp;bold(){Webアプリケーション（サーブレット）は1つのインスタンスがマルチスレッドで呼ばれるので、そのスレッド毎に別のインスタンスを保持したいとき}はとても便利である。

*アノテーションとは。（2012/2/4 旧wikiから移行）
-アノテーションとは、プログラムの動作に影響を与えない注釈、メタデータ。クラスやメソッド、パッケージ等に付与する。
-コメントとの主な違いは以下のとおり。
--プログラムでアノテーションを読み取って処理できる。
--アノテーションはコンパイラの動作に影響を与える。
-標準アノテーションとして以下のようなものが定義されている。（J2SE 5.0）
--Override
--Deprecated
---そのメソッドの使用が推奨されないことを示す。（Javadocの@deprecatedと同じ意味を持つ。）
---そのメソッドを使用するとコンパイル時に警告が出る。
--SuppressWarning
---コンパイル時の警告を抑制する。
---抑制する警告の種別はアノテーションの文字列配列の引数を渡すことにより指定が可能。
-アノテーションの定義の仕方。
--「@interface」でアノテーションが定義できる。
-以下のように型定義の本体が空のアノテーションを&amp;bold(){マーカーアノテーション}という。
 public @inteface Myannotation{
 }
-同じアノテーションをクラス、メンバ変数、メソッド、それぞれに適用できるようだ。
 @Myannotation()
 public class TestMain {
 
   @Myannotation()
   private String var;
 	
   @Myannotation()
   public static void main(String[] args) {
   }
 }    </description>
    <dc:date>2012-05-28T06:47:17+09:00</dc:date>
    <utime>1338155237</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/tamorintech/pages/16.html">
    <title>その他</title>
    <link>https://w.atwiki.jp/tamorintech/pages/16.html</link>
    <description>
      #contents()

*【Webサービス】Webサービスのプロトコル
-XML-RPC
-JSON-RPC
-SOAP
-REST（正確にはプロトコルではなくアーキテクチャスタイル）
-OAuth
-OAuth 2.0

*【Javascript】ポップアップの呼び出し元画面にアクセスする方法（2012/2/19）
-windowオブジェクトのopenerというプロパティを使うことで可能。
-例）親画面のform内の値を設定 → 親画面のformをサブミット → 自画面（ポップアップ画面）を閉じる
 window.opener.document.form.field.value=&quot;設定値&quot;;
 window.opener.document.form.submit();
 window.close();

*【Javascript】form内の配列の要素にアクセスする方法（2012/2/19）
-htmlで以下のようにテキストボックスの配列を定義していたとする。
 &lt;form name=&quot;sampleForm&quot;&gt;
   &lt;input type=&quot;text&quot; name=&quot;sampleBean[0].elementName&quot; &gt;
   &lt;input type=&quot;text&quot; name=&quot;sampleBean[1].elementName&quot; &gt;
   &lt;input type=&quot;text&quot; name=&quot;sampleBean[2].elementName&quot; &gt;
 &lt;/form&gt;
-このとき、テキストボックスの最初の値をalertで表示したい場合、Javascript側では以下のように書かなくてはいけない。
 alert(window.opener.document.shohinForm.elements[&#039;sampleBean[0].elementName&#039;].value);
-以下のように書いても表示されないってこと。
 alert(window.opener.document.sampleForm.sampleBean[0].elementName.value);

*【リッチクライアント】リッチクライアントを実現する技術（2012/2/5 Evernoteから移行）
-リッチクライアントとは。
--≒RIA（Rich Internet Application）
---単純なHTMLで記述されたページよりも操作性や表現に富む。
--「ファットクライアント」と「HTMLクライアント」の中間の性質を持つ。
---ファットクライアント：クライアントサーバーシステムにおけるクライアントにあたる。
---Webシステムのクライアント（ブラウザ）にあたる。
-リッチクライアントの種類は以下の二つに？分類されるらしい。
--ブラウザベース
---Webブラウザにプラグインを導入することで動作する。（Flash、Ajaxなど）
--スタンドアロン
---クライアントにインストールされ、独自の実行環境で動作する。（Javaアプレットなど）
-リッチクライアントを実現する技術には以下のようなものがある。
--Ajax
--Flash
--JavaFx
---Java VM上で動作するRIAのプラットフォーム。
---開発にはJavaFx Scripというスクリプト言語を用いる。←旧バージョンの話か？Javaでも開発することはできる。
---動作にブラウザは要さない。
--Microsoft Silverlight
--RIAプラットフォーム。Webブラウザ用のプラグイン。開発環境や開発スキルに.NET Frameworkを活かせる。
--Curl
---対話的なWebコンテンツ用のプログラミング言語。
---HTMLのようなテキストマークアップとJavaScriptのようなスクリプティング、Javaのような重量機能を単一のフレームワークに統合している。
--EclipseRCP
---Eclipseをベースとしたリッチクライアントアプリのプラットフォーム。
--AIR（Adobe Integrated Runtime）
---デスクトップ/RIA/スマートフォン向けアプリケーションを開発・実行するためのランタイムライブラリ。
-一覧にしてみた。（精度は高くないよ）
|技術名称|開発言語|実行環境|タイプ|開発環境|
|Flash|Action Script 他|Flash Player、AIR？|ブラウザベース|Flash|
|Ajax|JavaScript、xml 他|Webブラウザ|ブラウザベース|-|
|Silverlight|いろいろ？|専用のブラウザプラグイン|ブラウザベース|Miscrosoft Silverlight SDK、Visual Studio ...|
|JavaFx|JavaFx Script、Java|JavaFx|スタンドアロン|-|
|Swiing|[[Java]]|JRE|スタンドアロン|JDK|
|EclipseRCP|Java、SWT|JRE|スタンドアロン|Eclipse3～|
|curl|curl|Surge RTE|ブラウザベース/スタンドアロン|Surge Lab IDE|

*【HTML/CSS】テーブルやdiv要素等にcssのtext-alignは使用できない。（2012/2/4 旧wikiから移行）
-テーブルやdiv要素等はブロック要素と言われるが、text-alignプロパティはインライン要素の位置揃えを指定するためのもの。
-cssのtext-alignでセンタリング等の位置揃えはできない。しかし、&amp;bold(){Windows版IEではバグで位置揃えができてしまう}。
**ブロックレベル要素に対するcssによる正しいセンタリング方法。
-センタリングしたい要素の左右のマージンをautoにし、ブロックレベル要素に幅を指定する。以下は記述例。（[[Web標準普及プロジェクト &gt;http://www.mozilla.gr.jp/standards/index.html]]から抜粋）
 &lt;div&gt;
     &lt;div style=&quot;margin-left:auto;margin-right:auto;width:10em;&quot;&gt;
         ブロックレベル要素
     &lt;/div&gt;
 &lt;/div&gt;
-上記のように正しいCSSによるセンタリングを行った場合、Windows版IEでは（バグにより）逆にセンタリングされない。これを回避するかつIE以外でのブラウザでも正しくセンタリングさせるために、「text-align:center;」も同時に指定してやる。
 &lt;div style=&quot;text-align:center;&quot;&gt;
     &lt;div style=&quot;margin-left:auto;margin-right:auto;width:10em;&quot;&gt;
         ブロックレベル要素
     &lt;/div&gt;
 &lt;/div&gt;
-…しかし、上記２パターンの結果をFirefox（5.0.1）で試したところ、「ブロックレベル要素」という表示が若干横にずれる。原因不明。
**参考サイト
-[[Web標準普及プロジェクト - ブロックレベル要素をセンタリングする方法　&gt;http://www.mozilla.gr.jp/standards/webtips0004.html]]    </description>
    <dc:date>2012-05-16T20:23:57+09:00</dc:date>
    <utime>1337167437</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/tamorintech/pages/17.html">
    <title>データベース</title>
    <link>https://w.atwiki.jp/tamorintech/pages/17.html</link>
    <description>
      #contents()

*KVS（Key-Value Store）ということば。（2012/2/5 旧Wikiから移行）
-連想配列やMapと同様にキーと値のペアからなるシンプルなデータモデルに基づくデータストア。
-分散KVSとRDBの比較
||KVS|RDB|
|分散化のコスト|◎|×|
|負荷分散|◎|△|
|高可用性|◎|△|
|複雑な検索や集計|△|◎|
|トランザクション|△|◎|
**参考サイト
-[[@IT - もう１つの、DBのかたち、分散Key-Valueストアとは &gt;http://www.atmarkit.co.jp/fjava/rensai4/bigtable01/01.html]]

*memcachedとは（2012/2/5 旧wikiから移行）
-さまざまなサービスでWebアプリケーションのスケーラビリティを向上させる技術（ソフトウェア）。
--mixi、はてな、facebook、…などで利用されている。
-&amp;bold(){memcachedは高性能な分散メモリキャッシュサーバーであり、データベースへの問い合わせ結果を一時的にキャッシュすることでWebアプリケーションの高速化を実現する。}
-memcachedは「分散」キャッシュサーバーだが、分散に関しての機能はサーバー側に備わっていない。全てクライアント側の実装に依存する。
**memcachedのクライアントについて。
-クライアントライブラリにはさまざまな言語の実装がある。
--Perl、PHP、Python、Ruby、C#、C/C++、Lua
--Javaはないんか…
-Perlのmemcachedクライアントは以下のようなモジュールがある。
--Cache::Memcached
--Cache::Memcached::Fast
--Cache::Memcached::libmemcached
-Cache::Memcachedの利用
--データを保存するメソッド
---add - 同じキーのデータがストレージ上にない場合のみ値を保存
---replace - 同じキーのデータがストレージ上にあった場合のみ値を保存
---set - どんな場合でも値を保存
--データを取得するメソッド
---get - キーを指定して値を取得する
---get_multi - 複数のキーを指定して非同期で値を取得する。getをループで処理するよりも数十倍高速にデータを取得できる。
--データを削除するメソッド
---delete - キーを指定して値を削除する。2つめの引数にblock時間(秒)を指定することで、一定時間、同じキーで新しい値を保存できないようにすることができる。ただし、setメソッドを利用すると関係なくデータを保存することができる。
** 参考サイト
-[[gihyo.jp - memcachedを知り尽くす &gt;http://gihyo.jp/dev/feature/01/memcached/0001]]（memcachedの構成イメージや、ソースサンプルが参考になる！）

*共有ロックと占有ロック（2012/2/4）
-下の表なんかはよく見るものだけど、SQLではどう違うかがようやく分かったので記録しておく。
-ある資源に既に掛けられているロックとそれに対してこれから掛けようとするロックの関係は以下の通り。
||共有ロック|占有ロック|
|共有ロック|できる|できない|
|占有ロック|できない|できない|
-共有ロックは以下のSQLで実現できる。（これをずっと知らなかった。。）
 SELECT ... FROM ... LOCK IN SHARE MODE;
-占有ロックは以下のSQLで実現できる。
 SELECT ... FROM ... FOR UPDATE;

*楽観的排他と悲観的排他（2012/2/4 旧wikiから移行）
 一言でいうと、その違いは「ロックをとるかとらないか」のようだ。
-楽観的排他とは
--考え方
---「自分が操作している情報は、他の人が操作する可能性は少ない」という視点に基づいている。
---あるプロセスがデータを更新しようとしている間に、他のプロセスからも処理が可能だが、後から更新しようとしたプロセスは失敗する。
---複数のユーザーが同じデータを見る（Readする）ことはできるが、それが最新の情報かどうかは（アプリ側から）通知されるまでわからない。
--実現方法
---排他チェック用のカラムの値が、参照時と更新時で同じかどうかを検証する。（値が異なっていれば他のプロセスによって更新されていることになる。）
---排他チェック用カラムには、更新日時（タイムスタンプ）やバージョン番号を使うのが一般的。
-悲観的排他とは
--考え方
---あるプロセスのデータを更新が終了するまで、（参照を含めて）他のプロセスは処理ができない。
---あるユーザーが参照・更新処理を行っている間は、他のユーザーは参照も更新もできない。
---後のプロセスは、先のプロセスが終了するまで待たされることになる。
-実現方法
--更新対象の行を参照（SELECT）した時点でロックをかける。
**思ったこと（2012/2/4）
 悲観的排他では排他されるプロセスは「参照もできない」とあるが、どうゆうこと？ロックの種類に占有ロックを使うことが前提になっている？
**参考サイト
-[[@IT - 悲観もあれば楽観もある「トランザクション」の常識 &gt;http://www.atmarkit.co.jp/fjava/rensai4/enterprise_jboss08/01.html]]
-[[http://pcdn.int21.co.jp/pcdn/vb/noriolib/vbmag/9904/lock/ &gt;http://pcdn.int21.co.jp/pcdn/vb/noriolib/vbmag/9904/lock/]]
-[[System.Exit - 悲観的ロックと楽観的ロック &gt;http://jugyo.org/blog/1516]]    </description>
    <dc:date>2012-02-05T17:32:46+09:00</dc:date>
    <utime>1328430766</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/tamorintech/pages/18.html">
    <title>Java/Android</title>
    <link>https://w.atwiki.jp/tamorintech/pages/18.html</link>
    <description>
      #contents()

*eclipse開発環境について（2/4 旧wikiから移行）
-開発に必要なプラグインのインストール
--eclipseのメニュー「ヘルプ &gt; 新規ソフトウェアのインストール...」でインストールを行う。
--ロケーション「https://dl-ssl.google.com/android/eclipse」でリポジトリーを追加する。名前は「Android Plugin」など、適当に。
---エラーが出る場合は、「http://dl-ssl.google.com/android/eclipse」でトライしてみる価値があるらしい。
-Android SDKの設定
--eclipseのメニュー「ウィンドウ &gt; 設定...」でダイアログを開き、「Android」メニューを選択。
--「SDKロケーション」にダウンロードしたandroid sdkのフォルダ（android-sdk-windows）を指定する。
--Android SDK および AVD マネージャー
-実機のドライバインストール
**参考サイト
-http://2dkonly.blog10.fc2.com/blog-entry-46.html    </description>
    <dc:date>2012-02-05T17:32:27+09:00</dc:date>
    <utime>1328430747</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/tamorintech/pages/15.html">
    <title>Java/log4j</title>
    <link>https://w.atwiki.jp/tamorintech/pages/15.html</link>
    <description>
      #contents()

*log4jで実装してみた。（2012/2/4 旧wikiから移行）
-今までに学んだ内容でログ出力を行うサンプルコードを書いた。
-Log4jSample.java
 package sandbox.log4j.sample1;
 
 import org.apache.log4j.Logger;
 import org.apache.log4j.PropertyConfigurator;
 
 public class Log4jSample {
 
   public static void main(String[] args) {
     Log4jSample mainApp = new Log4jSample();
     mainApp.execute();
   }
 
   public void execute() {
     // Loggerインスタンスの生成.
     Logger logger = Logger.getLogger(Log4jSample.class);
 
     // log4j.propertiesを読み込む
     PropertyConfigurator.configure(&quot;bin/sandbox/log4j/sample1/log4j.properties&quot;);
 
     // 各レベルでログを出力
     logger.trace(&quot;TRACEログ&quot;);
     logger.debug(&quot;DEBUGログ&quot;);
     logger.info(&quot;INFOログ&quot;);
     logger.warn(&quot;WARNログ&quot;);
     logger.error(&quot;ERRORログ&quot;);
     logger.fatal(&quot;FATALログ&quot;);
   }
 }
-log4j.propertes
 # Appenderの定義.
 log4j.appender.stdout=org.apache.log4j.ConsoleAppender
 log4j.appender.stdout.Target=System.out
 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
 log4j.appender.stdout.layout.ConversionPattern=%d %5p %c{1} - %m%n
 
 log4j.appender.file=org.apache.log4j.FileAppender
 log4j.appender.file.File=C:\\Log4JTest\\Log4jSample.log
 log4j.appender.file.layout=org.apache.log4j.PatternLayout
 log4j.appender.file.layout.ConversionPattern=%d %5p %c{1} - %m%n
 
 # ルートカテゴリーの定義．
 log4j.rootCategory=INFO,stdout,file
-実行するとコンソールには以下のとおりログが出力される。
 2011-09-22 12:07:28,144  INFO Log4jSample - INFOログ
 2011-09-22 12:07:28,144  WARN Log4jSample - WARNログ
 2011-09-22 12:07:28,144 ERROR Log4jSample - ERRORログ
 2011-09-22 12:07:28,144 FATAL Log4jSample - FATALログ
-また、C:\\Log4JTest\\Log4jSample.logのファイルに上記と同じ内容のログが出力される。
-サンプルコードを書いて
-- rootCategory？rootLogger？という感じ。カテゴリ、ロガー、階層、log4j.propertiesの書き方などがまだよくわからん。
--以下のように明示的にlog4j.propertiesの読み込みを記述しないと上手くいかなかった。（Webアプリケーションの場合クラスパスが通った場所にlog4j.propertiesを書いておけばこのようなコードは不要だったような気がしたが・・・）
 // log4j.propertiesを読み込む
 PropertyConfigurator.configure(&quot;bin/sandbox/log4j/sample1/log4j.properties&quot;);
** 参考サイト
-[[TECHSCORE - Log4J &gt;http://www.techscore.com/tech/Java/ApacheJakarta/Log4J/index/]]
-[[Log4Jをいじる &gt;http://www.h7.dion.ne.jp/~s_wat/jakarta/log4j.html]]

*log4jとは（2012/2/4 旧wikiから移行）
-Jakartaプロジェクトで開発が進められているJavaプログラム用のログAPIである。
-ログの出力先を様々に設定できる。
--ファイル、OutputStream、java.io.Writer、リモートlog4jサーバ、リモートUnix Syslogデーモン、NTイベントログなど
-log4jには以下の3つの主要コンポーネントがある。
--Logger - ロギングを行う部分をグループ化し必要なグループのログだけを出力することを可能にする。カテゴリーに優先順位を付けることにより様々な出力方法を指定できる。
--Appender - ログの出力先を指定する。
--Layout - ログの出力フォーマットを指定する。
-log4Jは以下のログレベルを標準提供している（レベルが高い順）。利用者が任意のログレベルを追加することも可能。
--FATAL - 致命的なエラー。プログラムの異常終了を伴うようなもの。
--ERROR - 予期しないその他の実行エラー。
--WARN - 警告。廃要素のAPIの使用やAPIの不適切な使用、エラーに近い事象など。
--INFO - 情報。実行時の何らかの注目すべき事象（開始や終了など）。
--DEBUG - デバッグ用の情報。システムの動作状況に関する詳細な情報。
--TRACE - デバッグ情報よりも更に詳細な情報。
-使うときのざっくりした流れは以下な感じ。
--1.Loggerを作成する
--2.Appenderを作成してLoggerにぶら下げる
--3.Layoutを作成して、Appenderにぶら下げる
--4.ログ出力をする。
-上記手順の1～3（2～3？）は設定ファイル（log4j.properties）で外部ファイル化できる。    </description>
    <dc:date>2012-02-05T17:32:00+09:00</dc:date>
    <utime>1328430720</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/tamorintech/pages/13.html">
    <title>トップページのコピー</title>
    <link>https://w.atwiki.jp/tamorintech/pages/13.html</link>
    <description>
      **@wikiへようこそ
-ウィキはみんなで気軽にホームページ編集できるツールです。
-このページは自由に編集することができます。
-メールで送られてきたパスワードを用いてログインすることで、各種変更（サイト名、トップページ、メンバー管理、サイドページ、デザイン、ページ管理、等）することができます

**まずはこちらをご覧ください。
-[[@wikiの基本操作&gt;http://atwiki.jp/guide/category2.html]]
-[[用途別のオススメ機能紹介&gt;http://atwiki.jp/guide/category22.html]]
-[[@wikiの設定/管理&gt;http://atwiki.jp/guide/category6.html]]

**分からないことは？
-[[@wiki ご利用ガイド&gt;http://atwiki.jp/guide/]]
-[[よくある質問&gt;http://atwiki.jp/guide/category1.html]]
-[[無料で会員登録できるSNS内の@wiki助け合いコミュニティ&gt;http://sns.atfb.jp/view_community2.php?no=112]]
-[[@wiki更新情報&gt;http://www1.atwiki.jp/guide/pages/264.html]]
-[[@wikiへのお問合せフォーム&gt;http://atwiki.jp/helpdesk]]
等をご活用ください

**@wiki助け合いコミュニティの掲示板スレッド一覧
#atfb_bbs_list(112)

**その他お勧めサービスについて
-[[大容量１Ｇ、PHP/CGI、MySQL、FTPが使える無料ホームページは@PAGES&gt;&gt;http://atpages.jp/]]
-[[無料ブログ作成は@WORDをご利用ください&gt;&gt;http://atword.jp/]]
-[[2ch型の無料掲示板は@chsをご利用ください&gt;&gt;http://atchs.jp/]]
-[[フォーラム型の無料掲示板は@bbをご利用ください&gt;&gt;http://atbb.jp/]]
-[[お絵かき掲示板は@paintをご利用ください&gt;&gt;http://atpaint.jp/]]
-[[その他の無料掲示板は@bbsをご利用ください&gt;&gt;http://atbbs.jp/]]
-[[無料ソーシャルプロフィールサービス @flabo(アットフラボ)&gt;&gt;http://sns.atfb.jp]]

**おすすめ機能
-[[気になるニュースをチェック&gt;http://atwiki.jp/guide/17_174_ja.html]]
-[[関連するブログ一覧を表示&gt;http://atwiki.jp/guide/17_161_ja.html]]

**その他にもいろいろな機能満載！！
-[[@wikiプラグイン&gt;http://atwiki.jp/guide/category17.html]]
-[[@wiki便利ツール&gt;http://atwiki.jp/guide/category32.html]]
-[[@wiki構文&gt;http://atwiki.jp/guide/category16.html]]
-[[@wikiプラグイン一覧&gt;http://www1.atwiki.jp/guide/pages/264.html]]
-[[まとめサイト作成支援ツール&gt;http://atwiki.jp/matome/]]

**バグ・不具合を見つけたら？ 要望がある場合は？
お手数ですが、メールでお問い合わせください。    </description>
    <dc:date>2012-02-04T13:23:03+09:00</dc:date>
    <utime>1328329383</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/tamorintech/pages/2.html">
    <title>メニュー</title>
    <link>https://w.atwiki.jp/tamorintech/pages/2.html</link>
    <description>
      **メニュー
-[[トップページ]]
-[[プラグイン紹介&gt;プラグイン]]
-[[まとめサイト作成支援ツール]]
-[[メニュー]]
-[[メニュー2]]
-[[トップページのコピー]]

----

**リンク
-[[@wiki&gt;&gt;http://atwiki.jp]]
-[[@wikiご利用ガイド&gt;&gt;http://atwiki.jp/guide/]]

**他のサービス
-[[無料ホームページ作成&gt;&gt;http://atpages.jp]]
-[[無料ブログ作成&gt;&gt;http://atword.jp]]
-[[2ch型掲示板レンタル&gt;&gt;http://atchs.jp]]
-[[無料掲示板レンタル&gt;&gt;http://atbbs.jp]]
-[[お絵かきレンタル&gt;&gt;http://atpaint.jp/]]
-[[無料ソーシャルプロフ&gt;&gt;http://sns.atfb.jp/]]

// リンクを張るには &quot;[&quot; 2つで文字列を括ります。
// &quot;&gt;&quot; の左側に文字、右側にURLを記述するとリンクになります


//**更新履歴
//#recent(20)

&amp;link_editmenu(text=ここを編集)    </description>
    <dc:date>2012-02-04T13:22:22+09:00</dc:date>
    <utime>1328329342</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/tamorintech/pages/9.html">
    <title>プラグイン</title>
    <link>https://w.atwiki.jp/tamorintech/pages/9.html</link>
    <description>
      @wikiにはいくつかの便利なプラグインがあります。

-----


#ls

-----

これ以外のプラグインについては@wikiガイドをご覧ください
=&gt;http://atwiki.jp/guide/
    </description>
    <dc:date>2012-02-04T13:15:23+09:00</dc:date>
    <utime>1328328923</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/tamorintech/pages/10.html">
    <title>プラグイン/関連ブログ</title>
    <link>https://w.atwiki.jp/tamorintech/pages/10.html</link>
    <description>
      * 関連ブログ
@wikiのwikiモードでは
 #bf(興味のある単語)
と入力することで、あるキーワードに関連するブログ一覧を表示することができます

詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/17_161_ja.html

-----


たとえば、#bf(ゲーム)と入力すると以下のように表示されます。


#bf(ゲーム)
    </description>
    <dc:date>2012-02-04T13:15:23+09:00</dc:date>
    <utime>1328328923</utime>
  </item>
  </rdf:RDF>
