Google Prettify

2008-05-22

技術出身的主管


在我的工作經驗裡, 曾經遇到一位主管, 記得我們第一次見面他就跟我宣稱他也是技術出身的. 之後當我在實作案件時因為速度上的關係,被命令要使用model 1的開發方式. 當然我們也曾經為了開發方式有起過爭執。我記得他跟我說(最經典??)的理由是: 維護成本高? 那是維護的人的事, 你是負責開發, 弄好開發就好. 事實上, 在我們公司裡的企業流程, 開發是一組人馬, 維護是另一組人馬. 開發真的不關我事, 維護成本也是另外一組事業單位的成本, 跟本單位無關.


我本身並不兼任管理職. 目前也是技術人員. 如果我跟別人宣稱我是技術出身, 我想這應該是很理所當然爾, 因為也從沒轉過工作型態. 事實上前陣子我也才在爭扎是否要走管理職. 因為走技術真的錢不太多. 不過玩技術有點像在吃毒品-是越吃越上癮. 如果一個主管工作10年, 做技術1年, 剩下9年可能是從助理慢慢爬到主管, 那能否算是技術出身? 我想不行. 又多少年才能算是可以宣稱自己是技術出身?? 這樣想想, 可以宣稱自己是技術出身的主管, 判定標準似乎不是在年資, 而是在於本身是否真有技術能力. 在那間公司, 我也遇到寫code寫了3年還沒聽過MVC的人, 所以年資雖然跟能力有點關係, 但不是絕對..


講了那麼多, 就是要說, 當如果遇到有管理人員跟你說他也是技術出身, 他只是想讓你覺得會很容易溝通. 你不要期望他會有比較好的技術sense.甚至你也不該期望你會很好跟他溝通, 因為那只是一種管理手段.


2008-05-21

如何在word中使用自訂的表格樣式

前言: 最近在狂寫文件, 對word的有了更深的體認...(廢話中....), 直接告訴各位, 要如何在word設定自訂的表格樣式。基本上, 看圖說故事就可以了。

方法就如同以下圖一般, 我先有張表格。

然後點選「表格」、「表格自動格式」、「新增」。輸入「樣式名稱」(這裡是「我的樣式」);選擇「樣式根據」(這裡選擇「表格格線」樣式);選擇「將格式設定套用於」(這裡選擇「整張表格」)。然後依照自己喜歡的樣式設定就可以了。





最後將樣式套用到整個表格就可以了。

2008-04-18

給我複雜的BO

最近在上有關UML的課程,雖然老師沒有明講,我覺得這是Test-driven或use case driven之類的方法。所謂「之類」是說都是使用Iterator 的開發方式、每個iterator都要經過測試、每次出品都是production的水準。學到的東西當然要拿來用在工作上啦,忽然問題產生了...

2008-03-13

如何在weblogic 8中取得jsp編譯後的java檔

有寫過JSP的人都知道, 所謂的JSP,是container用來產生servlet class檔用的。Container翻譯JSP,產生.java檔,透過.java檔產生.class檔。最終就如同servlet一樣,還是要執行.class檔。所以當一個畫面呈現在瀏器時,至少會有jsp、java、class 3個檔案。不過在weblogic container中卻只看得到2個檔案

1.jsp檔在${BEA_HOME|}\user_projects\domains\mydomain\applications下, 也就是deploy的目錄。
2.class檔在${BEA_HOME}\user_projects\domains\mydomain\myserver\.wlnotdelete\extract下,也就是weblogic暫存目錄下。

那.java檔呢? weblogic 預設在產生.class檔後就會移除掉。要保留.java檔的方法是在weblogic.xml中設定keepgenerated為true即可。
${BEA_HOME}\user_projects\domains\mydomain\applications\${AP_NAME}\WEB-INF\weblogic.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" 
"http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>    
  <jsp-descriptor>
    <jsp-param>
      <param-name>keepgenerated</param-name>
      <param-value>true</param-value>
    </jsp-param>
  </jsp-descriptor>
  <container-descriptor>
    <prefer-web-inf-classes>false</prefer-web-inf-classes>
  </container-descriptor>
</weblogic-web-app>

2008-02-17

WDS使用技巧


Google的桌面搜尋是出了有名的。很可惜,不知道為什麼,在我的電腦上執行,總會有問題。但對於這類的搜尋功能又是愛不釋手(在有需要找檔案或是一些文件時,速度真是超快的)。因此就在想想有什麼替代方案;那就是WDS啦。什麼是WDS? WDS就是Windows Desktop Search;聽名字就知道跟google desktop search是相同的東西。以下是一些進階搜尋的功能:
ext:doc - 搜尋後面為doc的文件
file:report - 搜尋檔案名中包含report這個詞的文件
cameramake:canon - 搜尋所有圖片中由canon相機產生的(依賴於EXIF訊息)
from:zhang - 搜尋發件人名字中有zhang的郵件
size:>100000000 - 搜尋尺寸大於100MB的項目。這個做得比較土,不支持MB,KB等服務機構,只能是字元為服務機構,要加一堆0……
phone:12345678 - 搜尋電話號碼為12345678的聯絡人
來源:windows desktop search一些小技巧


2008-01-22

如何在Quartz中確定當上一個job尚未執行完前不執行下一次job?

為了避免重覆執行企業邏輯,我們在排程時有時必須確保上一次的工作執行完後,才可以允許下一個排程工作繼續執行。也就是說,原則上是個一個固定時間區間執行一次企業邏輯運算,但實際上必須等到上一次運算完後,才可以繼續執行下一次的運算...當然,也是要在固定時間區間之後。以下是個人撰寫的部份sample code。主要是利用Scheduler.getCurrentlyExecutingJobs()來限制執行job的數量。其實原理並不是不執行排程,只是不執行排程裡設定的動作。

Sample code後有一段是展示如何重新啟動排程及設定排程時間。

這段Sample code是使用Spring framework。

public class LogAnalysisJob extends QuartzJobBean {
    private LogAnalysisBO bo;

    public void setBo(MyBO bo) {
        this.bo = bo;
    }

    protected void executeInternal(JobExecutionContext c)
    throws JobExecutionException {
    Scheduler sc = c.getScheduler();
    try {
      List l = sc.getCurrentlyExecutingJobs();
      if (l.size() <= 1) { //限定目前的只有1個bo被執行
      bo.exe();//真正執行企業邏輯的部份
    }
    SimpleTriggerBean t = (SimpleTriggerBean) c.getTrigger();
    if (count > 10) {
       t.setRepeatInterval(t.getRepeatInterval() + 3000);//如果排程執行超過10次, 每次執行間隔就延長3秒
       sc.rescheduleJob(t.getName(), c.getJobDetail().getGroup(), t);
       count = 0;
    }
    count++;
  } catch (SchedulerException e) {
    e.printStackTrace();
  }

    private static int count;
}

您或許對這些有興趣

最後

謝謝您的閱讀,希望您可以有豐富的收獲。