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

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

「横断中のiPod使用禁止…NY議会が法案提出へ」だって。。。。

2007-02-08 22:23:54 | Weblog

ここのニュース
横断中のiPod使用禁止…NY議会が法案提出へ
http://headlines.yahoo.co.jp/hl?a=20070208-00000012-yom-int

によると(以下斜体は上記ニュースより引用)

米ニューヨーク州議会のカール・クルーガー議員は7日、事故防止のため、米アップルの「iPod(アイポッド)」など携帯型デジタル音楽再生機や携帯電話、情報端末、ゲーム機などの道路横断中の使用を禁じる法案を近く提出すると明らかにした。

 違反者には罰金100ドル(約1万2000円)を科す内容


えー、じゃあ、iPod聴きながら、横断歩道渡ったら、罰金なの(>_<!)
それは、厳しそうな気が。。



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

JavaアプリでmySQLのデータを取ってきてOpenOffice Calc(表計算)に書く

2007-02-08 15:54:42 | OpenOffice

 日本語についてまで考えると、まだまだやんないといけないことありそうだけど、
 とりあえず、今の段階で、書いておきます。

 mySQLから、JDBC経由でデータをとってきて、それをOpenOffice Calcに書き出す、Javaプログラムです。



■仕様

 現在、mySQLのDB名testの中に、userテーブルがあり、以下のように
 データが入っている。

このとき、1桁1レコードで、
  項目名=値
の形で、以下のように、OpenOfficeCalcに書き出す

Javaアプリプログラムを作成する




■事前準備

(1)まず、mySQLをインストールして、userテーブルを作成し、データを入れます。

 といって、どーやるの(>_<!)という場合は、

JavaでHello World > JDBC(MySQL)編
http://www.hellohiro.com/jdbcmysql.htm


 を参考にしてくださいませ

(2)JDBCドライバをとってきて、それを、Eclipseで、プロジェクトのパスに通します。
 JDBCドライバも上記の「JavaでHello World > JDBC(MySQL)編」に書いてあるので、それをとってきて、クラスパスをとおしてね(^^)

(3)OpenOfficeのjarをEclipseのパスに通します
 ここの1に書いてあるOpenOfficeのjarをクラスパスにとおしてね。

(4)mySQLを起動します
 mysqld --default-character-set=sjis
 で起動します。

(5)OpenOfficeを起動します
 "C:¥Program Files¥OpenOffice.org 2.1¥program¥soffice.exe" "-accept=socket,port=8100;urp;"
(¥は、本当は半角)みたいなかんじ




■ソース

 前に書いたSample01.java,OpenOffice.java,Calc.javaの一部を修正します。

●Sample01.java
プログラムは以下のとおり
/**
 * サンプルプログラム
 * 参考にしたサイト
 * http://www.okapiproject.com/java/java_tools/openoffice/
 *                          developer/openoffice_program1.htm
 * (本当は1行です。長いので、きりました)
 * 
 */
import com.sun.star.lang.*;
import com.sun.star.bridge.*;
import com.sun.star.uno.*;
import com.sun.star.frame.*;

import com.sun.star.sheet.*;
import com.sun.star.container.XIndexAccess;
import com.sun.star.table.*;
import com.sun.star.beans.PropertyValue;

import java.sql.*;
import java.util.*;

/**
 * OpenOffice.org の表計算(Calc)に「Hello World」と出力する。
 */
public class Sample01 {

