星期五, 六月 15, 2007

分布项目团队相关

分布项目团队相关:
适用对象:
1,开源
2,离岸
3,xp and scrum
4,非本地协作
 
可利用资源:
1,Internet 协议 (VoIP) 软件、即时通讯软件、电子邮件客户端和 wiki
2,Mingle和VersionOne ,VNC
3,Virtual Whiteboards
 
注意点:
1,共同的编码标准;源代码控制服务器;一键建立和部署脚本;连续集成;单元测试;错误跟踪;设计模式;以及应用程序块。
2,项目信息,背景信息(因为难所以更显重要一些)
 
建议:
1,kickoff at the start
2,standup every morning
3,matrix
4,TODO list
 
PS:真实期权是使人们能作出在当前环境下的最优决策的一种方法。本质上它只是对当我们面对如何作出决策时的一个不同视角。真实期权有两面,一面是数学的,一面是心理学的。真实期权的数学方面,根据金融期权理论,给我们提供了一个最优决策过程。关于不确定性和决策的心理学研究(根据神经语言程序学和认知行为理论)告诉我们为什么人们不遵循最优决策过程而结果作出不理性的决定。
 

星期三, 六月 13, 2007

70个流行的AJAX应用的演示和源码下载

  1. Ajallerix : AJAX, simple, fast Web image gallery demo ; at Novell
  2. AJAX - microlink pattern tutorial : A microlink is a link that opens up content below it.
  3. Ajax BBC News RSS Reader : demo by Nigel Crawley
  4. AJAX Chat in Python with Dojo : at AquaAjax
  5. Ajax Chess : multiplayer chess
  6. Ajax examples at BackBase : examples demonstrating several aspects of the Backbase technology.
  7. Ajax examples at Rico : Inner HTML, JavaScript updater etc.
  8. Ajax examples using ColdFusionMX, SQLServer, SOAP : Contact Manager, NOAA 7 Day Forecast code and demos.
  9. Ajax Feed TV : News feed
  10. Ajax inline dictionary : Highlight any text on this site then right click. A tooltip containing the definition of the selected word should show up.
  11. Ajaxload : Ajax loading gif generator.
  12. Ajax Login Demo : Creating a secure login system using XMLHttpRequest
  13. Ajax Newsletter Signup : A newsletter signup form that shows Thank You on the same page.
  14. ajaxProject : Project Management applicaiton with rich UI
  15. Ajax Rater : A star rating system that uses Ajax.
  16. AJAX-S : An Ajax-based slideshow system.
  17. AJAX Spell Checker : spell check text / form content.
  18. Ajax Toolbox : Tools for the Ajax Developer
  19. Amazon Catalog Tree : Amazon Catalog Tree
  20. Amazon Zuggest : Amazon product suggestion (like google suggest)
  21. Askeet by symfony : Digg-like AJAX interactions; open source
  22. Backbase - Ajax Demos : Ajax demos at BackBase
  23. Basic Ajax Examples : Ping, track changes, drop down, Google suggest hack etc at Clearnova
  24. Behaviour : Fading lists, Sortable lists, Dropout boxen, Shaky lists
  25. chat.app : ajax chat
  26. Chihuahua Word Puzzle : daily word puzzles
  27. Coloir : Ajax Slideshow
  28. DHTML arcade/action games : a collection that demonstrate the power of DHTML
  29. DomAPI : Windows Desktop, Outlook-like, RSS Reader
  30. Drag and Drop Shopping Cart Demo : at CyberDummy
  31. Easy AJAX inline text edit 2.0 : edit a piece of text inline
  32. FileChucker : File upload and progress bar at Encodable.com
  33. Gmail Style Check Username AJAX Demo : at CyberDummy
  34. Google Web Toolkit Example Projects : Hello World, Dynamic Table, Desktop App Clone etc
  35. GreyBox : Pop up window using idea of light box.
  36. FiftyFourEleven: Ajax Examples
  37. IntuiCat - ajax Catalogue : Ajax-based Catalogue Demo
  38. jsLINB programming demos : LINB(Lazy INternet and Browser)
  39. JSlog : Ajax logging tool.
  40. JS/UIX Unix Shell : JS/UIX is an UN*X-like OS for standard web-browsers, written entirely in JavaScript.
  41. Lace : free web chat application
  42. Lightbox : simple, unobtrusive script used to overlay images on the current page.
  43. Leightbox : Light Box with inline div's instead of AJAX calls.
  44. Live Quote Demo : Simple way of creating an updating stock quote table in ajax.
  45. Magnetic Poetry : drag and drop poetry
  46. Metatron Chat Engine : PHP/MySQL/JavaScript powered chat engine
  47. Monket Calendar : online calendar
  48. Multi List Drag Drop Demo : at CyberDummy
  49. NetDirector : open and extensible framework for managing configurations of common open source network services.
  50. nexImage : Image processing demo
  51. Opera Platform : Enabling AJAX applications on mobile phones
  52. Orbeon examples : various examples illustrating the capabilities of OPS, from the OPS Tutorial examples to XForms examples
  53. OVO Suite : Online Virtual Office : virtual office limited demo
  54. phpFreeChat : php Free Chat
  55. S5: A Simple Standards-Based Slide Show System : S5 is a slide show format based entirely on XHTML, CSS, and JavaScript.
  56. script.aculo.us Reflector : image reflector script that uses uses opacity-based fades
  57. Slider Bar Demo : at CyberDummy
  58. SmallestAjax : Smallest Ajax example in the world?
  59. Spell Check demo : by Primal Grasp
  60. Super Maryo World : Japanese game demo
  61. Tacos : Tacos provides a library of useful Tapestry components. This application provides some examples to get you started.
  62. theList : to-do list / bug-tracker
  63. ThickBox : ThickBox is a Lightbox than can show html pages as well as images.
  64. Tooltip.js : Tooltip.js is a simple class to make it possible to add tooltips to your page.
  65. Treehouse Chat : ajax chat
  66. Tudu Lists : open-source to-do lists
  67. WeBoggle : Ajax Boggle
  68. XHTML live Chat : ajax chat
  69. YahooSearchAsYouType : Yahoo search as you type
  70. ZK Demo : demo programs for various components

