1、
代碼:Toolkit.getDefaultToolkit().setDynamicLayout(true);
功能:動態(tài)調(diào)整Components的位置和大小 as soon as Parent Container resized.
2、
代碼:UIManager.put("swing.boldMetal", Boolean.FALSE);
功能:用默認的Metal Layout時,字體一般都是粗體,不咋好看,用上述代碼可以改為常規(guī)字體
在一個Editor的Tab上單擊右鍵,選擇New Editor,可以對當前文件打開一個新的編輯器。
兩個編輯器是同步的。
前段時間,團隊開始實施一個新項目。這個項目有著中國IT行業(yè)的三個共同特點:需求繁、工期緊、資源缺。
雖然從目前情況來看,它還有希望不會淪為“死亡項目”,但如果實施過程中不小心翼翼、步步為營,結(jié)局
就很難預料了。
雖然有著諸多不利因素,但是我們團隊也還有一些有利因素,也許可以主宰項目的命運:
1)開明的領(lǐng)導。俺們的各級領(lǐng)導都算通情達理,不會做那種拍腦袋下結(jié)論、趕鴨子上架的事情;
2)詳盡和準確的需求調(diào)研。前期的很多準備工作不是白作的,最后出來的需求調(diào)研文檔基本反映了用戶的最終
需求;
3)迭代的設計評審制度。大量時間花在編碼前的設計上是值得的,原因我就不多說了,凡是學過PM的都清楚;
4)陸續(xù)加入的資源。(這一點很有可能從優(yōu)勢變?yōu)榱觿荩驗檎l都知道項目中途加入新人只會影響進度)
在項目的初期,作為一個普通員工,在這種情況下最應該做什么呢?我覺得最重要的一樣事情是做好個人計劃。
不是從項目管理出發(fā)的那種整體計劃,而是針對自己的任務(功能點)出發(fā)的個人計劃--WBS清單:
項目經(jīng)理制訂的項目計劃通常都比較粗線條,并沒有具體到一個個的功能點,只是給出了哪個模塊由誰負責、在
哪個期限之前完成。如果你不去自己細化它,而是抱著一種做了多少是多少的態(tài)度來實施這個計劃,那么可能有
兩個問題出現(xiàn):
1)你負責的模塊對于整個項目來說是個不可見的“黑盒子”,沒人知道它到底完成到什么程度、完成得怎么樣、
存在什么問題。連你自己都不知道自己的進度情況,領(lǐng)導就更不知道了,說不定就會出現(xiàn)拍腦袋的事情出現(xiàn);
2)萬一由于資源、時間或者技術(shù)難關(guān)的原因無法按時完成任務,那你就成了整個項目進度拖延的罪魁禍首--
領(lǐng)導會問你:既然有問題,為什么不早提出來?為什么要等到項目工期近了才提出來?
為了避免成為罪人,就要做一個聰明的項目參與者。首先要做的是制訂一份有關(guān)個人的詳細的WBS(Work Breakout
Structure,工作分解結(jié)構(gòu))清單。把自己的負責的模塊的功能點全部列出來,注明每一項可能需要花費的時間、前提
條件、可能存在風險等。其目的無非是使得自己的工作足夠透明、使得自己的工作時刻處于可控狀態(tài)。
制訂完WBS清單之后,當然是把它呈現(xiàn)給項目經(jīng)理看,通常這個時候你的臺詞應該是:“hello,經(jīng)理,這是我的詳
細計劃。根據(jù)我的評估,你分派給我的任務,是無法在項目限期內(nèi)完成的,請你給我多分派人手、或者裁剪一下需
求,要不,發(fā)我雙薪讓我拼命加班?”
如果在你有WBS為據(jù)的前提下,經(jīng)理還是逼迫你去完成原來規(guī)定的任務,我想這個時候你是不是應該考慮一下項目
失敗之后你的出路啦?
最后是幾個需要注意的問題:
1)留余地。 制訂計劃一定要正常,不要把自己的一天工作時間安排到12個小時,不要把自己的周末時間全部占用,
不要忽略了陪老婆孩子、打球、生病的時間;
2)計劃與需求密切配合。要知道項目的驗收是看需求的,如果你的計劃能夠與需求上的每一個用例密切配合,相信
領(lǐng)導會覺得你的WBS清單更可信更科學,而且這樣的計劃實施起來也會很爽的;
3)在出現(xiàn)意外情況時(例如領(lǐng)導要你臨時接點額外任務時),記得拿出你的WBS清單,跟領(lǐng)導講價:“工期給我延
長幾天吧?”? 如果不這樣,你還是一樣會很有可能成為一個可憐的失敗的項目參與者,呵呵。
Source:做一個聰明的項目參與者--制訂WBS清單
下載一個商業(yè)軟件進行學習和研究使用時,我們一些同學會立即找他的破解方法,而且在安裝后的第一時間將它破解。
其實我們很多軟件都不必破解的,他的試用期已經(jīng)足夠我們用了。我們現(xiàn)在用的軟件如Power Designer只是為了一時的課程學習使用,在其他時候一般是不用的,用Sql Server Manager就足夠了,大實驗中也就用個四五天。
還有一些我們只是做界面的時候才用,如JBuilder,別的部分可能就用Eclipse了,而JBuilder試用期好像有30天吧,即使以后真的還要用,我們再來破解也不遲啊(這樣的幾率還是不大的)。
這樣我們興許能夠減輕一下盜版的“罪名”,而且也能促使自己多使用開源免費軟件。
呵呵,隨感而發(fā),發(fā)現(xiàn)我應該多練一下自己的寫作水平和表達能力了: )
public void run()
{
if(isSetToFront)
{
this.toFront();
}
}
界面 (繼承JWindow) extends Thread 或 implements Runnable, run之后sleep一下。
可用于Splash Window。
long single = fileBean.getLength()
// fileBean.getSplits().length;
// 設定所有子線程的起點
for (int i = 0; i < fileBean.getSplits().length; i++)
{
?? fileBean.getSplits()[i][0] = (long) (i * single);
}
// i end = i+1 start
for (int i = 0; i < fileBean.getSplits().length - 1; i++)
{
?? fileBean.getSplits()[i][1] = fileBean.getSplits()[i + 1][0];
}
// set end to length
fileBean.getSplits()[fileBean.getSplits().length - 1][1] = fileBean.getLength();
if (index > 0 && conn.responseCode != 206)
{
?? log.debug("由于服務器不支持斷點續(xù)傳,子線程無法運行");
? ?return;
}
獲取剪貼板:
Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable contents = clip.getContents(this);
try {
?? String str = (String) contents.getTransferData(DataFlavor.stringFlavor);
?? if (str.startsWith("http://")) {
????? ?remote.setText(str);
??? }
統(tǒng)一界面字體設置(其他UI設置也可用這種思想,有點像CSS)
setUIFont(new javax.swing.plaf.FontUIResource(null, Font.PLAIN, size));
public static void setUIFont(javax.swing.plaf.FontUIResource f)
{
?? ?java.util.Enumeration keys = UIManager.getDefaults().keys();
?? while (keys.hasMoreElements())
?? ?{
??????? Object key = keys.nextElement();
??????? Object value = UIManager.get(key);
??????? if (value instanceof javax.swing.plaf.FontUIResource)
??????????? ?UIManager.put(key, f);
??? }
}
漫漫長假,悠悠歲月
(WinXP)
在開始--〉運行,輸入:
at 12:30 shutdown -s
即在12:30關(guān)閉計算機。取消關(guān)機可輸入:shutdown -a (還記得當年怎么對付LoveGate嗎?:))
要想在Win2000中使用,可將WinXP system32下的shutdown.exe拷入
自己定制可參考:shutdown /?
用法: shutdown [-i | -l | -s | -r | -a] [-f] [-m \\computername] [-t xx] [-c "co
mment"] [-d up:xx:yy]
沒有參數(shù) 顯示此消息(與 ? 相同)
-i 顯示 GUI 界面,必須是第一個選項
-l 注銷(不能與選項 -m 一起使用)
-s 關(guān)閉此計算機
-r 關(guān)閉并重啟動此計算機
-a 放棄系統(tǒng)關(guān)機
-m \\computername 遠程計算機關(guān)機/重啟動/放棄
-t xx 設置關(guān)閉的超時為 xx 秒
-c "comment" 關(guān)閉注釋(最大 127 個字符)
-f 強制運行的應用程序關(guān)閉而沒有警告
-d [u][p]:xx:yy 關(guān)閉原因代碼
u 是用戶代碼
p 是一個計劃的關(guān)閉代碼
xx 是一個主要原因代碼(小于 256 的正整數(shù))
yy 是一個次要原因代碼(小于 65536 的正整數(shù))
• Custom license specific to the product
• Sometimes allows free use for non-profit organizations
• Sometimes allows free use for everyone
• Usually prohibits reverse engineering
• Usually prohibits redistribution
• Rarely includes source code
• May include all sorts of bizarre terms
GNU/General Public License (GPL)
• You are free to do whatever you want with the source code (modify, redistribute, etc.)
• But… any changes you make that you distribute must also be GPL
• And… any code you distribute that uses GPL code must be available under GPL
• Defeats “embrace and extend”
• Often called “viral” by both friend and foe
GNU Lesser General Public License (LGPL)
• Used to be called “Library GPL”
• Non-LGPL code can use it without becoming LGPL (e.g. linking during compile)
• Resulting combined executable is LGPL
• Many people think this means that you can use LGPL Java libraries from non-LGPL code
• Not clear whether that interpretation is correct
• We are not your lawyers :)
BSD/Apache Licenses
• You can freely use, modify, re-license, etc. as long as you maintain the copyright notices
• You can include the code in a commercial product without releasing your source code
• You can embrace and extend
• Safest for corporate use
From:WebService中返回類型一部分是數(shù)組
Suggestion:用ArrayList裝數(shù)據(jù)后一定要trimToSize。
當我們調(diào)用new ArrayList()時,list默認的capacity為10,當你加入數(shù)據(jù)后,list的size為裝入的對象個數(shù),但capacity仍為10,若此時你調(diào)用list.toArray()將其轉(zhuǎn)化為數(shù)組,該數(shù)組大小將為capacity,數(shù)組中后面的(capacity - size)個對象將置為null,此時最容易拋出ClassCastException(當將數(shù)組強制類型轉(zhuǎn)換時)或出現(xiàn)莫名其妙的problem。
???我的疑問:
為什么我要調(diào)用toArray(new MyRealType[1])才能得到正確結(jié)果,而直接用toArray()也會拋出CastException,而且在調(diào)試時不能檢視result的值(在toArray方法中)?
I was exhausted, because of the Amazon on our WebService course.
I expended nearly 2 days to solve some problems on the interoperation between Java Axis and .Net Client.
The error is always:
No serializer for cn.andy.amazon.AndyItem found in the org.apache.axis Registry.!!!
I should have been spending more time look for Resources.
I think it's due to the version confliction. I down the 1.2RC of Axis and it do nothing.
My Classmate give me a hypelink of axis when asking me solutions.
I look through the page, my god, exactly what I want.
Solution:
Axis know how to serialize javabean, but you should tell him which type is a javabean
to serialize in the server-config.wsdd.
put this in your server-config.wsdd according to your app:
<service name="SmsService" provider="java:RPC">
<parameter name="className" value="lius.axis.demo.SmsService"/>
<parameter name="allowedMethods" value="send"/>
<operation name="send" returnType="ns:Response">
<parameter name="msg" type="ns:Message"/>
</operation>
<!-- 這里定義了方法的參數(shù)以及返回值 -->
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
qname="ns:Message"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
type="java:lius.axis.demo.Message" xmlns:ns="SmsService"/>
<typeMapping
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
qname="ns:Response"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:lius.axis.demo.Response" xmlns:ns="SmsService"/>
</service>
Everything goes well now!
Resource:
http://www-900.ibm.com/developerWorks/cn/webservices/ws-deepaxis/index.shtml
連接點是程序執(zhí)行中明確定義的點,比如,類接受到方法調(diào)用時,方法調(diào)用時,屬性訪問時都是連接點的例子,在連接點處可以執(zhí)行預定義的額外實現(xiàn)。而要指明在哪些連接點上執(zhí)行,則需要定義切入點,切入點可以在程序運行時匹配特定的連接點,AspectJ中預定義了一系列標準切入點,包括方法與構(gòu)造器的調(diào)用,接受調(diào)用,執(zhí)行,域的get,set訪問,異常處理,實例類型匹配,處于類或方法體中,控制流中,調(diào)用者調(diào)用方法,類型的初始化與靜態(tài)初始化,通過這些預定義切入點的組合可以實現(xiàn)自定義的、復雜的切入點。在編譯時,方面中的參考將被轉(zhuǎn)化為標準的方法,類代碼中匹配切入點的連接點將被轉(zhuǎn)化為一個靜態(tài)的標記點。
靜態(tài)橫切是指對已存在的類型定義引入新的方法,屬性等,與動態(tài)橫切不同,靜態(tài)橫切不改變類型的動態(tài)行為,而是改變其靜態(tài)結(jié)構(gòu),也即導入(Introduction)。通過在方面代碼中聲明方法,屬性,需要繼承的超類,接口等,在代碼織入時,可以改變應用此方面的類的定義。
因為MyIE不能正常顯示IE里的一個插件,我決定換換別的瀏覽器,從朋友處聽說MyIE的下一個版本名字叫Maxthon,MyIE還有一個姐妹叫GreenBrowser。都下下來試一試。結(jié)果也都不能正常顯示(連找都找不著)。第一次打開Maxthon時,它提示發(fā)現(xiàn)有第三方插件。于是乎我跑到安裝目錄下,真的有一個Plugin目錄,里面是一些好用東東:去除網(wǎng)頁中動態(tài)元素(這樣看文章就舒服多了)、分析網(wǎng)頁(可以選擇下載圖片和swf、查看CSS,哈哈哈,對制作網(wǎng)頁應該挺有幫助)、解除某些網(wǎng)頁中對鼠標的限制。。。
他們?nèi)牟寮娌患嫒莅ⅲ伎降組yIE的Plugin下,重啟MyIE,呵呵,幾個小按鈕乖乖的躺在那里。