    /**
     * 起動パラメータなし。
     * @param args String
     */
    public static void main(final String[] args)
    {
      	OpenOffice of = null;
        Calc	cl = null;

		//======================================//
		//	OpenOfficeと接続		//
		//======================================//
        XMultiServiceFactory xMSF = null;
        try
        {
        	of = new OpenOffice();
        	xMSF	=	of.connect();

        }
        catch (java.lang.Exception e)
        {
            e.printStackTrace();
            System.out.println("OpenOfficeの起動に失敗");
        }

		//======================================//
		//Calc を起動				//
		//======================================//
        XSpreadsheetDocument myDoc = null;
        try
        {
	        cl = new Calc(xMSF);
   	    	myDoc	=	cl.open("private:factory/scalc","_blank");
        }
        catch (java.lang.Exception e)
        {
            e.printStackTrace();
            System.out.println("表計算の起動に失敗");
        }


		//======================================//
		//シートを取得				//
		//======================================//
        XSpreadsheet oSheet = null;
        try
        {
			oSheet = cl.getSheetByPosition(myDoc,0);
        }
        catch (java.lang.Exception e)
        {
            e.printStackTrace();
            System.out.println("シートの取得に失敗");
        }

		//======================================//
		//DB接続				//
		//======================================//
	    Vector allData = new Vector();	//データをここに入れておく
   		try 
   		{
			// ドライバクラスをロード
      		Class.forName("org.gjt.mm.mysql.Driver");

      		// データベースへ接続
      		String url =
		 "jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=sjis";
      		Connection con =
		 DriverManager.getConnection(url,"root","rootのパスワード");

		    // ステートメントオブジェクトを生成
      		Statement stmt = con.createStatement();
      		String sql = "SELECT * FROM user";

      		// クエリーを実行して結果セットを取得
		    ResultSet rs = stmt.executeQuery(sql);
      		ResultSetMetaData meta = rs.getMetaData();
      
      		// 検索された行数分ループ
      		while(rs.next())
      		{
   				HashMap mp = new HashMap();
      			for(int i = 1 ; i <= meta.getColumnCount(); i ++ )
      			{
      				mp.put(meta.getColumnName(i),
					rs.getString(meta.getColumnName(i)) );
      			}
   				allData.add(mp);		
      		}

		    // データベースから切断
      		stmt.close();
      		con.close();
		}
		catch (java.lang.Exception e)
		{
      		e.printStackTrace();
    	}
      
		//======================================//
		//	セルに書き出し			//
		//======================================//
        XCell oCell = null;
        try
        {
	     	for(int i = 0 ; i < allData.size() ; i ++ )
      		{
      			HashMap mp = (HashMap)allData.elementAt(i);
      			String[] key = (String[]) mp.keySet().toArray(new String[0]);
      			for(int j = 0 ; j < key.length ; j ++ )
      			{
		        	     oCell = cl.getCell(oSheet,i,j);
            		     oCell.setFormula(key[j] + "=" + (String)mp.get(key[j]));
      			}
      		}
        }
        catch (java.lang.Exception e)
        {
            e.printStackTrace();
            System.out.println("セル書き出しで失敗");
        }

        //処理終了
        System.exit(0);
    }
}

(上記< > ¥は、本当は半角)

 前に書いたSample01.javaとは、DB接続が追加され、セル書き出しが一部違います。
なお、
String url =
  "jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=sjis";
ですが、localhostにホスト名、testにDB名が入ります。

また
Connection con =
  DriverManager.getConnection(url,"root","rootのパスワード");
は、rootにユーザー名が、"rootのパスワード"にパスワードが入ります。




●OpenOffice.java
 前のものとまったく同じですので、省略します。





●Calc.java
 前のものに、以下のメソッドを追加します。
    /**
     * セルをとってきます。
     * @param oSheet とってくるシート
     * @param x 桁(0から始まる)
     * @param y 行(0から始まる)
     * @return XCell
     */
    public XCell getCell(XSpreadsheet oSheet,int x,int y)
    		throws java.lang.Exception
	{
			return	oSheet.getCellByPosition(x,y);
	}

(上記< > ¥は、本当は半角)

とりあえず、今回はここまで。



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

YouTubeの“ヤラセ”騒動?それとも、”「バイラルマーケティング」の成功例”?

2007-02-08 14:45:06 | Weblog

ここの記事
YouTubeの“ヤラセ”騒動 孤独な少女、実は虚構
http://doda.jp/e/msn/news/0657.html

の話(以下斜体は上記サイトより引用)

話の内容は、

多感な16歳の少女の日常に、多くのネットユーザーが共感した……と思ったら、実は彼女、20歳になろうという女優で、独白はライターのシナリオ、撮影もプロの映像作家によるものだと分かった。巨大ビデオ投稿サイトYouTubeの中で起こった事件だ。


ってことで、詳しい内容に関しては、その記事にかいてあるんだけど、
問題は、その最後のほう。。