星期四, 六月 07, 2007

java实现FTP功能

有一个开源项目:edtftpj

下边是从CSDN转的:

---- 在JAVA的编程中,您也许会遇到FTP方面的编程,本文就来演示如何实现它。

---- 本程序是由JBUILDER2.0来开发的,为了节约篇幅我只列出主要的三个部份。FtpList 部分是用来显示FTP服务器上的文件(附图略)。GetButton部分为从FTP服务器下传一个文件。PutButton 部分为向FTP服务器上传一个文件。别忘了在程序中还要引入两个库文件(import sun.net.*,import sun.net.ftp.*)。以下是这三部分的JAVA源程序。
---- 1)显示FTP服务器上的文件
void ftpList_actionPerformed(ActionEvent e) {
String server=serverEdit.getText();
//输入的FTP服务器的IP地址
String user=userEdit.getText ();
//登录FTP服务器的用户名
String password=passwordEdit.getText();
//登录FTP服务器的用户名的口令
String path=pathEdit.getText();
//FTP服务器上的路径
try {
FtpClient ftpClient=new FtpClient();
//创建FtpClient对象
ftpClient.openServer (server);
//连接FTP服务器
ftpClient.login(user, password);
//登录FTP服务器
if (path.length()!=0) ftpClient.cd(path);
TelnetInputStream is=ftpClient.list();
int c;
while ((c=is.read())!=-1) {
System.out.print ((char) c);}
is.close();
ftpClient.closeServer();//退出FTP服务器
} catch (IOException ex) {;}
}
2)从FTP服务器上下传一个文件
void getButton_actionPerformed(ActionEvent e) {
String server=serverEdit.getText ();
String user=userEdit.getText();
String password=passwordEdit.getText();
String path=pathEdit.getText();
String filename=filenameEdit.getText();
try {
FtpClient ftpClient=new FtpClient();
ftpClient.openServer (server);
ftpClient.login(user, password);
if (path.length()!=0) ftpClient.cd(path);
ftpClient.binary();
TelnetInputStream is=ftpClient.get(filename);
File file_out=new File(filename);
FileOutputStream os=new
FileOutputStream(file_out);
byte[] bytes=new byte[1024];
int c;
while ((c=is.read(bytes))!=-1) {
os.write(bytes,0,c);
}
is.close();
os.close();
ftpClient.closeServer();
} catch (IOException ex) {;}
}
3)向FTP服务器上上传一个文件
void putButton_actionPerformed(ActionEvent e) {
String server=serverEdit.getText();
String user=userEdit.getText();
String password=passwordEdit.getText();
String path= pathEdit.getText();
String filename=filenameEdit.getText();
try {
FtpClient ftpClient=new FtpClient();
ftpClient.openServer(server);
ftpClient.login(user, password);
if (path.length()!=0) ftpClient.cd(path);
ftpClient.binary();
TelnetOutputStream os=ftpClient.put(filename);
File file_in=new File(filename);
FileInputStream is=new FileInputStream(file_in);
byte[] bytes=new byte[1024];
int c;
while ((c=is.read (bytes))!=-1){
os.write(bytes,0,c);}
is.close();
os.close();
ftpClient.closeServer();
} catch (IOException ex) {;}
}
}
原文地址: http://dev.csdn.net/author/Jason009/a20da6acb30441f6886c03adbb5996c4.html

