damoco

           

          2009年8月23日

          過度設計

          PS:雙人編程的一個好處:可以減少設計時間的浪費。也就是避免過度設計。
          因為沒有pair,本來計劃3個點(1故事點=1人時)的故事,花了20個點。。。拜過度設計所賜。
          想到了一個稍差點的替代方式,就是寫blog。像下面這樣:

          問題:多余的繼承體系:view及其子類。本來在Canvas繼承體系就可以搞定的。
          解決方案:合并繼承體系。
          教訓:不要輕信模式。不要輕信隱喻。重復代碼是檢驗真理的唯一的標準。
          策略:
          1. 平行移動代碼。不花時間保證編譯通過,只要最終跑通單元測試即可。
          2. view順便改為style
          估算:1點。
          實際:2點。

          posted @ 2009-08-23 17:19 damoco 閱讀(244) | 評論 (0)編輯 收藏

          2009年8月22日

          ViewPort(視口)跟隨光標

          ViewPort跟隨光標。光標大小可變。

          方案

          保存圖形數據

          類似游戲地圖,但是游戲地圖是可以保存在磁盤中的,用的時候讀取,但是大部分時間還是保存在內存中。

          問題

          • 耗費內存。暫無解決方案。

          繪圖時更新光標位置

          問題

          • ViewPort繪制先于光標,但更新晚于(依賴于)光標。因此繪制會延后一幀。解決方案:
            • repaint一幀。最簡單。問題:如何確定當前幀是否需要repaint。解決方案:在cursor中緩存是否移動的狀態;根據此狀態判斷是否需要repaint。
            • 暫無其他
          結論:采用繪圖時更新加repaint方法

          posted @ 2009-08-22 11:23 damoco 閱讀(189) | 評論 (0)編輯 收藏

          2009年5月18日

          如何配置和使用Tomcat訪問日志

          配置位置在log下的server.xml,(tomcat容器)

          <Engine defaultHost="localhost" name="Catalina">
          <Host appBase="webapps" name="localhost">
          <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>
          <Valve className="org.apache.catalina.valves.AccessLogValve" fileDateFormat="yyyy-MM-dd" pattern="%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i %{x-jphone-uid}i %{x-up-subno}i" prefix="localhost_access_log." suffix=".txt" directory="/var/log/accesslog" condition="drop"/>
          <Context path="" docBase="cn_issue" debug="0"/>
          </Host>
          <Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>
          <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
          </Engine>

          以下是摘抄正文

          original link:http://forum.ospod.com/post-25088-1.fhtml;jsessionid=3361F472A5E12B9B9BEA1632EC50603A

          Access Log Valve用來創建日志文件,格式與標準的web server日志文件相同。可以使用用日志分析工具對日志進行分析,跟蹤頁面點擊次數、用戶會話的活動等。Access Log Valve的很多配置和行為特性與File Logger相同,包括每晚午夜自動切換日志文件。Access Log Valve可以和任何Catalina容器關聯,記錄該容器處理的所有請求。
          例子如下:

          directory="logs" prefix="localhost_access_log." suffix=".txt"
          pattern="%{X-Forwarded-For-Pound}i %l %u %t "%r" %s %b %T "%{HTTP_X_UP_CALLING_LINE_ID}i" "%{x-up-calling-line-id}i" "%{User-Agent}i"" resolveHosts="false"/>


          className 實現的Java類名。必須被設置成org.apache.catalina.valves.AccessLogValve。
          directory 存放日志文件的目錄,可以是相對路徑或者絕對路徑。如果使用相對路徑,是指相對于 $CATALINA_HOME的路徑。如果不指定directory屬性,缺省值是"logs"(相對于 $CATALINA_HOME)
          pattern 需要記錄的請求/響應不同信息域的格式布局。如果是"common"或者"combine",說明選擇標準格式。下面會有關于配置這個屬性的更多信息。
          prefix 日志文件名的前綴。如果沒有指定,缺省值是"access_log."。如果不想使用前綴,使用長度為0的字符串。

          resolveHosts 將遠端主機的IP地址通過DNS查詢轉換成主機名,設為true。如果為false,忽略DNS查詢,報告遠端的IP地址。

          suffix 日志文件名的后綴。如果沒有指定,缺省值是""。如果不想使用后綴,使用長度為0的字符串。

          rotatable 缺省值為true,用來決定日志是否翻轉的標志。如果為false,日志文件永遠不翻轉,并且忽略fileDataFormat。要謹慎使用。

          condition 打 開條件日志。如果設置了這個屬性,只有在ServletRequest.getAttribute()是null的時候,才會為請求創建日志。比如,如果 condition設為junk,則只有在Servlet.getAttribute("junk")==null的時候,才會記錄這個請求。使用過濾 器,可以很容易設置(或者取消設置)不同請求的屬性。
          fileDateFormat 允許在日志文件名稱中使用定制的日期格式。日志的格式也決定了日志文件翻轉的頻率。如果想每個小時翻轉一次,將這個值設為yyyy-MM-dd.HH


          pattern屬性值由字符串常量和pattern標識符加上前綴"%"組合而成。pattern標識符加上前綴"%",用來代替當前請求/響應中的對應的變量值。目前支持如下的pattern:

          • %a - 遠端IP地址
          • %A - 本地IP地址
          • %b - 發送的字節數,不包括HTTP頭,如果為0,使用"-"
          • %B - 發送的字節數,不包括HTTP頭
          • %h - 遠端主機名(如果resolveHost=false,遠端的IP地址)
          • %H - 請求協議
          • %l - 從identd返回的遠端邏輯用戶名(總是返回 '-')
          • %m - 請求的方法(GET,POST,等)
          • %p - 收到請求的本地端口號
          • %q - 查詢字符串(如果存在,以 '?'開始)
          • %r - 請求的第一行,包含了請求的方法和URI
          • %s - 響應的狀態碼
          • %S - 用戶的session ID
          • %t - 日志和時間,使用通常的Log格式
          • %u - 認證以后的遠端用戶(如果存在的話,否則為'-')
          • %U - 請求的URI路徑
          • %v - 本地服務器的名稱
          • %D - 處理請求的時間,以毫秒為單位
          • %T - 處理請求的時間,以秒為單位

          結果舉例如下:
          - - - [29/Aug/2005:09:34:48 +0800] "GET /waptest/server?productid=qqportal&actionid=index&user_type=1&station=tencent&mid=12345678908888&mobile_no=13724179457&qazxcdew=1 HTTP/1.1" 404 710 0.015 "-" "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) Opera 7.11 [zh-cn]"

          - - - [29/Aug/2005:10:27:29 +0800] "OPTIONS / HTTP/1.1" 404 668 0.203 "-" "-" "Microsoft-WebDAV-MiniRedir/5.1.2600"

           附錄:server.xml

          <?xml version='1.0' encoding='utf-8'?>
          <Server>
            <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
            <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
            <GlobalNamingResources>
              <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
              <Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/>
              <ResourceParams name="UserDatabase">
                <parameter>
                  <name>factory</name>
                  <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
                </parameter>
                <parameter>
                  <name>pathname</name>
                  <value>conf/tomcat-users.xml</value>
                </parameter>
              </ResourceParams>
            </GlobalNamingResources>
            <Service name="Catalina">
              <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="80" redirectPort="8443">
              </Connector>
              <Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443">
              </Connector>
              <Engine defaultHost="localhost" name="Catalina">
                <Host appBase="webapps" name="localhost">
                  <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>
                  <Valve className="org.apache.catalina.valves.AccessLogValve" fileDateFormat="yyyy-MM-dd" pattern="%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i %{x-jphone-uid}i %{x-up-subno}i" prefix="localhost_access_log." suffix=".txt" directory="/log/accesslog" condition="drop"/>
              <Context path="" docBase="cn_issue" debug="0"/>
                </Host>
                <Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>
                <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
              </Engine>
            </Service>
          </Server>

          posted @ 2009-05-18 17:58 damoco 閱讀(3881) | 評論 (0)編輯 收藏

          僅列出標題  

          導航

          統計

          常用鏈接

          留言簿(2)

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 平远县| 大埔区| 灵璧县| 宿州市| 和平区| 西丰县| 阜阳市| 枣强县| 集贤县| 玉门市| 房山区| 三原县| 永福县| 涞源县| 浦江县| 木兰县| 阜康市| 福鼎市| 泊头市| 靖边县| 台江县| 陵川县| 曲阜市| 鲜城| 淮安市| 吉隆县| 永年县| 滁州市| 钟祥市| 工布江达县| 文昌市| 漾濞| 四平市| 安福县| 南丹县| 邵阳市| 柳州市| 涡阳县| 灌云县| 景泰县| 永兴县|