この騒動は、「バイラルマーケティング」の成功例であり、ユーザー参加型メディアに潜む“プロ”の仕事がクローズアップされた事例といえる。今後も似た例は何度も起こりそうだ。


”やらせ”でも、「バイラルマーケティング」の成功例なのか?

うーん・・・(^_^;)

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

機能要件にまで影響しそうな非機能要件

2007-02-08 12:53:53 | 開発ネタ

 この前の非機能要件の話
 ルックアンドフィールや、運用条件などの非機能要件によって、機能要件である業務内容が変わってしまうという話。

 1つには、マシン配置(プリンター、ネットワーク機器を含む)によって、業務の流れを変えないといけない場合がある。マシンが1台しかない、プリンタが1台しかない場合と、ケータイなどを使って、即座に入力できる場合では、業務の流れが違ってくる(ケータイでその場で入力と、まとめてパソコンで入力の違いなどなど。。)

 で、マシン配置に関しては、コストの面が関係してくるのはわかるけど、見た目の問題都下も関わることがある。これは説明が要ると思うので、別の機械に説明する。また、ネットワークの問題でかわることもある(有線で線が引けない、無線LANだと、届かないなど)。




 もうひとつは、DBやネットワークのレスポンスタイムから来る制約。
 レスポンスのためにDBをいじらねばならず(これについても深い話になるので、別の機会にするけど)、とくに、分散型にしてしまうと、集配信が必要になったりすることもある。




 まあ、これ以外にもあるけど、とりあえず、見た目の話とDBの話については、今度書いてみたいと思う。


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

「ペット用QR迷子札」より、やっぱ次は、犬用GPSケータイだよね

2007-02-08 02:01:03 | Weblog

2月6日のトレンドたまご(昨日ではない)で、倉野アナが

「ペット用QR迷子札」
http://www.tv-tokyo.co.jp/wbs/2007/02/06/toretama/tt.html

内容は(以下斜体は上記サイトより引用)


ペットの首にQRコードつきのキーホルダーをつけ、携帯電話で読み取れば、詳しい飼い主情報が得られる。迷子札の代わりに役立つ。QRコード以外では、ホームページが読み取れないようセキュリティ対応もしている。


うーん、一見するとよさそうなんだけど。。。
きっと、倉野アナでなく、松丸アナだったら、絶賛してあげるんだけど。。。

冷静に考えてね。。

これって、ずーっと、自分が目を離しているときにも、犬につけているんだよねえ
(じゃなきゃ迷子のときに役立たない。見ているときについててもねえ ^^;)

じゃあ、自分が目を話している隙に、QRコードで見られてしまったら、
個人情報が流出してしまうんじゃあ。。

たとえば、悪いやつがいて、高級そうな犬だからってーんで、
盗んじゃって、このQRコードで、飼い主情報をみて、
「オタクの犬を誘拐した・・」なんつー電話がかかってきたりして(>_<!)




じゃあ、できるだけ、個人情報を減らそうとすると、
究極は、電話番号とかメールアドレスだけを、犬の首輪につけておく。。。

って、ソコまで行ったら、首輪に電話番号を書けるようにすればいいだけじゃ(^^;)
そっちのほうが、安上がりで売れたりして
(まあ、値段(9800円)のことを言い出したら、
 個人情報をQRコードに埋め込んで、それを首輪につけたらもっと、
 安上がりでは?っていうのはあるけど。。)




 で、たしか昔、ビジネス英会話で、アメリカでは、犬のケータイがあるって話をしていたから、じゃ、それにGPSがついて、飼い主のほうから、犬の居場所が探せるようにしたら。。

と思ったら、すでにあるのね。。。
PetCell:犬用GPS携帯
http://japanese.engadget.com/2005/12/07/petcell-gps/


ただし、これでも、飼い主側に、見も知らない人から連絡はできるけど、
住所とかばれないので、こちらが、金持ちかどうかはわかんないから、誘拐は減るかも。。

あ、ただ、日本のものではないようだ。。

これ、犬用というより、子供に持たせたほうがいいかも(^^;)
徘徊老人にも。。。。

って、犬と一緒にするなあ!!っておこられそうなので、この辺で。。


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