<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    cerulean

    2009年7月16日

    從上班開始沒多久,就開始用Evernote,是portable 2.2版本。
    好記性不如爛筆頭。真的是做到了隨手記,尤其是搜索功能簡單易用,用來挖很久以前記下的tips,界面也很簡潔,明了、夠用。
    備份也方便,反正換了電腦,文件夾直接拷貝,數據沒丟。

    就這樣,一用多少年過去了。
    如今,“印象筆記”在iphone應用推薦榜的筆記類里一直居高位,圖標也早就不是我v2.2的老土模樣,如果不是英文名字就叫evernote,我完全對不上號。
    人家其實從v3開始就不是老土的本地應用了,都講究“云”了。

    雖然手頭的v2.2完全滿足我隨手記一記的需求,但是,本著與時俱進和稍微保證一下數據的安全性,我還是下了個最近的v4.x的版本,結果發現還是要從v3開始才能導入v2的數據。嗯,看來是落后太久了。
    有一點夸獎一下:免費賬戶的每月上傳容量是有限的,但是對于我這種文本筆記,夠傳3w條的。

    ——嗯,其實,本來只是個小軟件的更新而已,竟然跑到blogjava寫上一篇,可能是因為伴隨感吧,再有點兒時過境遷的唏噓。
    posted @ 2012-11-22 11:35 cerulean 閱讀(448) | 評論 (1)編輯 收藏
    春節過后這幾天干的活兒就沒一件痛痛快快的?
    第一天是發現編譯環境有異動,我以為是代碼有問題,折騰了1天多。。。
    第二天是自己機器上的IE8抽瘋弄得我以為是build有問題。。。
    第三天從TimesTen轉到Psql的各種毛病。。。

    好吧。言歸正傳:
    1)找一個跟表無關的通用的單純的select語句作為測試語句不容易啊,
    Dual是Oracle自帶的表,其他DBS木有的。。不用Dual的話Oracle又不認。

    2)Cause: org.postgresql.util.PSQLException: Method org.postgresql.jdbc2.Jdbc2PreparedStatement.setQueryTimeout(int) is not yet implemented.
    這個錯誤,把sqlMapConfig.xml中在settings里配置的defaultStatementTimeout去掉就可以避免了。但是,這個配置對PSQL應該OK啊。。。待查

    【續】——
    defaultStatementTimeout 確實不是所有的driver都支持的。
    但去掉的話,TimesTen又不干了:太囧了。。。
    [TimesTen][TimesTen 7.0.5.9.0 CLIENT]Query Timeout must be numeric; if the Network Timeout
    is non-zero, the Query Timeout must be greater than zero and less than the Network Timeout, else if the Network Timeout is zero, the Query Timeout must be greater than or equal to zero.
    兜兜轉轉又遇到了這個之前遇到過的問題。這些driver就不能統一統一咩!

    posted @ 2012-02-01 17:32 cerulean 閱讀(1200) | 評論 (0)編輯 收藏
    parseInt(String s, int radix) 
    Parses the string argument as a signed integer in the radix specified by the second argument.

    今兒頭回用,真是……反省ing

    posted @ 2012-01-18 17:28 cerulean 閱讀(361) | 評論 (0)編輯 收藏
    文檔寫到現在,猛然說不上abbreviation 和 acronym 的區別。。。真是慚愧。。。
    abbreviation:單詞、語句的縮略形式,縮到短一點兒。
    acronym:“首字母”縮寫
    posted @ 2011-12-05 15:21 cerulean 閱讀(501) | 評論 (0)編輯 收藏
    之前都沒注意過有這么個方法,否則判斷日期格式就太不靠譜了。
    又是晦澀的單詞:setLenient(false),嚴格匹配日期格式
            SimpleDateFormat df = new SimpleDateFormat("MMddyyyy");
            
    /*
             * With lenient parsing, the parser may use heuristics to interpret inputs that 
             * do not precisely match this object's format. 
             * With strict parsing, inputs must match this object's format. 
             
    */
            df.setLenient(
    false);
            
    try {
                Date a 
    = df.parse("23232011");
                System.out.print(
    "date: " + a);
            } 
    catch (java.text.ParseException e) {
                
    // TODO Auto-generated catch block
                e.printStackTrace();
            }

    posted @ 2011-07-18 17:23 cerulean 閱讀(3206) | 評論 (0)編輯 收藏
    i18n,之前在J2EE里,自然用struts來做。但是Web Service里貌似應該不需要這部分,但是實際上,有些操作還是避免不了要支持多國語言。
    查了一圈兒,好像WS-i18n還在working draft的階段,而且好像已經好幾年了……也沒找到什么開源中間件的實現。
    大意是在SOAP header中加上<i18n:international>相關的標簽。
    因為畢竟是Web Service,利用http header還是不太妥,還是要放在SOAP里面。

    記錄一下查到的鏈接,備用。

    http://www.coderanch.com/t/224875/Web-Services/java/Web-Services-Internationalization-jax-ws
    For a SOAP web service the language/country code should be part of the SOAP request and possibly the SOAP response. You can always base your solution on the above WS-I18N working draft.
    Internationalization isn't as big a priority with SOAP web services as it is with web pages as web services are consumed by other applications - not humans. In most cases normalized "generic data" is exchanged which is displayed on the client using the client's locale. SOAP web services exchanging localized text are pretty much in the minority.

    http://www.w3.org/TR/ws-i18n/


    posted @ 2011-06-15 16:49 cerulean 閱讀(282) | 評論 (0)編輯 收藏
    這回是更加深深地體會到IDE的重要性了!
    想當初要不是eclipse,估計上手過程會很痛苦;
    后來myeclipse的官方網站竟然封掉了;
    現在,眼巴巴瞅著NetBeans美麗的GUI Builder,假如當年Swing那部分是用NetBeans開發的,或者NetBeans可以不要那個.form的文件直接解析代碼,就好了啊!!!
    唉……
    posted @ 2010-08-11 16:32 cerulean 閱讀(325) | 評論 (0)編輯 收藏
    繁瑣的登陸過程讓人抓狂,telnet到第一臺機器輸入用戶名之前,點擊SecureCRT里menu->Script->Start recording script,錄下接下來的步驟,然后點擊Stop recording script,就會提示保存腳本。以后登陸時,選擇Run腳本就可以了。
    posted @ 2010-07-07 08:54 cerulean 閱讀(297) | 評論 (0)編輯 收藏
    遍歷集合,批量刪除時,遇到ConcurrentModificationException
    因為操作的集合會在過程中遇到結構性的改變,例如:
    HashMap<String, String> testMap = new HashMap<String, String>();
            testMap.put(
    "1""a");
            testMap.put(
    "2""b");
            testMap.put(
    "3""c");
            Set
    <Map.Entry<String,String>> enterySet = testMap.entrySet();
            

            
    for(Iterator<Map.Entry<String, String>> i = enterySet.iterator(); i.hasNext();){
                Map.Entry
    <String, String> entry = i.next();
                
    if(entry.getValue().equalsIgnoreCase("a")){
                    testMap.remove(entry.getKey());
                }

            }


    解決方法:不要在集合上刪除,而是在迭代器上刪除:i.remove();

    p.s.還有另外一個可能性是多線程同時操作該集合了,那需要進行同步來避免。
    posted @ 2010-06-11 13:57 cerulean 閱讀(375) | 評論 (0)編輯 收藏
    引子只是個小問題,JTextArea多行文本,想設置文字的對齊方式為居中對齊,卻發現死活沒有合適有效的方法,又試了JTextField和JLabel,都不理想。搜了一溜夠看到JTextPane的解決方法,其實真是有點兒大材小用了。JTextPane里可以設置style,對齊方式、字體字號、顏色等等,并且還可以設置style的作用范圍,挺方便的。另外,想把文字區域背景設為透明的也是在API中找了一通,才發現敢情就是setOpacity,呃,對這個單詞實在是太不敏感了。。。。

    把在coderanch上搜的例子貼在這里吧,以防以后忘了:
    import java.awt.*;  
    import javax.swing.*;  
    import javax.swing.text.*;  
       
    public class Styling  
    {  
        
    public Styling()  
        
    {  
            String text 
    = "To refer to locations within the sequence, the " +  
                          
    "coordinates used are the location between two " +  
                          
    "characters.\nAs the diagram below shows, a location " +  
                          
    "in a text document can be referred to as a position, " +  
                          
    "or an offset. This position is zero-based.";  
       
            SimpleAttributeSet aSet 
    = new SimpleAttributeSet();   
            StyleConstants.setForeground(aSet, Color.blue);  
            StyleConstants.setBackground(aSet, Color.orange);  
            StyleConstants.setFontFamily(aSet, 
    "lucida bright italic");  
            StyleConstants.setFontSize(aSet, 
    18);  
       
            SimpleAttributeSet bSet 
    = new SimpleAttributeSet();  
            StyleConstants.setAlignment(bSet, StyleConstants.ALIGN_CENTER);  
            StyleConstants.setUnderline(bSet, 
    true);  
            StyleConstants.setFontFamily(bSet, 
    "lucida typewriter bold");  
            StyleConstants.setFontSize(bSet, 
    24);  
       
            JTextPane textPane 
    = new JTextPane();  
            textPane.setText(text);  
            StyledDocument doc 
    = textPane.getStyledDocument();  
            doc.setCharacterAttributes(
    105, doc.getLength()-105, aSet, false);  
            doc.setParagraphAttributes(
    0104, bSet, false);  
       
            JFrame f 
    = new JFrame();  
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
            f.add(
    new JScrollPane(textPane));  
            f.setSize(
    400,400);  
            f.setLocation(
    200,200);  
            f.setVisible(
    true);  
        }
      
       
        
    public static void main(String[] args)  
        
    {  
            
    new Styling();  
        }
      
    }
      
    posted @ 2010-03-10 17:20 cerulean 閱讀(7895) | 評論 (1)編輯 收藏
    之前用axis2生成代碼的時候都沒有在意過,一路用default configuration下來。
    前一陣子發現以前的代碼在生成時選擇的data binding不是用默認的adb方式,而是用xmlbeans。
    google了一番不同數據綁定的區別,好像也沒什么結果,大意就是adb的最簡單,但是有局限性;xmlbeans支持的比較全面,但是用起來有點兒復雜。不過,我也沒有體會出來xmlbeans強大在哪里……只是知道生成的代碼更多了,調用起來更繞彎子而已。。。

    server端用xmlbeans生成,client端用adb生成,互通是沒有問題的。
    client端用xmlbeans生成時,需要把產生于resources里面的所有.class文件打成jar包加到client端的build path里,否則運行client加載類的時候就會報錯了,好詭異,太不友好了。
    類似這種錯誤:

    ClassNotFoundException : Cannot load SchemaTypeSystem. Unable to load class with name schemaorg_apache_xmlbeans.system.s68C41DB812F52C975439BA10FE4FEE54.TypeSystemHolder. Make sure the generated binary files are on the classpath.


    所幸是在官方網站上有說明:http://ws.apache.org/axis2/tools/1_2/CodegenToolReference.html
    posted @ 2009-12-30 15:59 cerulean 閱讀(693) | 評論 (0)編輯 收藏
    一個JNLP文件中的資源必須由同一個證書簽名
    當需要不同證書時,可以創建多個JNLP文件,并在主JNLP文件中引用之。

    遇到過的問題:找不到子JNLP文件中的資源
    解決方法:竟然把子JNLP文件放到比主JNLP文件所在目錄低一級就可以了?!
    posted @ 2009-11-20 15:13 cerulean 閱讀(481) | 評論 (0)編輯 收藏

     

    JLabel.setText("<html>auto new line</html>");
    JLabel.setText("<html>line<br>force new line</html>");

     

    posted @ 2009-10-29 11:43 cerulean 閱讀(3442) | 評論 (1)編輯 收藏
    費了半天勁,敢情Firefox在3.0版本后又支持彈出modal window啦
    window.showModalDialog


    posted @ 2009-09-22 15:59 cerulean 閱讀(343) | 評論 (0)編輯 收藏
    HttpClient.getHttpConnectionManager().getParams().setSoTimeout()
    HttpClient.getHttpConnectionManager().getParams().setConnectionTimeout()

    第一個針對連接建立后,但是沒有收到response的超時時間,測試時可將server simulator收到request后等一段時間后再回response。
    出錯信息:
    java.net.SocketTimeoutException: Read timed out

    第二個針對連接建立的超時時間,測試時可將目的IP地址設為不存在的IP地址。
    出錯信息:
    org.apache.commons.httpclient.ConnectTimeoutException: The host did not accept the connection within timeout of 8000 ms
            at org.apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(ReflectionSocketFactory.java:154)
    默認值為0,如果不設置的話大概2分多鐘才會得到異常


    posted @ 2009-09-10 16:09 cerulean 閱讀(5176) | 評論 (1)編輯 收藏
    導入了某證書至truststore,建立SSL連接時遇到錯誤
    javax.net.ssl.SSLKeyException: RSA premaster secret error
    Caused by: java.security.InvalidKeyException: Illegal key size or default parameters

    在windows上雙擊查看該證書時發現Public Key是4096bit,查了一番后發現Java默認好像不能處理這么長的key,必須要按照JCE的一個Unlimited Strength Jurisdiction Policy
    http://java.sun.com/javase/downloads/index_jdk5.jsp里面就有下載,這樣貌似就可以處理這種強度比較高的了。


    posted @ 2009-09-08 17:24 cerulean 閱讀(2085) | 評論 (0)編輯 收藏
    打印數組的方法,小地方,卻老忘記,來自FindBugs的提示:
    The code invokes toString on an array, which will generate a fairly useless result such as [C@16f0472. Consider using Arrays.toString to convert the array into a readable String that gives the contents of the array.

    Arrays提供一系列接收不同類型數組作為參數的toString方法

    String[] array = new String[]{"a","b","c"};
    System.out.println(Arrays.toString(array));

    posted @ 2009-08-17 15:17 cerulean 閱讀(1178) | 評論 (0)編輯 收藏
    FindBugs,http://findbugs.sourceforge.net/
    發現代碼中潛在bug的工具,有eclipse的插件,安裝后右鍵單擊java project name,點擊Find Bugs,切換到FindBugs得perspective可以看到結果,速度還比較快,比之前用過的一個(雖然已經記不得名字了)快一些~具體的效果還是要逐個分析。

    Bug categories:

    Correctness bug
    Probable bug - an apparent coding mistake resulting in code that was probably not what the developer intended. We strive for a low false positive rate.
    Bad Practice
    Violations of recommended and essential coding practice. Examples include hash code and equals problems, cloneable idiom, dropped exceptions, serializable problems, and misuse of finalize. We strive to make this analysis accurate, although some groups may not care about some of the bad practices.
    Dodgy
    Code that is confusing, anomalous, or written in a way that leads itself to errors. Examples include dead local stores, switch fall through, unconfirmed casts, and redundant null check of value known to be null. More false positives accepted. In previous versions of FindBugs, this category was known as Style.
    Multithreaded correctness
         Incorrect lazy initialization and update of static field
         Calls Thread.sleep() with a lock held: better to use wait(lock)
         Synchronization on interned String could deadlock: 最好不用字符串,以免重復
    Performance
         invokes inefficient new String() constructor
         concatenates strings using + in a loop: better to use append StringBuffer
         inner class usage


    posted @ 2009-08-14 16:04 cerulean 閱讀(991) | 評論 (0)編輯 收藏
    Server

    創建本地證書:

    keytool -genkey -alias testserver-keyalg RSA -keystore keystore

    其中alias自己起一個別名,keystore為證書庫的文件路徑

    還可以加上-keysize 1024、2048、4096等來指定公鑰的大小,由此導出的證書查看時可以看到公鑰的大小是與之一致的。keysize越大genkey時耗費時間越長。


    會要求鍵入一個密碼,為這個證書庫的訪問密碼

    會要求填寫一些信息,姓名、單位、地區之類

    最后要求鍵入一個密碼,為這條證書別名的密碼

    導出cert

    keytool -export -alias testserver-file testcert.cer -keystore keystore

    這里的別名和文件名同上一步


    Client

    直接導入cert

    Truststore文件中存儲的是作為client,信任那些server的證書。所以需要將server提供的證書導入進來(當然可以導入n個),client才能信任。

    keytool -import -alias testserver-file testcert.cer -keystore truststore

    導入時需要輸入密碼,該密碼應該是truststore文件的訪問密碼,密碼正確才能修改其信息。

    提示是否信任該證書信息,確認。

    查看證書信息:

    keytool –list –v –keystore truststore

    如果導入過多個,則可以看到多條entry

    刪除某一個證書entry,通過指定別名來刪:

    keytool -delete -alias testserver-keystore truststore


    上述是自簽名的證書,證書鏈的長度只為
    1

    真正商用時,需要找相關機構(例如verisign)認證通過才能成為有效的證書:

    生成證書簽名請求:

    keytool -certreq -keyalg RSA -alias testserver -file certreq.csr -keystore keystore

    之后能夠收到一個證書文件,證書鏈信息包含了該機構的一些信息,然后再導入。


    有兩種方法建立
    HTTPS連接,

    一種是,在java中可以設置相關的4個系統參數,指向相關的keystore,truststore,一旦設置,在運行時就不可改變了。除非一定要使用多個不同的證書庫文件,否則可以把多個不同證書都導入到同一個證書庫里,這樣,設置系統參數為唯一的值也夠用,而且也比較簡單一些。

    另一種是,自己繼承相關接口實現自己的證書管理器,這樣可以自定義相關行為,也可以load不同的證書庫。


    如果不設置
    password,就認為不檢查文件完整性,也能通過。如果設置了password,但是不正確,則會遇到密碼錯誤的異常;如果server證書沒有導入到client得信任列表里,則會遇到找不到可信證書的異常。

    posted @ 2009-07-16 17:27 cerulean 閱讀(575) | 評論 (0)編輯 收藏

    導航

    <2009年7月>
    2829301234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    統計

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费又黄又爽又猛大片午夜 | 国产精品午夜免费观看网站| 无码日韩人妻av一区免费| 亚洲精品在线播放视频| 麻豆高清免费国产一区| 亚洲不卡1卡2卡三卡2021麻豆| 亚洲免费网站在线观看| 亚洲乱码无限2021芒果| 久久综合AV免费观看| 亚洲色丰满少妇高潮18p| 午夜爱爱免费视频| 国产午夜亚洲精品不卡| 亚洲一区二区三区国产精品| 精品国产呦系列在线观看免费| 亚洲午夜AV无码专区在线播放| 伊人久久大香线蕉免费视频| 亚洲午夜久久影院| 一二三四在线观看免费高清中文在线观看 | 亚洲AV人人澡人人爽人人夜夜| 免费女人高潮流视频在线观看| 亚洲综合男人的天堂色婷婷| 西西大胆无码视频免费| 特级毛片全部免费播放a一级| 久久精品国产亚洲7777| 日韩视频免费在线观看| 色偷偷亚洲女人天堂观看欧| 免费A级毛片无码久久版| aaa毛片免费观看| 久久av无码专区亚洲av桃花岛| 毛片高清视频在线看免费观看| 亚洲av无码成人精品国产| 亚洲伊人色欲综合网| 18禁免费无码无遮挡不卡网站| 黄色网址在线免费观看| 亚洲天堂视频在线观看| 国产免费131美女视频| 日韩视频在线观看免费| 综合一区自拍亚洲综合图区| 国产成人A人亚洲精品无码| 性xxxx视频播放免费| a毛片在线还看免费网站|