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

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

Wikipediaの非公式萌え擬人化キャラクター「ウィキペたん」

2007-12-04 18:34:12 | Weblog

あちゃー、萌えキャラ、メイドさんじゃないですかあ。。
「ウィキペたん」
こんなのが、あったのですね・・(^^)

ここの記事
Wikipediaの非公式萌え擬人化キャラクター「ウィキペたん」
http://gigazine.net/index.php?/news/comments/20071204_wikipe_tan/

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


萌え擬人化という行為が日本のネット上では昔からよく行われているようですが、調べてみるとWikipediaにも「ウィキペたん」というのがあるようです。Wikipediaの「WikiProject Anime and manga」におけるアイコン画像にも採用されています。


で、この「ウィキペたん」、コピーレフトのようなので、画像を下に載せて置きます
こんなかんじ。

くわしくはここ



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

オブジェクト指向で開発の最初から最後までの手順例-その39:雛形(12)

2007-12-04 17:12:18 | 開発ネタ

 オブジェクト指向でやる場合の最初から最後までの流れを、実際の例を挙げて書いていくシリーズ「オブジェクト指向で開発の最初から最後までの手順例」

 現在、「いままでのまとめ」にある、「(4)フレームワークにもとづき、クラスなどの開発手順、雛形の確定」をやっています。
 で、作らなきゃいけない雛形などのうち、現在、「コントローラー」についてやっていて、そのコントローラーについて、サンプルを、編集型と検索型を作ろうとしています。
 前回は編集型サンプルだったので、今回は、検索型サンプルソースについてです。




■検索型サンプルソースについて
 検索型サンプルソースも編集型サンプルソースと、やることは大体同じです。
 つまり、こんなかんじ。

・前処理
   セッションの値をハッシュマップ(モデルの引数)にいれる
   画面からの値をハッシュマップ(モデルの引数)にいれる

・主処理
   モデルを生成して、実行(引数はハッシュマップで)

・後処理
   セッションに値を入れる(入れるように指定されたもののみ)
   値を返す

ただし、主処理の結果が、値を受け取るのではなく、検索結果を受け取ります
Vectorの形で1レコード1要素(1element)となります。
そして、各レコードはハッシュマップになっていて、キーが項目名、値が項目値です。

後処理の値を返す部分は、kettaタグの下にretcodeタグがあり、ここで正常終了(0)か、
エラー(-1)かを返します。
 また、正常終了の場合、レコード数分、itemタグを書いて、その中に、レコードの項目名をタグとして、値を書きます。




■サンプルソース

 ソースは、こんなかたちになります。
 今回は、消費税テーブルの検索です。

import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class getShohi extends HttpServlet {

	/*
	 * サーブレットが入ってくるところ<BR>
	 */
	public void service(HttpServletRequest request, 
                      HttpServletResponse response) 
                          throws ServletException, IOException {

		//==============================================//
		// 前処理:データをハッシュマップに全部入れる  //
		//==============================================//
		HashMap	map	=	new HashMap();

		//セッション開始
	 	HttpSession session = request.getSession(true);

		//	セッションのデータを全部ハッシュマップに移す
		Enumeration	namelist = session.getAttributeNames();
		if ( namelist	!=	null )
		{
			while(namelist.hasMoreElements() == true )
			{
				String key = (String)namelist.nextElement();
				key	=	new String(key);
				map.put(key,session.getAttribute(key));
			}
		}
		
		//	画面からのrequestデータを全部ハッシュマップに入れる
		request.setCharacterEncoding("utf-8");
		Enumeration	namelist2 = request.getParameterNames();
		if ( namelist2	!=	null )
		{
			while(namelist2.hasMoreElements() == true )
			{
				String key = (String)namelist2.nextElement();
				key	=	new String(key);
				map.put(key,request.getParameter(key));
			}
		}

		//==============================//
		//	主処理:処理を実行する //
		//==============================//
		Shohizei	obj = new Shohizei();
		Vector kekka = obj.select(map);

		//==============================//
		//   後処理:結果をセットする   //
		//==============================//
		
		//	(1)セッションセット
		String[] mapKeyList = (String [])map.keySet().toArray();
		for(int i = 0 ; i < mapKeyList.length ; i ++ )
		{
			if ( mapKeyList[i].indexOf("*session")	>=	0 )
			{
				session.setAttribute(mapKeyList[i],map.get(mapKeyList[i]));
			}
		}


		//	(2)結果をXMLで返す

	    	// (2)-1 ContentTypeを設定
	    	response.setContentType("text/xml; charset=utf-8");
		response.addHeader("Cache-Control", "no-cache");
        	         response.addHeader("Pragma", "no-cache");

	    	// (2)-2 出力用PrintWriterを取得
    		PrintWriter out = response.getWriter();

	    	// (2)-3 出力
		out.println("<?xml version='1.0' encoding='UTF-8' ?>"); 
		out.println("<kekka xml:lang='ja'>");
		if ( kekka	==	null )
		{
			out.println("<retcode>-1</retcode)");
		}
		else
		{
			out.println("<retcode>0</retcode)");
			for(int i = 0 ; i < kekka.size() ; i ++ )
			{
				HashMap rec = (HashMap)kekka.elementAt(i);
				out.println("<item>");
				String[] key = (String[])rec.keySet().toArray(new String[0]);
				for(int j = 0 ; j < key.length ; j ++ )
				{
					out.println("<"+ key[i] + ">");
					out.println(rec.get(key[i]).toString());
					out.println("</"+ key[i] + ">");
				}
				out.println("</item>");
			}
		}
		
		out.println("</kekka>");

	}
}

(上記< > ¥は、本当は半角)
テストしてないので、まちがったところがあったらごめんなさいm(__)m




ということで、今回はここまで


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

ケータイでSNSを扱うとすると、Googleの「Open Social」はよさそう

2007-12-04 13:40:15 | ケータイ

SNSのAPIのインターフェースを共通化しようとしている「Open Social」について、ここ
Google「Open Social」公開、SNSに何が起きる?
http://japan.cnet.com/panel/story/0,3800077799,20360277,00.htm

にいろんな意見が出ているけど、
やっぱり、SNSのAPIの共通規約を作るということは、
ケータイからSNSをやろうとする場合、いいわけですよね。

ケータイによって、最適画面は違うわけで、
そーなってくると、ケータイで各社のSNSにアクセスできるようにするには、
ケータイのアプリでAPIを解釈して、適切な画面をだすと。
そーすると、APIが共通化しているほうがいい。

ロリポップがなんだったかのSNSにはいるとき、ロリポおじさんが紹介してくれるように、
ケータイアプリを買うと、そのSNSに招待してくれるなんていうサービスも考えられる。

っていうわけで、そーなってくると、
DOCOMOあたりが、こーいうアプリをだして、
さらにGooのSNSも、このAPIに対応して、mixiとGooのSNSどっちも使える、
将来は、このAPIにそったSNSなら登録して使えるとすると、
おもしろいとはおもうけど、

現実的には、Androidがこの規格に対応して、
Androidケータイからmixiとかが、みれるっていう話のほうが、先ですかね(^^;)


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