星期三, 六月 06, 2007

eclipse GUI 插件

http://cloudgarden.com/jigloo/

关于几种不同的IDENTITY(SQLSERVER)


SCOPE_IDENTITY、IDENT_CURRENT   和   @@IDENTITY  
三者在功能上相似,因为它们都返回插入到   IDENTITY   列中的值。    
   
  IDENT_CURRENT   不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT   返回为任何会话和作用域中的特定表所生成的值。有关更多信息,请参见   IDENT_CURRENT。  
   
  SCOPE_IDENTITY   和   @@IDENTITY   返回在当前会话中的任何表内所生成的最后一个标识值。但是,SCOPE_IDENTITY   只返回插入到当前作用域中的值;@@IDENTITY   不受限于特定的作用域。  
   
  例如,有两个表   T1   和   T2,在   T1   上定义了一个   INSERT   触发器。当将某行插入   T1   时,触发器被激发,并在   T2   中插入一行。此例说明了两个作用域:一个是在   T1   上的插入,另一个是作为触发器的结果在   T2   上的插入。  
假设   T1   和   T2   都有   IDENTITY   列,@@IDENTITY   和   SCOPE_IDENTITY   将在   T1   上的   INSERT   语句的最后返回不同的值。  
   
  @@IDENTITY   返回插入到当前会话中任何作用域内的最后一个   IDENTITY   列值,该值是插入   T2   中的值。  
   
  SCOPE_IDENTITY()   返回插入   T1   中的   IDENTITY   值,该值是发生在相同作用域中的最后一个   INSERT。如果在作用域中发生插入语句到标识列之前唤醒调用   SCOPE_IDENTITY()   函数,则该函数将返回   NULL   值。  

星期五, 六月 01, 2007

db2 sample address

参考地址:
 
 
 
 
 
