疲れたーず。
エクセルのファイルを開くと同じファイルが2重に起動したい!
どうやってするの?
http://okwave.jp/qa/q3931658.html
エクセル2007の場合:
「表示」タブ → ウィンドウ →「新しいウィンドウで開く」
わっっかんない。
家で試すよう。
コメット。
クライアント側
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>CometChatSender</title> <script type="text/javascript" src="./js/common.js"></script> </head> <body> <div id="talk"></div> <form method="post" action="/"> ユーザ名:<input type="text" name="user" size="20" id="user"/> メッセージ:<input type="text" name="message" size="60" id="message"/> <input type="button" value="送信" size="60" onclick="postMessage('./CometServlet', true,user.value, message.value)"/> </form> </body> </html> function createHttpRequest() { if(window.ActiveXObject){ try { // MSXML2 return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { // MSXML return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { return null; } } } else if(window.XMLHttpRequest){ return new XMLHttpRequest(); } else { return null; } } function postMessage(fileName , async ,user , message ) { var request = createHttpRequest(); request.open( 'POST' , fileName , async ); request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); request.onreadystatechange = function() { if (request.readyState ==4) { if(request.status == 200){ if(request.responseText){ document.getElementById("talk").innerHTML += request.responseText; } postMessage('./CometServlet', true); } } } request.send( 'user=' + user + '&message=' + message ); } import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import javax.servlet.ServletException; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.catalina.CometEvent; import org.apache.catalina.CometProcessor; /** * Servlet implementation class CometServlet */ public class CometServlet extends HttpServlet implements CometProcessor{ private static final long serialVersionUID = 1L; //protected ArrayList<HttpServletResponse> connections = new ArrayList<HttpServletResponse>(); protected MessageSender messageSender = null; public void init() throws ServletException{ messageSender = new MessageSender(); Thread messageSenderThread = new Thread(messageSender, "MessageSender[" + getServletContext().getContextPath() +"]"); messageSenderThread.setDaemon(true); messageSenderThread.start(); } public void destroy(){ messageSender.stop(); messageSender = null; } /** * @see HttpServlet#HttpServlet() */ public CometServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } @Override public void event(CometEvent cometevent) throws IOException, ServletException { HttpServletRequest request = cometevent.getHttpServletRequest(); HttpServletResponse response = cometevent.getHttpServletResponse(); if ( cometevent.getEventType() == CometEvent.EventType.BEGIN ){ cometevent.setTimeout(60 * 1000 * 30); log("begin for session: " + request.getSession(true).getId()); /* response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("<!doctype html public \"-//w3c//dtd html" + " 4.0 transitional//en\">"); out.println("<head><title>チャットメッセージ</title>" + "</head><body bgcolor=\"#FFFFFF\">"); out.println("</body></html>"); out.flush(); */ messageSender.setConnection(response); return ; } else if (cometevent.getEventType() == CometEvent.EventType.END) { log("End for session: " + request.getSession(true).getId()); /* PrintWriter out = response.getWriter(); out.println("</body></html>"); */ cometevent.close(); return ; } if ("POST".equals(request.getMethod())){ final String user = request.getParameter("user"); final String message = request.getParameter("message"); if( !user.equals("undefined") || !message.equals("undefined")){ messageSender.send(user, message); } return; } } public class MessageSender implements Runnable { protected boolean running = true; protected ArrayList<String> messages = new ArrayList<String>(); private ArrayList<ServletResponse> connections = new ArrayList<ServletResponse>(); private synchronized void setConnection(final ServletResponse res){ connections.add(res); notify(); } public MessageSender(){} public void stop(){ running = false; } public void send(final String user, String message){ synchronized (messages) { messages.add("[" + user + "]:" + message); messages.notify(); } } @Override public void run() { while(running){ if(messages.size() == 0){ try{ synchronized (messages) { messages.wait(); } }catch(InterruptedException e){ // ignore } } String[] pendingMessage = null ; synchronized (messages) { pendingMessage = messages.toArray(new String[0]); } messages.clear(); try{ if (connections == null){ try{ synchronized (this) { wait(); } }catch(InterruptedException e){ // ignore } } for(final ServletResponse connection : connections){ PrintWriter out = connection.getWriter(); for(final String m : pendingMessage){ out.println(m + "<br/>"); } out.flush(); out.close(); } connections.clear(); } catch(IOException e){ log("IOException sending message", e); } } } } }
wtpでサーバ設定できないぜ!
javaの道にも書いたけど、こちらにも書きます。
ほら、忘れちゃいけないでしょ?
構成:
Eclipse 3.4
Java 1.6
Tomcat 6.0
概要:
エクリプスでtomcat 6.0のサーバ設定を行いたい!
現象:
下記の現象が起きた。
>!MESSAGE \Servers\ローカル・ホスト の Tomcat v6.0 サーバー
>-config での Tomcat サーバー構成をロードできませんでした。
>構成が破壊されているか不完全である可能性があります。
原因:
Eclipseのワークスペースのログを見ると、次のとおりに記載がある。
>Caused by:
>java.io.UnsupportedEncodingException: cp932
cp932なんか、サポートしてねぇよ。だって。
#cp932って、shiftJisだっけ?後ほど、調べる。
confフォルダ内の文字コードを調べる。
tomcat-users.xmlの文字コードが、cp932である。
解決:
tomcat-users.xmlの文字コードを変更する。
変更前:cp932
変更後:utf-8
正常に、動く!
eclipse
eclipseが、とても便利です。
Pleiades (プレアデス) をインストールして、何もいじらずに使っています。
http://mergedoc.sourceforge.jp/
テクノドリーム1
テクノドリーム1に、とぼとぼと行ってきました。
構成は、2部構成で次のとおり。
- 主旨
- 工学は、やってて意義があるのか。魅力的な学問であるのか。
- 一部目
- 二部目
- 一部目の先生に加え、東大出の民間の人が二人参加。
- ベンチャーとかでなく、大企業と呼ばれているところ。
- ソーラー発電の人と油田の開発の人だったと思う。
- 時間
- 15:00 - 17:30
だいたいこんなこと言ってた(うろ覚え)
- ガンダムの監督の人
- ロボットに反対。人間を怠惰な動物にしちゃうから。
- ソーラー発電の人
- 技術は、普及させてなんぼ
- 採算を取って、儲けなさい
- 日本語の檻にとらわれず、英語で勝負しなさい。
- 油田の開発の人
- タフネスさが必要。メンタル的な
- 広報の人
- 第二弾、やります。
私の感想
- スタンス
- 私は、ガンダムを見たことない。
- のほほんとした構えで行った
- 多分、ロボットというのは、個人をエンパワーするものだと思う。
- ガンダムの監督が言ったことは、リプリゼンティブでしょ?
- 声が聞き取りにくかった。
- スピーカがマイクをもって話してなかった?
- テーマをもうちょっとしぼったら、よかった?
- 話がどこに行ってるか、よくわからなかった。
- オレの頭が悪いせいか。。。笑
- 話がどこに行ってるか、よくわからなかった。
また、思いついたら、書きます。