隨筆-46  評論-54  文章-0  trackbacks-0
            2008年12月30日
          在 Windows 上離線安裝 Chrome
          https://support.google.com/chrome/answer/126299?hl=zh-Hans
          這里鏈接默認是32位的。
          針對所有用戶安裝版64位完整鏈接為:
          https://www.google.com/chrome/browser/desktop/index.html?system=true&standalone=1&platform=win64

          Chorome快捷方式+SwitchyOmega

          /Files/rox/chrome.7z
          posted @ 2016-05-21 20:52 rox 閱讀(440) | 評論 (0)編輯 收藏
          參加了國內(nèi)某知名快遞公司的面試,一面就放棄了
          自己公司的一個HR經(jīng)理也曾經(jīng)教過要換位思考,現(xiàn)在簡單的介紹一下面試過程中的一些感想。
          1. HR打電話的時候,問周六有沒有空?
          問題:雖然是專場,但這是很多HR應(yīng)該規(guī)避的,應(yīng)該盡量說明這是公司的安排,這種周六加班不是企業(yè)文化。
          建議:曾經(jīng)遇到過的幾個HR都非常注意這一點,特別說明晚上和周末一般都不加班,雖然說HR多半都是騙子,呵呵!
          2. 回答都有空,便安排在早晨的第二個時間段
          問題:實際上安排了將近50人在早晨面試,可想而知,是面不完的。
                現(xiàn)場有點貌似華為面試,只不過不是在食堂:D
                11點左右HR一面,20分鐘,到了12點鐘,組織方開始發(fā)餐票,到隔壁快餐店用餐。
                沒拿餐票,直接回家了。
          建議:組織安排上,還算OK,但稍微比較有經(jīng)驗和有能力的HR,應(yīng)該不會做這樣的安排。
                即使是新項目啟動,采取這樣方式海招,風(fēng)險比較大,應(yīng)該是一個相對長期的過程,可以把招聘過程安排的相對寬松點。
                在公司,自己也做技術(shù)面試,一般都會面半個小時到一個小時左右,連續(xù)面了兩個以上,精力和質(zhì)量就會下降的很厲害。
          3. 一面HR的內(nèi)容,2分鐘介紹自己,同時看表,增加面試著的壓力。再問了工作和生活上的問題,還有技術(shù)問題!
          問題:技術(shù)問題,比較有意思。
                HR問,最近一年,業(yè)界都有那些新技術(shù),回答了Android和iPhone,猜他是想問云計算(面試前調(diào)研過,該公司有一直想進電商行業(yè))。
                然后,HR再問Java方面有啥新技術(shù),特意回答沒啥新的啊。這個后來被自己朋友批,不知道反問他么!
                這時,HR就做出了一個重大的決定,準備開始對我的職位進行降級。問有沒有意向,直接否掉。
                然后就說,各個公司的職位要求不一樣,該公司要求更高點,就結(jié)束談話,等待下一輪面試。
                40分鐘后,開始發(fā)餐票。自己什么都沒說就走了,這個其實也是特意做的,后面會有解釋。
          建議:面試20多分鐘,都是HR對面試者進行提問和定位,不留給對方了解相關(guān)項目的機會,這個很少見。
                另外,很多初級HR只對項目里面說需要技術(shù)單詞比較敏感,往往會在面試的時候,就急于問,好進行準確定位。
                但又怕問了以后會讓面試者對后面的技術(shù)面試有所準備,技巧啊,技巧啊!
          另外:解釋一下自己沒領(lǐng)餐票直接走人,其實想看一下組織方會有哪些動作。
                1. 發(fā)餐票的HR妹妹,啥也沒問,直接放走。一個已經(jīng)等了將近三個小時面試者,卻不愿意再多等一個小時,沒有任何疑問。這種情況發(fā)生在自己公司,會被HR經(jīng)理罵的。呵呵!
                2. 負責(zé)一面的HR,大約在一個小時后的確給電話了,你在哪?自己說回家了,然后HR就說那下次有機會再聯(lián)系吧,就掛了。看來他真的很忙。呵呵!
          也參與過自己公司的很多面試,接觸HR比較多,從HR經(jīng)理那里也學(xué)到了不少東西,包括壓力測試(其實,面試者也可以多給HR一些壓力測試)。
          感覺這個非常有意思,比和搞技術(shù)的打交道有意思。
          把自己面試時的一些想法和技巧列出來。
          可能還是太片面,而且?guī)е慵夹g(shù)的那種“壞味道”。
          只是希望能為大家提供一點點參考。
          posted @ 2013-07-28 11:53 rox 閱讀(222) | 評論 (0)編輯 收藏
          前一家公司經(jīng)理的思想是,設(shè)計好的系統(tǒng)是絕對不會出錯的。需要容錯,絕對是沒設(shè)計好。
          這個似乎有道理,但完全不考慮,真正實際環(huán)境,是涉及到三方交易結(jié)算的的東西啊,真替他捏把汗。

          現(xiàn)在的項目,一堆Oracle、騰訊、華為、證券摸爬滾打出來的技術(shù)精英,還包括一個純servlet+jdbc開源項目的作者湊一堆。
          不懂Tomcat下為什么要配置filter轉(zhuǎn)碼,把這個和虛擬機編碼機制混為一談,最后感慨一句weblogic就沒這問題。
          也有不懂啥是樂觀鎖的。
          面試的時候,對集合類型及操作考的頭頭是道,但項目里,一個都沒用到。
          項目中遇到問題,往往就是解決、解決+解決,不究其原理。
          感覺自己像在做硬件拼裝的富士康。

          牢騷兩句。
          posted @ 2013-07-21 23:19 rox 閱讀(304) | 評論 (0)編輯 收藏
          安裝64位Ubuntu,方法其實解決方案很簡單,不用下載任何的ISO,只要去下載最新的64位包,見下面資源。
          拷貝wubi.exe和下載好的ubuntu-12.04-wubi-amd64.tar.xz都拷貝到C盤根目錄下,然后執(zhí)行下面命令即可。

          1 wubi.exe --dimagepath=c:\ubuntu-12.04-wubi-amd64.tar.xz

          資源:
          What is ubuntu-11.10-wubi-amd64.tar.xz ? 

          wubi安裝Ubuntu11.**正確方法及無限等待下載amd64.tar.xz解決方法

          http://cdimage.ubuntu.com/wubi/current/amd64.tar.xz

          http://releases.ubuntu.com/12.04/ubuntu-12.04-wubi-amd64.tar.xz
          posted @ 2012-07-12 13:26 rox 閱讀(6550) | 評論 (4)編輯 收藏
           

          參考了這篇the script is not working for any mvc frameworkuri的回復(fù),結(jié)合當前Uploadifyv2.1.4版,netbean 6.9.1下編寫調(diào)試。

                  新建grails工程,名為test,并把Uploadify-v2.1.4.zip解壓到web-app\uploadify目錄下。

                  新建grails控制器PictureController,代碼如下

          package com.test

           

          class PictureController {

           

              def index = { redirect(action: "upload") }

           

              def upload = { }

           

              def savePicture = {

                 def files = request.getFileMap();

                 def path = "c:/test/" + files.get("Filedata").getOriginalFilename();

                 files.get("Filedata").transferTo( new File(path))

                 render (view:'upload')

              }

          }

                  新建grails視圖upload.gsp,代碼如下,注意粗體部分的上下文路徑

          <html>

            <head>

              <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

              <title>upload file sample</title>

              <link rel="stylesheet" href="/test/uploadify/uploadify.css" type="text/css" />

              <script type="text/javascript" src="/test/uploadify/jquery-1.4.2.min.js"></script>

              <script type="text/javascript" src="/test/uploadify/swfobject.js"></script>

              <script type="text/javascript" src="/test/uploadify/jquery.uploadify.v2.1.4.min.js"></script>

              <script type="text/javascript">

              $(document).ready(function() {

                      $("#fileUpload").uploadify({

                          'uploader': '/test/uploadify/uploadify.swf',

                        'cancelImg': '/test/uploadify/cancel.png',

                        'script': '/test/picture/savePicture',

                        'folder': 'files',

                        'multi': true,

                        'buttonText': 'add',

                        'displayData': 'speed',

                        'simUploadLimit': 2

                      });

              });

              </script>

            </head>

            <body>

              <hr width=100% size="1" color="" align="center">

                  <h2>Multiple File Upload</h2>

                  <p>checkScript, buttonText, simulataneous upload limit</p>

                  <div id="fileUpload">You have a problem with your javascript</div>

                  <a href="javascript:$('#fileUpload').uploadifyUpload()">Start Upload</a> |  <a href="javascript:$('#fileUpload').uploadifyClearQueue()">Clear Queue</a>

          <p></p>

            </body>

          </html>

                  運行工程,訪問http://localhost:8080/test/picture/upload

          posted @ 2010-12-06 15:38 rox 閱讀(1086) | 評論 (2)編輯 收藏

          公司安排研究耶魯CAS單點登錄的實現(xiàn),并研究了一下它的代理協(xié)議,看了N多文檔和代碼,才大概明白是怎么回事。
          為了方便有興趣的朋友學(xué)習(xí),去掉了HTTPS的加密,源代碼、webapp包和配置文件都有。
          本來打算針對這個寫篇文章,不想寫了。

            

          另:

          • 針對cas-server-2.0.12和cas-client-2.0.11的
          • ppt中部分內(nèi)容是翻譯+自己理解的,中英文水平均有限,請諒解。

          下載地址:

          posted @ 2010-04-14 17:41 rox 閱讀(611) | 評論 (2)編輯 收藏
          JasperReports數(shù)據(jù)庫查詢父子報表模板



          • 安裝并打開iReport,并新建一個報表文件(見圖-1)
          [圖-1]

          • 選擇在“c:\test”目錄下建立一個find文件(見圖-2)
          [圖-2]

          • 新建一個datasource,選擇jdbc連接方式,命名為find。使用HSQLDB(File)方式,url為jdbc:hsqldb:c:/test/find.hsql,用戶名為sa,密碼為空,測試一下,成功了,保存即可(見圖-3、圖-4、圖-5
          [圖-3]

          [圖-4]

          [圖-5]

          • 設(shè)置報表查詢語句、字段后,組和結(jié)束頁面基本跳過(見圖-6、圖-7、圖-8、圖-9
          [圖-6]

          [圖-7]


          [圖-8]


          [圖-9]

          • 其實做到這里,就可以自己制作根據(jù)數(shù)據(jù)庫查詢報表了,要畫圖設(shè)置一些參數(shù),說起來麻煩,就干脆打開樣例模板來看看結(jié)果吧。
          這里需要說明的是report1.jrxml是主報表、report1_subreport2.jrxml是子報表,主報表查出的每條記錄的結(jié)果CLASSNAME作為子報表的查詢條件參數(shù)傳遞過去(見圖-10、圖-11、圖-12、圖-13
          [圖-10]

          [圖-11]

          [圖-12]

          [圖-13]


          參考資料:
          • 樣例模板和數(shù)據(jù)庫
          http://docs.google.com/leaf?id=0B8vmIM2WmTA2OWE5ZGY0OTktMTkyZC00ZTljLTg1YjMtODA5ZWQ3NjA0MjMz&hl=zh_CN

          • Creating JasperReport subreports
          http://publib.boulder.ibm.com/infocenter/rbdhelp/v7r5m0/index.jsp?topic=/com.ibm.egl.pg.doc/topics/pegl_rep_subreport_create_tsk.html

          • 利用復(fù)合的javabean構(gòu)造基于jasperreports的子報表

          本文地址
          posted @ 2010-02-26 16:12 rox 閱讀(630) | 評論 (0)編輯 收藏

          原帖地址:java開發(fā)的亂碼問題

           

          第一,存文件必須以一種編碼存;讀文件也必須以一種編碼讀,如不特別設(shè)置,去系統(tǒng)默認的編碼,中文windows為GBK編碼。

          從.java->.class過程是,先編寫.java文件并按莫種編碼方式保存,然后用javac方法編譯此文件,注意如.java沒按系統(tǒng)默認編碼保存則要帶encoding參數(shù)指明實際編碼,否則出錯,生成的.class文件存為系統(tǒng)默認編碼。

          從.jsp->.java->.class,先存為某種編碼的.jsp文件,然后tomcat根據(jù)pageEncoding讀取并轉(zhuǎn)化為servlet存為系統(tǒng)默認編碼,然后同上面.java->.class過程。

          第二,IDE的encoding為對系統(tǒng)下文件打開的解碼方式或保存的編碼方式。特例:如果.jsp文件有<%@ page language="java" pageEncoding="UTF-8"%>,則eclipse會自動存為UTF-8方式,不管eclipse的encoding是什么,這也是eclipse的聰明之處。

          第三,
          pageEncoding="UTF-8"表示此文件的編碼方式,必須與此文件存儲方式一致(所以eclipse會首選根據(jù)它來存文件),tomcat根據(jù)這個來讀此.jsp文件并編譯為servlet。
          contentType="text/html;charset=UTF-8"表示當瀏覽器得到此文件時以什么方式解碼。例如:
          <%@ page language="java" pageEncoding="UTF-8"%>
          <%@ page contentType="text/html;charset=iso8859-1"%>
          <html>
           <head>
            <title>test</title>
           </head>
           <body>
            我是個好人
           </body>
          </html>
          會產(chǎn)生亂碼,因為存為UTF-8的文件被解碼為iso8859-1,這樣 如有中文肯定出亂碼。

          至此,頁面應(yīng)為:
          <%@ page language="java" pageEncoding="UTF-8"%>
          <%@ page contentType="text/html;charset=UTF-8"%>
          <html>
           <head>
            <title>中文問題</title>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
           </head>
          </html>

          第四,
          request.setCharacterEncoding("UTF-8")是把提交內(nèi)容的字符集設(shè)為UTF-8
          response.setCharacterEncoding("UTF-8")可以把頁面中的<%@ page contentType="text/html;charset=iso8859-1"%>換為charset=UTF-8,是給告訴瀏覽器我這個文件的編碼方式。

          第五,表單提交:無論何種表單提交都可以在后臺的java文件中通過String des = new String(s.getBytes("iso8859-1"),"UTF-8");來轉(zhuǎn)換成你想要的UTF-8編碼方式。但如果每處都加詞句太麻煩,故分post和get兩種方式區(qū)分提交(tomcat5以后分開處理,之前處理方式一樣,即都可以用request.setCharacterEncoding("UTF-8")方法處理,不過tomcat5以后get提交方法用此語句無效)。
          1,post提交的數(shù)據(jù):
          程序加上org.springframework.web.filter.CharacterEncodingFilter過濾器.
          <filter>
          <filter-name>encodingFilter</filter-name>
          <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
          <init-param>
          <param-name>encoding</param-name>
          <param-value>UTF8</param-value>
          </init-param>
          <init-param>
          <param-name>forceEncoding</param-name>
          <param-value>true</param-value>
          </init-param>
          </filter>

          <filter-mapping>
          <filter-name>encodingFilter</filter-name>
          <url-pattern>*.html</url-pattern>
          </filter-mapping>
          <filter-mapping>
          <filter-name>encodingFilter</filter-name>
          <url-pattern>*.jsp</url-pattern>
          </filter-mapping>

          因為規(guī)范要求瀏覽器提交數(shù)據(jù)都要用utf8編碼,所以這里設(shè)置編碼方式為UTF8.

          特別注意:
          a,這個過濾器只是簡單的調(diào)用:request.setCharacterEncoding(this.encoding);
          在這個語句之前不能調(diào)用任何的request.getParameter()方法,否則會設(shè)置tomcat的缺省字符集為"ISO-8859-1",并且使setCharacterEncoding的調(diào)用失效.所以在這個過濾器之前的過濾器中不能有對getParameter這類方法的調(diào)用,比較安全的做法就是把這個過濾器盡量靠前放.
          b,在server.xml中不能加上<Valve className="org.apache.catalina.valves.RequestDumperValve"/>
          這個value也設(shè)置tomcat的缺省字符集為"ISO-8859-1",使setCharacterEncoding的調(diào)用失效.可能其他的value也有這個問題,我沒有測試過.
          如果要觀察http請求參數(shù),可以考慮用過濾器或者其他工具,例如ethereal(http://www.ethereal.com/)

          2,get提交的數(shù)據(jù):
          兩種情況:
          a,如果從地址欄直接輸入漢字,則一般編碼為"GBK",需要用
          new String(request.getParameter("something").getBytes("ISO-8859-1"),"GBK")
          取出
          b,如果是頁面超連接連接中帶的漢字,則編碼根據(jù)頁面編碼的不同而不同,如果頁面的
          content="text/html; charset=utf-8",則在tomcat/conf/server.xml中的配置文件中:
          <!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 -->
          <Connector port="8080"
          maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
          enableLookups="false" redirectPort="8443" acceptCount="100"
          debug="0" connectionTimeout="20000" useBodyEncodingForURI="true"
          disableUploadTimeout="true" />

          加上:useBodyEncodingForURI="true"即可正常使用getParameter取出正確內(nèi)容.
          如果content="text/html; charset=GBK",需用
          new String(request.getParameter("something").getBytes("ISO-8859-1"),"GBK")
          取出,其他情況類似.

          總結(jié):
          1,所有頁面使用utf8編碼,
          2,服務(wù)器加上過濾器,
          3,server.xml中不要使用
          <Valve className="org.apache.catalina.valves.RequestDumperValve"/>
          4,server.xml文件加上useBodyEncodingForURI="true"
          這樣應(yīng)該可以搞定大多數(shù)前臺的中文問題.至于地址欄輸入中文,不支持也罷,一般的程序很少要求
          從這里輸入.

          第六,連接數(shù)據(jù)庫

          1、mysql配置文件:
          修改mysql在windowsmy.ini里default-character-set=utf-8

          2、mysql里數(shù)據(jù)庫和表也都設(shè)為utf8_unicode_ci

          3、數(shù)據(jù)庫連結(jié):jdbc:mysql://localhost/mydb?useUnicode=true&characterEncoding=utf-8
          注意,關(guān)鍵就在于此:此句中間是'&'不是'&amp;'這是因為數(shù)據(jù)庫連結(jié)時,在.jsp和.java文件中應(yīng)該用&號,而XML文件中需要用&amp

          posted @ 2010-01-05 08:43 rox 閱讀(441) | 評論 (0)編輯 收藏

          原帖:http://chenyaqiong81081.blog.163.com/blog/static/44622594200791235256255/

          一、Runtime.getRuntime().exec()執(zhí)行命令情況:
                 Runtime.getRuntime().exec("cmd /c your command")//2000
                 Runtime.getRuntime().exec("command /c your command")//98
                 Runtime.getRuntime().exec("sh/ your command")//linux

          二、執(zhí)行.sh文件的情況:
                1、把命令寫成a.sh ;執(zhí)行命令的時候
                     Process child = Runtime.getRuntime().exec("bash a.sh,null,new File("http://usr/local/mysql/bin/"));
                     child.waitFor();
                     ........
                 2、Process child = Runtime.getRuntime().

                                                    exec(new String[] {"/bin/sh","-c","mysqldump -u root -p7788919 axtic_cg" },

                                                             null,
                                                             new File("/usr/local/mysql/bin/"));
                      child.waitFor();

                      注:waitFor()等待操作完成

          posted @ 2009-12-29 17:10 rox 閱讀(2876) | 評論 (0)編輯 收藏
               摘要: Java多層目錄打包和解壓代碼(apache commons compress, io, lang)   package zip;   import java.io.BufferedOutputStream; ...  閱讀全文
          posted @ 2009-11-12 22:53 rox 閱讀(4000) | 評論 (1)編輯 收藏

          Windows XP增強dos命令

          命令:DIR,列文件、目錄

          增加參數(shù):/-C
          參數(shù)說明:DIR列文件、目錄時顯示的文件大小,其數(shù)值以千為單位進行分隔,使用此參數(shù)即“DIR/-C”將取消顯示中的分隔符,以滿足部分人的視覺習(xí)慣。

          增加參數(shù):/Q
          參數(shù)說明:Windows是多用戶操作系統(tǒng),使用此參數(shù)即“DIR /Q”列文件、目錄時,將顯示出文件、目錄的用戶屬性。

          增加參數(shù):/T:C、/T:A、/T:W
          參數(shù)說明:使用此參數(shù)即“DIR/T:C”、“DIR/T:A”、“DIR/T:W”分別顯示文件、目錄的創(chuàng)建時間、上次訪問時間和上次修改時間。

          增加參數(shù):/X
          參數(shù)說明:使用此參數(shù)即“DIR/X”列文件、目錄時,會對長文件名同時顯示“8.3”格式的文件名。

          命令:CD,改變目錄

          增加參數(shù):/D
          參數(shù)說明:此參數(shù)的作用是快速改變當前目錄,比如當前目錄是C:\Windows,使用命令“CD/D E:\Tools”可快速切換到E:\Tools目錄下。注:只有在Win XP的“運行”文本框中輸入“CMD”得到的DOS窗口中才能使用此參數(shù)。

          命令:MD,建立目錄

          功能說明:此命令并未增加參數(shù),但是增強了功能,它可一次建立多級子目錄, 例如使用命令“MD AA\BB\CC\DD”將一次性創(chuàng)建AA、BB、CC、DD四級子目錄。而在老版本的DOS中,若不存在AA子目錄,便無法直接建立AA下的BB等深層子目錄。

          命令:RD,刪除目錄

          增加參數(shù):/S
          參數(shù)說明:使用此參數(shù)即“RD/S”用于刪除目錄樹,即刪除目錄及目錄下的所有子目錄和文件,相當于以前版本中的DELTREE命令。

          增加參數(shù):/Q
          參數(shù)說明:使用上面的/S參數(shù)刪除目錄樹時,系統(tǒng)會要求用戶確認是否真的要刪除。若同時使用/Q參數(shù)即“RD/S /Q”,在進行刪除操作時將取消確認,相當于DELTREE命令的/Y參數(shù)。

          命令:DEL,刪除文件或目錄

          增加參數(shù):/F
          參數(shù)說明:使用此參數(shù)即“DEL/F”可刪除只讀文件。

          增加參數(shù):/S、/Q
          參數(shù)說明:使用此參數(shù)即“DEL/S”作用與“RD/S”完全相同,即刪除目錄及目錄下的所有子目錄和文件。同時使用參數(shù)/Q,可取消刪除操作時的系統(tǒng)確認。

          增加參數(shù):/A
          參數(shù)說明:刪除指定屬性或指定屬性以外的文件,/AR、/AH、/AS、/AA分別表示刪除只讀、隱藏、系統(tǒng)、存檔文件,/A-R、/A-H、/A-S、/A-A表示刪除除只讀、隱藏、系統(tǒng)、存檔以外的文件。例如“DEL/AR *.*”表示刪除當前目錄下所有只讀文件,“DEL/A-S *.*”表示刪除當前目錄下除系統(tǒng)文件以外的所有文件。

          命令:ATTRIB,更改文件或目錄的屬性

          增加參數(shù):/D
          參數(shù)說明:在Win XP中我們不能把文件或文件夾設(shè)置為系統(tǒng)屬性,只能設(shè)為只讀、隱藏或存檔屬性。而帶參數(shù)/D使用ATTRIB命令可以對文件的所有屬性進行設(shè)定,設(shè)定時必須與參數(shù)/S同時使用。例如“ATTRIB /S /D +S D:\Study”,作用是將D:\Study文件夾設(shè)置為系統(tǒng)文件夾。

          命令:Format,格式化磁盤

          增加參數(shù):/FS:filessystem
          參數(shù)說明:按指定文件系統(tǒng)類型(FAT、FAT32、NTFS)格式化磁盤,例如“Format /FS:NTFS”。

          命令:DATE、TIME,顯示系統(tǒng)日期和時間

          增加參數(shù):/T
          參數(shù)說明:使用此參數(shù)即“DATE/T”、“TIME/T”將只顯示當前日期和時間,而不必輸入新日期和時間

          Win2000/XP應(yīng)用之奇技酷招

          每個Windows用戶都希望Windows的啟動速度越快越好,不過,如果你想讓W(xué)indows啟動速度更快些,還要掌握一些加速Windows啟動的獨門秘技!

          1.不容忽視的磁盤IDE通道

          Windows XP中有一個非常影響啟動速度的設(shè)置,那就是磁盤IDE通道。一般來說,Windows XP用戶不需要安裝主板的IDE驅(qū)動或補丁程序,ULTRA DMA功能就已經(jīng)打開了。也正因為如此,絕大多數(shù)用戶會讓IDE通道處于自動狀態(tài),但這會導(dǎo)致Windows XP啟動變慢——因為主板可以連接四個IDE設(shè)備,但大多數(shù)電腦只有兩個IDE設(shè)備,即硬盤和光驅(qū)。少數(shù)人可能有單硬盤、雙光驅(qū)(DVD和刻錄機)或雙硬盤、單光驅(qū),即便這樣也只有三個IDE設(shè)備,所以一般都有1~2個IDE通道處于空閑狀態(tài)。此時,你應(yīng)該把并不存在的IDE設(shè)備設(shè)置為“無”,而不是“自動檢測”。

          提示:設(shè)置IDE通道的方法是:單擊“開始→控制面板”,雙擊“系統(tǒng)”,切換到“硬件”選項卡,單擊“設(shè)備管理器”,再雙擊“IDE ATA/ATAPI控制器”。雙擊下面的“主要IDE通道”或“次要IDE通道”。我們可以看到,“設(shè)備0”下面的“設(shè)備類型”不可選,表明該IDE通道目前已被使用。“設(shè)備1”下面的“設(shè)備類型”可選,如果你近期內(nèi)不再添加新的IDE設(shè)備,可以將“設(shè)備類型”設(shè)置為“無”。

          2.禁用服務(wù)和啟用Power User

          Windows 2000/XP的啟動速度要比Windows 9x/Me慢,眾多的服務(wù)是重要因素之一,因此普通用戶禁用一些無用的服務(wù),對啟動速度也有很大幫助:

          alerter (用戶不在局域網(wǎng)并且不需要管理警報)

          clipbook (用戶不需要查看遠程剪貼簿的剪貼頁面)

          distributed link tracking client (用戶不使用NTFS分區(qū)并且沒有連入局域網(wǎng))

          distributed transaction coordinator (不需要同時處理多個數(shù)據(jù)庫或文件系統(tǒng))

          fax service (不需要發(fā)送或接收傳真)

          ftp publishing service(你的電腦不做為FTP服務(wù)器使用)

          iis admin service (你的電腦不做為Web服務(wù)器使用)

          另外,建議大家創(chuàng)建一個Power User用戶,平時用它來登錄Windows 2000/XP,因為相比管理員身份,它啟動的服務(wù)更少同時也更加安全。

          3.及時清理日志文件

          Windows 2000/XP的日志文件比較容易被用戶忽視。其實當我們每次開關(guān)機、運行程序、系統(tǒng)報錯時,這些信息都會被記錄下來,保存在日志文件中。但日志文件會隨著時間的增長越來越大,從而影響了系統(tǒng)啟動速度。我們可以自己指定日志文件的大小及處理方式:

          進入“開始→設(shè)置→控制面板→管理工具”,雙擊“事件查看器”或是單擊“開始→運行”,輸入“eventvwr.msc”后回車,即可打開“事件查看器”,在右側(cè)窗口中可看到應(yīng)用程序日志、安全日志和系統(tǒng)日志。在任意一種日志上面右擊并選擇“屬性”,就可以在如圖所示的對話框中為日志文件設(shè)定最大值,還可以選擇當日志滿了以后的處理方式——一般來說讓它自動覆蓋一段時間以前的舊日志,這樣日志文件就永遠不會超出指定大小。單擊“篩選器”選項卡可以指定需要寫入日志文件的事件類型。


          設(shè)置“系統(tǒng)日志”的屬性

          4.借花獻佛加快Windows 2000 啟動

          Windows XP相比Windows 2000在很多方面進行了優(yōu)化改進,因而啟動速度更快,那么能不能讓W(xué)indows 2000也可以享受這樣的好處呢?其實,只要找到Windows XP相應(yīng)語言版本文件,然后替換Windows 2000的相應(yīng)文件即可。這兩個文件為NTLDR、NTDETECT.COM,它們都在系統(tǒng)分區(qū)的根目錄下。當然,為了防止Windows 2000出錯,建議用戶在替換這兩個文件前備份Windows 2000原有的同名文件。

          5.讓藍色滾動條只滾動一圈

          這是一個適用于Windows XP的秘技。打開“注冊表編輯器”,依次展開[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters]分支,然后雙擊右側(cè)窗口中的DWORD值“EnablePrefetcher”,將其值由“3” 改為“1”。退出注冊表編輯器并重啟電腦,你會發(fā)現(xiàn)進入Windows XP時藍色滾動條的滾動時間明顯減少了!

          posted @ 2009-09-23 09:26 rox 閱讀(357) | 評論 (0)編輯 收藏

          Java解壓多重zip壓縮包

              -- org.apache.commons.compress.archivers.zip.ZipFile結(jié)合ZipArchiveInputStream來實現(xiàn)

          針對前一篇文章Javazip-- ByteArrayOutputStream結(jié)org.apache.commons.compress現(xiàn)打包后的zip文件如何解壓的問題。

          部分代碼如下:



                  File f = new File("c:/test.zip");

                  ZipFile zf = new ZipFile(f, "gbk");

                  File folder = new File("c:/test");

                  if (!folder.exists()) {

                      folder.mkdirs();

                  }



                  for (Enumeration<ZipArchiveEntry> files = zf.getEntries(); files.hasMoreElements();) {



                      ZipArchiveEntry zae = files.nextElement();

                      String zipname = zae.getName();

                      if (zipname.endsWith(".zip")) {

                          String innerzip = StringUtils.removeEnd(zipname, ".zip");

                          File innerfolder = new File(folder + File.separator + innerzip);

                          if (!innerfolder.exists()) {

                              innerfolder.mkdirs();

                          }

                          ZipArchiveInputStream zais = new ZipArchiveInputStream(zf.getInputStream(zae), "GBK", true);

                          FileOutputStream fos = null;

                          ZipArchiveEntry innerzae = null;

                          while ((innerzae = zais.getNextZipEntry()) != null) {

                              fos = new FileOutputStream(folder + File.separator + innerzip + File.separator + innerzae.getName());

                              IOUtils.copy(zais, fos);

                          }

                          zais.close();

                          fos.flush();

                          fos.close();

                      } else {

                          ZipArchiveEntry packinfo = zf.getEntry(zipname);

                          String filename = folder + File.separator + zipname;

                          FileOutputStream fos = new FileOutputStream(filename);

                          InputStream is = zf.getInputStream(packinfo);

                          IOUtils.copy(is, fos);

                          is.close();

                          fos.flush();

                          fos.close();

                      }

                  }

                  zf.close();



          解包后效果如下圖:

           



          參考資料:

          1、《Java打多重zip壓縮包 -- ByteArrayOutputStream結(jié)合org.apache.commons.compress來實現(xiàn)》

          http://docs.google.com/View?id=ajfmzbdvh8wz_38ftxv59f6



          2Apache Commons Compress

          http://commons.apache.org/compress/



          3、本文地址

          http://docs.google.com/View?id=ajfmzbdvh8wz_44cbjdbrfn







           

          posted @ 2009-07-28 19:02 rox 閱讀(6667) | 評論 (0)編輯 收藏

          Java打多重zip壓縮

              -- ByteArrayOutputStream結(jié)合org.apache.commons.compress來實現(xiàn)



          也就是很多個zip文件,但是打包的時候,部分要先集中到一個zip文件后,再寫入總的zip文件。

          可以采用臨時文件夾的方式來解決,下面也是一種解決方法,部分代碼如下:



                  File f1 = new File("C:/boot.ini");

                  File f2 = new File("C:/NTDETECT.COM");



                  final ByteArrayOutputStream baos = new ByteArrayOutputStream() ;



                  //changed @ 20097218:37:41

                  //ArchiveOutputStream ostemp = new ArchiveStreamFactory().createArchiveOutputStream("zip", baos);

                  ZipArchiveOutputStream ostemp = new ZipArchiveOutputStream(baos);

                  ostemp.setEncoding("GBK");



                  ostemp.putArchiveEntry(new ZipArchiveEntry(f1.getName()));

                  IOUtils.copy(new FileInputStream(f1), ostemp);

                  ostemp.closeArchiveEntry();



                  ostemp.putArchiveEntry(new ZipArchiveEntry(f2.getName()));

                  IOUtils.copy(new FileInputStream(f2), ostemp);

                  ostemp.closeArchiveEntry();



                  ostemp.finish();

                  ostemp.close();





                  final OutputStream out = new FileOutputStream("c:/test.zip");

                  ArchiveOutputStream os = new ArchiveStreamFactory().createArchiveOutputStream("zip", out);



                  os.putArchiveEntry(new ZipArchiveEntry("打包.zip"));

                  baos.writeTo(os);

                  os.closeArchiveEntry();



                  baos.close();



                  os.finish();

                  os.close();

          [changed @ 20097218:37:41]

          當初查資料時,就知道有個亂碼錯誤,自己從沒發(fā)現(xiàn)過,后來發(fā)現(xiàn)是因為winrar 3.8已經(jīng)解決了這個問題。

          但是為了和其他兼容,修改了代碼。



          打包后效果如下圖:

           

          參考資料:

          1Commons Compress

          http://labs.xiaonei.com/apache-mirror/commons/compress/binaries/commons-compress-1.0-bin.tar.gz



          2java.io.ByteArrayOutputStream

          http://java.sun.com/javase/6/docs/api/java/io/ByteArrayOutputStream.html



          3、本文地址

          http://docs.google.com/View?id=ajfmzbdvh8wz_38ftxv59f6

           

          posted @ 2009-07-02 17:04 rox 閱讀(1785) | 評論 (0)編輯 收藏

           

            Apache Solr集成至Tomcat

              原有系統(tǒng)已經(jīng)開發(fā),框架以SSH為基礎(chǔ),頁面編碼GBK,數(shù)據(jù)庫為oracle,容器為tomcat6,需要整合全文檢索,下面只是一個簡單的整合測試。

          1、嵌入Tomcat

          解壓 apache-solr-1.3.0.tgz,拷貝apache-solr-1.3.0\example\example-DIH\solr目錄到Tomcat的安裝目錄后,修改solr目錄中的solr.xml,屏蔽rss部分的配置,內(nèi)容如下:

          <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
          <solr sharedLib="lib" persistent="true">
           <cores adminPath="/admin/cores">
            <core default="true" instanceDir="db" name="db"></core>
          <!--
            <core default="false" instanceDir="rss" name="rss"></core>
           -->
           </cores>
          </solr>

          • 刪除Tomcat\solr\rss目錄
          • Tomcat\solr\db\lib目錄下添加必要jarojdbc14.jarslf4j-jdk14-1.5.5.jarslf4j-api-1.5.5.jarsolr-dataimporthandler-1.4-SNAPSHOT.jar
          • 拷貝apache-solr-1.3.0\example\webapps\solr.warTomcat\webapps目錄下。
          • 創(chuàng)建Tomcat\conf\Catalina\localhost\solr.xml,內(nèi)容如下:

          <Context docBase="${catalina.home}/webapps/solr.war" debug="0" crossContext="true" >
             <Environment name="solr/home" type="java.lang.String" value="${catalina.home}/solr" override="true" />
          </Context>

          • 修改Tomcat\conf\server.xml,添加一個端口為8983Connector,內(nèi)容如下:

          <Connector port="8983" protocol="HTTP/1.1" 

                         connectionTimeout="20000" 

                         redirectPort="8443" URIEncoding="UTF-8"/>





          2、配置DataImportHandler

          change @ 20097110:19:57

              主要修改Tomcat\solr\db\conf\db-data-config.xmlTomcat\solr\db\conf\schema.xmlTomcat\solr\db\conf\solrconfig.xml,三個配置文件:

          • db-data-config.xml

          <dataConfig>

              <dataSource driver="oracle.jdbc.driver.OracleDriver"

              url="jdbc:oracle:thin:@localhost:1521:orcl"

              user="solr" password="solr" batchSize="50"/>

              <document name="contents" >

                  <entity name="content" pk="ID"

                  query="select * from CONTENT"

                  deltaQuery="select ID from CONTENT where to_char(PUBTIME,'yyyy-mm-dd hh24:mi:ss') > '${dataimporter.last_index_time}'"

                  transformer="ClobTransformer">

                      <field name="title" column="TITLE" />

                      <field column="CONTENT" clob="true"/>

                      <field name="pubtime" column="PUBTIME" />

                  </entity>

              </document>

          </dataConfig>

          • schema.xml

              types標簽最后,追加fieldtype,名稱為text_cjk,中日韓分詞分析器;

              ......



              <fieldtype name="text_cjk" class="solr.TextField"> 

                <analyzer class="org.apache.lucene.analysis.cjk.CJKAnalyzer"/> 

              </fieldtype>



           </types>



              屏蔽或清除<fields></fields>中的全部代碼,并添加如下內(nèi)容:

           <fields>

             <field name="id" type="slong" indexed="true" stored="true" required="true" /> 

             <field name="title" type="text_cjk" indexed="true" stored="false"/>

             <field name="content" type="text_cjk" indexed="true" stored="true"/>

             <field name="pubtime" type="date" indexed="true" stored="true"/>

             <field name="searchtext" type="text_cjk" indexed="true" stored="false" multiValued="true"/>

           </fields>



              修改默認唯一索引為先前定義的id

           <uniqueKey>id</uniqueKey>



              修改默認搜索字段為先前定義的searchtext,并將要搜索的titlecontent都拷貝到searchtext中,方便統(tǒng)一檢索:

          ......



           <defaultSearchField>searchtext</defaultSearchField>

          ......



             <copyField source="title" dest="searchtext"/>

             <copyField source="content" dest="searchtext"/>

          ......

           

          add @ 20097110:19:57

          • solrconfig.xml

              修改<dataDir></dataDir>標簽中的檢索數(shù)據(jù)存放路徑。內(nèi)容如下:

          <dataDir>${catalina.home}/solr/db/data</dataDir>

           

           



          3、導(dǎo)入和查詢:

          • 完全導(dǎo)入:
            http://localhost:8983/solr/db/dataimport?command=full-import
          • 增量導(dǎo)入:
            http://localhost:8983/solr/db/dataimport?command=delta-import
          • 查詢
            http://localhost:8983/solr
            點擊db,進入一個搜索頁面,填入如下內(nèi)容:

          pubtime:[2007-11-16T00:00:00Z TO 2008-11-28T00:00:00Z]

          AND

          工作;

          pubtime desc

              點擊搜索,測試。

          4xml解析:

          一個簡單solr查詢結(jié)果的輔助搜索類,內(nèi)容如下:



          import java.net.URL;

          import java.util.ArrayList;

          import java.util.Date;

          import java.util.List;



          import org.dom4j.Document;

          import org.dom4j.Node;

          import org.dom4j.io.SAXReader;

          import org.apache.commons.lang.time.DateUtils;



          public class SolrUtils {

          private List<Node> docs = new ArrayList<Node>();

          private Number numFound = 0;

          private Document doc;

          public List<Node> getDocs() {

          return docs;

          }



          public Number getNumFound() {

          return numFound;

          }

          @SuppressWarnings("unchecked")

          public SolrUtils(String urlString) {

          doc = documentFromURL(urlString);

          if (doc != null ) {

          docs = (List<Node>)doc.selectNodes("/response/result/doc");

          numFound = doc.numberValueOf("/response/result/@numFound");

          }

          }

          public Document documentFromURL(String urlString){

          try {

          SAXReader reader = new SAXReader();

          URL url = new URL(urlString);

                 doc = reader.read(url);

                 return doc;

          } catch (Exception e) {

          e.printStackTrace();

          }

          return null;

          }



          public static String valueOf(Object obj, String name){

          return valueOf(obj, "str", name);

          }

          public static Date dateValueOf(Object obj, String name){

          String[] parsePatterns = new String[]{

          "yyyy-MM-dd'T'HH:mm:ss'Z'",

          "yyyy-MM-dd'T'HH:mm:ss.S'Z'",

          "yyyy-MM-dd'T'HH:mm:ss.SS'Z'",

          "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",

          };

          try {

          return DateUtils.parseDate(valueOf(obj, "date", name), parsePatterns);

          } catch (Exception e) {

          e.printStackTrace();

          }

          return null;

          }

          public static String valueOf(Object obj, String type, String name){

          String path = "./" + type + "[@name='" + name + "']";

          if (obj instanceof Node) {

          Node n = (Node)obj;

          return n.valueOf(path);

          }

          return "";

          }

          public static Number numberValueOf(Object obj, String type, String name){

          String path = "./" + type + "[@name='" + name + "']";

          if (obj instanceof Node) {

          Node n = (Node)obj;

          return n.numberValueOf(path);

          }

          return null;

          }

          public static void main(String[] args) throws Exception {

          String url = "http://localhost:8983/solr/db/select/?q=*%3A*&version=2.2&start=0&rows=10&indent=on";

          SolrUtils su = new SolrUtils(url);

          System.out.println(su.getNumFound());

          System.out.println(su.getDocs().size());

          for (Node doc : su.getDocs()) {

          System.out.println(valueOf(doc, "id"));

          System.out.println(valueOf(doc, "title"));

          System.out.println(dateValueOf(doc, "pubtime"));

          }



          }



          }



          參考資料:

          1Apache Solr 的新特性

          http://www.ibm.com/developerworks/cn/java/j-solr-update/



          2Solr開發(fā)經(jīng)驗[]

          http://www.jinsehupan.com/blog/?p=25



          3slf4j-jdk14-1.5.5.jarslf4j-api-1.5.5.jarsolr-dataimporthandler-1.4-SNAPSHOT.jar

          https://svn.apache.org/repos/asf/lucene/solr/trunk/lib/slf4j-jdk14-1.5.5.jar

          https://svn.apache.org/repos/asf/lucene/solr/trunk/lib/slf4j-api-1.5.5.jar

          http://people.apache.org/repo/m2-snapshot-repository/org/apache/solr/solr-dataimporthandler/1.4-SNAPSHOT/solr-dataimporthandler-1.4-SNAPSHOT.jar



          4、本文地址

          http://docs.google.com/View?id=ajfmzbdvh8wz_37f4jv46gb








          posted @ 2009-06-28 01:19 rox 閱讀(3117) | 評論 (0)編輯 收藏

          原帖:http://space.itpub.net/29987/viewspace-51921

          有的時候我們看到多個異常的進程需要被kill掉,如果一個一個的去做的話,覺得實在是太慢,下面這里提供有兩種方法可以實現(xiàn)對有規(guī)律的結(jié)果做這個kill的動作。
          1.
          ps -ef | grep $1| awk '{print $2}' | xargs kill -9
          2.
          for i in `ps -ef|grep $1|awk '{print $2 }'`
          do 
          kill -9 $i 
          done

          另可以把ps語句再增加些參數(shù)如下:

          ps -ef|grep java| grep -v grep| grep $1| awk '{print $2}'

          posted @ 2009-01-07 09:42 rox 閱讀(653) | 評論 (0)編輯 收藏
               摘要: Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtm...  閱讀全文
          posted @ 2008-12-30 00:08 rox 閱讀(20163) | 評論 (2)編輯 收藏
          主站蜘蛛池模板: 平利县| 开封市| 富民县| 道真| 静海县| 会东县| 法库县| 固始县| 汉沽区| 象山县| 双鸭山市| 汶川县| 遵义市| 昭通市| 宜君县| 托里县| 银川市| 江口县| 信丰县| 西丰县| 大港区| 清镇市| 公安县| 锦州市| 磴口县| 正宁县| 焦作市| 故城县| 怀安县| 蕲春县| 玉门市| 朝阳市| 简阳市| 清原| 绥棱县| 濮阳市| 加查县| 民乐县| 祁连县| 拉萨市| 榆中县|