Java サンプル・プログラム
 
  • UNIX の場合:
    sqllib/samples/java
    すべてのサブディレクトリー内の Java サンプル・プログラムの README ファイルが入っています。
    sqllib/samples/java/jdbc
    JDBC サンプル・プログラム・ファイルが入っています。
    sqllib/samples/java/sqlj
    SQLJ サンプル・プログラムが入っています。
    sqllib/samples/xml/java
    JDBC および SQLJ XML サンプルのサブディレクトリーが入っています。
    sqllib/samples/xml/java/jdbc
    README ファイルと JDBC XML サンプル・プログラムが入っています。
    sqllib/samples/xml/java/sqlj
    README ファイルと SQLJ XML サンプル・プログラムが入っています。
    sqllib/samples/java/Websphere
    WebSphere サンプル・プログラムが入っています。
    sqllib/samples/java/plugin
    DB2 コントロール・センターのプラグイン例のファイルが入っています。
    sqllib/samples/java/plugin/doc
    プラグイン・インターフェース用の javadoc ファイルが入っています。
  • Windows の場合;
    sqllib¥samples¥java
    すべてのサブディレクトリー内の Java サンプル・プログラムの README ファイルが入っています。
    sqllib¥samples¥java¥jdbc
    JDBC サンプル・プログラムが入っています。
    sqllib¥samples¥java¥sqlj
    SQLJ サンプル・プログラムが入っています。
    sqllib¥samples¥xml¥java
    JDBC および SQLJ XML サンプルのサブディレクトリーが入っています。
    sqllib¥samples¥xml¥java¥jdbc
    README ファイルと JDBC XML サンプル・プログラムが入っています。
    sqllib¥samples¥xml¥java¥sqlj
    README ファイルと SQLJ XML サンプル・プログラムが入っています。
    sqllib¥samples¥java¥Websphere
    WebSphere サンプル・プログラムが入っています。
    sqllib¥samples¥java¥plugin
    DB2 コントロール・センターのプラグイン例のファイルが入っています。
    sqllib¥samples¥java¥plugin¥doc
    プラグイン・インターフェース用の javadoc ファイルが入っています。
  •  

    java调用db2管理API——export,Import

     
    import java.io.*;    
    import java.lang.*;
    import java.util.*;
    import java.sql.*;

    class AdmCmdExport
    {

      public static void main(String argv[])
      {
        Connection con = null;
       
        int rows_exported;
        String msg_retrieval = null;
        String msg_removal = null;
        String sqlcode = null;
        String msg = null;
       
        CallableStatement callStmt1 = null;
        ResultSet rs1 = null;
        PreparedStatement stmt1 = null;
        ResultSet rs2 = null;
        CallableStatement callStmt2 = null;

        if (argv.length < 1)
        {
          System.out.println("\n Usage : java AdmCmdExport <path for export>");
        }
        else
        {            
          try
          {
            // initialize DB2Driver and establish database connection.
            COM.ibm.db2.jdbc.app.DB2Driver db2Driver =
              (COM.ibm.db2.jdbc.app.DB2Driver )
                Class.forName("COM.ibm.db2.jdbc.app.DB2Driver").newInstance();
            con = DriverManager.getConnection("jdbc:db2:SAMPLE");

            System.out.println("HOW TO PERFORM EXPORT USING ADMIN_CMD.\n");
            // prepare the CALL statement for OUT_LANGUAGE
            String sql = "CALL SYSPROC.ADMIN_CMD(?)";
            callStmt1 = con.prepareCall(sql);

            String param = "export to "+ argv[0] + "org_ex.ixf ";
            param = param + "of ixf messages on server select * from org" ;

            // set the imput parameter
            callStmt1.setString(1, param);
            System.out.println("CALL ADMIN_CMD('" + param + "')");
          
            // execute export by calling ADMIN_CMD
            callStmt1.execute();
            rs1 = callStmt1.getResultSet();
            // retrieve the resultset 
            if( rs1.next())
            {
              // the numbers of rows exported
              rows_exported = rs1.getInt(1);

              // retrieve the select stmt for message retrival
              // containing SYSPROC.ADMIN_GET_MSGS
              msg_retrieval = rs1.getString(2);
     
              // retrive the stmt for message cleanup
              // containing CALL of SYSPROC.ADMIN_REMOVE_MSGS
              msg_removal = rs1.getString(3);
         
              // display the output
              System.out.println("Total number of rows exported  : " + rows_exported);
              System.out.println("SQL for retrieving the messages: " + msg_retrieval);
              System.out.println("SQL for removing the messages  : " + msg_removal);
            }
         
            stmt1 = con.prepareStatement(msg_retrieval);
            System.out.println("\n" + "Executing " + msg_retrieval); 

            // message retrivel
            rs2 = stmt1.executeQuery();

            // retrieve the resultset
            while(rs2.next())
            {
              // retrieve the sqlcode
        sqlcode = rs2.getString(1);
         
              // retrieve the error message
              msg = rs2.getString(2);
              System.out.println ("Sqlcode : " +sqlcode);
              System.out.println("Msg     : " +msg);
            }

            System.out.println("\nExecuting " + msg_removal);
            callStmt2 = con.prepareCall (msg_removal);

            // executing the message retrivel
            callStmt2.execute();     
          }
          catch(Exception e)
          {
            JdbcException jdbcExc = new JdbcException(e);
            jdbcExc.handle ();
          }
          finally
          {
            try
            {
              // close the statements
              callStmt1.close();
              callStmt2.close();
              stmt1.close();

              // close the resultsets
              rs1.close();
              rs2.close();
        
              // roll back any changes to the database made by this sample
              con.rollback();

              // close the connection                                  
              con.close();
            }
            catch (Exception x)
            {
              System.out.print("\n Unable to Rollback/Disconnect ");
              System.out.println("from 'sample' database");
            }
          }
        }
      } // main
    } // AdmCmdExport
     
     
    import java.io.*;     //JDBC classes          
    import java.lang.*;
    import java.util.*;
    import java.sql.*;

    class AdmCmdImport
    {

      public static void main(String argv[])
      {
        Connection con = null;
        CallableStatement callStmt1 = null;
        CallableStatement callStmt2 = null;
        ResultSet rs1 = null;
        ResultSet rs2 = null;
        PreparedStatement stmt1 = null;
        Statement stmt2 = null;
     
        int rows_read;
        int rows_skipped;
        int rows_loaded;
        int rows_rejected;
        int rows_deleted;
        int rows_committed;

        String msg_retrieval = null;
        String msg_removal = null;
        String sqlcode = null;
        String msg = null;
     
        if (argv.length < 1)
        {
          System.out.println("\n Usage : java AdmCmdImport <path for import>");
        }
        else
        {            
          try
          {
            // Initialize DB2Driver and establish database connection.
            COM.ibm.db2.jdbc.app.DB2Driver db2Driver =
              (COM.ibm.db2.jdbc.app.DB2Driver)
                Class.forName ("COM.ibm.db2.jdbc.app.DB2Driver").newInstance();
            con = DriverManager.getConnection("jdbc:db2:SAMPLE");

            System.out.println("HOW TO DO IMPORT USING ADMIN_CMD.\n");
            // prepare the CALL statement for OUT_LANGUAGE
            String sql = "CALL SYSPROC.ADMIN_CMD(?)";
            callStmt1 = con.prepareCall(sql);

            // argv[0] is the path for the file to be imported
            String param = "IMPORT FROM " + argv[0] + "org_ex.ixf OF IXF MESSAGES ";
            param = param + "ON SERVER CREATE INTO ORG_IMPORT" ;

            // setting the imput parameter
            callStmt1.setString(1, param);
            System.out.println("CALL ADMIN_CMD('" + param + "')");
          
            // executing import by calling ADMIN_CMD
            callStmt1.execute ();
            rs1 = callStmt1.getResultSet();
         
            // retrieving the resultset 
            if( rs1.next())
            {
              // retrieve the no of rows read
              rows_read = rs1.getInt(1);
              // retrieve the no of rows skipped
              rows_skipped = rs1.getInt(2);
              // retrieve the no of rows loaded
              rows_loaded = rs1.getInt(3);
              // retrieve the no of rows rejected
              rows_rejected = rs1.getInt(4);
              // retrieve the no of rows deleted
              rows_deleted = rs1.getInt(5);
              // retrieve the no of rows committed
              rows_committed = rs1.getInt (6);

              // retrieve the select stmt for message retrival
              // containing SYSPROC.ADMIN_GET_MSGS
              msg_retrieval = rs1.getString(7);
     
              // retrive the stmt for message cleanup
              // containing CALL of SYSPROC.ADMIN_REMOVE_MSGS
              msg_removal = rs1.getString(8);
         
              // Displaying the resultset
              System.out.print("\nTotal number of rows read      : ");
              System.out.println(rows_read);
              System.out.print("Total number of rows skipped   : ");
              System.out.println( rows_skipped);
              System.out.print("Total number of rows loaded    : ");
              System.out.println(rows_loaded);
              System.out.print("Total number of rows rejected  : ");
              System.out.println(rows_rejected);
              System.out.print("Total number of rows deleted   : ");
              System.out.println(rows_deleted);
              System.out.print("Total number of rows committed : ");
              System.out.println(rows_read);
              System.out.print("SQL for retrieving the messages: ");
              System.out.println(msg_retrieval);
              System.out.print("SQL for removing the messages  : ");
              System.out.println(msg_removal);
            }
         
            stmt1 = con.prepareStatement (msg_retrieval);
            System.out.println("\n" + "Executing " + msg_retrieval); 

            // message retrivel
            rs2 = stmt1.executeQuery();

            // retrieving the resultset
            while(rs2.next())
            {
              // retrieving the sqlcode
        sqlcode = rs2.getString(1);
         
              //retrieving the error message
              msg = rs2.getString(2);

              System.out.println("Sqlcode : " +sqlcode);
              System.out.println("Msg     : " +msg);
            }

            System.out.println("\n Executing " + msg_removal);
            callStmt2 = con.prepareCall(msg_removal);

            // executing the message retrivel
            callStmt2.execute();     

            System.out.println("\n Executing DROP TABLE ORG_IMPORT");  
            stmt2 = con.createStatement();
            stmt2.executeUpdate("DROP TABLE ORG_IMPORT");
          }
          catch(Exception e)
          {
            JdbcException jdbcExc = new JdbcException(e);
            jdbcExc.handle ();
          }
          finally
          {
            try
            {
              //closing the statements and resultset   
              callStmt1.close();
              callStmt2.close();
              stmt1.close();
              stmt2.close();
              rs1.close();
              rs2.close();
        
              // roll back any changes to the database made by this sample
              con.rollback();

              // closing the connection                                  
              con.close();
            }
            catch (Exception x)
            {
              System.out.print(x);
              System.out.print("\n Unable to Rollback/Disconnect ");
              System.out.println ("from 'sample' database");
            }
          }
        }
      } // main
    } // AdmCmdImport