junctioner

          2005年12月24日

          序:給自己找點事做

          時間和日子在無知無覺中過去,問自己收獲了什么?

          每天無所事事。


          列個標題,挖個坑,希望每天能來挑一點土。

          《解讀eclipse_3.50_galileo 源碼》

          從第一次使用eclipse(大概是03年的事,那時比較好用的是2.1版還是1.4版已記不清了)就想看看這么巧妙的一個玩意兒是怎么實現的,一直懶散無度,從未下手。

          這段時間用SWT做個小工具,是邊找邊抄,為什么要那么寫,不知道--真是有違一慣的作風。

          每天下班后,都不是為什么奔忙著,網頁?網游?都不知道自己看了些什么,玩了些什么。

          eclipse 的jar很多,核心的是core.runtime和osgi(早些版本里,是沒有osgi的),core.runtime比較小,就幾個類,先攻擊小的少的--毛主席真是偉大的軍事家呀。

          敬禮,睡覺去。

          posted @ 2009-09-16 22:17 junctioner 閱讀(236) | 評論 (0)編輯 收藏

          一窮二白學習C語言(1)

          前言
            一直想學習C,在剛知道有計算機的時候就想學習C,上學時,偷上計算機專業的課,學了半年Turbo C,學到指針時,暈了,也就沒有下文。工作之后,時有心血來潮之時,但還是沒怎么學習,Java還是比較簡單,Java幾乎占據了工作全部,更少有學習C了。用Java,研究到Java的核心,發覺還是得學C,學呀,學吧。
            今天也是一時的心血來潮了,趁著有股勁,開始動手,記錄一下,以期待和方便下次來潮。

            寫出的代碼,得編譯才可以運行,這個編譯環境,得先搭起來。VC、Visual Studio,都微軟的東西,有點抵觸,也有些大,不安裝了,手工配一套環境吧。
            網上搜了一下,Windows系統配C的編譯環境,得要MinGW或者cygWin,以前都下載過,但一直不知道它們本身是個什么東西,再查,知道大概:二者均基于GCC(GNU Compiler Collection -格努編譯套件),再加一些基本的類庫。去各自的官網分別下載安裝,感受:cygWin更象是一個linux的模擬器,把linux環境下的GCC給模擬出來,其它的就都一樣需要基本的編譯器、類庫,其它的如make工具。使用的時候,個人取向選擇minGW,在環境變量中指向{$minGW}\bin,gcc和make就可以在cmd中運行了。
            寫個簡單的hello world源程序,gcc一把,生產可執行文件,運行,結果出來,OK!

            注,下載minGW時,我選擇了自動安裝下載,一個個的下載,點來點去,累的慌。
          單獨下載minGW,要如下幾個包,再分別解開放在同一目錄中。
          gcc-core
          C語言編譯器
          gcc-c++
          C++語言編譯器
          mingw-runtime
          MinGW的運行時庫(這個必須安裝)

          win32api

          win32API函數頭文件和連接庫

          binutils

          MinGW的匯編器和連接器等基礎工具

          gdb

          MinGW中的調試工具
          mingw32-make
          Make工具,用以更好的管理你的項目
          make解后,沒有通常的make.exe,只有一個mingw32-make.exe文件,其實,把這個文件改名為make.exe就行。

          posted @ 2008-12-22 15:53 junctioner 閱讀(1702) | 評論 (6)編輯 收藏

          年跡

          1978:第一個關鍵的年份
          1988:雖然是第一個十年,但十歲的生日沒多少印象了,更多的是開始注意的第一個年份。
          1993:初中結束了,
          1997:高中結束了,
          2000/06/30:大學畢業了,世紀之交呀!
          2000/08/03:子身跑到汕頭的一個小鎮開始第一份工作,真正的人生地不熟。到目的地時,身上只有20塊錢了,還是年青的老板給我付的“摩的”費。
          2001/11/03:混到一份跟自己所學專業,所做的工作一點也不相關的工作,毅然一個人跑到北京。首都呀!當時天很冷,比我想象的要冷,下車后把能穿的都穿上,不知象什么熊。打22塊錢的車找到公司,競然還沒到上班時間。
          2004/06/xx:一個傷感的月份,也注定要離開這個做了好幾年有公司。
          2004/08/04:換了一個比較遠的公司,在朝陽,自己租住在西直門。
          2005/02/28:一個沒有29日的月份,還沒開始工作,就沒有選擇的離開了。
          2005/07/03:
          2006/07/03:換了一份工作,不知什么感受。

          posted @ 2007-06-19 16:35 junctioner 閱讀(274) | 評論 (0)編輯 收藏

          Velocity之首次研究

              與Velocity的第一次見面,是03年,有個新同事推薦使用,因當時我在做別的項目,也沒怎么仔細了解,簡單的知曉類似如模板一類的東西。之后有過幾次接觸,但,都沒花時間仔細看,前段時間,幫朋友做一個小東西,覺得用個模板做,會省很多事,想到Velocity。東西很小,做完了都沒時間看Velocity,今天正好有時間,研究研究。
              Velocity是apache下的一個開源項目,其網址:http://velocity.apache.org/;下載地址:http://velocity.apache.org/download.cgi,可直接下載源碼,也可通過SVN獲取源碼。
              在eclipse中創建一個web應用工程,把Velocity的源碼拷到java資源目錄下,自動編譯后,報幾個錯,拷貝下載的Velocity源碼lib目錄下的commons-collections-3.1.jar、oro-2.0.8.jar、commons-lang-2.1.jar這個三類包到web應用工程的lib目錄下即可。
              準備就緒,就寫個例子跑跑試試。寫一個hello.vm的模板文件,創建一個對應的Servlet,就可以運行了。兩文件源碼貼出如下:
              hello.vm
          <html>
              
          <body>
              #set($greet = "你好哇!")
                  Hello!$name, $greet
              
          </body>
          </html>
              HelloServlet.java
          import java.io.FileNotFoundException;
          import java.io.IOException;
          import java.util.Hashtable;
          import java.util.Properties;

          import javax.servlet.ServletConfig;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;

          import org.apache.velocity.Template;
          import org.apache.velocity.app.Velocity;
          import org.apache.velocity.context.Context;
          import org.apache.velocity.servlet.VelocityServlet;

          public class HelloServlet extends VelocityServlet {

              
          protected Properties loadConfiguration(ServletConfig config)
                      
          throws IOException, FileNotFoundException {

                  Properties p 
          = new Properties();

                  String path 
          = config.getServletContext().getRealPath("/");

                  
          if (path == null) {
                      path 
          = "/";
                  }

                  p.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, path);
                  p.setProperty(
          "runtime.log", path + "velocity.log");
                  p.setProperty(Velocity.INPUT_ENCODING, 
          "GBK");
                  p.setProperty(Velocity.OUTPUT_ENCODING, 
          "GBK");
                  
          return p;
              }

              
          public Template handleRequest(HttpServletRequest request,
                      HttpServletResponse response, Context ctx) {
                  Template template 
          = null;
                  
          try {
                      ctx.put(
          "name","Velocity");
                      template 
          = Velocity.getTemplate("/hello.vm");
                  } 
          catch (Exception e) {
                      e.printStackTrace();
                  }
                  
          return template;
              }
          }
              創建servelt要注意的幾個地方。
              1、新建的Servlet要擴展Velocity的VelocityServlet
              2、在servlet中要實現 public Template handleRequest(HttpServletRequest request,HttpServletResponse response, Context ctx)
                 A)把要返回到頁面上的數據放到context中對應到指定鍵值(鍵值名為對應模板中定義的變量名)
                 B)引入指定模板文件
              3、導入配置文件的方法protected Properties loadConfiguration(ServletConfig config),是否實現,是可選的 ,其作用在后面說明。

          發布運行后,訪問http://localhost:8080/vt/HelloServelt,就可看到結果了。

          運行起來,看到結果,是覺得很簡單,其運行過程,就要跟蹤看源碼才能知道了。

              看源碼,先看的,肯定是VelocityServlet.java。發現源碼注釋中,這個類已不推薦使用,推薦使用Velocity的一個子項目tool中的VelocityViewServlet.java,我沒有當tool子項目,就先看這個“過時的”實現。
               VelocityServlet.java,擴展了HttpServlet,實現了doGet、doPost、init基本方法,前兩個方法都直接調用新實現的doRequest方法,這些都是很常規的操作。
              doRequest方法做如下幾件事:創建上下文、設置響應內容文件類型、獲取模板(調用每個請求中的具體實現)、合并數據做出響應、出錯處理及資源清理。看到這兒,整個請求和響應過程很清晰,并沒什么特別的處理。
              接下來,看看它的初始化做了些什么事。就做了三件事,超類初始化、自己的初始化、緩存內容類型數據。自己的初始化,也就是(i)導入配置信息,(ii)根據配置信息做初始化設置。導入配置信息,是根據指定的幾個地方,獲取配置數據(在提供的樣例中,重載了它的獲取配置數據的方法,自己靈活的寫入一些配置信息);根據配置信息做初始化的工作,應用單例設計模式,保證初始化工作的處理唯一。
              VelocityServlet自已的初始化,調用另一個類org.apache.velocity.app.Velocity的init( Properties p )方法,就看看Velocity里做了些什么。Velocity里全是靜態方法。主要有如下幾個方法:
              1、初始化;2、預演傳入的數據(發現在應用中沒有使用,只在單元測試代碼中引用到);3、合并數據和模板;4、設置/獲取屬性;5、操作信息提示(不過,都不推薦使用了),整個的看下來,有兩點:1、主要的還是初始化和數據合并了;2、這個類只是一個中轉類,所有的方法,最終都是調另一個類org.apache.velocity.runtime.RuntimeSingleton的方法。
              打開RuntimeSingleton的代碼,看一看,發現它同Velocity類差不多,類本身不做實際的處理操作。它與Velocity不同的是,它是申明一個靜態的實例,再調用這個實例,個別地方(init())加了同步控制。如此處理體現它這個類的名字--單例,核心的還是這個靜態實例org.apache.velocity.runtime.RuntimeInstance。
              到RuntimeInstance,就開始接觸到Velocity的處理核心了。

              寫到這兒,突然沒有寫下去的沖動了,暫切休息一下。
             
              抽時間看了一下Velocity子項目tool下的VelocityViewServlet的源碼,比VelocityServlet要實現的好多了,與struct接合的比較好。
              Velocity,不僅僅適合于web應用,還可以作生成SQL、XML的模板,內容比較多,待一一挖掘。

          posted @ 2007-05-30 15:49 junctioner 閱讀(2915) | 評論 (3)編輯 收藏

          開源需要一個良好的商業模式

          在網上看到“蓋茨北大演講遭開源人士抗議”一事,對開源兄的行為,我選擇不置可否,但對軟件而言,我選擇開源。
          現在的局面是,商業化的軟件比開源的軟件,要活地滋潤、舒展多了,所以也會發生這次事件。

          為什么會出面這種局面?為什么需要開源?在這里我不闡述自己的觀點--持有同感的人都有自己的想法。

          開源如果想要活得不那么艱難,我想:需要一個良好的商業模式支持。
          開源不是免費!
          開源要生存發展,也需要營養供應,不能僅靠一部分懷開源激情的人或者組織無償奉獻能支撐起來的。
          linux、jboss的生存模式算是比較成功的,但還不能夠同商業化軟件相比較,還需要更充足的營養源。
          這二者的模式也是一定范圍內有效,不能做到推而廣之。

          開源軟件生存模式的探索之路還很廣,還很遠,需要有志之士共同努力。

          posted @ 2007-04-24 10:03 junctioner 閱讀(999) | 評論 (0)編輯 收藏

          在eclipse 3.3m6發布之際的感慨

               摘要:   閱讀全文

          posted @ 2007-03-28 13:20 junctioner 閱讀(2975) | 評論 (9)編輯 收藏

          再次開始centric crm研究

          上次看centric crm,是一年多前的事了,這一年中,忙忙碌碌的,都不知道做了些什么,但還是一直關注crm的相關信息。
          年初,有個朋友需要一套CRM軟件,我就給他推薦centric crm,但他不懂技術,希望我幫他搞搞,這就應了下來,又一次開始認真的看centric crm。
          [溫故而知新] 看以前貼的關于centric crm的blog,心有慚愧,希望產生誤導的影響不會很大。

          今天作一些更正,算是補償。
          1、獲取centric crm源碼,得先注冊,注冊地址:http://www.centriccrm.com/Register.do
          ?  先輸入你的郵箱地址(登錄用這個);
          ?  個人名稱可隨便填寫;
          ?  注冊成功后,密碼會發送到你郵箱中,

          2、官方用SubVersion管理centic crm的源碼,可以當一個subverion的客戶端,指定到要下載版本的鏈接,   輸入注冊的郵箱和密碼,就可以獲取源碼。
            現在有4.0和4.1兩個版本,subverion鏈接分別如下,   
            4.1源碼:https://svn.centricsuite.com/webapp/branches/branch-41   
            4.0源碼:https://svn.centricsuite.com/webapp/tags/rel-200611151353-402   

            我使用eclipse,裝了個SVN插件,配好后,直接check out成eclipse的項目。   
            SVN eclipse plugin是subclipse,插件獲取網站:http://subclipse.tigris.org/update_1.2.x

          3、源碼獲取下來目錄如下圖
          centric crm源文件目錄結構

          [源碼check out到eclipse后,把整個項目編碼方式改為UTF-8,因源文件注釋中有些時間戳是中文簡體字,不設成UTF-8,就顯示為亂碼,看起來沒什么大礙,但若修改源文件再保存就會彈出編碼格式不正確錯誤信息]
          bin:暫沒看這個目錄中的內容
          doc:基本文件目錄
          ??? Binary EULA.rtf:版權申明的文件;
          ??? CRM Installation and Setup.pdf:安裝配置文件,描述的比較簡單;
          ??? db-schema.html:庫表設計說明文件,了解centric CRM表結構這個文件最佳參考資料
          lib:項目需要的jar文件目錄
          pref:特定情況下需要的配置文件目錄
          src:源碼基本目錄
          ??? src目錄內有下面四個主要目錄:
          ??? java:java源文件目錄
          ??? web:web展示源文件目錄
          ??? sql:庫表腳本文件目錄
          ??? testcases:單元測試文件目錄

          ??? src目錄內有下面四個主要文件:
          ??? build.xml:項目編譯、發布的ant配置文件
          ??? home.properties.example:build.xml的輔助文件樣例,定義一些基本路徑信息,如:服務發布目錄
          ??? master.properties:build.xml的輔助文件,定義系統的一些屬性配置
          ??? README.txt:比較詳細的安裝配置文件(我就是看這個文件進行安裝配置的,有時間可以把安翻譯成中文)
          4、開始安裝配置
          ??? 1)安裝需求Java JDK,就不用說了,1.4以上都可以,1.4以下行不行,我也沒試,有興趣的朋友可試試,測試結果能告之當是感激了。我裝的是JDK 5.0。
          ??? 2)應用服務用tomcat 5.0,5.5都可以(不過tomcat5.5得在JDK5.0上才能運行起來),Jboss、Weblogic、WebSphere、Resin也可以運行。我用Tomcat 5.5.3。
          ??? 3)數據庫支持DB、MSSQL、MySQL、Oracle等,具體信息可看README.txt。我用的是MySQL 5.0.21。驅動jar是MySQL官網下載的 mysql-connector-java-5.0.4-bin.jar。
          ??? 4)還需要有ant工具,申明是要1.6的,我用eclipse自帶的1.6.5。
          ??? 5)centric CRM中用到WebServices,可去下載一個,
          ??? 下載地址:http://apache.downlod.in/ws/axis/1_4/axis-src-1_4.zip。
          ??? 解開zip包,把webapp下面的axis目錄拷貝到$tomcat/webapps/目錄下。

          ??? 準備好上幾步要求的,可以開始配置build.xml運行的兩個屬性文件。
          ??? 復制home.properties.example文件為 home.properties,相關屬性做如下修改:
          ##?The?following?properties?can?be?set?instead?of?using?environment?variables

          ##?Declare?the?webapp?server's?directory?to?compile?using?web?app?server?libraries
          ##?based?on?the?webapp?type?configured?in?build.properties
          ## 設置Tomcat安裝路徑
          CATALINA_HOME=D:/java/tomcat5.5.3
          #GERONIMO_HOME=/path/to/geronimo?or?websphere?ce
          #JBOSS_HOME=/path/to/jboss
          #WEBLOGIC_HOME=/path/to/weblogic
          #WEBSPHERE_HOME=/path/to/websphere

          ##?CENTRIC_HOME?can?be?used?to?compile?directly?to?the?webapp's?deployment
          ##?directory?(for?development),?or?to?any?directory?for?later?generating?a?.war
          ## 設置centric CRM 發布到tomcat中的路徑
          CENTRIC_HOME=D:/java/tomcat5.5.3/webapps/centric
          #CENTRIC_HOME=/path/to/weblogic/domain/autodeploy/directory

          ##?At?times,?scripts?will?need?to?install?or?upgrade?fileLibrary?documents?when
          ##?deploying?from?source
          ## 設置項目中配置文件存放目錄
          CENTRIC_FILELIBRARY=D:/Project.java/Centric?CRM?4.1/fileLibrary
          ##?To?skip?web?based?GUI?the?fileLibrary?must?be?in?the?WEB-INF?folder,?useful
          ##?for?development
          ## 設置配置文件發布目錄
          CENTRIC_FILELIBRARY=D:/java/tomcat5.5.3/webapps/centric/WEB-INF/fileLibrary

          ##?If?using?Axis?Web?Services,?then?declare?the?webapp?home?so?that?the
          ##?Centric?CRM?descriptors?can?be?installed?with?"ant?ws"
          ## 設置axis在tomcat中的發布目錄
          AXIS_HOME=D:/java/tomcat5.5.3/webapps/axis
          ? ??
          ??? master.properties 相關屬性做如下修改:

          ##
          ## NOTE: Do not edit "master.properties" -- edit a copy of it
          ## These settings are used by ant for the build and installation process
          ##




          ## PART 1: Are you reading the instructions? (required)

          ## The following is a control, uncomment the following line after modifying
          ## these properties... we just want to make sure you're paying attention and
          ## the build process doesn't do something it shouldn't!
          ## 確認修改過此配置文件標識
          PROPERTIES=configured




          ## PART 2: Deployment settings (required for compiling)

          ## Default language setting: even though any locale can be specified, the
          ## following have Centric CRM translations and supporting database data
          ## args="de_DE,en_US,es_VE,fr_FR,it_IT,ja_JP,nl_NL,pt_BR,ro_RO,ru_RU,sl_SI"/>
          SYSTEM.LANGUAGE=en_US

          ## Web server debug level:
          ## Extended debug information can be displayed in the web server's log file
          ## Comment out for no debugging, especially production server
          DEBUGLEVEL=2
          #DEBUG=true
          #DEBUGLEVEL=lines,vars,source

          ## Specify the web server to build/deploy against (required):
          ## Use catalina for Tomcat
          ## Use geronimo for WAS-CE or Apache Geronimo
          ## All others untested but planned for
          ## 指定Web Server 應用服務類型
          WEBSERVER.TYPE=catalina
          #WEBSERVER.TYPE=geronimo
          #WEBSERVER.TYPE=jboss
          #WEBSERVER.TYPE=weblogic
          #WEBSERVER.TYPE=websphere

          ## A self-signed SSL Certificate will be generated with the following parameters,
          ## which can then be added to Tomcat's SSL configuration and/or
          ## signed by an authority
          ## Common name should be a domain name
          ## Ex. *.yourcompany.com or www.yourcompany.com
          KEYSTORE.COMMONNAME=127.0.0.1
          KEYSTORE.ORGANIZATION=Company
          KEYSTORE.ORGANIZATIONALUNIT=Unit
          KEYSTORE.CITY=City
          KEYSTORE.STATE=State
          KEYSTORE.COUNTRY=US
          KEYSTORE.VALIDITY=1000

          ## Force users to use SSL in Centric CRM
          ## The web server must be configured for SSL if this option is set to true as
          ## Centric CRM will redirect non-secure URLs to the secure URL
          FORCESSL=false




          ## PART 3: Database installation settings (required for database installation)

          ## Uncomment and set the connection information for your specific database
          ## NOTE: The gatekeeper URL includes your database name, the site URL does not;
          ## The ant script will insert the database name after the specified url


          ## DB2
          ## CREATE DATABASE centric USING CODESET UTF-8 TERRITORY US pagesize 32 k
          #GATEKEEPER.DBTYPE=db2
          #GATEKEEPER.DRIVER=com.ibm.db2.jcc.DB2Driver
          #GATEKEEPER.URL=jdbc:db2://127.0.0.1:50000/centric
          #GATEKEEPER.USER=db2admin
          #GATEKEEPER.PASSWORD=
          #SITE.DBTYPE=db2
          #SITE.DRIVER=com.ibm.db2.jcc.DB2Driver
          #SITE.URL=jdbc:db2://127.0.0.1:50000/
          #SITE.USER=db2admin
          #SITE.PASSWORD=

          ## POSTGRESQL
          ## createdb -E UNICODE centric_crm
          #GATEKEEPER.DBTYPE=postgresql
          #GATEKEEPER.DRIVER=org.postgresql.Driver
          #GATEKEEPER.URL=jdbc:postgresql://127.0.0.1:5432/centric_crm
          #GATEKEEPER.USER=postgres
          #GATEKEEPER.PASSWORD=
          #SITE.DBTYPE=postgresql
          #SITE.DRIVER=org.postgresql.Driver
          #SITE.URL=jdbc:postgresql://127.0.0.1:5432/
          #SITE.USER=postgres
          #SITE.PASSWORD=

          ## MySQL
          ## CREATE DATABASE centric_crm CHARACTER SET utf8 COLLATE utf8_general_ci
          ## 指定數據庫類型及連接配置
          GATEKEEPER.DBTYPE=mysql
          GATEKEEPER.DRIVER=com.mysql.jdbc.Driver
          GATEKEEPER.URL=jdbc:mysql://127.0.0.1:3306/my_centric_crm
          GATEKEEPER.USER=my_centric_crm
          GATEKEEPER.PASSWORD=crm
          SITE.DBTYPE=mysql
          SITE.DRIVER=com.mysql.jdbc.Driver
          SITE.URL=jdbc:mysql://127.0.0.1:3306/
          SITE.USER=my_centric_crm
          SITE.PASSWORD=crm


          ## MS SQL SERVER
          #GATEKEEPER.DBTYPE=mssql
          #GATEKEEPER.DRIVER=net.sourceforge.jtds.jdbc.Driver
          #GATEKEEPER.URL=jdbc:jtds:sqlserver://127.0.0.1:1433/centric_crm
          #GATEKEEPER.USER=centric_crm
          #GATEKEEPER.PASSWORD=
          #SITE.DBTYPE=mssql
          #SITE.DRIVER=net.sourceforge.jtds.jdbc.Driver
          #SITE.URL=jdbc:jtds:sqlserver://127.0.0.1:1433/
          #SITE.USER=centric_crm
          #SITE.PASSWORD=

          ## CodeGear's InterBase (formally owned by Borland) www.codegear.com
          ## Do NOT put the database in the centric file library, or at least the root,
          ## as the build.xml copies its prefs into there using the same name as your database file!
          ## "e:/centriccrm_db" is only an example
          #GATEKEEPER.DBTYPE=interbase
          #GATEKEEPER.DRIVER=interbase.interclient.Driver
          #GATEKEEPER.URL=jdbc:interbase://127.0.0.1:3050/e:/centriccrm_db/centric_crm.ib
          #GATEKEEPER.USER=sysdba
          #GATEKEEPER.PASSWORD=masterkey
          #SITE.DBTYPE=interbase
          #SITE.DRIVER=interbase.interclient.Driver
          #SITE.URL=jdbc:interbase://127.0.0.1:3050/e:/centriccrm_db/
          #SITE.USER=sysdba
          #SITE.PASSWORD=masterkey

          ## FIREBIRD SQL
          #GATEKEEPER.DBTYPE=firebird
          #GATEKEEPER.DRIVER=org.firebirdsql.jdbc.FBDriver
          #GATEKEEPER.URL=jdbc:firebirdsql:127.0.0.1/3050:${CENTRIC_FILELIBRARY}/centric_crm.fdb
          #GATEKEEPER.USER=sysdba
          #GATEKEEPER.PASSWORD=masterkey
          #SITE.DBTYPE=firebird
          #SITE.DRIVER=org.firebirdsql.jdbc.FBDriver
          #SITE.URL=jdbc:firebirdsql:127.0.0.1/3050:${CENTRIC_FILELIBRARY}/
          #SITE.USER=sysdba
          #SITE.PASSWORD=masterkey

          ## DAFFODIL DB EMBEDDED
          #GATEKEEPER.DBTYPE=daffodildb
          #GATEKEEPER.DRIVER=in.co.daffodil.db.jdbc.DaffodilDBDriver
          ## YOU MUST EDIT THE path in the following line to where you want the database
          ## created.
          ## The user and password must be set to daffodil
          #GATEKEEPER.URL=jdbc:daffodilDB_embedded:centric_crm;create=true;path=/home/fileLibrary/centric_crm/daffodildb
          #GATEKEEPER.USER=daffodil
          #GATEKEEPER.PASSWORD=daffodil
          #SITE.DBTYPE=daffodildb
          #SITE.DRIVER=in.co.daffodil.db.jdbc.DaffodilDBDriver
          #SITE.URL=jdbc:daffodilDB_embedded:
          ## YOU MUST EDIT THE path in the following line to where you want the database
          ## created.
          ## Ex. Use the same path as Centric CRM's deployed file library, then the name of
          ## the database, then end in daffodildb
          ## The user and password must be set to daffodil
          #SITE.APPEND=;create=true;path=/home/fileLibrary/centric_crm/daffodildb
          #SITE.USER=daffodil
          #SITE.PASSWORD=daffodil

          ## ORACLE
          ## During installdb, use XE (or whatever you add under gatekeeper) for the
          ## database name since the install has not been adjusted for Oracle yet
          #GATEKEEPER.DBTYPE=oracle
          #GATEKEEPER.DRIVER=oracle.jdbc.driver.OracleDriver
          #GATEKEEPER.URL=jdbc:oracle:thin:@//127.0.0.1:1521/XE
          #GATEKEEPER.USER=
          #GATEKEEPER.PASSWORD=
          #SITE.DBTYPE=oracle
          #SITE.DRIVER=oracle.jdbc.driver.OracleDriver
          #SITE.URL=jdbc:oracle:thin:@//127.0.0.1:1521/
          #SITE.USER=
          #SITE.PASSWORD=

          ## Derby
          #GATEKEEPER.DBTYPE=derby
          #GATEKEEPER.DRIVER=org.apache.derby.jdbc.EmbeddedDriver
          ## YOU MUST EDIT THE path in the following line to where you want the database
          ## created.
          #GATEKEEPER.URL=jdbc:derby:/home/fileLibrary/centric_crm/derbydb;create=true;upgrade=true
          #GATEKEEPER.USER=centric_crm
          #GATEKEEPER.PASSWORD=
          #SITE.DBTYPE=derby
          #SITE.DRIVER=org.apache.derby.jdbc.EmbeddedDriver
          ## YOU MUST EDIT THE path in the following line to where you want the database
          ## created.
          #SITE.URL=jdbc:derby:/home/fileLibrary/centric_crm/
          #SITE.APPEND=;create=true;upgrade=true
          #SITE.USER=centric_crm
          #SITE.PASSWORD=


          ## PART 4: Advanced configuration (optional)

          ## Web-based configuration is recommended and is the default setting
          ##
          ## If you uncomment the following CONTROL line then you must configure the
          ## remaining parameters yourself. You will also have to create a new Centric
          ## CRM user and password before using Centric CRM.
          ##
          ## If you DO NOT uncomment the CONTROL line, then the first time you use
          ## Centric CRM, you will be presented with a configuration wizard which will
          ## assist you in defining these parameters and creating a new Centric CRM
          ## user and password.
          ##
          #CONTROL=BYPASS_WEB-BASED_APPLICATION_SETUP

          ## The following are methods for working with multiple development databases
          ## The APPCODE must be the same for the following Gatekeeper prefs and Site prefs
          GATEKEEPER.APPCODE=centric
          SITE.APPCODE=centric

          ## Define the web address used in communications when using a single development
          ## database
          #WEBSERVER.URL=127.0.0.1:8080/centric

          ## Define the web address used in communications when using multiple development
          ## databases
          #WEBSERVER.ASPMODE=true
          #WEBSERVER.PORT=8080
          #WEBSERVER.CONTEXT=/centric

          ## The server's default timezone for new users (using standard Java names)
          SYSTEM.TIMEZONE=America/New_York
          ## Default currency for all users
          SYSTEM.CURRENCY=USD
          ## Default country for all users
          SYSTEM.COUNTRY=UNITED STATES

          ## External Servers used by the system
          MAILSERVER=127.0.0.1
          FAXSERVER=127.0.0.1
          FAXENABLED=false
          PROXYSERVER=false
          PROXYSERVER.HOST=
          PROXYSERVER.PORT=

          ## Apache Axis Web Services
          ## 指定WebService 服務路徑
          AXIS.WEBAPP=/axis
          AXIS.HOST=127.0.0.1
          AXIS.PORT=8080


          ## Asterisk integration
          ASTERISK.OUTBOUND.ENABLED=false
          ASTERISK.INBOUND.ENABLED=false
          ASTERISK.URL=
          ASTERISK.USERNAME=
          ASTERISK.PASSWORD=
          ASTERISK.CONTEXT=from-internal

          ## XMPP/Jabber integration
          XMPP.ENABLED=false
          XMPP.CONNECTION.SSL=false
          XMPP.CONNECTION.URL=
          XMPP.CONNECTION.PORT=5222
          XMPP.MANAGER.USERNAME=
          XMPP.MANAGER.PASSWORD=

          ## LDAP integration
          LDAP.ENABLED=false
          # Validate username OR email against LDAP: username|email
          LDAP.CENTRIC_CRM.FIELD=username
          LDAP.FACTORY=com.sun.jndi.ldap.LdapCtxFactory
          LDAP.SERVER=ldap://127.0.0.1:389
          # Search by attribute, otherwise composite DN: true|false
          LDAP.SEARCH.BY_ATTRIBUTE=true
          LDAP.SEARCH.USERNAME=cn=admin,ou=IT,o=COMPANY
          LDAP.SEARCH.PASSWORD=
          LDAP.SEARCH.CONTAINER=o=COMPANY
          LDAP.SEARCH.ORGPERSON=inetOrgPerson
          LDAP.SEARCH.SUBTREE=true
          LDAP.SEARCH.ATTRIBUTE=mail
          #LDAP.SEARCH.BY_ATTRIBUTE=false
          #LDAP.SEARCH.PREFIX=cn=
          #LDAP.SEARCH.POSTFIX=,o=COMPANY

          ## Define the system's email address
          EMAILADDRESS=Centric CRM <noreply@127.0.0.1>

          ## Timed events, definitely turn on for a production server
          CRON.ENABLED=true

          ## Connection Pool Settings
          CONNECTION_POOL.DEBUG=false
          CONNECTION_POOL.TEST_CONNECTIONS=false
          CONNECTION_POOL.ALLOW_SHRINKING=true
          CONNECTION_POOL.MAX_CONNECTIONS=10
          CONNECTION_POOL.MAX_IDLE_TIME.SECONDS=60
          CONNECTION_POOL.MAX_DEAD_TIME.SECONDS=300

          ## Layout Settings
          ## Template replaces the following files which MUST exist:
          ## CSS:
          ## template1.css
          ## template1-8pt.css
          ## template1-10pt.css
          ## JSP:
          ## template1nav.jsp
          ## template1style.jsp
          ## template1styleNoSession.jsp
          ## template1styleContainer.jsp
          LAYOUT.TEMPLATE=template1
          LAYOUT.JSP.WELCOME=welcome.jsp
          LAYOUT.JSP.LOGIN=login.jsp
          #LAYOUT.JSP.LOGIN.LOGO=<img src="images/centric/logo-centric.gif" width="295" height="66" alt="" border="0" />
          #LAYOUT.JSP.LOGIN.TEXT=Centric CRM

          ## Max Imports that can run concurrently
          IMPORT_QUEUE_MAX=1

          ## Opportunity behavior
          # OPPORTUNITY.DEFAULT_TERM=52
          # OPPORTUNITY.DEFAULT_UNITS=W
          # OPPORTUNITY.MULTIPLIER=52
          # OPPORTUNITY.CLOSE_PROBABILITY=25,50,75

          完成上述兩文件的修改后,打開eclipse的ant視圖,

          ??? 運行:ant deploy 完成項目的編譯發布工作。

          下一步是創建庫表,可運行 ant installdb 創建庫表。
          ??? 運行 ant installdb前,先在啟動MySQL,創建一個表空間及用戶,
          ??? CREATE DATABASE my_centric_crm CHARACTER SET utf8 COLLATE utf8_general_ci;
          ??? GRANT ALL PRIVILEGES ON my_centric_crm.* TO my_centric_crm@"%" IDENTIFIED BY "crm";


          ??? 創建庫表時,若出現類似"Specified key was too long; max key length is 765bytes"的錯誤,是因為標識"UNIQUE NOT NULL"的字段長度>255(255=765/3)了。MySQL數據庫的unique類字段長度限制比較短,視不同版本,有的限制為765個字節,有的限制為1000個字節,UTF是占用3個字節位的,所以在這個限制上還要除以3。centric CRM的mysql庫腳本中,unique類字段的長度是設為300長字符的,出現上述問題一個可行的妥協辦法是修改腳本unique類字段的長度。

          建完表后,可以啟動tomcat服務,運行 ant ws 激活WebService,應用服務配置安裝完成!

          通過 http://localhost:8080/centric,第一次進入centric crm系統。

          ??? 第一次進入系統時,是一個登錄界面,用戶是dhvadmin,密碼是admin,登錄進入,是一步步的系統參數設置操作,操頁面提示,就可完成設置。最后是創建應用系統公司名稱和管理員用戶密碼的界面,再次使用系統時,就以管理員名稱和密碼登錄,對系統進行設置及添加管理其他用戶。(至此,告一段落。)

          posted @ 2007-03-02 14:53 junctioner 閱讀(3747) | 評論 (1)編輯 收藏

          男孩、年青的父親、男人

           有一段時間沒寫blog了,個中的理由就是這段時間心情浮躁,沉不下來。

            畢業后參加工作已整整6個年頭了。從一個只知道找父母要錢花,不知道社會是什么樣的“弱冠”到現在剛開始意識到要靠自己養家糊口,照顧父母的準“而立”,要考慮的事情比以前復雜的多了,這段時間工作也是動蕩的,沒有一個穩定的基礎考慮自己要考慮的問題,愈是浮萍一樣的沒有根。

            今,得空閑一會,瀏覽blog,看到一個blog,它的公告圖片上是一個漂亮的小女孩,它的ICO是卡通的唐老鴨,抑郁的心情忽的開闊了。想那小女孩肯定是作者的女兒,唐老鴨肯定是作者女兒的所愛。如果年青的媽媽,她的blog上放這些,是很容易理解的,而作者是一個大老爺們,他的blog上放這些與“大老爺們”身份有巨大的反差,但正是這種反差,讓我看到一位父親對女兒的喜愛。

          posted @ 2006-07-17 14:51 junctioner 閱讀(320) | 評論 (0)編輯 收藏

          信息化市場中,用戶就是上帝否?

          粗讀王永強的 解析管理信息化的“十大陷阱”?,最有同感的是“買方決定性陷阱”。

          ???中國信息化的現狀說:鄧小平提出建設有中國特色的社會主義,或許是因為中國的政治宣傳力度比較強,企業的發展管理策略也帶上“特色”,信息化就自然而然的要有自己的特色,如果拷貝另一企業的信息化經驗成果,就是沒有特色--你用你的槍,我用我的炮。
          ???企業信息化軟件實施說:信息化是一把手工程,如果一把手支持稍有松懈,所有的工作就有可能失敗,原因什么呢??縣官不如現管,現管的人不支持,這工作就開展不了。而上一個新系統,對于現管的人來說,就如同是一次革命,牽扯到的利益太多,稍有一點不均衡,不滿意的人出來了,你的工作就得暫停一下。所以,新系統必須考慮到企業的實際情況,現有的模式,你再先進、再科學,也得適合我的腳,我才穿。
          ???信息化系統提供商說:我們是公司行為,先生存,再發展;客戶要什么東西,我們就做什么東西;先做項目,再做產品。????
          ???圈內流傳消息說:中國軟件不如印度,更比不上歐美。歐美做內核,簡單重復的勞力就支援第三世界發展,換句話說是中國幫外國做產品,但沒有自己的產品,而且作為勞動關系雇員還不如同桌。

          ???在這條“生態鏈”中,誰是誰非?作為一個局外人看其中的問題很清楚,但身處某一個鏈節中時,沒有誰能是我這是問題。如果企業說,我要一個產品,不要項目,這樣,中國肯定會出現一些響當當的產品;如果系統提供商說,我有非常好的產品,可以做實施,不做項目,產品有吸引力應能取到市場的一杯羹。

          posted @ 2006-04-03 11:11 junctioner 閱讀(270) | 評論 (0)編輯 收藏

          ajax-json-rpc處理過程

          在web.xml文件中,可以發現
            <servlet-mapping>
              <servlet-name>com.metaparadigm.jsonrpc.JSONRPCServlet</servlet-name>
              <url-pattern>/JSON-RPC</url-pattern>
            </servlet-mapping>
          所有的請求提交到這個Servlet后分發處理并做出響應。

          JSONRPCServlet.java中實現了init()和service(),

          init() 中只是取了些配置參數作了相關設置;

          service() 中實現了請求處理;

          1.從session中創建/獲取JSONRPCBridge對象;

          2.把提交的數據裝入一個JSONObject對象中;

          3.用JSONRPCBridge對象的call方法處理JSONObject對象并返回JSONRPCResult對象。

          這個處理較ajax-buffalo 中的處理單調了不少。

          再來看看JSONRPCBridge.java是如何構建的。

          1.內置6個內部類:CallbackData、ClassData、LocalArgResovleData、MethodCandidate、MethodKey、ObjectInstance;

          2.還有一些輔助處理的方法,比較多(提取為一個或者多個輔助類比較好);

          3.核心的就是call()方法了。運用的是java反射機制,進行方法調用。這個方法寫的也比較長,沒仔細看,只看到有它兩個可取的地方,一個就返回對象的序列化,另一個是對不同異常,給出相應返回的處理比較細致,這樣有利于找到異常在什么地方,估計是原因引起的。

          在客戶端的處理,是把各方法、對象串連在一起,封裝后,便于應用。

          它把請求的數據對象化再以串的形式提交,后端再做一個反向操作,方便了數據處理。這種方式比ajax-buffalo 中把數據組織成一個XML結構的數據包提交、處理效率高。



          posted @ 2006-03-16 13:57 junctioner 閱讀(1755) | 評論 (2)編輯 收藏

          加強對(Oracle)SQL語句的學習(0)

          --沉浸在技術之中,如同喝高度白酒,比較麻醉人。

          工作中,遇到比較復雜的SQL語句,也挺費時間的。今天有時間就研究一下,找到如下幾個資源鏈(比較懶,也懶得COPY,避嫌抄襲)

          http://www.51one.net/study/Oracle/list1.htm

          學習兩個關鍵字的用法,intersect(取交集),minus(取差集)

          (select?a.name from a) intersect (select b.name from b)

          (select?a.name from a)?minus (select b.name from b)

          {重學高等數學,全還給老師了,現在自己去要回來,上Google:)

          并集:A和B相加的全部;交集:A和B相交疊的部分;差集:并集-交集;補集:如果集合B是集合I的子集,我們把I看作全集,那么I與B的差集I-B,叫做B在I中的補集}

          SQL語句優化技術分析

          http://www.pconline.com.cn/pcjob/other/data/oracle/0501/536463.html

          避免用

          ?避免使用 ?替代方法
          field?in(a,b,c) ?field=a or field = b or field=c
          field?is null /is not null ?field > ' ' 、field > 0

          ?select * from a???

          ?union

          ?select * from b

          先取兩表,再合并

          ?select * from a

          ?union all

          ?select * from b

          簡單的將兩個結果合并后就返回

          ? ?


          posted @ 2006-03-16 13:51 junctioner 閱讀(1959) | 評論 (2)編輯 收藏

          1kg,What?

          1kg?

          1kg代表什么?

          一公斤么?對!

          一公斤什么?

          #¥%@&×。

          這里(http://www.1kg.cn)有一個答案,一公斤的書籍文具。

          這是一項民間發起的公益旅游活動,它通過傳遞-交流-分享三個簡單的步驟帶給旅游者豐富的旅游體驗,受惠的是每一位參與者的心,更多的是千萬雙渴望知識的眼睛。



          posted @ 2006-03-16 13:49 junctioner 閱讀(209) | 評論 (0)編輯 收藏

          國產Ajax實現-buffalo

          早上剛發現的國產Ajax實現,現在版本是1.2,其網址是:http://www.amowa.net/buffalo

          當下buffalo-1.2.zip 4,770KB ,

          解開,發現項目配置文件是eclipse(切喜!eclipse,my love。),

          導入eclipse中,紅色的報錯:三個類庫變量沒找到,是web服務要的三個包servlet-api.jar、jsp-api.jar、jasper-runtime.jar,在tomcat對應目錄可以找到。其實還有第四個類庫變量--junit.jar,只不過eclipse中自帶的有,如果不用eclipse,找到這四個jar包引入。

          項目是以java文件為主的,有一個war目錄是演示用的web應用代碼目錄,web應用項目得自己建,這個感覺不爽,雖然它有一個build.xml文件可以打web應用包,但想調試跟蹤,還是缺一步(我站在研究的角度,如果應用的話,加入那幾個包,看看使用方法就可以了)。

          首先研究了一下ApplicationServlet.java

          1.這個Servlet初始化時,創建/獲取了一個服務倉庫(ServiceRepository);

          2.所有的請求、響應都封裝成一個自定義的請求上下文本(RequestContext);

          3.根據請求的路徑調用不同的RequestWorker;(這一點好,又不好)

          4.剩下的就是worker開始工作了,初始化、校驗、處理。

          重要的也是“處理”,現在看看worker的結構。

          接口類:interface RequestWorker 定義三個基本方法。

          抽象類:abstract class AbstractRequestWorker 實現初始化和校驗這兩個基本方法,另實現一些其它方法。

          具體實現類:ViewWorker、BuffaloWorker、UploadWorker 當然,你也可以寫自己的worker

          當的項目源碼中,ViewWorker、UploadWorker的處理方法中都是拋出UnsupportedOperationException,想處理的話,你也可以加。現在重要的講講BuffaloWorker的處理。

          1.通過封裝的請求上下文件(RequestContext),獲取服務倉庫(ServiceRepository);

          2.通過請求的相對路徑(此方法感覺欠妥),獲取相應的服務;

          3.有了“業務處理方法”、“業務請求”后,就是調用“粗麻布調用(BurlapInvoker)”處理余下的工作了。

          前面寫的是一些流程,沒什么復雜的東西,這最后的 invoker,是比較核心,也很經典的處理。在這里,我也不多寫了,再寫下去,大家也一路的看下去,沒什么感覺。相信看完了 invoker的實現,一定能學到不少東西。

          下次看看前端是怎么實現的,今天到此為止,休息一會!



          posted @ 2006-03-16 13:45 junctioner 閱讀(378) | 評論 (0)編輯 收藏

          試玩Ajax-json-rpc

          一、下載

          下載網站:http://freshmeat.net/projects/json-rpc-java/?branch_id=49217&release_id=214415

          下載地址:http://freshmeat.net/redir/json-rpc-java/49217/url_zip/json-rpc-java-1.0rc2.zip (版本1.0rc2)

          解壓后有三個文件夾、三個文件:

          src  jsonrpc的核心代碼

          test 演示用的java代碼

          webapps 演示用的web代碼

          build.xml ant文件

          jsonrpc.jar 編譯好的jsonrpc核心包

          jsonrpc.war 編譯好的演示web包

          二、安裝運行

          1、如果不想用javaIDE編譯發布,配置好ant 和tomcat,用ant運行解壓后的build.xml,把jsonrpc的demo發布到tomcat中,啟動tomcat,打開http://127.0.0.1:8080/jsonrpc/ 就可以看到演示了。

          不過,build.xml文件要做一點適應的改動,

          <property name="tomcat" location="../jakarta-tomcat-5.0.19"/>中的location值要設置為tomcat的安裝目錄

          <property name="tomcat" location="D:\java\Tomcat5.0"/>

          2、用javaIDE的話,我是用eclipse 3.01+myeclipse 3.84

          新建一個空的web項目,

          web root folder=webapps,

          context root url =jsonrpc,OK。

          (這兩個值可以用默認設置,但用默認設置后面改動比較多,所以就迎合它自己的口味)

          把解開的src和test目錄放到新建項目的根目錄中,webapps/jsonrpc目錄下的內容拷貝到項目webapps目錄中,eclipse自動編譯,會報一些錯誤,是因為test/src中有一部分java源碼未作為java文件編譯,鼠標右鍵點擊項目圖標->屬性->Java編譯路徑->資源->添加test/src目錄到資源中,確定OK。

          jsp文件沒有因java文件的重新編譯而更新所以還會顯示一些紅色的錯誤,就得手工讓它再編譯一次,鼠標右鍵點擊項目中webapps目錄->myeclipse->運行校驗,OK,剩下的是一些警告信息,如果你不想看到它們,可以去程序中一個個的去掉。

          在eclipse中發布jsonrpc、啟動tomcat服務,大功告成。

          簡單的看了一下它的設計實現過,明天接著寫。



          posted @ 2006-03-16 13:43 junctioner 閱讀(2107) | 評論 (0)編輯 收藏

          有感覺錢鐘書的認真

              近日忽有興致想讀錢鐘書的《圍城》,一時沒時間去買書,就在網上搜了一下,果有電子版的。

              先看前言,說得多的是第幾次印刷,又改了幾個錯漏--對于這一點,象他們那一輩人給我們的印象都是這樣,事不分巨細,都特別認真,再一次感受到他們的這種精神,也增加我接著往下看的興趣。當讀到第一章時,就發現有幾個字明顯是打詞組時帶出來的,很簡單就能處理的事情,就留它一個結疤在這兒,讀得很不順暢,有幾處的用詞,意思上差不多可以說過去,但感覺很繞口,為增加讀下去的興致,就自己給自己找借口:錢老那時的白話文跟現在的有差別。不過,讀到第三節時,實在沒有興致了。累呀!

              前兩天網上有關于張海迪的提案事件,事情也是沸沸揚揚的,實情是什么樣子的我不知道,但大部分人應是認同張海迪的為人。事件中就提到新聞報到提用人名,要經當事人同意這一點,我想,如果是一個認真的人,這件事情是應該去做的,人云亦云的轉抄不去實究更是不該做的事情。

             現在的人難道都這么浮躁么!

          posted @ 2006-03-16 10:47 junctioner 閱讀(225) | 評論 (0)編輯 收藏

          開放源代碼,是軟件發展的最終模式

                剛看了《Jboss創始人Marc Fleury:我要為開放源代碼辯護》的文章,第一反應就是要為Marc Fleury鼓掌!
                
                我不是計算機專業科班出身,對計算機知識的理解都是基于興趣愛好--我喜歡,我就做。記得上大學前填報志愿時,好多同學都是沒有考慮第一志愿就填的計算機專業(因為他們都喜歡,甚至癡狂),我也非常喜歡計算機,也想跟他們一樣,但瞬間的冷靜一想,基于計算機會是每一個人的基本工具,懂計算機是必然的事,就報了其它專業。雖然不是學計算機,但課余時間幾乎都是在學計算機知識上面,還經常去旁聽計算機專業的課。我學習編程,都是看著寫好的例子一句句的琢磨,最后就知道怎么用那些方法,關鍵字,雖然是很原始的學習方法,但還是比較有效的--這也許就是我支持開放源碼的“第一”原因吧。
                爾后,也接觸到很多軟件,對那些軟件,或多或少有自己的想法,希望能去完善它們,但大部分是編譯過的,想完善它們只能是隔靴撓癢的事。有一部分軟件也提供二次開發的接口,也有相應的開發接口文檔,但發現問題是在它原有程序里的,就沒辦法。為此,有一段時間特別熱中于反編譯,覺得那是僅次于做黑客的事情,隨后,無奈的知道這是觸犯一些商人權利的事(現階段這些商人創造社會財富,也給制定法律的政府交稅,個人還是無法超越在法律之外的)。對此,只有噴墻。
                后來,發現開源軟件不僅免費使用,更重要的是它的源碼是對所有人開放的,這無疑點亮了我學習開源軟件中的編程精華、設計思想的光明之路,也促使我更偏愛使用開源軟件。

          posted @ 2006-03-07 19:15 junctioner 閱讀(260) | 評論 (0)編輯 收藏

          開源ETL工具--kettle

          在google上查到兩款java的開源ETL工具
          Kettle(http://www.kettle.be/)和
          Octopus(http://www.enhydra.org/tech/octopus/index.html
          先看Kettle

          下載kettle的源碼(也可以下載BIN的),在eclipse中啟動,出現配置Repository的小窗口,在這小窗口中配置的Repository,輸入口令后老報口令錯誤(可能是沒配置好),就直接點No Repository進入主窗口,這就開始ETL工作了。

          待繼。。。

          posted @ 2006-03-02 12:39 junctioner 閱讀(2976) | 評論 (4)編輯 收藏

          政府這根紅線如何用?

          媒婆=政府
          女方=企業
          男方=IT公司

          現在,男方擺出什么家當來,可以讓媒婆一上門,女方就高興的嫁過來呢?

          第一眼,感覺有很大的空間,可show的東西很多,隨便挑一個都成,但要確定一個具體的東西時,張開口不知說哪一個了。

          企業信息化?這個題目還是太大。
          ERP?是大火過后的冷靜,廣大中小企業一直也是作避上觀。
          SCM?政府對企業這方面的東西好象沒說話的實質內容。
          CRM?政府做的工作是招商引資,投資環境,切實的工作還是得企業自己搬磚砌墻,牽強的說有點表親關系。

          換個思路,現在的女方最看中的是什么呢?看她關注什么。

          企業價值最大化,是任何一個企業追求的目標,怎么樣才能實現企業價值最大化呢?

          提高生產效率、提高產品質量、提高服務質量、提高管理執行力、提高企業競爭力;
          擴展市場、提高市場占有率、維系老客戶,發展新客戶、提升企業品牌價值;
          控制成本、減少不必要的支出;

          怎么就感覺這些都是站在書堆里說的話呢!

          企業公共關系?

          posted @ 2006-02-17 10:25 junctioner 閱讀(260) | 評論 (0)編輯 收藏

          從程序中漢語拼音命名說開來去

          寫程序也有幾個年頭了,對程序中變量、方法、目錄之類的東西命名,總要花點時間--讀書的時候不認真,對不起在上面講課的老師。對一些命名規則也了解一些,也努力那去做,不過,表意的關鍵字就沒有什么規則好參照,只有自己找資料根據業務找最接近的單詞來表述,每每這個時間,就想要努力學習英語。

          今天看了幾個政府的網站,點到其中的鏈接,看了半天,愣是沒看明白那鏈接中路徑表達的是什么意思,英語太差,慚愧!后來看到網站中欄目分類的名稱,一個個的對一下,原來是每個漢字的拼音首字母的組合,一個字,累!爾后看到網站上還標明“中文簡體版”、“中文繁體版”、“英文版”。點進繁體版看看,繁簡轉換得不錯,但鏈接的路徑描述還是那樣,看來是技術處理的不錯;點進英文版瞧瞧,內容跟中文版的完全不一樣,是另做的一套網站內容,這時的鏈接路徑描述還可以看出是什么意思來。

          今天這事,我想到以前接觸的一些項目,其中的表意命名也是這么處理,甚至數據庫的字段名也按這個“規則”處理,我想他們工作的時候也是煞費了一番苦心呀。以前還看到一個牛人寫的程序,程序中的命名全是漢字,在他的那個編輯器中,還一點問題沒有,而且也能跑起來,但把代碼一移到其他人的編輯器中,就“萬里江山一片紅”--漢字命名的全報錯,后來那GG一拍屁股走人,他的代碼沒人能接過來,只有“咔嚓”,項目頭頭無奈、老板心底流血。

          如果在程序中用漢字作變量不出問題的話,估計漢字命名會很風靡。但電腦是洋人發明的,它認識它媽媽的語言很親切,對于漢字,它也經常頭痛,怎么辦呢?要用它,就得遷就它--這是我們中國程序員的無奈。

          計算機是死的,人是活的,說不定哪天,中國出了一牛人,讓計算機認識漢字跟認識英文一樣暢通無阻,那時中國程序員就有福了!這只是個期望,現在還沒有出現這種情況,我們還沒能改變計算機,只有改變自己--跟兩個人談朋友一樣,總得有一個人改變,讓兩個人相處的更和諧!

          posted @ 2006-02-15 17:39 junctioner 閱讀(464) | 評論 (0)編輯 收藏

          eclipse 的體積越來越大,福兮?禍兮?

          經過eclipse的好幾個發布版本,最先用順手的是2.1,之后就一直用它。

          記得第一次聽同事介紹eclipse時,說了很多eclipse的優勢,但沒體會,自己也是抱著試試的心態拷了一個備份玩玩。
                Eclipse 2.1 整個文件包才20多MB,比當時使用的Jbuilder9來說,Jbuilder真是龐然大物。只要把ZIP包解壓就就可以運行,不用復雜的安裝。做完相關配置后,看到如期的界面了,接近windows界面的顏色比Jbuilder的那種界面顏色更易接受。做了一些簡單的應用,操作功能跟Jbuilder差不多,但系統配套的代碼開發,eclipse依賴于相關的插件,插件化是一個好的idea,但eclipse這方面的插件還沒有一個能達到Jbuilder的那種高度的效果。問題是eclipse是免費的,也不能太高要求,想要高質量的服務,可以花點錢去買個插件MyEclipse裝上,使用起來還不錯。
                時間長了后,Jbuilder快從記憶中消去了(這幾天看到Borland要出賣它的IDE部門,甚是為Jbuilder擔憂,畢競是一套不錯的產品,也留下過美好的回憶),這期間,eclipse也更新了好幾個版本,從2字頭的到3字頭的,體積變化比較顯著,基于eclipse3.01使用比較習慣了,也接受它變得“豐滿”。但后面幾個版本還是保持在肥胖的狀況,而且使用方面,新版本的取向在編輯功能,程序調試的性能大不如前,對此情況,我保持止步不前了。寄希望

          版本號 發布日期 文件大小 備注
          3.11 2005-9-29 103.41MB
          3.1 2005-6-27 105.47MB
          3.01 2004-9-16 88.50MB
          2.1
          1.0 19.32MB

          posted @ 2006-02-14 13:06 junctioner 閱讀(679) | 評論 (1)編輯 收藏

          再學習log4j筆記

          log4j,字面意思就是針對j(Java)的日志。
          log4j,可以記錄顯示Java程序運行的每一步的數據,相當于System.out.print,不過,它是以一個日志文件顯示所標識的運行信息,不用在java運行顯示臺上看輸出信息,比較方面。
          log4j,記錄的數據,可以作為判斷程序運行狀態的重要依據,更多的應是查找程序運行BUG的重要依據,特別是程序已發布,不能做單步調試的情況下,它的優越性就突顯出來了。
          引用一個對log4j的功能比較專業的描述:

          1、監視代碼中變量的變化情況,周期性的記錄到文件中供其他應用進行統計分析工作;
          2、跟蹤代碼運行時軌跡,作為日后審計的依據;
          3、擔當集成開發環境中的調試器的作用,向文件或控制臺打印代碼的調試信息。

          以前偶爾的用過幾次,但一次沒形成習慣和一套良好的應用機制,自咎主要原因是對log4j掌握的還是不夠,亟待提升。

          今天就花時間找些資源研究研究。

          在網上搜到一些文章,首先看的是IBM中國網站上的一篇技術文章(http://www-128.ibm.com/developerworks/cn/java/l-log4j/index.html)講得比較基礎,也很詳細,對log4j的使用講得全面而貼切,甚利于初次學習,發表日期是2002/6/19(有點早)。

          1、去網站(http://logging.apache.org/log4j/docs/download.html)下載log4j的jar包,直接下載log4j-1.2.13版鏈接:http://mirror.vmmatrix.net/apache/logging/log4j/1.2.13/logging-log4j-1.2.13.zip
          2、解開log4j.jar文件放到web應用程序的WEB-INF/lib下面;
          3、編寫文件名為log4j.properties 配置文件到java源文件的根目錄中;
          4、在自己的程序中構建日志記錄器;
          5、利用記錄器標識要輸入的信息。

          第二步如果是在java的一般應用程序中應用log4j,則在環境變量CLASSPATH中添加一個指向log4j.jar的值。
          第三步把命名為log4j.properties的log4j配置文件放在java源文件目錄中是一個簡潔的辦法,可以在程序中自定義的指定log4j的配置文件,配置文件名稱和存放路徑都可自定義。

          當獲得了日志記錄器之后,第二步將配置Log4j環境,其語法為: 
          BasicConfigurator.configure (): 自動快速地使用缺省Log4j環境。 
          PropertyConfigurator.configure ( String configFilename) :讀取使用Java的特性文件編寫的配置文件。 
          DOMConfigurator.configure ( String filename ) :讀取XML形式的配置文件。

          Log4j支持兩種配置文件格式,一種是XML格式的文件,一種是Java特性文件(鍵=值)。下面引用的是使用Java特性文件做為配置文件的方法(不用XML解析器):

          配置根Logger,其語法為: 
          log4j.rootLogger = [ level ] , appenderName, appenderName, …

          其中,level 是日志記錄的優先級,分為OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定義的級別。Log4j建議只使用四個級別,優先級從高到低分別是ERROR、WARN、INFO、DEBUG。通過在這里定義的級別,您可以控制到應用程序中相應級別的日志信息的開關。比如在這里定義了INFO級別,則應用程序中所有DEBUG級別的日志信息將不被打印出來。 
          appenderName就是指定日志信息輸出到哪個地方。您可以同時指定多個輸出目的地。 
          配置日志信息輸出目的地Appender,其語法為 
          log4j.appender.appenderName = fully.qualified.name.of.appender.class
          log4j.appender.appenderName.option1 = value1

          log4j.appender.appenderName.option = valueN其中,Log4j提供的appender有以下幾種: 
          org.apache.log4j.ConsoleAppender(控制臺), 
          org.apache.log4j.FileAppender(文件), 
          org.apache.log4j.DailyRollingFileAppender(每天產生一個日志文件),org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件), 
          org.apache.log4j.WriterAppender(將日志信息以流格式發送到任意指定的地方) 
          配置日志信息的格式(布局),其語法為: 
          log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
          log4j.appender.appenderName.layout.option1 = value1

          log4j.appender.appenderName.layout.option = valueN其中,Log4j提供的layout有以下幾種: 
          org.apache.log4j.HTMLLayout(以HTML表格形式布局), 
          org.apache.log4j.PatternLayout(可以靈活地指定布局模式), 
          org.apache.log4j.SimpleLayout(包含日志信息的級別和信息字符串), 
          org.apache.log4j.TTCCLayout(包含日志產生的時間、線程、類別等等信息) 

          下面是一個log4j配置文件的例子(內容不含前面的行號):
           1log4j.rootLogger=INFO, A1 , R
           2
           3log4j.appender.A1=org.apache.log4j.ConsoleAppender 
           4log4j.appender.A1.layout=org.apache.log4j.PatternLayout 
           5log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n 
           6
           7log4j.appender.R=org.apache.log4j.RollingFileAppender
           8log4j.appender.R.File=$TOMCAT_HOME/logs/log4j.log
           9##將$TOMCAT_HOME換成tomcat的安裝目錄,也可以指定一個存在的任意目錄
          10log4j.appender.R.MaxFileSize=100KB
          11log4j.appender.R.MaxBackupIndex=1
          12log4j.appender.R.layout=org.apache.log4j.PatternLayout
          13log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n


          第1行的值INFO,表示輸出INFO級以上的日志,如果設成OFF則表示不輸出,A1和R是自定義的兩種輸出方式(可以自定義n種輸出方式),其詳細內容在后面有定義;
          第3行定義A1是輸出到控制臺;
          第7行定義R是輸出到文件,并且控制文件在指定大小,超過指定大小自動按指定形式創建一個新名稱的日志文件;

          一般是以指定格式的文本輸出日志,輸出比較快捷,也可以定義HTML格式的日志輸出,閱讀方便,但稍微有點慢。

          現在,可以象使用System.out.println一樣標識程序輸出信息了看一個在程序中應用log4j的簡單例子。
          import org.apache.log4j.Level;
          import org.apache.log4j.Logger;
          import org.apache.log4j.SimpleLayout;
          import org.apache.log4j.FileAppender;
          public class simpandfile {
              //獲取log4j日志記錄器
             
          static Logger logger = Logger.getLogger(simpandfile.class);
             
          public static void main(String args[]) {
                 //新建一個日志輸出樣式
                SimpleLayout layout 
          = new SimpleLayout();

                FileAppender appender 
          = null;
                
          try {
                     //定義輸出文件
                   appender 
          = new FileAppender(layout,"output1.txt",false);
                }
           catch(Exception e) {}

                logger.addAppender(appender);
                 //設置日志輸出等級為DEBUG
                logger.setLevel((Level) Level.DEBUG);
                //以各種等級標識輸出信息
                logger.debug(
          "Here is some DEBUG");
                logger.info(
          "Here is some INFO");
                logger.warn(
          "Here is some WARN");
                logger.error(
          "Here is some ERROR");
                logger.fatal(
          "Here is some FATAL");
             }

          }

          如果定義了log4j的輸出配置文件,在程序中獲取日志記錄器后就可以直接標識日志輸出信息。

          [***] 在判斷DEBUG/INFO級別的信息是否要加入日志文件前,記錄器提供isDebugEnabled()/isInfoEnabled()方法判斷當前級別是否激活,這樣處理減少日志處理信息時再判斷當前級別是否激活消耗的資源,提高運行性能。

          補加:

          剛發現log4e(http://log4e.jayefem.de/index.php/Download)這個eclipse的插件,它實現的功能是鼠標點擊幾下,就可以自動生產log標識,免去手敲的體力。
          至于怎么用,就很簡單了,跟它的插件一樣安裝,裝完后,在eclipse的編輯區右鍵菜單中會多一個log4e項,所有操作都在這里了。

          posted @ 2006-02-13 10:52 junctioner 閱讀(3810) | 評論 (0)編輯 收藏

          注冊機是什么顏色的?

          注冊機是什么顏色的?黑色的。看過很多注冊機,都是黑色的界面,挺醒目的。

          注冊機、破解碼、散布的注冊碼、激活。。。。。

          這些都是搜索引擎中熱門的詞語,因為它們能逾越一些商業軟件的保護殼,讓復制者不用花什么代價就能使用那些軟件。

          我對開源、共享軟件是比較感興趣的,也愿意在這方面做出自己的努力。特別欣賞Jboss Group,看到他們,仿佛是看到軟件業最終的發展方向和模式。但在當前商業軟件為主的狀態下,特別是一些軟件企業依靠一份份軟件換來的錢活命的情況下,我們不能做那種下石頭的事吧。

          我是一個poor programmer,使用很多free工具,也使用黑色的工具,但我的原則是:自己使用,但不散發。

          我很可憐,也可憐別人,留給自己一點尊嚴。

          posted @ 2006-02-09 14:31 junctioner 閱讀(707) | 評論 (0)編輯 收藏

          企業應用鏈接收集

          SAP攜IBM推CRM托管服務 月收75美元

          posted @ 2006-02-07 20:15 junctioner 閱讀(274) | 評論 (0)編輯 收藏

          Jira 3.5 Enterprise EAR/WAR + mysql 安裝手記

          前段時間很容易的就試裝了jira的Professional Standalone, 寫得比較簡單,今天準備裝一下Enterprise EAR/WAR ,寫個詳細一點安裝手記。

          最開始的工作自然是下載了。
          把zip包解壓到一個目錄中,展開的內容如下:
          edit-webapp:這個目錄中放的是指定數據庫類型的配置文件;
          etc:這個目錄中存放有三個xml文件;分別是換ear/war包用的配置文件;
                   打war包的配置文件有兩一個,jira.xml是通用的,tomcat-5.5-jira.xml是專為tomcat-5.5準備的。
          src:這是一個空目錄,可以放自己添加的要編譯的功能源文件;
          tools:這個目錄中自帶一個ant(如果你沒有安裝ant,就用得到它);
          updater:為更新jira配備的一個更新工具目錄;
          webapp:主要的程序文件目錄;
          appendcp.bat:這個批處理文件沒怎么用到;
          build.bat:這個批處理文件把修改過的配置文件和程序文件打成一個可發布的war/ear包;
          build.sh:功能同build.bat,是在linux下用的;
          build.xml:ant的配置文件;
          readme.txt:軟件說明文件;

          展開的這些東西還只是“材料”,接下來就是做一些配置并把它們打成可發布的包。

          應用服務選用Tomcat5.0;
          數據庫選用mysql Ver 14.7 Distrib 4.1.14 for Win32;

          先建表空間,再分配用戶指定權限,

          create database jiradb;
          grant all privileges on jiradb.* to jiradbuser@localhost identified by 'jira';

          做好外部了準備工作,就進行配置。
          接著修改edit-webapp\WEB-INF\classes\entityengine.xml
          找到
              <datasource name="defaultDS" 
                  field-type-name
          ="hsql"
                  helper-class
          ="org.ofbiz.core.entity.GenericHelperDAO"
                  check-on-start
          ="true"
                  use-foreign-keys
          ="false"
                  use-foreign-key-indices
          ="false"
                  check-fks-on-start
          ="false"
                  check-fk-indices-on-start
          ="false"
                  add-missing-on-start
          ="true"
                  check-indices-on-start
          ="true">
          替換為
              <datasource name="defaultDS" 
                  field-type-name
          ="mysql"
                  helper-class
          ="org.ofbiz.core.entity.GenericHelperDAO"
                  check-on-start
          ="true"
                  use-foreign-keys
          ="false"
                  use-foreign-key-indices
          ="false"
                  check-fks-on-start
          ="false"
                  check-fk-indices-on-start
          ="false"
                  add-missing-on-start
          ="true"
                  check-indices-on-start
          ="true">

          再修改etc\jira.xml(如果應用服務用tomcat5.5,則修改etc\tomcat-5.5-jira.xml
          找到
              <parameter>
                
          <name>driverClassName</name>
                  
          <!-- NOTE: if you change the database type, you will need to change it in WEB-INF/classes/entityengine.xml -->
                
          <value>org.hsqldb.jdbcDriver</value>
              
          </parameter>
              
          <parameter>
                
          <name>url</name>
                
          <value>jdbc:hsqldb:@JIRA_HOME@/database/jiradb</value>
              
          </parameter>
              
          <parameter>
                
          <name>username</name>
                
          <value>sa</value>
              
          </parameter>
              
          <parameter>
                
          <name>password</name>
                
          <value></value>
              
          </parameter>
          修改為
              <parameter>
                
          <name>driverClassName</name>
                  
          <!-- NOTE: if you change the database type, you will need to change it in WEB-INF/classes/entityengine.xml -->
                
          <value>com.mysql.jdbc.Driver</value>
              
          </parameter>
              
          <parameter>
                
          <name>url</name>
                
          <value>jdbc:mysql://localhost:3306/jiradb?autoReconnect=true</value>
              
          </parameter>
              
          <parameter>
                
          <name>username</name>
                
          <value>jiradbuser</value>
              
          </parameter>
              
          <parameter>
                
          <name>password</name>
                
          <value>jira</value>
              
          </parameter>

          配置完后,就可以build一個jira的war包了。
          如果系統中已裝有ant,則直接運行build.bat文件,沒有安裝的話,它會運行自帶的ant。

          build運行完后,會在當前目錄生成三個目錄,
          dist-generic:存放通用的war包,直接拷貝到應用服務的服務目錄中就可以運行;
          dist-tomcat:存放發布到tomcat中的外部war包及配置文件;
          tmp:build運行過程中的臨時文件目錄;

          dist-tomcat目錄中,有一個war包,和對應三個tomcat版本的配置文件目錄。

          在此,拷貝dist-tomcat/tomcat-5/jira.xml$Tomcat/conf/Catalina/localhost/
          啟動tomcat,在IE地址樣中輸入:http://localhost:8080/jira
          第一次運行jira,顯示安裝配置頁面。(沒有裝截圖軟件,就不顯示截圖)
          在這個配置頁面,jira會根據操作系統的語言設置,選用相應的語言包(漢包的效果也不錯,不存在語言問題:)),依照著相關的提示做相應的設置就OK,唯一花時間的事,就是要在線生成一個授權碼,用下載jira的用戶名登錄,可以獲得一個援權碼,填好援權碼下一步。
          接下來是添加管理員,設置好后下一步。
          再接下來是郵件通知的設置,此處你可以暫時禁用郵件通知,以后也可以重新啟動郵件通知。
          設置完成后就可以以剛才添加的管理員登錄,創建BUG跟蹤管理項目了。

          posted @ 2006-02-06 12:01 junctioner 閱讀(2140) | 評論 (0)編輯 收藏

          開源殺毒軟件

          用過國內的多款殺毒軟件,也用過國外的數款殺毒軟件,用到最后是,機子里什么殺毒軟件都不裝。
          病毒還是防為主要的,真正中招了,輕傷,沒什么,這樣的病毒功力比較淺,也比較容易手工清除;重傷的話,機子里的文件已面目全非,就是用殺毒軟件也是提示“刪除該文件”。
          今天發現一開源的殺毒軟件(http://www.clamwin.com/),想看看他到底怎么樣,下載安裝試試。
          安裝很簡單,界面也很簡潔,三個功能按鈕,一看就知道怎么操作,點擊查毒,還真那么回事,開始掃描了。我機子的沒有中招,不知會不會掃出一些可疑文件出來:)
          這款軟件還有一個partner,功能是防毒,下載網址是:http://www.softpedia.com/get/Antivirus/Winpooch.shtml
          先裝上觀察幾天,過幾天給試用報告。

          posted @ 2006-01-20 09:19 junctioner 閱讀(2612) | 評論 (2)編輯 收藏

          學習python

          早就知道有這么一個東西了,一直沒時間看,今天就看看。
          第一件事,找官網:http://www.python.org/,東西還真多,不知從哪看起。
          不喜歡看些介紹的東西,就看新手向導( ),
          python也有它的“jdk”,最新版本是2.4.2,先下載下來再說,當!
          裝上之后,做什么呢?
          發現有代碼樣例,怎么讓它跑進來呢?
          找python的開發工具,一查,有好多,其中一種是eclipse+pydev的,試試這個
          pydev是eclipse做python開發的插件,官網是:
          http://pydev.sourceforge.net/
          對應版本有很多種,我裝有eclipse3.1,就當最新的,pydev0.9.8.6
          下載解開的文件,拷貝到eclipse的extplugin目錄,新建link文件,啟動eclipse,呵呵,還裝好了!
          在IBM的網站上找到這個資料:http://www-128.ibm.com/developerworks/cn/opensource/os-ecant/#resources,比較老,是2004年的,但可以參照一下。
          還是在eclipse的windows-preferences-pydev中指定一個python的編輯器(剛才下載安裝python的“jdk”)。
          把其中的樣例代碼下載到項目中,還真跑起來了。
          也可以調試(調試運行的比較慢,可能是eclipse3.1的問題,呆會裝個eclipse3.0的調試看看)
          現在不知道python的語法,代碼看不懂,這是主要的。


          posted @ 2006-01-13 15:44 junctioner 閱讀(363) | 評論 (1)編輯 收藏

          Centric CRM 開源的客戶關系管理系統

          官網下載:http://www.centriccrm.com/Portal.do?key=home
          點了下載圖標后,半天沒找到下載的鏈接,左找右找,找到一個tab,上寫在download,復雜呀,還得點一下,看到下載的列表了,但點上去,還是沒反應,到底是啥回事呢?發現類型是.torrent,好象是BT下載的種子,以前沒用過BT,今天為了它,還得下載個BT玩玩。
          上網找了一個,裝上,還是沒反應,快暈了。
          再左看看,右看看,上看看,哦,要求是登錄了才可以下載,注冊登錄吧,這才發現下載的連接是活的了。當下了種了,再才開始下載。以前聽說BT是用來下載電影的,速度應很快,但怎么我今天用BT,它就不快呢,每秒才幾K,才10幾M的東西,得多長時間呀

          posted @ 2006-01-05 16:50 junctioner 閱讀(1531) | 評論 (1)編輯 收藏

          選用jira

          jira現在是商業化的軟件,先找個demo版看看。
          jira官網:http://www.atlassian.com/software/jira/
          jira分企業版、專業版、標準版三個版本,我選專業版。
          每個版本又分standalone和war/ear兩種發布形式,standalone是被推薦使用的,就先用它。
          下載完解開,從readme里找到jira的安裝說明鏈接:http://www.atlassian.com/software/jira/docs/v3.4.2/install.html
          照著安裝說明做,非常容易的就運行起來了。

          裝后感覺:
             1、standalone的jira中自帶一個tomcat,jira的資源包通過修改一些配置文件已發布到這個tomcat中,只要運行一下startup.bat就啟動了。
             2、漢化做的不全,后臺控制部分還是英文。
             3、功能還是比較多呀,得花時間研究怎么用呀。
             4、安裝配置的時候,未配置郵件分發服務(沒仔細看怎么配置,直接選禁用郵件分發),暫缺郵件分發這一功能。
             5、產品試用期是30天的,得想法辦法解決
             6、安裝的時候沒有指定數據庫,使用默認的hsql,可參考下面的鏈接更換應用數據庫 http://www.atlassian.com/software/jira/docs/v3.4.2/standalone-dbconfig.html
          下面這個鏈接是講怎么更換到oracle上的
          http://www.aygfsteel.com/waterye/archive/2005/08/24/10959.aspx

          發現商業版的用戶可以獲取jira源碼,真是羨慕ing。

          posted @ 2006-01-05 09:11 junctioner 閱讀(496) | 評論 (1)編輯 收藏

          java和調用動態鏈接庫

          Java的運行是基于Java虛擬機的,Java虛擬機中又是一些動態鏈接庫文件,一直不清楚它們之間是怎么樣協同工作?

          什么是動態鏈接庫?在微軟中文網站(http://support.microsoft.com/default.aspx?scid=kb;zh-cn;815065)上有很清楚的介紹。
          DLL 是一個包含可由多個程序同時使用的代碼和數據的庫。

          介紹jvm.dll裝入過程:http://www.matrix.org.cn/resource/article/1/1650_jvm_loading_progress.html

          把java應用生成本地應用的介紹:http://community.borland.com/article/0,1410,20679,00.html

          posted @ 2005-12-31 16:45 junctioner 閱讀(976) | 評論 (0)編輯 收藏

          SWT學習樣例源碼

          昨天裝了SWT Designer后,摸索了半天,畫出幾個界面,但要讓它“活”起來,還是得寫一些代碼,暫時沒打算系統的去學習SWT,就偷懶,照別人的代碼畫瓢了。
          找到幾個不錯的SWT學習源碼網址:
          http://www.java2s.com/ExampleCode/SWT-JFace-Eclipse/CatalogSWT-JFace-Eclipse.htm

          posted @ 2005-12-31 15:13 junctioner 閱讀(277) | 評論 (0)編輯 收藏

          安裝 SWT Designer

          我機子裝有兩個版本的eclipse,3.0.1和3.1.0
          經常用的是3.0.1,裝上3.1.0發現它在調試運行的效率上沒有3.0.1高,但它的編輯操作3.0.1方便了很多--這方面的人性化做得比較好。用eclipse主要還是用它的調試運行,就一直沒怎么用3.1.0。

          SWT Designer主要是做界面設計的,下載匹配eclipse3.1.0的版本,看它的編輯操作是不是也很簡便。

          SWT Designer的官網:http://www.swt-designer.com/
          下載列表網址:http://www.instantiations.com/swt-designer/download_content.html

          我的eclipse插件都是放在$eclipse/extplugin目錄中,再到$eclipse/links目錄下建一個連接配置文件,方便插拔。

          這里有一個SWT Designer v4..1.1 的破解方法(個人使用):http://www.aygfsteel.com/gufen/archive/2005/11/08/14184.html

          eclipse3.0.1+swtDesigner4.2.1的,沒找到破解的方法,今天做不了比較。
          eclipse3.1.0+swtDesigner4.2.1按上面的方法,破解成功。
          運行起來,使用感覺跟VB很象,非常容易的就能拖拽出一個界面

          posted @ 2005-12-30 10:52 junctioner 閱讀(2332) | 評論 (0)編輯 收藏

          讀報時間

          生老病死與企業無關 http://gb.chinabroadcast.cn/8606/2005/12/29/381@840770.htm

          這句話甚是刺眼,競出現在一些企業的合同中,對此只有感嘆無限!警醒正工作和準備工作的同仁多注意勞動合同的簽訂。

          結合個人的教訓列幾點:
          1、要有明確的試用期
          2、要有明確的薪資,包括試用期
          3、國家規定的三險一金,(新提出的:四險一金)
          4、合同或者協議一定要有一份在自己手中
          5、注意看看雙方的違約權責

          《做最好的自己》 作者:李開復 http://book.sina.com.cn/nzt/spi/zuozuihaodeziji/index.shtml

          被推薦看一看的。沒仔細瞧,只簡單的看了一下做父母怎么樣培育子女。

          朋友、自由、鼓勵

          “今天的中國青年,非常聰明,但是不夠自信。”

          posted @ 2005-12-30 10:14 junctioner 閱讀(186) | 評論 (0)編輯 收藏

          感慨

          最近才開始用博克,經常上CSDN,就在CSDN上的開了一個,但用了幾次,不爽!編輯、瀏覽都很慢,難以忍受,迫使我另覓“新歡”。
          看到博克園,注注試試吧,填好郵箱名后,發給我的連接就轉到BLOGJAVA上來了。在填博克類型時,我選的是JAVA,也許這是轉到BLOGJAVA上來的原因之一吧。
          管它哪兒的博克服務,好用就用,先試試看。
          進來之后,發現它跟CSDN上的博克在風格上象是雙胞胎,只有一些細微的區別,但有一點,速度上好象還可以接受。

          用這個WEB編輯器,感覺比CSDN上的智能一點,蛤發覺它不時的閃一閃,比較不爽,不知是不是頁面定時在刷新,要真這樣的話,可以改用一下最近很火的AJAX改進試試,老閃也會閃走一些人的。

          補一點,發現這個博克是dotNet的,可能是那個比較有名的開源dotNet博克改過來的:P。

          接補,為什么中英混雜呀,要翻譯就全譯過來,要么就全英文得了,混血兒,一般很漂亮,但會讓人想到另一個兩個字的詞。

          New Post :新貼、ImportFromRSS 引入RSS

          再補,這個WEB編輯器中選擇字體,沒有中文相關的字體呢。

          再接補,這個博克是dotNet的,提交成功后返回的提示信息圖標競是Java的SWT中的提示信息圖標,有點意思。

          posted @ 2005-12-30 09:27 junctioner 閱讀(195) | 評論 (0)編輯 收藏

          [導入]ajax-json-rpc處理過程

          ajax
          文章來源:http://blog.csdn.net/junctioner/archive/2005/12/28/564341.aspx

          posted @ 2005-12-29 02:50 junctioner 閱讀(108) | 評論 (0)編輯 收藏

          [導入]國產Ajax實現-buffalo

          ajax
          文章來源:http://blog.csdn.net/junctioner/archive/2005/12/28/563787.aspx

          posted @ 2005-12-28 19:50 junctioner 閱讀(145) | 評論 (0)編輯 收藏

          [導入]1kg,What?

          愛心行動
          文章來源:http://blog.csdn.net/junctioner/archive/2005/12/26/562526.aspx

          posted @ 2005-12-26 23:40 junctioner 閱讀(96) | 評論 (0)編輯 收藏

          [導入]試玩Ajax-json-rpc

          java.ajax
          文章來源:http://blog.csdn.net/junctioner/archive/2005/12/23/560426.aspx

          posted @ 2005-12-24 02:23 junctioner 閱讀(110) | 評論 (0)編輯 收藏

          <2005年12月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿(8)

          隨筆分類

          隨筆檔案

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 桐庐县| 呼图壁县| 柯坪县| 伊吾县| 龙南县| 任丘市| 临沭县| 金塔县| 阿克陶县| 承德市| 潞西市| 泸西县| 年辖:市辖区| 兴安县| 深水埗区| 正镶白旗| 晋州市| 特克斯县| 娄底市| 高碑店市| 喜德县| 新巴尔虎左旗| 吴川市| 林州市| 灵武市| 旌德县| 波密县| 夏河县| 福清市| 恩施市| 云南省| 台江县| 黄浦区| 田阳县| 禄丰县| 铜川市| 忻城县| 郴州市| 公主岭市| 辉南县| 土默特左旗|